/*Block*/
.block td {border-color:#bb4b1c;border-width:4px;background-color:#FFCC66;padding:10px;}
html .block th {border-color:#bb4b1c;border-width:4px;background-color:#FFCC66;padding:10px;color:#441177;}
/*Lignes marrons alternées*/
html .brownaltrows th {padding:10px;vertical-align:top;border-color:#000;background-color: #cc6666;text-align:center;}
html .brownaltrows tr.evenRow td {background-color: #e6a5a5;}
html .brownaltrows tr.oddRow td {background-color: #ed5c5c;}
html .brownaltrows .tw-tiddlylink-internal {text-decoration: none;font-style: normal;font-weight: bold;color: #5c2333;}
html .brownaltrows {border-color:#000;}
html .brownaltrows td {border-color:#000;padding:10px;}
/*Lignes horizontales*/
html .rowstable {background: #fff; border-collapse: collapse;border-color:#fff;}
html .rowstable th {background-color:#fff;border-color:#fff;border-bottom: 2px solid #446699;color: #446699;padding:10px;}
html .rowstable td {border-color:#fff;border-bottom: 1px solid #ccc;color: #000;padding: 6px 8px;}
Built from branch 'tiddlywiki-com' at commit 7686be7b14cdb3bb6e02ab7bd5a5204a8318942f of https://github.com/Jermolene/TiddlyWiki5 at 2020-10-23 15:24:45 UTC
{{$:/themes/jd/Mono/EmptyStoryMessage}}
$:/_ExcelImporter/ImportSpecifiers/Workbook 1
{
"tiddlers": {
"$:/Acknowledgements": {
"title": "$:/Acknowledgements",
"text": "TiddlyWiki incorporates code from these fine OpenSource projects:\n\n* [[The Stanford Javascript Crypto Library|http://bitwiseshiftleft.github.io/sjcl/]]\n* [[The Jasmine JavaScript Test Framework|http://pivotal.github.io/jasmine/]]\n* [[Normalize.css by Nicolas Gallagher|http://necolas.github.io/normalize.css/]]\n\nAnd media from these projects:\n\n* World flag icons from [[Wikipedia|http://commons.wikimedia.org/wiki/Category:SVG_flags_by_country]]\n"
},
"$:/core/copyright.txt": {
"title": "$:/core/copyright.txt",
"type": "text/plain",
"text": "TiddlyWiki created by Jeremy Ruston, (jeremy [at] jermolene [dot] com)\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2020, UnaMesa Association\nAll rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n* Redistributions of source code must retain the above copyright notice, this\n list of conditions and the following disclaimer.\n\n* Redistributions in binary form must reproduce the above copyright notice,\n this list of conditions and the following disclaimer in the documentation\n and/or other materials provided with the distribution.\n\n* Neither the name of the copyright holder nor the names of its\n contributors may be used to endorse or promote products derived from\n this software without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS 'AS IS'\nAND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\nIMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE\nFOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\nDAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR\nSERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER\nCAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,\nOR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE\nOF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
},
"$:/core/icon": {
"title": "$:/core/icon",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path d=\"M64 0l54.56 32v64L64 128 9.44 96V32L64 0zm21.127 95.408c-3.578-.103-5.15-.094-6.974-3.152l-1.42.042c-1.653-.075-.964-.04-2.067-.097-1.844-.07-1.548-1.86-1.873-2.8-.52-3.202.687-6.43.65-9.632-.014-1.14-1.593-5.17-2.157-6.61-1.768.34-3.546.406-5.34.497-4.134-.01-8.24-.527-12.317-1.183-.8 3.35-3.16 8.036-1.21 11.44 2.37 3.52 4.03 4.495 6.61 4.707 2.572.212 3.16 3.18 2.53 4.242-.55.73-1.52.864-2.346 1.04l-1.65.08c-1.296-.046-2.455-.404-3.61-.955-1.93-1.097-3.925-3.383-5.406-5.024.345.658.55 1.938.24 2.53-.878 1.27-4.665 1.26-6.4.47-1.97-.89-6.73-7.162-7.468-11.86 1.96-3.78 4.812-7.07 6.255-11.186-3.146-2.05-4.83-5.384-4.61-9.16l.08-.44c-3.097.59-1.49.37-4.82.628-10.608-.032-19.935-7.37-14.68-18.774.34-.673.664-1.287 1.243-.994.466.237.4 1.18.166 2.227-3.005 13.627 11.67 13.732 20.69 11.21.89-.25 2.67-1.936 3.905-2.495 2.016-.91 4.205-1.282 6.376-1.55 5.4-.63 11.893 2.276 15.19 2.37 3.3.096 7.99-.805 10.87-.615 2.09.098 4.143.483 6.16 1.03 1.306-6.49 1.4-11.27 4.492-12.38 1.814.293 3.213 2.818 4.25 4.167 2.112-.086 4.12.46 6.115 1.066 3.61-.522 6.642-2.593 9.833-4.203-3.234 2.69-3.673 7.075-3.303 11.127.138 2.103-.444 4.386-1.164 6.54-1.348 3.507-3.95 7.204-6.97 7.014-1.14-.036-1.805-.695-2.653-1.4-.164 1.427-.81 2.7-1.434 3.96-1.44 2.797-5.203 4.03-8.687 7.016-3.484 2.985 1.114 13.65 2.23 15.594 1.114 1.94 4.226 2.652 3.02 4.406-.37.58-.936.785-1.54 1.01l-.82.11zm-40.097-8.85l.553.14c.694-.27 2.09.15 2.83.353-1.363-1.31-3.417-3.24-4.897-4.46-.485-1.47-.278-2.96-.174-4.46l.02-.123c-.582 1.205-1.322 2.376-1.72 3.645-.465 1.71 2.07 3.557 3.052 4.615l.336.3z\" fill-rule=\"evenodd\"/></svg>"
},
"$:/core/images/add-comment": {
"title": "$:/core/images/add-comment",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-add-comment tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 56H36a8 8 0 100 16h20v20a8 8 0 1016 0V72h20a8 8 0 100-16H72V36a8 8 0 10-16 0v20zm-12.595 58.362c-6.683 7.659-20.297 12.903-36.006 12.903-2.196 0-4.35-.102-6.451-.3 9.652-3.836 17.356-12.24 21.01-22.874C8.516 94.28 0 79.734 0 63.5 0 33.953 28.206 10 63 10s63 23.953 63 53.5S97.794 117 63 117c-6.841 0-13.428-.926-19.595-2.638z\"/></svg>"
},
"$:/core/images/advanced-search-button": {
"title": "$:/core/images/advanced-search-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-advanced-search-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M74.565 87.985A47.776 47.776 0 0148 96C21.49 96 0 74.51 0 48S21.49 0 48 0s48 21.49 48 48c0 9.854-2.97 19.015-8.062 26.636l34.347 34.347a9.443 9.443 0 010 13.36 9.446 9.446 0 01-13.36 0l-34.36-34.358zM48 80c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/><circle cx=\"48\" cy=\"48\" r=\"8\"/><circle cx=\"28\" cy=\"48\" r=\"8\"/><circle cx=\"68\" cy=\"48\" r=\"8\"/></g></svg>"
},
"$:/core/images/auto-height": {
"title": "$:/core/images/auto-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-auto-height tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M67.987 114.356l-.029-14.477a4 4 0 00-2.067-3.494l-15.966-8.813-1.933 7.502H79.9c4.222 0 5.564-5.693 1.786-7.58L49.797 71.572 48.01 79.15h31.982c4.217 0 5.564-5.682 1.795-7.575L49.805 55.517l-1.795 7.575h31.982c4.212 0 5.563-5.67 1.805-7.57l-16.034-8.105 2.195 3.57V35.614l9.214 9.213a4 4 0 105.656-5.656l-16-16a4 4 0 00-5.656 0l-16 16a4 4 0 105.656 5.656l9.13-9.13v15.288a4 4 0 002.195 3.57l16.035 8.106 1.804-7.57H48.01c-4.217 0-5.564 5.682-1.795 7.574l31.982 16.059 1.795-7.575H48.01c-4.222 0-5.564 5.693-1.787 7.579l31.89 15.923 1.787-7.578H47.992c-4.133 0-5.552 5.504-1.933 7.501l15.966 8.813-2.067-3.494.029 14.436-9.159-9.158a4 4 0 00-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656l-9.185 9.184zM16 20h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/blank": {
"title": "$:/core/images/blank",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-blank tc-image-button\" viewBox=\"0 0 128 128\"/>"
},
"$:/core/images/bold": {
"title": "$:/core/images/bold",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-bold tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.146 51.81V21.87h26.353c2.51 0 4.93.21 7.26.628 2.33.418 4.392 1.165 6.185 2.24 1.793 1.076 3.227 2.57 4.302 4.482 1.076 1.913 1.614 4.363 1.614 7.35 0 5.379-1.613 9.263-4.84 11.653-3.227 2.39-7.35 3.586-12.37 3.586H41.146zM13 0v128h62.028a65.45 65.45 0 0016.762-2.151c5.438-1.434 10.278-3.645 14.52-6.633 4.244-2.988 7.62-6.842 10.13-11.563 2.51-4.721 3.764-10.308 3.764-16.762 0-8.008-1.942-14.85-5.826-20.527-3.884-5.677-9.77-9.65-17.658-11.921 5.737-2.75 10.069-6.275 12.997-10.577 2.928-4.303 4.392-9.681 4.392-16.135 0-5.976-.986-10.995-2.958-15.059-1.972-4.063-4.75-7.32-8.336-9.77-3.585-2.45-7.888-4.213-12.907-5.289C84.888.538 79.33 0 73.235 0H13zm28.146 106.129V70.992H71.8c6.095 0 10.995 1.404 14.7 4.212 3.705 2.81 5.558 7.5 5.558 14.073 0 3.347-.568 6.096-1.703 8.247-1.136 2.151-2.66 3.854-4.572 5.11-1.912 1.254-4.123 2.15-6.633 2.688-2.51.538-5.139.807-7.888.807H41.146z\"/></svg>"
},
"$:/core/images/cancel-button": {
"title": "$:/core/images/cancel-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-cancel-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 76.314l-16.97 16.97a7.999 7.999 0 01-11.314 0c-3.118-3.118-3.124-8.19 0-11.313L52.686 65l-16.97-16.97a7.999 7.999 0 010-11.314c3.118-3.118 8.19-3.124 11.313 0L64 53.686l16.97-16.97a7.999 7.999 0 0111.314 0c3.118 3.118 3.124 8.19 0 11.313L75.314 65l16.97 16.97a7.999 7.999 0 010 11.314c-3.118 3.118-8.19 3.124-11.313 0L64 76.314zM64 129c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 1 0 29.654 0 65c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 17 64 17 16 38.49 16 65s21.49 48 48 48z\"/></svg>"
},
"$:/core/images/chevron-down": {
"title": "$:/core/images/chevron-down",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-down tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.053 85.456a7.889 7.889 0 01-5.6-2.316L2.473 27.16a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0L64.05 66.344l50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.105 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.317z\"/><path d=\"M64.053 124.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.085 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></g></svg>"
},
"$:/core/images/chevron-left": {
"title": "$:/core/images/chevron-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M47.544 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L66.656 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.105 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.317-5.595z\"/><path d=\"M8.931 64.053c0-2.027.77-4.054 2.316-5.6l55.98-55.98a7.92 7.92 0 0111.196 0c3.085 3.086 3.092 8.105 0 11.196L28.041 64.05l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.085-8.104 3.092-11.196 0l-55.98-55.98a7.892 7.892 0 01-2.316-5.595z\"/></g></svg>"
},
"$:/core/images/chevron-right": {
"title": "$:/core/images/chevron-right",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-right tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M83.456 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196L64.344 63.95 13.963 13.567a7.92 7.92 0 010-11.195c3.086-3.085 8.105-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.317 5.595z\"/><path d=\"M122.069 63.947c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></g></svg>"
},
"$:/core/images/chevron-up": {
"title": "$:/core/images/chevron-up",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-chevron-up tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M63.947 44.544c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 63.656l-50.382 50.382a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.317z\"/><path d=\"M63.947 5.931c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.105 3.092-11.196 0L63.95 25.041 13.567 75.423a7.92 7.92 0 01-11.195 0c-3.085-3.086-3.092-8.104 0-11.196l55.98-55.98a7.892 7.892 0 015.595-2.316z\"/></g></svg>"
},
"$:/core/images/clone-button": {
"title": "$:/core/images/clone-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-clone-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M32.265 96v24.002A7.996 7.996 0 0040.263 128h79.74a7.996 7.996 0 007.997-7.998v-79.74a7.996 7.996 0 00-7.998-7.997H96V48h12.859a2.99 2.99 0 012.994 2.994v57.865a2.99 2.99 0 01-2.994 2.994H50.994A2.99 2.99 0 0148 108.859V96H32.265z\"/><path d=\"M40 56h-7.993C27.588 56 24 52.418 24 48c0-4.41 3.585-8 8.007-8H40v-7.993C40 27.588 43.582 24 48 24c4.41 0 8 3.585 8 8.007V40h7.993C68.412 40 72 43.582 72 48c0 4.41-3.585 8-8.007 8H56v7.993C56 68.412 52.418 72 48 72c-4.41 0-8-3.585-8-8.007V56zM8 0C3.58 0 0 3.588 0 8v80c0 4.419 3.588 8 8 8h80c4.419 0 8-3.588 8-8V8c0-4.419-3.588-8-8-8H8zM19 16A2.997 2.997 0 0016 19.001v57.998A2.997 2.997 0 0019.001 80h57.998A2.997 2.997 0 0080 76.999V19.001A2.997 2.997 0 0076.999 16H19.001z\"/></g></svg>"
},
"$:/core/images/close-all-button": {
"title": "$:/core/images/close-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-close-all-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M28 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L16.686 100 2.543 85.856a8 8 0 0111.313-11.313L28 88.686l14.144-14.143a8 8 0 0111.313 11.313L39.314 100l14.143 14.144a8 8 0 01-11.313 11.313L28 111.314zM28 39.314L13.856 53.457A8 8 0 012.543 42.144L16.686 28 2.543 13.856A8 8 0 0113.856 2.543L28 16.686 42.144 2.543a8 8 0 0111.313 11.313L39.314 28l14.143 14.144a8 8 0 01-11.313 11.313L28 39.314zM100 39.314L85.856 53.457a8 8 0 01-11.313-11.313L88.686 28 74.543 13.856A8 8 0 0185.856 2.543L100 16.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 28l14.143 14.144a8 8 0 01-11.313 11.313L100 39.314zM100 111.314l-14.144 14.143a8 8 0 01-11.313-11.313L88.686 100 74.543 85.856a8 8 0 0111.313-11.313L100 88.686l14.144-14.143a8 8 0 0111.313 11.313L111.314 100l14.143 14.144a8 8 0 01-11.313 11.313L100 111.314z\"/></g></svg>"
},
"$:/core/images/close-button": {
"title": "$:/core/images/close-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M65.086 75.41l-50.113 50.113c-3.121 3.121-8.192 3.126-11.316.002-3.118-3.118-3.123-8.19.002-11.316l50.114-50.114L3.659 13.982C.538 10.86.533 5.79 3.657 2.666c3.118-3.118 8.19-3.123 11.316.002l50.113 50.114L115.2 2.668c3.121-3.121 8.192-3.126 11.316-.002 3.118 3.118 3.123 8.19-.002 11.316L76.4 64.095l50.114 50.114c3.121 3.121 3.126 8.192.002 11.316-3.118 3.118-8.19 3.123-11.316-.002L65.086 75.409z\"/></svg>"
},
"$:/core/images/close-others-button": {
"title": "$:/core/images/close-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-close-others-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48zm0-16c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32zm0-16c8.837 0 16-7.163 16-16s-7.163-16-16-16-16 7.163-16 16 7.163 16 16 16z\"/></svg>"
},
"$:/core/images/copy-clipboard": {
"title": "$:/core/images/copy-clipboard",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-copy-clipboard tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"33\" height=\"8\" x=\"40\" y=\"40\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"82\" rx=\"4\"/><rect width=\"17\" height=\"8\" x=\"40\" y=\"54\" rx=\"4\"/><rect width=\"33\" height=\"8\" x=\"40\" y=\"96\" rx=\"4\"/><rect width=\"12\" height=\"8\" x=\"40\" y=\"68\" rx=\"4\"/><path d=\"M40 16H24c-4.419 0-8 3.59-8 8a8.031 8.031 0 000 .01v95.98a8.03 8.03 0 000 .01c0 4.41 3.581 8 8 8h80a7.975 7.975 0 005.652-2.34 7.958 7.958 0 002.348-5.652v-16.016c0-4.414-3.582-7.992-8-7.992-4.41 0-8 3.578-8 7.992V112H32V32h64v8.008C96 44.422 99.582 48 104 48c4.41 0 8-3.578 8-7.992V23.992a7.963 7.963 0 00-2.343-5.651A7.995 7.995 0 00104.001 16H88c0-4.41-3.585-8-8.007-8H48.007C43.588 8 40 11.582 40 16zm4-1.004A4.001 4.001 0 0148 11h32c2.21 0 4 1.797 4 3.996v4.008A4.001 4.001 0 0180 23H48c-2.21 0-4-1.797-4-3.996v-4.008z\"/><rect width=\"66\" height=\"16\" x=\"62\" y=\"64\" rx=\"8\"/><path d=\"M84.657 82.343l-16-16v11.314l16-16a8 8 0 10-11.314-11.314l-16 16a8 8 0 000 11.314l16 16a8 8 0 1011.314-11.314z\"/></g></svg>"
},
"$:/core/images/delete-button": {
"title": "$:/core/images/delete-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-delete-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(12)\"><rect width=\"105\" height=\"16\" y=\"11\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"28\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"8\" y=\"16\" rx=\"8\"/><rect width=\"88\" height=\"16\" x=\"8\" y=\"112\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"80\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"56\" y=\"16\" rx=\"8\"/><rect width=\"16\" height=\"112\" x=\"32\" y=\"16\" rx=\"8\"/></g></svg>"
},
"$:/core/images/done-button": {
"title": "$:/core/images/done-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-done-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M42.26 111.032c-2.051.001-4.103-.78-5.668-2.345L2.662 74.758a8 8 0 01-.005-11.32c3.118-3.117 8.192-3.12 11.32.007l28.278 28.278 72.124-72.124a8.002 8.002 0 0111.314-.001c3.118 3.118 3.124 8.19 0 11.315l-77.78 77.78a7.978 7.978 0 01-5.658 2.343z\"/></svg>"
},
"$:/core/images/down-arrow": {
"title": "$:/core/images/down-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-down-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.177 100.069a7.889 7.889 0 01-5.6-2.316l-55.98-55.98a7.92 7.92 0 010-11.196c3.086-3.085 8.105-3.092 11.196 0l50.382 50.382 50.382-50.382a7.92 7.92 0 0111.195 0c3.086 3.086 3.092 8.104 0 11.196l-55.98 55.98a7.892 7.892 0 01-5.595 2.316z\"/></svg>"
},
"$:/core/images/download-button": {
"title": "$:/core/images/download-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-download-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\" class=\"tc-image-download-button-ring\"/><path d=\"M34.35 66.43l26.892 27.205a4.57 4.57 0 006.516 0L94.65 66.43a4.7 4.7 0 000-6.593 4.581 4.581 0 00-3.258-1.365h-8.46c-2.545 0-4.608-2.087-4.608-4.661v-15.15c0-2.575-2.063-4.662-4.608-4.662H55.284c-2.545 0-4.608 2.087-4.608 4.662v15.15c0 2.574-2.063 4.661-4.608 4.661h-8.46c-2.545 0-4.608 2.087-4.608 4.662a4.69 4.69 0 001.35 3.296z\"/></g></svg>"
},
"$:/core/images/edit-button": {
"title": "$:/core/images/edit-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-edit-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M95.627 10.059l-5.656 5.657 11.313 11.313 5.657-5.656-11.314-11.314zm5.657-5.657l1.966-1.966c3.123-3.122 8.194-3.129 11.319-.005 3.117 3.118 3.122 8.192-.005 11.32l-1.966 1.965-11.314-11.314zm-16.97 16.97l-60.25 60.25a8.12 8.12 0 00-.322.342c-.1.087-.198.179-.295.275-5.735 5.735-10.702 22.016-10.702 22.016s16.405-5.09 22.016-10.702c.095-.096.186-.193.272-.292a8.12 8.12 0 00.345-.325l60.25-60.25-11.314-11.313zM35.171 124.19c6.788-.577 13.898-2.272 23.689-5.348 1.825-.573 3.57-1.136 6.336-2.04 16-5.226 21.877-6.807 28.745-7.146 8.358-.413 13.854 2.13 17.58 8.699a4 4 0 006.959-3.946c-5.334-9.406-13.745-13.296-24.933-12.744-7.875.39-14.057 2.052-30.835 7.533-2.739.894-4.46 1.45-6.25 2.012-19.46 6.112-30.77 7.072-39.597 1.747a4 4 0 10-4.132 6.85c6.333 3.82 13.754 5.12 22.438 4.383z\"/></g></svg>"
},
"$:/core/images/erase": {
"title": "$:/core/images/erase",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-erase tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.087 127.996l63.015-63.015c6.535-6.535 6.528-17.115-.003-23.646L99.466 17.702c-6.539-6.538-17.117-6.532-23.646-.003L4.898 88.62c-6.535 6.534-6.528 17.115.003 23.646l15.73 15.73h39.456zm-34.95-7.313l-14.324-14.325c-3.267-3.268-3.268-8.564-.008-11.824L46.269 59.07l35.462 35.462-26.15 26.15H25.137z\"/></svg>"
},
"$:/core/images/excise": {
"title": "$:/core/images/excise",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-excise tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 107.314l-2.343 2.343a8 8 0 11-11.314-11.314l16-16a8 8 0 0111.314 0l16 16a8 8 0 11-11.314 11.314L72 107.314v14.284c0 3.536-3.582 6.402-8 6.402s-8-2.866-8-6.402v-14.284zM0 40.007C0 35.585 3.59 32 8 32c4.418 0 8 3.588 8 8.007v31.986C16 76.415 12.41 80 8 80c-4.418 0-8-3.588-8-8.007V40.007zm32 0C32 35.585 35.59 32 40 32c4.418 0 8 3.588 8 8.007v31.986C48 76.415 44.41 80 40 80c-4.418 0-8-3.588-8-8.007V40.007zm48 0C80 35.585 83.59 32 88 32c4.418 0 8 3.588 8 8.007v31.986C96 76.415 92.41 80 88 80c-4.418 0-8-3.588-8-8.007V40.007zm-24-32C56 3.585 59.59 0 64 0c4.418 0 8 3.588 8 8.007v31.986C72 44.415 68.41 48 64 48c-4.418 0-8-3.588-8-8.007V8.007zm56 32c0-4.422 3.59-8.007 8-8.007 4.418 0 8 3.588 8 8.007v31.986c0 4.422-3.59 8.007-8 8.007-4.418 0-8-3.588-8-8.007V40.007z\"/></svg>"
},
"$:/core/images/export-button": {
"title": "$:/core/images/export-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-export-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.003 128H119.993a7.984 7.984 0 005.664-2.349v.007A7.975 7.975 0 00128 120V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v56H16V56c0-4.418-3.59-8-8-8-4.418 0-8 3.58-8 8v64c0 4.418 3.59 8 8 8h.003zm48.62-100.689l-8.965 8.966c-3.125 3.125-8.195 3.13-11.319.005-3.118-3.118-3.122-8.192.005-11.319L58.962 2.346A7.986 7.986 0 0164.625 0l-.006.002c2.05-.001 4.102.78 5.666 2.344l22.618 22.617c3.124 3.125 3.129 8.195.005 11.319-3.118 3.118-8.192 3.122-11.319-.005l-8.965-8.966v61.256c0 4.411-3.582 8-8 8-4.41 0-8-3.582-8-8V27.311z\"/></svg>"
},
"$:/core/images/file": {
"title": "$:/core/images/file",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-file tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M111.968 30.5H112V120a8 8 0 01-8 8H24a8 8 0 01-8-8V8a8 8 0 018-8h57v.02a7.978 7.978 0 015.998 2.337l22.627 22.627a7.975 7.975 0 012.343 5.516zM81 8H24v112h80V30.5H89c-4.418 0-8-3.578-8-8V8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"68\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"84\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"100\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/></svg>"
},
"$:/core/images/fixed-height": {
"title": "$:/core/images/fixed-height",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fixed-height tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60 35.657l-9.172 9.171a4 4 0 11-5.656-5.656l16-16a4 4 0 015.656 0l16 16a4 4 0 01-5.656 5.656L68 35.657v57.686l9.172-9.171a4 4 0 115.656 5.656l-16 16a4 4 0 01-5.656 0l-16-16a4 4 0 115.656-5.656L60 93.343V35.657zM16 116h96a4 4 0 100-8H16a4 4 0 100 8zm0-96h96a4 4 0 100-8H16a4 4 0 100 8z\"/></svg>"
},
"$:/core/images/fold-all-button": {
"title": "$:/core/images/fold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M64.03 20.004c-2.05 0-4.102.78-5.667 2.344L35.746 44.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 22.348a7.986 7.986 0 00-5.663-2.346zM64.03 85.002c-2.05-.001-4.102.78-5.667 2.344l-22.617 22.617c-3.125 3.125-3.13 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.966 16.966 16.966c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.192-.005-11.319L69.687 87.346A7.986 7.986 0 0064.024 85z\"/></g></svg>"
},
"$:/core/images/fold-button": {
"title": "$:/core/images/fold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M64.03 25.004c-2.05 0-4.102.78-5.667 2.344L35.746 49.966c-3.125 3.124-3.13 8.194-.005 11.318 3.118 3.118 8.192 3.122 11.319-.005l16.965-16.965 16.966 16.965c3.124 3.125 8.194 3.13 11.318.005 3.118-3.118 3.122-8.191-.005-11.318L69.687 27.348a7.986 7.986 0 00-5.663-2.346zM64.005 67.379c-2.05 0-4.102.78-5.666 2.344L35.722 92.34c-3.125 3.125-3.13 8.195-.006 11.32 3.118 3.117 8.192 3.121 11.32-.006L64 86.69l16.965 16.965c3.125 3.125 8.195 3.13 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L69.663 69.723A7.986 7.986 0 0064 67.377z\"/></g></svg>"
},
"$:/core/images/fold-others-button": {
"title": "$:/core/images/fold-others-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-fold-others tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" y=\"56.031\" rx=\"8\"/><path d=\"M86.632 79.976c-2.05 0-4.102.78-5.666 2.345L64 99.286 47.034 82.321a7.986 7.986 0 00-5.662-2.346l.005.001c-2.05 0-4.102.78-5.666 2.345l-22.618 22.617c-3.124 3.125-3.129 8.195-.005 11.319 3.118 3.118 8.192 3.122 11.319-.005l16.966-16.966 16.965 16.966a7.986 7.986 0 005.663 2.346l-.005-.002c2.05 0 4.102-.78 5.666-2.344l16.965-16.966 16.966 16.966c3.125 3.124 8.194 3.129 11.319.005 3.118-3.118 3.122-8.192-.005-11.319L92.289 82.321a7.986 7.986 0 00-5.663-2.346zM86.7 48.024c-2.05 0-4.102-.78-5.666-2.345L64.07 28.714 47.103 45.679a7.986 7.986 0 01-5.663 2.346l.005-.001c-2.05 0-4.101-.78-5.666-2.345L13.162 23.062c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L41.44 28.714l16.966-16.966a7.986 7.986 0 015.662-2.346l-.005.002c2.05 0 4.102.78 5.666 2.344l16.966 16.966 16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L92.358 45.679a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/folder": {
"title": "$:/core/images/folder",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-folder tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.694 128H8C3.58 128 0 124.414 0 119.996V48.004C0 43.584 3.584 40 7.999 40H16v-8c0-4.418 3.578-8 8-8h32a8 8 0 018 8v8h40.001c4.418 0 7.999 3.586 7.999 8.004V59.83l-8-.082v-7.749A4 4 0 0099.997 48H56V36c0-2.21-1.793-4-4.004-4H28.004A4 4 0 0024 36v12H12.003A4 4 0 008 52v64a4 4 0 004.003 4h46.76l-3.069 8z\"/><path d=\"M23.873 55.5h96.003c4.417 0 7.004 4.053 5.774 9.063l-13.344 54.374c-1.228 5.005-5.808 9.063-10.223 9.063H6.08c-4.417 0-7.003-4.053-5.774-9.063L13.65 64.563c1.228-5.005 5.808-9.063 10.223-9.063zm1.78 8.5h87.994c2.211 0 3.504 2.093 2.891 4.666l-11.12 46.668c-.614 2.577-2.902 4.666-5.115 4.666H12.31c-2.211 0-3.504-2.093-2.891-4.666l11.12-46.668C21.152 66.09 23.44 64 25.653 64z\"/></g></svg>"
},
"$:/core/images/full-screen-button": {
"title": "$:/core/images/full-screen-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-full-screen-button tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 8a8 8 0 018-8h32a8 8 0 110 16H16v24a8 8 0 11-16 0V8zM128 120a8 8 0 01-8 8H88a8 8 0 110-16h24V88a8 8 0 1116 0v32zM8 128a8 8 0 01-8-8V88a8 8 0 1116 0v24h24a8 8 0 110 16H8zM120 0a8 8 0 018 8v32a8 8 0 11-16 0V16H88a8 8 0 110-16h32z\"/></svg>"
},
"$:/core/images/github": {
"title": "$:/core/images/github",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-github tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M63.938 1.607c-35.336 0-63.994 28.69-63.994 64.084 0 28.312 18.336 52.329 43.768 60.802 3.202.59 4.37-1.388 4.37-3.088 0-1.518-.056-5.55-.087-10.897-17.802 3.871-21.558-8.591-21.558-8.591-2.911-7.404-7.108-9.375-7.108-9.375-5.81-3.973.44-3.895.44-3.895 6.424.453 9.803 6.606 9.803 6.606 5.709 9.791 14.981 6.963 18.627 5.322.582-4.138 2.236-6.963 4.063-8.564-14.211-1.617-29.153-7.117-29.153-31.672 0-6.995 2.495-12.718 6.589-17.195-.66-1.621-2.856-8.14.629-16.96 0 0 5.37-1.722 17.597 6.57 5.104-1.424 10.58-2.132 16.022-2.16 5.438.028 10.91.736 16.022 2.16 12.22-8.292 17.582-6.57 17.582-6.57 3.493 8.82 1.297 15.339.64 16.96 4.102 4.477 6.578 10.2 6.578 17.195 0 24.618-14.966 30.035-29.22 31.62 2.295 1.98 4.342 5.89 4.342 11.87 0 8.564-.079 15.476-.079 17.576 0 1.715 1.155 3.71 4.4 3.084 25.413-8.493 43.733-32.494 43.733-60.798 0-35.394-28.657-64.084-64.006-64.084\"/></svg>"
},
"$:/core/images/gitter": {
"title": "$:/core/images/gitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-gitter tc-image-button\" viewBox=\"0 0 18 25\"><path d=\"M15 5h2v10h-2zM10 5h2v20h-2zM5 5h2v20H5zM0 0h2v15H0z\"/></svg>"
},
"$:/core/images/globe": {
"title": "$:/core/images/globe",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-globe tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M72.811 37.128v2.554c0 2.196.978 6.881 0 8.832-1.466 2.928-4.65 3.54-6.394 5.867-1.182 1.577-4.618 10.601-3.69 12.92 3.969 9.922 11.534 3.187 17.962 9.293.864.821 2.887 2.273 3.296 3.296 3.29 8.223-7.576 15.009 3.757 26.3 1.245 1.24 3.813-3.817 4.079-4.614.852-2.563 6.725-5.45 9.088-7.053 2.02-1.37 4.873-2.667 6.328-4.745 2.27-3.244 1.48-7.514 3.098-10.745 2.139-4.274 3.828-9.635 5.998-13.966 3.898-7.781 4.721 2.093 5.067 2.439.358.357 1.011 0 1.517 0 .094 0 1.447.099 1.516 0 .65-.935-1.043-17.92-1.318-19.297-1.404-7.01-6.944-15.781-11.865-20.5-6.274-6.015-7.09-16.197-18.259-14.954-.204.022-5.084 10.148-7.777 13.512-3.728 4.657-2.47-4.153-6.526-4.153-.081 0-1.183-.103-1.253 0-.586.88-1.44 3.896-2.306 4.417-.265.16-1.722-.239-1.846 0-2.243 4.3 8.256 2.212 5.792 7.952-2.352 5.481-6.328-1.997-6.328 8.56M44.467 7.01c9.685 6.13.682 12.198 2.694 16.215 1.655 3.303 4.241 5.395 1.714 9.814-2.063 3.608-6.87 3.966-9.623 6.723-3.04 3.044-5.464 8.94-6.79 12.911-1.617 4.843 14.547 6.866 12.063 11.008-1.386 2.311-6.746 1.466-8.437.198-1.165-.873-3.593-.546-4.417-1.78-2.613-3.915-2.26-8.023-3.625-12.128-.938-2.822-6.313-2.12-7.844-.593-.523.522-.33 1.792-.33 2.505 0 5.285 7.12 3.316 7.12 6.46 0 14.636 3.927 6.534 11.14 11.336 10.036 6.683 7.844 7.303 14.946 14.404 3.673 3.673 7.741 3.686 9.425 9.294 1.602 5.331-9.327 5.339-11.716 7.448-1.123.991-2.813 4.146-4.219 4.615-1.792.598-3.234.496-4.944 1.78-2.427 1.82-3.9 4.932-4.02 4.81-2.148-2.147-3.52-15.479-3.89-18.257-.588-4.42-5.59-5.54-6.986-9.03-1.57-3.927 1.524-9.52-1.129-13.761-6.52-10.424-11.821-14.5-15.35-26.292-.942-3.148 3.342-6.529 4.877-8.833 1.877-2.816 2.662-5.854 4.746-8.635C22.147 24.19 40.855 9.461 43.857 8.635l.61-1.625z\"/><path d=\"M64 126c34.242 0 62-27.758 62-62 0-34.242-27.758-62-62-62C29.758 2 2 29.758 2 64c0 34.242 27.758 62 62 62zm0-6c30.928 0 56-25.072 56-56S94.928 8 64 8 8 33.072 8 64s25.072 56 56 56z\"/></g></svg>"
},
"$:/core/images/heading-1": {
"title": "$:/core/images/heading-1",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-1 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M14 30h13.25v30.104H61.7V30h13.25v75.684H61.7V71.552H27.25v34.132H14V30zm70.335 13.78c2.544 0 5.017-.212 7.42-.636 2.403-.424 4.576-1.13 6.52-2.12 1.942-.99 3.603-2.261 4.981-3.816 1.378-1.555 2.28-3.463 2.703-5.724h9.858v74.2h-13.25V53.32H84.335v-9.54z\"/></svg>"
},
"$:/core/images/heading-2": {
"title": "$:/core/images/heading-2",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-2 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm119.52 75.684H74.85c.07-6.148 1.555-11.519 4.452-16.112 2.897-4.593 6.855-8.586 11.872-11.978a133.725 133.725 0 017.526-5.141 59.6 59.6 0 007.208-5.353c2.19-1.908 3.993-3.975 5.406-6.201 1.413-2.226 2.155-4.788 2.226-7.685 0-1.343-.159-2.774-.477-4.293a11.357 11.357 0 00-1.855-4.24c-.919-1.307-2.19-2.403-3.816-3.286-1.625-.883-3.745-1.325-6.36-1.325-2.403 0-4.399.477-5.989 1.431-1.59.954-2.862 2.261-3.816 3.922-.954 1.66-1.66 3.622-2.12 5.883-.46 2.261-.724 4.7-.795 7.314H76.23c0-4.099.548-7.897 1.643-11.395 1.095-3.498 2.738-6.519 4.93-9.063 2.19-2.544 4.857-4.54 8.002-5.989C93.95 30.724 97.606 30 101.775 30c4.523 0 8.303.742 11.342 2.226 3.039 1.484 5.494 3.357 7.367 5.618 1.873 2.261 3.198 4.717 3.975 7.367.777 2.65 1.166 5.176 1.166 7.579 0 2.968-.46 5.653-1.378 8.056a25.942 25.942 0 01-3.71 6.625 37.5 37.5 0 01-5.3 5.565 79.468 79.468 0 01-6.148 4.77 165.627 165.627 0 01-6.36 4.24 94.28 94.28 0 00-5.883 4.028c-1.802 1.343-3.374 2.738-4.717 4.187-1.343 1.449-2.261 2.986-2.756 4.611h36.146v10.812z\"/></svg>"
},
"$:/core/images/heading-3": {
"title": "$:/core/images/heading-3",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-3 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm88.885 32.224c1.979.07 3.957-.07 5.936-.424 1.979-.353 3.745-.972 5.3-1.855a10.365 10.365 0 003.763-3.657c.954-1.555 1.431-3.463 1.431-5.724 0-3.18-1.078-5.724-3.233-7.632-2.155-1.908-4.929-2.862-8.32-2.862-2.12 0-3.958.424-5.513 1.272a11.318 11.318 0 00-3.869 3.445c-1.025 1.449-1.784 3.074-2.279 4.876a18.335 18.335 0 00-.636 5.565H75.381c.141-3.604.813-6.943 2.014-10.017 1.201-3.074 2.844-5.742 4.93-8.003 2.084-2.261 4.61-4.028 7.578-5.3C92.871 30.636 96.228 30 99.973 30a29.2 29.2 0 018.533 1.272c2.791.848 5.3 2.085 7.526 3.71s4.01 3.692 5.353 6.201c1.343 2.509 2.014 5.388 2.014 8.639 0 3.745-.848 7.014-2.544 9.805-1.696 2.791-4.346 4.823-7.95 6.095v.212c4.24.848 7.544 2.95 9.911 6.307s3.551 7.438 3.551 12.243c0 3.533-.707 6.696-2.12 9.487a21.538 21.538 0 01-5.724 7.102c-2.403 1.943-5.194 3.445-8.374 4.505-3.18 1.06-6.537 1.59-10.07 1.59-4.31 0-8.074-.618-11.289-1.855s-5.9-2.986-8.056-5.247c-2.155-2.261-3.798-4.982-4.929-8.162-1.13-3.18-1.731-6.713-1.802-10.6h12.084c-.141 4.523.972 8.286 3.34 11.289 2.366 3.003 5.917 4.505 10.652 4.505 4.028 0 7.402-1.148 10.123-3.445 2.72-2.297 4.081-5.565 4.081-9.805 0-2.897-.565-5.194-1.696-6.89a10.97 10.97 0 00-4.452-3.869c-1.837-.883-3.904-1.431-6.2-1.643a58.067 58.067 0 00-7.05-.212v-9.01z\"/></svg>"
},
"$:/core/images/heading-4": {
"title": "$:/core/images/heading-4",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-4 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8 30h13.25v30.104H55.7V30h13.25v75.684H55.7V71.552H21.25v34.132H8V30zm76.59 48.548h22.471V45.9h-.212L84.59 78.548zm43.46 9.54h-9.54v17.596H107.06V88.088h-31.8V76.11l31.8-44.626h11.448v47.064h9.54v9.54z\"/></svg>"
},
"$:/core/images/heading-5": {
"title": "$:/core/images/heading-5",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-5 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm77.755 1.484h38.372v10.812H92.765L88.95 61.164l.212.212c1.625-1.837 3.692-3.233 6.201-4.187 2.509-.954 5-1.431 7.473-1.431 3.675 0 6.96.618 9.858 1.855 2.897 1.237 5.335 2.968 7.314 5.194s3.48 4.858 4.505 7.897c1.025 3.039 1.537 6.325 1.537 9.858 0 2.968-.477 6.024-1.43 9.169a25.161 25.161 0 01-4.559 8.586c-2.085 2.58-4.752 4.7-8.003 6.36-3.25 1.66-7.137 2.491-11.66 2.491-3.604 0-6.943-.477-10.017-1.431-3.074-.954-5.777-2.385-8.109-4.293-2.332-1.908-4.187-4.258-5.565-7.049-1.378-2.791-2.138-6.06-2.279-9.805h12.084c.353 4.028 1.731 7.12 4.134 9.275 2.403 2.155 5.583 3.233 9.54 3.233 2.544 0 4.7-.424 6.466-1.272 1.767-.848 3.198-2.014 4.293-3.498 1.095-1.484 1.873-3.215 2.332-5.194.46-1.979.69-4.099.69-6.36 0-2.05-.284-4.01-.849-5.883-.565-1.873-1.413-3.516-2.544-4.929-1.13-1.413-2.597-2.544-4.399-3.392-1.802-.848-3.904-1.272-6.307-1.272-2.544 0-4.929.477-7.155 1.431-2.226.954-3.834 2.738-4.823 5.353H75.805l7.95-40.598z\"/></svg>"
},
"$:/core/images/heading-6": {
"title": "$:/core/images/heading-6",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-heading-6 tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M6 30h13.25v30.104H53.7V30h13.25v75.684H53.7V71.552H19.25v34.132H6V30zm106.587 20.246c-.283-3.039-1.36-5.494-3.233-7.367-1.873-1.873-4.399-2.809-7.579-2.809-2.19 0-4.08.406-5.67 1.219a12.435 12.435 0 00-4.029 3.233c-1.095 1.343-1.979 2.88-2.65 4.611a37.696 37.696 0 00-1.643 5.459 46.08 46.08 0 00-.9 5.671 722.213 722.213 0 00-.478 5.247l.212.212c1.625-2.968 3.87-5.176 6.731-6.625 2.862-1.449 5.954-2.173 9.275-2.173 3.675 0 6.96.636 9.858 1.908 2.897 1.272 5.353 3.021 7.367 5.247 2.014 2.226 3.551 4.858 4.611 7.897 1.06 3.039 1.59 6.325 1.59 9.858 0 3.604-.583 6.943-1.749 10.017-1.166 3.074-2.844 5.76-5.035 8.056-2.19 2.297-4.805 4.081-7.844 5.353-3.039 1.272-6.395 1.908-10.07 1.908-5.441 0-9.91-1.007-13.409-3.021-3.498-2.014-6.254-4.77-8.268-8.268-2.014-3.498-3.41-7.597-4.187-12.296-.777-4.7-1.166-9.77-1.166-15.211 0-4.452.477-8.94 1.431-13.462.954-4.523 2.526-8.639 4.717-12.349 2.19-3.71 5.07-6.731 8.64-9.063C92.676 31.166 97.075 30 102.304 30c2.968 0 5.76.495 8.374 1.484 2.615.99 4.93 2.367 6.943 4.134 2.014 1.767 3.657 3.887 4.93 6.36 1.271 2.473 1.978 5.23 2.12 8.268h-12.085zm-11.66 46.852c2.19 0 4.099-.442 5.724-1.325a12.869 12.869 0 004.081-3.445c1.095-1.413 1.908-3.056 2.438-4.929.53-1.873.795-3.798.795-5.777s-.265-3.887-.795-5.724c-.53-1.837-1.343-3.445-2.438-4.823-1.095-1.378-2.456-2.491-4.08-3.339-1.626-.848-3.534-1.272-5.725-1.272-2.19 0-4.116.406-5.777 1.219-1.66.813-3.056 1.908-4.187 3.286-1.13 1.378-1.979 2.986-2.544 4.823-.565 1.837-.848 3.78-.848 5.83 0 2.05.283 3.993.848 5.83.565 1.837 1.413 3.48 2.544 4.929a12.39 12.39 0 004.187 3.445c1.66.848 3.586 1.272 5.777 1.272z\"/></svg>"
},
"$:/core/images/help": {
"title": "$:/core/images/help",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-help tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M36.055 111.441c-5.24 4.396-15.168 7.362-26.555 7.362-1.635 0-3.24-.06-4.806-.179 7.919-2.64 14.062-8.6 16.367-16.014C8.747 92.845 1.05 78.936 1.05 63.5c0-29.547 28.206-53.5 63-53.5s63 23.953 63 53.5-28.206 53.5-63 53.5c-10.055 0-19.56-2-27.994-5.559zm35.35-33.843a536.471 536.471 0 00.018-4.682 199.02 199.02 0 00-.023-3.042c.008-1.357.595-2.087 3.727-4.235.112-.077 1.085-.74 1.386-.948 3.093-2.133 5.022-3.786 6.762-6.187 2.34-3.228 3.558-7.077 3.558-11.649 0-13.292-9.86-21.952-21.455-21.952-11.103 0-22.499 9.609-24.066 22.295a6.023 6.023 0 1011.956 1.477c.806-6.527 6.972-11.726 12.11-11.726 5.265 0 9.408 3.64 9.408 9.906 0 3.634-1.1 5.153-5.111 7.919l-1.362.93c-2.682 1.84-4.227 3.1-5.7 4.931-2.109 2.62-3.242 5.717-3.258 9.314.013.892.02 1.86.022 2.981a470.766 470.766 0 01-.022 4.943 6.023 6.023 0 1012.046.12l.003-.395zm-6.027 24.499a7.529 7.529 0 100-15.058 7.529 7.529 0 000 15.058z\"/></svg>"
},
"$:/core/images/home-button": {
"title": "$:/core/images/home-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-home-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112.985 119.502c.01-.165.015-.331.015-.499V67.568c3.137 2.948 8.076 2.884 11.134-.174a7.999 7.999 0 00-.002-11.316L70.396 2.343A7.978 7.978 0 0064.734 0a7.957 7.957 0 00-5.656 2.343L33 28.42V8.007C33 3.585 29.41 0 25 0c-4.418 0-8 3.59-8 8.007V44.42L5.342 56.078c-3.125 3.125-3.12 8.198-.002 11.316a7.999 7.999 0 0011.316-.003l.344-.343v52.945a8.11 8.11 0 000 .007c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8a8.11 8.11 0 00-.015-.498zM97 112V51.574L64.737 19.31 33 51.048V112h64z\"/></svg>"
},
"$:/core/images/import-button": {
"title": "$:/core/images/import-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-import-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M114.832 60.436s3.235-3.27 6.921.417c3.686 3.686.231 7.14.231 7.14l-42.153 42.92s-30.765 32.367-58.798 4.333C-7 87.213 24.59 55.623 24.59 55.623L67.363 12.85s22.725-24.6 43.587-3.738c20.862 20.862-3.96 43.09-3.96 43.09l-35.04 35.04S49.903 112.546 36.426 99.07c-13.476-13.477 11.83-35.523 11.83-35.523l35.04-35.04s3.902-3.902 7.78-.023c3.879 3.878.118 7.921.118 7.921l-35.04 35.04s-13.212 13.212-8.872 17.551c4.34 4.34 16.77-9.653 16.77-9.653l35.04-35.04s16.668-14.598 3.966-27.3c-13.893-13.892-27.565 3.702-27.565 3.702l-42.91 42.91s-23.698 23.698-3.658 43.738 43.012-4.385 43.012-4.385l42.895-42.533z\"/></svg>"
},
"$:/core/images/info-button": {
"title": "$:/core/images/info-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-info-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\" transform=\"translate(.05)\"><path d=\"M64 128c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64C28.654 0 0 28.654 0 64c0 35.346 28.654 64 64 64zm0-16c26.51 0 48-21.49 48-48S90.51 16 64 16 16 37.49 16 64s21.49 48 48 48z\"/><circle cx=\"64\" cy=\"32\" r=\"8\"/><rect width=\"16\" height=\"56\" x=\"56\" y=\"48\" rx=\"8\"/></g></svg>"
},
"$:/core/images/italic": {
"title": "$:/core/images/italic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-italic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M66.711 0h22.41L62.408 128H40z\"/></svg>"
},
"$:/core/images/left-arrow": {
"title": "$:/core/images/left-arrow",
"created": "20150315234410875",
"modified": "20150315235324760",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-left-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M0 64.177c0-2.026.771-4.054 2.317-5.6l55.98-55.98a7.92 7.92 0 0111.195.001c3.086 3.085 3.092 8.104.001 11.195L19.111 64.175l50.382 50.382a7.92 7.92 0 010 11.195c-3.086 3.086-8.105 3.092-11.196.001l-55.98-55.98A7.892 7.892 0 010 64.177z\"/></svg>"
},
"$:/core/images/line-width": {
"title": "$:/core/images/line-width",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-line-width tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M16 18h96a2 2 0 000-4H16a2 2 0 100 4zm0 17h96a4 4 0 100-8H16a4 4 0 100 8zm0 21h96a6 6 0 000-12H16a6 6 0 100 12zm0 29h96c5.523 0 10-4.477 10-10s-4.477-10-10-10H16c-5.523 0-10 4.477-10 10s4.477 10 10 10zm0 43h96c8.837 0 16-7.163 16-16s-7.163-16-16-16H16c-8.837 0-16 7.163-16 16s7.163 16 16 16z\"/></svg>"
},
"$:/core/images/link": {
"title": "$:/core/images/link",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-link tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M42.263 69.38a31.919 31.919 0 006.841 10.13c12.5 12.5 32.758 12.496 45.255 0l22.627-22.628c12.502-12.501 12.497-32.758 0-45.255-12.5-12.5-32.758-12.496-45.254 0L49.104 34.255a32.333 32.333 0 00-2.666 3.019 36.156 36.156 0 0121.94.334l14.663-14.663c6.25-6.25 16.382-6.254 22.632-.004 6.248 6.249 6.254 16.373-.004 22.631l-22.62 22.62c-6.25 6.25-16.381 6.254-22.631.004a15.93 15.93 0 01-4.428-8.433 11.948 11.948 0 00-7.59 3.48l-6.137 6.137z\"/><path d=\"M86.35 59.234a31.919 31.919 0 00-6.84-10.13c-12.5-12.5-32.758-12.497-45.255 0L11.627 71.732c-12.501 12.5-12.496 32.758 0 45.254 12.5 12.5 32.758 12.497 45.255 0L79.51 94.36a32.333 32.333 0 002.665-3.02 36.156 36.156 0 01-21.94-.333l-14.663 14.663c-6.25 6.25-16.381 6.253-22.63.004-6.25-6.249-6.255-16.374.003-22.632l22.62-22.62c6.25-6.25 16.381-6.253 22.631-.003a15.93 15.93 0 014.428 8.432 11.948 11.948 0 007.59-3.48l6.137-6.136z\"/></g></svg>"
},
"$:/core/images/linkify": {
"title": "$:/core/images/linkify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-linkify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M17.031 31.919H9.048V96.85h7.983v6.92H0V25h17.031v6.919zm24.66 0h-7.983V96.85h7.983v6.92H24.66V25h17.03v6.919zM67.77 56.422l11.975-3.903 2.306 7.096-12.063 3.903 7.628 10.379-6.12 4.435-7.63-10.467-7.45 10.2-5.943-4.523L58.1 63.518 45.95 59.35l2.306-7.096 12.064 4.17V43.825h7.45v12.596zM86.31 96.85h7.982V31.92H86.31V25h17.031v78.77H86.31v-6.92zm24.659 0h7.983V31.92h-7.983V25H128v78.77h-17.031v-6.92z\"/></svg>"
},
"$:/core/images/list-bullet": {
"title": "$:/core/images/list-bullet",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-bullet tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M11.636 40.273c6.427 0 11.637-5.21 11.637-11.637C23.273 22.21 18.063 17 11.636 17 5.21 17 0 22.21 0 28.636c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.637 0-6.426-5.21-11.636-11.637-11.636C5.21 51.91 0 57.12 0 63.545c0 6.427 5.21 11.637 11.636 11.637zm0 34.909c6.427 0 11.637-5.21 11.637-11.636 0-6.427-5.21-11.637-11.637-11.637C5.21 86.818 0 92.028 0 98.455c0 6.426 5.21 11.636 11.636 11.636zM34.91 22.818H128v11.637H34.91V22.818zm0 34.91H128v11.636H34.91V57.727zm0 34.908H128v11.637H34.91V92.636z\"/></svg>"
},
"$:/core/images/list-number": {
"title": "$:/core/images/list-number",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list-number tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M33.84 22.356H128v11.77H33.84v-11.77zm0 35.31H128v11.77H33.84v-11.77zm0 35.311H128v11.77H33.84v-11.77zM.38 42.631v-2.223h.998c.826 0 1.445-.14 1.858-.42.413-.28.619-.948.619-2.002V22.769c0-1.442-.193-2.336-.58-2.683-.385-.347-1.477-.52-3.275-.52v-2.143c3.502-.147 6.252-.955 8.25-2.423h2.117v22.865c0 .921.15 1.575.449 1.963.3.387.949.58 1.948.58h.998v2.223H.38zm-.3 35.356v-1.902c7.19-6.554 10.786-12.58 10.786-18.08 0-1.562-.326-2.81-.979-3.744-.652-.934-1.524-1.402-2.616-1.402-.893 0-1.655.317-2.287.952-.633.634-.95 1.364-.95 2.192 0 .974.247 1.829.74 2.563.106.16.16.28.16.36 0 .147-.16.28-.48.4-.213.08-.752.308-1.618.681-.839.374-1.358.561-1.558.561-.24 0-.512-.37-.819-1.111A6.2 6.2 0 010 57.064c0-1.949.849-3.544 2.547-4.785 1.698-1.242 3.798-1.862 6.302-1.862 2.463 0 4.53.67 6.202 2.012 1.67 1.341 2.506 3.093 2.506 5.256a8.644 8.644 0 01-.849 3.724c-.566 1.201-1.92 3.053-4.064 5.556a165.471 165.471 0 01-6.272 6.938h11.445l-1.019 5.726h-2.117c.08-.28.12-.534.12-.76 0-.388-.1-.631-.3-.731-.2-.1-.599-.15-1.198-.15H.08zm12.124 19.207c1.745.04 3.236.637 4.474 1.792 1.239 1.154 1.858 2.773 1.858 4.855 0 2.99-1.132 5.393-3.396 7.208-2.263 1.815-5 2.723-8.209 2.723-2.01 0-3.669-.384-4.974-1.151C.652 111.853 0 110.849 0 109.607c0-.774.27-1.398.809-1.872.54-.474 1.128-.71 1.768-.71.639 0 1.162.2 1.568.6.406.4.782 1.055 1.128 1.962.466 1.268 1.239 1.902 2.317 1.902 1.265 0 2.287-.477 3.066-1.431.78-.955 1.169-2.686 1.169-5.196 0-1.709-.12-3.023-.36-3.944-.24-.921-.792-1.382-1.658-1.382-.586 0-1.185.307-1.797.921-.493.494-.932.741-1.319.741-.333 0-.602-.147-.809-.44-.206-.294-.31-.574-.31-.841 0-.32.104-.594.31-.821.207-.227.69-.594 1.449-1.102 2.876-1.922 4.314-4.017 4.314-6.287 0-1.188-.306-2.092-.919-2.713a3.001 3.001 0 00-2.217-.93c-.799 0-1.525.263-2.177.79-.653.528-.979 1.158-.979 1.892 0 .641.253 1.235.76 1.782.172.2.259.367.259.5 0 .121-.57.428-1.708.922-1.139.494-1.854.74-2.147.74-.413 0-.75-.333-1.009-1-.26-.668-.39-1.282-.39-1.842 0-1.749.93-3.224 2.787-4.425 1.858-1.202 3.965-1.802 6.322-1.802 2.064 0 3.851.447 5.363 1.341 1.511.895 2.267 2.116 2.267 3.664 0 1.362-.57 2.623-1.708 3.784a13.387 13.387 0 01-3.945 2.784z\"/></svg>"
},
"$:/core/images/list": {
"title": "$:/core/images/list",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-list tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M87.748 128H23.999c-4.418 0-7.999-3.59-7.999-8.007V8.007C16 3.585 19.588 0 24 0h80c4.419 0 8 3.59 8 8.007V104H91.25c-.965 0-1.84.392-2.473 1.025a3.476 3.476 0 00-1.029 2.476V128zm8-.12l15.88-15.88h-15.88v15.88zM40 15.508A3.502 3.502 0 0143.5 12h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 20h-55a3.498 3.498 0 01-3.5-3.509v-.982zM32 22a6 6 0 100-12 6 6 0 000 12zm8 9.509A3.502 3.502 0 0143.5 28h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 36h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 44h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 52h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 60h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 68h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 76h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 84h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.502 3.502 0 0143.5 92h55c1.933 0 3.5 1.561 3.5 3.509v.982A3.502 3.502 0 0198.5 100h-55a3.498 3.498 0 01-3.5-3.509v-.982zm0 16A3.505 3.505 0 0143.497 108h33.006A3.497 3.497 0 0180 111.509v.982A3.505 3.505 0 0176.503 116H43.497A3.497 3.497 0 0140 112.491v-.982zM32 38a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12zm0 16a6 6 0 100-12 6 6 0 000 12z\"/></svg>"
},
"$:/core/images/locked-padlock": {
"title": "$:/core/images/locked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-locked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M96.472 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h8c.003-15.723.303-47.731 32.16-47.731 31.794 0 32.305 32.057 32.312 47.731zm-15.897 0H48.44c.002-16.287.142-32 15.719-32 15.684 0 16.977 16.136 16.415 32zM67.732 92.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/mail": {
"title": "$:/core/images/mail",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mail tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M122.827 104.894a7.986 7.986 0 01-2.834.516H8.007c-.812 0-1.597-.12-2.335-.345l34.163-34.163 20.842 20.842a3.998 3.998 0 003.418 1.134 4.003 4.003 0 003.395-1.134L88.594 70.64c.075.09.155.176.24.26l33.993 33.994zm5.076-6.237c.064-.406.097-.823.097-1.247v-64c0-.669-.082-1.318-.237-1.94L94.23 65.006c.09.075.177.154.261.239l33.413 33.413zm-127.698.56A8.023 8.023 0 010 97.41v-64c0-.716.094-1.41.271-2.071l33.907 33.906L.205 99.218zM5.93 25.684a8.012 8.012 0 012.078-.273h111.986c.766 0 1.507.108 2.209.308L64.083 83.837 5.93 25.683z\"/></svg>"
},
"$:/core/images/menu-button": {
"title": "$:/core/images/menu-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-menu-button tc-image-button\" viewBox=\"0 0 128 128\"><rect width=\"128\" height=\"16\" y=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"56\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"96\" rx=\"8\"/></svg>"
},
"$:/core/images/mono-block": {
"title": "$:/core/images/mono-block",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-block tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M23.965 32.967h.357c.755 0 1.328.192 1.72.577.39.384.586.947.586 1.688 0 .824-.206 1.418-.618 1.782-.413.363-1.094.545-2.045.545h-6.31c-.965 0-1.65-.178-2.056-.535-.405-.356-.608-.954-.608-1.792 0-.811.203-1.391.608-1.74.406-.35 1.09-.525 2.055-.525h.734l-.86-2.453H8.471l-.902 2.453h.734c.95 0 1.632.178 2.044.535.413.356.619.933.619 1.73 0 .824-.206 1.418-.619 1.782-.412.363-1.094.545-2.044.545h-5.41c-.964 0-1.649-.182-2.054-.545-.406-.364-.608-.958-.608-1.782 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.719-.577h.356l5.62-15.641H6.835c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.95-.619-1.76 0-.825.207-1.42.619-1.783.412-.363 1.094-.545 2.044-.545h7.863c1.244 0 2.118.67 2.62 2.013v.063l6.647 18.2zM12.98 17.326l-3.04 8.848h6.08l-3.04-8.848zm22.402 9.372v6.395h3.145c2.223 0 3.788-.245 4.697-.734.908-.49 1.362-1.307 1.362-2.453 0-1.16-.433-1.985-1.3-2.474-.866-.49-2.383-.734-4.55-.734h-3.354zm10.693-2.327c1.524.559 2.642 1.324 3.355 2.295.713.972 1.07 2.212 1.07 3.722 0 1.272-.308 2.432-.923 3.48-.615 1.049-1.496 1.909-2.642 2.58a7.499 7.499 0 01-2.254.849c-.832.174-2.01.262-3.533.262H30.202c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.782 0-.741.189-1.304.566-1.688.378-.385.93-.577 1.657-.577h.356V17.326h-.356c-.727 0-1.28-.196-1.657-.587-.377-.392-.566-.965-.566-1.72 0-.81.203-1.401.608-1.771.406-.37 1.062-.556 1.971-.556h9.645c2.95 0 5.19.573 6.72 1.72 1.53 1.145 2.296 2.823 2.296 5.031 0 1.09-.234 2.052-.703 2.883-.468.832-1.163 1.513-2.086 2.045zM35.381 17.2v5.284h2.83c1.72 0 2.932-.203 3.638-.609.706-.405 1.06-1.09 1.06-2.054 0-.909-.319-1.573-.955-1.992-.636-.42-1.667-.63-3.093-.63h-3.48zm35.863-3.816c.28-.503.566-.86.86-1.07.293-.21.664-.314 1.111-.314.685 0 1.17.182 1.457.545.287.364.43.986.43 1.866l.042 5.452c0 .964-.157 1.614-.472 1.95-.314.335-.884.503-1.709.503-.587 0-1.037-.14-1.352-.42-.314-.28-.584-.796-.807-1.551-.364-1.328-.944-2.282-1.74-2.862-.797-.58-1.901-.87-3.313-.87-2.153 0-3.802.727-4.948 2.18-1.147 1.454-1.72 3.558-1.72 6.311 0 2.74.58 4.844 1.74 6.311 1.16 1.468 2.817 2.202 4.97 2.202 1.467 0 3.085-.49 4.854-1.468 1.768-.978 2.883-1.467 3.344-1.467.545 0 1.003.23 1.373.692.37.46.556 1.034.556 1.719 0 1.23-1.084 2.39-3.25 3.48-2.167 1.09-4.606 1.636-7.318 1.636-3.662 0-6.625-1.21-8.89-3.627-2.264-2.419-3.396-5.578-3.396-9.478 0-3.76 1.146-6.884 3.438-9.372 2.293-2.488 5.2-3.732 8.723-3.732.992 0 1.97.112 2.935.335.964.224 1.992.574 3.082 1.049zm10.22 19.583V17.326h-.356c-.755 0-1.328-.196-1.72-.587-.39-.392-.586-.965-.586-1.72 0-.81.21-1.401.629-1.771.42-.37 1.097-.556 2.034-.556h5.178c2.922 0 5.06.126 6.416.377 1.356.252 2.51.671 3.46 1.258 1.691 1.007 2.988 2.443 3.89 4.31.9 1.865 1.352 4.021 1.352 6.467 0 2.586-.514 4.847-1.541 6.783-1.028 1.936-2.485 3.4-4.372 4.393-.853.447-1.852.772-2.998.975-1.147.203-2.852.304-5.116.304h-6.269c-.965 0-1.65-.178-2.055-.535-.406-.356-.608-.954-.608-1.792 0-.741.195-1.304.587-1.688.391-.385.964-.577 1.72-.577h.356zm5.41-15.725v15.725h1.195c2.642 0 4.592-.646 5.85-1.94 1.258-1.292 1.887-3.28 1.887-5.965 0-2.641-.64-4.612-1.918-5.912-1.28-1.3-3.205-1.95-5.777-1.95-.335 0-.59.003-.765.01a7.992 7.992 0 00-.472.032zm35.067-.126h-9.75v5.368h3.69v-.252c0-.797.175-1.39.524-1.782.35-.392.88-.587 1.594-.587.629 0 1.142.178 1.54.534.4.357.598.808.598 1.353 0 .028.007.118.021.272.014.154.021.308.021.462v4.34c0 .936-.167 1.607-.503 2.013-.335.405-.88.608-1.635.608-.713 0-1.251-.19-1.615-.567-.363-.377-.545-.936-.545-1.677v-.377h-3.69v6.269h9.75v-2.495c0-.937.178-1.608.534-2.013.357-.405.94-.608 1.75-.608.798 0 1.367.2 1.71.597.342.399.513 1.073.513 2.024v5.074c0 .755-.146 1.258-.44 1.51-.293.251-.873.377-1.74.377h-17.172c-.923 0-1.583-.182-1.982-.545-.398-.364-.597-.958-.597-1.782 0-.741.189-1.304.566-1.688.377-.385.93-.577 1.656-.577h.357V17.326h-.357c-.712 0-1.261-.2-1.646-.598-.384-.398-.576-.968-.576-1.709 0-.81.203-1.401.608-1.771.405-.37 1.062-.556 1.97-.556h17.173c.853 0 1.43.13 1.73.388.3.258.45.772.45 1.54v4.698c0 .95-.174 1.631-.524 2.044-.35.412-.915.618-1.698.618-.81 0-1.394-.21-1.75-.629-.357-.419-.535-1.097-.535-2.033v-2.202zM19.77 47.641c.267-.504.55-.86.85-1.07.3-.21.675-.314 1.122-.314.685 0 1.17.181 1.457.545.287.363.43.985.43 1.866l.042 5.451c0 .965-.157 1.615-.472 1.95-.314.336-.891.504-1.73.504-.587 0-1.045-.144-1.373-.43-.329-.287-.598-.8-.807-1.541-.378-1.342-.958-2.3-1.74-2.873-.783-.573-1.88-.86-3.292-.86-2.153 0-3.799.727-4.938 2.181-1.14 1.454-1.709 3.557-1.709 6.311s.598 4.882 1.793 6.385C10.599 67.248 12.294 68 14.488 68c.503 0 1.077-.06 1.72-.179a23.809 23.809 0 002.264-.555v-3.313h-2.37c-.95 0-1.624-.175-2.023-.524-.398-.35-.597-.93-.597-1.74 0-.84.199-1.437.597-1.793.399-.357 1.073-.535 2.024-.535h7.569c.978 0 1.667.175 2.065.524.398.35.598.937.598 1.762 0 .74-.2 1.31-.598 1.708-.398.399-.975.598-1.73.598h-.335v5.242c0 .447-.05.758-.147.933-.098.174-.293.353-.587.534-.797.476-2.062.895-3.795 1.258a25.576 25.576 0 01-5.263.546c-3.662 0-6.625-1.21-8.89-3.628-2.264-2.418-3.397-5.577-3.397-9.477 0-3.76 1.147-6.884 3.44-9.372 2.292-2.488 5.199-3.732 8.721-3.732.979 0 1.954.112 2.925.335.972.224 2.003.573 3.093 1.049zm15.84 3.941v4.823h6.857v-4.823h-.336c-.754 0-1.331-.195-1.73-.587-.398-.391-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.364 1.093-.545 2.044-.545h5.41c.95 0 1.624.181 2.023.545.398.363.597.957.597 1.782 0 .755-.192 1.328-.576 1.72-.385.39-.947.586-1.688.586h-.357v15.642h.357c.755 0 1.328.192 1.719.576.391.385.587.947.587 1.688 0 .825-.203 1.419-.608 1.782-.405.364-1.09.546-2.055.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.2-1.303.598-1.688.398-.384.975-.576 1.73-.576h.335v-6.186h-6.856v6.186h.335c.755 0 1.331.192 1.73.576.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.412.364-1.094.546-2.044.546h-5.41c-.964 0-1.65-.179-2.055-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.392-.384.965-.576 1.72-.576h.356V51.582h-.356c-.741 0-1.304-.195-1.688-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.073-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.335zm31.754 0v15.642h3.523c.95 0 1.632.178 2.044.534.412.357.618.933.618 1.73 0 .811-.21 1.402-.629 1.772-.419.37-1.097.556-2.033.556H58.433c-.95 0-1.632-.182-2.044-.546-.412-.363-.619-.957-.619-1.782 0-.81.203-1.39.608-1.74.406-.35 1.09-.524 2.055-.524h3.523V51.582h-3.523c-.95 0-1.632-.181-2.044-.545-.412-.363-.619-.95-.619-1.761 0-.825.203-1.412.608-1.761.406-.35 1.09-.524 2.055-.524h12.455c.992 0 1.684.174 2.075.524.392.35.587.936.587 1.761 0 .81-.202 1.398-.608 1.761-.405.364-1.09.545-2.054.545h-3.523zm30.496 0v11.994c0 1.873-.122 3.228-.367 4.067a5.876 5.876 0 01-1.227 2.244c-.74.852-1.768 1.495-3.082 1.929-1.314.433-2.893.65-4.738.65-1.3 0-2.555-.126-3.764-.378a16.843 16.843 0 01-3.491-1.132c-.615-.28-1.017-.643-1.206-1.09-.188-.448-.283-1.175-.283-2.18v-4.32c0-1.202.175-2.04.525-2.516.349-.475.957-.713 1.824-.713 1.244 0 1.929.915 2.054 2.747.014.321.035.566.063.733.168 1.622.545 2.73 1.133 3.324.587.594 1.523.89 2.81.89 1.593 0 2.714-.422 3.364-1.268.65-.845.975-2.386.975-4.623V51.582H88.93c-.95 0-1.632-.181-2.044-.545-.413-.363-.619-.95-.619-1.761 0-.825.2-1.412.598-1.761.398-.35 1.086-.524 2.065-.524h10.693c.979 0 1.667.174 2.065.524.399.35.598.936.598 1.761 0 .81-.206 1.398-.619 1.761-.412.364-1.093.545-2.044.545h-1.761zm14.644 0v6.353l6.48-6.478c-.728-.084-1.238-.29-1.531-.619-.294-.328-.44-.85-.44-1.562 0-.825.198-1.419.597-1.782.398-.364 1.073-.545 2.023-.545h5.137c.95 0 1.625.181 2.023.545.399.363.598.957.598 1.782 0 .769-.2 1.345-.598 1.73-.398.384-.982.576-1.75.576h-.483l-6.101 6.06c1.132.839 2.167 1.94 3.103 3.302.937 1.363 2.034 3.456 3.292 6.28h.692c.825 0 1.44.188 1.845.566.405.377.608.943.608 1.698 0 .825-.206 1.419-.619 1.782-.412.364-1.093.546-2.044.546h-2.579c-1.132 0-2.048-.762-2.746-2.286-.126-.28-.224-.503-.294-.67-.923-1.958-1.768-3.467-2.537-4.53a16.616 16.616 0 00-2.705-2.914l-1.97 1.887v3.92h.335c.755 0 1.331.193 1.73.577.398.385.597.947.597 1.688 0 .825-.206 1.419-.618 1.782-.413.364-1.094.546-2.045.546h-5.41c-.964 0-1.649-.179-2.054-.535-.405-.357-.608-.954-.608-1.793 0-.74.196-1.303.587-1.688.391-.384.965-.576 1.72-.576h.356V51.582h-.357c-.74 0-1.303-.195-1.687-.587-.385-.391-.577-.964-.577-1.719 0-.825.2-1.419.598-1.782.398-.364 1.072-.545 2.023-.545h5.41c.936 0 1.614.181 2.033.545.42.363.63.957.63 1.782 0 .755-.2 1.328-.598 1.72-.399.39-.975.586-1.73.586h-.336zM13.44 96.326l4.005-11.889c.251-.782.6-1.352 1.048-1.709.447-.356 1.041-.534 1.782-.534h3.271c.95 0 1.632.182 2.044.545.413.363.619.957.619 1.782 0 .755-.2 1.328-.598 1.72-.398.39-.975.587-1.73.587h-.335l.587 15.641h.357c.754 0 1.32.192 1.698.577.377.384.566.947.566 1.687 0 .825-.2 1.42-.598 1.783-.398.363-1.072.545-2.023.545h-4.718c-.95 0-1.624-.178-2.023-.535-.398-.356-.597-.954-.597-1.793 0-.74.192-1.303.576-1.687.385-.385.954-.577 1.709-.577h.335l-.293-12.79-3.061 9.52c-.224.712-.542 1.226-.954 1.54-.413.315-.982.472-1.709.472-.727 0-1.303-.157-1.73-.472-.426-.314-.751-.828-.975-1.54l-3.04-9.52-.294 12.79h.336c.755 0 1.324.192 1.709.577.384.384.576.947.576 1.687 0 .825-.202 1.42-.608 1.783-.405.363-1.076.545-2.013.545H2.621c-.937 0-1.608-.182-2.013-.545-.405-.364-.608-.958-.608-1.783 0-.74.192-1.303.577-1.687.384-.385.954-.577 1.708-.577h.336l.608-15.641h-.336c-.754 0-1.331-.196-1.73-.588-.398-.39-.597-.964-.597-1.719 0-.825.206-1.419.619-1.782.412-.363 1.093-.545 2.044-.545h3.27c.728 0 1.311.175 1.752.524.44.35.8.923 1.08 1.72l4.109 11.888zm30.454 2.054V86.828H42.74c-.922 0-1.583-.182-1.981-.546-.398-.363-.598-.95-.598-1.76 0-.812.2-1.402.598-1.773.398-.37 1.059-.555 1.981-.555h5.955c.909 0 1.566.185 1.97.555.406.37.609.961.609 1.772 0 .741-.192 1.31-.577 1.709-.384.398-.933.598-1.646.598h-.356v19.038c0 .657-.07 1.069-.21 1.237-.14.167-.454.251-.943.251h-2.097c-.67 0-1.143-.07-1.415-.21-.273-.14-.507-.384-.703-.733l-8.722-15.327v11.385h1.216c.909 0 1.559.175 1.95.524.392.35.587.93.587 1.74 0 .825-.199 1.42-.597 1.783-.399.363-1.045.545-1.94.545h-6.017c-.909 0-1.566-.182-1.971-.545-.406-.364-.608-.958-.608-1.783 0-.74.188-1.303.566-1.687.377-.385.936-.577 1.677-.577h.336V86.828h-.336c-.713 0-1.265-.2-1.656-.598-.392-.398-.587-.968-.587-1.709 0-.81.206-1.401.618-1.772.413-.37 1.066-.555 1.96-.555h3.44c.824 0 1.383.108 1.677.325.293.216.622.653.985 1.31l7.989 14.551zM64.66 86.366c-1.803 0-3.218.727-4.245 2.18-1.028 1.455-1.541 3.474-1.541 6.06 0 2.586.517 4.613 1.551 6.08 1.034 1.468 2.446 2.202 4.235 2.202 1.804 0 3.222-.73 4.257-2.19 1.034-1.461 1.551-3.492 1.551-6.092 0-2.586-.513-4.605-1.54-6.06-1.028-1.453-2.45-2.18-4.268-2.18zm0-4.864c3.44 0 6.27 1.23 8.492 3.69 2.223 2.46 3.334 5.598 3.334 9.414 0 3.844-1.104 6.99-3.313 9.436-2.208 2.446-5.046 3.669-8.513 3.669-3.424 0-6.255-1.234-8.491-3.701-2.237-2.467-3.355-5.602-3.355-9.404 0-3.83 1.108-6.971 3.323-9.424 2.216-2.454 5.057-3.68 8.523-3.68zM87.461 98.17v4.298h2.16c.908 0 1.555.175 1.94.524.384.35.576.93.576 1.74 0 .825-.196 1.42-.587 1.783-.392.363-1.035.545-1.93.545h-7.254c-.922 0-1.583-.182-1.981-.545-.399-.364-.598-.958-.598-1.783 0-.74.189-1.303.566-1.687.378-.385.93-.577 1.657-.577h.356V86.828h-.356c-.713 0-1.262-.2-1.646-.598-.385-.398-.577-.968-.577-1.709 0-.81.203-1.401.608-1.772.406-.37 1.063-.555 1.971-.555h8.66c3.424 0 6.014.657 7.768 1.97 1.754 1.315 2.631 3.25 2.631 5.809 0 2.697-.873 4.738-2.62 6.122-1.748 1.384-4.34 2.076-7.78 2.076h-3.564zm0-11.343v6.625h2.977c1.65 0 2.89-.28 3.722-.839.832-.559 1.248-1.397 1.248-2.516 0-1.048-.43-1.855-1.29-2.421-.86-.566-2.086-.85-3.68-.85h-2.977zm27.267 20.568l-1.636 1.636a12.37 12.37 0 011.772-.44c.58-.098 1.15-.147 1.709-.147 1.104 0 2.268.164 3.491.492 1.223.329 1.967.493 2.233.493.447 0 1.03-.15 1.75-.45.72-.301 1.206-.452 1.458-.452.517 0 .947.2 1.29.598.342.398.513.898.513 1.5 0 .796-.472 1.474-1.415 2.033-.944.56-2.1.839-3.47.839-.937 0-2.139-.22-3.607-.66-1.467-.441-2.53-.661-3.187-.661-.992 0-2.11.272-3.354.817-1.244.546-2.013.818-2.307.818a2.14 2.14 0 01-1.53-.597c-.42-.399-.63-.878-.63-1.437 0-.391.134-.807.4-1.247.265-.44.733-1.01 1.404-1.709l2.118-2.139c-2.335-.852-4.194-2.386-5.578-4.602-1.384-2.215-2.075-4.763-2.075-7.642 0-3.802 1.104-6.909 3.312-9.32 2.209-2.411 5.053-3.617 8.534-3.617 3.467 0 6.304 1.209 8.513 3.627 2.208 2.418 3.312 5.522 3.312 9.31 0 3.774-1.097 6.884-3.291 9.33-2.195 2.446-4.977 3.67-8.345 3.67a22.5 22.5 0 01-1.384-.043zm1.195-21.03c-1.803 0-3.218.727-4.246 2.18-1.027 1.455-1.54 3.474-1.54 6.06 0 2.586.516 4.613 1.55 6.08 1.035 1.468 2.447 2.202 4.236 2.202 1.803 0 3.222-.73 4.256-2.19 1.035-1.461 1.552-3.492 1.552-6.092 0-2.586-.514-4.605-1.541-6.06-1.028-1.453-2.45-2.18-4.267-2.18z\"/></svg>"
},
"$:/core/images/mono-line": {
"title": "$:/core/images/mono-line",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-mono-line tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M60.437 84.523h.908c1.922 0 3.381.489 4.378 1.468.997.979 1.495 2.411 1.495 4.298 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388h-16.07c-2.456 0-4.2-.454-5.232-1.361-1.032-.908-1.548-2.43-1.548-4.565 0-2.065.516-3.542 1.548-4.432 1.032-.89 2.776-1.334 5.232-1.334h1.869l-2.19-6.247H20.983l-2.296 6.247h1.87c2.42 0 4.155.453 5.205 1.361 1.05.908 1.575 2.376 1.575 4.405 0 2.1-.525 3.612-1.575 4.538-1.05.925-2.785 1.388-5.206 1.388H6.781c-2.456 0-4.2-.463-5.233-1.388C.516 93.9 0 92.389 0 90.289c0-1.887.498-3.32 1.495-4.298.997-.979 2.456-1.468 4.378-1.468h.908l14.308-39.83h-4.271c-2.42 0-4.156-.462-5.206-1.387-1.05-.926-1.575-2.42-1.575-4.485 0-2.1.525-3.613 1.575-4.538 1.05-.926 2.785-1.388 5.206-1.388h20.021c3.168 0 5.392 1.708 6.674 5.125v.16l16.924 46.343zm-27.976-39.83L24.72 67.225h15.483l-7.742-22.53zM89.506 68.56v16.284h8.008c5.66 0 9.646-.623 11.96-1.869 2.313-1.245 3.47-3.328 3.47-6.246 0-2.955-1.103-5.055-3.31-6.3-2.207-1.246-6.069-1.869-11.586-1.869h-8.542zm27.229-5.926c3.88 1.423 6.727 3.372 8.542 5.846 1.815 2.474 2.723 5.633 2.723 9.477 0 3.239-.783 6.193-2.35 8.862-1.565 2.67-3.808 4.859-6.726 6.567-1.709.997-3.622 1.718-5.74 2.163-2.118.445-5.116.667-8.996.667h-27.87c-2.349 0-4.03-.463-5.045-1.388-1.014-.926-1.521-2.438-1.521-4.538 0-1.887.48-3.32 1.441-4.298.961-.979 2.367-1.468 4.218-1.468h.907v-39.83h-.907c-1.851 0-3.257-.498-4.218-1.494-.961-.997-1.441-2.456-1.441-4.378 0-2.065.516-3.568 1.548-4.512 1.032-.943 2.705-1.414 5.018-1.414h24.56c7.51 0 13.214 1.459 17.111 4.377 3.898 2.92 5.847 7.19 5.847 12.814 0 2.776-.597 5.223-1.789 7.341-1.192 2.118-2.963 3.853-5.312 5.206zm-27.23-18.26v13.455h7.208c4.378 0 7.466-.516 9.264-1.549 1.797-1.032 2.696-2.776 2.696-5.232 0-2.313-.81-4.004-2.43-5.072-1.619-1.068-4.244-1.602-7.874-1.602h-8.863z\"/></svg>"
},
"$:/core/images/new-button": {
"title": "$:/core/images/new-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M56 72H8.007C3.591 72 0 68.418 0 64c0-4.41 3.585-8 8.007-8H56V8.007C56 3.591 59.582 0 64 0c4.41 0 8 3.585 8 8.007V56h47.993c4.416 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H72v47.993c0 4.416-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V72z\"/></svg>"
},
"$:/core/images/new-here-button": {
"title": "$:/core/images/new-here-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-here-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.838 20.935l-3.572.938c-3.688.968-8.23 4.43-10.136 7.731L3.37 96.738c-1.905 3.3-.771 7.524 2.534 9.432l33.717 19.466c3.297 1.904 7.53.78 9.435-2.521l38.76-67.134c1.905-3.3 2.632-8.963 1.623-12.646L83.285 20.88c-1.009-3.68-4.821-5.884-8.513-4.915l-7.603 1.995.043.287c.524 3.394 2.053 7.498 4.18 11.55.418.163.829.36 1.23.59a8.864 8.864 0 014.438 8.169c.104.132.21.264.316.395l-.386.318a8.663 8.663 0 01-1.082 3.137c-2.42 4.192-7.816 5.608-12.051 3.163-4.12-2.379-5.624-7.534-3.476-11.671-2.177-4.394-3.788-8.874-4.543-12.964z\"/><path d=\"M69.554 44.76c-5.944-7.476-10.74-17.196-11.955-25.059-1.68-10.875 3.503-18.216 15.082-18.04 10.407.158 19.975 5.851 24.728 13.785 5.208 8.695 2.95 17.868-6.855 20.496l-2.037-7.601c4.232-1.134 4.999-4.248 2.24-8.853-3.37-5.626-10.465-9.848-18.146-9.965-6.392-.097-8.31 2.62-7.323 9.01.999 6.465 5.318 15.138 10.582 21.65l-.072.06c.559 1.553-4.17 6.44-5.938 4.888l-.005.004-.028-.034a1.323 1.323 0 01-.124-.135 2.618 2.618 0 01-.149-.205z\"/><rect width=\"16\" height=\"48\" x=\"96\" y=\"80\" rx=\"8\"/><rect width=\"48\" height=\"16\" x=\"80\" y=\"96\" rx=\"8\"/></g></svg>"
},
"$:/core/images/new-image-button": {
"title": "$:/core/images/new-image-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-image-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.362 73.627l15.826-27.41a2.626 2.626 0 00-.962-3.59l-50.01-28.872a2.626 2.626 0 00-3.588.961L30.058 36.49l10.04-5.261c3.042-1.595 6.771.114 7.55 3.46l3.607 17.702 9.88.85a5.25 5.25 0 014.571 3.77c.034.115.1.344.199.671.165.553.353 1.172.562 1.843.595 1.914 1.23 3.85 1.872 5.678.207.588.412 1.156.614 1.701.625 1.685 1.209 3.114 1.725 4.207.255.54.485.977.726 1.427.214.212.547.425 1.011.622 1.141.482 2.784.74 4.657.758.864.008 1.71-.034 2.492-.11.448-.043.753-.085.871-.104.315-.053.625-.077.927-.076zM37.47 2.649A5.257 5.257 0 0144.649.725l63.645 36.746a5.257 5.257 0 011.923 7.178L73.47 108.294a5.257 5.257 0 01-7.177 1.923L2.649 73.47a5.257 5.257 0 01-1.924-7.177L37.471 2.649zm42.837 50.49a5.25 5.25 0 105.25-9.092 5.25 5.25 0 00-5.25 9.093zM96 112h-7.993c-4.419 0-8.007-3.582-8.007-8 0-4.41 3.585-8 8.007-8H96v-7.993C96 83.588 99.582 80 104 80c4.41 0 8 3.585 8 8.007V96h7.993c4.419 0 8.007 3.582 8.007 8 0 4.41-3.585 8-8.007 8H112v7.993c0 4.419-3.582 8.007-8 8.007-4.41 0-8-3.585-8-8.007V112zM33.347 51.791c7.428 7.948 9.01 10.69 7.449 13.394-1.56 2.703-13.838-2.328-16.094 1.58-2.256 3.908-.907 3.258-2.437 5.908l19.73 11.39s-5.605-8.255-4.235-10.628c2.515-4.356 8.77-1.256 10.365-4.019 2.414-4.181-5.103-9.639-14.778-17.625z\"/></svg>"
},
"$:/core/images/new-journal-button": {
"title": "$:/core/images/new-journal-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-new-journal-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.545 112.818v11.818c0 1.306 1.086 2.364 2.425 2.364h6.06c1.34 0 2.425-1.058 2.425-2.364v-11.818h12.12c1.34 0 2.425-1.058 2.425-2.363v-5.91c0-1.305-1.085-2.363-2.424-2.363h-12.121V90.364c0-1.306-1.086-2.364-2.425-2.364h-6.06c-1.34 0-2.425 1.058-2.425 2.364v11.818h-12.12c-1.34 0-2.425 1.058-2.425 2.363v5.91c0 1.305 1.085 2.363 2.424 2.363h12.121zM60.016 4.965c-4.781-2.76-10.897-1.118-13.656 3.66L5.553 79.305A9.993 9.993 0 009.21 92.963l51.04 29.468c4.78 2.76 10.897 1.118 13.655-3.66l40.808-70.681a9.993 9.993 0 00-3.658-13.656L60.016 4.965zm-3.567 27.963a6 6 0 106-10.393 6 6 0 00-6 10.393zm31.697 17.928a6 6 0 106-10.392 6 6 0 00-6 10.392z\"/><text class=\"tc-fill-background\" font-family=\"Helvetica\" font-size=\"47.172\" font-weight=\"bold\" transform=\"rotate(30 25.742 95.82)\"><tspan x=\"42\" y=\"77.485\" text-anchor=\"middle\"><<now \"DD\">></tspan></text></g></svg>"
},
"$:/core/images/opacity": {
"title": "$:/core/images/opacity",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-opacity tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M102.362 65a51.595 51.595 0 01-1.942 6H82.584a35.867 35.867 0 002.997-6h16.78zm.472-2c.423-1.961.734-3.963.929-6H87.656a35.78 35.78 0 01-1.368 6h16.546zm-3.249 10a51.847 51.847 0 01-3.135 6H75.812a36.205 36.205 0 005.432-6h18.341zm-4.416 8c-1.424 2.116-3 4.12-4.71 6H60.46a35.843 35.843 0 0012.874-6h21.834zm-7.513-34h16.107C101.247 20.627 79.033 0 52 0 23.281 0 0 23.281 0 52c0 25.228 17.965 46.26 41.8 51h20.4a51.66 51.66 0 0015.875-6H39v-2h42.25a52.257 52.257 0 007.288-6H39v-2h4.539C27.739 83.194 16 68.968 16 52c0-19.882 16.118-36 36-36 18.186 0 33.222 13.484 35.656 31zm.22 2h16.039a52.823 52.823 0 010 6H87.877a36.483 36.483 0 000-6z\"/><path d=\"M76 128c28.719 0 52-23.281 52-52s-23.281-52-52-52-52 23.281-52 52 23.281 52 52 52zm0-16c19.882 0 36-16.118 36-36S95.882 40 76 40 40 56.118 40 76s16.118 36 36 36z\"/><path d=\"M37 58h53v4H37v-4zm3-8h53v4H40v-4zm0-8h53v4H40v-4zm-8 24h53v4H32v-4zm-2 8h53v4H30v-4zm-3 8h53v4H27v-4z\"/></g></svg>"
},
"$:/core/images/open-window": {
"title": "$:/core/images/open-window",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-open-window tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M16 112h88.994c3.87 0 7.006 3.59 7.006 8 0 4.418-3.142 8-7.006 8H7.006C3.136 128 0 124.41 0 120a9.321 9.321 0 010-.01V24.01C0 19.586 3.59 16 8 16c4.418 0 8 3.584 8 8.01V112z\"/><path d=\"M96 43.196V56a8 8 0 1016 0V24c0-4.41-3.585-8-8.007-8H72.007C67.588 16 64 19.582 64 24c0 4.41 3.585 8 8.007 8H84.57l-36.3 36.299a8 8 0 00-.001 11.316c3.117 3.117 8.19 3.123 11.316-.003L96 43.196zM32 7.999C32 3.581 35.588 0 40 0h80c4.419 0 8 3.588 8 8v80c0 4.419-3.588 8-8 8H40c-4.419 0-8-3.588-8-8V8z\"/></g></svg>"
},
"$:/core/images/options-button": {
"title": "$:/core/images/options-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-options-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M110.488 76a47.712 47.712 0 01-5.134 12.384l6.724 6.724c3.123 3.123 3.132 8.192.011 11.313l-5.668 5.668c-3.12 3.12-8.186 3.117-11.313-.01l-6.724-6.725c-3.82 2.258-7.98 4-12.384 5.134v9.505c0 4.417-3.578 8.007-7.992 8.007h-8.016C55.58 128 52 124.415 52 119.993v-9.505a47.712 47.712 0 01-12.384-5.134l-6.724 6.725c-3.123 3.122-8.192 3.131-11.313.01l-5.668-5.668c-3.12-3.12-3.116-8.186.01-11.313l6.725-6.724c-2.257-3.82-4-7.98-5.134-12.384H8.007C3.591 76 0 72.422 0 68.01v-8.017C0 55.58 3.585 52 8.007 52h9.505a47.712 47.712 0 015.134-12.383l-6.724-6.725c-3.123-3.122-3.132-8.191-.011-11.312l5.668-5.669c3.12-3.12 8.186-3.116 11.313.01l6.724 6.725c3.82-2.257 7.98-4 12.384-5.134V8.007C52 3.591 55.578 0 59.992 0h8.016C72.42 0 76 3.585 76 8.007v9.505a47.712 47.712 0 0112.384 5.134l6.724-6.724c3.123-3.123 8.192-3.132 11.313-.01l5.668 5.668c3.12 3.12 3.116 8.186-.01 11.312l-6.725 6.725c2.257 3.82 4 7.979 5.134 12.383h9.505c4.416 0 8.007 3.578 8.007 7.992v8.017c0 4.411-3.585 7.991-8.007 7.991h-9.505zM64 96c17.673 0 32-14.327 32-32 0-17.673-14.327-32-32-32-17.673 0-32 14.327-32 32 0 17.673 14.327 32 32 32z\"/></svg>"
},
"$:/core/images/paint": {
"title": "$:/core/images/paint",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-paint tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M83.527 76.19C90.43 69.287 91.892 59 87.91 50.665l37.903-37.902c2.919-2.92 2.913-7.659 0-10.572a7.474 7.474 0 00-10.572 0L77.338 40.093c-8.335-3.982-18.622-2.521-25.526 4.383l31.715 31.715zm-2.643 2.644L49.169 47.119S8.506 81.243 0 80.282c0 0 3.782 5.592 6.827 8.039 14.024-5.69 37.326-24.6 37.326-24.6l.661.66S19.45 90.222 9.18 92.047c1.222 1.44 4.354 4.053 6.247 5.776 5.417-1.488 34.733-28.57 34.733-28.57l.661.66-32.407 31.022 5.285 5.286L56.106 75.2l.662.66s-27.864 30.536-28.684 32.432c0 0 6.032 6.853 7.569 7.824.702-2.836 27.884-33.485 27.884-33.485l.661.66s-20.597 23.755-24.964 36.732c3.21 3.549 7.5 5.137 10.926 6.298-2.19-11.817 30.724-47.487 30.724-47.487z\"/></svg>"
},
"$:/core/images/palette": {
"title": "$:/core/images/palette",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-palette tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.247 39.182a93.52 93.52 0 00-16.228-1.4C28.662 37.781 0 57.131 0 81.002c0 9.642 4.676 18.546 12.58 25.735C23.504 91.19 26.34 72.395 36.89 63.562c15.183-12.713 26.538-7.828 26.538-7.828l16.82-16.552zm26.535 9.655c13.049 7.913 21.257 19.392 21.257 32.166 0 9.35.519 17.411-11.874 25.08-10.797 6.681-3.824-6.536-11.844-10.898s-19.946 1.308-18.213 7.906c3.2 12.181 19.422 11.455 6.314 16.658-13.107 5.202-18.202 4.476-28.403 4.476-7.821 0-15.315-.947-22.243-2.68 9.844-4.197 27.88-12.539 33.354-19.456C82.788 92.409 87.37 80 83.324 72.484c-.194-.359 11.215-11.668 23.458-23.647zM1.134 123.867l-.66.002c33.479-14.94 22.161-64.226 58.818-64.226.317 1.418.644 2.944 1.062 4.494-25.907-4.166-23.567 48.031-59.22 59.73zm.713-.007c38.872-.506 78.152-22.347 78.152-44.813-9.27 0-14.073-3.48-16.816-7.942-16.597-7.003-30.365 45.715-61.336 52.755zm65.351-64.008c-4.45 4.115 4.886 16.433 11.318 11.318l45.27-45.27c11.317-11.318 0-22.635-11.318-11.318-11.317 11.318-33.518 34.405-45.27 45.27z\"/></svg>"
},
"$:/core/images/permalink-button": {
"title": "$:/core/images/permalink-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permalink-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M80.483 48l-7.387 32h-25.58l7.388-32h25.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L100.598 32h3.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-7.096l-7.387 32H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H85.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L69.402 96h-25.58L38.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L27.402 96h-3.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h7.096l7.387-32H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h18.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L58.598 32h25.58z\"/></svg>"
},
"$:/core/images/permaview-button": {
"title": "$:/core/images/permaview-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-permaview-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M81.483 48l-1.846 8h-5.58l1.847-8h5.58zm3.694-16l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L101.598 32h2.403c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8h-6.096l-1.847 8h7.944c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H92.364l-1.846 8H104c4.41 0 7.999 3.582 7.999 8 0 4.41-3.581 8-8 8H86.824l-5.624 24.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L70.402 96h-5.58L59.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L48.402 96h-5.58L37.2 120.358c-.993 4.303-5.29 6.996-9.596 6.002-4.296-.992-6.988-5.293-5.994-9.602L26.402 96h-2.403C19.59 96 16 92.418 16 88c0-4.41 3.581-8 8-8h6.096l1.847-8h-7.944C19.59 72 16 68.418 16 64c0-4.41 3.581-8 8-8h11.637l1.846-8H24C19.59 48 16 44.418 16 40c0-4.41 3.581-8 8-8h17.177l5.624-24.358c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L57.598 32h5.58L68.8 7.642c.993-4.303 5.29-6.996 9.596-6.002 4.296.992 6.988 5.293 5.994 9.602L79.598 32h5.58zM53.904 48l-1.847 8h5.58l1.846-8h-5.579zm22.039 24l-1.847 8h-5.58l1.847-8h5.58zm-27.58 0l-1.846 8h5.579l1.847-8h-5.58z\"/></svg>"
},
"$:/core/images/picture": {
"title": "$:/core/images/picture",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-picture tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M112 68.233v-48.23A4.001 4.001 0 00107.997 16H20.003A4.001 4.001 0 0016 20.003v38.31l9.241-14.593c2.8-4.422 9.023-5.008 12.6-1.186l18.247 20.613 13.687-6.407a8 8 0 018.903 1.492 264.97 264.97 0 002.92 2.739 249.44 249.44 0 006.798 6.066 166.5 166.5 0 002.106 1.778c2.108 1.747 3.967 3.188 5.482 4.237.748.518 1.383.92 2.044 1.33.444.117 1.046.144 1.809.05 1.873-.233 4.238-1.144 6.723-2.547a36.016 36.016 0 003.205-2.044c.558-.4.93-.686 1.07-.802.376-.31.765-.577 1.165-.806zM0 8.007A8.01 8.01 0 018.007 0h111.986A8.01 8.01 0 01128 8.007v111.986a8.01 8.01 0 01-8.007 8.007H8.007A8.01 8.01 0 010 119.993V8.007zM95 42a8 8 0 100-16 8 8 0 000 16zM32 76c15.859 4.83 20.035 7.244 20.035 12S32 95.471 32 102.347c0 6.876 1.285 4.99 1.285 9.653H68s-13.685-6.625-13.685-10.8c0-7.665 10.615-8.34 10.615-13.2 0-7.357-14.078-8.833-32.93-12z\"/></svg>"
},
"$:/core/images/plugin-generic-language": {
"title": "$:/core/images/plugin-generic-language",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M61.207 68.137c-4.324 2.795-6.999 6.656-6.999 10.921 0 7.906 9.19 14.424 21.042 15.336 2.162 3.902 8.598 6.785 16.318 7.01-5.126-1.125-9.117-3.742-10.62-7.01C92.805 93.487 102 86.967 102 79.059c0-8.53-10.699-15.445-23.896-15.445-6.599 0-12.572 1.729-16.897 4.524zm12.794-14.158c-4.324 2.795-10.298 4.524-16.897 4.524-2.619 0-5.14-.272-7.497-.775-3.312 2.25-8.383 3.69-14.067 3.69l-.255-.002c4.119-.892 7.511-2.747 9.478-5.13-6.925-2.704-11.555-7.617-11.555-13.228 0-8.53 10.699-15.445 23.896-15.445C70.301 27.613 81 34.528 81 43.058c0 4.265-2.675 8.126-6.999 10.921zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-plugin": {
"title": "$:/core/images/plugin-generic-plugin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M40.397 76.446V95.34h14.12l-.001-.005a6.912 6.912 0 005.364-11.593l.046-.023a6.912 6.912 0 119.979.526l.086.055a6.914 6.914 0 004.408 10.948l-.023.092h21.32V75.568l-.15.038a6.912 6.912 0 00-11.593-5.364l-.022-.046a6.912 6.912 0 11.526-9.979l.055-.086a6.914 6.914 0 0010.948-4.408c.079.018.158.038.236.059v-15.74h-21.32l.023-.094a6.914 6.914 0 01-4.408-10.947 10.23 10.23 0 00-.086-.055 6.912 6.912 0 10-9.979-.526l-.046.023a6.912 6.912 0 01-5.364 11.593l.001.005h-14.12v12.847A6.912 6.912 0 0129.5 59.843l-.054.086a6.912 6.912 0 10-.526 9.979l.023.046a6.912 6.912 0 0111.455 6.492zM64 0l54.56 32v64L64 128 9.44 96V32L64 0z\"/></svg>"
},
"$:/core/images/plugin-generic-theme": {
"title": "$:/core/images/plugin-generic-theme",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M29.408 91.472L51.469 69.41l-.004-.005a2.22 2.22 0 01.004-3.146c.87-.87 2.281-.872 3.147-.005l9.465 9.464a2.22 2.22 0 01-.005 3.147c-.87.87-2.28.871-3.147.005l-.005-.005-22.061 22.062a6.686 6.686 0 11-9.455-9.455zM60.802 66.38c-2.436-2.704-4.465-5.091-5.817-6.869-6.855-9.014-10.313-4.268-14.226 0-3.913 4.268 1.03 7.726-2.683 10.741-3.713 3.015-3.484 4.06-9.752-1.455-6.267-5.516-6.7-7.034-3.823-10.181 2.877-3.147 5.281 1.808 11.159-3.785 5.877-5.593.94-10.55.94-10.55s12.237-25.014 28.588-23.167c16.351 1.848-6.186-2.392-11.792 17.226-2.4 8.4.447 6.42 4.998 9.968 1.394 1.086 6.03 4.401 11.794 8.685l20.677-20.676 1.615-4.766 7.84-4.689 3.151 3.152-4.688 7.84-4.766 1.615-20.224 20.223c12.663 9.547 28.312 22.146 28.312 26.709 0 7.217-3.071 11.526-9.535 9.164-4.693-1.715-18.768-15.192-28.753-25.897l-2.893 2.893-3.151-3.152 3.029-3.029zM63.953 0l54.56 32v64l-54.56 32-54.56-32V32l54.56-32z\"/></svg>"
},
"$:/core/images/preview-closed": {
"title": "$:/core/images/preview-closed",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-closed tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M.088 64a7.144 7.144 0 001.378 5.458C16.246 88.818 39.17 100.414 64 100.414c24.83 0 47.753-11.596 62.534-30.956A7.144 7.144 0 00127.912 64C110.582 78.416 88.304 87.086 64 87.086 39.696 87.086 17.418 78.416.088 64z\"/><rect width=\"4\" height=\"16\" x=\"62\" y=\"96\" rx=\"4\"/><rect width=\"4\" height=\"16\" x=\"78\" y=\"93\" rx=\"4\" transform=\"rotate(-5 80 101)\"/><rect width=\"4\" height=\"16\" x=\"46\" y=\"93\" rx=\"4\" transform=\"rotate(5 48 101)\"/><rect width=\"4\" height=\"16\" x=\"30\" y=\"88\" rx=\"4\" transform=\"rotate(10 32 96)\"/><rect width=\"4\" height=\"16\" x=\"94\" y=\"88\" rx=\"4\" transform=\"rotate(-10 96 96)\"/><rect width=\"4\" height=\"16\" x=\"110\" y=\"80\" rx=\"4\" transform=\"rotate(-20 112 88)\"/><rect width=\"4\" height=\"16\" x=\"14\" y=\"80\" rx=\"4\" transform=\"rotate(20 16 88)\"/></g></svg>"
},
"$:/core/images/preview-open": {
"title": "$:/core/images/preview-open",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-preview-open tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M64.11 99.588c-24.83 0-47.754-11.596-62.534-30.957a7.148 7.148 0 010-8.675C16.356 40.596 39.28 29 64.11 29c24.83 0 47.753 11.596 62.534 30.956a7.148 7.148 0 010 8.675c-14.78 19.36-37.703 30.957-62.534 30.957zm46.104-32.007c1.44-1.524 1.44-3.638 0-5.162C99.326 50.9 82.439 44 64.147 44S28.968 50.9 18.08 62.42c-1.44 1.523-1.44 3.637 0 5.16C28.968 79.1 45.855 86 64.147 86s35.179-6.9 46.067-18.42z\"/><path d=\"M63.5 88C76.479 88 87 77.479 87 64.5S76.479 41 63.5 41 40 51.521 40 64.5 50.521 88 63.5 88z\"/></g></svg>"
},
"$:/core/images/print-button": {
"title": "$:/core/images/print-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-print-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M112 71V30.5h-.032c-.035-2-.816-3.99-2.343-5.516L86.998 2.357A7.978 7.978 0 0081 .02V0H24a8 8 0 00-8 8v63h8V8h57v14.5c0 4.422 3.582 8 8 8h15V71h8z\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"36\" rx=\"4\"/><rect width=\"64\" height=\"8\" x=\"32\" y=\"52\" rx=\"4\"/><rect width=\"40\" height=\"8\" x=\"32\" y=\"20\" rx=\"4\"/><path d=\"M0 80.005C0 71.165 7.156 64 16 64h96c8.836 0 16 7.155 16 16.005v31.99c0 8.84-7.156 16.005-16 16.005H16c-8.836 0-16-7.155-16-16.005v-31.99zM104 96a8 8 0 100-16 8 8 0 000 16z\"/></g></svg>"
},
"$:/core/images/quote": {
"title": "$:/core/images/quote",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-quote tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M51.219 117.713V62.199H27.427c0-8.891 1.683-16.401 5.047-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.36 3.184-20.728 6.669-6.368 3.484-11.835 7.87-16.401 13.157C9.524 27.113 5.98 33.241 3.456 40.21.933 47.18-.21 54.63.03 62.56v55.153H51.22zm76.781 0V62.199h-23.791c0-8.891 1.682-16.401 5.046-22.53 3.365-6.127 9.613-10.754 18.745-13.878V2c-7.45.961-14.359 3.184-20.727 6.669-6.369 3.484-11.836 7.87-16.402 13.157-4.566 5.287-8.11 11.415-10.634 18.384-2.523 6.97-3.665 14.42-3.424 22.35v55.153H128z\"/></svg>"
},
"$:/core/images/refresh-button": {
"title": "$:/core/images/refresh-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-refresh-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M106.369 39.433c10.16 20.879 6.57 46.764-10.771 64.106-21.87 21.87-57.327 21.87-79.196 0-21.87-21.87-21.87-57.326 0-79.196a8 8 0 1111.314 11.314c-15.621 15.62-15.621 40.947 0 56.568 15.62 15.621 40.947 15.621 56.568 0C97.72 78.79 99.6 58.175 89.924 42.73l-6.44 12.264a8 8 0 11-14.166-7.437L84.435 18.76a8 8 0 0110.838-3.345l28.873 15.345a8 8 0 11-7.51 14.129l-10.267-5.457zm-8.222-12.368c-.167-.19-.336-.38-.506-.57l.96-.296-.454.866z\"/></svg>"
},
"$:/core/images/right-arrow": {
"title": "$:/core/images/right-arrow",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-right-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M99.069 64.173c0 2.027-.77 4.054-2.316 5.6l-55.98 55.98a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l50.382-50.382-50.382-50.382a7.92 7.92 0 010-11.195c3.086-3.085 8.104-3.092 11.196 0l55.98 55.98a7.892 7.892 0 012.316 5.595z\"/></svg>"
},
"$:/core/images/rotate-left": {
"title": "$:/core/images/rotate-left",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-rotate-left tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"32\" height=\"80\" rx=\"8\"/><rect width=\"80\" height=\"32\" x=\"48\" y=\"96\" rx=\"8\"/><path d=\"M61.32 36.65c19.743 2.45 35.023 19.287 35.023 39.693a4 4 0 01-8 0c0-15.663-11.254-28.698-26.117-31.46l3.916 3.916a4 4 0 11-5.657 5.657L49.172 43.142a4 4 0 010-5.657l11.313-11.313a4 4 0 115.657 5.656l-4.821 4.822z\"/></g></svg>"
},
"$:/core/images/save-button": {
"title": "$:/core/images/save-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-save-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M120.783 34.33c4.641 8.862 7.266 18.948 7.266 29.646 0 35.347-28.653 64-64 64-35.346 0-64-28.653-64-64 0-35.346 28.654-64 64-64 18.808 0 35.72 8.113 47.43 21.03l2.68-2.68c3.13-3.13 8.197-3.132 11.321-.008 3.118 3.118 3.121 8.193-.007 11.32l-4.69 4.691zm-12.058 12.058a47.876 47.876 0 013.324 17.588c0 26.51-21.49 48-48 48s-48-21.49-48-48 21.49-48 48-48c14.39 0 27.3 6.332 36.098 16.362L58.941 73.544 41.976 56.578c-3.127-3.127-8.201-3.123-11.32-.005-3.123 3.124-3.119 8.194.006 11.319l22.617 22.617a7.992 7.992 0 005.659 2.347c2.05 0 4.101-.783 5.667-2.349l44.12-44.12z\"/></svg>"
},
"$:/core/images/size": {
"title": "$:/core/images/size",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-size tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M92.343 26l-9.171 9.172a4 4 0 105.656 5.656l16-16a4 4 0 000-5.656l-16-16a4 4 0 10-5.656 5.656L92.343 18H22a4 4 0 00-4 4v70.343l-9.172-9.171a4 4 0 10-5.656 5.656l16 16a4 4 0 005.656 0l16-16a4 4 0 10-5.656-5.656L26 92.343V22l-4 4h70.343zM112 52v64l4-4H52a4 4 0 100 8h64a4 4 0 004-4V52a4 4 0 10-8 0z\"/></svg>"
},
"$:/core/images/spiral": {
"title": "$:/core/images/spiral",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-spiral tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M64.534 68.348c3.39 0 6.097-2.62 6.476-5.968l-4.755-.538 4.75.583c.377-3.07-1.194-6.054-3.89-7.78-2.757-1.773-6.34-2.01-9.566-.7-3.46 1.403-6.14 4.392-7.35 8.148l-.01.026c-1.3 4.08-.72 8.64 1.58 12.52 2.5 4.2 6.77 7.2 11.76 8.27 5.37 1.15 11.11-.05 15.83-3.31 5.04-3.51 8.46-9.02 9.45-15.3 1.05-6.7-.72-13.63-4.92-19.19l.02.02c-4.42-5.93-11.2-9.82-18.78-10.78-7.96-1.01-16.13 1.31-22.59 6.43-6.81 5.39-11.18 13.41-12.11 22.26-.98 9.27 1.87 18.65 7.93 26.02 6.32 7.69 15.6 12.56 25.74 13.48 10.54.96 21.15-2.42 29.45-9.4l.01-.01c8.58-7.25 13.94-17.78 14.86-29.21.94-11.84-2.96-23.69-10.86-32.9-8.19-9.5-19.95-15.36-32.69-16.27-13.16-.94-26.24 3.49-36.34 12.34l.01-.01c-10.41 9.08-16.78 22.1-17.68 36.15-.93 14.44 4.03 28.77 13.79 39.78 10.03 11.32 24.28 18.2 39.6 19.09 15.73.92 31.31-4.56 43.24-15.234 12.23-10.954 19.61-26.44 20.5-43.074a4.785 4.785 0 00-4.52-5.03 4.778 4.778 0 00-5.03 4.52c-.75 14.1-7 27.2-17.33 36.45-10.03 8.98-23.11 13.58-36.3 12.81-12.79-.75-24.67-6.48-33-15.89-8.07-9.11-12.17-20.94-11.41-32.827.74-11.52 5.942-22.15 14.43-29.54l.01-.01c8.18-7.17 18.74-10.75 29.35-9.998 10.21.726 19.6 5.41 26.11 12.96 6.24 7.273 9.32 16.61 8.573 25.894-.718 8.9-4.88 17.064-11.504 22.66l.01-.007c-6.36 5.342-14.44 7.92-22.425 7.19-7.604-.68-14.52-4.314-19.21-10.027-4.44-5.4-6.517-12.23-5.806-18.94.67-6.3 3.76-11.977 8.54-15.766 4.46-3.54 10.05-5.128 15.44-4.44 5.03.63 9.46 3.18 12.32 7.01l.02.024c2.65 3.5 3.75 7.814 3.1 11.92-.59 3.71-2.58 6.925-5.45 8.924-2.56 1.767-5.61 2.403-8.38 1.81-2.42-.516-4.42-1.92-5.53-3.79-.93-1.56-1.15-3.3-.69-4.75l-4.56-1.446L59.325 65c.36-1.12 1.068-1.905 1.84-2.22.25-.103.48-.14.668-.13.06.006.11.015.14.025.01 0 .01 0-.01-.01a1.047 1.047 0 01-.264-.332c-.15-.29-.23-.678-.18-1.11l-.005.04c.15-1.332 1.38-2.523 3.035-2.523-2.65 0-4.79 2.144-4.79 4.787s2.14 4.785 4.78 4.785z\"/></svg>"
},
"$:/core/images/stamp": {
"title": "$:/core/images/stamp",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-stamp tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M49.733 64H16.01C11.584 64 8 67.583 8 72.003V97h112V72.003A8 8 0 00111.99 64H78.267A22.813 22.813 0 0175.5 53.077c0-6.475 2.687-12.324 7.009-16.497A22.818 22.818 0 0087 22.952C87 10.276 76.703 0 64 0S41 10.276 41 22.952c0 5.103 1.669 9.817 4.491 13.628 4.322 4.173 7.009 10.022 7.009 16.497 0 3.954-1.002 7.675-2.767 10.923zM8 104h112v8H8v-8z\"/></svg>"
},
"$:/core/images/star-filled": {
"title": "$:/core/images/star-filled",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-star-filled tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M61.836 96.823l37.327 27.287c2.72 1.99 6.379-.69 5.343-3.912L90.29 75.988l-1.26 3.91 37.285-27.345c2.718-1.993 1.32-6.327-2.041-6.33l-46.113-.036 3.3 2.416L67.176 4.416c-1.04-3.221-5.563-3.221-6.604 0L46.29 48.603l3.3-2.416-46.113.036c-3.362.003-4.759 4.337-2.04 6.33L38.72 79.898l-1.26-3.91-14.216 44.21c-1.036 3.223 2.622 5.901 5.343 3.912l37.326-27.287h-4.078z\"/></svg>"
},
"$:/core/images/storyview-classic": {
"title": "$:/core/images/storyview-classic",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-classic tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm0 48C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0 32C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-pop": {
"title": "$:/core/images/storyview-pop",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-pop tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16C19.581 16 16 19.578 16 23.992v16.016C16 44.422 19.588 48 24 48h80c4.419 0 8-3.578 8-7.992V23.992c0-4.414-3.588-7.992-8-7.992H24zm-7.99 40C11.587 56 8 59.578 8 63.992v16.016C8 84.422 11.584 88 16.01 88h95.98c4.424 0 8.01-3.578 8.01-7.992V63.992c0-4.414-3.584-7.992-8.01-7.992H16.01zM24 96C19.581 96 16 99.59 16 104c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24zm0-32C19.581 64 16 67.59 16 72c0 4.418 3.588 8 8 8h80c4.419 0 8-3.59 8-8 0-4.418-3.588-8-8-8H24z\"/></svg>"
},
"$:/core/images/storyview-zoomin": {
"title": "$:/core/images/storyview-zoomin",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-storyview-zoomin tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M8.007 0A8.01 8.01 0 000 8.007v111.986A8.01 8.01 0 008.007 128h111.986a8.01 8.01 0 008.007-8.007V8.007A8.01 8.01 0 00119.993 0H8.007zm15.992 16A8 8 0 0016 24.009V71.99C16 76.414 19.588 80 24 80h80a8 8 0 008-8.009V24.01c0-4.423-3.588-8.009-8-8.009H24z\"/></svg>"
},
"$:/core/images/strikethrough": {
"title": "$:/core/images/strikethrough",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-strikethrough tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M92.794 38.726h15.422c-.229-6.74-1.514-12.538-3.856-17.393-2.342-4.855-5.54-8.881-9.596-12.08-4.055-3.199-8.767-5.54-14.136-7.025C75.258.743 69.433 0 63.15 0a62.76 62.76 0 00-16.364 2.142C41.474 3.57 36.733 5.74 32.564 8.653c-4.17 2.913-7.511 6.626-10.025 11.138-2.513 4.512-3.77 9.853-3.77 16.022 0 5.597 1.115 10.252 3.342 13.965 2.228 3.712 5.198 6.74 8.91 9.081 3.713 2.342 7.911 4.227 12.595 5.655a194.641 194.641 0 0014.308 3.77c4.855 1.085 9.624 2.142 14.308 3.17 4.683 1.028 8.881 2.37 12.594 4.027 3.713 1.656 6.683 3.798 8.91 6.425 2.228 2.628 3.342 6.055 3.342 10.281 0 4.456-.914 8.111-2.742 10.967a19.953 19.953 0 01-7.197 6.768c-2.97 1.657-6.311 2.828-10.024 3.513a60.771 60.771 0 01-11.052 1.028c-4.57 0-9.025-.571-13.366-1.713-4.34-1.143-8.139-2.913-11.394-5.312-3.256-2.4-5.884-5.455-7.883-9.168-1.999-3.712-2.998-8.139-2.998-13.28H15c0 7.426 1.342 13.852 4.027 19.278 2.684 5.426 6.34 9.881 10.966 13.365 4.627 3.484 9.996 6.083 16.107 7.797 6.112 1.713 12.595 2.57 19.449 2.57 5.597 0 11.223-.657 16.878-1.97 5.655-1.314 10.767-3.428 15.336-6.34 4.57-2.914 8.31-6.683 11.224-11.31 2.913-4.626 4.37-10.195 4.37-16.707 0-6.054-1.115-11.08-3.342-15.079-2.228-3.998-5.198-7.31-8.91-9.938-3.713-2.627-7.911-4.712-12.595-6.254a170.83 170.83 0 00-14.308-4.027 549.669 549.669 0 00-14.308-3.17c-4.683-.971-8.881-2.2-12.594-3.684-3.713-1.485-6.683-3.399-8.91-5.74-2.228-2.342-3.342-5.398-3.342-9.168 0-3.998.771-7.34 2.313-10.024 1.543-2.685 3.599-4.826 6.17-6.426 2.57-1.599 5.51-2.741 8.824-3.427a49.767 49.767 0 0110.11-1.028c8.453 0 15.393 1.97 20.819 5.912 5.426 3.94 8.596 10.31 9.51 19.106z\"/><path d=\"M5 54h118v16H5z\"/></g></svg>"
},
"$:/core/images/subscript": {
"title": "$:/core/images/subscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-subscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 128.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/superscript": {
"title": "$:/core/images/superscript",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-superscript tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M2.272 16h19.91l21.649 33.675L66.414 16h18.708L53.585 61.969l33.809 49.443H67.082L43.296 74.93l-24.187 36.48H0L33.808 61.97 2.272 16zM127.91 63.412H85.328c.059-5.168 1.306-9.681 3.741-13.542 2.435-3.86 5.761-7.216 9.978-10.066a112.388 112.388 0 016.325-4.321 50.09 50.09 0 006.058-4.499c1.841-1.603 3.356-3.34 4.543-5.211 1.188-1.871 1.812-4.024 1.871-6.46 0-1.128-.133-2.33-.4-3.607a9.545 9.545 0 00-1.56-3.564c-.772-1.098-1.84-2.019-3.207-2.761-1.366-.743-3.148-1.114-5.345-1.114-2.02 0-3.697.4-5.033 1.203-1.337.801-2.406 1.9-3.208 3.296-.801 1.396-1.395 3.044-1.781 4.944-.386 1.9-.609 3.95-.668 6.147H86.486c0-3.445.46-6.637 1.38-9.577.921-2.94 2.302-5.478 4.143-7.617 1.841-2.138 4.083-3.815 6.726-5.033 2.643-1.217 5.716-1.826 9.22-1.826 3.802 0 6.979.623 9.533 1.87 2.554 1.248 4.617 2.822 6.191 4.722 1.574 1.9 2.688 3.965 3.341 6.192.653 2.227.98 4.35.98 6.37 0 2.494-.386 4.75-1.158 6.77a21.803 21.803 0 01-3.118 5.568 31.516 31.516 0 01-4.454 4.677 66.788 66.788 0 01-5.167 4.009 139.198 139.198 0 01-5.346 3.563 79.237 79.237 0 00-4.944 3.386c-1.514 1.128-2.836 2.3-3.964 3.518-1.129 1.218-1.9 2.51-2.317 3.876h30.379v9.087z\"/></svg>"
},
"$:/core/images/tag-button": {
"title": "$:/core/images/tag-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tag-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M18.164 47.66l.004 4.105c.003 3.823 2.19 9.097 4.885 11.792l61.85 61.85c2.697 2.697 7.068 2.69 9.769-.01L125.767 94.3a6.903 6.903 0 00.01-9.77L63.928 22.683c-2.697-2.697-7.976-4.88-11.796-4.881l-27.076-.007a6.902 6.902 0 00-6.91 6.91l.008 9.96.287.033c3.73.411 8.489-.044 13.365-1.153a9.702 9.702 0 0111.14-3.662l.291-.13.128.285a9.7 9.7 0 013.3 2.17c3.796 3.796 3.801 9.945.012 13.734-3.618 3.618-9.386 3.777-13.204.482-5.365 1.122-10.674 1.596-15.309 1.237z\"/><path d=\"M47.633 39.532l.023.051c-9.689 4.356-21.584 6.799-30.396 5.828C5.273 44.089-1.028 36.43 2.443 24.078 5.562 12.976 14.3 4.361 24.047 1.548c10.68-3.083 19.749 1.968 19.749 13.225h-8.623c0-4.859-3.078-6.573-8.735-4.94-6.91 1.995-13.392 8.383-15.694 16.577-1.915 6.818.417 9.653 7.46 10.43 7.126.785 17.531-1.352 25.917-5.121l.027.06.036-.017c1.76-.758 6.266 6.549 3.524 7.74a2.8 2.8 0 01-.075.03z\"/></g></svg>"
},
"$:/core/images/theme-button": {
"title": "$:/core/images/theme-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-theme-button tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M55.854 66.945a122.626 122.626 0 01-3.9-4.819c-11.064-14.548-16.645-6.888-22.96 0-6.315 6.888 1.664 12.47-4.33 17.335-5.993 4.866-5.623 6.552-15.737-2.35-10.115-8.9-10.815-11.351-6.172-16.43 4.644-5.08 8.524 2.918 18.01-6.108 9.485-9.026 1.517-17.026 1.517-17.026S42.03-2.824 68.42.157c26.39 2.982-9.984-3.86-19.031 27.801-3.874 13.556.72 10.362 8.066 16.087 1.707 1.33 6.428 4.732 12.671 9.318-6.129 5.879-11.157 10.669-14.273 13.582zm11.641 12.947c16.013 17.036 37.742 37.726 45.117 40.42 10.432 3.813 15.388-3.141 15.388-14.79 0-7.151-23.83-26.542-43.924-41.769-7.408 7.156-13.376 12.953-16.58 16.139z\"/><path d=\"M11.069 109.828L46.31 74.587a3.56 3.56 0 115.037-5.032l15.098 15.098a3.56 3.56 0 11-5.032 5.037l-35.24 35.241c-4.171 4.17-10.933 4.17-15.104 0-4.17-4.17-4.17-10.933 0-15.103zM124.344 6.622l5.034 5.034-7.49 12.524-7.613 2.58L61.413 79.62l-5.034-5.034 52.861-52.862 2.58-7.614 12.524-7.49z\"/></g></svg>"
},
"$:/core/images/timestamp-off": {
"title": "$:/core/images/timestamp-off",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-off tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M58.25 35.88c-18.777 0-33.998 15.224-33.998 33.998 0 18.773 15.22 34.002 33.998 34.002 18.784 0 34.002-15.23 34.002-34.002 0-18.774-15.218-33.998-34.002-33.998zm-3.03 50.123H44.196v-34H55.22v34zm16.976 0H61.17v-34h11.025v34z\"/></g></svg>"
},
"$:/core/images/timestamp-on": {
"title": "$:/core/images/timestamp-on",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-timestamp-on tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><path d=\"M58.25 11C26.08 11 0 37.082 0 69.25s26.08 58.25 58.25 58.25c32.175 0 58.25-26.082 58.25-58.25S90.425 11 58.25 11zm0 100.5C34.914 111.5 16 92.586 16 69.25 16 45.92 34.914 27 58.25 27s42.25 18.92 42.25 42.25c0 23.336-18.914 42.25-42.25 42.25zM49.704 10a5 5 0 010-10H66.69a5 5 0 015 5c.006 2.757-2.238 5-5 5H49.705z\"/><path d=\"M13.41 27.178a5.005 5.005 0 01-7.045-.613 5.008 5.008 0 01.616-7.047l9.95-8.348a5 5 0 016.429 7.661l-9.95 8.348zm89.573 0a5.005 5.005 0 007.045-.613 5.008 5.008 0 00-.616-7.047l-9.95-8.348a5 5 0 00-6.428 7.661l9.95 8.348zM65.097 71.072c0 3.826-3.09 6.928-6.897 6.928-3.804.006-6.9-3.102-6.903-6.928 0 0 4.76-39.072 6.903-39.072s6.897 39.072 6.897 39.072z\"/></g></svg>"
},
"$:/core/images/tip": {
"title": "$:/core/images/tip",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-tip tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 128.242c35.346 0 64-28.654 64-64 0-35.346-28.654-64-64-64-35.346 0-64 28.654-64 64 0 35.346 28.654 64 64 64zm11.936-36.789c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349C54.33 94.05 58.824 95.82 64 95.82c5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.456c-.624 4.129-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zm0 4.492c-.624 4.13-5.73 7.349-11.936 7.349-6.206 0-11.312-3.22-11.936-7.349 2.266 2.597 6.76 4.366 11.936 4.366 5.175 0 9.67-1.769 11.936-4.366zM64.3 24.242c11.618 0 23.699 7.82 23.699 24.2S75.92 71.754 75.92 83.576c0 5.873-5.868 9.26-11.92 9.26s-12.027-3.006-12.027-9.26C51.973 71.147 40 65.47 40 48.442s12.683-24.2 24.301-24.2z\"/></svg>"
},
"$:/core/images/transcludify": {
"title": "$:/core/images/transcludify",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-transcludify-button tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M0 59.482c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.651-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02C1.36 67.377.591 67.288 0 67.288v-7.806zm24.66 0c.591 0 1.36-.089 2.306-.266a10.417 10.417 0 002.75-.932 6.762 6.762 0 002.306-1.907c.65-.828.976-1.863.976-3.104V35.709c0-2.01.414-3.74 1.242-5.19.828-1.448 1.833-2.66 3.016-3.636s2.425-1.7 3.726-2.173c1.3-.473 2.424-.71 3.37-.71h8.073v7.451h-4.88c-1.241 0-2.232.207-2.97.621-.74.414-1.302.932-1.686 1.552a4.909 4.909 0 00-.71 1.996c-.089.71-.133 1.39-.133 2.04v16.677c0 1.715-.325 3.134-.976 4.258-.65 1.123-1.434 2.025-2.35 2.705-.917.68-1.863 1.168-2.839 1.464-.976.296-1.818.473-2.528.532v.178c.71.059 1.552.207 2.528.443.976.237 1.922.68 2.839 1.33.916.651 1.7 1.583 2.35 2.795.65 1.212.976 2.853.976 4.923v16.144c0 .65.044 1.33.133 2.04.089.71.325 1.375.71 1.996.384.621.946 1.139 1.685 1.553.74.414 1.73.62 2.972.62h4.879v7.452h-8.073c-.946 0-2.07-.237-3.37-.71-1.301-.473-2.543-1.197-3.726-2.173-1.183-.976-2.188-2.188-3.016-3.637-.828-1.449-1.242-3.179-1.242-5.19V74.119c0-1.42-.325-2.572-.976-3.46-.65-.886-1.419-1.581-2.306-2.084a8.868 8.868 0 00-2.75-1.02c-.946-.177-1.715-.266-2.306-.266v-7.806zm43.965-3.538L80.6 52.041l2.306 7.097-12.063 3.903 7.628 10.378-6.12 4.435-7.63-10.467-7.45 10.201-5.943-4.524 7.628-10.023-12.152-4.17 2.306-7.096 12.064 4.17V43.347h7.451v12.596zm34.425 11.344c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806zm24.66 0c-.65 0-1.449.089-2.395.266-.946.177-1.863.488-2.75.931a6.356 6.356 0 00-2.262 1.908c-.62.828-.931 1.862-.931 3.104v17.564c0 2.01-.414 3.74-1.242 5.189-.828 1.449-1.833 2.661-3.016 3.637s-2.425 1.7-3.726 2.173c-1.3.473-2.424.71-3.37.71h-8.073v-7.451h4.88c1.241 0 2.232-.207 2.97-.621.74-.414 1.302-.932 1.686-1.553a4.9 4.9 0 00.71-1.995c.089-.71.133-1.39.133-2.04V72.432c0-1.715.325-3.134.976-4.258.65-1.124 1.434-2.01 2.35-2.661.917-.65 1.863-1.124 2.839-1.42.976-.295 1.818-.502 2.528-.62v-.178c-.71-.059-1.552-.207-2.528-.443-.976-.237-1.922-.68-2.839-1.33-.916-.651-1.7-1.583-2.35-2.795-.65-1.212-.976-2.853-.976-4.923V37.66c0-.651-.044-1.331-.133-2.04a4.909 4.909 0 00-.71-1.997c-.384-.62-.946-1.138-1.685-1.552-.74-.414-1.73-.62-2.972-.62h-4.879V24h8.073c.946 0 2.07.237 3.37.71 1.301.473 2.543 1.197 3.726 2.173 1.183.976 2.188 2.188 3.016 3.637.828 1.449 1.242 3.178 1.242 5.189v16.943c0 1.419.31 2.572.931 3.46a6.897 6.897 0 002.262 2.084 8.868 8.868 0 002.75 1.02c.946.177 1.745.266 2.395.266v7.806z\"/></svg>"
},
"$:/core/images/twitter": {
"title": "$:/core/images/twitter",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-twitter tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M41.626 115.803A73.376 73.376 0 012 104.235c2.022.238 4.08.36 6.166.36 12.111 0 23.258-4.117 32.105-11.023-11.312-.208-20.859-7.653-24.148-17.883a25.98 25.98 0 0011.674-.441C15.971 72.881 7.061 62.474 7.061 49.997c0-.108 0-.216.002-.323a25.824 25.824 0 0011.709 3.22c-6.936-4.617-11.5-12.5-11.5-21.433 0-4.719 1.274-9.142 3.5-12.945 12.75 15.579 31.797 25.83 53.281 26.904-.44-1.884-.67-3.85-.67-5.868 0-14.22 11.575-25.75 25.852-25.75a25.865 25.865 0 0118.869 8.132 51.892 51.892 0 0016.415-6.248c-1.93 6.012-6.029 11.059-11.366 14.246A51.844 51.844 0 00128 25.878a52.428 52.428 0 01-12.9 13.33c.05 1.104.075 2.214.075 3.33 0 34.028-26 73.265-73.549 73.265\"/></svg>"
},
"$:/core/images/underline": {
"title": "$:/core/images/underline",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-underline tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M7 117.421h114.248V128H7v-10.579zm97.871-18.525V0h-16.26v55.856c0 4.463-.605 8.576-1.816 12.338-1.212 3.762-3.03 7.046-5.452 9.851-2.423 2.806-5.452 4.974-9.086 6.504-3.635 1.53-7.939 2.296-12.912 2.296-6.25 0-11.159-1.786-14.73-5.356-3.57-3.571-5.356-8.417-5.356-14.538V0H23v65.038c0 5.356.542 10.234 1.626 14.633 1.084 4.4 2.965 8.194 5.643 11.382 2.678 3.188 6.185 5.643 10.52 7.365 4.337 1.721 9.756 2.582 16.26 2.582 7.27 0 13.582-1.435 18.938-4.304 5.356-2.87 9.755-7.365 13.199-13.486h.382v15.686h15.303z\"/></svg>"
},
"$:/core/images/unfold-all-button": {
"title": "$:/core/images/unfold-all-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold-all tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><rect width=\"128\" height=\"16\" y=\"64\" rx=\"8\"/><path d=\"M63.945 60.624c-2.05 0-4.101-.78-5.666-2.345L35.662 35.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 41.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 58.279a7.986 7.986 0 01-5.663 2.346zM64.004 124.565c-2.05 0-4.102-.78-5.666-2.345L35.721 99.603c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 105.255l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.662 122.22a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unfold-button": {
"title": "$:/core/images/unfold-button",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unfold tc-image-button\" viewBox=\"0 0 128 128\"><g fill-rule=\"evenodd\"><rect width=\"128\" height=\"16\" rx=\"8\"/><path d=\"M63.945 63.624c-2.05 0-4.101-.78-5.666-2.345L35.662 38.662c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.192-3.122 11.319.005L63.94 44.314l16.966-16.966c3.124-3.124 8.194-3.129 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319L69.603 61.279a7.986 7.986 0 01-5.663 2.346zM64.004 105.682c-2.05.001-4.102-.78-5.666-2.344L35.721 80.721c-3.125-3.125-3.13-8.195-.005-11.319 3.118-3.118 8.191-3.122 11.318.005L64 86.373l16.966-16.966c3.124-3.125 8.194-3.13 11.318-.005 3.118 3.118 3.122 8.192-.005 11.319l-22.617 22.617a7.986 7.986 0 01-5.663 2.346z\"/></g></svg>"
},
"$:/core/images/unlocked-padlock": {
"title": "$:/core/images/unlocked-padlock",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-unlocked-padlock tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M48.627 64H105v32.01C105 113.674 90.674 128 73.001 128H56C38.318 128 24 113.677 24 96.01V64h6.136c-10.455-12.651-27.364-35.788-4.3-55.142 24.636-20.672 45.835 4.353 55.777 16.201 9.943 11.85-2.676 22.437-12.457 9.892-9.78-12.545-21.167-24.146-33.207-14.043-12.041 10.104-1.757 22.36 8.813 34.958 2.467 2.94 3.641 5.732 3.865 8.134zm19.105 28.364A8.503 8.503 0 0064.5 76a8.5 8.5 0 00-3.498 16.25l-5.095 22.77H72.8l-5.07-22.656z\"/></svg>"
},
"$:/core/images/up-arrow": {
"title": "$:/core/images/up-arrow",
"created": "20150316000544368",
"modified": "20150316000831867",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-up-arrow tc-image-button\" viewBox=\"0 0 128 128\"><path d=\"M63.892.281c2.027 0 4.054.77 5.6 2.316l55.98 55.98a7.92 7.92 0 010 11.196c-3.086 3.085-8.104 3.092-11.196 0L63.894 19.393 13.513 69.774a7.92 7.92 0 01-11.196 0c-3.085-3.086-3.092-8.105 0-11.196l55.98-55.98A7.892 7.892 0 0163.893.28z\"/></svg>"
},
"$:/core/images/video": {
"title": "$:/core/images/video",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-video tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M64 12c-34.91 0-55.273 2.917-58.182 5.833C2.91 20.75 0 41.167 0 64.5c0 23.333 2.91 43.75 5.818 46.667C8.728 114.083 29.091 117 64 117c34.91 0 55.273-2.917 58.182-5.833C125.09 108.25 128 87.833 128 64.5c0-23.333-2.91-43.75-5.818-46.667C119.272 14.917 98.909 12 64 12zm-9.084 32.618c-3.813-2.542-6.905-.879-6.905 3.698v31.368c0 4.585 3.099 6.235 6.905 3.698l22.168-14.779c3.813-2.542 3.806-6.669 0-9.206L54.916 44.618z\"/></svg>"
},
"$:/core/images/warning": {
"title": "$:/core/images/warning",
"tags": "$:/tags/Image",
"text": "<svg width=\"22pt\" height=\"22pt\" class=\"tc-image-warning tc-image-button\" viewBox=\"0 0 128 128\"><path fill-rule=\"evenodd\" d=\"M57.072 11c3.079-5.333 10.777-5.333 13.856 0l55.426 96c3.079 5.333-.77 12-6.928 12H8.574c-6.158 0-10.007-6.667-6.928-12l55.426-96zM64 37c-4.418 0-8 3.582-8 7.994v28.012C56 77.421 59.59 81 64 81c4.418 0 8-3.582 8-7.994V44.994C72 40.579 68.41 37 64 37zm0 67a8 8 0 100-16 8 8 0 000 16z\"/></svg>"
},
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "advanced search"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Advanced search"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "cancel"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Discard changes to this tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "clone"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone this tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "close"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Close this tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "close all"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Close all tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "close others"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Close other tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "control panel"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Open control panel"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copy to clipboard"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copy this text to the clipboard"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "delete"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Delete this tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "edit"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Edit this tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "encryption"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Set or clear a password for saving this wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "clear password"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Clear the password and save this wiki without encryption"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "set password"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Set a password for saving this wiki with encryption"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "export all"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Export all tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "export tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Export tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "export tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Export tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Select the sidebar search field"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "fold tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Fold the body of this tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "fold-bar"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Optional bars to fold and unfold tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "unfold tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Unfold the body of this tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "fold other tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Fold the bodies of other opened tiddlers"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "fold all tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Fold the bodies of all opened tiddlers"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "unfold all tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Unfold the bodies of all opened tiddlers"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "full-screen"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Enter or leave full-screen mode"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "help"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Show help panel"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "import"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Import many types of file including text, image, TiddlyWiki or JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "info"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Show information for this tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "home"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Open the default tiddlers"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "language"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choose the user interface language"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "tiddler manager"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Open tiddler manager"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "more"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "More actions"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "new here"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Create a new tiddler tagged with this one"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "new journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Create a new journal tiddler"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "new journal here"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Create a new journal tiddler tagged with this one"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "new image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Create a new image tiddler"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "new Markdown tiddler"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Create a new Markdown tiddler"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "new tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Create a new tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "open in new window"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Open tiddler in new window"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choose the colour palette"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Set browser address bar to a direct link to this tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Set browser address bar to a direct link to all the tiddlers in this story"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "print page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Print the current page"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "refresh"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Perform a full refresh of the wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirm changes to this tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "save changes"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Save changes"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "storyview"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choose the story visualisation"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "hide sidebar"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Hide sidebar"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "show sidebar"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Show sidebar"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "tag manager"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Open tag manager"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "timestamps"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Choose whether modifications update timestamps"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "timestamps are on"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "Update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "timestamps are off"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "Don't update timestamps when tiddlers are modified"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "theme"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choose the display theme"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "bold"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Apply bold formatting to selection"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "clear"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Clear image to solid colour"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "editor height"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Automatically adjust height to fit content"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Fixed height:"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choose the height of the text editor"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "excise"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Perform excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Macro name:"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Title of new tiddler:"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Replace excised text with:"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "link"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Tag new tiddler with the title of this tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Warning: tiddler already exists"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise the selected text into a new tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "heading 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Apply heading level 1 formatting to lines containing selection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "heading 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Apply heading level 2 formatting to lines containing selection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "heading 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Apply heading level 3 formatting to lines containing selection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "heading 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Apply heading level 4 formatting to lines containing selection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "heading 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Apply heading level 5 formatting to lines containing selection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "heading 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Apply heading level 6 formatting to lines containing selection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italic"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Apply italic formatting to selection"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "line width"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Set line width for painting"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "link"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Create wikitext link"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilink"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Wrap selection in square brackets"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "bulleted list"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Apply bulleted list formatting to lines containing selection"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "numbered list"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Apply numbered list formatting to lines containing selection"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "monospaced block"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Apply monospaced block formatting to lines containing selection"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "monospaced"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Apply monospaced character formatting to selection"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacity"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Set painting opacity"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "paint colour"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Set painting colour"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "picture"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insert picture"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "preview"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Show preview pane"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "preview type"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choose preview type"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "quote"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Apply quoted text formatting to lines containing selection"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "rotate left"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Rotate image left by 90 degrees"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "image size"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Height:"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Resize image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Width:"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Set image size"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "stamp"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Add your own"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insert a preconfigured snippet of text"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Name as shown in menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Text of snippet. (Remember to add a descriptive title in the caption field)."
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "strikethrough"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Apply strikethrough formatting to selection"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "subscript"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Apply subscript formatting to selection"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "superscript"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Apply superscript formatting to selection"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Toggle the sidebar visibility"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Wrap selection in curly brackets"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "underline"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Apply underline formatting to selection"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Advanced"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Internal information about this TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Appearance"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Ways to customise the appearance of your TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Animation duration"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Default focus field for new tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Basics"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Use [[double square brackets]] for titles with spaces. Or you can choose to <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">retain story ordering</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Default tiddlers"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Choose which tiddlers are displayed at startup"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Hello! Current language:"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Title of new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Text for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags for new journal tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Title of new tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags for new tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Number of overridden shadow tiddlers"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Number of shadow tiddlers"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Subtitle"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Number of system tiddlers"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Number of tags"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Number of tiddlers"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Title of this ~TiddlyWiki"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Username for signing edits"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "~TiddlyWiki version"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Editor Types"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Editor"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "These tiddlers determine which editor is used to edit specific tiddler types."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information about this TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Type shortcut here"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "add shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Keyboard Shortcuts"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Manage keyboard shortcut assignments"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "No keyboard shortcuts assigned"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "remove keyboard shortcut"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "All platforms"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Macintosh platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Non-Macintosh platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Linux platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Non-Linux platforms only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Windows platform only"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Non-Windows platforms only"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Loaded Modules"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "These are the currently loaded tiddler modules linked to their source tiddlers. Any italicised modules lack a source tiddler, typically because they were setup during the boot process."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "clone"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "It is recommended that you clone this shadow palette before editing it"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "delete this entry from the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Show color names that are not part of the current palette"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "This shadow palette has been modified"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Editing"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "reset"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "hide editor"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Current palette:"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "show editor"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Parsing"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Here you can globally disable/enable wiki parser rules. For changes to take effect, save and reload your wiki. Disabling certain parser rules can prevent <$text text=\"TiddlyWiki\"/> from functioning correctly. Use [[safe mode|https://tiddlywiki.com/#SafeMode]] to restore normal operation."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Block Parse Rules"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Inline Parse Rules"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Pragma Parse Rules"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Get more plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Install plugins from the official library"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "This plugin is already installed at version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Also requires:"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "disable"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Disable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(disabled)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "downgrade"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "None"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "enable"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Enable this plugin when reloading page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "install"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Currently installed plugins:"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Languages"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Language pack plugins"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "No ''\"<$text text=<<currentTab>>/>\"'' found"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "This plugin is not currently installed"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "open plugin library"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "close plugin library"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(requires reload)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "reinstall"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Themes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Theme plugins"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "update"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Updates"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Available updates to installed plugins"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Update <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "With <<count>> sub-plugins available"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Saving"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permit automatic saving for the download saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Enable Autosave for Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Download Saver"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "These settings apply to the HTML5-compatible download saver"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "General"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "These settings apply to all the loaded savers"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Settings used for saving the entire TiddlyWiki as a single file via a saver module"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Target branch for saving"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Saved by TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "These settings are only used when saving to <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Filename of target file (e.g. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Path to target file (e.g. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "Target repository (e.g. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "Server API URL"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Username"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "~GitHub Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Password, OAUTH token, or personal access token (see [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "~GitLab Saver"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "Personal access token for API (see [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] for details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Gitea Saver"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "Personal access token for API (via Gitea’s web interface: `Settings | Applications | Generate New Token`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Advanced Settings"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Backup Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Backups"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "~TiddlySpot Saver"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "These settings are only used when saving to http://tiddlyspot.com or a compatible remote server"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Upload Filename"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//The server URL defaults to `http://<wikiname>.tiddlyspot.com/store.cgi` and can be changed to use a custom server address, e.g. `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Password"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "Server URL"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Upload Directory"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Wiki Name"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Autosave"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Do not save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Save changes automatically"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Attempt to automatically save changes during editing when using a supporting saver"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Camel Case Wiki Links"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "You can globally disable automatic linking of ~CamelCase phrases. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Enable automatic ~CamelCase linking"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Settings"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Enable or disable the editor toolbar:"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Show editor toolbar"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Tiddler Info Panel Mode"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Control when the tiddler info panel closes:"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Tiddler info panel closes automatically"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Tiddler info panel stays open until explicitly closed"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "These settings let you customise the behaviour of TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Navigation Address Bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Behaviour of the browser address bar when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Do not update the address bar"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Include the target tiddler"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Include the target tiddler and the current story sequence"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Navigation History"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Update browser history when navigating to a tiddler:"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Do not update history"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Update history"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Permalink/permaview Mode"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choose how permalink/permaview is handled:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copy permalink/permaview URL to clipboard"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Update address bar with permalink/permaview URL"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Performance Instrumentation"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Displays performance statistics in the browser developer console. Requires reload to take effect"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Enable performance instrumentation"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Toolbar Button Style"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choose the style for toolbar buttons:"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Borderless"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Boxed"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Rounded"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Toolbar Buttons"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Default toolbar button appearance:"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Include icon"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Include text"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Default Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Specify which sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Default More Sidebar Tab"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Specify which More sidebar tab is displayed by default"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Tiddler Opening Behaviour"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation from //within// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation from //outside// the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Open above the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Open below the current tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Open at the top of the story river"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Open at the bottom of the story river"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Tiddler Titles"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Optionally display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Do not display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Display tiddler titles as links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Wiki Links"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Choose whether to link to tiddlers that do not exist yet"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Enable links to missing tiddlers"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Story View"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Current view:"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Stylesheets"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Expand All"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "This is the rendered CSS of the current stylesheet tiddlers tagged with <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restore"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Theme"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Current theme:"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Tiddler Fields"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "This is the full set of TiddlerFields in use in this wiki (including system tiddlers but excluding shadow tiddlers)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Toolbars"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Edit Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in edit mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Select which toolbar buttons are displayed"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Page Toolbar"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choose which buttons are displayed on the main page toolbar. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Editor Toolbar"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choose which buttons are displayed in the editor toolbar. Note that some buttons will only appear when editing tiddlers of a certain type. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "View Toolbar"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choose which buttons are displayed for tiddlers in view mode. Drag and drop to change the ordering"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Download full wiki"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "st"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": "nd"
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": "rd"
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": "th"
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": "th"
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": "th"
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": "th"
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": "th"
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": "th"
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": "th"
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": "th"
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": "th"
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": "th"
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": "th"
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": "th"
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": "th"
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": "th"
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": "th"
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": "th"
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": "th"
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": "st"
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": "nd"
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": "rd"
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": "th"
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": "th"
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": "th"
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": "th"
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": "th"
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": "th"
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": "th"
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": "st"
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Sunday"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Monday"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Tuesday"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Wednesday"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Thursday"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Friday"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Saturday"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "January"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "February"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "March"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "April"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "May"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "June"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "July"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "August"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "September"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "October"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "November"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "December"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Sun"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Mon"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Tue"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Wed"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Thu"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Fri"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sat"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Feb"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Apr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "May"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aug"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Dec"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "<<period>> days from now"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "<<period>> hours from now"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "<<period>> minutes from now"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "<<period>> months from now"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "1 second from now"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "<<period>> seconds from now"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "<<period>> years from now"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "<<period>> days ago"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "<<period>> hours ago"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "<<period>> minutes ago"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "<<period>> months ago"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "1 second ago"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "<<period>> seconds ago"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "<<period>> years ago"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "A sub-operator for the ''all'' filter operator."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations that may be used with the RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Defines how requests are authenticated by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "A bitmap editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commands that can be executed under Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Data to be inserted into `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Individual filter operator methods."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Global data to be inserted into `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publishes system information via the [[$:/temp/info-plugin]] pseudo-plugin."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Operands for the ''is'' filter operator."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Generic module type for general purpose JavaScript modules."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "JavaScript macro definitions."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parsers for different content types."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Defines how individual URL patterns are handled by the built-in HTTP server."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Savers handle different methods for saving files from the browser."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Startup functions."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Story views customise the animation and behaviour of list widgets."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "A text editor toolbar operation."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Converts different content types into tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Defines the behaviour of an individual tiddler field."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Adds methods to the `$tw.Tiddler` prototype."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applies upgrade processing to tiddlers during an upgrade/import."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Adds methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Adds Node.js-specific methods to `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Widgets encapsulate DOM rendering and refreshing."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Adds methods to `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Individual parser rules for the main WikiText parser."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Alert background"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Alert border"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Alert highlight"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Alert muted foreground"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "General background"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Blockquote bar"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Default button background"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Default button border"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Default button foreground"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Unsaved changes indicator"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Code background"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Code border"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Code foreground"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Download button background"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Download button foreground"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Dragger background"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Dragger foreground"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Dropdown background"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Dropdown border"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Dropdown tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Dropdown tab background"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Dropzone background"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "External link background hover"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "External link background visited"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "External link background"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "External link foreground hover"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "External link foreground visited"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "External link foreground"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "General foreground"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Menu bar background"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Menu bar foreground"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Message box background"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Message box border"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Message box foreground"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Modal backdrop"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Modal background"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Modal border"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Modal footer background"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Modal footer border"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Modal header border"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "General muted foreground"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Notification background"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Notification border"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Page background"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Preformatted code background"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Preformatted code border"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "General primary"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "`<select>` element background"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "`<select>` element text"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Sidebar button foreground"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Sidebar controls foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Sidebar controls foreground"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Sidebar foreground shadow"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Sidebar foreground"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Sidebar muted foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Sidebar muted foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Sidebar tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Sidebar tab background"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Sidebar tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Sidebar tab border"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Sidebar tab divider"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Sidebar tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Sidebar tab foreground"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Sidebar tiddler link foreground hover"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Sidebar tiddler link foreground"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Site title foreground"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Static alert foreground"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Tab background for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Tab background"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Tab border for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Tab border"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Tab divider"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Tab foreground for selected tabs"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Tab foreground"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Table border"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Table footer background"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Table header background"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Tag background"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Tag foreground"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Tiddler background"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Tiddler border"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Tiddler controls foreground hover"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Tiddler controls foreground for selected controls"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Tiddler controls foreground"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Tiddler editor background"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Tiddler editor border image"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Tiddler editor border"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Tiddler editor background for even fields"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Tiddler editor background for odd fields"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Tiddler info panel background"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Tiddler info panel border"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Tiddler info panel tab background"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Tiddler link background"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Tiddler link foreground"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Tiddler subtitle foreground"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Tiddler title foreground"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Toolbar 'new tiddler' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Toolbar 'options' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Toolbar 'save' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Toolbar 'info' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Toolbar 'edit' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Toolbar 'close' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Toolbar 'delete' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Toolbar 'cancel' button foreground"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Toolbar 'done' button foreground"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Untagged pill background"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Very muted foreground"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "This tiddler shows content stored outside of the main TiddlyWiki file. You can edit the tags and fields but cannot directly edit the content itself"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Type the text for this tiddler"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "output"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "remove field"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Remove field"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "field list"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Show field list"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Add the new field to the tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "field name"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Add a new field:"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "field value"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "System fields"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "User fields"
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "This is a shadow tiddler. Any changes you make will override the default version from the plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "This is a modified shadow tiddler. You can revert to the default version in the plugin <<pluginLink>> by deleting this tiddler"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "add"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "add tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "tag name"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "tag list"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Show tag list"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Warning: avoid using any of the characters <<bad-chars>> in tiddler titles"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Target tiddler already exists"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Update ''<$text text=<<fromTitle>>/>'' to ''<$text text=<<toTitle>>/>'' in the //tags// and //list// fields of other tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "The following references to this tiddler will not be automatically updated:"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "content type list"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Show content type list"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "delete content type"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Delete content type"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "content type"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type:"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "Static HTML"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "JSON file"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "CSV file"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "\".tid\" file"
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "The full URI of an external image tiddler"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "The name of the bag from which a tiddler came"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "The text to be displayed on a tab or button"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "The CSS color value associated with a tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "The name of the component responsible for an [[alert tiddler|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Used to cache the top tiddler in a [[history list|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "The date a tiddler was created"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "The name of the person who created a tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "For a plugin, lists the dependent plugin titles"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "The descriptive text for a plugin, or a modal dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "For draft tiddlers, contains the title of the tiddler of which this is a draft"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "For draft tiddlers, contains the proposed new title of the tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "The footer text for a wizard"
},
"$:/language/Docs/Fields/hide-body": {
"title": "$:/language/Docs/Fields/hide-body",
"text": "The view template will hide bodies of tiddlers if set to: ''yes''"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "The title of the tiddler containing the icon associated with a tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Indicates that a tiddler should be saved as a JavaScript library if set to: ''yes''"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "An ordered list of tiddler titles associated with a tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "If set, the title of a tiddler before which this tiddler should be added to the ordered list of tiddler titles, or at the start of the list if this field is present but empty"
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "If set, the title of the tiddler after which this tiddler should be added to the ordered list of tiddler titles, or at the end of the list if this field is present but empty"
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "The date and time at which a tiddler was last modified"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "The tiddler title associated with the person who last modified a tiddler"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "The human readable name associated with a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "A numerical value indicating the priority of a plugin tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "The type of plugin in a plugin tiddler"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "The revision of the tiddler held at the server"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date of a TiddlyWiki release"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "The source URL associated with a tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "The subtitle text for a wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "A list of tags associated with a tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "The body text of a tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "If present, throttles refreshes of this tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "The unique name of a tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Suppresses the tiddler's link in a Table of Contents tree if set to: ''no''"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "The content type of a tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "Version information for a plugin"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "If present, indicates that the tiddler text field must be loaded from the server"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "All tiddlers except system tiddlers"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Recently modified tiddlers, including system tiddlers"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Recently modified tiddlers"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "All tags except system tags"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Missing tiddlers"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Draft tiddlers"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Orphan tiddlers"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "System tiddlers"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Shadow tiddlers"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Overridden shadow tiddlers"
},
"$:/language/Filters/SessionTiddlers": {
"title": "$:/language/Filters/SessionTiddlers",
"text": "Tiddlers modified since the wiki was loaded"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "System tags"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Tiddlers in the story river, excluding <$text text=\"$:/AdvancedSearch\"/>"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Non wiki-text tiddlers"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nWelcome to ~TiddlyWiki and the ~TiddlyWiki community\n\nBefore you start storing important information in ~TiddlyWiki it is vital to make sure that you can reliably save changes. See https://tiddlywiki.com/#GettingStarted for details\n\n!! Set up this ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nSee the [[control panel|$:/ControlPanel]] for more options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Automatically run configured commands",
"text": "Build the specified build targets for the current wiki. If no build targets are specified then all available targets will be built.\n\n```\n--build <target> [<target> ...]\n```\n\nBuild targets are defined in the `tiddlywiki.info` file of a wiki folder.\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Clear a password for subsequent crypto operations",
"text": "Clear the password for subsequent crypto operations\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<wikifolder>] [--<command> [<args>...]...]\n```\n\nAvailable commands:\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link>: <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nTo get detailed help on a command:\n\n```\ntiddlywiki --help <command>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Deletes a group of tiddlers",
"text": "<<.from-version \"5.1.20\">> Deletes a group of tiddlers identified by a filter.\n\n```\n--deletetiddlers <filter>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Lists the available editions of TiddlyWiki",
"text": "Lists the names and descriptions of the available editions. You can create a new wiki of a specified edition with the `--init` command.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Fetch tiddlers from wiki by URL",
"text": "Fetch one or more files over HTTP/HTTPS, and import the tiddlers matching a filter, optionally transforming the incoming titles.\n\n```\n--fetch file <url> <import-filter> <transform-filter>\n--fetch files <url-filter> <import-filter> <transform-filter>\n--fetch raw-file <url> <transform-filter>\n--fetch raw-files <url-filter> <transform-filter>\n```\n\nThe \"file\" and \"files\" variants fetch the specified files and attempt to import the tiddlers within them (the same processing as if the files were dragged into the browser window). The \"raw-file\" and \"raw-files\" variants fetch the specified files and then store the raw file data in tiddlers, without applying the import logic.\n\nWith the \"file\" and \"raw-file\" variants only a single file is fetched and the first parameter is the URL of the file to read.\n\nWith the \"files\" and \"raw-files\" variants, multiple files are fetched and the first parameter is a filter yielding a list of URLs of the files to read. For example, given a set of tiddlers tagged \"remote-server\" that have a field \"url\" the filter `[tag[remote-server]get[url]]` will retrieve all the available URLs.\n\nFor the \"file\" and \"files\" variants, the `<import-filter>` parameter specifies a filter determining which tiddlers are imported. It defaults to `[all[tiddlers]]` if not provided.\n\nFor all variants, the `<transform-filter>` parameter specifies an optional filter that transforms the titles of the imported tiddlers. For example, `[addprefix[$:/myimports/]]` would add the prefix `$:/myimports/` to each title.\n\nPreceding the `--fetch` command with `--verbose` will output progress information during the import.\n\nNote that TiddlyWiki will not fetch an older version of an already loaded plugin.\n\nThe following example retrieves all the non-system tiddlers from https://tiddlywiki.com and saves them to a JSON file:\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\nThe following example retrieves the \"favicon\" file from tiddlywiki.com and saves it in a file called \"output.ico\". Note that the intermediate tiddler \"Icon Tiddler\" is quoted in the \"--fetch\" command because it is being used as a transformation filter to replace the default title, while there are no quotes for the \"--savetiddler\" command because it is being used directly as a title.\n\n```\ntiddlywiki --verbose --fetch raw-file \"https://tiddlywiki.com/favicon.ico\" \"[[Icon Tiddler]]\" --savetiddler \"Icon Tiddler\" output.ico\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Display help for TiddlyWiki commands",
"text": "Displays help text for a command:\n\n```\n--help [<command>]\n```\n\nIf the command name is omitted then a list of available commands is displayed.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Import tiddlers from a file",
"text": "Import tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The deserializer must be explicitly specified, unlike the `load` command which infers the deserializer from the file extension.\n\n```\n--import <filepath> <deserializer> [<title>] [<encoding>]\n```\n\nThe deserializers in the core include:\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nThe title of the imported tiddler defaults to the filename.\n\nThe encoding defaults to \"utf8\", but can be \"base64\" for importing binary files.\n\nNote that TiddlyWiki will not import an older version of an already loaded plugin.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise a new wiki folder",
"text": "Initialise an empty [[WikiFolder|WikiFolders]] with a copy of the specified edition.\n\n```\n--init <edition> [<edition> ...]\n```\n\nFor example:\n\n```\ntiddlywiki ./MyWikiFolder --init empty\n```\n\nNote:\n\n* The wiki folder directory will be created if necessary\n* The \"edition\" defaults to ''empty''\n* The init command will fail if the wiki folder is not empty\n* The init command removes any `includeWikis` definitions in the edition's `tiddlywiki.info` file\n* When multiple editions are specified, editions initialised later will overwrite any files shared with earlier editions (so, the final `tiddlywiki.info` file will be copied from the last edition)\n* `--editions` returns a list of available editions\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Provides an HTTP server interface to TiddlyWiki",
"text": "Serves a wiki over HTTP.\n\nThe listen command uses NamedCommandParameters:\n\n```\n--listen [<name>=<value>]...\n```\n\nAll parameters are optional with safe defaults, and can be specified in any order. The recognised parameters are:\n\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''credentials'' - pathname of credentials CSV file (relative to wiki folder)\n* ''anon-username'' - the username for signing edits for anonymous users\n* ''username'' - optional username for basic authentication\n* ''password'' - optional password for basic authentication\n* ''authenticated-user-header'' - optional name of header to be used for trusted authentication\n* ''readers'' - comma separated list of principals allowed to read from this wiki\n* ''writers'' - comma separated list of principals allowed to write to this wiki\n* ''csrf-disable'' - set to \"yes\" to disable CSRF checks (defaults to \"no\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''tls-cert'' - pathname of TLS certificate file (relative to wiki folder)\n* ''tls-key'' - pathname of TLS key file (relative to wiki folder)\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n* ''gzip'' - set to \"yes\" to enable gzip compression for some http endpoints (defaults to \"no\")\n\nFor information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Load tiddlers from a file",
"text": "Load tiddlers from TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` or other local files. The processing applied to incoming files is determined by the file extension. Use the alternative `import` command if you need to specify the deserializer and encoding explicitly.\n\n```\n--load <filepath> [noerror]\n--load <dirpath> [noerror]\n```\n\nBy default, the load command raises an error if no tiddlers are found. The error can be suppressed by providing the optional \"noerror\" parameter.\n\nTo load tiddlers from an encrypted TiddlyWiki file you should first specify the password with the PasswordCommand. For example:\n\n```\ntiddlywiki ./MyWiki --password pa55w0rd --load my_encrypted_wiki.html\n```\n\nNote that TiddlyWiki will not load an older version of an already loaded plugin.\n"
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construct library plugin required by upgrade process",
"text": "Constructs the `$:/UpgradeLibrary` tiddler for the upgrade process.\n\nThe upgrade library is formatted as an ordinary plugin tiddler with the plugin type `library`. It contains a copy of each of the plugins, themes and language packs available within the TiddlyWiki5 repository.\n\nThis command is intended for internal use; it is only relevant to users constructing a custom upgrade procedure.\n\n```\n--makelibrary <title>\n```\n\nThe title argument defaults to `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "No such help item"
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Set the base output directory for subsequent commands",
"text": "Sets the base output directory for subsequent commands. The default output directory is the `output` subdirectory of the edition directory.\n\n```\n--output <pathname>\n```\n\nIf the specified pathname is relative then it is resolved relative to the current working directory. For example `--output .` sets the output directory to the current working directory.\n\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Set a password for subsequent crypto operations",
"text": "Set a password for subsequent crypto operations\n\n```\n--password <password>\n```\n\n''Note'': This should not be used for serving TiddlyWiki with password protection. Instead, see the password option under the [[ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Renders individual tiddlers to files",
"text": "Render individual tiddlers identified by a filter and save the results to the specified files.\n\nOptionally, the title of a template tiddler can be specified. In this case, instead of directly rendering each tiddler, the template tiddler is rendered with the \"currentTiddler\" variable set to the title of the tiddler that is being rendered.\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--render <tiddler-filter> [<filename-filter>] [<render-type>] [<template>] [<name>] [<value>]\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be rendered\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]addsuffix[.html]]`, which uses the unchanged tiddler title as the filename\n* ''render-type'': Optional render type: `text/html` (the default) returns the full HTML text and `text/plain` just returns the text content (ie it ignores HTML tags and other unprintable material)\n* ''template'': Optional template through which each tiddler is rendered\n* ''name'': Name of optional variable\n* ''value'': Value of optional variable\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When referring to a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--render \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being rendered, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--render` command is a more flexible replacement for both the `--rendertiddler` and `--rendertiddlers` commands, which are deprecated\n\nExamples:\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- renders all non-system tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles and the extension HTML\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Render an individual tiddler as a specified ContentType",
"text": "(Note: The `--rendertiddler` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender an individual tiddler as a specified ContentType, defaulting to `text/html` and save it to the specified filename.\n\nOptionally the title of a template tiddler can be specified, in which case the template tiddler is rendered with the \"currentTiddler\" variable set to the tiddler that is being rendered (the first parameter value).\n\nA name and value for an additional variable may optionally also be specified.\n\n```\n--rendertiddler <title> <filename> [<type>] [<template>] [<name>] [<value>]\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n\nFor example, the following command saves all tiddlers matching the filter `[tag[done]]` to a JSON file titled `output.json` by employing the core template `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Render tiddlers matching a filter to a specified ContentType",
"text": "(Note: The `--rendertiddlers` command is deprecated in favour of the new, more flexible `--render` command)\n\nRender a set of tiddlers matching a filter to separate files of a specified ContentType (defaults to `text/html`) and extension (defaults to `.html`).\n\n```\n--rendertiddlers <filter> <template> <pathname> [<type>] [<extension>] [\"noclean\"]\n```\n\nFor example:\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny files in the target directory are deleted unless the ''noclean'' flag is specified. The target directory is recursively created if it is missing.\n"
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Saves individual raw tiddlers to files",
"text": "Saves individual tiddlers identified by a filter in their raw text or binary format to the specified files.\n\n```\n--save <tiddler-filter> <filename-filter>\n```\n\n* ''tiddler-filter'': A filter identifying the tiddler(s) to be saved\n* ''filename-filter'': Optional filter transforming tiddler titles into pathnames. If omitted, defaults to `[is[tiddler]]`, which uses the unchanged tiddler title as the filename\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nNotes:\n\n* The output directory is not cleared of any existing files\n* Any missing directories in the path to the filename are automatically created.\n* When saving a tiddler with spaces in its title, take care to use both the quotes required by your shell and also TiddlyWiki's double square brackets : `--save \"[[Motovun Jack.jpg]]\"`\n* The filename filter is evaluated with the selected items being set to the title of the tiddler currently being saved, allowing the title to be used as the basis for computing the filename. For example `[encodeuricomponent[]addprefix[static/]]` applies URI encoding to each title, and then adds the prefix `static/`\n* The `--save` command is a more flexible replacement for both the `--savetiddler` and `--savetiddlers` commands, which are deprecated\n\nExamples:\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- saves all non-system image tiddlers as files in the subdirectory \"tiddlers\" with URL-encoded titles\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Saves a raw tiddler to a file",
"text": "(Note: The `--savetiddler` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves an individual tiddler in its raw text or binary format to the specified filename.\n\n```\n--savetiddler <title> <filename>\n```\n\nBy default, the filename is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nAny missing directories in the path to the filename are automatically created.\n"
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Saves a group of raw tiddlers to a directory",
"text": "(Note: The `--savetiddlers` command is deprecated in favour of the new, more flexible `--save` command)\n\nSaves a group of tiddlers in their raw text or binary format to the specified directory.\n\n```\n--savetiddlers <filter> <pathname> [\"noclean\"]\n```\n\nBy default, the pathname is resolved relative to the `output` subdirectory of the edition directory. The `--output` command can be used to direct output to a different directory.\n\nThe output directory is cleared of existing files before saving the specified files. The deletion can be disabled by specifying the ''noclean'' flag.\n\nAny missing directories in the pathname are automatically created.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Saves a wiki to a new wiki folder",
"text": "<<.from-version \"5.1.20\">> Saves the current wiki as a wiki folder, including tiddlers, plugins and configuration:\n\n```\n--savewikifolder <wikifolderpath> [<filter>]\n```\n\n* The target wiki folder must be empty or non-existent\n* The filter specifies which tiddlers should be included. It is optional, defaulting to `[all[tiddlers]]`\n* Plugins from the official plugin library are replaced with references to those plugins in the `tiddlywiki.info` file\n* Custom plugins are unpacked into their own folder\n\nA common usage is to convert a TiddlyWiki HTML file into a wiki folder:\n\n```\ntiddlywiki --load ./mywiki.html --savewikifolder ./mywikifolder\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Provides an HTTP server interface to TiddlyWiki (deprecated in favour of the new listen command)",
"text": "Legacy command to serve a wiki over HTTP.\n\n```\n--server <port> <root-tiddler> <root-render-type> <root-serve-type> <username> <password> <host> <path-prefix> <debug-level>\n```\n\nThe parameters are:\n\n* ''port'' - port number on which to listen; non-numeric values are interpreted as a system environment variable from which the port number is extracted (defaults to \"8080\")\n* ''root-tiddler'' - the tiddler to serve at the root (defaults to \"$:/core/save/all\")\n* ''root-render-type'' - the content type to which the root tiddler should be rendered (defaults to \"text/plain\")\n* ''root-serve-type'' - the content type with which the root tiddler should be served (defaults to \"text/html\")\n* ''username'' - the default username for signing edits\n* ''password'' - optional password for basic authentication\n* ''host'' - optional hostname to serve from (defaults to \"127.0.0.1\" aka \"localhost\")\n* ''path-prefix'' - optional prefix for paths\n* ''debug-level'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nIf the password parameter is specified then the browser will prompt the user for the username and password. Note that the password is transmitted in plain text so this implementation should only be used on a trusted network or over HTTPS.\n\nFor example:\n\n```\n--server 8080 $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n\nThe username and password can be specified as empty strings if you need to set the hostname or pathprefix and don't want to require a password.\n\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nUsing an address like this exposes your system to the local network. For information on opening up your instance to the entire local network, and possible security concerns, see the WebServer tiddler at TiddlyWiki.com.\n\nTo run multiple TiddlyWiki servers at the same time you'll need to put each one on a different port. It can be useful to use an environment variable to pass the port number to the Node.js process. This example references an environment variable called \"MY_PORT_NUMBER\":\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MyUserName passw0rd\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prepares external tiddlers for use",
"text": "//Note that this command is experimental and may change or be replaced before being finalised//\n\nSets the specified field of a group of tiddlers to the result of wikifying a template tiddler with the `currentTiddler` variable set to the tiddler.\n\n```\n--setfield <filter> <fieldname> <templatetitle> <rendertype>\n```\n\nThe parameters are:\n\n* ''filter'' - filter identifying the tiddlers to be affected\n* ''fieldname'' - the field to modify (defaults to \"text\")\n* ''templatetitle'' - the tiddler to wikify into the specified field. If blank or missing then the specified field is deleted\n* ''rendertype'' - the text type to render (defaults to \"text/plain\"; \"text/html\" can be used to include HTML tags)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Unpack the payload tiddlers from a plugin",
"text": "Extract the payload tiddlers from a plugin, creating them as ordinary tiddlers:\n\n```\n--unpackplugin <title>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Triggers verbose output mode",
"text": "Triggers verbose output, useful for debugging\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Displays the version number of TiddlyWiki",
"text": "Displays the version number of TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "The following tiddlers were imported:"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Cancel"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "These tiddlers are ready to import:"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Import"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Select"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Status"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Title"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Preview:"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Text"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Text (Raw)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Fields"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (Fields)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Blocked incompatible or obsolete plugin"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Blocked plugin (due to incoming <<incoming>> being older than existing <<existing>>)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Upgraded plugin from <<incoming>> to <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Blocked temporary state tiddler"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Blocked system tiddler"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Core module tiddler"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "You are about to import a tiddler that will overwrite a core module tiddler. This is not recommended as it may make the system unstable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Migrated theme tweak from <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "It looks like you are trying to load a plugin designed for ~TiddlyWiki Classic. Please note that [[these plugins do not work with TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. ~TiddlyWiki Classic plugins detected:"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "This tiddler contains binary data"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "This tiddler is written in TiddlyWiki Classic wiki text format, which is not fully compatible with TiddlyWiki version 5. See https://tiddlywiki.com/static/Upgrading.html for more details."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "upgrade"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "close all"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Recent:"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Do you wish to discard changes to the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Do you wish to delete the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Do you wish to overwrite the tiddler \"<$text text=<<title>>/>\"?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "You are about to edit a ShadowTiddler. Any changes will override the default system making future upgrades non-trivial. Are you sure you want to edit \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "count"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "New Tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> differences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Drop here (or use the 'Escape' key to cancel)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Cancel"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Do you wish to clear the password? This will remove the encryption applied when saving this wiki"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Set a new password for this TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Username"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Password"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Repeat password"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Passwords do not match"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Set password"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Error"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "File changed on server"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Filter error"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Syntax error in filter expression"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Filter Error: Unknown operand for the 'is' filter operator"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Error loading plugin library"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Network Error''</h2>It looks like the connection to the server has been lost. This may indicate a problem with your network connection. Please attempt to restore network connectivity before continuing.<br><br>''Any unsaved changes will be automatically synchronised when connectivity is restored''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Recursive transclusion error in transclude widget"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Error retrieving skinny tiddler list"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Error saving to TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Error while saving"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "XMLHttpRequest error code"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Internal JavaScript Error"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "Well, this is embarrassing. It is recommended that you restart TiddlyWiki by refreshing your browser"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Illegal characters in field name \"<$text text=<<fieldName>>/>\". Fields can only contain lowercase letters, digits and the characters underscore (`_`), hyphen (`-`) and period (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Trying to load external content from ''<$text text={{!!_canonical_uri}}/>''</p><p>If this message doesn't disappear, either the tiddler content type doesn't match the type of the external content, or you may be using a browser that doesn't support external content for wikis loaded as standalone files. See https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Login to TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(none)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filter by tag:"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Reverse order"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Search"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Search:"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Show:"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Sort by:"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Colour"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Fields"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(none)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icon"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Raw text"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Tools"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Wikified text"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Missing tiddler \"<$text text=<<currentTiddler>>/>\" -- click {{||$:/core/ui/Buttons/edit}} to create"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "No"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Official ~TiddlyWiki Plugin Library"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "The official ~TiddlyWiki plugin library at tiddlywiki.com. Plugins, themes and language packs are maintained by the core team."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Please save {{$:/core/ui/Buttons/save-wiki}} and reload {{$:/core/ui/Buttons/refresh}} to allow changes to ~JavaScript plugins to take effect"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DDth MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "This is a system tiddler"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Include system tiddlers"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Colour"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Count"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icon"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "None"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DDth MMM YYYY at hh12:0mmam"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "You have unsaved changes in TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Yes"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"subtitle": "Download changes",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Your browser only supports manual saving.\n\nTo save your modified wiki, right click on the download link below and select \"Download file\" or \"Save file\", and then choose the folder and filename.\n\n//You can marginally speed things up by clicking the link with the control key (Windows) or the options/alt key (Mac OS X). You will not be prompted for the folder or filename, but your browser is likely to give it an unrecognisable name -- you may need to rename the file to include an `.html` extension before you can do anything useful with it.//\n\nOn smartphones that do not allow files to be downloaded you can instead bookmark the link, and then sync your bookmarks to a desktop computer from where the wiki can be saved normally.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"subtitle": "Save your work",
"footer": "<$button message=\"tm-close-tiddler\">Close</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Your changes to this wiki need to be saved as a ~TiddlyWiki HTML file.\n\n!!! Desktop browsers\n\n# Select ''Save As'' from the ''File'' menu\n# Choose a filename and location\n#* Some browsers also require you to explicitly specify the file saving format as ''Webpage, HTML only'' or similar\n# Close this tab\n\n!!! Smartphone browsers\n\n# Create a bookmark to this page\n#* If you've got iCloud or Google Sync set up then the bookmark will automatically sync to your desktop where you can open it and save it as above\n# Close this tab\n\n//If you open the bookmark again in Mobile Safari you will see this message again. If you want to go ahead and use the file, just click the ''close'' button below//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DDth MMM YYYY"
},
"$:/config/NewJournal/Text": {
"title": "$:/config/NewJournal/Text",
"text": ""
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Saved wiki"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Starting to save wiki"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copied to clipboard!"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "Failed to copy to clipboard!"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "List"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filter"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Search via a [[filter expression|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "All matches:"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Title matches:"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Search"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Search text too short"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Search for shadow tiddlers"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Search for standard tiddlers"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "System"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Search for system tiddlers"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> matches</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "All"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Contents"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Drafts"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorer"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Missing"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "More"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Open"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphans"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Recent"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "System"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "untagged"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Tools"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "a non-linear personal web notebook"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "My ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "List of tiddlers by tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Macro definition",
"text": "\\define macroName(param1:\"default value\",param2)\nText of the macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table with 4 columns by 3 rows",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!One | | | | |\n|!Two | | | | |\n|!Three | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table of Contents",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Theme Tweaks"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "You can tweak certain aspects of the ''Vanilla'' theme."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Sidebar layout"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Fixed story, fluid sidebar"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Fluid story, fixed sidebar"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Sticky titles"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Causes tiddler titles to \"stick\" to the top of the browser window"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Wrap long lines in code blocks"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Settings"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Font family"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Code font family"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Editor font family"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Page background image"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Page background image attachment"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Scroll with tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Fixed to window"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Page background image size"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Cover"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contain"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Sizes"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Font size"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Line height"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Font size for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Line height for tiddler body"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Story left position"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "how far the left margin of the story river<br>(tiddler area) is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Story top position"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "how far the top margin of the story river<br>is from the top of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Story right"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "how far the left margin of the sidebar <br>is from the left of the page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Story width"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "the overall width of the story river"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Tiddler width"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "within the story river"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Sidebar breakpoint"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "the minimum page width at which the story<br>river and sidebar will appear side by side"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Sidebar width"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "the width of the sidebar in fluid-fixed layout"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Advanced"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "none"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Plugin Details"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "This plugin contains the following shadow tiddlers:"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Shadow Status"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is not a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "The tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> is a shadow tiddler"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "It is defined in the plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "It is overridden by an ordinary tiddler"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Fields"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "List"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "This tiddler does not have a list"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listed"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "This tiddler is not listed by any others"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "References"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "No tiddlers link to this one"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Tagging"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "No tiddlers are tagged with this one"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Tools"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "JavaScript code",
"name": "application/javascript",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "JSON data",
"name": "application/json",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Data dictionary",
"name": "application/x-tiddler-dictionary",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "GIF image",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "JPEG image",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "PNG image",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Structured Vector Graphics image",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "ICO format icon file",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Static stylesheet",
"name": "text/css",
"group": "Developer",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "HTML markup",
"name": "text/html",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Plain text",
"name": "text/plain",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki 5",
"name": "text/vnd.tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Text",
"group-sort": "0"
},
"$:/languages/en-GB/icon": {
"title": "$:/languages/en-GB/icon",
"type": "image/svg+xml",
"text": "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 60 30\" width=\"1200\" height=\"600\">\n<clipPath id=\"t\">\n\t<path d=\"M30,15 h30 v15 z v15 h-30 z h-30 v-15 z v-15 h30 z\"/>\n</clipPath>\n<path d=\"M0,0 v30 h60 v-30 z\" fill=\"#00247d\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" stroke=\"#fff\" stroke-width=\"6\"/>\n<path d=\"M0,0 L60,30 M60,0 L0,30\" clip-path=\"url(#t)\" stroke=\"#cf142b\" stroke-width=\"4\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#fff\" stroke-width=\"10\"/>\n<path d=\"M30,0 v30 M0,15 h60\" stroke=\"#cf142b\" stroke-width=\"6\"/>\n</svg>\n"
},
"$:/languages/en-GB": {
"title": "$:/languages/en-GB",
"name": "en-GB",
"description": "English (British)",
"author": "JeremyRuston",
"core-version": ">=5.0.0\"",
"text": "Stub pseudo-plugin for the default language"
},
"$:/core/modules/commander.js": {
"title": "$:/core/modules/commander.js",
"text": "/*\\\ntitle: $:/core/modules/commander.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Commander class is a command interpreter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a sequence of commands\n\tcommandTokens: an array of command string tokens\n\twiki: reference to the wiki store object\n\tstreams: {output:, error:}, each of which has a write(string) method\n\tcallback: a callback invoked as callback(err) where err is null if there was no error\n*/\nvar Commander = function(commandTokens,callback,wiki,streams) {\n\tvar path = require(\"path\");\n\tthis.commandTokens = commandTokens;\n\tthis.nextToken = 0;\n\tthis.callback = callback;\n\tthis.wiki = wiki;\n\tthis.streams = streams;\n\tthis.outputPath = path.resolve($tw.boot.wikiPath,$tw.config.wikiOutputSubDir);\n};\n\n/*\nLog a string if verbose flag is set\n*/\nCommander.prototype.log = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str + \"\\n\");\n\t}\n};\n\n/*\nWrite a string if verbose flag is set\n*/\nCommander.prototype.write = function(str) {\n\tif(this.verbose) {\n\t\tthis.streams.output.write(str);\n\t}\n};\n\n/*\nAdd a string of tokens to the command queue\n*/\nCommander.prototype.addCommandTokens = function(commandTokens) {\n\tvar params = commandTokens.slice(0);\n\tparams.unshift(0);\n\tparams.unshift(this.nextToken);\n\tArray.prototype.splice.apply(this.commandTokens,params);\n};\n\n/*\nExecute the sequence of commands and invoke a callback on completion\n*/\nCommander.prototype.execute = function() {\n\tthis.executeNextCommand();\n};\n\n/*\nExecute the next command in the sequence\n*/\nCommander.prototype.executeNextCommand = function() {\n\tvar self = this;\n\t// Invoke the callback if there are no more commands\n\tif(this.nextToken >= this.commandTokens.length) {\n\t\tthis.callback(null);\n\t} else {\n\t\t// Get and check the command token\n\t\tvar commandName = this.commandTokens[this.nextToken++];\n\t\tif(commandName.substr(0,2) !== \"--\") {\n\t\t\tthis.callback(\"Missing command: \" + commandName);\n\t\t} else {\n\t\t\tcommandName = commandName.substr(2); // Trim off the --\n\t\t\t// Accumulate the parameters to the command\n\t\t\tvar params = [];\n\t\t\twhile(this.nextToken < this.commandTokens.length && \n\t\t\t\tthis.commandTokens[this.nextToken].substr(0,2) !== \"--\") {\n\t\t\t\tparams.push(this.commandTokens[this.nextToken++]);\n\t\t\t}\n\t\t\t// Get the command info\n\t\t\tvar command = $tw.commands[commandName],\n\t\t\t\tc,err;\n\t\t\tif(!command) {\n\t\t\t\tthis.callback(\"Unknown command: \" + commandName);\n\t\t\t} else {\n\t\t\t\tif(this.verbose) {\n\t\t\t\t\tthis.streams.output.write(\"Executing command: \" + commandName + \" \" + params.join(\" \") + \"\\n\");\n\t\t\t\t}\n\t\t\t\t// Parse named parameters if required\n\t\t\t\tif(command.info.namedParameterMode) {\n\t\t\t\t\tparams = this.extractNamedParameters(params,command.info.mandatoryParameters);\n\t\t\t\t\tif(typeof params === \"string\") {\n\t\t\t\t\t\treturn this.callback(params);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(command.info.synchronous) {\n\t\t\t\t\t// Synchronous command\n\t\t\t\t\tc = new command.Command(params,this);\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.executeNextCommand();\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// Asynchronous command\n\t\t\t\t\tc = new command.Command(params,this,function(err) {\n\t\t\t\t\t\tif(err) {\n\t\t\t\t\t\t\tself.callback(err);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tself.executeNextCommand();\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t\terr = c.execute();\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\tthis.callback(err);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nGiven an array of parameter strings `params` in name:value format, and an array of mandatory parameter names in `mandatoryParameters`, returns a hashmap of values or a string if error\n*/\nCommander.prototype.extractNamedParameters = function(params,mandatoryParameters) {\n\tmandatoryParameters = mandatoryParameters || [];\n\tvar errors = [],\n\t\tparamsByName = Object.create(null);\n\t// Extract the parameters\n\t$tw.utils.each(params,function(param) {\n\t\tvar index = param.indexOf(\"=\");\n\t\tif(index < 1) {\n\t\t\terrors.push(\"malformed named parameter: '\" + param + \"'\");\n\t\t}\n\t\tparamsByName[param.slice(0,index)] = $tw.utils.trim(param.slice(index+1));\n\t});\n\t// Check the mandatory parameters are present\n\t$tw.utils.each(mandatoryParameters,function(mandatoryParameter) {\n\t\tif(!$tw.utils.hop(paramsByName,mandatoryParameter)) {\n\t\t\terrors.push(\"missing mandatory parameter: '\" + mandatoryParameter + \"'\");\n\t\t}\n\t});\n\t// Return any errors\n\tif(errors.length > 0) {\n\t\treturn errors.join(\" and\\n\");\n\t} else {\n\t\treturn paramsByName;\t\t\n\t}\n};\n\nCommander.initCommands = function(moduleType) {\n\tmoduleType = moduleType || \"command\";\n\t$tw.commands = {};\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tvar c = $tw.commands[module.info.name] = {};\n\t\t// Add the methods defined by the module\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\tc[f] = module[f];\n\t\t\t}\n\t\t}\n\t});\n};\n\nexports.Commander = Commander;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/commands/build.js": {
"title": "$:/core/modules/commands/build.js",
"text": "/*\\\ntitle: $:/core/modules/commands/build.js\ntype: application/javascript\nmodule-type: command\n\nCommand to build a build target\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"build\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\t// Get the build targets defined in the wiki\n\tvar buildTargets = $tw.boot.wikiInfo.build;\n\tif(!buildTargets) {\n\t\treturn \"No build targets defined\";\n\t}\n\t// Loop through each of the specified targets\n\tvar targets;\n\tif(this.params.length > 0) {\n\t\ttargets = this.params;\n\t} else {\n\t\ttargets = Object.keys(buildTargets);\n\t}\n\tfor(var targetIndex=0; targetIndex<targets.length; targetIndex++) {\n\t\tvar target = targets[targetIndex],\n\t\t\tcommands = buildTargets[target];\n\t\tif(!commands) {\n\t\t\treturn \"Build target '\" + target + \"' not found\";\n\t\t}\n\t\t// Add the commands to the queue\n\t\tthis.commander.addCommandTokens(commands);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/clearpassword.js": {
"title": "$:/core/modules/commands/clearpassword.js",
"text": "/*\\\ntitle: $:/core/modules/commands/clearpassword.js\ntype: application/javascript\nmodule-type: command\n\nClear password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"clearpassword\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\t$tw.crypto.setPassword(null);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/deletetiddlers.js": {
"title": "$:/core/modules/commands/deletetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/deletetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to delete tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"deletetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filter\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\twiki.deleteTiddler(title);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/editions.js": {
"title": "$:/core/modules/commands/editions.js",
"text": "/*\\\ntitle: $:/core/modules/commands/editions.js\ntype: application/javascript\nmodule-type: command\n\nCommand to list the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"editions\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\t// Output the list\n\tthis.commander.streams.output.write(\"Available editions:\\n\\n\");\n\tvar editionInfo = $tw.utils.getEditionInfo();\n\t$tw.utils.each(editionInfo,function(info,name) {\n\t\tself.commander.streams.output.write(\" \" + name + \": \" + info.description + \"\\n\");\n\t});\n\tthis.commander.streams.output.write(\"\\n\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/fetch.js": {
"title": "$:/core/modules/commands/fetch.js",
"text": "/*\\\ntitle: $:/core/modules/commands/fetch.js\ntype: application/javascript\nmodule-type: command\n\nCommands to fetch external tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"fetch\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing subcommand and url\";\n\t}\n\tswitch(this.params[0]) {\n\t\tcase \"raw-file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turl: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"file\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turl: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"raw-files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\traw: true,\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\ttransformFilter: this.params[2] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t\tcase \"files\":\n\t\t\treturn this.fetchFiles({\n\t\t\t\turlFilter: this.params[1],\n\t\t\t\timportFilter: this.params[2],\n\t\t\t\ttransformFilter: this.params[3] || \"\",\n\t\t\t\tcallback: this.callback\n\t\t\t});\n\t\t\tbreak;\n\t}\n\treturn null;\n};\n\nCommand.prototype.fetchFiles = function(options) {\n\tvar self = this;\n\t// Get the list of URLs\n\tvar urls;\n\tif(options.url) {\n\t\turls = [options.url]\n\t} else if(options.urlFilter) {\n\t\turls = $tw.wiki.filterTiddlers(options.urlFilter);\n\t} else {\n\t\treturn \"Missing URL\";\n\t}\n\t// Process each URL in turn\n\tvar next = 0;\n\tvar getNextFile = function(err) {\n\t\tif(err) {\n\t\t\treturn options.callback(err);\n\t\t}\n\t\tif(next < urls.length) {\n\t\t\tself.fetchFile(urls[next++],options,getNextFile);\n\t\t} else {\n\t\t\toptions.callback(null);\n\t\t}\n\t};\n\tgetNextFile(null);\n\t// Success\n\treturn null;\n};\n\nCommand.prototype.fetchFile = function(url,options,callback,redirectCount) {\n\tif(redirectCount > 10) {\n\t\treturn callback(\"Error too many redirects retrieving \" + url);\n\t}\n\tvar self = this,\n\t\tlib = url.substr(0,8) === \"https://\" ? require(\"https\") : require(\"http\");\n\tlib.get(url).on(\"response\",function(response) {\n\t var type = (response.headers[\"content-type\"] || \"\").split(\";\")[0],\n\t \tdata = [];\n\t self.commander.write(\"Reading \" + url + \": \");\n\t response.on(\"data\",function(chunk) {\n\t data.push(chunk);\n\t self.commander.write(\".\");\n\t });\n\t response.on(\"end\",function() {\n\t self.commander.write(\"\\n\");\n\t if(response.statusCode === 200) {\n\t\t self.processBody(Buffer.concat(data),type,options,url);\n\t\t callback(null);\n\t } else {\n\t \tif(response.statusCode === 302 || response.statusCode === 303 || response.statusCode === 307) {\n\t \t\treturn self.fetchFile(response.headers.location,options,callback,redirectCount + 1);\n\t \t} else {\n\t\t \treturn callback(\"Error \" + response.statusCode + \" retrieving \" + url)\t \t\t\n\t \t}\n\t }\n\t \t});\n\t \tresponse.on(\"error\",function(e) {\n\t\t\tconsole.log(\"Error on GET request: \" + e);\n\t\t\tcallback(e);\n\t \t});\n\t});\n\treturn null;\n};\n\nCommand.prototype.processBody = function(body,type,options,url) {\n\tvar self = this;\n\t// Collect the tiddlers in a wiki\n\tvar incomingWiki = new $tw.Wiki();\n\tif(options.raw) {\n\t\tvar typeInfo = type ? $tw.config.contentTypeInfo[type] : null,\n\t\t\tencoding = typeInfo ? typeInfo.encoding : \"utf8\";\n\t\tincomingWiki.addTiddler(new $tw.Tiddler({\n\t\t\ttitle: url,\n\t\t\ttype: type,\n\t\t\ttext: body.toString(encoding)\n\t\t}));\n\t} else {\n\t\t// Deserialise the file to extract the tiddlers\n\t\tvar tiddlers = this.commander.wiki.deserializeTiddlers(type || \"text/html\",body.toString(\"utf8\"),{});\n\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\tincomingWiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t});\n\t}\n\t// Filter the tiddlers to select the ones we want\n\tvar filteredTitles = incomingWiki.filterTiddlers(options.importFilter || \"[all[tiddlers]]\");\n\t// Import the selected tiddlers\n\tvar count = 0;\n\tincomingWiki.each(function(tiddler,title) {\n\t\tif(filteredTitles.indexOf(title) !== -1) {\n\t\t\tvar newTiddler;\n\t\t\tif(options.transformFilter) {\n\t\t\t\tvar transformedTitle = (incomingWiki.filterTiddlers(options.transformFilter,null,self.commander.wiki.makeTiddlerIterator([title])) || [\"\"])[0];\n\t\t\t\tif(transformedTitle) {\n\t\t\t\t\tself.commander.log(\"Importing \" + title + \" as \" + transformedTitle)\n\t\t\t\t\tnewTiddler = new $tw.Tiddler(tiddler,{title: transformedTitle});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.commander.log(\"Importing \" + title)\n\t\t\t\tnewTiddler = tiddler;\n\t\t\t}\n\t\t\tself.commander.wiki.importTiddler(newTiddler);\n\t\t\tcount++;\n\t\t}\n\t});\n\tself.commander.log(\"Imported \" + count + \" tiddlers\")\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/help.js": {
"title": "$:/core/modules/commands/help.js",
"text": "/*\\\ntitle: $:/core/modules/commands/help.js\ntype: application/javascript\nmodule-type: command\n\nHelp command\n\n\\*/\n(function(){\n\n/*jshint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"help\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar subhelp = this.params[0] || \"default\",\n\t\thelpBase = \"$:/language/Help/\",\n\t\ttext;\n\tif(!this.commander.wiki.getTiddler(helpBase + subhelp)) {\n\t\tsubhelp = \"notfound\";\n\t}\n\t// Wikify the help as formatted text (ie block elements generate newlines)\n\ttext = this.commander.wiki.renderTiddler(\"text/plain-formatted\",helpBase + subhelp);\n\t// Remove any leading linebreaks\n\ttext = text.replace(/^(\\r?\\n)*/g,\"\");\n\tthis.commander.streams.output.write(text);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/import.js": {
"title": "$:/core/modules/commands/import.js",
"text": "/*\\\ntitle: $:/core/modules/commands/import.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import tiddlers from a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 2) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar filename = self.params[0],\n\t\tdeserializer = self.params[1],\n\t\ttitle = self.params[2] || filename,\n\t\tencoding = self.params[3] || \"utf8\",\n\t\ttext = fs.readFileSync(filename,encoding),\n\t\ttiddlers = this.commander.wiki.deserializeTiddlers(null,text,{title: title},{deserializer: deserializer});\n\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t});\n\tthis.commander.log(tiddlers.length + \" tiddler(s) imported\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/init.js": {
"title": "$:/core/modules/commands/init.js",
"text": "/*\\\ntitle: $:/core/modules/commands/init.js\ntype: application/javascript\nmodule-type: command\n\nCommand to initialise an empty wiki folder\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"init\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\t// Check that we don't already have a valid wiki folder\n\tif($tw.boot.wikiTiddlersPath || ($tw.utils.isDirectory($tw.boot.wikiPath) && !$tw.utils.isDirectoryEmpty($tw.boot.wikiPath))) {\n\t\treturn \"Wiki folder is not empty\";\n\t}\n\t// Loop through each of the specified editions\n\tvar editions = this.params.length > 0 ? this.params : [\"empty\"];\n\tfor(var editionIndex=0; editionIndex<editions.length; editionIndex++) {\n\t\tvar editionName = editions[editionIndex];\n\t\t// Check the edition exists\n\t\tvar editionPath = $tw.findLibraryItem(editionName,$tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar));\n\t\tif(!$tw.utils.isDirectory(editionPath)) {\n\t\t\treturn \"Edition '\" + editionName + \"' not found\";\n\t\t}\n\t\t// Copy the edition content\n\t\tvar err = $tw.utils.copyDirectory(editionPath,$tw.boot.wikiPath);\n\t\tif(!err) {\n\t\t\tthis.commander.streams.output.write(\"Copied edition '\" + editionName + \"' to \" + $tw.boot.wikiPath + \"\\n\");\n\t\t} else {\n\t\t\treturn err;\n\t\t}\n\t}\n\t// Tweak the tiddlywiki.info to remove any included wikis\n\tvar packagePath = $tw.boot.wikiPath + \"/tiddlywiki.info\",\n\t\tpackageJson = JSON.parse(fs.readFileSync(packagePath));\n\tdelete packageJson.includeWikis;\n\tfs.writeFileSync(packagePath,JSON.stringify(packageJson,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/listen.js": {
"title": "$:/core/modules/commands/listen.js",
"text": "/*\\\ntitle: $:/core/modules/commands/listen.js\ntype: application/javascript\nmodule-type: command\n\nListen for HTTP requests and serve tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"listen\",\n\tsynchronous: true,\n\tnamedParameterMode: true,\n\tmandatoryParameters: [],\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this;\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: self.params\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/load.js": {
"title": "$:/core/modules/commands/load.js",
"text": "/*\\\ntitle: $:/core/modules/commands/load.js\ntype: application/javascript\nmodule-type: command\n\nCommand to load tiddlers from a file or directory\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"load\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar tiddlers = $tw.loadTiddlersFromPath(self.params[0]),\n\t\tcount = 0;\n\t$tw.utils.each(tiddlers,function(tiddlerInfo) {\n\t\t$tw.utils.each(tiddlerInfo.tiddlers,function(tiddler) {\n\t\t\tself.commander.wiki.importTiddler(new $tw.Tiddler(tiddler));\n\t\t\tcount++;\n\t\t});\n\t});\n\tif(!count && self.params[1] !== \"noerror\") {\n\t\tself.callback(\"No tiddlers found in file \\\"\" + self.params[0] + \"\\\"\");\n\t} else {\n\t\tself.callback(null);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/makelibrary.js": {
"title": "$:/core/modules/commands/makelibrary.js",
"text": "/*\\\ntitle: $:/core/modules/commands/makelibrary.js\ntype: application/javascript\nmodule-type: command\n\nCommand to pack all of the plugins in the library into a plugin tiddler of type \"library\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"makelibrary\",\n\tsynchronous: true\n};\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar wiki = this.commander.wiki,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tupgradeLibraryTitle = this.params[0] || UPGRADE_LIBRARY_TITLE,\n\t\ttiddlers = {};\n\t// Collect up the library plugins\n\tvar collectPlugins = function(folder) {\n\t\t\tvar pluginFolders = fs.readdirSync(folder);\n\t\t\tfor(var p=0; p<pluginFolders.length; p++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(pluginFolders[p])) {\n\t\t\t\t\tpluginFields = $tw.loadPluginFolder(path.resolve(folder,\"./\" + pluginFolders[p]));\n\t\t\t\t\tif(pluginFields && pluginFields.title) {\n\t\t\t\t\t\ttiddlers[pluginFields.title] = pluginFields;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tcollectPublisherPlugins = function(folder) {\n\t\t\tvar publisherFolders = fs.readdirSync(folder);\n\t\t\tfor(var t=0; t<publisherFolders.length; t++) {\n\t\t\t\tif(!$tw.boot.excludeRegExp.test(publisherFolders[t])) {\n\t\t\t\t\tcollectPlugins(path.resolve(folder,\"./\" + publisherFolders[t]));\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.pluginsPath,$tw.config.pluginsEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.themesPath,$tw.config.themesEnvVar),collectPublisherPlugins);\n\t$tw.utils.each($tw.getLibraryItemSearchPaths($tw.config.languagesPath,$tw.config.languagesEnvVar),collectPlugins);\n\t// Save the upgrade library tiddler\n\tvar pluginFields = {\n\t\ttitle: upgradeLibraryTitle,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"library\",\n\t\t\"text\": JSON.stringify({tiddlers: tiddlers})\n\t};\n\twiki.addTiddler(new $tw.Tiddler(pluginFields));\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/output.js": {
"title": "$:/core/modules/commands/output.js",
"text": "/*\\\ntitle: $:/core/modules/commands/output.js\ntype: application/javascript\nmodule-type: command\n\nCommand to set the default output location (defaults to current working directory)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"output\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tvar fs = require(\"fs\"),\n\t\tpath = require(\"path\");\n\tif(this.params.length < 1) {\n\t\treturn \"Missing output path\";\n\t}\n\tthis.commander.outputPath = path.resolve(process.cwd(),this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/password.js": {
"title": "$:/core/modules/commands/password.js",
"text": "/*\\\ntitle: $:/core/modules/commands/password.js\ntype: application/javascript\nmodule-type: command\n\nSave password for crypto operations\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"password\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing password\";\n\t}\n\t$tw.crypto.setPassword(this.params[0]);\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/render.js": {
"title": "$:/core/modules/commands/render.js",
"text": "/*\\\ntitle: $:/core/modules/commands/render.js\ntype: application/javascript\nmodule-type: command\n\nRender individual tiddlers and save the results to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"render\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing tiddler filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]addsuffix[.html]]\",\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tvarName = this.params[4],\n\t\tvarValue = this.params[5],\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template || title),\n\t\t\tvariables = {currentTiddler: title};\n\t\tif(varName) {\n\t\t\tvariables[varName] = varValue || \"\";\n\t\t}\n\t\tvar widgetNode = wiki.makeWidget(parser,{variables: variables}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Rendering \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddler.js": {
"title": "$:/core/modules/commands/rendertiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render a tiddler and save it to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"rendertiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttype = this.params[2] || \"text/html\",\n\t\ttemplate = this.params[3],\n\t\tname = this.params[4],\n\t\tvalue = this.params[5],\n\t\tvariables = {};\n\t$tw.utils.createFileDirectories(filename);\n\tif(template) {\n\t\tvariables.currentTiddler = title;\n\t\ttitle = template;\n\t}\n\tif(name && value) {\n\t\tvariables[name] = value;\n\t}\n\tfs.writeFile(filename,this.commander.wiki.renderTiddler(type,title,{variables: variables}),\"utf8\",function(err) {\n\t\tself.callback(err);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/rendertiddlers.js": {
"title": "$:/core/modules/commands/rendertiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/rendertiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to render several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"rendertiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\ttemplate = this.params[1],\n\t\toutputPath = this.commander.outputPath,\n\t\tpathname = path.resolve(outputPath,this.params[2]),\t\t\n\t\ttype = this.params[3] || \"text/html\",\n\t\textension = this.params[4] || \".html\",\n\t\tdeleteDirectory = (this.params[5] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(template),\n\t\t\twidgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}}),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\tvar text = type === \"text/html\" ? container.innerHTML : container.textContent,\n\t\t\texportPath = null;\n\t\tif($tw.utils.hop($tw.macros,\"tv-get-export-path\")) {\n\t\t\tvar macroPath = $tw.macros[\"tv-get-export-path\"].run.apply(self,[title]);\n\t\t\tif(macroPath) {\n\t\t\t\texportPath = path.resolve(outputPath,macroPath + extension);\n\t\t\t}\n\t\t}\n\t\tvar finalPath = exportPath || path.resolve(pathname,encodeURIComponent(title) + extension);\n\t\t$tw.utils.createFileDirectories(finalPath);\n\t\tfs.writeFileSync(finalPath,text,\"utf8\");\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/save.js": {
"title": "$:/core/modules/commands/save.js",
"text": "/*\\\ntitle: $:/core/modules/commands/save.js\ntype: application/javascript\nmodule-type: command\n\nSaves individual tiddlers in their raw text or binary format to the specified files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"save\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename filter\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\ttiddlerFilter = this.params[0],\n\t\tfilenameFilter = this.params[1] || \"[is[tiddler]]\",\n\t\ttiddlers = wiki.filterTiddlers(tiddlerFilter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilepath = path.resolve(self.commander.outputPath,wiki.filterTiddlers(filenameFilter,$tw.rootWidget,wiki.makeTiddlerIterator([title]))[0]);\n\t\tif(self.commander.verbose) {\n\t\t\tconsole.log(\"Saving \\\"\" + title + \"\\\" to \\\"\" + filepath + \"\\\"\");\n\t\t}\n\t\t$tw.utils.createFileDirectories(filepath);\n\t\tfs.writeFileSync(filepath,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savelibrarytiddlers.js": {
"title": "$:/core/modules/commands/savelibrarytiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savelibrarytiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the subtiddlers of a bundle tiddler as a series of JSON files\n\n--savelibrarytiddlers <tiddler> <pathname> <skinnylisting>\n\nThe tiddler identifies the bundle tiddler that contains the subtiddlers.\n\nThe pathname specifies the pathname to the folder in which the JSON files should be saved. The filename is the URL encoded title of the subtiddler.\n\nThe skinnylisting specifies the title of the tiddler to which a JSON catalogue of the subtiddlers will be saved. The JSON file contains the same data as the bundle tiddler but with the `text` field removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savelibrarytiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\tcontainerTitle = this.params[0],\n\t\tfilter = this.params[1],\n\t\tbasepath = this.params[2],\n\t\tskinnyListTitle = this.params[3];\n\t// Get the container tiddler as data\n\tvar containerData = self.commander.wiki.getTiddlerDataCached(containerTitle,undefined);\n\tif(!containerData) {\n\t\treturn \"'\" + containerTitle + \"' is not a tiddler bundle\";\n\t}\n\t// Filter the list of plugins\n\tvar pluginList = [];\n\t$tw.utils.each(containerData.tiddlers,function(tiddler,title) {\n\t\tpluginList.push(title);\n\t});\n\tvar filteredPluginList;\n\tif(filter) {\n\t\tfilteredPluginList = self.commander.wiki.filterTiddlers(filter,null,self.commander.wiki.makeTiddlerIterator(pluginList));\n\t} else {\n\t\tfilteredPluginList = pluginList;\n\t}\n\t// Iterate through the plugins\n\tvar skinnyList = [];\n\t$tw.utils.each(filteredPluginList,function(title) {\n\t\tvar tiddler = containerData.tiddlers[title];\n\t\t// Save each JSON file and collect the skinny data\n\t\tvar pathname = path.resolve(self.commander.outputPath,basepath + encodeURIComponent(title) + \".json\");\n\t\t$tw.utils.createFileDirectories(pathname);\n\t\tfs.writeFileSync(pathname,JSON.stringify(tiddler),\"utf8\");\n\t\t// Collect the skinny list data\n\t\tvar pluginTiddlers = JSON.parse(tiddler.text),\n\t\t\treadmeContent = (pluginTiddlers.tiddlers[title + \"/readme\"] || {}).text,\n\t\t\tdoesRequireReload = !!$tw.wiki.doesPluginInfoRequireReload(pluginTiddlers),\n\t\t\ticonTiddler = pluginTiddlers.tiddlers[title + \"/icon\"] || {},\n\t\t\ticonType = iconTiddler.type,\n\t\t\ticonText = iconTiddler.text,\n\t\t\ticonContent;\n\t\tif(iconType && iconText) {\n\t\t\ticonContent = $tw.utils.makeDataUri(iconText,iconType);\n\t\t}\n\t\tskinnyList.push($tw.utils.extend({},tiddler,{\n\t\t\ttext: undefined,\n\t\t\treadme: readmeContent,\n\t\t\t\"requires-reload\": doesRequireReload ? \"yes\" : \"no\",\n\t\t\ticon: iconContent\n\t\t}));\n\t});\n\t// Save the catalogue tiddler\n\tif(skinnyListTitle) {\n\t\tself.commander.wiki.setTiddlerData(skinnyListTitle,skinnyList);\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddler.js": {
"title": "$:/core/modules/commands/savetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddler.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the content of a tiddler to a file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savetiddler\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 2) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\ttitle = this.params[0],\n\t\tfilename = path.resolve(this.commander.outputPath,this.params[1]),\n\t\ttiddler = this.commander.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar type = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"};\n\t\t$tw.utils.createFileDirectories(filename);\n\t\tfs.writeFile(filename,tiddler.fields.text,contentTypeInfo.encoding,function(err) {\n\t\t\tself.callback(err);\n\t\t});\n\t} else {\n\t\treturn \"Missing tiddler: \" + title;\n\t}\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savetiddlers.js": {
"title": "$:/core/modules/commands/savetiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savetiddlers.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save several tiddlers to a folder of files\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"savetiddlers\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing filename\";\n\t}\n\tvar self = this,\n\t\tfs = require(\"fs\"),\n\t\tpath = require(\"path\"),\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tpathname = path.resolve(this.commander.outputPath,this.params[1]),\n\t\tdeleteDirectory = (this.params[2] || \"\").toLowerCase() !== \"noclean\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\tif(deleteDirectory) {\n\t\t$tw.utils.deleteDirectory(pathname);\n\t}\n\t$tw.utils.createDirectory(pathname);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.commander.wiki.getTiddler(title),\n\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\",\n\t\t\tcontentTypeInfo = $tw.config.contentTypeInfo[type] || {encoding: \"utf8\"},\n\t\t\tfilename = path.resolve(pathname,encodeURIComponent(title));\n\t\tfs.writeFileSync(filename,tiddler.fields.text,contentTypeInfo.encoding);\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/savewikifolder.js": {
"title": "$:/core/modules/commands/savewikifolder.js",
"text": "/*\\\ntitle: $:/core/modules/commands/savewikifolder.js\ntype: application/javascript\nmodule-type: command\n\nCommand to save the current wiki as a wiki folder\n\n--savewikifolder <wikifolderpath> [<filter>]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"savewikifolder\",\n\tsynchronous: true\n};\n\nvar fs,path;\nif($tw.node) {\n\tfs = require(\"fs\");\n\tpath = require(\"path\");\n}\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing wiki folder path\";\n\t}\n\tvar wikifoldermaker = new WikiFolderMaker(this.params[0],this.params[1],this.commander);\n\treturn wikifoldermaker.save();\n};\n\nfunction WikiFolderMaker(wikiFolderPath,wikiFilter,commander) {\n\tthis.wikiFolderPath = wikiFolderPath;\n\tthis.wikiFilter = wikiFilter || \"[all[tiddlers]]\";\n\tthis.commander = commander;\n\tthis.wiki = commander.wiki;\n\tthis.savedPaths = []; // So that we can detect filename clashes\n}\n\nWikiFolderMaker.prototype.log = function(str) {\n\tif(this.commander.verbose) {\n\t\tconsole.log(str);\n\t}\n};\n\nWikiFolderMaker.prototype.tiddlersToIgnore = [\n\t\"$:/boot/boot.css\",\n\t\"$:/boot/boot.js\",\n\t\"$:/boot/bootprefix.js\",\n\t\"$:/core\",\n\t\"$:/library/sjcl.js\",\n\t\"$:/temp/info-plugin\"\n];\n\n/*\nReturns null if successful, or an error string if there was an error\n*/\nWikiFolderMaker.prototype.save = function() {\n\tvar self = this;\n\t// Check that the output directory doesn't exist\n\tif(fs.existsSync(this.wikiFolderPath) && !$tw.utils.isDirectoryEmpty(this.wikiFolderPath)) {\n\t\treturn \"The unpackwiki command requires that the output wiki folder be empty\";\n\t}\n\t// Get the tiddlers from the source wiki\n\tvar tiddlerTitles = this.wiki.filterTiddlers(this.wikiFilter);\n\t// Initialise a new tiddlwiki.info file\n\tvar newWikiInfo = {};\n\t// Process each incoming tiddler in turn\n\t$tw.utils.each(tiddlerTitles,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tif(self.tiddlersToIgnore.indexOf(title) !== -1) {\n\t\t\t\t// Ignore the core plugin and the ephemeral info plugin\n\t\t\t\tself.log(\"Ignoring tiddler: \" + title);\n\t\t\t} else {\n\t\t\t\tvar type = tiddler.fields.type,\n\t\t\t\t\tpluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif(type === \"application/json\" && pluginType) {\n\t\t\t\t\t// Plugin tiddler\n\t\t\t\t\tvar libraryDetails = self.findPluginInLibrary(title);\n\t\t\t\t\tif(libraryDetails) {\n\t\t\t\t\t\t// A plugin from the core library\n\t\t\t\t\t\tself.log(\"Adding built-in plugin: \" + libraryDetails.name);\n\t\t\t\t\t\tnewWikiInfo[libraryDetails.type] = newWikiInfo[libraryDetails.type] || [];\n\t\t\t\t\t\t$tw.utils.pushTop(newWikiInfo[libraryDetails.type],libraryDetails.name);\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// A custom plugin\n\t\t\t\t\t\tself.log(\"Processing custom plugin: \" + title);\n\t\t\t\t\t\tself.saveCustomPlugin(tiddler);\n\t\t\t\t\t}\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\t// Ordinary tiddler\n\t\t\t\t\tself.saveTiddler(\"tiddlers\",tiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Save the tiddlywiki.info file\n\tthis.saveJSONFile(\"tiddlywiki.info\",newWikiInfo);\n\tself.log(\"Writing tiddlywiki.info: \" + JSON.stringify(newWikiInfo,null,$tw.config.preferences.jsonSpaces));\n\treturn null;\n};\n\n/*\nTest whether the specified tiddler is a plugin in the plugin library\n*/\nWikiFolderMaker.prototype.findPluginInLibrary = function(title) {\n\tvar parts = title.split(\"/\"),\n\t\tpluginPath, type, name;\n\tif(parts[0] === \"$:\") {\n\t\tif(parts[1] === \"languages\" && parts.length === 3) {\n\t\t\tpluginPath = \"languages\" + path.sep + parts[2];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2];\n\t\t} else if(parts[1] === \"plugins\" || parts[1] === \"themes\" && parts.length === 4) {\n\t\t\tpluginPath = parts[1] + path.sep + parts[2] + path.sep + parts[3];\n\t\t\ttype = parts[1];\n\t\t\tname = parts[2] + \"/\" + parts[3];\n\t\t}\n\t}\n\tif(pluginPath && type && name) {\n\t\tpluginPath = path.resolve($tw.boot.bootPath,\"..\",pluginPath);\n\t\tif(fs.existsSync(pluginPath)) {\n\t\t\treturn {\n\t\t\t\tpluginPath: pluginPath,\n\t\t\t\ttype: type,\n\t\t\t\tname: name\n\t\t\t};\n\t\t}\n\t}\n\treturn false;\n};\n\nWikiFolderMaker.prototype.saveCustomPlugin = function(pluginTiddler) {\n\tvar self = this,\n\t\tpluginTitle = pluginTiddler.fields.title,\n\t\ttitleParts = pluginTitle.split(\"/\"),\n\t\tdirectory = $tw.utils.generateTiddlerFilepath(titleParts[titleParts.length - 1],{\n\t\t\tdirectory: path.resolve(this.wikiFolderPath,pluginTiddler.fields[\"plugin-type\"] + \"s\")\n\t\t}),\n\t\tpluginInfo = pluginTiddler.getFieldStrings({exclude: [\"text\",\"type\"]});\n\tthis.saveJSONFile(directory + path.sep + \"plugin.info\",pluginInfo);\n\tself.log(\"Writing \" + directory + path.sep + \"plugin.info: \" + JSON.stringify(pluginInfo,null,$tw.config.preferences.jsonSpaces));\n\tvar pluginTiddlers = JSON.parse(pluginTiddler.fields.text).tiddlers; // A hashmap of tiddlers in the plugin\n\t$tw.utils.each(pluginTiddlers,function(tiddler) {\n\t\tself.saveTiddler(directory,new $tw.Tiddler(tiddler));\n\t});\n};\n\nWikiFolderMaker.prototype.saveTiddler = function(directory,tiddler) {\n\tvar fileInfo = $tw.utils.generateTiddlerFileInfo(tiddler,{\n\t\tdirectory: path.resolve(this.wikiFolderPath,directory),\n\t\twiki: this.wiki\n\t});\n\t$tw.utils.saveTiddlerToFileSync(tiddler,fileInfo);\n};\n\nWikiFolderMaker.prototype.saveJSONFile = function(filename,json) {\n\tthis.saveTextFile(filename,JSON.stringify(json,null,$tw.config.preferences.jsonSpaces));\n};\n\nWikiFolderMaker.prototype.saveTextFile = function(filename,data) {\n\tthis.saveFile(filename,\"utf8\",data);\n};\n\nWikiFolderMaker.prototype.saveFile = function(filename,encoding,data) {\n\tvar filepath = path.resolve(this.wikiFolderPath,filename);\n\t$tw.utils.createFileDirectories(filepath);\n\tfs.writeFileSync(filepath,data,encoding);\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/server.js": {
"title": "$:/core/modules/commands/server.js",
"text": "/*\\\ntitle: $:/core/modules/commands/server.js\ntype: application/javascript\nmodule-type: command\n\nDeprecated legacy command for serving tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Server = require(\"$:/core/modules/server/server.js\").Server;\n\nexports.info = {\n\tname: \"server\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tvar self = this;\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(!$tw.boot.wikiTiddlersPath) {\n\t\t$tw.utils.warning(\"Warning: Wiki folder '\" + $tw.boot.wikiPath + \"' does not exist or is missing a tiddlywiki.info file\");\n\t}\n\t// Set up server\n\tthis.server = new Server({\n\t\twiki: this.commander.wiki,\n\t\tvariables: {\n\t\t\tport: this.params[0],\n\t\t\thost: this.params[6],\n\t\t\t\"root-tiddler\": this.params[1],\n\t\t\t\"root-render-type\": this.params[2],\n\t\t\t\"root-serve-type\": this.params[3],\n\t\t\tusername: this.params[4],\n\t\t\tpassword: this.params[5],\n\t\t\t\"path-prefix\": this.params[7],\n\t\t\t\"debug-level\": this.params[8]\n\t\t}\n\t});\n\tvar nodeServer = this.server.listen();\n\t$tw.hooks.invokeHook(\"th-server-command-post-start\",this.server,nodeServer,\"tiddlywiki\");\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/setfield.js": {
"title": "$:/core/modules/commands/setfield.js",
"text": "/*\\\ntitle: $:/core/modules/commands/setfield.js\ntype: application/javascript\nmodule-type: command\n\nCommand to modify selected tiddlers to set a field to the text of a template tiddler that has been wikified with the selected tiddler as the current tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.info = {\n\tname: \"setfield\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 4) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilter = this.params[0],\n\t\tfieldname = this.params[1] || \"text\",\n\t\ttemplatetitle = this.params[2],\n\t\trendertype = this.params[3] || \"text/plain\",\n\t\ttiddlers = wiki.filterTiddlers(filter);\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar parser = wiki.parseTiddler(templatetitle),\n\t\t\tnewFields = {},\n\t\t\ttiddler = wiki.getTiddler(title);\n\t\tif(parser) {\n\t\t\tvar widgetNode = wiki.makeWidget(parser,{variables: {currentTiddler: title}});\n\t\t\tvar container = $tw.fakeDocument.createElement(\"div\");\n\t\t\twidgetNode.render(container,null);\n\t\t\tnewFields[fieldname] = rendertype === \"text/html\" ? container.innerHTML : container.textContent;\n\t\t} else {\n\t\t\tnewFields[fieldname] = undefined;\n\t\t}\n\t\twiki.addTiddler(new $tw.Tiddler(tiddler,newFields));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/unpackplugin.js": {
"title": "$:/core/modules/commands/unpackplugin.js",
"text": "/*\\\ntitle: $:/core/modules/commands/unpackplugin.js\ntype: application/javascript\nmodule-type: command\n\nCommand to extract the shadow tiddlers from within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"unpackplugin\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing plugin name\";\n\t}\n\tvar self = this,\n\t\ttitle = this.params[0],\n\t\tpluginData = this.commander.wiki.getTiddlerDataCached(title);\n\tif(!pluginData) {\n\t\treturn \"Plugin '\" + title + \"' not found\";\n\t}\n\t$tw.utils.each(pluginData.tiddlers,function(tiddler) {\n\t\tself.commander.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/verbose.js": {
"title": "$:/core/modules/commands/verbose.js",
"text": "/*\\\ntitle: $:/core/modules/commands/verbose.js\ntype: application/javascript\nmodule-type: command\n\nVerbose command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"verbose\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.verbose = true;\n\t// Output the boot message log\n\tthis.commander.streams.output.write(\"Boot log:\\n \" + $tw.boot.logMessages.join(\"\\n \") + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/commands/version.js": {
"title": "$:/core/modules/commands/version.js",
"text": "/*\\\ntitle: $:/core/modules/commands/version.js\ntype: application/javascript\nmodule-type: command\n\nVersion command\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"version\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander) {\n\tthis.params = params;\n\tthis.commander = commander;\n};\n\nCommand.prototype.execute = function() {\n\tthis.commander.streams.output.write($tw.version + \"\\n\");\n\treturn null; // No error\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/config.js": {
"title": "$:/core/modules/config.js",
"text": "/*\\\ntitle: $:/core/modules/config.js\ntype: application/javascript\nmodule-type: config\n\nCore configuration constants\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.preferences = {};\n\nexports.preferences.notificationDuration = 3 * 1000;\nexports.preferences.jsonSpaces = 4;\n\nexports.textPrimitives = {\n\tupperLetter: \"[A-Z\\u00c0-\\u00d6\\u00d8-\\u00de\\u0150\\u0170]\",\n\tlowerLetter: \"[a-z\\u00df-\\u00f6\\u00f8-\\u00ff\\u0151\\u0171]\",\n\tanyLetter: \"[A-Za-z0-9\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\",\n\tblockPrefixLetters:\t\"[A-Za-z0-9-_\\u00c0-\\u00d6\\u00d8-\\u00de\\u00df-\\u00f6\\u00f8-\\u00ff\\u0150\\u0170\\u0151\\u0171]\"\n};\n\nexports.textPrimitives.unWikiLink = \"~\";\nexports.textPrimitives.wikiLink = exports.textPrimitives.upperLetter + \"+\" +\n\texports.textPrimitives.lowerLetter + \"+\" +\n\texports.textPrimitives.upperLetter +\n\texports.textPrimitives.anyLetter + \"*\";\n\nexports.htmlEntities = {quot:34, amp:38, apos:39, lt:60, gt:62, nbsp:160, iexcl:161, cent:162, pound:163, curren:164, yen:165, brvbar:166, sect:167, uml:168, copy:169, ordf:170, laquo:171, not:172, shy:173, reg:174, macr:175, deg:176, plusmn:177, sup2:178, sup3:179, acute:180, micro:181, para:182, middot:183, cedil:184, sup1:185, ordm:186, raquo:187, frac14:188, frac12:189, frac34:190, iquest:191, Agrave:192, Aacute:193, Acirc:194, Atilde:195, Auml:196, Aring:197, AElig:198, Ccedil:199, Egrave:200, Eacute:201, Ecirc:202, Euml:203, Igrave:204, Iacute:205, Icirc:206, Iuml:207, ETH:208, Ntilde:209, Ograve:210, Oacute:211, Ocirc:212, Otilde:213, Ouml:214, times:215, Oslash:216, Ugrave:217, Uacute:218, Ucirc:219, Uuml:220, Yacute:221, THORN:222, szlig:223, agrave:224, aacute:225, acirc:226, atilde:227, auml:228, aring:229, aelig:230, ccedil:231, egrave:232, eacute:233, ecirc:234, euml:235, igrave:236, iacute:237, icirc:238, iuml:239, eth:240, ntilde:241, ograve:242, oacute:243, ocirc:244, otilde:245, ouml:246, divide:247, oslash:248, ugrave:249, uacute:250, ucirc:251, uuml:252, yacute:253, thorn:254, yuml:255, 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 };\n\nexports.htmlVoidElements = \"area,base,br,col,command,embed,hr,img,input,keygen,link,meta,param,source,track,wbr\".split(\",\");\n\nexports.htmlBlockElements = \"address,article,aside,audio,blockquote,canvas,dd,div,dl,fieldset,figcaption,figure,footer,form,h1,h2,h3,h4,h5,h6,header,hgroup,hr,li,noscript,ol,output,p,pre,section,table,tfoot,ul,video\".split(\",\");\n\nexports.htmlUnsafeElements = \"script\".split(\",\");\n\n})();\n",
"type": "application/javascript",
"module-type": "config"
},
"$:/core/modules/deserializers.js": {
"title": "$:/core/modules/deserializers.js",
"text": "/*\\\ntitle: $:/core/modules/deserializers.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nFunctions to deserialise tiddlers from a block of text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nUtility function to parse an old-style tiddler DIV in a *.tid file. It looks like this:\n\n<div title=\"Title\" creator=\"JoeBloggs\" modifier=\"JoeBloggs\" created=\"201102111106\" modified=\"201102111310\" tags=\"myTag [[my long tag]]\">\n<pre>The text of the tiddler (without the expected HTML encoding).\n</pre>\n</div>\n\nNote that the field attributes are HTML encoded, but that the body of the <PRE> tag is not encoded.\n\nWhen these tiddler DIVs are encountered within a TiddlyWiki HTML file then the body is encoded in the usual way.\n*/\nvar parseTiddlerDiv = function(text /* [,fields] */) {\n\t// Slot together the default results\n\tvar result = {};\n\tif(arguments.length > 1) {\n\t\tfor(var f=1; f<arguments.length; f++) {\n\t\t\tvar fields = arguments[f];\n\t\t\tfor(var t in fields) {\n\t\t\t\tresult[t] = fields[t];\t\t\n\t\t\t}\n\t\t}\n\t}\n\t// Parse the DIV body\n\tvar startRegExp = /^\\s*<div\\s+([^>]*)>(\\s*<pre>)?/gi,\n\t\tendRegExp,\n\t\tmatch = startRegExp.exec(text);\n\tif(match) {\n\t\t// Old-style DIVs don't have the <pre> tag\n\t\tif(match[2]) {\n\t\t\tendRegExp = /<\\/pre>\\s*<\\/div>\\s*$/gi;\n\t\t} else {\n\t\t\tendRegExp = /<\\/div>\\s*$/gi;\n\t\t}\n\t\tvar endMatch = endRegExp.exec(text);\n\t\tif(endMatch) {\n\t\t\t// Extract the text\n\t\t\tresult.text = text.substring(match.index + match[0].length,endMatch.index);\n\t\t\t// Process the attributes\n\t\t\tvar attrRegExp = /\\s*([^=\\s]+)\\s*=\\s*(?:\"([^\"]*)\"|'([^']*)')/gi,\n\t\t\t\tattrMatch;\n\t\t\tdo {\n\t\t\t\tattrMatch = attrRegExp.exec(match[1]);\n\t\t\t\tif(attrMatch) {\n\t\t\t\t\tvar name = attrMatch[1];\n\t\t\t\t\tvar value = attrMatch[2] !== undefined ? attrMatch[2] : attrMatch[3];\n\t\t\t\t\tresult[name] = value;\n\t\t\t\t}\n\t\t\t} while(attrMatch);\n\t\t\treturn result;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports[\"application/x-tiddler-html-div\"] = function(text,fields) {\n\treturn [parseTiddlerDiv(text,fields)];\n};\n\nexports[\"application/json\"] = function(text,fields) {\n\tvar incoming,\n\t\tresults = [];\n\ttry {\n\t\tincoming = JSON.parse(text);\n\t} catch(e) {\n\t\tincoming = [{\n\t\t\ttitle: \"JSON error: \" + e,\n\t\t\ttext: \"\"\n\t\t}]\n\t}\n\tif(!$tw.utils.isArray(incoming)) {\n\t\tincoming = [incoming];\n\t}\n\tfor(var t=0; t<incoming.length; t++) {\n\t\tvar incomingFields = incoming[t],\n\t\t\tfields = {};\n\t\tfor(var f in incomingFields) {\n\t\t\tif(typeof incomingFields[f] === \"string\") {\n\t\t\t\tfields[f] = incomingFields[f];\n\t\t\t}\n\t\t}\n\t\tresults.push(fields);\n\t}\n\treturn results;\n};\n\n/*\nParse an HTML file into tiddlers. There are three possibilities:\n# A TiddlyWiki classic HTML file containing `text/x-tiddlywiki` tiddlers\n# A TiddlyWiki5 HTML file containing `text/vnd.tiddlywiki` tiddlers\n# An ordinary HTML file\n*/\nexports[\"text/html\"] = function(text,fields) {\n\t// Check if we've got a store area\n\tvar storeAreaMarkerRegExp = /<div id=[\"']?storeArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\tmatch = storeAreaMarkerRegExp.exec(text);\n\tif(match) {\n\t\t// If so, it's either a classic TiddlyWiki file or an unencrypted TW5 file\n\t\t// First read the normal tiddlers\n\t\tvar results = deserializeTiddlyWikiFile(text,storeAreaMarkerRegExp.lastIndex,!!match[1],fields);\n\t\t// Then any system tiddlers\n\t\tvar systemAreaMarkerRegExp = /<div id=[\"']?systemArea['\"]?( style=[\"']?display:none;[\"']?)?>/gi,\n\t\t\tsysMatch = systemAreaMarkerRegExp.exec(text);\n\t\tif(sysMatch) {\n\t\t\tresults.push.apply(results,deserializeTiddlyWikiFile(text,systemAreaMarkerRegExp.lastIndex,!!sysMatch[1],fields));\n\t\t}\n\t\treturn results;\n\t} else {\n\t\t// Check whether we've got an encrypted file\n\t\tvar encryptedStoreArea = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedStoreArea) {\n\t\t\t// If so, attempt to decrypt it using the current password\n\t\t\treturn $tw.utils.decryptStoreArea(encryptedStoreArea);\n\t\t} else {\n\t\t\t// It's not a TiddlyWiki so we'll return the entire HTML file as a tiddler\n\t\t\treturn deserializeHtmlFile(text,fields);\n\t\t}\n\t}\n};\n\nfunction deserializeHtmlFile(text,fields) {\n\tvar result = {};\n\t$tw.utils.each(fields,function(value,name) {\n\t\tresult[name] = value;\n\t});\n\tresult.text = text;\n\tresult.type = \"text/html\";\n\treturn [result];\n}\n\nfunction deserializeTiddlyWikiFile(text,storeAreaEnd,isTiddlyWiki5,fields) {\n\tvar results = [],\n\t\tendOfDivRegExp = /(<\\/div>\\s*)/gi,\n\t\tstartPos = storeAreaEnd,\n\t\tdefaultType = isTiddlyWiki5 ? undefined : \"text/x-tiddlywiki\";\n\tendOfDivRegExp.lastIndex = startPos;\n\tvar match = endOfDivRegExp.exec(text);\n\twhile(match) {\n\t\tvar endPos = endOfDivRegExp.lastIndex,\n\t\t\ttiddlerFields = parseTiddlerDiv(text.substring(startPos,endPos),fields,{type: defaultType});\n\t\tif(!tiddlerFields) {\n\t\t\tbreak;\n\t\t}\n\t\t$tw.utils.each(tiddlerFields,function(value,name) {\n\t\t\tif(typeof value === \"string\") {\n\t\t\t\ttiddlerFields[name] = $tw.utils.htmlDecode(value);\n\t\t\t}\n\t\t});\n\t\tif(tiddlerFields.text !== null) {\n\t\t\tresults.push(tiddlerFields);\n\t\t}\n\t\tstartPos = endPos;\n\t\tmatch = endOfDivRegExp.exec(text);\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/core/modules/editor/engines/framed.js": {
"title": "$:/core/modules/editor/engines/framed.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/framed.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea within an iframe. This is done so that the selection is preserved even when clicking away from the textarea\n\n\\*/\n(function(){\n\n/*jslint node: true,browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction FramedEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create our hidden dummy text area for reading styles\n\tthis.dummyTextArea = this.widget.document.createElement(\"textarea\");\n\tif(this.widget.editClass) {\n\t\tthis.dummyTextArea.className = this.widget.editClass;\n\t}\n\tthis.dummyTextArea.setAttribute(\"hidden\",\"true\");\n\tthis.parentNode.insertBefore(this.dummyTextArea,this.nextSibling);\n\tthis.widget.domNodes.push(this.dummyTextArea);\n\t// Create the iframe\n\tthis.iframeNode = this.widget.document.createElement(\"iframe\");\n\tthis.parentNode.insertBefore(this.iframeNode,this.nextSibling);\n\tthis.iframeDoc = this.iframeNode.contentWindow.document;\n\t// (Firefox requires us to put some empty content in the iframe)\n\tthis.iframeDoc.open();\n\tthis.iframeDoc.write(\"\");\n\tthis.iframeDoc.close();\n\t// Style the iframe\n\tthis.iframeNode.className = this.dummyTextArea.className;\n\tthis.iframeNode.style.border = \"none\";\n\tthis.iframeNode.style.padding = \"0\";\n\tthis.iframeNode.style.resize = \"none\";\n\tthis.iframeNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\tthis.iframeDoc.body.style.margin = \"0\";\n\tthis.iframeDoc.body.style.padding = \"0\";\n\tthis.widget.domNodes.push(this.iframeNode);\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.iframeDoc.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.iframeDoc.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.iframeNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Copy the styles from the dummy textarea\n\tthis.copyStyles();\n\t// Add event listeners\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"click\",handlerObject: this,handlerMethod: \"handleClickEvent\"},\n\t\t{name: \"input\",handlerObject: this,handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"keydown\",handlerObject: this.widget,handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.iframeDoc.body.appendChild(this.domNode);\n}\n\n/*\nCopy styles from the dummy text area to the textarea in the iframe\n*/\nFramedEngine.prototype.copyStyles = function() {\n\t// Copy all styles\n\t$tw.utils.copyStyles(this.dummyTextArea,this.domNode);\n\t// Override the ones that should not be set the same as the dummy textarea\n\tthis.domNode.style.display = \"block\";\n\tthis.domNode.style.width = \"100%\";\n\tthis.domNode.style.margin = \"0\";\n\tthis.domNode.style[\"background-color\"] = this.widget.wiki.extractTiddlerDataItem(this.widget.wiki.getTiddlerText(\"$:/palette\"),\"tiddler-editor-background\");\n\t// In Chrome setting -webkit-text-fill-color overrides the placeholder text colour\n\tthis.domNode.style[\"-webkit-text-fill-color\"] = \"currentcolor\";\n};\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nFramedEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode) {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nFramedEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nFramedEngine.prototype.fixHeight = function() {\n\t// Make sure styles are updated\n\tthis.copyStyles();\n\t// Adjust height\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tvar newHeight = $tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t\tthis.iframeNode.style.height = (newHeight + 14) + \"px\"; // +14 for the border on the textarea\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t\tthis.iframeNode.style.height = (fixedHeight + 14) + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nFramedEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a click\n*/\nFramedEngine.prototype.handleClickEvent = function(event) {\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nFramedEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nFramedEngine.prototype.createTextOperation = function() {\n\tvar operation = {\n\t\ttext: this.domNode.value,\n\t\tselStart: this.domNode.selectionStart,\n\t\tselEnd: this.domNode.selectionEnd,\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nFramedEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t\t// Attempt to use a execCommand to modify the value of the control\n\t\tif(this.iframeDoc.queryCommandSupported(\"insertText\") && this.iframeDoc.queryCommandSupported(\"delete\") && !$tw.browser.isFirefox) {\n\t\t\tthis.domNode.focus();\n\t\t\tthis.domNode.setSelectionRange(operation.cutStart,operation.cutEnd);\n\t\t\tif(operation.replacement === \"\") {\n\t\t\t\tthis.iframeDoc.execCommand(\"delete\",false,\"\");\n\t\t\t} else {\n\t\t\t\tthis.iframeDoc.execCommand(\"insertText\",false,operation.replacement);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.domNode.value = newText;\n\t\t}\n\t\tthis.domNode.focus();\n\t\tthis.domNode.setSelectionRange(operation.newSelStart,operation.newSelEnd);\n\t}\n\tthis.domNode.focus();\n\treturn newText;\n};\n\nexports.FramedEngine = FramedEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/engines/simple.js": {
"title": "$:/core/modules/editor/engines/simple.js",
"text": "/*\\\ntitle: $:/core/modules/editor/engines/simple.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a simple input or textarea tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\";\n\nfunction SimpleEngine(options) {\n\t// Save our options\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Construct the textarea or input node\n\tvar tag = this.widget.editTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"input\";\n\t}\n\tthis.domNode = this.widget.document.createElement(tag);\n\t// Set the text\n\tif(this.widget.editTag === \"textarea\") {\n\t\tthis.domNode.appendChild(this.widget.document.createTextNode(this.value));\n\t} else {\n\t\tthis.domNode.value = this.value;\n\t}\n\t// Set the attributes\n\tif(this.widget.editType) {\n\t\tthis.domNode.setAttribute(\"type\",this.widget.editType);\n\t}\n\tif(this.widget.editPlaceholder) {\n\t\tthis.domNode.setAttribute(\"placeholder\",this.widget.editPlaceholder);\n\t}\n\tif(this.widget.editSize) {\n\t\tthis.domNode.setAttribute(\"size\",this.widget.editSize);\n\t}\n\tif(this.widget.editRows) {\n\t\tthis.domNode.setAttribute(\"rows\",this.widget.editRows);\n\t}\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tif(this.widget.editTabIndex) {\n\t\tthis.domNode.setAttribute(\"tabindex\",this.widget.editTabIndex);\n\t}\n\t// Add an input event handler\n\t$tw.utils.addEventListeners(this.domNode,[\n\t\t{name: \"focus\", handlerObject: this, handlerMethod: \"handleFocusEvent\"},\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\n\t]);\n\t// Insert the element into the DOM\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nSimpleEngine.prototype.setText = function(text,type) {\n\tif(!this.domNode.isTiddlyWikiFakeDom) {\n\t\tif(this.domNode.ownerDocument.activeElement !== this.domNode || text === \"\") {\n\t\t\tthis.domNode.value = text;\n\t\t}\n\t\t// Fix the height if needed\n\t\tthis.fixHeight();\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nSimpleEngine.prototype.getText = function() {\n\treturn this.domNode.value;\n};\n\n/*\nFix the height of textarea to fit content\n*/\nSimpleEngine.prototype.fixHeight = function() {\n\tif(this.widget.editTag === \"textarea\") {\n\t\tif(this.widget.editAutoHeight) {\n\t\t\tif(this.domNode && !this.domNode.isTiddlyWikiFakeDom) {\n\t\t\t\t$tw.utils.resizeTextAreaToFit(this.domNode,this.widget.editMinHeight);\n\t\t\t}\n\t\t} else {\n\t\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\t\tthis.domNode.style.height = fixedHeight + \"px\";\n\t\t}\n\t}\n};\n\n/*\nFocus the engine node\n*/\nSimpleEngine.prototype.focus = function() {\n\tif(this.domNode.focus && this.domNode.select) {\n\t\tthis.domNode.focus();\n\t\tthis.domNode.select();\n\t}\n};\n\n/*\nHandle a dom \"input\" event which occurs when the text has changed\n*/\nSimpleEngine.prototype.handleInputEvent = function(event) {\n\tthis.widget.saveChanges(this.getText());\n\tthis.fixHeight();\n\treturn true;\n};\n\n/*\nHandle a dom \"focus\" event\n*/\nSimpleEngine.prototype.handleFocusEvent = function(event) {\n\tif(this.widget.editFocusPopup) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNode,\n\t\t\ttitle: this.widget.editFocusPopup,\n\t\t\twiki: this.widget.wiki,\n\t\t\tforce: true\n\t\t});\n\t}\n\treturn true;\n};\n\n/*\nCreate a blank structure representing a text operation\n*/\nSimpleEngine.prototype.createTextOperation = function() {\n\treturn null;\n};\n\n/*\nExecute a text operation\n*/\nSimpleEngine.prototype.executeTextOperation = function(operation) {\n};\n\nexports.SimpleEngine = SimpleEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/factory.js": {
"title": "$:/core/modules/editor/factory.js",
"text": "/*\\\ntitle: $:/core/modules/editor/factory.js\ntype: application/javascript\nmodule-type: library\n\nFactory for constructing text editor widgets with specified engines for the toolbar and non-toolbar cases\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_MIN_TEXT_AREA_HEIGHT = \"100px\"; // Minimum height of textareas in pixels\n\n// Configuration tiddlers\nvar HEIGHT_MODE_TITLE = \"$:/config/TextEditor/EditorHeight/Mode\";\nvar ENABLE_TOOLBAR_TITLE = \"$:/config/TextEditor/EnableToolbar\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nfunction editTextWidgetFactory(toolbarEngine,nonToolbarEngine) {\n\n\tvar EditTextWidget = function(parseTreeNode,options) {\n\t\t// Initialise the editor operations if they've not been done already\n\t\tif(!this.editorOperations) {\n\t\t\tEditTextWidget.prototype.editorOperations = {};\n\t\t\t$tw.modules.applyMethods(\"texteditoroperation\",this.editorOperations);\n\t\t}\n\t\tthis.initialise(parseTreeNode,options);\n\t};\n\n\t/*\n\tInherit from the base widget class\n\t*/\n\tEditTextWidget.prototype = new Widget();\n\n\t/*\n\tRender this widget into the DOM\n\t*/\n\tEditTextWidget.prototype.render = function(parent,nextSibling) {\n\t\t// Save the parent dom node\n\t\tthis.parentDomNode = parent;\n\t\t// Compute our attributes\n\t\tthis.computeAttributes();\n\t\t// Execute our logic\n\t\tthis.execute();\n\t\t// Create the wrapper for the toolbar and render its content\n\t\tif(this.editShowToolbar) {\n\t\t\tthis.toolbarNode = this.document.createElement(\"div\");\n\t\t\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\t\t\tparent.insertBefore(this.toolbarNode,nextSibling);\n\t\t\tthis.renderChildren(this.toolbarNode,null);\n\t\t\tthis.domNodes.push(this.toolbarNode);\n\t\t}\n\t\t// Create our element\n\t\tvar editInfo = this.getEditInfo(),\n\t\t\tEngine = this.editShowToolbar ? toolbarEngine : nonToolbarEngine;\n\t\tthis.engine = new Engine({\n\t\t\t\twidget: this,\n\t\t\t\tvalue: editInfo.value,\n\t\t\t\ttype: editInfo.type,\n\t\t\t\tparentNode: parent,\n\t\t\t\tnextSibling: nextSibling\n\t\t\t});\n\t\t// Call the postRender hook\n\t\tif(this.postRender) {\n\t\t\tthis.postRender();\n\t\t}\n\t\t// Fix height\n\t\tthis.engine.fixHeight();\n\t\t// Focus if required\n\t\tif(this.editFocus === \"true\" || this.editFocus === \"yes\") {\n\t\t\tthis.engine.focus();\n\t\t}\n\t\t// Add widget message listeners\n\t\tthis.addEventListeners([\n\t\t\t{type: \"tm-edit-text-operation\", handler: \"handleEditTextOperationMessage\"}\n\t\t]);\n\t};\n\n\t/*\n\tGet the tiddler being edited and current value\n\t*/\n\tEditTextWidget.prototype.getEditInfo = function() {\n\t\t// Get the edit value\n\t\tvar self = this,\n\t\t\tvalue,\n\t\t\ttype = \"text/plain\",\n\t\t\tupdate;\n\t\tif(this.editIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.editTitle,this.editIndex,this.editDefault);\n\t\t\tupdate = function(value) {\n\t\t\t\tvar data = self.wiki.getTiddlerData(self.editTitle,{});\n\t\t\t\tif(data[self.editIndex] !== value) {\n\t\t\t\t\tdata[self.editIndex] = value;\n\t\t\t\t\tself.wiki.setTiddlerData(self.editTitle,data);\n\t\t\t\t}\n\t\t\t};\n\t\t} else {\n\t\t\t// Get the current tiddler and the field name\n\t\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\t\tif(tiddler) {\n\t\t\t\t// If we've got a tiddler, the value to display is the field string value\n\t\t\t\tvalue = tiddler.getFieldString(this.editField);\n\t\t\t\tif(this.editField === \"text\") {\n\t\t\t\t\ttype = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise, we need to construct a default value for the editor\n\t\t\t\tswitch(this.editField) {\n\t\t\t\t\tcase \"text\":\n\t\t\t\t\t\tvalue = \"Type the text for the tiddler '\" + this.editTitle + \"'\";\n\t\t\t\t\t\ttype = \"text/vnd.tiddlywiki\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"title\":\n\t\t\t\t\t\tvalue = this.editTitle;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tvalue = \"\";\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\tif(this.editDefault !== undefined) {\n\t\t\t\t\tvalue = this.editDefault;\n\t\t\t\t}\n\t\t\t}\n\t\t\tupdate = function(value) {\n\t\t\t\tvar tiddler = self.wiki.getTiddler(self.editTitle),\n\t\t\t\t\tupdateFields = {\n\t\t\t\t\t\ttitle: self.editTitle\n\t\t\t\t\t};\n\t\t\t\tupdateFields[self.editField] = value;\n\t\t\t\tself.wiki.addTiddler(new $tw.Tiddler(self.wiki.getCreationFields(),tiddler,updateFields,self.wiki.getModificationFields()));\n\t\t\t};\n\t\t}\n\t\tif(this.editType) {\n\t\t\ttype = this.editType;\n\t\t}\n\t\treturn {value: value || \"\", type: type, update: update};\n\t};\n\n\t/*\n\tHandle an edit text operation message from the toolbar\n\t*/\n\tEditTextWidget.prototype.handleEditTextOperationMessage = function(event) {\n\t\t// Prepare information about the operation\n\t\tvar operation = this.engine.createTextOperation();\n\t\t// Invoke the handler for the selected operation\n\t\tvar handler = this.editorOperations[event.param];\n\t\tif(handler) {\n\t\t\thandler.call(this,event,operation);\n\t\t}\n\t\t// Execute the operation via the engine\n\t\tvar newText = this.engine.executeTextOperation(operation);\n\t\t// Fix the tiddler height and save changes\n\t\tthis.engine.fixHeight();\n\t\tthis.saveChanges(newText);\n\t};\n\n\t/*\n\tCompute the internal state of the widget\n\t*/\n\tEditTextWidget.prototype.execute = function() {\n\t\t// Get our parameters\n\t\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t\tthis.editField = this.getAttribute(\"field\",\"text\");\n\t\tthis.editIndex = this.getAttribute(\"index\");\n\t\tthis.editDefault = this.getAttribute(\"default\");\n\t\tthis.editClass = this.getAttribute(\"class\");\n\t\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\t\tthis.editSize = this.getAttribute(\"size\");\n\t\tthis.editRows = this.getAttribute(\"rows\");\n\t\tthis.editAutoHeight = this.wiki.getTiddlerText(HEIGHT_MODE_TITLE,\"auto\");\n\t\tthis.editAutoHeight = this.getAttribute(\"autoHeight\",this.editAutoHeight === \"auto\" ? \"yes\" : \"no\") === \"yes\";\n\t\tthis.editMinHeight = this.getAttribute(\"minHeight\",DEFAULT_MIN_TEXT_AREA_HEIGHT);\n\t\tthis.editFocusPopup = this.getAttribute(\"focusPopup\");\n\t\tthis.editFocus = this.getAttribute(\"focus\");\n\t\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\t\t// Get the default editor element tag and type\n\t\tvar tag,type;\n\t\tif(this.editField === \"text\") {\n\t\t\ttag = \"textarea\";\n\t\t} else {\n\t\t\ttag = \"input\";\n\t\t\tvar fieldModule = $tw.Tiddler.fieldModules[this.editField];\n\t\t\tif(fieldModule && fieldModule.editTag) {\n\t\t\t\ttag = fieldModule.editTag;\n\t\t\t}\n\t\t\tif(fieldModule && fieldModule.editType) {\n\t\t\t\ttype = fieldModule.editType;\n\t\t\t}\n\t\t\ttype = type || \"text\";\n\t\t}\n\t\t// Get the rest of our parameters\n\t\tthis.editTag = this.getAttribute(\"tag\",tag) || \"input\";\n\t\tthis.editType = this.getAttribute(\"type\",type);\n\t\t// Make the child widgets\n\t\tthis.makeChildWidgets();\n\t\t// Determine whether to show the toolbar\n\t\tthis.editShowToolbar = this.wiki.getTiddlerText(ENABLE_TOOLBAR_TITLE,\"yes\");\n\t\tthis.editShowToolbar = (this.editShowToolbar === \"yes\") && !!(this.children && this.children.length > 0) && (!this.document.isTiddlyWikiFakeDom);\n\t};\n\n\t/*\n\tSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n\t*/\n\tEditTextWidget.prototype.refresh = function(changedTiddlers) {\n\t\tvar changedAttributes = this.computeAttributes();\n\t\t// Completely rerender if any of our attributes have changed\n\t\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.placeholder || changedAttributes.size || changedAttributes.autoHeight || changedAttributes.minHeight || changedAttributes.focusPopup || changedAttributes.rows || changedAttributes.tabindex || changedTiddlers[HEIGHT_MODE_TITLE] || changedTiddlers[ENABLE_TOOLBAR_TITLE]) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t\t} else if(changedTiddlers[this.editTitle]) {\n\t\t\tvar editInfo = this.getEditInfo();\n\t\t\tthis.updateEditor(editInfo.value,editInfo.type);\n\t\t}\n\t\tthis.engine.fixHeight();\n\t\tif(this.editShowToolbar) {\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t};\n\n\t/*\n\tUpdate the editor with new text. This method is separate from updateEditorDomNode()\n\tso that subclasses can override updateEditor() and still use updateEditorDomNode()\n\t*/\n\tEditTextWidget.prototype.updateEditor = function(text,type) {\n\t\tthis.updateEditorDomNode(text,type);\n\t};\n\n\t/*\n\tUpdate the editor dom node with new text\n\t*/\n\tEditTextWidget.prototype.updateEditorDomNode = function(text,type) {\n\t\tthis.engine.setText(text,type);\n\t};\n\n\t/*\n\tSave changes back to the tiddler store\n\t*/\n\tEditTextWidget.prototype.saveChanges = function(text) {\n\t\tvar editInfo = this.getEditInfo();\n\t\tif(text !== editInfo.value) {\n\t\t\teditInfo.update(text);\n\t\t}\n\t};\n\n\t/*\n\tHandle a dom \"keydown\" event, which we'll bubble up to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.handleKeydownEvent = function(event) {\n\t\t// Check for a keyboard shortcut\n\t\tif(this.toolbarNode) {\n\t\t\tvar shortcutElements = this.toolbarNode.querySelectorAll(\"[data-tw-keyboard-shortcut]\");\n\t\t\tfor(var index=0; index<shortcutElements.length; index++) {\n\t\t\t\tvar el = shortcutElements[index],\n\t\t\t\t\tshortcutData = el.getAttribute(\"data-tw-keyboard-shortcut\"),\n\t\t\t\t\tkeyInfoArray = $tw.keyboardManager.parseKeyDescriptors(shortcutData,{\n\t\t\t\t\t\twiki: this.wiki\n\t\t\t\t\t});\n\t\t\t\tif($tw.keyboardManager.checkKeyDescriptors(event,keyInfoArray)) {\n\t\t\t\t\tvar clickEvent = this.document.createEvent(\"Events\");\n\t\t\t\t clickEvent.initEvent(\"click\",true,false);\n\t\t\t\t el.dispatchEvent(clickEvent);\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t// Propogate the event to the container\n\t\tif(this.propogateKeydownEvent(event)) {\n\t\t\t// Ignore the keydown if it was already handled\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\t// Otherwise, process the keydown normally\n\t\treturn false;\n\t};\n\n\t/*\n\tPropogate keydown events to our container for the keyboard widgets benefit\n\t*/\n\tEditTextWidget.prototype.propogateKeydownEvent = function(event) {\n\t\tvar newEvent = this.document.createEventObject ? this.document.createEventObject() : this.document.createEvent(\"Events\");\n\t\tif(newEvent.initEvent) {\n\t\t\tnewEvent.initEvent(\"keydown\", true, true);\n\t\t}\n\t\tnewEvent.keyCode = event.keyCode;\n\t\tnewEvent.which = event.which;\n\t\tnewEvent.metaKey = event.metaKey;\n\t\tnewEvent.ctrlKey = event.ctrlKey;\n\t\tnewEvent.altKey = event.altKey;\n\t\tnewEvent.shiftKey = event.shiftKey;\n\t\treturn !this.parentDomNode.dispatchEvent(newEvent);\n\t};\n\n\treturn EditTextWidget;\n\n}\n\nexports.editTextWidgetFactory = editTextWidgetFactory;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/editor/operations/bitmap/clear.js": {
"title": "$:/core/modules/editor/operations/bitmap/clear.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/clear.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to clear the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"clear\"] = function(event) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.globalAlpha = 1;\n\tctx.fillStyle = event.paramObject.colour || \"white\";\n\tctx.fillRect(0,0,this.canvasDomNode.width,this.canvasDomNode.height);\n\t// Save changes\n\tthis.strokeEnd();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/resize.js": {
"title": "$:/core/modules/editor/operations/bitmap/resize.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/resize.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to resize the image\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"resize\"] = function(event) {\n\t// Get the new width\n\tvar newWidth = parseInt(event.paramObject.width || this.canvasDomNode.width,10),\n\t\tnewHeight = parseInt(event.paramObject.height || this.canvasDomNode.height,10);\n\t// Update if necessary\n\tif(newWidth > 0 && newHeight > 0 && !(newWidth === this.currCanvas.width && newHeight === this.currCanvas.height)) {\n\t\tthis.changeCanvasSize(newWidth,newHeight);\n\t}\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/bitmap/rotate-left.js": {
"title": "$:/core/modules/editor/operations/bitmap/rotate-left.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/bitmap/rotate-left.js\ntype: application/javascript\nmodule-type: bitmapeditoroperation\n\nBitmap editor operation to rotate the image left by 90 degrees\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"rotate-left\"] = function(event) {\n\t// Rotate the canvas left by 90 degrees\n\tthis.rotateCanvasLeft();\n\t// Update the input controls\n\tthis.refreshToolbar();\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "bitmapeditoroperation"
},
"$:/core/modules/editor/operations/text/excise.js": {
"title": "$:/core/modules/editor/operations/text/excise.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/excise.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to excise the selection to a new tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"excise\"] = function(event,operation) {\n\tvar editTiddler = this.wiki.getTiddler(this.editTitle),\n\t\teditTiddlerTitle = this.editTitle;\n\tif(editTiddler && editTiddler.fields[\"draft.of\"]) {\n\t\teditTiddlerTitle = editTiddler.fields[\"draft.of\"];\n\t}\n\tvar excisionTitle = event.paramObject.title || this.wiki.generateNewTitle(\"New Excision\");\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\tthis.wiki.getModificationFields(),\n\t\t{\n\t\t\ttitle: excisionTitle,\n\t\t\ttext: operation.selection,\n\t\t\ttags: event.paramObject.tagnew === \"yes\" ? [editTiddlerTitle] : []\n\t\t}\n\t));\n\toperation.replacement = excisionTitle;\n\tswitch(event.paramObject.type || \"transclude\") {\n\t\tcase \"transclude\":\n\t\t\toperation.replacement = \"{{\" + operation.replacement+ \"}}\";\n\t\t\tbreak;\n\t\tcase \"link\":\n\t\t\toperation.replacement = \"[[\" + operation.replacement+ \"]]\";\n\t\t\tbreak;\n\t\tcase \"macro\":\n\t\t\toperation.replacement = \"<<\" + (event.paramObject.macro || \"translink\") + \" \\\"\\\"\\\"\" + operation.replacement + \"\\\"\\\"\\\">>\";\n\t\t\tbreak;\n\t}\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/make-link.js": {
"title": "$:/core/modules/editor/operations/text/make-link.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/make-link.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to make a link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"make-link\"] = function(event,operation) {\n\tif(operation.selection) {\n\t\toperation.replacement = \"[[\" + operation.selection + \"|\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t} else {\n\t\toperation.replacement = \"[[\" + event.paramObject.text + \"]]\";\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t}\n\toperation.newSelStart = operation.selStart + operation.replacement.length;\n\toperation.newSelEnd = operation.newSelStart;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/prefix-lines.js": {
"title": "$:/core/modules/editor/operations/text/prefix-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/prefix-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to add a prefix to the selected lines\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"prefix-lines\"] = function(event,operation) {\n\tvar targetCount = parseInt(event.paramObject.count + \"\",10);\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Compose the required prefix\n\tvar prefix = $tw.utils.repeat(event.paramObject.character,targetCount);\n\t// Process each line\n\tvar lines = operation.text.substring(operation.cutStart,operation.cutEnd).split(/\\r?\\n/mg);\n\t$tw.utils.each(lines,function(line,index) {\n\t\t// Remove and count any existing prefix characters\n\t\tvar count = 0;\n\t\twhile(line.charAt(0) === event.paramObject.character) {\n\t\t\tline = line.substring(1);\n\t\t\tcount++;\n\t\t}\n\t\t// Remove any whitespace\n\t\twhile(line.charAt(0) === \" \") {\n\t\t\tline = line.substring(1);\n\t\t}\n\t\t// We're done if we removed the exact required prefix, otherwise add it\n\t\tif(count !== targetCount) {\n\t\t\t// Apply the prefix\n\t\t\tline = prefix + \" \" + line;\n\t\t}\n\t\t// Save the modified line\n\t\tlines[index] = line;\n\t});\n\t// Stitch the replacement text together and set the selection\n\toperation.replacement = lines.join(\"\\n\");\n\tif(lines.length === 1) {\n\t\toperation.newSelStart = operation.cutStart + operation.replacement.length;\n\t\toperation.newSelEnd = operation.newSelStart;\n\t} else {\n\t\toperation.newSelStart = operation.cutStart;\n\t\toperation.newSelEnd = operation.newSelStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-all.js": {
"title": "$:/core/modules/editor/operations/text/replace-all.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-all.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the entire text\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-all\"] = function(event,operation) {\n\toperation.cutStart = 0;\n\toperation.cutEnd = operation.text.length;\n\toperation.replacement = event.paramObject.text;\n\toperation.newSelStart = 0;\n\toperation.newSelEnd = operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/replace-selection.js": {
"title": "$:/core/modules/editor/operations/text/replace-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/replace-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to replace the selection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"replace-selection\"] = function(event,operation) {\n\toperation.replacement = event.paramObject.text;\n\toperation.cutStart = operation.selStart;\n\toperation.cutEnd = operation.selEnd;\n\toperation.newSelStart = operation.selStart;\n\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/save-selection.js": {
"title": "$:/core/modules/editor/operations/text/save-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/save-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to save the current selection in a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"save-selection\"] = function(event,operation) {\n\tvar tiddler = event.paramObject.tiddler,\n\t\tfield = event.paramObject.field || \"text\";\n\tif(tiddler && field) {\n\t\tthis.wiki.setText(tiddler,field,null,operation.text.substring(operation.selStart,operation.selEnd));\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-lines.js": {
"title": "$:/core/modules/editor/operations/text/wrap-lines.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-lines.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selected lines with a prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-lines\"] = function(event,operation) {\n\t// Cut just past the preceding line break, or the start of the text\n\toperation.cutStart = $tw.utils.findPrecedingLineBreak(operation.text,operation.selStart);\n\t// Cut to just past the following line break, or to the end of the text\n\toperation.cutEnd = $tw.utils.findFollowingLineBreak(operation.text,operation.selEnd);\n\t// Add the prefix and suffix\n\toperation.replacement = event.paramObject.prefix + \"\\n\" +\n\t\t\t\toperation.text.substring(operation.cutStart,operation.cutEnd) + \"\\n\" +\n\t\t\t\tevent.paramObject.suffix + \"\\n\";\n\toperation.newSelStart = operation.cutStart + event.paramObject.prefix.length + 1;\n\toperation.newSelEnd = operation.newSelStart + (operation.cutEnd - operation.cutStart);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/editor/operations/text/wrap-selection.js": {
"title": "$:/core/modules/editor/operations/text/wrap-selection.js",
"text": "/*\\\ntitle: $:/core/modules/editor/operations/text/wrap-selection.js\ntype: application/javascript\nmodule-type: texteditoroperation\n\nText editor operation to wrap the selection with the specified prefix and suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports[\"wrap-selection\"] = function(event,operation) {\n\tif(operation.selStart === operation.selEnd) {\n\t\t// No selection; check if we're within the prefix/suffix\n\t\tif(operation.text.substring(operation.selStart - event.paramObject.prefix.length,operation.selStart + event.paramObject.suffix.length) === event.paramObject.prefix + event.paramObject.suffix) {\n\t\t\t// Remove the prefix and suffix\n\t\t\toperation.cutStart = operation.selStart - event.paramObject.prefix.length;\n\t\t\toperation.cutEnd = operation.selEnd + event.paramObject.suffix.length;\n\t\t\toperation.replacement = \"\";\n\t\t\toperation.newSelStart = operation.cutStart;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t} else {\n\t\t\t// Wrap the cursor instead\n\t\t\toperation.cutStart = operation.selStart;\n\t\t\toperation.cutEnd = operation.selEnd;\n\t\t\toperation.replacement = event.paramObject.prefix + event.paramObject.suffix;\n\t\t\toperation.newSelStart = operation.selStart + event.paramObject.prefix.length;\n\t\t\toperation.newSelEnd = operation.newSelStart;\n\t\t}\n\t} else if(operation.text.substring(operation.selStart,operation.selStart + event.paramObject.prefix.length) === event.paramObject.prefix && operation.text.substring(operation.selEnd - event.paramObject.suffix.length,operation.selEnd) === event.paramObject.suffix) {\n\t\t// Prefix and suffix are already present, so remove them\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = operation.selection.substring(event.paramObject.prefix.length,operation.selection.length - event.paramObject.suffix.length);\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t} else {\n\t\t// Add the prefix and suffix\n\t\toperation.cutStart = operation.selStart;\n\t\toperation.cutEnd = operation.selEnd;\n\t\toperation.replacement = event.paramObject.prefix + operation.selection + event.paramObject.suffix;\n\t\toperation.newSelStart = operation.selStart;\n\t\toperation.newSelEnd = operation.selStart + operation.replacement.length;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "texteditoroperation"
},
"$:/core/modules/filters/addprefix.js": {
"title": "$:/core/modules/filters/addprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a prefix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand + title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/addsuffix.js": {
"title": "$:/core/modules/filters/addsuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/addsuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for adding a suffix to each title in the list. This is\nespecially useful in contexts where only a filter expression is allowed\nand macro substitution isn't available.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.addsuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title + operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/after.js": {
"title": "$:/core/modules/filters/after.js",
"text": "/*\\\ntitle: $:/core/modules/filters/after.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is after the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.after = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index === -1 || index > (results.length - 2)) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index + 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/all/current.js": {
"title": "$:/core/modules/filters/all/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/current.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar currTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(currTiddlerTitle) {\n\t\treturn [currTiddlerTitle];\n\t} else {\n\t\treturn [];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/missing.js": {
"title": "$:/core/modules/filters/all/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/missing.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\treturn options.wiki.getMissingTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/orphans.js": {
"title": "$:/core/modules/filters/all/orphans.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/orphans.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[orphans]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphans = function(source,prefix,options) {\n\treturn options.wiki.getOrphanTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/shadows.js": {
"title": "$:/core/modules/filters/all/shadows.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/shadows.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[shadows]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadows = function(source,prefix,options) {\n\treturn options.wiki.allShadowTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tags.js": {
"title": "$:/core/modules/filters/all/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tags.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tags]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,prefix,options) {\n\treturn Object.keys(options.wiki.getTagMap());\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all/tiddlers.js": {
"title": "$:/core/modules/filters/all/tiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all/tiddlers.js\ntype: application/javascript\nmodule-type: allfilteroperator\n\nFilter function for [all[tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddlers = function(source,prefix,options) {\n\treturn options.wiki.allTitles();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "allfilteroperator"
},
"$:/core/modules/filters/all.js": {
"title": "$:/core/modules/filters/all.js",
"text": "/*\\\ntitle: $:/core/modules/filters/all.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for selecting tiddlers\n\n[all[shadows+tiddlers]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar allFilterOperators;\n\nfunction getAllFilterOperators() {\n\tif(!allFilterOperators) {\n\t\tallFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"allfilteroperator\",allFilterOperators);\n\t}\n\treturn allFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.all = function(source,operator,options) {\n\t// Get our suboperators\n\tvar allFilterOperators = getAllFilterOperators();\n\t// Cycle through the suboperators accumulating their results\n\tvar results = [],\n\t\tsubops = operator.operand.split(\"+\");\n\t// Check for common optimisations\n\tif(subops.length === 1 && subops[0] === \"\") {\n\t\treturn source;\n\t} else if(subops.length === 1 && subops[0] === \"tiddlers\") {\n\t\treturn options.wiki.each;\n\t} else if(subops.length === 1 && subops[0] === \"shadows\") {\n\t\treturn options.wiki.eachShadow;\n\t} else if(subops.length === 2 && subops[0] === \"tiddlers\" && subops[1] === \"shadows\") {\n\t\treturn options.wiki.eachTiddlerPlusShadows;\n\t} else if(subops.length === 2 && subops[0] === \"shadows\" && subops[1] === \"tiddlers\") {\n\t\treturn options.wiki.eachShadowPlusTiddlers;\n\t}\n\t// Do it the hard way\n\tfor(var t=0; t<subops.length; t++) {\n\t\tvar subop = allFilterOperators[subops[t]];\n\t\tif(subop) {\n\t\t\t$tw.utils.pushTop(results,subop(source,operator.prefix,options));\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/backlinks.js": {
"title": "$:/core/modules/filters/backlinks.js",
"text": "/*\\\ntitle: $:/core/modules/filters/backlinks.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the backlinks from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.backlinks = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerBacklinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/before.js": {
"title": "$:/core/modules/filters/before.js",
"text": "/*\\\ntitle: $:/core/modules/filters/before.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler from the current list that is before the tiddler named in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.before = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar index = results.indexOf(operator.operand);\n\tif(index <= 0) {\n\t\treturn [];\n\t} else {\n\t\treturn [results[index - 1]];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/commands.js": {
"title": "$:/core/modules/filters/commands.js",
"text": "/*\\\ntitle: $:/core/modules/filters/commands.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the commands available in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.commands = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.commands,function(commandInfo,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/compare.js": {
"title": "$:/core/modules/filters/compare.js",
"text": "/*\\\ntitle: $:/core/modules/filters/compare.js\ntype: application/javascript\nmodule-type: filteroperator\n\nGeneral purpose comparison operator\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.compare = function(source,operator,options) {\n\tvar suffixes = operator.suffixes || [],\n\t\ttype = (suffixes[0] || [])[0],\n\t\tmode = (suffixes[1] || [])[0],\n\t\ttypeFn = types[type] || types.number,\n\t\tmodeFn = modes[mode] || modes.eq,\n\t\tinvert = operator.prefix === \"!\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tif(modeFn(typeFn(title,operator.operand)) !== invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\nvar types = {\n\t\"number\": function(a,b) {\n\t\treturn compare($tw.utils.parseNumber(a),$tw.utils.parseNumber(b));\n\t},\n\t\"integer\": function(a,b) {\n\t\treturn compare($tw.utils.parseInt(a),$tw.utils.parseInt(b));\n\t},\n\t\"string\": function(a,b) {\n\t\treturn compare(\"\" + a,\"\" +b);\n\t},\n\t\"date\": function(a,b) {\n\t\tvar dateA = $tw.utils.parseDate(a),\n\t\t\tdateB = $tw.utils.parseDate(b);\n\t\tif(!isFinite(dateA)) {\n\t\t\tdateA = new Date(0);\n\t\t}\n\t\tif(!isFinite(dateB)) {\n\t\t\tdateB = new Date(0);\n\t\t}\n\t\treturn compare(dateA,dateB);\n\t},\n\t\"version\": function(a,b) {\n\t\treturn $tw.utils.compareVersions(a,b);\n\t}\n};\n\nfunction compare(a,b) {\n\tif(a > b) {\n\t\treturn +1;\n\t} else if(a < b) {\n\t\treturn -1;\n\t} else {\n\t\treturn 0;\n\t}\n};\n\nvar modes = {\n\t\"eq\": function(value) {return value === 0;},\n\t\"ne\": function(value) {return value !== 0;},\n\t\"gteq\": function(value) {return value >= 0;},\n\t\"gt\": function(value) {return value > 0;},\n\t\"lteq\": function(value) {return value <= 0;},\n\t\"lt\": function(value) {return value < 0;}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/contains.js": {
"title": "$:/core/modules/filters/contains.js",
"text": "/*\\\ntitle: $:/core/modules/filters/contains.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for finding values in array fields\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.contains = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"list\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\tvar list = tiddler.getFieldList(fieldname);\n\t\t\t\tif(list.indexOf(operator.operand) !== -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/count.js": {
"title": "$:/core/modules/filters/count.js",
"text": "/*\\\ntitle: $:/core/modules/filters/count.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the number of entries in the current list.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.count = function(source,operator,options) {\n\tvar count = 0;\n\tsource(function(tiddler,title) {\n\t\tcount++;\n\t});\n\treturn [count + \"\"];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/days.js": {
"title": "$:/core/modules/filters/days.js",
"text": "/*\\\ntitle: $:/core/modules/filters/days.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a specified date field within a specified date interval.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.days = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\tdayInterval = (parseInt(operator.operand,10)||0),\n\t\tdayIntervalSign = $tw.utils.sign(dayInterval),\n\t\ttargetTimeStamp = (new Date()).setHours(0,0,0,0) + 1000*60*60*24*dayInterval,\n\t\tisWithinDays = function(dateField) {\n\t\t\tvar sign = $tw.utils.sign(targetTimeStamp - (new Date(dateField)).setHours(0,0,0,0));\n\t\t\treturn sign === 0 || sign === dayIntervalSign;\n\t\t};\n\n\tif(operator.prefix === \"!\") {\n\t\ttargetTimeStamp = targetTimeStamp - 1000*60*60*24*dayIntervalSign;\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(!isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\t\tif(isWithinDays($tw.utils.parseDate(tiddler.fields[fieldName]))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/each.js": {
"title": "$:/core/modules/filters/each.js",
"text": "/*\\\ntitle: $:/core/modules/filters/each.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique value of the specified field.\nWith suffix \"list\", selects all tiddlers that are values in a specified list field.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.each = function(source,operator,options) {\n\tvar results =[] ,\n\tvalue,values = {},\n\tfield = operator.operand || \"title\";\n\tif(operator.suffix === \"value\" && field === \"title\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(values,title)) {\n\t\t\t\tvalues[title] = true;\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else if(operator.suffix !== \"list-item\") {\n\t\tif(field === \"title\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && !$tw.utils.hop(values,title)) {\n\t\t\t\t\tvalues[title] = true;\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvalue = tiddler.getFieldString(field);\n\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\t$tw.utils.each(\n\t\t\t\t\toptions.wiki.getTiddlerList(title,field),\n\t\t\t\t\tfunction(value) {\n\t\t\t\t\t\tif(!$tw.utils.hop(values,value)) {\n\t\t\t\t\t\t\tvalues[value] = true;\n\t\t\t\t\t\t\tresults.push(value);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/eachday.js": {
"title": "$:/core/modules/filters/eachday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/eachday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects one tiddler for each unique day covered by the specified date field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.eachday = function(source,operator,options) {\n\tvar results = [],\n\t\tvalues = [],\n\t\tfieldName = operator.operand || \"modified\";\n\t// Function to convert a date/time to a date integer\n\tvar toDate = function(value) {\n\t\tvalue = (new Date(value)).setHours(0,0,0,0);\n\t\treturn value+0;\n\t};\n\tsource(function(tiddler,title) {\n\t\tif(tiddler && tiddler.fields[fieldName]) {\n\t\t\tvar value = toDate($tw.utils.parseDate(tiddler.fields[fieldName]));\n\t\t\tif(values.indexOf(value) === -1) {\n\t\t\t\tvalues.push(value);\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editiondescription.js": {
"title": "$:/core/modules/filters/editiondescription.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editiondescription.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the descriptions of the specified edition names\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editiondescription = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(editionInfo,title)) {\n\t\t\t\tresults.push(editionInfo[title].description || \"\");\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/editions.js": {
"title": "$:/core/modules/filters/editions.js",
"text": "/*\\\ntitle: $:/core/modules/filters/editions.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the available editions in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.editions = function(source,operator,options) {\n\tvar results = [],\n\t\teditionInfo = $tw.utils.getEditionInfo();\n\tif(editionInfo) {\n\t\t$tw.utils.each(editionInfo,function(info,name) {\n\t\t\tresults.push(name);\n\t\t});\n\t}\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/else.js": {
"title": "$:/core/modules/filters/else.js",
"text": "/*\\\ntitle: $:/core/modules/filters/else.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing an empty input list with a constant, passing a non-empty input list straight through\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.else = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tif(results.length === 0) {\n\t\treturn [operator.operand];\n\t} else {\n\t\treturn results;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/decodeuricomponent.js": {
"title": "$:/core/modules/filters/decodeuricomponent.js",
"text": "/*\\\ntitle: $:/core/modules/filters/decodeuricomponent.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for applying decodeURIComponent() to each item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter functions\n*/\n\nexports.decodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURIComponent(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuricomponent = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURIComponent(title));\n\t});\n\treturn results;\n};\n\nexports.decodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar value = title;\n\t\ttry {\n\t\t\tvalue = decodeURI(title);\n\t\t} catch(e) {\n\t\t}\n\t\tresults.push(value);\n\t});\n\treturn results;\n};\n\nexports.encodeuri = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(encodeURI(title));\n\t});\n\treturn results;\n};\n\nexports.decodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlDecode(title));\n\t});\n\treturn results;\n};\n\nexports.encodehtml = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.htmlEncode(title));\n\t});\n\treturn results;\n};\n\nexports.stringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.stringify(title));\n\t});\n\treturn results;\n};\n\nexports.jsonstringify = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.jsonStringify(title));\n\t});\n\treturn results;\n};\n\nexports.escaperegexp = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push($tw.utils.escapeRegExp(title));\n\t});\n\treturn results;\n};\n\nexports.escapecss = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t// escape any character with a special meaning in CSS using CSS.escape()\n\t\tresults.push(CSS.escape(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/enlist.js": {
"title": "$:/core/modules/filters/enlist.js",
"text": "/*\\\ntitle: $:/core/modules/filters/enlist.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand parsed as a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.enlist = function(source,operator,options) {\n\tvar allowDuplicates = false;\n\tswitch(operator.suffix) {\n\t\tcase \"raw\":\n\t\t\tallowDuplicates = true;\n\t\t\tbreak;\n\t\tcase \"dedupe\":\n\t\t\tallowDuplicates = false;\n\t\t\tbreak;\n\t}\n\tvar list = $tw.utils.parseStringArray(operator.operand,allowDuplicates);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/field.js": {
"title": "$:/core/modules/filters/field.js",
"text": "/*\\\ntitle: $:/core/modules/filters/field.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.field = function(source,operator,options) {\n\tvar results = [],indexedResults,\n\t\tfieldname = (operator.suffix || operator.operator || \"title\").toLowerCase();\n\tif(operator.prefix === \"!\") {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text !== operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.regexp) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && !!operator.regexp.exec(text)) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tif(source.byField && operator.operand) {\n\t\t\t\tindexedResults = source.byField(fieldname,operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults\n\t\t\t\t}\n\t\t\t}\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler) {\n\t\t\t\t\tvar text = tiddler.getFieldString(fieldname);\n\t\t\t\t\tif(text !== null && text === operator.operand) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/fields.js": {
"title": "$:/core/modules/filters/fields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/fields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.fields = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName,\n\t\tsuffixes = (operator.suffixes || [])[0] || [],\n\t\toperand = $tw.utils.parseStringArray(operator.operand);\n\t\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(suffixes.indexOf(\"include\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? $tw.utils.pushTop(results,fieldName) : \"\";\n\t\t\t\t}\n\t\t\t} else if (suffixes.indexOf(\"exclude\") !== -1) {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t(operand.indexOf(fieldName) !== -1) ? \"\" : $tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else if\n\t\t\telse {\n\t\t\t\tfor(fieldName in tiddler.fields) {\n\t\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t\t}\n\t\t\t} // else\n\t\t} // if (tiddler)\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/get.js": {
"title": "$:/core/modules/filters/get.js",
"text": "/*\\\ntitle: $:/core/modules/filters/get.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing tiddler titles by the value of the field specified in the operand.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.get = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tvar value = tiddler.getFieldString(operator.operand);\n\t\t\tif(value) {\n\t\t\t\tresults.push(value);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getindex.js": {
"title": "$:/core/modules/filters/getindex.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getindex.js\ntype: application/javascript\nmodule-type: filteroperator\n\nreturns the value at a given index of datatiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getindex = function(source,operator,options) {\n\tvar data,title,results = [];\n\tif(operator.operand){\n\t\tsource(function(tiddler,title) {\n\t\t\ttitle = tiddler ? tiddler.fields.title : title;\n\t\t\tdata = options.wiki.extractTiddlerDataItem(tiddler,operator.operand);\n\t\t\tif(data) {\n\t\t\t\tresults.push(data);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/getvariable.js": {
"title": "$:/core/modules/filters/getvariable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/getvariable.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing input values by the value of the variable with the same name, or blank if the variable is missing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.getvariable = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.widget.getVariable(title) || \"\");\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/has.js": {
"title": "$:/core/modules/filters/has.js",
"text": "/*\\\ntitle: $:/core/modules/filters/has.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a tiddler has the specified field or index\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.has = function(source,operator,options) {\n\tvar results = [],\n\t\tinvert = operator.prefix === \"!\";\n\n\tif(operator.suffix === \"field\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop(tiddler.fields,operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse if(operator.suffix === \"index\") {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || (tiddler && (!$tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)))) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop($tw.wiki.getTiddlerDataCached(tiddler,Object.create(null)),operator.operand)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\telse {\n\t\tif(invert) {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(!tiddler || !$tw.utils.hop(tiddler.fields,operator.operand) || (tiddler.fields[operator.operand] === \"\")) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddler && $tw.utils.hop(tiddler.fields,operator.operand) && !(tiddler.fields[operator.operand] === \"\" || tiddler.fields[operator.operand].length === 0)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\t\t\t\t\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/haschanged.js": {
"title": "$:/core/modules/filters/haschanged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/haschanged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returns tiddlers from the list that have a non-zero changecount.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.haschanged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) === 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.getChangeCount(title) > 0) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/indexes.js": {
"title": "$:/core/modules/filters/indexes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/indexes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the indexes of a data tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.indexes = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar data = options.wiki.getTiddlerDataCached(title);\n\t\tif(data) {\n\t\t\t$tw.utils.pushTop(results,Object.keys(data));\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/insertbefore.js": {
"title": "$:/core/modules/filters/insertbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/insertbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nInsert an item before another item in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.insertbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\tvar target = options.widget && options.widget.getVariable(operator.suffix || \"currentTiddler\");\n\tif(target !== operator.operand) {\n\t\t// Remove the entry from the list if it is present\n\t\tvar pos = results.indexOf(operator.operand);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,1);\n\t\t}\n\t\t// Insert the entry before the target marker\n\t\tpos = results.indexOf(target);\n\t\tif(pos !== -1) {\n\t\t\tresults.splice(pos,0,operator.operand);\n\t\t} else {\n\t\t\tresults.push(operator.operand);\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/is/binary.js": {
"title": "$:/core/modules/filters/is/binary.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/binary.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[binary]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.binary = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isBinaryTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/blank.js": {
"title": "$:/core/modules/filters/is/blank.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/blank.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[blank]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.blank = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!title) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/current.js": {
"title": "$:/core/modules/filters/is/current.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/current.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[current]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.current = function(source,prefix,options) {\n\tvar results = [],\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\");\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title !== currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title === currTiddlerTitle) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/image.js": {
"title": "$:/core/modules/filters/is/image.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/image.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[image]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.image = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isImageTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/missing.js": {
"title": "$:/core/modules/filters/is/missing.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/missing.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[missing]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.missing = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/orphan.js": {
"title": "$:/core/modules/filters/is/orphan.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/orphan.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[orphan]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.orphan = function(source,prefix,options) {\n\tvar results = [],\n\t\torphanTitles = options.wiki.getOrphanTitles();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(orphanTitles.indexOf(title) !== -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/shadow.js": {
"title": "$:/core/modules/filters/is/shadow.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/shadow.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[shadow]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadow = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isShadowTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/system.js": {
"title": "$:/core/modules/filters/is/system.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/system.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[system]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.system = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.isSystemTiddler(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tag.js": {
"title": "$:/core/modules/filters/is/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tag.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tag]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,prefix,options) {\n\tvar results = [],\n\t\ttagMap = options.wiki.getTagMap();\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!$tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif($tw.utils.hop(tagMap,title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/tiddler.js": {
"title": "$:/core/modules/filters/is/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/tiddler.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[tiddler]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tiddler = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(options.wiki.tiddlerExists(title)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is/variable.js": {
"title": "$:/core/modules/filters/is/variable.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is/variable.js\ntype: application/javascript\nmodule-type: isfilteroperator\n\nFilter function for [is[variable]]\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variable = function(source,prefix,options) {\n\tvar results = [];\n\tif(prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!(title in options.widget.variables)) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title in options.widget.variables) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "isfilteroperator"
},
"$:/core/modules/filters/is.js": {
"title": "$:/core/modules/filters/is.js",
"text": "/*\\\ntitle: $:/core/modules/filters/is.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking tiddler properties\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar isFilterOperators;\n\nfunction getIsFilterOperators() {\n\tif(!isFilterOperators) {\n\t\tisFilterOperators = {};\n\t\t$tw.modules.applyMethods(\"isfilteroperator\",isFilterOperators);\n\t}\n\treturn isFilterOperators;\n}\n\n/*\nExport our filter function\n*/\nexports.is = function(source,operator,options) {\n\t// Dispatch to the correct isfilteroperator\n\tvar isFilterOperators = getIsFilterOperators();\n\tif(operator.operand) {\n\t\tvar isFilterOperator = isFilterOperators[operator.operand];\n\t\tif(isFilterOperator) {\n\t\t\treturn isFilterOperator(source,operator.prefix,options);\n\t\t} else {\n\t\t\treturn [$tw.language.getString(\"Error/IsFilterOperator\")];\n\t\t}\n\t} else {\n\t\t// Return all tiddlers if the operand is missing\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t\treturn results;\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/limit.js": {
"title": "$:/core/modules/filters/limit.js",
"text": "/*\\\ntitle: $:/core/modules/filters/limit.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for chopping the results to a specified maximum number of entries\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.limit = function(source,operator,options) {\n\tvar results = [];\n\t// Convert to an array\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\t// Slice the array if necessary\n\tvar limit = Math.min(results.length,parseInt(operator.operand,10));\n\tif(operator.prefix === \"!\") {\n\t\tresults = results.slice(-limit);\n\t} else {\n\t\tresults = results.slice(0,limit);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/links.js": {
"title": "$:/core/modules/filters/links.js",
"text": "/*\\\ntitle: $:/core/modules/filters/links.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning all the links from a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.links = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlerLinks(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/list.js": {
"title": "$:/core/modules/filters/list.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddlers whose title is listed in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.list = function(source,operator,options) {\n\tvar results = [],\n\t\ttr = $tw.utils.parseTextReference(operator.operand),\n\t\tcurrTiddlerTitle = options.widget && options.widget.getVariable(\"currentTiddler\"),\n\t\tlist = options.wiki.getTiddlerList(tr.title || currTiddlerTitle,tr.field,tr.index);\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults = list;\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listed.js": {
"title": "$:/core/modules/filters/listed.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listed.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that have the selected tiddlers in a list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.listed = function(source,operator,options) {\n\tvar field = operator.operand || \"list\",\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.findListingsOfTiddler(title,field));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/listops.js": {
"title": "$:/core/modules/filters/listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for manipulating the current selection list\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOrder a list\n*/\nexports.order = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.operand.toLowerCase() === \"reverse\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.unshift(title);\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nReverse list\n*/\nexports.reverse = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.unshift(title);\n\t});\n\treturn results;\n};\n\n/*\nFirst entry/entries in list\n*/\nexports.first = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,count);\n};\n\n/*\nLast entry/entries in list\n*/\nexports.last = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(-count);\n};\n\n/*\nAll but the first entry/entries of the list\n*/\nexports.rest = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count);\n};\nexports.butfirst = exports.rest;\nexports.bf = exports.rest;\n\n/*\nAll but the last entry/entries of the list\n*/\nexports.butlast = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(0,-count);\n};\nexports.bl = exports.butlast;\n\n/*\nThe nth member of the list\n*/\nexports.nth = function(source,operator,options) {\n\tvar count = $tw.utils.getInt(operator.operand,1),\n\t\tresults = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results.slice(count - 1,count);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/lookup.js": {
"title": "$:/core/modules/filters/lookup.js",
"text": "/*\\\ntitle: $:/core/modules/filters/lookup.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that looks up values via a title prefix\n\n[lookup:<field>[<prefix>]]\n\nPrepends the prefix to the selected items and returns the specified field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.lookup = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(options.wiki.getTiddlerText(operator.operand + title) || options.wiki.getTiddlerText(operator.operand + operator.suffix));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/match.js": {
"title": "$:/core/modules/filters/match.js",
"text": "/*\\\ntitle: $:/core/modules/filters/match.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title matches a string\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.match = function(source,operator,options) {\n\tvar results = [],\n\t\tsuffixes = (operator.suffixes || [])[0] || [];\n\tif(suffixes.indexOf(\"caseinsensitive\") !== -1) {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() !== (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title.toLowerCase() === (operator.operand || \"\").toLowerCase()) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t} else {\n\t\tif(operator.prefix === \"!\") {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title !== operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(title === operator.operand) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/math.js": {
"title": "$:/core/modules/filters/math.js",
"text": "/*\\\ntitle: $:/core/modules/filters/math.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for math. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\nNote that strings are converted to numbers automatically. Trailing non-digits are ignored.\n\n* \"\" converts to 0\n* \"12kk\" converts to 12\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.negate = makeNumericBinaryOperator(\n\tfunction(a) {return -a}\n);\n\nexports.abs = makeNumericBinaryOperator(\n\tfunction(a) {return Math.abs(a)}\n);\n\nexports.ceil = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(a)}\n);\n\nexports.floor = makeNumericBinaryOperator(\n\tfunction(a) {return Math.floor(a)}\n);\n\nexports.round = makeNumericBinaryOperator(\n\tfunction(a) {return Math.round(a)}\n);\n\nexports.trunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.trunc(a)}\n);\n\nexports.untrunc = makeNumericBinaryOperator(\n\tfunction(a) {return Math.ceil(Math.abs(a)) * Math.sign(a)}\n);\n\nexports.sign = makeNumericBinaryOperator(\n\tfunction(a) {return Math.sign(a)}\n);\n\nexports.add = makeNumericBinaryOperator(\n\tfunction(a,b) {return a + b;}\n);\n\nexports.subtract = makeNumericBinaryOperator(\n\tfunction(a,b) {return a - b;}\n);\n\nexports.multiply = makeNumericBinaryOperator(\n\tfunction(a,b) {return a * b;}\n);\n\nexports.divide = makeNumericBinaryOperator(\n\tfunction(a,b) {return a / b;}\n);\n\nexports.remainder = makeNumericBinaryOperator(\n\tfunction(a,b) {return a % b;}\n);\n\nexports.max = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.max(a,b);}\n);\n\nexports.min = makeNumericBinaryOperator(\n\tfunction(a,b) {return Math.min(a,b);}\n);\n\nexports.fixed = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toFixed.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.precision = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toPrecision.call(a,Math.min(Math.max(b,1),100));}\n);\n\nexports.exponential = makeNumericBinaryOperator(\n\tfunction(a,b) {return Number.prototype.toExponential.call(a,Math.min(Math.max(b,0),100));}\n);\n\nexports.sum = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator + value},\n\t0 // Initial value\n);\n\nexports.product = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return accumulator * value},\n\t1 // Initial value\n);\n\nexports.maxall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.max(accumulator,value)},\n\t-Infinity // Initial value\n);\n\nexports.minall = makeNumericReducingOperator(\n\tfunction(accumulator,value) {return Math.min(accumulator,value)},\n\tInfinity // Initial value\n);\n\nfunction makeNumericBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [],\n\t\t\tnumOperand = $tw.utils.parseNumber(operator.operand);\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push($tw.utils.stringifyNumber(fnCalc($tw.utils.parseNumber(title),numOperand)));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeNumericReducingOperator(fnCalc,initialValue) {\n\tinitialValue = initialValue || 0;\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [$tw.utils.stringifyNumber(result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,$tw.utils.parseNumber(currentValue));\n\t\t},initialValue))];\n\t};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/minlength.js": {
"title": "$:/core/modules/filters/minlength.js",
"text": "/*\\\ntitle: $:/core/modules/filters/minlength.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for filtering out titles that don't meet the minimum length in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.minlength = function(source,operator,options) {\n\tvar results = [],\n\t\tminLength = parseInt(operator.operand || \"\",10) || 0;\n\tsource(function(tiddler,title) {\n\t\tif(title.length >= minLength) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/modules.js": {
"title": "$:/core/modules/filters/modules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/modules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the modules of a given type in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.modules = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.each($tw.modules.types[title],function(moduleInfo,moduleName) {\n\t\t\tresults.push(moduleName);\n\t\t});\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/moduletypes.js": {
"title": "$:/core/modules/filters/moduletypes.js",
"text": "/*\\\ntitle: $:/core/modules/filters/moduletypes.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the module types in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.moduletypes = function(source,operator,options) {\n\tvar results = [];\n\t$tw.utils.each($tw.modules.types,function(moduleInfo,type) {\n\t\tresults.push(type);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/next.js": {
"title": "$:/core/modules/filters/next.js",
"text": "/*\\\ntitle: $:/core/modules/filters/next.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs next in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.next = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch++;\n\t\tif(match > 0 && match < list.length) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/plugintiddlers.js": {
"title": "$:/core/modules/filters/plugintiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/filters/plugintiddlers.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the titles of the shadow tiddlers within a plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.plugintiddlers = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar pluginInfo = options.wiki.getPluginInfo(title) || options.wiki.getTiddlerDataCached(title,{tiddlers:[]});\n\t\tif(pluginInfo && pluginInfo.tiddlers) {\n\t\t\t$tw.utils.each(pluginInfo.tiddlers,function(fields,title) {\n\t\t\t\tresults.push(title);\n\t\t\t});\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/prefix.js": {
"title": "$:/core/modules/filters/prefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/prefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title starts with a prefix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.prefix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/previous.js": {
"title": "$:/core/modules/filters/previous.js",
"text": "/*\\\ntitle: $:/core/modules/filters/previous.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning the tiddler whose title occurs immediately prior in the list supplied in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.previous = function(source,operator,options) {\n\tvar results = [],\n\t\tlist = options.wiki.getTiddlerList(operator.operand);\n\tsource(function(tiddler,title) {\n\t\tvar match = list.indexOf(title);\n\t\t// increment match and then test if result is in range\n\t\tmatch--;\n\t\tif(match >= 0) {\n\t\t\tresults.push(list[match]);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/range.js": {
"title": "$:/core/modules/filters/range.js",
"text": "/*\\\ntitle: $:/core/modules/filters/range.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for generating a numeric range.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.range = function(source,operator,options) {\n\tvar results = [];\n\t// Split the operand into numbers delimited by these symbols\n\tvar parts = operator.operand.split(/[,:;]/g),\n\t\tbeg, end, inc, i, fixed = 0;\n\tfor (i=0; i<parts.length; i++) {\n\t\t// Validate real number\n\t\tif(!/^\\s*[+-]?((\\d+(\\.\\d*)?)|(\\.\\d+))\\s*$/.test(parts[i])) {\n\t\t\treturn [\"range: bad number \\\"\" + parts[i] + \"\\\"\"];\n\t\t}\n\t\t// Count digits; the most precise number determines decimal places in output.\n\t\tvar frac = /\\.\\d+/.exec(parts[i]);\n\t\tif(frac) {\n\t\t\tfixed = Math.max(fixed,frac[0].length-1);\n\t\t}\n\t\tparts[i] = parseFloat(parts[i]);\n\t}\n\tswitch(parts.length) {\n\t\tcase 1:\n\t\t\tend = parts[0];\n\t\t\tif (end >= 1) {\n\t\t\t\tbeg = 1;\n\t\t\t}\n\t\t\telse if (end <= -1) {\n\t\t\t\tbeg = -1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\treturn [];\n\t\t\t}\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = 1;\n\t\t\tbreak;\n\t\tcase 3:\n\t\t\tbeg = parts[0];\n\t\t\tend = parts[1];\n\t\t\tinc = Math.abs(parts[2]);\n\t\t\tbreak;\n\t}\n\tif(inc === 0) {\n\t\treturn [\"range: increment 0 causes infinite loop\"];\n\t}\n\t// May need to count backwards\n\tvar direction = ((end < beg) ? -1 : 1);\n\tinc *= direction;\n\t// Estimate number of resulting elements\n\tif((end - beg) / inc > 10000) {\n\t\treturn [\"range: too many steps (over 10K)\"];\n\t}\n\t// Avoid rounding error on last step\n\tend += direction * 0.5 * Math.pow(0.1,fixed);\n\tvar safety = 10010;\n\t// Enumerate the range\n\tif (end<beg) {\n\t\tfor(i=beg; i>end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tfor(i=beg; i<end; i+=inc) {\n\t\t\tresults.push(i.toFixed(fixed));\n\t\t\tif(--safety<0) {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\tif(safety<0) {\n\t\treturn [\"range: unexpectedly large output\"];\n\t}\n\t// Reverse?\n\tif(operator.prefix === \"!\") {\n\t\tresults.reverse();\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/regexp.js": {
"title": "$:/core/modules/filters/regexp.js",
"text": "/*\\\ntitle: $:/core/modules/filters/regexp.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for regexp matching\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.regexp = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldname = (operator.suffix || \"title\").toLowerCase(),\n\t\tregexpString, regexp, flags = \"\", match,\n\t\tgetFieldString = function(tiddler,title) {\n\t\t\tif(tiddler) {\n\t\t\t\treturn tiddler.getFieldString(fieldname);\n\t\t\t} else if(fieldname === \"title\") {\n\t\t\t\treturn title;\n\t\t\t} else {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t};\n\t// Process flags and construct regexp\n\tregexpString = operator.operand;\n\tmatch = /^\\(\\?([gim]+)\\)/.exec(regexpString);\n\tif(match) {\n\t\tflags = match[1];\n\t\tregexpString = regexpString.substr(match[0].length);\n\t} else {\n\t\tmatch = /\\(\\?([gim]+)\\)$/.exec(regexpString);\n\t\tif(match) {\n\t\t\tflags = match[1];\n\t\t\tregexpString = regexpString.substr(0,regexpString.length - match[0].length);\n\t\t}\n\t}\n\ttry {\n\t\tregexp = new RegExp(regexpString,flags);\n\t} catch(e) {\n\t\treturn [\"\" + e];\n\t}\n\t// Process the incoming tiddlers\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tvar text = getFieldString(tiddler,title);\n\t\t\tif(text !== null) {\n\t\t\t\tif(!!regexp.exec(text)) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removeprefix.js": {
"title": "$:/core/modules/filters/removeprefix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removeprefix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a prefix from each title in the list. Titles that do not start with the prefix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removeprefix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title.substr(0,operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/removesuffix.js": {
"title": "$:/core/modules/filters/removesuffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/removesuffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for removing a suffix from each title in the list. Titles that do not end with the suffix are removed.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.removesuffix = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tif(title && title.substr(-operator.operand.length) === operator.operand) {\n\t\t\tresults.push(title.substr(0,title.length - operator.operand.length));\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sameday.js": {
"title": "$:/core/modules/filters/sameday.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sameday.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that selects tiddlers with a modified date field on the same day as the provided value.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sameday = function(source,operator,options) {\n\tvar results = [],\n\t\tfieldName = operator.suffix || \"modified\",\n\t\ttargetDate = (new Date($tw.utils.parseDate(operator.operand))).setHours(0,0,0,0);\n\t// Function to convert a date/time to a date integer\n\tsource(function(tiddler,title) {\n\t\tif(tiddler) {\n\t\t\tif(tiddler.getFieldDay(fieldName) === targetDate) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/search.js": {
"title": "$:/core/modules/filters/search.js",
"text": "/*\\\ntitle: $:/core/modules/filters/search.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for searching for the text in the operand tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.search = function(source,operator,options) {\n\tvar invert = operator.prefix === \"!\";\n\tif(operator.suffixes) {\n\t\tvar hasFlag = function(flag) {\n\t\t\t\treturn (operator.suffixes[1] || []).indexOf(flag) !== -1;\n\t\t\t},\n\t\t\texcludeFields = false,\n\t\t\tfieldList = operator.suffixes[0] || [],\n\t\t\tfirstField = fieldList[0] || \"\", \n\t\t\tfirstChar = firstField.charAt(0),\n\t\t\tfields;\n\t\tif(firstChar === \"-\") {\n\t\t\tfields = [firstField.slice(1)].concat(fieldList.slice(1));\n\t\t\texcludeFields = true;\n\t\t} else if(fieldList[0] === \"*\"){\n\t\t\tfields = [];\n\t\t\texcludeFields = true;\n\t\t} else {\n\t\t\tfields = fieldList.slice(0);\n\t\t}\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert,\n\t\t\tfield: fields,\n\t\t\texcludeField: excludeFields,\n\t\t\tcaseSensitive: hasFlag(\"casesensitive\"),\n\t\t\tliteral: hasFlag(\"literal\"),\n\t\t\twhitespace: hasFlag(\"whitespace\"),\n\t\t\tanchored: hasFlag(\"anchored\"),\n\t\t\tregexp: hasFlag(\"regexp\"),\n\t\t\twords: hasFlag(\"words\")\n\t\t});\n\t} else {\n\t\treturn options.wiki.search(operator.operand,{\n\t\t\tsource: source,\n\t\t\tinvert: invert\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/shadowsource.js": {
"title": "$:/core/modules/filters/shadowsource.js",
"text": "/*\\\ntitle: $:/core/modules/filters/shadowsource.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the source plugins for shadow tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.shadowsource = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar source = options.wiki.getShadowSource(title);\n\t\tif(source) {\n\t\t\t$tw.utils.pushTop(results,source);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/sort.js": {
"title": "$:/core/modules/filters/sort.js",
"text": "/*\\\ntitle: $:/core/modules/filters/sort.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for sorting\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.sort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,false);\n\treturn results;\n};\n\nexports.nsort = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",false,true);\n\treturn results;\n};\n\nexports.sortan = function(source, operator, options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results, operator.operand || \"title\", operator.prefix === \"!\",false,false,true);\n\treturn results;\n};\n\nexports.sortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,false);\n\treturn results;\n};\n\nexports.nsortcs = function(source,operator,options) {\n\tvar results = prepare_results(source);\n\toptions.wiki.sortTiddlers(results,operator.operand || \"title\",operator.prefix === \"!\",true,true);\n\treturn results;\n};\n\nvar prepare_results = function (source) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(title);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/splitbefore.js": {
"title": "$:/core/modules/filters/splitbefore.js",
"text": "/*\\\ntitle: $:/core/modules/filters/splitbefore.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator that splits each result on the first occurance of the specified separator and returns the unique values.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.splitbefore = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar parts = title.split(operator.operand);\n\t\tif(parts.length === 1) {\n\t\t\t$tw.utils.pushTop(results,parts[0]);\n\t\t} else {\n\t\t\t$tw.utils.pushTop(results,parts[0] + operator.operand);\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/storyviews.js": {
"title": "$:/core/modules/filters/storyviews.js",
"text": "/*\\\ntitle: $:/core/modules/filters/storyviews.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the story views in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.storyviews = function(source,operator,options) {\n\tvar results = [],\n\t\tstoryviews = {};\n\t$tw.modules.applyMethods(\"storyview\",storyviews);\n\t$tw.utils.each(storyviews,function(info,name) {\n\t\tresults.push(name);\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/strings.js": {
"title": "$:/core/modules/filters/strings.js",
"text": "/*\\\ntitle: $:/core/modules/filters/strings.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operators for strings. Unary/binary operators work on each item in turn, and return a new item list.\n\nSum/product/maxall/minall operate on the entire list, returning a single item.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.length = makeStringBinaryOperator(\n\tfunction(a) {return [\"\" + (\"\" + a).length];}\n);\n\nexports.uppercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toUpperCase()];}\n);\n\nexports.lowercase = makeStringBinaryOperator(\n\tfunction(a) {return [(\"\" + a).toLowerCase()];}\n);\n\nexports.sentencecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toSentenceCase(a)];}\n);\n\nexports.titlecase = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.toTitleCase(a)];}\n);\n\nexports.trim = makeStringBinaryOperator(\n\tfunction(a) {return [$tw.utils.trim(a)];}\n);\n\nexports.split = makeStringBinaryOperator(\n\tfunction(a,b) {return (\"\" + a).split(b);}\n);\n\nexports.join = makeStringReducingOperator(\n\tfunction(accumulator,value,operand) {\n\t\tif(accumulator === null) {\n\t\t\treturn value;\n\t\t} else {\n\t\t\treturn accumulator + operand + value;\n\t\t}\n\t},null\n);\n\nfunction makeStringBinaryOperator(fnCalc) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tArray.prototype.push.apply(result,fnCalc(title,operator.operand || \"\"));\n\t\t});\n\t\treturn result;\n\t};\n}\n\nfunction makeStringReducingOperator(fnCalc,initialValue) {\n\treturn function(source,operator,options) {\n\t\tvar result = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tresult.push(title);\n\t\t});\n\t\treturn [result.reduce(function(accumulator,currentValue) {\n\t\t\treturn fnCalc(accumulator,currentValue,operator.operand || \"\");\n\t\t},initialValue) || \"\"];\n\t};\n}\n\nexports.splitregexp = function(source,operator,options) {\n\tvar result = [],\n\t\tsuffix = operator.suffix || \"\",\n\t\tflags = (suffix.indexOf(\"m\") !== -1 ? \"m\" : \"\") + (suffix.indexOf(\"i\") !== -1 ? \"i\" : \"\"),\n\t\tregExp;\n\ttry {\n\t\tregExp = new RegExp(operator.operand || \"\",flags);\t\t\n\t} catch(ex) {\n\t\treturn [\"RegExp error: \" + ex];\n\t}\n\tsource(function(tiddler,title) {\n\t\tArray.prototype.push.apply(result,title.split(regExp));\n\t});\t\t\n\treturn result;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subfilter.js": {
"title": "$:/core/modules/filters/subfilter.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subfilter.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning its operand evaluated as a filter\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subfilter = function(source,operator,options) {\n\tvar list = options.wiki.filterTiddlers(operator.operand,options.widget,source);\n\tif(operator.prefix === \"!\") {\n\t\tvar results = [];\n\t\tsource(function(tiddler,title) {\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t\treturn results;\n\t} else {\n\t\treturn list;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/subtiddlerfields.js": {
"title": "$:/core/modules/filters/subtiddlerfields.js",
"text": "/*\\\ntitle: $:/core/modules/filters/subtiddlerfields.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the fields on the selected subtiddlers of the plugin named in the operand\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.subtiddlerfields = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tvar subtiddler = options.wiki.getSubTiddler(operator.operand,title);\n\t\tif(subtiddler) {\n\t\t\tfor(var fieldName in subtiddler.fields) {\n\t\t\t\t$tw.utils.pushTop(results,fieldName);\n\t\t\t}\n\t\t}\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/suffix.js": {
"title": "$:/core/modules/filters/suffix.js",
"text": "/*\\\ntitle: $:/core/modules/filters/suffix.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking if a title ends with a suffix\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.suffix = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(title.substr(-operator.operand.length) === operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tag.js": {
"title": "$:/core/modules/filters/tag.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tag.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for checking for the presence of a tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tag = function(source,operator,options) {\n\tvar results = [],indexedResults;\n\tif((operator.suffix || \"\").toLowerCase() === \"strict\" && !operator.operand) {\n\t\t// New semantics:\n\t\t// Always return copy of input if operator.operand is missing\n\t\tsource(function(tiddler,title) {\n\t\t\tresults.push(title);\n\t\t});\n\t} else {\n\t\t// Old semantics:\n\t\tvar tiddlers;\n\t\tif(operator.prefix === \"!\") {\n\t\t\t// Returns a copy of the input if operator.operand is missing\n\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\tsource(function(tiddler,title) {\n\t\t\t\tif(tiddlers.indexOf(title) === -1) {\n\t\t\t\t\tresults.push(title);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// Returns empty results if operator.operand is missing\n\t\t\tif(source.byTag) {\n\t\t\t\tindexedResults = source.byTag(operator.operand);\n\t\t\t\tif(indexedResults) {\n\t\t\t\t\treturn indexedResults;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\ttiddlers = options.wiki.getTiddlersWithTag(operator.operand);\n\t\t\t\tsource(function(tiddler,title) {\n\t\t\t\t\tif(tiddlers.indexOf(title) !== -1) {\n\t\t\t\t\t\tresults.push(title);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tresults = options.wiki.sortByList(results,operator.operand);\n\t\t\t}\n\t\t}\t\t\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tagging.js": {
"title": "$:/core/modules/filters/tagging.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tagging.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all tiddlers that are tagged with the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tagging = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\t$tw.utils.pushTop(results,options.wiki.getTiddlersWithTag(title));\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/tags.js": {
"title": "$:/core/modules/filters/tags.js",
"text": "/*\\\ntitle: $:/core/modules/filters/tags.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the tags of the selected tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.tags = function(source,operator,options) {\n\tvar tags = {};\n\tsource(function(tiddler,title) {\n\t\tvar t, length;\n\t\tif(tiddler && tiddler.fields.tags) {\n\t\t\tfor(t=0, length=tiddler.fields.tags.length; t<length; t++) {\n\t\t\t\ttags[tiddler.fields.tags[t]] = true;\n\t\t\t}\n\t\t}\n\t});\n\treturn Object.keys(tags);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/then.js": {
"title": "$:/core/modules/filters/then.js",
"text": "/*\\\ntitle: $:/core/modules/filters/then.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for replacing any titles with a constant\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.then = function(source,operator,options) {\n\tvar results = [];\n\tsource(function(tiddler,title) {\n\t\tresults.push(operator.operand);\n\t});\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/title.js": {
"title": "$:/core/modules/filters/title.js",
"text": "/*\\\ntitle: $:/core/modules/filters/title.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for comparing title fields for equality\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.title = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && tiddler.fields.title !== operator.operand) {\n\t\t\t\tresults.push(title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tresults.push(operator.operand);\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/untagged.js": {
"title": "$:/core/modules/filters/untagged.js",
"text": "/*\\\ntitle: $:/core/modules/filters/untagged.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the selected tiddlers that are untagged\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.untagged = function(source,operator,options) {\n\tvar results = [];\n\tif(operator.prefix === \"!\") {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(tiddler && $tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length > 0) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tsource(function(tiddler,title) {\n\t\t\tif(!tiddler || !tiddler.hasField(\"tags\") || ($tw.utils.isArray(tiddler.fields.tags) && tiddler.fields.tags.length === 0)) {\n\t\t\t\t$tw.utils.pushTop(results,title);\n\t\t\t}\n\t\t});\n\t}\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/variables.js": {
"title": "$:/core/modules/filters/variables.js",
"text": "/*\\\ntitle: $:/core/modules/filters/variables.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the active variables\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.variables = function(source,operator,options) {\n\tvar names = [];\n\tfor(var variable in options.widget.variables) {\n\t\tnames.push(variable);\n\t}\n\treturn names.sort();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/wikiparserrules.js": {
"title": "$:/core/modules/filters/wikiparserrules.js",
"text": "/*\\\ntitle: $:/core/modules/filters/wikiparserrules.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator for returning the names of the wiki parser rules in this wiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports.wikiparserrules = function(source,operator,options) {\n\tvar results = [],\n\t\toperand = operator.operand;\n\t$tw.utils.each($tw.modules.types.wikirule,function(mod) {\n\t\tvar exp = mod.exports;\n\t\tif(!operand || exp.types[operand]) {\n\t\t\tresults.push(exp.name);\n\t\t}\n\t});\n\tresults.sort();\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters/x-listops.js": {
"title": "$:/core/modules/filters/x-listops.js",
"text": "/*\\\ntitle: $:/core/modules/filters/x-listops.js\ntype: application/javascript\nmodule-type: filteroperator\n\nExtended filter operators to manipulate the current list.\n\n\\*/\n(function () {\n\n /*jslint node: true, browser: true */\n /*global $tw: false */\n \"use strict\";\n\n /*\n Fetch titles from the current list\n */\n var prepare_results = function (source) {\n var results = [];\n source(function (tiddler, title) {\n results.push(title);\n });\n return results;\n };\n\n /*\n Moves a number of items from the tail of the current list before the item named in the operand\n */\n exports.putbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list after the item named in the operand\n */\n exports.putafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -1) :\n results.slice(0, index + 1).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Replaces the item named in the operand with a number of items from the tail of the current list\n */\n exports.replace = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1);\n return (index === -1) ?\n results.slice(0, -count) :\n results.slice(0, index).concat(results.slice(-count)).concat(results.slice(index + 1, -count));\n };\n\n /*\n Moves a number of items from the tail of the current list to the head of the list\n */\n exports.putfirst = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(-count).concat(results.slice(0, -count));\n };\n\n /*\n Moves a number of items from the head of the current list to the tail of the list\n */\n exports.putlast = function (source, operator) {\n var results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,1);\n return results.slice(count).concat(results.slice(0, count));\n };\n\n /*\n Moves the item named in the operand a number of places forward or backward in the list\n */\n exports.move = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand),\n count = $tw.utils.getInt(operator.suffix,1),\n marker = results.splice(index, 1),\n offset = (index + count) > 0 ? index + count : 0;\n return results.slice(0, offset).concat(marker).concat(results.slice(offset));\n };\n\n /*\n Returns the items from the current list that are after the item named in the operand\n */\n exports.allafter = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(index) :\n results.slice(index + 1);\n };\n\n /*\n Returns the items from the current list that are before the item named in the operand\n */\n exports.allbefore = function (source, operator) {\n var results = prepare_results(source),\n index = results.indexOf(operator.operand);\n return (index === -1) ? [] :\n (operator.suffix) ? results.slice(0, index + 1) :\n results.slice(0, index);\n };\n\n /*\n Appends the items listed in the operand array to the tail of the current list\n */\n exports.append = function (source, operator) {\n var append = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || append.length;\n return (append.length === 0) ? results :\n (operator.prefix) ? results.concat(append.slice(-count)) :\n results.concat(append.slice(0, count));\n };\n\n /*\n Prepends the items listed in the operand array to the head of the current list\n */\n exports.prepend = function (source, operator) {\n var prepend = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = $tw.utils.getInt(operator.suffix,prepend.length);\n return (prepend.length === 0) ? results :\n (operator.prefix) ? prepend.slice(-count).concat(results) :\n prepend.slice(0, count).concat(results);\n };\n\n /*\n Returns all items from the current list except the items listed in the operand array\n */\n exports.remove = function (source, operator) {\n var array = $tw.utils.parseStringArray(operator.operand, \"true\"),\n results = prepare_results(source),\n count = parseInt(operator.suffix) || array.length,\n p,\n len,\n index;\n len = array.length - 1;\n for (p = 0; p < count; ++p) {\n if (operator.prefix) {\n index = results.indexOf(array[len - p]);\n } else {\n index = results.indexOf(array[p]);\n }\n if (index !== -1) {\n results.splice(index, 1);\n }\n }\n return results;\n };\n\n /*\n Returns all items from the current list sorted in the order of the items in the operand array\n */\n exports.sortby = function (source, operator) {\n var results = prepare_results(source);\n if (!results || results.length < 2) {\n return results;\n }\n var lookup = $tw.utils.parseStringArray(operator.operand, \"true\");\n results.sort(function (a, b) {\n return lookup.indexOf(a) - lookup.indexOf(b);\n });\n return results;\n };\n\n /*\n Removes all duplicate items from the current list\n */\n exports.unique = function (source, operator) {\n var results = prepare_results(source);\n var set = results.reduce(function (a, b) {\n if (a.indexOf(b) < 0) {\n a.push(b);\n }\n return a;\n }, []);\n return set;\n };\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/core/modules/filters.js": {
"title": "$:/core/modules/filters.js",
"text": "/*\\\ntitle: $:/core/modules/filters.js\ntype: application/javascript\nmodule-type: wikimethod\n\nAdds tiddler filtering methods to the $tw.Wiki object.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParses an operation (i.e. a run) within a filter string\n\toperators: Array of array of operator nodes into which results should be inserted\n\tfilterString: filter string\n\tp: start position within the string\nReturns the new start position, after the parsed operation\n*/\nfunction parseFilterOperation(operators,filterString,p) {\n\tvar nextBracketPos, operator;\n\t// Skip the starting square bracket\n\tif(filterString.charAt(p++) !== \"[\") {\n\t\tthrow \"Missing [ in filter expression\";\n\t}\n\t// Process each operator in turn\n\tdo {\n\t\toperator = {};\n\t\t// Check for an operator prefix\n\t\tif(filterString.charAt(p) === \"!\") {\n\t\t\toperator.prefix = filterString.charAt(p++);\n\t\t}\n\t\t// Get the operator name\n\t\tnextBracketPos = filterString.substring(p).search(/[\\[\\{<\\/]/);\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing [ in filter expression\";\n\t\t}\n\t\tnextBracketPos += p;\n\t\tvar bracket = filterString.charAt(nextBracketPos);\n\t\toperator.operator = filterString.substring(p,nextBracketPos);\n\t\t// Any suffix?\n\t\tvar colon = operator.operator.indexOf(':');\n\t\tif(colon > -1) {\n\t\t\t// The raw suffix for older filters\n\t\t\toperator.suffix = operator.operator.substring(colon + 1);\n\t\t\toperator.operator = operator.operator.substring(0,colon) || \"field\";\n\t\t\t// The processed suffix for newer filters\n\t\t\toperator.suffixes = [];\n\t\t\t$tw.utils.each(operator.suffix.split(\":\"),function(subsuffix) {\n\t\t\t\toperator.suffixes.push([]);\n\t\t\t\t$tw.utils.each(subsuffix.split(\",\"),function(entry) {\n\t\t\t\t\tentry = $tw.utils.trim(entry);\n\t\t\t\t\tif(entry) {\n\t\t\t\t\t\toperator.suffixes[operator.suffixes.length - 1].push(entry); \n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t});\n\t\t}\n\t\t// Empty operator means: title\n\t\telse if(operator.operator === \"\") {\n\t\t\toperator.operator = \"title\";\n\t\t}\n\n\t\tp = nextBracketPos + 1;\n\t\tswitch (bracket) {\n\t\t\tcase \"{\": // Curly brackets\n\t\t\t\toperator.indirect = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\"}\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"[\": // Square brackets\n\t\t\t\tnextBracketPos = filterString.indexOf(\"]\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"<\": // Angle brackets\n\t\t\t\toperator.variable = true;\n\t\t\t\tnextBracketPos = filterString.indexOf(\">\",p);\n\t\t\t\tbreak;\n\t\t\tcase \"/\": // regexp brackets\n\t\t\t\tvar rex = /^((?:[^\\\\\\/]*|\\\\.)*)\\/(?:\\(([mygi]+)\\))?/g,\n\t\t\t\t\trexMatch = rex.exec(filterString.substring(p));\n\t\t\t\tif(rexMatch) {\n\t\t\t\t\toperator.regexp = new RegExp(rexMatch[1], rexMatch[2]);\n// DEPRECATION WARNING\nconsole.log(\"WARNING: Filter\",operator.operator,\"has a deprecated regexp operand\",operator.regexp);\n\t\t\t\t\tnextBracketPos = p + rex.lastIndex - 1;\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tthrow \"Unterminated regular expression in filter expression\";\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\n\t\tif(nextBracketPos === -1) {\n\t\t\tthrow \"Missing closing bracket in filter expression\";\n\t\t}\n\t\tif(!operator.regexp) {\n\t\t\toperator.operand = filterString.substring(p,nextBracketPos);\n\t\t}\n\t\tp = nextBracketPos + 1;\n\n\t\t// Push this operator\n\t\toperators.push(operator);\n\t} while(filterString.charAt(p) !== \"]\");\n\t// Skip the ending square bracket\n\tif(filterString.charAt(p++) !== \"]\") {\n\t\tthrow \"Missing ] in filter expression\";\n\t}\n\t// Return the parsing position\n\treturn p;\n}\n\n/*\nParse a filter string\n*/\nexports.parseFilter = function(filterString) {\n\tfilterString = filterString || \"\";\n\tvar results = [], // Array of arrays of operator nodes {operator:,operand:}\n\t\tp = 0, // Current position in the filter string\n\t\tmatch;\n\tvar whitespaceRegExp = /(\\s+)/mg,\n\t\toperandRegExp = /((?:\\+|\\-|~|=)?)(?:(\\[)|(?:\"([^\"]*)\")|(?:'([^']*)')|([^\\s\\[\\]]+))/mg;\n\twhile(p < filterString.length) {\n\t\t// Skip any whitespace\n\t\twhitespaceRegExp.lastIndex = p;\n\t\tmatch = whitespaceRegExp.exec(filterString);\n\t\tif(match && match.index === p) {\n\t\t\tp = p + match[0].length;\n\t\t}\n\t\t// Match the start of the operation\n\t\tif(p < filterString.length) {\n\t\t\toperandRegExp.lastIndex = p;\n\t\t\tmatch = operandRegExp.exec(filterString);\n\t\t\tif(!match || match.index !== p) {\n\t\t\t\tthrow $tw.language.getString(\"Error/FilterSyntax\");\n\t\t\t}\n\t\t\tvar operation = {\n\t\t\t\tprefix: \"\",\n\t\t\t\toperators: []\n\t\t\t};\n\t\t\tif(match[1]) {\n\t\t\t\toperation.prefix = match[1];\n\t\t\t\tp++;\n\t\t\t}\n\t\t\tif(match[2]) { // Opening square bracket\n\t\t\t\tp = parseFilterOperation(operation.operators,filterString,p);\n\t\t\t} else {\n\t\t\t\tp = match.index + match[0].length;\n\t\t\t}\n\t\t\tif(match[3] || match[4] || match[5]) { // Double quoted string, single quoted string or unquoted title\n\t\t\t\toperation.operators.push(\n\t\t\t\t\t{operator: \"title\", operand: match[3] || match[4] || match[5]}\n\t\t\t\t);\n\t\t\t}\n\t\t\tresults.push(operation);\n\t\t}\n\t}\n\treturn results;\n};\n\nexports.getFilterOperators = function() {\n\tif(!this.filterOperators) {\n\t\t$tw.Wiki.prototype.filterOperators = {};\n\t\t$tw.modules.applyMethods(\"filteroperator\",this.filterOperators);\n\t}\n\treturn this.filterOperators;\n};\n\nexports.filterTiddlers = function(filterString,widget,source) {\n\tvar fn = this.compileFilter(filterString);\n\treturn fn.call(this,source,widget);\n};\n\n/*\nCompile a filter into a function with the signature fn(source,widget) where:\nsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\nwidget: an optional widget node for retrieving the current tiddler etc.\n*/\nexports.compileFilter = function(filterString) {\n\tvar filterParseTree;\n\ttry {\n\t\tfilterParseTree = this.parseFilter(filterString);\n\t} catch(e) {\n\t\treturn function(source,widget) {\n\t\t\treturn [$tw.language.getString(\"Error/Filter\") + \": \" + e];\n\t\t};\n\t}\n\t// Get the hashmap of filter operator functions\n\tvar filterOperators = this.getFilterOperators();\n\t// Assemble array of functions, one for each operation\n\tvar operationFunctions = [];\n\t// Step through the operations\n\tvar self = this;\n\t$tw.utils.each(filterParseTree,function(operation) {\n\t\t// Create a function for the chain of operators in the operation\n\t\tvar operationSubFunction = function(source,widget) {\n\t\t\tvar accumulator = source,\n\t\t\t\tresults = [],\n\t\t\t\tcurrTiddlerTitle = widget && widget.getVariable(\"currentTiddler\");\n\t\t\t$tw.utils.each(operation.operators,function(operator) {\n\t\t\t\tvar operand = operator.operand,\n\t\t\t\t\toperatorFunction;\n\t\t\t\tif(!operator.operator) {\n\t\t\t\t\toperatorFunction = filterOperators.title;\n\t\t\t\t} else if(!filterOperators[operator.operator]) {\n\t\t\t\t\toperatorFunction = filterOperators.field;\n\t\t\t\t} else {\n\t\t\t\t\toperatorFunction = filterOperators[operator.operator];\n\t\t\t\t}\n\t\t\t\tif(operator.indirect) {\n\t\t\t\t\toperand = self.getTextReference(operator.operand,\"\",currTiddlerTitle);\n\t\t\t\t}\n\t\t\t\tif(operator.variable) {\n\t\t\t\t\toperand = widget.getVariable(operator.operand,{defaultValue: \"\"});\n\t\t\t\t}\n\t\t\t\t// Invoke the appropriate filteroperator module\n\t\t\t\tresults = operatorFunction(accumulator,{\n\t\t\t\t\t\t\toperator: operator.operator,\n\t\t\t\t\t\t\toperand: operand,\n\t\t\t\t\t\t\tprefix: operator.prefix,\n\t\t\t\t\t\t\tsuffix: operator.suffix,\n\t\t\t\t\t\t\tsuffixes: operator.suffixes,\n\t\t\t\t\t\t\tregexp: operator.regexp\n\t\t\t\t\t\t},{\n\t\t\t\t\t\t\twiki: self,\n\t\t\t\t\t\t\twidget: widget\n\t\t\t\t\t\t});\n\t\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\t\taccumulator = self.makeTiddlerIterator(results);\n\t\t\t\t} else {\n\t\t\t\t\taccumulator = results;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif($tw.utils.isArray(results)) {\n\t\t\t\treturn results;\n\t\t\t} else {\n\t\t\t\tvar resultArray = [];\n\t\t\t\tresults(function(tiddler,title) {\n\t\t\t\t\tresultArray.push(title);\n\t\t\t\t});\n\t\t\t\treturn resultArray;\n\t\t\t}\n\t\t};\n\t\t// Wrap the operator functions in a wrapper function that depends on the prefix\n\t\toperationFunctions.push((function() {\n\t\t\tswitch(operation.prefix || \"\") {\n\t\t\t\tcase \"\": // No prefix means that the operation is unioned into the result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"=\": // The results of the operation are pushed into the result without deduplication\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tArray.prototype.push.apply(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"-\": // The results of this operation are removed from the main result\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t$tw.utils.removeArrayEntries(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"+\": // This operation is applied to the main results so far\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\t// This replaces all the elements of the array, but keeps the actual array so that references to it are preserved\n\t\t\t\t\t\tsource = self.makeTiddlerIterator(results);\n\t\t\t\t\t\tresults.splice(0,results.length);\n\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t};\n\t\t\t\tcase \"~\": // This operation is unioned into the result only if the main result so far is empty\n\t\t\t\t\treturn function(results,source,widget) {\n\t\t\t\t\t\tif(results.length === 0) {\n\t\t\t\t\t\t\t// Main result so far is empty\n\t\t\t\t\t\t\t$tw.utils.pushTop(results,operationSubFunction(source,widget));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t}\n\t\t})());\n\t});\n\t// Return a function that applies the operations to a source iterator of tiddler titles\n\treturn $tw.perf.measure(\"filter: \" + filterString,function filterFunction(source,widget) {\n\t\tif(!source) {\n\t\t\tsource = self.each;\n\t\t} else if(typeof source === \"object\") { // Array or hashmap\n\t\t\tsource = self.makeTiddlerIterator(source);\n\t\t}\n\t\tvar results = [];\n\t\t$tw.utils.each(operationFunctions,function(operationFunction) {\n\t\t\toperationFunction(results,source,widget);\n\t\t});\n\t\treturn results;\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/indexers/backlinks-indexer.js": {
"title": "$:/core/modules/indexers/backlinks-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/backlinks-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers' backlinks\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\n\nfunction BacklinksIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nBacklinksIndexer.prototype.init = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype.rebuild = function() {\n\tthis.index = null;\n}\n\nBacklinksIndexer.prototype._getLinks = function(tiddler) {\n\tvar parser = this.wiki.parseText(tiddler.fields.type, tiddler.fields.text, {});\n\tif(parser) {\n\t\treturn this.wiki.extractLinks(parser.tree);\n\t}\n\treturn [];\n}\n\nBacklinksIndexer.prototype.update = function(updateDescriptor) {\n\tif(!this.index) {\n\t\treturn;\n\t}\n\tvar newLinks = [],\n\t oldLinks = [],\n\t self = this;\n\tif(updateDescriptor.old.exists) {\n\t\toldLinks = this._getLinks(updateDescriptor.old.tiddler);\n\t}\n\tif(updateDescriptor.new.exists) {\n\t\tnewLinks = this._getLinks(updateDescriptor.new.tiddler);\n\t}\n\n\t$tw.utils.each(oldLinks,function(link) {\n\t\tif(self.index[link]) {\n\t\t\tdelete self.index[link][updateDescriptor.old.tiddler.fields.title];\n\t\t}\n\t});\n\t$tw.utils.each(newLinks,function(link) {\n\t\tif(!self.index[link]) {\n\t\t\tself.index[link] = Object.create(null);\n\t\t}\n\t\tself.index[link][updateDescriptor.new.tiddler.fields.title] = true;\n\t});\n}\n\nBacklinksIndexer.prototype.lookup = function(title) {\n\tif(!this.index) {\n\t\tthis.index = Object.create(null);\n\t\tvar self = this;\n\t\tthis.wiki.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self._getLinks(tiddler);\n\t\t\t$tw.utils.each(links, function(link) {\n\t\t\t\tif(!self.index[link]) {\n\t\t\t\t\tself.index[link] = Object.create(null);\n\t\t\t\t}\n\t\t\t\tself.index[link][title] = true;\n\t\t\t});\n\t\t});\n\t}\n\tif(this.index[title]) {\n\t\treturn Object.keys(this.index[title]);\n\t} else {\n\t\treturn [];\n\t}\n}\n\nexports.BacklinksIndexer = BacklinksIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/field-indexer.js": {
"title": "$:/core/modules/indexers/field-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/field-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each field value\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nvar DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH = 128;\n\nfunction FieldIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nFieldIndexer.prototype.init = function() {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = DEFAULT_MAXIMUM_INDEXED_VALUE_LENGTH;\n\tthis.addIndexMethods();\n}\n\n// Provided for testing\nFieldIndexer.prototype.setMaxIndexedValueLength = function(length) {\n\tthis.index = null;\n\tthis.maxIndexedValueLength = length;\n};\n\nFieldIndexer.prototype.addIndexMethods = function() {\n\tvar self = this;\n\tthis.wiki.each.byField = function(name,value) {\n\t\tvar titles = self.wiki.allTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachShadow.byField = function(name,value) {\n\t\tvar titles = self.wiki.allShadowTitles(),\n\t\t\tlookup = self.lookup(name,value);\n\t\treturn lookup && lookup.filter(function(title) {\n\t\t\treturn titles.indexOf(title) !== -1;\n\t\t});\n\t};\n\tthis.wiki.eachTiddlerPlusShadows.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n\tthis.wiki.eachShadowPlusTiddlers.byField = function(name,value) {\n\t\tvar lookup = self.lookup(name,value);\n\t\treturn lookup ? lookup.slice(0) : null;\n\t};\n};\n\n/*\nTear down and then rebuild the index as if all tiddlers have changed\n*/\nFieldIndexer.prototype.rebuild = function() {\n\t// Invalidate the index so that it will be rebuilt when it is next used\n\tthis.index = null;\n};\n\n/*\nBuild the index for a particular field\n*/\nFieldIndexer.prototype.buildIndexForField = function(name) {\n\tvar self = this;\n\t// Hashmap by field name of hashmap by field value of array of tiddler titles\n\tthis.index = this.index || Object.create(null);\n\tthis.index[name] = Object.create(null);\n\tvar baseIndex = this.index[name];\n\t// Update the index for each tiddler\n\tthis.wiki.eachTiddlerPlusShadows(function(tiddler,title) {\n\t\tif(name in tiddler.fields) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\t// Skip any values above the maximum length\n\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\tbaseIndex[value] = baseIndex[value] || [];\n\t\t\t\tbaseIndex[value].push(title);\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nUpdate the index in the light of a tiddler value changing; note that the title must be identical. (Renames are handled as a separate delete and create)\nupdateDescriptor: {old: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>},new: {tiddler: <tiddler>, shadow: <boolean>, exists: <boolean>}}\n*/\nFieldIndexer.prototype.update = function(updateDescriptor) {\n\tvar self = this;\n\t// Don't do anything if the index hasn't been built yet\n\tif(this.index === null) {\n\t\treturn;\n\t}\n\t// Remove the old tiddler from the index\n\tif(updateDescriptor.old.tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor.old.tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor.old.tiddler.getFieldString(name),\n\t\t\t\t\ttiddlerList = indexEntry[value];\n\t\t\t\tif(tiddlerList) {\n\t\t\t\t\tvar index = tiddlerList.indexOf(updateDescriptor.old.tiddler.fields.title);\n\t\t\t\t\tif(index !== -1) {\n\t\t\t\t\t\ttiddlerList.splice(index,1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// Add the new tiddler to the index\n\tif(updateDescriptor[\"new\"].tiddler) {\n\t\t$tw.utils.each(this.index,function(indexEntry,name) {\n\t\t\tif(name in updateDescriptor[\"new\"].tiddler.fields) {\n\t\t\t\tvar value = updateDescriptor[\"new\"].tiddler.getFieldString(name);\n\t\t\t\tif(value.length < self.maxIndexedValueLength) {\n\t\t\t\t\tindexEntry[value] = indexEntry[value] || [];\n\t\t\t\t\tindexEntry[value].push(updateDescriptor[\"new\"].tiddler.fields.title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n// Lookup the given field returning a list of tiddler titles\nFieldIndexer.prototype.lookup = function(name,value) {\n\t// Fail the lookup if the value is too long\n\tif(value.length >= this.maxIndexedValueLength) {\n\t\treturn null;\n\t}\n\t// Update the index if it has yet to be built\n\tif(this.index === null || !this.index[name]) {\n\t\tthis.buildIndexForField(name);\n\t}\n\treturn this.index[name][value] || [];\n};\n\nexports.FieldIndexer = FieldIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/indexers/tag-indexer.js": {
"title": "$:/core/modules/indexers/tag-indexer.js",
"text": "/*\\\ntitle: $:/core/modules/indexers/tag-indexer.js\ntype: application/javascript\nmodule-type: indexer\n\nIndexes the tiddlers with each tag\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global modules: false */\n\"use strict\";\n\nfunction TagIndexer(wiki) {\n\tthis.wiki = wiki;\n}\n\nTagIndexer.prototype.init = function() {\n\tthis.subIndexers = [\n\t\tnew TagSubIndexer(this,\"each\"),\n\t\tnew TagSubIndexer(this,\"eachShadow\"),\n\t\tnew TagSubIndexer(this,\"eachTiddlerPlusShadows\"),\n\t\tnew TagSubIndexer(this,\"eachShadowPlusTiddlers\")\n\t];\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.addIndexMethod();\n\t});\n};\n\nTagIndexer.prototype.rebuild = function() {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.rebuild();\n\t});\n};\n\nTagIndexer.prototype.update = function(updateDescriptor) {\n\t$tw.utils.each(this.subIndexers,function(subIndexer) {\n\t\tsubIndexer.update(updateDescriptor);\n\t});\n};\n\nfunction TagSubIndexer(indexer,iteratorMethod) {\n\tthis.indexer = indexer;\n\tthis.iteratorMethod = iteratorMethod;\n\tthis.index = null; // Hashmap of tag title to {isSorted: bool, titles: [array]} or null if not yet initialised\n}\n\nTagSubIndexer.prototype.addIndexMethod = function() {\n\tvar self = this;\n\tthis.indexer.wiki[this.iteratorMethod].byTag = function(tag) {\n\t\treturn self.lookup(tag).slice(0);\n\t};\n};\n\nTagSubIndexer.prototype.rebuild = function() {\n\tvar self = this;\n\t// Hashmap by tag of array of {isSorted:, titles:[]}\n\tthis.index = Object.create(null);\n\t// Add all the tags\n\tthis.indexer.wiki[this.iteratorMethod](function(tiddler,title) {\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\tif(!self.index[tag]) {\n\t\t\t\tself.index[tag] = {isSorted: false, titles: [title]};\n\t\t\t} else {\n\t\t\t\tself.index[tag].titles.push(title);\n\t\t\t}\n\t\t});\t\t\n\t});\n};\n\nTagSubIndexer.prototype.update = function(updateDescriptor) {\n\tthis.index = null;\n};\n\nTagSubIndexer.prototype.lookup = function(tag) {\n\t// Update the index if it has yet to be built\n\tif(this.index === null) {\n\t\tthis.rebuild();\n\t}\n\tvar indexRecord = this.index[tag];\n\tif(indexRecord) {\n\t\tif(!indexRecord.isSorted) {\n\t\t\tif(this.indexer.wiki.sortByList) {\n\t\t\t\tindexRecord.titles = this.indexer.wiki.sortByList(indexRecord.titles,tag);\n\t\t\t}\t\t\t\n\t\t\tindexRecord.isSorted = true;\n\t\t}\n\t\treturn indexRecord.titles;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n\nexports.TagIndexer = TagIndexer;\n\n})();\n",
"type": "application/javascript",
"module-type": "indexer"
},
"$:/core/modules/info/platform.js": {
"title": "$:/core/modules/info/platform.js",
"text": "/*\\\ntitle: $:/core/modules/info/platform.js\ntype: application/javascript\nmodule-type: info\n\nInitialise basic platform $:/info/ tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.getInfoTiddlerFields = function() {\n\tvar mapBoolean = function(value) {return value ? \"yes\" : \"no\";},\n\t\tinfoTiddlerFields = [];\n\t// Basics\n\tinfoTiddlerFields.push({title: \"$:/info/browser\", text: mapBoolean(!!$tw.browser)});\n\tinfoTiddlerFields.push({title: \"$:/info/node\", text: mapBoolean(!!$tw.node)});\n\tif($tw.browser) {\n\t\t// Document location\n\t\tvar setLocationProperty = function(name,value) {\n\t\t\t\tinfoTiddlerFields.push({title: \"$:/info/url/\" + name, text: value});\t\t\t\n\t\t\t},\n\t\t\tlocation = document.location;\n\t\tsetLocationProperty(\"full\", (location.toString()).split(\"#\")[0]);\n\t\tsetLocationProperty(\"host\", location.host);\n\t\tsetLocationProperty(\"hostname\", location.hostname);\n\t\tsetLocationProperty(\"protocol\", location.protocol);\n\t\tsetLocationProperty(\"port\", location.port);\n\t\tsetLocationProperty(\"pathname\", location.pathname);\n\t\tsetLocationProperty(\"search\", location.search);\n\t\tsetLocationProperty(\"origin\", location.origin);\n\t\t// Screen size\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/width\", text: window.screen.width.toString()});\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/screen/height\", text: window.screen.height.toString()});\n\t\t// Language\n\t\tinfoTiddlerFields.push({title: \"$:/info/browser/language\", text: navigator.language || \"\"});\n\t}\n\treturn infoTiddlerFields;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "info"
},
"$:/core/modules/keyboard.js": {
"title": "$:/core/modules/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/keyboard.js\ntype: application/javascript\nmodule-type: global\n\nKeyboard handling utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar namedKeys = {\n\t\"cancel\": 3,\n\t\"help\": 6,\n\t\"backspace\": 8,\n\t\"tab\": 9,\n\t\"clear\": 12,\n\t\"return\": 13,\n\t\"enter\": 13,\n\t\"pause\": 19,\n\t\"escape\": 27,\n\t\"space\": 32,\n\t\"page_up\": 33,\n\t\"page_down\": 34,\n\t\"end\": 35,\n\t\"home\": 36,\n\t\"left\": 37,\n\t\"up\": 38,\n\t\"right\": 39,\n\t\"down\": 40,\n\t\"printscreen\": 44,\n\t\"insert\": 45,\n\t\"delete\": 46,\n\t\"0\": 48,\n\t\"1\": 49,\n\t\"2\": 50,\n\t\"3\": 51,\n\t\"4\": 52,\n\t\"5\": 53,\n\t\"6\": 54,\n\t\"7\": 55,\n\t\"8\": 56,\n\t\"9\": 57,\n\t\"firefoxsemicolon\": 59,\n\t\"firefoxequals\": 61,\n\t\"a\": 65,\n\t\"b\": 66,\n\t\"c\": 67,\n\t\"d\": 68,\n\t\"e\": 69,\n\t\"f\": 70,\n\t\"g\": 71,\n\t\"h\": 72,\n\t\"i\": 73,\n\t\"j\": 74,\n\t\"k\": 75,\n\t\"l\": 76,\n\t\"m\": 77,\n\t\"n\": 78,\n\t\"o\": 79,\n\t\"p\": 80,\n\t\"q\": 81,\n\t\"r\": 82,\n\t\"s\": 83,\n\t\"t\": 84,\n\t\"u\": 85,\n\t\"v\": 86,\n\t\"w\": 87,\n\t\"x\": 88,\n\t\"y\": 89,\n\t\"z\": 90,\n\t\"numpad0\": 96,\n\t\"numpad1\": 97,\n\t\"numpad2\": 98,\n\t\"numpad3\": 99,\n\t\"numpad4\": 100,\n\t\"numpad5\": 101,\n\t\"numpad6\": 102,\n\t\"numpad7\": 103,\n\t\"numpad8\": 104,\n\t\"numpad9\": 105,\n\t\"multiply\": 106,\n\t\"add\": 107,\n\t\"separator\": 108,\n\t\"subtract\": 109,\n\t\"decimal\": 110,\n\t\"divide\": 111,\n\t\"f1\": 112,\n\t\"f2\": 113,\n\t\"f3\": 114,\n\t\"f4\": 115,\n\t\"f5\": 116,\n\t\"f6\": 117,\n\t\"f7\": 118,\n\t\"f8\": 119,\n\t\"f9\": 120,\n\t\"f10\": 121,\n\t\"f11\": 122,\n\t\"f12\": 123,\n\t\"f13\": 124,\n\t\"f14\": 125,\n\t\"f15\": 126,\n\t\"f16\": 127,\n\t\"f17\": 128,\n\t\"f18\": 129,\n\t\"f19\": 130,\n\t\"f20\": 131,\n\t\"f21\": 132,\n\t\"f22\": 133,\n\t\"f23\": 134,\n\t\"f24\": 135,\n\t\"firefoxminus\": 173,\n\t\"semicolon\": 186,\n\t\"equals\": 187,\n\t\"comma\": 188,\n\t\"dash\": 189,\n\t\"period\": 190,\n\t\"slash\": 191,\n\t\"backquote\": 192,\n\t\"openbracket\": 219,\n\t\"backslash\": 220,\n\t\"closebracket\": 221,\n\t\"quote\": 222\n};\n\nfunction KeyboardManager(options) {\n\tvar self = this;\n\toptions = options || \"\";\n\t// Save the named key hashmap\n\tthis.namedKeys = namedKeys;\n\t// Create a reverse mapping of code to keyname\n\tthis.keyNames = [];\n\t$tw.utils.each(namedKeys,function(keyCode,name) {\n\t\tself.keyNames[keyCode] = name.substr(0,1).toUpperCase() + name.substr(1);\n\t});\n\t// Save the platform-specific name of the \"meta\" key\n\tthis.metaKeyName = $tw.platform.isMac ? \"cmd-\" : \"win-\";\n\tthis.shortcutKeysList = [], // Stores the shortcut-key descriptors\n\tthis.shortcutActionList = [], // Stores the corresponding action strings\n\tthis.shortcutParsedList = []; // Stores the parsed key descriptors\n\tthis.lookupNames = [\"shortcuts\"];\n\tthis.lookupNames.push($tw.platform.isMac ? \"shortcuts-mac\" : \"shortcuts-not-mac\")\n\tthis.lookupNames.push($tw.platform.isWindows ? \"shortcuts-windows\" : \"shortcuts-not-windows\");\n\tthis.lookupNames.push($tw.platform.isLinux ? \"shortcuts-linux\" : \"shortcuts-not-linux\");\n\tthis.updateShortcutLists(this.getShortcutTiddlerList());\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tself.handleShortcutChanges(changes);\n\t});\n}\n\n/*\nReturn an array of keycodes for the modifier keys ctrl, shift, alt, meta\n*/\nKeyboardManager.prototype.getModifierKeys = function() {\n\treturn [\n\t\t16, // Shift\n\t\t17, // Ctrl\n\t\t18, // Alt\n\t\t20, // CAPS LOCK\n\t\t91, // Meta (left)\n\t\t93, // Meta (right)\n\t\t224 // Meta (Firefox)\n\t]\n};\n\n/*\nParses a key descriptor into the structure:\n{\n\tkeyCode: numeric keycode\n\tshiftKey: boolean\n\taltKey: boolean\n\tctrlKey: boolean\n\tmetaKey: boolean\n}\nKey descriptors have the following format:\n\tctrl+enter\n\tctrl+shift+alt+A\n*/\nKeyboardManager.prototype.parseKeyDescriptor = function(keyDescriptor) {\n\tvar components = keyDescriptor.split(/\\+|\\-/),\n\t\tinfo = {\n\t\t\tkeyCode: 0,\n\t\t\tshiftKey: false,\n\t\t\taltKey: false,\n\t\t\tctrlKey: false,\n\t\t\tmetaKey: false\n\t\t};\n\tfor(var t=0; t<components.length; t++) {\n\t\tvar s = components[t].toLowerCase(),\n\t\t\tc = s.charCodeAt(0);\n\t\t// Look for modifier keys\n\t\tif(s === \"ctrl\") {\n\t\t\tinfo.ctrlKey = true;\n\t\t} else if(s === \"shift\") {\n\t\t\tinfo.shiftKey = true;\n\t\t} else if(s === \"alt\") {\n\t\t\tinfo.altKey = true;\n\t\t} else if(s === \"meta\" || s === \"cmd\" || s === \"win\") {\n\t\t\tinfo.metaKey = true;\n\t\t}\n\t\t// Replace named keys with their code\n\t\tif(this.namedKeys[s]) {\n\t\t\tinfo.keyCode = this.namedKeys[s];\n\t\t}\n\t}\n\tif(info.keyCode) {\n\t\treturn info;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nParse a list of key descriptors into an array of keyInfo objects. The key descriptors can be passed as an array of strings or a space separated string\n*/\nKeyboardManager.prototype.parseKeyDescriptors = function(keyDescriptors,options) {\n\tvar self = this;\n\toptions = options || {};\n\toptions.stack = options.stack || [];\n\tvar wiki = options.wiki || $tw.wiki;\n\tif(typeof keyDescriptors === \"string\" && keyDescriptors === \"\") {\n\t\treturn [];\n\t}\n\tif(!$tw.utils.isArray(keyDescriptors)) {\n\t\tkeyDescriptors = keyDescriptors.split(\" \");\n\t}\n\tvar result = [];\n\t$tw.utils.each(keyDescriptors,function(keyDescriptor) {\n\t\t// Look for a named shortcut\n\t\tif(keyDescriptor.substr(0,2) === \"((\" && keyDescriptor.substr(-2,2) === \"))\") {\n\t\t\tif(options.stack.indexOf(keyDescriptor) === -1) {\n\t\t\t\toptions.stack.push(keyDescriptor);\n\t\t\t\tvar name = keyDescriptor.substring(2,keyDescriptor.length - 2),\n\t\t\t\t\tlookupName = function(configName) {\n\t\t\t\t\t\tvar keyDescriptors = wiki.getTiddlerText(\"$:/config/\" + configName + \"/\" + name);\n\t\t\t\t\t\tif(keyDescriptors) {\n\t\t\t\t\t\t\tresult.push.apply(result,self.parseKeyDescriptors(keyDescriptors,options));\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t$tw.utils.each(self.lookupNames,function(platformDescriptor) {\n\t\t\t\t\tlookupName(platformDescriptor);\n\t\t\t\t});\n\t\t\t}\n\t\t} else {\n\t\t\tresult.push(self.parseKeyDescriptor(keyDescriptor));\n\t\t}\n\t});\n\treturn result;\n};\n\nKeyboardManager.prototype.getPrintableShortcuts = function(keyInfoArray) {\n\tvar self = this,\n\t\tresult = [];\n\t$tw.utils.each(keyInfoArray,function(keyInfo) {\n\t\tif(keyInfo) {\n\t\t\tresult.push((keyInfo.ctrlKey ? \"ctrl-\" : \"\") + \n\t\t\t\t (keyInfo.shiftKey ? \"shift-\" : \"\") + \n\t\t\t\t (keyInfo.altKey ? \"alt-\" : \"\") + \n\t\t\t\t (keyInfo.metaKey ? self.metaKeyName : \"\") + \n\t\t\t\t (self.keyNames[keyInfo.keyCode]));\n\t\t}\n\t});\n\treturn result;\n}\n\nKeyboardManager.prototype.checkKeyDescriptor = function(event,keyInfo) {\n\treturn keyInfo &&\n\t\t\tevent.keyCode === keyInfo.keyCode && \n\t\t\tevent.shiftKey === keyInfo.shiftKey && \n\t\t\tevent.altKey === keyInfo.altKey && \n\t\t\tevent.ctrlKey === keyInfo.ctrlKey && \n\t\t\tevent.metaKey === keyInfo.metaKey;\n};\n\nKeyboardManager.prototype.checkKeyDescriptors = function(event,keyInfoArray) {\n\tfor(var t=0; t<keyInfoArray.length; t++) {\n\t\tif(this.checkKeyDescriptor(event,keyInfoArray[t])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.getShortcutTiddlerList = function() {\n\treturn $tw.wiki.getTiddlersWithTag(\"$:/tags/KeyboardShortcut\");\n};\n\nKeyboardManager.prototype.updateShortcutLists = function(tiddlerList) {\n\tthis.shortcutTiddlers = tiddlerList;\n\tfor(var i=0; i<tiddlerList.length; i++) {\n\t\tvar title = tiddlerList[i],\n\t\t\ttiddlerFields = $tw.wiki.getTiddler(title).fields;\n\t\tthis.shortcutKeysList[i] = tiddlerFields.key !== undefined ? tiddlerFields.key : undefined;\n\t\tthis.shortcutActionList[i] = tiddlerFields.text;\n\t\tthis.shortcutParsedList[i] = this.shortcutKeysList[i] !== undefined ? this.parseKeyDescriptors(this.shortcutKeysList[i]) : undefined;\n\t}\n};\n\nKeyboardManager.prototype.handleKeydownEvent = function(event) {\n\tvar key, action;\n\tfor(var i=0; i<this.shortcutTiddlers.length; i++) {\n\t\tif(this.shortcutParsedList[i] !== undefined && this.checkKeyDescriptors(event,this.shortcutParsedList[i])) {\n\t\t\tkey = this.shortcutParsedList[i];\n\t\t\taction = this.shortcutActionList[i];\n\t\t}\n\t}\n\tif(key !== undefined) {\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\t$tw.rootWidget.invokeActionString(action,$tw.rootWidget);\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nKeyboardManager.prototype.detectNewShortcuts = function(changedTiddlers) {\n\tvar shortcutConfigTiddlers = [],\n\t\thandled = false;\n\t$tw.utils.each(this.lookupNames,function(platformDescriptor) {\n\t\tvar descriptorString = \"$:/config/\" + platformDescriptor + \"/\";\n\t\tObject.keys(changedTiddlers).forEach(function(configTiddler) {\n\t\t\tvar configString = configTiddler.substr(0, configTiddler.lastIndexOf(\"/\") + 1);\n\t\t\tif(configString === descriptorString) {\n\t\t\t\tshortcutConfigTiddlers.push(configTiddler);\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t});\n\t});\n\tif(handled) {\n\t\treturn $tw.utils.hopArray(changedTiddlers,shortcutConfigTiddlers);\n\t} else {\n\t\treturn false;\n\t}\n};\n\nKeyboardManager.prototype.handleShortcutChanges = function(changedTiddlers) {\n\tvar newList = this.getShortcutTiddlerList();\n\tvar hasChanged = $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers) ? true :\n\t\t($tw.utils.hopArray(changedTiddlers,newList) ? true :\n\t\t(this.detectNewShortcuts(changedTiddlers))\n\t);\n\t// Re-cache shortcuts if something changed\n\tif(hasChanged) {\n\t\tthis.updateShortcutLists(newList);\n\t}\n};\n\nexports.KeyboardManager = KeyboardManager;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/language.js": {
"title": "$:/core/modules/language.js",
"text": "/*\\\ntitle: $:/core/modules/language.js\ntype: application/javascript\nmodule-type: global\n\nThe $tw.Language() manages translateable strings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate an instance of the language manager. Options include:\nwiki: wiki from which to retrieve translation tiddlers\n*/\nfunction Language(options) {\n\toptions = options || \"\";\n\tthis.wiki = options.wiki || $tw.wiki;\n}\n\n/*\nReturn a wikified translateable string. The title is automatically prefixed with \"$:/language/\"\nOptions include:\nvariables: optional hashmap of variables to supply to the language wikification\n*/\nLanguage.prototype.getString = function(title,options) {\n\toptions = options || {};\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.renderTiddler(\"text/plain\",title,{variables: options.variables});\n};\n\n/*\nReturn a raw, unwikified translateable string. The title is automatically prefixed with \"$:/language/\"\n*/\nLanguage.prototype.getRawString = function(title) {\n\ttitle = \"$:/language/\" + title;\n\treturn this.wiki.getTiddlerText(title);\n};\n\nexports.Language = Language;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/macros/changecount.js": {
"title": "$:/core/modules/macros/changecount.js",
"text": "/*\\\ntitle: $:/core/modules/macros/changecount.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the changecount for the current tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"changecount\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn this.wiki.getChangeCount(this.getVariable(\"currentTiddler\")) + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/contrastcolour.js": {
"title": "$:/core/modules/macros/contrastcolour.js",
"text": "/*\\\ntitle: $:/core/modules/macros/contrastcolour.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to choose which of two colours has the highest contrast with a base colour\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"contrastcolour\";\n\nexports.params = [\n\t{name: \"target\"},\n\t{name: \"fallbackTarget\"},\n\t{name: \"colourA\"},\n\t{name: \"colourB\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(target,fallbackTarget,colourA,colourB) {\n\tvar rgbTarget = $tw.utils.parseCSSColor(target) || $tw.utils.parseCSSColor(fallbackTarget);\n\tif(!rgbTarget) {\n\t\treturn colourA;\n\t}\n\tvar rgbColourA = $tw.utils.parseCSSColor(colourA),\n\t\trgbColourB = $tw.utils.parseCSSColor(colourB);\n\tif(rgbColourA && !rgbColourB) {\n\t\treturn rgbColourA;\n\t}\n\tif(rgbColourB && !rgbColourA) {\n\t\treturn rgbColourB;\n\t}\n\tif(!rgbColourA && !rgbColourB) {\n\t\t// If neither colour is readable, return a crude inverse of the target\n\t\treturn [255 - rgbTarget[0],255 - rgbTarget[1],255 - rgbTarget[2],rgbTarget[3]];\n\t}\n\t// Colour brightness formula derived from http://www.w3.org/WAI/ER/WD-AERT/#color-contrast\n\tvar brightnessTarget = rgbTarget[0] * 0.299 + rgbTarget[1] * 0.587 + rgbTarget[2] * 0.114,\n\t\tbrightnessA = rgbColourA[0] * 0.299 + rgbColourA[1] * 0.587 + rgbColourA[2] * 0.114,\n\t\tbrightnessB = rgbColourB[0] * 0.299 + rgbColourB[1] * 0.587 + rgbColourB[2] * 0.114;\n\treturn Math.abs(brightnessTarget - brightnessA) > Math.abs(brightnessTarget - brightnessB) ? colourA : colourB;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/csvtiddlers.js": {
"title": "$:/core/modules/macros/csvtiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/csvtiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to CSV\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"csvtiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"format\"},\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,format) {\n\tvar self = this,\n\t\ttiddlers = this.wiki.filterTiddlers(filter),\n\t\ttiddler,\n\t\tfields = [],\n\t\tt,f;\n\t// Collect all the fields\n\tfor(t=0;t<tiddlers.length; t++) {\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\tfor(f in tiddler.fields) {\n\t\t\tif(fields.indexOf(f) === -1) {\n\t\t\t\tfields.push(f);\n\t\t\t}\n\t\t}\n\t}\n\t// Sort the fields and bring the standard ones to the front\n\tfields.sort();\n\t\"title text modified modifier created creator\".split(\" \").reverse().forEach(function(value,index) {\n\t\tvar p = fields.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tfields.splice(p,1);\n\t\t\tfields.unshift(value)\n\t\t}\n\t});\n\t// Output the column headings\n\tvar output = [], row = [];\n\tfields.forEach(function(value) {\n\t\trow.push(quoteAndEscape(value))\n\t});\n\toutput.push(row.join(\",\"));\n\t// Output each tiddler\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\trow = [];\n\t\ttiddler = this.wiki.getTiddler(tiddlers[t]);\n\t\t\tfor(f=0; f<fields.length; f++) {\n\t\t\t\trow.push(quoteAndEscape(tiddler ? tiddler.getFieldString(fields[f]) || \"\" : \"\"));\n\t\t\t}\n\t\toutput.push(row.join(\",\"));\n\t}\n\treturn output.join(\"\\n\");\n};\n\nfunction quoteAndEscape(value) {\n\treturn \"\\\"\" + value.replace(/\"/mg,\"\\\"\\\"\") + \"\\\"\";\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/displayshortcuts.js": {
"title": "$:/core/modules/macros/displayshortcuts.js",
"text": "/*\\\ntitle: $:/core/modules/macros/displayshortcuts.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to display a list of keyboard shortcuts in human readable form. Notably, it resolves named shortcuts like `((bold))` to the underlying keystrokes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"displayshortcuts\";\n\nexports.params = [\n\t{name: \"shortcuts\"},\n\t{name: \"prefix\"},\n\t{name: \"separator\"},\n\t{name: \"suffix\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(shortcuts,prefix,separator,suffix) {\n\tvar shortcutArray = $tw.keyboardManager.getPrintableShortcuts($tw.keyboardManager.parseKeyDescriptors(shortcuts,{\n\t\twiki: this.wiki\n\t}));\n\tif(shortcutArray.length > 0) {\n\t\tshortcutArray.sort(function(a,b) {\n\t\t return a.toLowerCase().localeCompare(b.toLowerCase());\n\t\t})\n\t\treturn prefix + shortcutArray.join(separator) + suffix;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddler.js": {
"title": "$:/core/modules/macros/jsontiddler.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddler.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output a single tiddler to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddler\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\ttitle = title || this.getVariable(\"currentTiddler\");\n\tvar tiddler = !!title && this.wiki.getTiddler(title),\n\t\tfields = new Object();\n\tif(tiddler) {\n\t\tfor(var field in tiddler.fields) {\n\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t}\n\t}\n\treturn JSON.stringify(fields,null,$tw.config.preferences.jsonSpaces);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/jsontiddlers.js": {
"title": "$:/core/modules/macros/jsontiddlers.js",
"text": "/*\\\ntitle: $:/core/modules/macros/jsontiddlers.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to output tiddlers matching a filter to JSON\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"jsontiddlers\";\n\nexports.params = [\n\t{name: \"filter\"},\n\t{name: \"spaces\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(filter,spaces) {\n\treturn this.wiki.getTiddlersAsJson(filter,$tw.utils.parseInt(spaces));\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/makedatauri.js": {
"title": "$:/core/modules/macros/makedatauri.js",
"text": "/*\\\ntitle: $:/core/modules/macros/makedatauri.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string of text to a data URI\n\n<<makedatauri text:\"Text to be converted\" type:\"text/vnd.tiddlywiki\">>\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"makedatauri\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"type\"},\n\t{name: \"_canonical_uri\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,type,_canonical_uri) {\n\treturn $tw.utils.makeDataUri(text,type,_canonical_uri);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/now.js": {
"title": "$:/core/modules/macros/now.js",
"text": "/*\\\ntitle: $:/core/modules/macros/now.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return a formatted version of the current time\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"now\";\n\nexports.params = [\n\t{name: \"format\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(format) {\n\treturn $tw.utils.formatDateString(new Date(),format || \"0hh:0mm, DDth MMM YYYY\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/qualify.js": {
"title": "$:/core/modules/macros/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/macros/qualify.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to qualify a state tiddler title according\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"qualify\";\n\nexports.params = [\n\t{name: \"title\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(title) {\n\treturn title + \"-\" + this.getStateQualifier();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/resolvepath.js": {
"title": "$:/core/modules/macros/resolvepath.js",
"text": "/*\\\ntitle: $:/core/modules/macros/resolvepath.js\ntype: application/javascript\nmodule-type: macro\n\nResolves a relative path for an absolute rootpath.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"resolvepath\";\n\nexports.params = [\n\t{name: \"source\"},\n\t{name: \"root\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(source, root) {\n\treturn $tw.utils.resolvePath(source, root);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/unusedtitle.js": {
"title": "$:/core/modules/macros/unusedtitle.js",
"text": "/*\\\ntitle: $:/core/modules/macros/unusedtitle.js\ntype: application/javascript\nmodule-type: macro\nMacro to return a new title that is unused in the wiki. It can be given a name as a base.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"unusedtitle\";\n\nexports.params = [\n\t{name: \"baseName\"},\n\t{name: \"options\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(baseName, options) {\n\tif(!baseName) {\n\t\tbaseName = $tw.language.getString(\"DefaultNewTiddlerTitle\");\n\t}\n\treturn this.wiki.generateNewTitle(baseName, options);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/macros/version.js": {
"title": "$:/core/modules/macros/version.js",
"text": "/*\\\ntitle: $:/core/modules/macros/version.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to return the TiddlyWiki core version number\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nexports.name = \"version\";\n\nexports.params = [];\n\n/*\nRun the macro\n*/\nexports.run = function() {\n\treturn $tw.version;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
},
"$:/core/modules/parsers/audioparser.js": {
"title": "$:/core/modules/parsers/audioparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/audioparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe audio parser parses an audio tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar AudioParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"audio\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"audio/ogg\"] = AudioParser;\nexports[\"audio/mpeg\"] = AudioParser;\nexports[\"audio/mp3\"] = AudioParser;\nexports[\"audio/mp4\"] = AudioParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/binaryparser.js": {
"title": "$:/core/modules/parsers/binaryparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/binaryparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe binary parser parses a binary tiddler into a warning message and download link\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar BinaryParser = function(type,text,options) {\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on binary tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!title\"}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to external or internal data URI\n\tif(options._canonical_uri) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: options._canonical_uri\n\t\t};\n\t} else if(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/octet-stream\"] = BinaryParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/csvparser.js": {
"title": "$:/core/modules/parsers/csvparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/csvparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe CSV text parser processes CSV files into a table wrapped in a scrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CsvParser = function(type,text,options) {\n\t// Table framework\n\tthis.tree = [{\n\t\t\"type\": \"scrollable\", \"children\": [{\n\t\t\t\"type\": \"element\", \"tag\": \"table\", \"children\": [{\n\t\t\t\t\"type\": \"element\", \"tag\": \"tbody\", \"children\": []\n\t\t\t}], \"attributes\": {\n\t\t\t\t\"class\": {\"type\": \"string\", \"value\": \"tc-csv-table\"}\n\t\t\t}\n\t\t}]\n\t}];\n\t// Split the text into lines\n\tvar lines = text.split(/\\r?\\n/mg),\n\t\ttag = \"th\";\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar lineText = lines[line];\n\t\tif(lineText) {\n\t\t\tvar row = {\n\t\t\t\t\t\"type\": \"element\", \"tag\": \"tr\", \"children\": []\n\t\t\t\t};\n\t\t\tvar columns = lineText.split(\",\");\n\t\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\t\trow.children.push({\n\t\t\t\t\t\t\"type\": \"element\", \"tag\": tag, \"children\": [{\n\t\t\t\t\t\t\t\"type\": \"text\",\n\t\t\t\t\t\t\t\"text\": columns[column]\n\t\t\t\t\t\t}]\n\t\t\t\t\t});\n\t\t\t}\n\t\t\ttag = \"td\";\n\t\t\tthis.tree[0].children[0].children[0].children.push(row);\n\t\t}\n\t}\n};\n\nexports[\"text/csv\"] = CsvParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/htmlparser.js": {
"title": "$:/core/modules/parsers/htmlparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/htmlparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe HTML parser displays text as raw HTML\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar HtmlParser = function(type,text,options) {\n\tvar src;\n\tif(options._canonical_uri) {\n\t\tsrc = options._canonical_uri;\n\t} else if(text) {\n\t\tsrc = \"data:text/html;charset=utf-8,\" + encodeURIComponent(text);\n\t}\n\tthis.tree = [{\n\t\ttype: \"element\",\n\t\ttag: \"iframe\",\n\t\tattributes: {\n\t\t\tsrc: {type: \"string\", value: src},\n\t\t\tsandbox: {type: \"string\", value: \"\"}\n\t\t}\n\t}];\n};\n\nexports[\"text/html\"] = HtmlParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/imageparser.js": {
"title": "$:/core/modules/parsers/imageparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/imageparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe image parser parses an image into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"img\",\n\t\t\tattributes: {}\n\t\t};\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\tif(type === \"image/svg+xml\" || type === \".svg\") {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:image/svg+xml,\" + encodeURIComponent(text)};\n\t\t} else {\n\t\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t\t}\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"image/svg+xml\"] = ImageParser;\nexports[\"image/jpg\"] = ImageParser;\nexports[\"image/jpeg\"] = ImageParser;\nexports[\"image/png\"] = ImageParser;\nexports[\"image/gif\"] = ImageParser;\nexports[\"image/webp\"] = ImageParser;\nexports[\"image/heic\"] = ImageParser;\nexports[\"image/heif\"] = ImageParser;\nexports[\"image/x-icon\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/utils/parseutils.js": {
"title": "$:/core/modules/utils/parseutils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parseutils.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions concerned with parsing text into tokens.\n\nMost functions have the following pattern:\n\n* The parameters are:\n** `source`: the source string being parsed\n** `pos`: the current parse position within the string\n** Any further parameters are used to identify the token that is being parsed\n* The return value is:\n** null if the token was not found at the specified position\n** an object representing the token with the following standard fields:\n*** `type`: string indicating the type of the token\n*** `start`: start position of the token in the source string\n*** `end`: end position of the token in the source string\n*** Any further fields required to describe the token\n\nThe exception is `skipWhiteSpace`, which just returns the position after the whitespace.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for a whitespace token. Returns null if not found, otherwise returns {type: \"whitespace\", start:, end:,}\n*/\nexports.parseWhiteSpace = function(source,pos) {\n\tvar p = pos,c;\n\twhile(true) {\n\t\tc = source.charAt(p);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tp++;\n\t\t} else {\n\t\t\tbreak;\n\t\t}\n\t}\n\tif(p === pos) {\n\t\treturn null;\n\t} else {\n\t\treturn {\n\t\t\ttype: \"whitespace\",\n\t\t\tstart: pos,\n\t\t\tend: p\n\t\t}\n\t}\n};\n\n/*\nConvenience wrapper for parseWhiteSpace. Returns the position after the whitespace\n*/\nexports.skipWhiteSpace = function(source,pos) {\n\tvar c;\n\twhile(true) {\n\t\tc = source.charAt(pos);\n\t\tif((c === \" \") || (c === \"\\f\") || (c === \"\\n\") || (c === \"\\r\") || (c === \"\\t\") || (c === \"\\v\") || (c === \"\\u00a0\")) { // Ignores some obscure unicode spaces\n\t\t\tpos++;\n\t\t} else {\n\t\t\treturn pos;\n\t\t}\n\t}\n};\n\n/*\nLook for a given string token. Returns null if not found, otherwise returns {type: \"token\", value:, start:, end:,}\n*/\nexports.parseTokenString = function(source,pos,token) {\n\tvar match = source.indexOf(token,pos) === pos;\n\tif(match) {\n\t\treturn {\n\t\t\ttype: \"token\",\n\t\t\tvalue: token,\n\t\t\tstart: pos,\n\t\t\tend: pos + token.length\n\t\t};\n\t}\n\treturn null;\n};\n\n/*\nLook for a token matching a regex. Returns null if not found, otherwise returns {type: \"regexp\", match:, start:, end:,}\n*/\nexports.parseTokenRegExp = function(source,pos,reToken) {\n\tvar node = {\n\t\ttype: \"regexp\",\n\t\tstart: pos\n\t};\n\treToken.lastIndex = pos;\n\tnode.match = reToken.exec(source);\n\tif(node.match && node.match.index === pos) {\n\t\tnode.end = pos + node.match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a string literal. Returns null if not found, otherwise returns {type: \"string\", value:, start:, end:,}\n*/\nexports.parseStringLiteral = function(source,pos) {\n\tvar node = {\n\t\ttype: \"string\",\n\t\tstart: pos\n\t};\n\tvar reString = /(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\")|(?:'([^']*)')/g;\n\treString.lastIndex = pos;\n\tvar match = reString.exec(source);\n\tif(match && match.index === pos) {\n\t\tnode.value = match[1] !== undefined ? match[1] :(\n\t\t\tmatch[2] !== undefined ? match[2] : match[3] \n\t\t\t\t\t);\n\t\tnode.end = pos + match[0].length;\n\t\treturn node;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLook for a macro invocation parameter. Returns null if not found, or {type: \"macro-parameter\", name:, value:, start:, end:}\n*/\nexports.parseMacroParameter = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macro-parameter\",\n\t\tstart: pos\n\t};\n\t// Define our regexp\n\tvar reMacroParameter = /(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\\s>\"'=]+)))/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the parameter\n\tvar token = $tw.utils.parseTokenRegExp(source,pos,reMacroParameter);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the parameter details\n\tnode.value = token.match[2] !== undefined ? token.match[2] : (\n\t\t\t\t\ttoken.match[3] !== undefined ? token.match[3] : (\n\t\t\t\t\t\ttoken.match[4] !== undefined ? token.match[4] : (\n\t\t\t\t\t\t\ttoken.match[5] !== undefined ? token.match[5] : (\n\t\t\t\t\t\t\t\ttoken.match[6] !== undefined ? token.match[6] : (\n\t\t\t\t\t\t\t\t\t\"\"\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t)\n\t\t\t\t);\n\tif(token.match[1]) {\n\t\tnode.name = token.match[1];\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for a macro invocation. Returns null if not found, or {type: \"macrocall\", name:, parameters:, start:, end:}\n*/\nexports.parseMacroInvocation = function(source,pos) {\n\tvar node = {\n\t\ttype: \"macrocall\",\n\t\tstart: pos,\n\t\tparams: []\n\t};\n\t// Define our regexps\n\tvar reMacroName = /([^\\s>\"'=]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double less than sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"<<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the macro name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reMacroName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Process parameters\n\tvar parameter = $tw.utils.parseMacroParameter(source,pos);\n\twhile(parameter) {\n\t\tnode.params.push(parameter);\n\t\tpos = parameter.end;\n\t\t// Get the next parameter\n\t\tparameter = $tw.utils.parseMacroParameter(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a double greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">>\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n/*\nLook for an HTML attribute definition. Returns null if not found, otherwise returns {type: \"attribute\", name:, valueType: \"string|indirect|macro\", value:, start:, end:,}\n*/\nexports.parseAttribute = function(source,pos) {\n\tvar node = {\n\t\tstart: pos\n\t};\n\t// Define our regexps\n\tvar reAttributeName = /([^\\/\\s>\"'=]+)/g,\n\t\treUnquotedAttribute = /([^\\/\\s<>\"'=]+)/g,\n\t\treFilteredValue = /\\{\\{\\{(.+?)\\}\\}\\}/g,\n\t\treIndirectValue = /\\{\\{([^\\}]+)\\}\\}/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the attribute name\n\tvar name = $tw.utils.parseTokenRegExp(source,pos,reAttributeName);\n\tif(!name) {\n\t\treturn null;\n\t}\n\tnode.name = name.match[1];\n\tpos = name.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for an equals sign\n\tvar token = $tw.utils.parseTokenString(source,pos,\"=\");\n\tif(token) {\n\t\tpos = token.end;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Look for a string literal\n\t\tvar stringLiteral = $tw.utils.parseStringLiteral(source,pos);\n\t\tif(stringLiteral) {\n\t\t\tpos = stringLiteral.end;\n\t\t\tnode.type = \"string\";\n\t\t\tnode.value = stringLiteral.value;\n\t\t} else {\n\t\t\t// Look for a filtered value\n\t\t\tvar filteredValue = $tw.utils.parseTokenRegExp(source,pos,reFilteredValue);\n\t\t\tif(filteredValue) {\n\t\t\t\tpos = filteredValue.end;\n\t\t\t\tnode.type = \"filtered\";\n\t\t\t\tnode.filter = filteredValue.match[1];\n\t\t\t} else {\n\t\t\t\t// Look for an indirect value\n\t\t\t\tvar indirectValue = $tw.utils.parseTokenRegExp(source,pos,reIndirectValue);\n\t\t\t\tif(indirectValue) {\n\t\t\t\t\tpos = indirectValue.end;\n\t\t\t\t\tnode.type = \"indirect\";\n\t\t\t\t\tnode.textReference = indirectValue.match[1];\n\t\t\t\t} else {\n\t\t\t\t\t// Look for a unquoted value\n\t\t\t\t\tvar unquotedValue = $tw.utils.parseTokenRegExp(source,pos,reUnquotedAttribute);\n\t\t\t\t\tif(unquotedValue) {\n\t\t\t\t\t\tpos = unquotedValue.end;\n\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\tnode.value = unquotedValue.match[1];\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Look for a macro invocation value\n\t\t\t\t\t\tvar macroInvocation = $tw.utils.parseMacroInvocation(source,pos);\n\t\t\t\t\t\tif(macroInvocation) {\n\t\t\t\t\t\t\tpos = macroInvocation.end;\n\t\t\t\t\t\t\tnode.type = \"macro\";\n\t\t\t\t\t\t\tnode.value = macroInvocation;\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tnode.type = \"string\";\n\t\t\t\t\t\t\tnode.value = \"true\";\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t} else {\n\t\tnode.type = \"string\";\n\t\tnode.value = \"true\";\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/parsers/pdfparser.js": {
"title": "$:/core/modules/parsers/pdfparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/pdfparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe PDF parser embeds a PDF viewer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ImageParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"embed\",\n\t\t\tattributes: {}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:application/pdf;base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"application/pdf\"] = ImageParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/textparser.js": {
"title": "$:/core/modules/parsers/textparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/textparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe plain text parser processes blocks of source text into a degenerate parse tree consisting of a single text node\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TextParser = function(type,text,options) {\n\tthis.tree = [{\n\t\ttype: \"codeblock\",\n\t\tattributes: {\n\t\t\tcode: {type: \"string\", value: text},\n\t\t\tlanguage: {type: \"string\", value: type}\n\t\t}\n\t}];\n};\n\nexports[\"text/plain\"] = TextParser;\nexports[\"text/x-tiddlywiki\"] = TextParser;\nexports[\"application/javascript\"] = TextParser;\nexports[\"application/json\"] = TextParser;\nexports[\"text/css\"] = TextParser;\nexports[\"application/x-tiddler-dictionary\"] = TextParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/videoparser.js": {
"title": "$:/core/modules/parsers/videoparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/videoparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe video parser parses a video tiddler into an embeddable HTML element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar VideoParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"video\",\n\t\t\tattributes: {\n\t\t\t\tcontrols: {type: \"string\", value: \"controls\"},\n\t\t\t\tstyle: {type: \"string\", value: \"width: 100%; object-fit: contain\"}\n\t\t\t}\n\t\t},\n\t\tsrc;\n\tif(options._canonical_uri) {\n\t\telement.attributes.src = {type: \"string\", value: options._canonical_uri};\n\t} else if(text) {\n\t\telement.attributes.src = {type: \"string\", value: \"data:\" + type + \";base64,\" + text};\n\t}\n\tthis.tree = [element];\n};\n\nexports[\"video/ogg\"] = VideoParser;\nexports[\"video/webm\"] = VideoParser;\nexports[\"video/mp4\"] = VideoParser;\nexports[\"video/quicktime\"] = VideoParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/codeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for code blocks. For example:\n\n```\n\t```\n\tThis text will not be //wikified//\n\t```\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match and get language if defined\n\tthis.matchRegExp = /```([\\w-]*)\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\\r?\\n```$)/mg;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Return the $codeblock widget\n\treturn [{\n\t\t\ttype: \"codeblock\",\n\t\t\tattributes: {\n\t\t\t\t\tcode: {type: \"string\", value: text},\n\t\t\t\t\tlanguage: {type: \"string\", value: this.match[1]}\n\t\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/codeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/codeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/codeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for code runs. For example:\n\n```\n\tThis is a `code run`.\n\tThis is another ``code run``\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"codeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(``?)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = new RegExp(this.match[1], \"mg\");\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"code\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: text\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/commentinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/commentinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/commentinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML comments. For example:\n\n```\n<!-- This is a comment -->\n```\n\nNote that the syntax for comments is simplified to an opening \"<!--\" sequence and a closing \"-->\" sequence -- HTML itself implements a more complex format (see http://ostermiller.org/findhtmlcomment.html)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"commentinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\tthis.matchRegExp = /<!--/mg;\n\tthis.endMatchRegExp = /-->/mg;\n};\n\nexports.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\tif(this.match) {\n\t\tthis.endMatchRegExp.lastIndex = startPos + this.match[0].length;\n\t\tthis.endMatch = this.endMatchRegExp.exec(this.parser.source);\n\t\tif(this.endMatch) {\n\t\t\treturn this.match.index;\n\t\t}\n\t}\n\treturn undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.endMatchRegExp.lastIndex;\n\t// Don't return any elements\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/dash.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/dash.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/dash.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for dashes. For example:\n\n```\nThis is an en-dash: --\n\nThis is an em-dash: ---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"dash\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{2,3}(?!-)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar dash = this.match[0].length === 2 ? \"–\" : \"—\";\n\treturn [{\n\t\ttype: \"entity\",\n\t\tentity: dash\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/bold.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/bold.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - bold. For example:\n\n```\n\tThis is ''bold'' text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except bold \n\\rules only bold \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"bold\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /''/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/''/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strong\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/italic.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/italic.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - italic. For example:\n\n```\n\tThis is //italic// text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except italic\n\\rules only italic\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"italic\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\/\\//mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\/\\//mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"em\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/strikethrough.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - strikethrough. For example:\n\n```\n\tThis is ~~strikethrough~~ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except strikethrough \n\\rules only strikethrough \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"strikethrough\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~~/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/~~/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"strike\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/subscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - subscript. For example:\n\n```\n\tThis is ,,subscript,, text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except subscript \n\\rules only subscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"subscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /,,/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/,,/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sub\",\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/superscript.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - superscript. For example:\n\n```\n\tThis is ^^superscript^^ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except superscript \n\\rules only superscript \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"superscript\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\^\\^/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/\\^\\^/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"sup\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/emphasis/underscore.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for emphasis - underscore. For example:\n\n```\n\tThis is __underscore__ text\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except underscore \n\\rules only underscore\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"underscore\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /__/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\n\t// Parse the run including the terminator\n\tvar tree = this.parser.parseInlineRun(/__/mg,{eatTerminator: true});\n\n\t// Return the classed span\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"u\",\n\t\tchildren: tree\n\t}];\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/entity.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/entity.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/entity.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for HTML entities. For example:\n\n```\n\tThis is a copyright symbol: ©\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"entity\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(&#?[a-zA-Z0-9]{2,8};)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar entityString = this.match[1];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Return the entity\n\treturn [{type: \"entity\", entity: this.match[0]}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/extlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/extlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/extlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\nAn external link: https://www.tiddlywiki.com/\n\nA suppressed external link: ~http://www.tiddlyspace.com/\n```\n\nExternal links can be suppressed by preceding them with `~`.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"extlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /~?(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(this.match[0].substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: this.match[0].substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: this.match[0]},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: this.match[0]\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t},\n\t\tisBlock: true\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/filteredtranscludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline filtered transclusion. For example:\n\n```\n{{{ [tag[docs]] }}}\n{{{ [tag[docs]] |tooltip}}}\n{{{ [tag[docs]] ||TemplateTitle}}}\n{{{ [tag[docs]] |tooltip||TemplateTitle}}}\n{{{ [tag[docs]] }}width:40;height:50;}.class.class\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"filteredtranscludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{\\{([^\\|]+?)(?:\\|([^\\|\\{\\}]+))?(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}([^\\}]*)\\}(?:\\.(\\S+))?/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar filter = this.match[1],\n\t\ttooltip = this.match[2],\n\t\ttemplate = $tw.utils.trim(this.match[3]),\n\t\tstyle = this.match[4],\n\t\tclasses = this.match[5];\n\t// Return the list widget\n\tvar node = {\n\t\ttype: \"list\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: filter}\n\t\t}\n\t};\n\tif(tooltip) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: tooltip};\n\t}\n\tif(template) {\n\t\tnode.attributes.template = {type: \"string\", value: template};\n\t}\n\tif(style) {\n\t\tnode.attributes.style = {type: \"string\", value: style};\n\t}\n\tif(classes) {\n\t\tnode.attributes.itemClass = {type: \"string\", value: classes.split(\".\").join(\" \")};\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/hardlinebreaks.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for marking areas with hard line breaks. For example:\n\n```\n\"\"\"\nThis is some text\nThat is set like\nIt is a Poem\nWhen it is\nClearly\nNot\n\"\"\"\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"hardlinebreaks\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\"\"\"(?:\\r?\\n)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /(\"\"\")|(\\r?\\n)/mg,\n\t\ttree = [],\n\t\tmatch;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tdo {\n\t\t// Parse the run up to the terminator\n\t\ttree.push.apply(tree,this.parser.parseInlineRun(reEnd,{eatTerminator: false}));\n\t\t// Redo the terminator match\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tmatch = reEnd.exec(this.parser.source);\n\t\tif(match) {\n\t\t\tthis.parser.pos = reEnd.lastIndex;\n\t\t\t// Add a line break if the terminator was a line break\n\t\t\tif(match[2]) {\n\t\t\t\ttree.push({type: \"element\", tag: \"br\"});\n\t\t\t}\n\t\t}\n\t} while(match && !match[1]);\n\t// Return the nodes\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/heading.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/heading.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/heading.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for headings\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"heading\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(!{1,6})/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar headingLevel = this.match[1].length;\n\t// Move past the !s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse any classes, whitespace and then the heading itself\n\tvar classes = this.parser.parseClasses();\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// Return the heading\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"h\" + headingLevel, \n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: classes.join(\" \")}\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/horizrule.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/horizrule.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/horizrule.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for rules. For example:\n\n```\n---\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"horizrule\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /-{3,}\\r?(?:\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\treturn [{type: \"element\", tag: \"hr\"}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/html.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/html.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/html.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for HTML elements and widgets. For example:\n\n{{{\n<aside>\nThis is an HTML5 aside element\n</aside>\n\n<$slider target=\"MyTiddler\">\nThis is a widget invocation\n</$slider>\n\n}}}\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"html\";\nexports.types = {inline: true, block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextTag = this.findNextTag(this.parser.source,startPos,{\n\t\trequireLineBreak: this.is.block\n\t});\n\treturn this.nextTag ? this.nextTag.start : undefined;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Retrieve the most recent match so that recursive calls don't overwrite it\n\tvar tag = this.nextTag;\n\tthis.nextTag = null;\n\t// Advance the parser position to past the tag\n\tthis.parser.pos = tag.end;\n\t// Check for an immediately following double linebreak\n\tvar hasLineBreak = !tag.isSelfClosing && !!$tw.utils.parseTokenRegExp(this.parser.source,this.parser.pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t// Set whether we're in block mode\n\ttag.isBlock = this.is.block || hasLineBreak;\n\t// Parse the body if we need to\n\tif(!tag.isSelfClosing && $tw.config.htmlVoidElements.indexOf(tag.tag) === -1) {\n\t\t\tvar reEndString = \"</\" + $tw.utils.escapeRegExp(tag.tag) + \">\",\n\t\t\t\treEnd = new RegExp(\"(\" + reEndString + \")\",\"mg\");\n\t\tif(hasLineBreak) {\n\t\t\ttag.children = this.parser.parseBlocks(reEndString);\n\t\t} else {\n\t\t\ttag.children = this.parser.parseInlineRun(reEnd);\n\t\t}\n\t\treEnd.lastIndex = this.parser.pos;\n\t\tvar endMatch = reEnd.exec(this.parser.source);\n\t\tif(endMatch && endMatch.index === this.parser.pos) {\n\t\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t\t}\n\t}\n\t// Return the tag\n\treturn [tag];\n};\n\n/*\nLook for an HTML tag. Returns null if not found, otherwise returns {type: \"element\", name:, attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseTag = function(source,pos,options) {\n\toptions = options || {};\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Define our regexps\n\tvar reTagName = /([a-zA-Z0-9\\-\\$]+)/g;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a less than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\"<\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Get the tag name\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,reTagName);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tnode.tag = token.match[1];\n\tif(node.tag.slice(1).indexOf(\"$\") !== -1) {\n\t\treturn null;\n\t}\n\tif(node.tag.charAt(0) === \"$\") {\n\t\tnode.type = node.tag.substr(1);\n\t}\n\tpos = token.end;\n\t// Check that the tag is terminated by a space, / or >\n\tif(!$tw.utils.parseWhiteSpace(source,pos) && !(source.charAt(pos) === \"/\") && !(source.charAt(pos) === \">\") ) {\n\t\treturn null;\n\t}\n\t// Process attributes\n\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\twhile(attribute) {\n\t\tnode.attributes[attribute.name] = attribute;\n\t\tpos = attribute.end;\n\t\t// Get the next attribute\n\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for a closing slash\n\ttoken = $tw.utils.parseTokenString(source,pos,\"/\");\n\tif(token) {\n\t\tpos = token.end;\n\t\tnode.isSelfClosing = true;\n\t}\n\t// Look for a greater than sign\n\ttoken = $tw.utils.parseTokenString(source,pos,\">\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Check for a required line break\n\tif(options.requireLineBreak) {\n\t\ttoken = $tw.utils.parseTokenRegExp(source,pos,/([^\\S\\n\\r]*\\r?\\n(?:[^\\S\\n\\r]*\\r?\\n|$))/g);\n\t\tif(!token) {\n\t\t\treturn null;\n\t\t}\n\t}\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\nexports.findNextTag = function(source,pos,options) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /<([a-zA-Z\\-\\$]+)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseTag(source,match.index,options);\n\t\t// Return success\n\t\tif(tag && this.isLegalTag(tag)) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\nexports.isLegalTag = function(tag) {\n\t// Widgets are always OK\n\tif(tag.type !== \"element\") {\n\t\treturn true;\n\t// If it's an HTML tag that starts with a dash then it's not legal\n\t} else if(tag.tag.charAt(0) === \"-\") {\n\t\treturn false;\n\t} else {\n\t\t// Otherwise it's OK\n\t\treturn true;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/image.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/image.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/image.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for embedding images. For example:\n\n```\n[img[https://tiddlywiki.com/fractalveg.jpg]]\n[img width=23 height=24 [https://tiddlywiki.com/fractalveg.jpg]]\n[img width={{!!width}} height={{!!height}} [https://tiddlywiki.com/fractalveg.jpg]]\n[img[Description of image|https://tiddlywiki.com/fractalveg.jpg]]\n[img[TiddlerTitle]]\n[img[Description of image|TiddlerTitle]]\n```\n\nGenerates the `<$image>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"image\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextImage = this.findNextImage(this.parser.source,startPos);\n\treturn this.nextImage ? this.nextImage.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextImage.end;\n\tvar node = {\n\t\ttype: \"image\",\n\t\tattributes: this.nextImage.attributes\n\t};\n\treturn [node];\n};\n\n/*\nFind the next image from the current position\n*/\nexports.findNextImage = function(source,pos) {\n\t// A regexp for finding candidate HTML tags\n\tvar reLookahead = /(\\[img)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a tag\n\t\tvar tag = this.parseImage(source,match.index);\n\t\t// Return success\n\t\tif(tag) {\n\t\t\treturn tag;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an image at the specified position. Returns null if not found, otherwise returns {type: \"image\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseImage = function(source,pos) {\n\tvar token,\n\t\tnode = {\n\t\t\ttype: \"image\",\n\t\t\tstart: pos,\n\t\t\tattributes: {}\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[img`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[img\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Process attributes\n\tif(source.charAt(pos) !== \"[\") {\n\t\tvar attribute = $tw.utils.parseAttribute(source,pos);\n\t\twhile(attribute) {\n\t\t\tnode.attributes[attribute.name] = attribute;\n\t\t\tpos = attribute.end;\n\t\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t\tif(source.charAt(pos) !== \"[\") {\n\t\t\t\t// Get the next attribute\n\t\t\t\tattribute = $tw.utils.parseAttribute(source,pos);\n\t\t\t} else {\n\t\t\t\tattribute = null;\n\t\t\t}\n\t\t}\n\t}\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[` after the attributes\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Get the source up to the terminating `]]`\n\ttoken = $tw.utils.parseTokenRegExp(source,pos,/(?:([^|\\]]*?)\\|)?([^\\]]+?)\\]\\]/g);\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\tif(token.match[1]) {\n\t\tnode.attributes.tooltip = {type: \"string\", value: token.match[1].trim()};\n\t}\n\tnode.attributes.source = {type: \"string\", value: (token.match[2] || \"\").trim()};\n\t// Update the end position\n\tnode.end = pos;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/import.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/import.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/import.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for importing variable definitions\n\n```\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"import\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\import[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the filter terminated by a line break\n\tvar reMatch = /(.*)(\\r?\\n)|$/mg;\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\tthis.parser.pos = reMatch.lastIndex;\n\t// Parse tree nodes to return\n\treturn [{\n\t\ttype: \"importvariables\",\n\t\tattributes: {\n\t\t\tfilter: {type: \"string\", value: match[1]}\n\t\t},\n\t\tchildren: []\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/list.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/list.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/list.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for lists. For example:\n\n```\n* This is an unordered list\n* It has two items\n\n# This is a numbered list\n## With a subitem\n# And a third item\n\n; This is a term that is being defined\n: This is the definition of that term\n```\n\nNote that lists can be nested arbitrarily:\n\n```\n#** One\n#* Two\n#** Three\n#**** Four\n#**# Five\n#**## Six\n## Seven\n### Eight\n## Nine\n```\n\nA CSS class can be applied to a list item as follows:\n\n```\n* List item one\n*.active List item two has the class `active`\n* List item three\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"list\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /([\\*#;:>]+)/mg;\n};\n\nvar listTypes = {\n\t\"*\": {listTag: \"ul\", itemTag: \"li\"},\n\t\"#\": {listTag: \"ol\", itemTag: \"li\"},\n\t\";\": {listTag: \"dl\", itemTag: \"dt\"},\n\t\":\": {listTag: \"dl\", itemTag: \"dd\"},\n\t\">\": {listTag: \"blockquote\", itemTag: \"div\"}\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Array of parse tree nodes for the previous row of the list\n\tvar listStack = [];\n\t// Cycle through the items in the list\n\twhile(true) {\n\t\t// Match the list marker\n\t\tvar reMatch = /([\\*#;:>]+)/mg;\n\t\treMatch.lastIndex = this.parser.pos;\n\t\tvar match = reMatch.exec(this.parser.source);\n\t\tif(!match || match.index !== this.parser.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check whether the list type of the top level matches\n\t\tvar listInfo = listTypes[match[0].charAt(0)];\n\t\tif(listStack.length > 0 && listStack[0].tag !== listInfo.listTag) {\n\t\t\tbreak;\n\t\t}\n\t\t// Move past the list marker\n\t\tthis.parser.pos = match.index + match[0].length;\n\t\t// Walk through the list markers for the current row\n\t\tfor(var t=0; t<match[0].length; t++) {\n\t\t\tlistInfo = listTypes[match[0].charAt(t)];\n\t\t\t// Remove any stacked up element if we can't re-use it because the list type doesn't match\n\t\t\tif(listStack.length > t && listStack[t].tag !== listInfo.listTag) {\n\t\t\t\tlistStack.splice(t,listStack.length - t);\n\t\t\t}\n\t\t\t// Construct the list element or reuse the previous one at this level\n\t\t\tif(listStack.length <= t) {\n\t\t\t\tvar listElement = {type: \"element\", tag: listInfo.listTag, children: [\n\t\t\t\t\t{type: \"element\", tag: listInfo.itemTag, children: []}\n\t\t\t\t]};\n\t\t\t\t// Link this list element into the last child item of the parent list item\n\t\t\t\tif(t) {\n\t\t\t\t\tvar prevListItem = listStack[t-1].children[listStack[t-1].children.length-1];\n\t\t\t\t\tprevListItem.children.push(listElement);\n\t\t\t\t}\n\t\t\t\t// Save this element in the stack\n\t\t\t\tlistStack[t] = listElement;\n\t\t\t} else if(t === (match[0].length - 1)) {\n\t\t\t\tlistStack[t].children.push({type: \"element\", tag: listInfo.itemTag, children: []});\n\t\t\t}\n\t\t}\n\t\tif(listStack.length > match[0].length) {\n\t\t\tlistStack.splice(match[0].length,listStack.length - match[0].length);\n\t\t}\n\t\t// Process the body of the list item into the last list item\n\t\tvar lastListChildren = listStack[listStack.length-1].children,\n\t\t\tlastListItem = lastListChildren[lastListChildren.length-1],\n\t\t\tclasses = this.parser.parseClasses();\n\t\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\t\tvar tree = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t\tlastListItem.children.push.apply(lastListItem.children,tree);\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(lastListItem,classes.join(\" \"));\n\t\t}\n\t\t// Consume any whitespace following the list item\n\t\tthis.parser.skipWhitespace();\n\t}\n\t// Return the root element of the list\n\treturn [listStack[0]];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for block macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^>\\s]+)(?:\\s*)((?:[^>]|(?:>(?!>)))*?)>>(?:\\r?\\n|$)/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params,\n\t\tisBlock: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrocallinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrocallinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrocallinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki rule for macro calls\n\n```\n<<name value value2>>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrocallinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /<<([^\\s>]+)\\s*([\\s\\S]*?)>>/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get all the details of the match\n\tvar macroName = this.match[1],\n\t\tparamString = this.match[2];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar params = [],\n\t\treParam = /\\s*(?:([A-Za-z0-9\\-_]+)\\s*:)?(?:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))/mg,\n\t\tparamMatch = reParam.exec(paramString);\n\twhile(paramMatch) {\n\t\t// Process this parameter\n\t\tvar paramInfo = {\n\t\t\tvalue: paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5]|| paramMatch[6]\n\t\t};\n\t\tif(paramMatch[1]) {\n\t\t\tparamInfo.name = paramMatch[1];\n\t\t}\n\t\tparams.push(paramInfo);\n\t\t// Find the next match\n\t\tparamMatch = reParam.exec(paramString);\n\t}\n\treturn [{\n\t\ttype: \"macrocall\",\n\t\tname: macroName,\n\t\tparams: params\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/macrodef.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/macrodef.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/macrodef.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for macro definitions\n\n```\n\\define name(param:defaultvalue,param2:defaultvalue)\ndefinition text, including $param$ markers\n\\end\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"macrodef\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\define\\s+([^(\\s]+)\\(\\s*([^)]*)\\)(\\s*\\r?\\n)?/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the macro name and parameters\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the parameters\n\tvar paramString = this.match[2],\n\t\tparams = [];\n\tif(paramString !== \"\") {\n\t\tvar reParam = /\\s*([A-Za-z0-9\\-_]+)(?:\\s*:\\s*(?:\"\"\"([\\s\\S]*?)\"\"\"|\"([^\"]*)\"|'([^']*)'|\\[\\[([^\\]]*)\\]\\]|([^\"'\\s]+)))?/mg,\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\twhile(paramMatch) {\n\t\t\t// Save the parameter details\n\t\t\tvar paramInfo = {name: paramMatch[1]},\n\t\t\t\tdefaultValue = paramMatch[2] || paramMatch[3] || paramMatch[4] || paramMatch[5] || paramMatch[6];\n\t\t\tif(defaultValue) {\n\t\t\t\tparamInfo[\"default\"] = defaultValue;\n\t\t\t}\n\t\t\tparams.push(paramInfo);\n\t\t\t// Look for the next parameter\n\t\t\tparamMatch = reParam.exec(paramString);\n\t\t}\n\t}\n\t// Is this a multiline definition?\n\tvar reEnd;\n\tif(this.match[3]) {\n\t\t// If so, the end of the body is marked with \\end\n\t\treEnd = /(\\r?\\n\\\\end[^\\S\\n\\r]*(?:$|\\r?\\n))/mg;\n\t} else {\n\t\t// Otherwise, the end of the definition is marked by the end of the line\n\t\treEnd = /($|\\r?\\n)/mg;\n\t\t// Move past any whitespace\n\t\tthis.parser.pos = $tw.utils.skipWhiteSpace(this.parser.source,this.parser.pos);\n\t}\n\t// Find the end of the definition\n\treEnd.lastIndex = this.parser.pos;\n\tvar text,\n\t\tendMatch = reEnd.exec(this.parser.source);\n\tif(endMatch) {\n\t\ttext = this.parser.source.substring(this.parser.pos,endMatch.index);\n\t\tthis.parser.pos = endMatch.index + endMatch[0].length;\n\t} else {\n\t\t// We didn't find the end of the definition, so we'll make it blank\n\t\ttext = \"\";\n\t}\n\t// Save the macro definition\n\treturn [{\n\t\ttype: \"set\",\n\t\tattributes: {\n\t\t\tname: {type: \"string\", value: this.match[1]},\n\t\t\tvalue: {type: \"string\", value: text}\n\t\t},\n\t\tchildren: [],\n\t\tparams: params,\n\t\tisMacroDefinition: true\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettyextlink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettyextlink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettyextlink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for external links. For example:\n\n```\n[ext[https://tiddlywiki.com/fractalveg.jpg]]\n[ext[Tooltip|https://tiddlywiki.com/fractalveg.jpg]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettyextlink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n};\n\nexports.findNextMatch = function(startPos) {\n\t// Find the next tag\n\tthis.nextLink = this.findNextLink(this.parser.source,startPos);\n\treturn this.nextLink ? this.nextLink.start : undefined;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.nextLink.end;\n\treturn [this.nextLink];\n};\n\n/*\nFind the next link from the current position\n*/\nexports.findNextLink = function(source,pos) {\n\t// A regexp for finding candidate links\n\tvar reLookahead = /(\\[ext\\[)/g;\n\t// Find the next candidate\n\treLookahead.lastIndex = pos;\n\tvar match = reLookahead.exec(source);\n\twhile(match) {\n\t\t// Try to parse the candidate as a link\n\t\tvar link = this.parseLink(source,match.index);\n\t\t// Return success\n\t\tif(link) {\n\t\t\treturn link;\n\t\t}\n\t\t// Look for the next match\n\t\treLookahead.lastIndex = match.index + 1;\n\t\tmatch = reLookahead.exec(source);\n\t}\n\t// Failed\n\treturn null;\n};\n\n/*\nLook for an link at the specified position. Returns null if not found, otherwise returns {type: \"element\", tag: \"a\", attributes: [], isSelfClosing:, start:, end:,}\n*/\nexports.parseLink = function(source,pos) {\n\tvar token,\n\t\ttextNode = {\n\t\t\ttype: \"text\"\n\t\t},\n\t\tnode = {\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tstart: pos,\n\t\t\tattributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t},\n\t\t\tchildren: [textNode]\n\t\t};\n\t// Skip whitespace\n\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t// Look for the `[ext[`\n\ttoken = $tw.utils.parseTokenString(source,pos,\"[ext[\");\n\tif(!token) {\n\t\treturn null;\n\t}\n\tpos = token.end;\n\t// Look ahead for the terminating `]]`\n\tvar closePos = source.indexOf(\"]]\",pos);\n\tif(closePos === -1) {\n\t\treturn null;\n\t}\n\t// Look for a `|` separating the tooltip\n\tvar splitPos = source.indexOf(\"|\",pos);\n\tif(splitPos === -1 || splitPos > closePos) {\n\t\tsplitPos = null;\n\t}\n\t// Pull out the tooltip and URL\n\tvar tooltip, URL;\n\tif(splitPos) {\n\t\tURL = source.substring(splitPos + 1,closePos).trim();\n\t\ttextNode.text = source.substring(pos,splitPos).trim();\n\t} else {\n\t\tURL = source.substring(pos,closePos).trim();\n\t\ttextNode.text = URL;\n\t}\n\tnode.attributes.href = {type: \"string\", value: URL};\n\tnode.attributes.target = {type: \"string\", value: \"_blank\"};\n\tnode.attributes.rel = {type: \"string\", value: \"noopener noreferrer\"};\n\t// Update the end position\n\tnode.end = closePos + 2;\n\treturn node;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/prettylink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/prettylink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/prettylink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for pretty links. For example:\n\n```\n[[Introduction]]\n\n[[Link description|TiddlerTitle]]\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"prettylink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\[\\[(.*?)(?:\\|(.*?))?\\]\\]/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Process the link\n\tvar text = this.match[1],\n\t\tlink = this.match[2] || text;\n\tif($tw.utils.isLinkExternal(link)) {\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"a\",\n\t\t\tattributes: {\n\t\t\t\thref: {type: \"string\", value: link},\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-tiddlylink-external\"},\n\t\t\t\ttarget: {type: \"string\", value: \"_blank\"},\n\t\t\t\trel: {type: \"string\", value: \"noopener noreferrer\"}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: link}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\", text: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/quoteblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/quoteblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/quoteblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for quote blocks. For example:\n\n```\n\t<<<.optionalClass(es) optional cited from\n\ta quote\n\t<<<\n\t\n\t<<<.optionalClass(es)\n\ta quote\n\t<<< optional cited from\n```\n\nQuotes can be quoted by putting more <s\n\n```\n\t<<<\n\tQuote Level 1\n\t\n\t<<<<\n\tQuoteLevel 2\n\t<<<<\n\t\n\t<<<\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"quoteblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /(<<<+)/mg;\n};\n\nexports.parse = function() {\n\tvar classes = [\"tc-quote\"];\n\t// Get all the details of the match\n\tvar reEndString = \"^\" + this.match[1] + \"(?!<)\";\n\t// Move past the <s\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\n\t// Parse any classes, whitespace and then the optional cite itself\n\tclasses.push.apply(classes, this.parser.parseClasses());\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tvar cite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// before handling the cite, parse the body of the quote\n\tvar tree= this.parser.parseBlocks(reEndString);\n\t// If we got a cite, put it before the text\n\tif(cite.length > 0) {\n\t\ttree.unshift({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Parse any optional cite\n\tthis.parser.skipWhitespace({treatNewlinesAsNonWhitespace: true});\n\tcite = this.parser.parseInlineRun(/(\\r?\\n)/mg);\n\t// If we got a cite, push it\n\tif(cite.length > 0) {\n\t\ttree.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: \"cite\",\n\t\t\tchildren: cite\n\t\t});\n\t}\n\t// Return the blockquote element\n\treturn [{\n\t\ttype: \"element\",\n\t\ttag: \"blockquote\",\n\t\tattributes: {\n\t\t\tclass: { type: \"string\", value: classes.join(\" \") },\n\t\t},\n\t\tchildren: tree\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/rules.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/rules.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/rules.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for rules specifications\n\n```\n\\rules except ruleone ruletwo rulethree\n\\rules only ruleone ruletwo rulethree\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"rules\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\rules[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\tif(tokens.length > 0) {\n\t\tthis.parser.amendRules(tokens[0],tokens.slice(1));\n\t}\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for assigning styles and classes to paragraphs and other blocks. For example:\n\n```\n@@.myClass\n@@background-color:red;\nThis paragraph will have the CSS class `myClass`.\n\n* The `<ul>` around this list will also have the class `myClass`\n* List item 2\n\n@@\n```\n\nNote that classes and styles can be mixed subject to the rule that styles must precede classes. For example\n\n```\n@@.myFirstClass.mySecondClass\n@@width:100px;.myThirdClass\nThis is a paragraph\n@@\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(?:\\.([^\\r\\n\\s]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEndString = \"^@@(?:\\\\r?\\\\n)?\";\n\tvar classes = [], styles = [];\n\tdo {\n\t\t// Get the class and style\n\t\tif(this.match[1]) {\n\t\t\tstyles.push(this.match[1]);\n\t\t}\n\t\tif(this.match[2]) {\n\t\t\tclasses.push(this.match[2].split(\".\").join(\" \"));\n\t\t}\n\t\t// Move past the match\n\t\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t\t// Look for another line of classes and styles\n\t\tthis.match = this.matchRegExp.exec(this.parser.source);\n\t} while(this.match && this.match.index === this.parser.pos);\n\t// Parse the body\n\tvar tree = this.parser.parseBlocks(reEndString);\n\tfor(var t=0; t<tree.length; t++) {\n\t\tif(classes.length > 0) {\n\t\t\t$tw.utils.addClassToParseTreeNode(tree[t],classes.join(\" \"));\n\t\t}\n\t\tif(styles.length > 0) {\n\t\t\t$tw.utils.addAttributeToParseTreeNode(tree[t],\"style\",styles.join(\"\"));\n\t\t}\n\t}\n\treturn tree;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/styleinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/styleinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/styleinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for assigning styles and classes to inline runs. For example:\n\n```\n@@.myClass This is some text with a class@@\n@@background-color:red;This is some text with a background colour@@\n@@width:100px;.myClass This is some text with a class and a width@@\n```\n\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"styleinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /@@((?:[^\\.\\r\\n\\s:]+:[^\\r\\n;]+;)+)?(\\.(?:[^\\r\\n\\s]+)\\s+)?/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /@@/g;\n\t// Get the styles and class\n\tvar stylesString = this.match[1],\n\t\tclassString = this.match[2] ? this.match[2].split(\".\").join(\" \") : undefined;\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse the run up to the terminator\n\tvar tree = this.parser.parseInlineRun(reEnd,{eatTerminator: true});\n\t// Return the classed span\n\tvar node = {\n\t\ttype: \"element\",\n\t\ttag: \"span\",\n\t\tattributes: {\n\t\t\t\"class\": {type: \"string\", value: \"tc-inline-style\"}\n\t\t},\n\t\tchildren: tree\n\t};\n\tif(classString) {\n\t\t$tw.utils.addClassToParseTreeNode(node,classString);\n\t}\n\tif(stylesString) {\n\t\t$tw.utils.addAttributeToParseTreeNode(node,\"style\",stylesString);\n\t}\n\treturn [node];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/syslink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/syslink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/syslink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for system tiddler links.\nCan be suppressed preceding them with `~`.\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"syslink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp(\n\t\t\"~?\\\\$:\\\\/[\" +\n\t\t$tw.config.textPrimitives.anyLetter.substr(1,$tw.config.textPrimitives.anyLetter.length - 2) +\n\t\t\"\\/._-]+\",\n\t\t\"mg\"\n\t);\n};\n\nexports.parse = function() {\n\tvar match = this.match[0];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Create the link unless it is suppressed\n\tif(match.substr(0,1) === \"~\") {\n\t\treturn [{type: \"text\", text: match.substr(1)}];\n\t} else {\n\t\treturn [{\n\t\t\ttype: \"link\",\n\t\t\tattributes: {\n\t\t\t\tto: {type: \"string\", value: match}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: match\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/table.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/table.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/table.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text block rule for tables.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"table\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\|(?:[^\\n]*)\\|(?:[fhck]?)\\r?(?:\\n|$)/mg;\n};\n\nvar processRow = function(prevColumns) {\n\tvar cellRegExp = /(?:\\|([^\\n\\|]*)\\|)|(\\|[fhck]?\\r?(?:\\n|$))/mg,\n\t\tcellTermRegExp = /((?:\\x20*)\\|)/mg,\n\t\ttree = [],\n\t\tcol = 0,\n\t\tcolSpanCount = 1,\n\t\tprevCell,\n\t\tvAlign;\n\t// Match a single cell\n\tcellRegExp.lastIndex = this.parser.pos;\n\tvar cellMatch = cellRegExp.exec(this.parser.source);\n\twhile(cellMatch && cellMatch.index === this.parser.pos) {\n\t\tif(cellMatch[1] === \"~\") {\n\t\t\t// Rowspan\n\t\t\tvar last = prevColumns[col];\n\t\t\tif(last) {\n\t\t\t\tlast.rowSpanCount++;\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"rowspan\",last.rowSpanCount);\n\t\t\t\tvAlign = $tw.utils.getAttributeValueFromParseTreeNode(last.element,\"valign\",\"center\");\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"valign\",vAlign);\n\t\t\t\tif(colSpanCount > 1) {\n\t\t\t\t\t$tw.utils.addAttributeToParseTreeNode(last.element,\"colspan\",colSpanCount);\n\t\t\t\t\tcolSpanCount = 1;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \">\") {\n\t\t\t// Colspan\n\t\t\tcolSpanCount++;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[1] === \"<\" && prevCell) {\n\t\t\tcolSpanCount = 1 + $tw.utils.getAttributeValueFromParseTreeNode(prevCell,\"colspan\",1);\n\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\tcolSpanCount = 1;\n\t\t\t// Move to just before the `|` terminating the cell\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t} else if(cellMatch[2]) {\n\t\t\t// End of row\n\t\t\tif(prevCell && colSpanCount > 1) {\n\t\t\t\tif(prevCell.attributes && prevCell.attributes && prevCell.attributes.colspan) {\n\t\t\t\t\t\tcolSpanCount += prevCell.attributes.colspan.value;\n\t\t\t\t} else {\n\t\t\t\t\tcolSpanCount -= 1;\n\t\t\t\t}\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(prevCell,\"colspan\",colSpanCount);\n\t\t\t}\n\t\t\tthis.parser.pos = cellRegExp.lastIndex - 1;\n\t\t\tbreak;\n\t\t} else {\n\t\t\t// For ordinary cells, step beyond the opening `|`\n\t\t\tthis.parser.pos++;\n\t\t\t// Look for a space at the start of the cell\n\t\t\tvar spaceLeft = false;\n\t\t\tvAlign = null;\n\t\t\tif(this.parser.source.substr(this.parser.pos).search(/^\\^([^\\^]|\\^\\^)/) === 0) {\n\t\t\t\tvAlign = \"top\";\n\t\t\t} else if(this.parser.source.substr(this.parser.pos).search(/^,([^,]|,,)/) === 0) {\n\t\t\t\tvAlign = \"bottom\";\n\t\t\t}\n\t\t\tif(vAlign) {\n\t\t\t\tthis.parser.pos++;\n\t\t\t}\n\t\t\tvar chr = this.parser.source.substr(this.parser.pos,1);\n\t\t\twhile(chr === \" \") {\n\t\t\t\tspaceLeft = true;\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tchr = this.parser.source.substr(this.parser.pos,1);\n\t\t\t}\n\t\t\t// Check whether this is a heading cell\n\t\t\tvar cell;\n\t\t\tif(chr === \"!\") {\n\t\t\t\tthis.parser.pos++;\n\t\t\t\tcell = {type: \"element\", tag: \"th\", children: []};\n\t\t\t} else {\n\t\t\t\tcell = {type: \"element\", tag: \"td\", children: []};\n\t\t\t}\n\t\t\ttree.push(cell);\n\t\t\t// Record information about this cell\n\t\t\tprevCell = cell;\n\t\t\tprevColumns[col] = {rowSpanCount:1,element:cell};\n\t\t\t// Check for a colspan\n\t\t\tif(colSpanCount > 1) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"colspan\",colSpanCount);\n\t\t\t\tcolSpanCount = 1;\n\t\t\t}\n\t\t\t// Parse the cell\n\t\t\tcell.children = this.parser.parseInlineRun(cellTermRegExp,{eatTerminator: true});\n\t\t\t// Set the alignment for the cell\n\t\t\tif(vAlign) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"valign\",vAlign);\n\t\t\t}\n\t\t\tif(this.parser.source.substr(this.parser.pos - 2,1) === \" \") { // spaceRight\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",spaceLeft ? \"center\" : \"left\");\n\t\t\t} else if(spaceLeft) {\n\t\t\t\t$tw.utils.addAttributeToParseTreeNode(cell,\"align\",\"right\");\n\t\t\t}\n\t\t\t// Move back to the closing `|`\n\t\t\tthis.parser.pos--;\n\t\t}\n\t\tcol++;\n\t\tcellRegExp.lastIndex = this.parser.pos;\n\t\tcellMatch = cellRegExp.exec(this.parser.source);\n\t}\n\treturn tree;\n};\n\nexports.parse = function() {\n\tvar rowContainerTypes = {\"c\":\"caption\", \"h\":\"thead\", \"\":\"tbody\", \"f\":\"tfoot\"},\n\t\ttable = {type: \"element\", tag: \"table\", children: []},\n\t\trowRegExp = /^\\|([^\\n]*)\\|([fhck]?)\\r?(?:\\n|$)/mg,\n\t\trowTermRegExp = /(\\|(?:[fhck]?)\\r?(?:\\n|$))/mg,\n\t\tprevColumns = [],\n\t\tcurrRowType,\n\t\trowContainer,\n\t\trowCount = 0;\n\t// Match the row\n\trowRegExp.lastIndex = this.parser.pos;\n\tvar rowMatch = rowRegExp.exec(this.parser.source);\n\twhile(rowMatch && rowMatch.index === this.parser.pos) {\n\t\tvar rowType = rowMatch[2];\n\t\t// Check if it is a class assignment\n\t\tif(rowType === \"k\") {\n\t\t\t$tw.utils.addClassToParseTreeNode(table,rowMatch[1]);\n\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t} else {\n\t\t\t// Otherwise, create a new row if this one is of a different type\n\t\t\tif(rowType !== currRowType) {\n\t\t\t\trowContainer = {type: \"element\", tag: rowContainerTypes[rowType], children: []};\n\t\t\t\ttable.children.push(rowContainer);\n\t\t\t\tcurrRowType = rowType;\n\t\t\t}\n\t\t\t// Is this a caption row?\n\t\t\tif(currRowType === \"c\") {\n\t\t\t\t// If so, move past the opening `|` of the row\n\t\t\t\tthis.parser.pos++;\n\t\t\t\t// Move the caption to the first row if it isn't already\n\t\t\t\tif(table.children.length !== 1) {\n\t\t\t\t\ttable.children.pop(); // Take rowContainer out of the children array\n\t\t\t\t\ttable.children.splice(0,0,rowContainer); // Insert it at the bottom\t\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t// Set the alignment - TODO: figure out why TW did this\n//\t\t\t\trowContainer.attributes.align = rowCount === 0 ? \"top\" : \"bottom\";\n\t\t\t\t// Parse the caption\n\t\t\t\trowContainer.children = this.parser.parseInlineRun(rowTermRegExp,{eatTerminator: true});\n\t\t\t} else {\n\t\t\t\t// Create the row\n\t\t\t\tvar theRow = {type: \"element\", tag: \"tr\", children: []};\n\t\t\t\t$tw.utils.addClassToParseTreeNode(theRow,rowCount%2 ? \"oddRow\" : \"evenRow\");\n\t\t\t\trowContainer.children.push(theRow);\n\t\t\t\t// Process the row\n\t\t\t\ttheRow.children = processRow.call(this,prevColumns);\n\t\t\t\tthis.parser.pos = rowMatch.index + rowMatch[0].length;\n\t\t\t\t// Increment the row count\n\t\t\t\trowCount++;\n\t\t\t}\n\t\t}\n\t\trowMatch = rowRegExp.exec(this.parser.source);\n\t}\n\treturn [table];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for block-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}(?:\\r?\\n|$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {},\n\t\t\tisBlock: true\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tisBlock: true,\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/transcludeinline.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/transcludeinline.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/transcludeinline.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for inline-level transclusion. For example:\n\n```\n{{MyTiddler}}\n{{MyTiddler||TemplateTitle}}\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"transcludeinline\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\{\\{([^\\{\\}\\|]*)(?:\\|\\|([^\\|\\{\\}]+))?\\}\\}/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Get the match details\n\tvar template = $tw.utils.trim(this.match[2]),\n\t\ttextRef = $tw.utils.trim(this.match[1]);\n\t// Prepare the transclude widget\n\tvar transcludeNode = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {}\n\t\t};\n\t// Prepare the tiddler widget\n\tvar tr, targetTitle, targetField, targetIndex, tiddlerNode;\n\tif(textRef) {\n\t\ttr = $tw.utils.parseTextReference(textRef);\n\t\ttargetTitle = tr.title;\n\t\ttargetField = tr.field;\n\t\ttargetIndex = tr.index;\n\t\ttiddlerNode = {\n\t\t\ttype: \"tiddler\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: targetTitle}\n\t\t\t},\n\t\t\tchildren: [transcludeNode]\n\t\t};\n\t}\n\tif(template) {\n\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: template};\n\t\tif(textRef) {\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t} else {\n\t\tif(textRef) {\n\t\t\ttranscludeNode.attributes.tiddler = {type: \"string\", value: targetTitle};\n\t\t\tif(targetField) {\n\t\t\t\ttranscludeNode.attributes.field = {type: \"string\", value: targetField};\n\t\t\t}\n\t\t\tif(targetIndex) {\n\t\t\t\ttranscludeNode.attributes.index = {type: \"string\", value: targetIndex};\n\t\t\t}\n\t\t\treturn [tiddlerNode];\n\t\t} else {\n\t\t\treturn [transcludeNode];\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/typedblock.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/typedblock.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/typedblock.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text rule for typed blocks. For example:\n\n```\n$$$.js\nThis will be rendered as JavaScript\n$$$\n\n$$$.svg\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"150\" height=\"100\">\n <circle cx=\"100\" cy=\"50\" r=\"40\" stroke=\"black\" stroke-width=\"2\" fill=\"red\" />\n</svg>\n$$$\n\n$$$text/vnd.tiddlywiki>text/html\nThis will be rendered as an //HTML representation// of WikiText\n$$$\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.name = \"typedblock\";\nexports.types = {block: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$\\$([^ >\\r\\n]*)(?: *> *([^ \\r\\n]+))?\\r?\\n/mg;\n};\n\nexports.parse = function() {\n\tvar reEnd = /\\r?\\n\\$\\$\\$\\r?(?:\\n|$)/mg;\n\t// Save the type\n\tvar parseType = this.match[1],\n\t\trenderType = this.match[2];\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Look for the end of the block\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext;\n\t// Process the block\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\t// Parse the block according to the specified type\n\tvar parser = this.parser.wiki.parseText(parseType,text,{defaultType: \"text/plain\"});\n\t// If there's no render type, just return the parse tree\n\tif(!renderType) {\n\t\treturn parser.tree;\n\t} else {\n\t\t// Otherwise, render to the rendertype and return in a <PRE> tag\n\t\tvar widgetNode = this.parser.wiki.makeWidget(parser),\n\t\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\t\twidgetNode.render(container,null);\n\t\ttext = renderType === \"text/html\" ? container.innerHTML : container.textContent;\n\t\treturn [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"pre\",\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: text\n\t\t\t}]\n\t\t}];\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/whitespace.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/whitespace.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/whitespace.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki pragma rule for whitespace specifications\n\n```\n\\whitespace trim\n\\whitespace notrim\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"whitespace\";\nexports.types = {pragma: true};\n\n/*\nInstantiate parse rule\n*/\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /^\\\\whitespace[^\\S\\n]/mg;\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\tvar self = this;\n\t// Move past the pragma invocation\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// Parse whitespace delimited tokens terminated by a line break\n\tvar reMatch = /[^\\S\\n]*(\\S+)|(\\r?\\n)/mg,\n\t\ttokens = [];\n\treMatch.lastIndex = this.parser.pos;\n\tvar match = reMatch.exec(this.parser.source);\n\twhile(match && match.index === this.parser.pos) {\n\t\tthis.parser.pos = reMatch.lastIndex;\n\t\t// Exit if we've got the line break\n\t\tif(match[2]) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the token\n\t\tif(match[1]) {\n\t\t\ttokens.push(match[1]);\n\t\t}\n\t\t// Match the next token\n\t\tmatch = reMatch.exec(this.parser.source);\n\t}\n\t// Process the tokens\n\t$tw.utils.each(tokens,function(token) {\n\t\tswitch(token) {\n\t\t\tcase \"trim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = true;\n\t\t\t\tbreak;\n\t\t\tcase \"notrim\":\n\t\t\t\tself.parser.configTrimWhiteSpace = false;\n\t\t\t\tbreak;\n\t\t}\n\t});\n\t// No parse tree nodes to return\n\treturn [];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/rules/wikilink.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikilink.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikilink.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for wiki links. For example:\n\n```\nAWikiLink\nAnotherLink\n~SuppressedLink\n```\n\nPrecede a camel case word with `~` to prevent it from being recognised as a link.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"wikilink\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = new RegExp($tw.config.textPrimitives.unWikiLink + \"?\" + $tw.config.textPrimitives.wikiLink,\"mg\");\n};\n\n/*\nParse the most recent match\n*/\nexports.parse = function() {\n\t// Get the details of the match\n\tvar linkText = this.match[0];\n\t// Move past the macro call\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\t// If the link starts with the unwikilink character then just output it as plain text\n\tif(linkText.substr(0,1) === $tw.config.textPrimitives.unWikiLink) {\n\t\treturn [{type: \"text\", text: linkText.substr(1)}];\n\t}\n\t// If the link has been preceded with a blocked letter then don't treat it as a link\n\tif(this.match.index > 0) {\n\t\tvar preRegExp = new RegExp($tw.config.textPrimitives.blockPrefixLetters,\"mg\");\n\t\tpreRegExp.lastIndex = this.match.index-1;\n\t\tvar preMatch = preRegExp.exec(this.parser.source);\n\t\tif(preMatch && preMatch.index === this.match.index-1) {\n\t\t\treturn [{type: \"text\", text: linkText}];\n\t\t}\n\t}\n\treturn [{\n\t\ttype: \"link\",\n\t\tattributes: {\n\t\t\tto: {type: \"string\", value: linkText}\n\t\t},\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\ttext: linkText\n\t\t}]\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/core/modules/parsers/wikiparser/wikiparser.js": {
"title": "$:/core/modules/parsers/wikiparser/wikiparser.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/wikiparser.js\ntype: application/javascript\nmodule-type: parser\n\nThe wiki text parser processes blocks of source text into a parse tree.\n\nThe parse tree is made up of nested arrays of these JavaScript objects:\n\n\t{type: \"element\", tag: <string>, attributes: {}, children: []} - an HTML element\n\t{type: \"text\", text: <string>} - a text node\n\t{type: \"entity\", value: <string>} - an entity\n\t{type: \"raw\", html: <string>} - raw HTML\n\nAttributes are stored as hashmaps of the following objects:\n\n\t{type: \"string\", value: <string>} - literal string\n\t{type: \"indirect\", textReference: <textReference>} - indirect through a text reference\n\t{type: \"macro\", macro: <TBD>} - indirect through a macro invocation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar WikiParser = function(type,text,options) {\n\tthis.wiki = options.wiki;\n\tvar self = this;\n\t// Check for an externally linked tiddler\n\tif($tw.browser && (text || \"\") === \"\" && options._canonical_uri) {\n\t\tthis.loadRemoteTiddler(options._canonical_uri);\n\t\ttext = $tw.language.getRawString(\"LazyLoadingWarning\");\n\t}\n\t// Initialise the classes if we don't have them already\n\tif(!this.pragmaRuleClasses) {\n\t\tWikiParser.prototype.pragmaRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"pragma\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.pragmaRuleClasses,\"$:/config/WikiParserRules/Pragmas/\");\n\t}\n\tif(!this.blockRuleClasses) {\n\t\tWikiParser.prototype.blockRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"block\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.blockRuleClasses,\"$:/config/WikiParserRules/Block/\");\n\t}\n\tif(!this.inlineRuleClasses) {\n\t\tWikiParser.prototype.inlineRuleClasses = $tw.modules.createClassesFromModules(\"wikirule\",\"inline\",$tw.WikiRuleBase);\n\t\tthis.setupRules(WikiParser.prototype.inlineRuleClasses,\"$:/config/WikiParserRules/Inline/\");\n\t}\n\t// Save the parse text\n\tthis.type = type || \"text/vnd.tiddlywiki\";\n\tthis.source = text || \"\";\n\tthis.sourceLength = this.source.length;\n\t// Flag for ignoring whitespace\n\tthis.configTrimWhiteSpace = false;\n\t// Set current parse position\n\tthis.pos = 0;\n\t// Instantiate the pragma parse rules\n\tthis.pragmaRules = this.instantiateRules(this.pragmaRuleClasses,\"pragma\",0);\n\t// Instantiate the parser block and inline rules\n\tthis.blockRules = this.instantiateRules(this.blockRuleClasses,\"block\",0);\n\tthis.inlineRules = this.instantiateRules(this.inlineRuleClasses,\"inline\",0);\n\t// Parse any pragmas\n\tthis.tree = [];\n\tvar topBranch = this.parsePragmas();\n\t// Parse the text into inline runs or blocks\n\tif(options.parseAsInline) {\n\t\ttopBranch.push.apply(topBranch,this.parseInlineRun());\n\t} else {\n\t\ttopBranch.push.apply(topBranch,this.parseBlocks());\n\t}\n\t// Return the parse tree\n};\n\n/*\n*/\nWikiParser.prototype.loadRemoteTiddler = function(url) {\n\tvar self = this;\n\t$tw.utils.httpRequest({\n\t\turl: url,\n\t\ttype: \"GET\",\n\t\tcallback: function(err,data) {\n\t\t\tif(!err) {\n\t\t\t\tvar tiddlers = self.wiki.deserializeTiddlers(\".tid\",data,self.wiki.getCreationFields());\n\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\ttiddler[\"_canonical_uri\"] = url;\n\t\t\t\t});\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tself.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\n*/\nWikiParser.prototype.setupRules = function(proto,configPrefix) {\n\tvar self = this;\n\tif(!$tw.safemode) {\n\t\t$tw.utils.each(proto,function(object,name) {\n\t\t\tif(self.wiki.getTiddlerText(configPrefix + name,\"enable\") !== \"enable\") {\n\t\t\t\tdelete proto[name];\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nInstantiate an array of parse rules\n*/\nWikiParser.prototype.instantiateRules = function(classes,type,startPos) {\n\tvar rulesInfo = [],\n\t\tself = this;\n\t$tw.utils.each(classes,function(RuleClass) {\n\t\t// Instantiate the rule\n\t\tvar rule = new RuleClass(self);\n\t\trule.is = {};\n\t\trule.is[type] = true;\n\t\trule.init(self);\n\t\tvar matchIndex = rule.findNextMatch(startPos);\n\t\tif(matchIndex !== undefined) {\n\t\t\trulesInfo.push({\n\t\t\t\trule: rule,\n\t\t\t\tmatchIndex: matchIndex\n\t\t\t});\n\t\t}\n\t});\n\treturn rulesInfo;\n};\n\n/*\nSkip any whitespace at the current position. Options are:\n\ttreatNewlinesAsNonWhitespace: true if newlines are NOT to be treated as whitespace\n*/\nWikiParser.prototype.skipWhitespace = function(options) {\n\toptions = options || {};\n\tvar whitespaceRegExp = options.treatNewlinesAsNonWhitespace ? /([^\\S\\n]+)/mg : /(\\s+)/mg;\n\twhitespaceRegExp.lastIndex = this.pos;\n\tvar whitespaceMatch = whitespaceRegExp.exec(this.source);\n\tif(whitespaceMatch && whitespaceMatch.index === this.pos) {\n\t\tthis.pos = whitespaceRegExp.lastIndex;\n\t}\n};\n\n/*\nGet the next match out of an array of parse rule instances\n*/\nWikiParser.prototype.findNextMatch = function(rules,startPos) {\n\t// Find the best matching rule by finding the closest match position\n\tvar matchingRule,\n\t\tmatchingRulePos = this.sourceLength;\n\t// Step through each rule\n\tfor(var t=0; t<rules.length; t++) {\n\t\tvar ruleInfo = rules[t];\n\t\t// Ask the rule to get the next match if we've moved past the current one\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex < startPos) {\n\t\t\truleInfo.matchIndex = ruleInfo.rule.findNextMatch(startPos);\n\t\t}\n\t\t// Adopt this match if it's closer than the current best match\n\t\tif(ruleInfo.matchIndex !== undefined && ruleInfo.matchIndex <= matchingRulePos) {\n\t\t\tmatchingRule = ruleInfo;\n\t\t\tmatchingRulePos = ruleInfo.matchIndex;\n\t\t}\n\t}\n\treturn matchingRule;\n};\n\n/*\nParse any pragmas at the beginning of a block of parse text\n*/\nWikiParser.prototype.parsePragmas = function() {\n\tvar currentTreeBranch = this.tree;\n\twhile(true) {\n\t\t// Skip whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check for the end of the text\n\t\tif(this.pos >= this.sourceLength) {\n\t\t\tbreak;\n\t\t}\n\t\t// Check if we've arrived at a pragma rule match\n\t\tvar nextMatch = this.findNextMatch(this.pragmaRules,this.pos);\n\t\t// If not, just exit\n\t\tif(!nextMatch || nextMatch.matchIndex !== this.pos) {\n\t\t\tbreak;\n\t\t}\n\t\t// Process the pragma rule\n\t\tvar subTree = nextMatch.rule.parse();\n\t\tif(subTree.length > 0) {\n\t\t\t// Quick hack; we only cope with a single parse tree node being returned, which is true at the moment\n\t\t\tcurrentTreeBranch.push.apply(currentTreeBranch,subTree);\n\t\t\tsubTree[0].children = [];\n\t\t\tcurrentTreeBranch = subTree[0].children;\n\t\t}\n\t}\n\treturn currentTreeBranch;\n};\n\n/*\nParse a block from the current position\n\tterminatorRegExpString: optional regular expression string that identifies the end of plain paragraphs. Must not include capturing parenthesis\n*/\nWikiParser.prototype.parseBlock = function(terminatorRegExpString) {\n\tvar terminatorRegExp = terminatorRegExpString ? new RegExp(\"(\" + terminatorRegExpString + \"|\\\\r?\\\\n\\\\r?\\\\n)\",\"mg\") : /(\\r?\\n\\r?\\n)/mg;\n\tthis.skipWhitespace();\n\tif(this.pos >= this.sourceLength) {\n\t\treturn [];\n\t}\n\t// Look for a block rule that applies at the current position\n\tvar nextMatch = this.findNextMatch(this.blockRules,this.pos);\n\tif(nextMatch && nextMatch.matchIndex === this.pos) {\n\t\treturn nextMatch.rule.parse();\n\t}\n\t// Treat it as a paragraph if we didn't find a block rule\n\treturn [{type: \"element\", tag: \"p\", children: this.parseInlineRun(terminatorRegExp)}];\n};\n\n/*\nParse a series of blocks of text until a terminating regexp is encountered or the end of the text\n\tterminatorRegExpString: terminating regular expression\n*/\nWikiParser.prototype.parseBlocks = function(terminatorRegExpString) {\n\tif(terminatorRegExpString) {\n\t\treturn this.parseBlocksTerminated(terminatorRegExpString);\n\t} else {\n\t\treturn this.parseBlocksUnterminated();\n\t}\n};\n\n/*\nParse a block from the current position to the end of the text\n*/\nWikiParser.prototype.parseBlocksUnterminated = function() {\n\tvar tree = [];\n\twhile(this.pos < this.sourceLength) {\n\t\ttree.push.apply(tree,this.parseBlock());\n\t}\n\treturn tree;\n};\n\n/*\nParse blocks of text until a terminating regexp is encountered\n*/\nWikiParser.prototype.parseBlocksTerminated = function(terminatorRegExpString) {\n\tvar terminatorRegExp = new RegExp(\"(\" + terminatorRegExpString + \")\",\"mg\"),\n\t\ttree = [];\n\t// Skip any whitespace\n\tthis.skipWhitespace();\n\t// Check if we've got the end marker\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar match = terminatorRegExp.exec(this.source);\n\t// Parse the text into blocks\n\twhile(this.pos < this.sourceLength && !(match && match.index === this.pos)) {\n\t\tvar blocks = this.parseBlock(terminatorRegExpString);\n\t\ttree.push.apply(tree,blocks);\n\t\t// Skip any whitespace\n\t\tthis.skipWhitespace();\n\t\t// Check if we've got the end marker\n\t\tterminatorRegExp.lastIndex = this.pos;\n\t\tmatch = terminatorRegExp.exec(this.source);\n\t}\n\tif(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t}\n\treturn tree;\n};\n\n/*\nParse a run of text at the current position\n\tterminatorRegExp: a regexp at which to stop the run\n\toptions: see below\nOptions available:\n\teatTerminator: move the parse position past any encountered terminator (default false)\n*/\nWikiParser.prototype.parseInlineRun = function(terminatorRegExp,options) {\n\tif(terminatorRegExp) {\n\t\treturn this.parseInlineRunTerminated(terminatorRegExp,options);\n\t} else {\n\t\treturn this.parseInlineRunUnterminated(options);\n\t}\n};\n\nWikiParser.prototype.parseInlineRunUnterminated = function(options) {\n\tvar tree = [];\n\t// Find the next occurrence of an inline rule\n\tvar nextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around the matches until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && nextMatch) {\n\t\t// Process the text preceding the run rule\n\t\tif(nextMatch.matchIndex > this.pos) {\n\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,nextMatch.matchIndex));\n\t\t\tthis.pos = nextMatch.matchIndex;\n\t\t}\n\t\t// Process the run rule\n\t\ttree.push.apply(tree,nextMatch.rule.parse());\n\t\t// Look for the next run rule\n\t\tnextMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\nWikiParser.prototype.parseInlineRunTerminated = function(terminatorRegExp,options) {\n\toptions = options || {};\n\tvar tree = [];\n\t// Find the next occurrence of the terminator\n\tterminatorRegExp.lastIndex = this.pos;\n\tvar terminatorMatch = terminatorRegExp.exec(this.source);\n\t// Find the next occurrence of a inlinerule\n\tvar inlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t// Loop around until we've reached the end of the text\n\twhile(this.pos < this.sourceLength && (terminatorMatch || inlineRuleMatch)) {\n\t\t// Return if we've found the terminator, and it precedes any inline rule match\n\t\tif(terminatorMatch) {\n\t\t\tif(!inlineRuleMatch || inlineRuleMatch.matchIndex >= terminatorMatch.index) {\n\t\t\t\tif(terminatorMatch.index > this.pos) {\n\t\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,terminatorMatch.index));\n\t\t\t\t}\n\t\t\t\tthis.pos = terminatorMatch.index;\n\t\t\t\tif(options.eatTerminator) {\n\t\t\t\t\tthis.pos += terminatorMatch[0].length;\n\t\t\t\t}\n\t\t\t\treturn tree;\n\t\t\t}\n\t\t}\n\t\t// Process any inline rule, along with the text preceding it\n\t\tif(inlineRuleMatch) {\n\t\t\t// Preceding text\n\t\t\tif(inlineRuleMatch.matchIndex > this.pos) {\n\t\t\t\tthis.pushTextWidget(tree,this.source.substring(this.pos,inlineRuleMatch.matchIndex));\n\t\t\t\tthis.pos = inlineRuleMatch.matchIndex;\n\t\t\t}\n\t\t\t// Process the inline rule\n\t\t\ttree.push.apply(tree,inlineRuleMatch.rule.parse());\n\t\t\t// Look for the next inline rule\n\t\t\tinlineRuleMatch = this.findNextMatch(this.inlineRules,this.pos);\n\t\t\t// Look for the next terminator match\n\t\t\tterminatorRegExp.lastIndex = this.pos;\n\t\t\tterminatorMatch = terminatorRegExp.exec(this.source);\n\t\t}\n\t}\n\t// Process the remaining text\n\tif(this.pos < this.sourceLength) {\n\t\tthis.pushTextWidget(tree,this.source.substr(this.pos));\n\t}\n\tthis.pos = this.sourceLength;\n\treturn tree;\n};\n\n/*\nPush a text widget onto an array, respecting the configTrimWhiteSpace setting\n*/\nWikiParser.prototype.pushTextWidget = function(array,text) {\n\tif(this.configTrimWhiteSpace) {\n\t\ttext = $tw.utils.trim(text);\n\t}\n\tif(text) {\n\t\tarray.push({type: \"text\", text: text});\t\t\n\t}\n};\n\n/*\nParse zero or more class specifiers `.classname`\n*/\nWikiParser.prototype.parseClasses = function() {\n\tvar classRegExp = /\\.([^\\s\\.]+)/mg,\n\t\tclassNames = [];\n\tclassRegExp.lastIndex = this.pos;\n\tvar match = classRegExp.exec(this.source);\n\twhile(match && match.index === this.pos) {\n\t\tthis.pos = match.index + match[0].length;\n\t\tclassNames.push(match[1]);\n\t\tmatch = classRegExp.exec(this.source);\n\t}\n\treturn classNames;\n};\n\n/*\nAmend the rules used by this instance of the parser\n\ttype: `only` keeps just the named rules, `except` keeps all but the named rules\n\tnames: array of rule names\n*/\nWikiParser.prototype.amendRules = function(type,names) {\n\tnames = names || [];\n\t// Define the filter function\n\tvar keepFilter;\n\tif(type === \"only\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) !== -1;\n\t\t};\n\t} else if(type === \"except\") {\n\t\tkeepFilter = function(name) {\n\t\t\treturn names.indexOf(name) === -1;\n\t\t};\n\t} else {\n\t\treturn;\n\t}\n\t// Define a function to process each of our rule arrays\n\tvar processRuleArray = function(ruleArray) {\n\t\tfor(var t=ruleArray.length-1; t>=0; t--) {\n\t\t\tif(!keepFilter(ruleArray[t].rule.name)) {\n\t\t\t\truleArray.splice(t,1);\n\t\t\t}\n\t\t}\n\t};\n\t// Process each rule array\n\tprocessRuleArray(this.pragmaRules);\n\tprocessRuleArray(this.blockRules);\n\tprocessRuleArray(this.inlineRules);\n};\n\nexports[\"text/vnd.tiddlywiki\"] = WikiParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/core/modules/parsers/wikiparser/rules/wikirulebase.js": {
"title": "$:/core/modules/parsers/wikiparser/rules/wikirulebase.js",
"text": "/*\\\ntitle: $:/core/modules/parsers/wikiparser/rules/wikirulebase.js\ntype: application/javascript\nmodule-type: global\n\nBase class for wiki parser rules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nThis constructor is always overridden with a blank constructor, and so shouldn't be used\n*/\nvar WikiRuleBase = function() {\n};\n\n/*\nTo be overridden by individual rules\n*/\nWikiRuleBase.prototype.init = function(parser) {\n\tthis.parser = parser;\n};\n\n/*\nDefault implementation of findNextMatch uses RegExp matching\n*/\nWikiRuleBase.prototype.findNextMatch = function(startPos) {\n\tthis.matchRegExp.lastIndex = startPos;\n\tthis.match = this.matchRegExp.exec(this.parser.source);\n\treturn this.match ? this.match.index : undefined;\n};\n\nexports.WikiRuleBase = WikiRuleBase;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/pluginswitcher.js": {
"title": "$:/core/modules/pluginswitcher.js",
"text": "/*\\\ntitle: $:/core/modules/pluginswitcher.js\ntype: application/javascript\nmodule-type: global\n\nManages switching plugins for themes and languages.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\noptions:\nwiki: wiki store to be used\npluginType: type of plugin to be switched\ncontrollerTitle: title of tiddler used to control switching of this resource\ndefaultPlugins: array of default plugins to be used if nominated plugin isn't found\nonSwitch: callback when plugin is switched (single parameter is array of plugin titles)\n*/\nfunction PluginSwitcher(options) {\n\tthis.wiki = options.wiki;\n\tthis.pluginType = options.pluginType;\n\tthis.controllerTitle = options.controllerTitle;\n\tthis.defaultPlugins = options.defaultPlugins || [];\n\tthis.onSwitch = options.onSwitch;\n\t// Switch to the current plugin\n\tthis.switchPlugins();\n\t// Listen for changes to the selected plugin\n\tvar self = this;\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,self.controllerTitle)) {\n\t\t\tself.switchPlugins();\n\t\t}\n\t});\n}\n\nPluginSwitcher.prototype.switchPlugins = function() {\n\t// Get the name of the current theme\n\tvar selectedPluginTitle = this.wiki.getTiddlerText(this.controllerTitle);\n\t// If it doesn't exist, then fallback to one of the default themes\n\tvar index = 0;\n\twhile(!this.wiki.getTiddler(selectedPluginTitle) && index < this.defaultPlugins.length) {\n\t\tselectedPluginTitle = this.defaultPlugins[index++];\n\t}\n\t// Accumulate the titles of the plugins that we need to load\n\tvar plugins = [],\n\t\tself = this,\n\t\taccumulatePlugin = function(title) {\n\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\tif(tiddler && tiddler.isPlugin() && plugins.indexOf(title) === -1) {\n\t\t\t\tplugins.push(title);\n\t\t\t\tvar pluginInfo = JSON.parse(self.wiki.getTiddlerText(title)),\n\t\t\t\t\tdependents = $tw.utils.parseStringArray(tiddler.fields.dependents || \"\");\n\t\t\t\t$tw.utils.each(dependents,function(title) {\n\t\t\t\t\taccumulatePlugin(title);\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\taccumulatePlugin(selectedPluginTitle);\n\t// Read the plugin info for the incoming plugins\n\tvar changes = $tw.wiki.readPluginInfo(plugins);\n\t// Unregister any existing theme tiddlers\n\tvar unregisteredTiddlers = $tw.wiki.unregisterPluginTiddlers(this.pluginType);\n\t// Register any new theme tiddlers\n\tvar registeredTiddlers = $tw.wiki.registerPluginTiddlers(this.pluginType,plugins);\n\t// Unpack the current theme tiddlers\n\t$tw.wiki.unpackPluginTiddlers();\n\t// Call the switch handler\n\tif(this.onSwitch) {\n\t\tthis.onSwitch(plugins);\n\t}\n};\n\nexports.PluginSwitcher = PluginSwitcher;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/saver-handler.js": {
"title": "$:/core/modules/saver-handler.js",
"text": "/*\\\ntitle: $:/core/modules/saver-handler.js\ntype: application/javascript\nmodule-type: global\n\nThe saver handler tracks changes to the store and handles saving the entire wiki via saver modules.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInstantiate the saver handler with the following options:\nwiki: wiki to be synced\ndirtyTracking: true if dirty tracking should be performed\n*/\nfunction SaverHandler(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\tthis.dirtyTracking = options.dirtyTracking;\n\tthis.preloadDirty = options.preloadDirty || [];\n\tthis.pendingAutoSave = false;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"saver-handler\");\n\t// Initialise our savers\n\tif($tw.browser) {\n\t\tthis.initSavers();\n\t}\n\t// Only do dirty tracking if required\n\tif($tw.browser && this.dirtyTracking) {\n\t\t// Compile the dirty tiddler filter\n\t\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t\t// Count of changes that have not yet been saved\n\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(self.preloadDirty,function(title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t});\n\t\tthis.numChanges = filteredChanges.length;\n\t\t// Listen out for changes to tiddlers\n\t\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t\t// Filter the changes so that we only count changes to tiddlers that we care about\n\t\t\tvar filteredChanges = self.filterFn.call(self.wiki,function(iterator) {\n\t\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\t\t\t\titerator(tiddler,title);\n\t\t\t\t});\n\t\t\t});\n\t\t\t// Adjust the number of changes\n\t\t\tself.numChanges += filteredChanges.length;\n\t\t\tself.updateDirtyStatus();\n\t\t\t// Do any autosave if one is pending and there's no more change events\n\t\t\tif(self.pendingAutoSave && self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tself.pendingAutoSave = false;\n\t\t\t}\n\t\t});\n\t\t// Listen for the autosave event\n\t\t$tw.rootWidget.addEventListener(\"tm-auto-save-wiki\",function(event) {\n\t\t\t// Do the autosave unless there are outstanding tiddler change events\n\t\t\tif(self.wiki.getSizeOfTiddlerEventQueue() === 0) {\n\t\t\t\t// Check if we're dirty\n\t\t\t\tif(self.numChanges > 0) {\n\t\t\t\t\tself.saveWiki({\n\t\t\t\t\t\tmethod: \"autosave\",\n\t\t\t\t\t\tdownloadType: \"text/plain\"\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// Otherwise put ourselves in the \"pending autosave\" state and wait for the change event before we do the autosave\n\t\t\t\tself.pendingAutoSave = true;\n\t\t\t}\n\t\t});\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t}\n\t// Install the save action handlers\n\tif($tw.browser) {\n\t\t$tw.rootWidget.addEventListener(\"tm-save-wiki\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-download-file\",function(event) {\n\t\t\tself.saveWiki({\n\t\t\t\tmethod: \"download\",\n\t\t\t\ttemplate: event.param,\n\t\t\t\tdownloadType: \"text/plain\",\n\t\t\t\tvariables: event.paramObject\n\t\t\t});\n\t\t});\n\t}\n}\n\nSaverHandler.prototype.titleSyncFilter = \"$:/config/SaverFilter\";\nSaverHandler.prototype.titleAutoSave = \"$:/config/AutoSave\";\nSaverHandler.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\n\n/*\nSelect the appropriate saver modules and set them up\n*/\nSaverHandler.prototype.initSavers = function(moduleType) {\n\tmoduleType = moduleType || \"saver\";\n\t// Instantiate the available savers\n\tthis.savers = [];\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(moduleType,function(title,module) {\n\t\tif(module.canSave(self)) {\n\t\t\tself.savers.push(module.create(self.wiki));\n\t\t}\n\t});\n\t// Sort the savers into priority order\n\tthis.savers.sort(function(a,b) {\n\t\tif(a.info.priority < b.info.priority) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(a.info.priority > b.info.priority) {\n\t\t\t\treturn +1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nSave the wiki contents. Options are:\n\tmethod: \"save\", \"autosave\" or \"download\"\n\ttemplate: the tiddler containing the template to save\n\tdownloadType: the content type for the saved file\n*/\nSaverHandler.prototype.saveWiki = function(options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tmethod = options.method || \"save\";\n\t// Ignore autosave if disabled\n\tif(method === \"autosave\" && this.wiki.getTiddlerText(this.titleAutoSave,\"yes\") !== \"yes\") {\n\t\treturn false;\n\t}\n\tvar\tvariables = options.variables || {},\n\t\ttemplate = options.template || \"$:/core/save/all\",\n\t\tdownloadType = options.downloadType || \"text/plain\",\n\t\ttext = this.wiki.renderTiddler(downloadType,template,options),\n\t\tcallback = function(err) {\n\t\t\tif(err) {\n\t\t\t\talert($tw.language.getString(\"Error/WhileSaving\") + \":\\n\\n\" + err);\n\t\t\t} else {\n\t\t\t\t// Clear the task queue if we're saving (rather than downloading)\n\t\t\t\tif(method !== \"download\") {\n\t\t\t\t\tself.numChanges = 0;\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t}\n\t\t\t\t$tw.notifier.display(self.titleSavedNotification);\n\t\t\t\tif(options.callback) {\n\t\t\t\t\toptions.callback();\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t// Call the highest priority saver that supports this method\n\tfor(var t=this.savers.length-1; t>=0; t--) {\n\t\tvar saver = this.savers[t];\n\t\tif(saver.info.capabilities.indexOf(method) !== -1 && saver.save(text,method,callback,{variables: {filename: variables.filename}})) {\n\t\t\tthis.logger.log(\"Saving wiki with method\",method,\"through saver\",saver.info.name);\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSaverHandler.prototype.isDirty = function() {\n\treturn this.numChanges > 0;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSaverHandler.prototype.updateDirtyStatus = function() {\n\tif($tw.browser) {\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",this.isDirty());\n\t}\n};\n\nexports.SaverHandler = SaverHandler;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/savers/andtidwiki.js": {
"title": "$:/core/modules/savers/andtidwiki.js",
"text": "/*\\\ntitle: $:/core/modules/savers/andtidwiki.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the AndTidWiki Android app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar AndTidWiki = function(wiki) {\n};\n\nAndTidWiki.prototype.save = function(text,method,callback,options) {\n\tvar filename = options && options.variables ? options.variables.filename : null;\n\tif (method === \"download\") {\n\t\t// Support download\n\t\tif (window.twi.saveDownload) {\n\t\t\ttry {\n\t\t\t\twindow.twi.saveDownload(text,filename);\n\t\t\t} catch(err) {\n\t\t\t\tif (err.message === \"Method not found\") {\n\t\t\t\t\twindow.twi.saveDownload(text);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tvar link = document.createElement(\"a\");\n\t\t\tlink.setAttribute(\"href\",\"data:text/plain,\" + encodeURIComponent(text));\n\t\t\tif (filename) {\n\t\t\t link.setAttribute(\"download\",filename);\n\t\t\t}\n\t\t\tdocument.body.appendChild(link);\n\t\t\tlink.click();\n\t\t\tdocument.body.removeChild(link);\n\t\t}\n\t} else if (window.twi.saveWiki) {\n\t\t// Direct save in Tiddloid\n\t\twindow.twi.saveWiki(text);\n\t} else {\n\t\t// Get the pathname of this document\n\t\tvar pathname = decodeURIComponent(document.location.toString().split(\"#\")[0]);\n\t\t// Strip the file://\n\t\tif(pathname.indexOf(\"file://\") === 0) {\n\t\t\tpathname = pathname.substr(7);\n\t\t}\n\t\t// Strip any query or location part\n\t\tvar p = pathname.indexOf(\"?\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\tp = pathname.indexOf(\"#\");\n\t\tif(p !== -1) {\n\t\t\tpathname = pathname.substr(0,p);\n\t\t}\n\t\t// Save the file\n\t\twindow.twi.saveFile(pathname,text);\n\t}\n\t// Call the callback\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nAndTidWiki.prototype.info = {\n\tname: \"andtidwiki\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.twi && !!window.twi.saveFile;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new AndTidWiki(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/beaker.js": {
"title": "$:/core/modules/savers/beaker.js",
"text": "/*\\\ntitle: $:/core/modules/savers/beaker.js\ntype: application/javascript\nmodule-type: saver\n\nSaves files using the Beaker browser's (https://beakerbrowser.com) Dat protocol (https://datproject.org/)\nCompatible with beaker >= V0.7.2\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet up the saver\n*/\nvar BeakerSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nBeakerSaver.prototype.save = function(text,method,callback) {\n\tvar dat = new DatArchive(\"\" + window.location),\n\t\tpathname = (\"\" + window.location.pathname).split(\"#\")[0];\n\tdat.stat(pathname).then(function(value) {\n\t\tif(value.isDirectory()) {\n\t\t\tpathname = pathname + \"/index.html\";\n\t\t}\n\t\tdat.writeFile(pathname,text,\"utf8\").then(function(value) {\n\t\t\tcallback(null);\n\t\t},function(reason) {\n\t\t\tcallback(\"Beaker Saver Write Error: \" + reason);\n\t\t});\n\t},function(reason) {\n\t\tcallback(\"Beaker Saver Stat Error: \" + reason);\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nBeakerSaver.prototype.info = {\n\tname: \"beaker\",\n\tpriority: 3000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.DatArchive && location.protocol===\"dat:\";\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new BeakerSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/download.js": {
"title": "$:/core/modules/savers/download.js",
"text": "/*\\\ntitle: $:/core/modules/savers/download.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar DownloadSaver = function(wiki) {\n};\n\nDownloadSaver.prototype.save = function(text,method,callback,options) {\n\toptions = options || {};\n\t// Get the current filename\n\tvar filename = options.variables.filename;\n\tif(!filename) {\n\t\tvar p = document.location.pathname.lastIndexOf(\"/\");\n\t\tif(p !== -1) {\n\t\t\t// We decode the pathname because document.location is URL encoded by the browser\n\t\t\tfilename = decodeURIComponent(document.location.pathname.substr(p+1));\n\t\t}\n\t}\n\tif(!filename) {\n\t\tfilename = \"tiddlywiki.html\";\n\t}\n\t// Set up the link\n\tvar link = document.createElement(\"a\");\n\tif(Blob !== undefined) {\n\t\tvar blob = new Blob([text], {type: \"text/html\"});\n\t\tlink.setAttribute(\"href\", URL.createObjectURL(blob));\n\t} else {\n\t\tlink.setAttribute(\"href\",\"data:text/html,\" + encodeURIComponent(text));\n\t}\n\tlink.setAttribute(\"download\",filename);\n\tdocument.body.appendChild(link);\n\tlink.click();\n\tdocument.body.removeChild(link);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nDownloadSaver.prototype.info = {\n\tname: \"download\",\n\tpriority: 100\n};\n\nObject.defineProperty(DownloadSaver.prototype.info, \"capabilities\", {\n\tget: function() {\n\t\tvar capabilities = [\"save\", \"download\"];\n\t\tif(($tw.wiki.getTextReference(\"$:/config/DownloadSaver/AutoSave\") || \"\").toLowerCase() === \"yes\") {\n\t\t\tcapabilities.push(\"autosave\");\n\t\t}\n\t\treturn capabilities;\n\t}\n});\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn document.createElement(\"a\").download !== undefined;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new DownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/fsosaver.js": {
"title": "$:/core/modules/savers/fsosaver.js",
"text": "/*\\\ntitle: $:/core/modules/savers/fsosaver.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via MS FileSystemObject ActiveXObject\n\nNote: Since TiddlyWiki's markup contains the MOTW, the FileSystemObject normally won't be available. \nHowever, if the wiki is loaded as an .HTA file (Windows HTML Applications) then the FSO can be used.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar FSOSaver = function(wiki) {\n};\n\nFSOSaver.prototype.save = function(text,method,callback) {\n\t// Get the pathname of this document\n\tvar pathname = unescape(document.location.pathname);\n\t// Test for a Windows path of the form /x:\\blah...\n\tif(/^\\/[A-Z]\\:\\\\[^\\\\]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t} else if(document.location.hostname !== \"\" && /^\\/\\\\[^\\\\]+\\\\[^\\\\]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t// Remove the leading slash\n\t\tpathname = pathname.substr(1);\n\t\t// reconstruct UNC path\n\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t} else {\n\t\treturn false;\n\t}\n\t// Save the file (as UTF-16)\n\tvar fso = new ActiveXObject(\"Scripting.FileSystemObject\");\n\tvar file = fso.OpenTextFile(pathname,2,-1,-1);\n\tfile.Write(text);\n\tfile.Close();\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nFSOSaver.prototype.info = {\n\tname: \"FSOSaver\",\n\tpriority: 120,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\ttry {\n\t\treturn (window.location.protocol === \"file:\") && !!(new ActiveXObject(\"Scripting.FileSystemObject\"));\n\t} catch(e) { return false; }\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new FSOSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitea.js": {
"title": "$:/core/modules/savers/gitea.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitea.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the gitea\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GiteaSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGiteaSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/Gitea/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"Gitea\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/Gitea/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/Gitea/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/Gitea/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/Gitea/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/Gitea/ServerURL\") || \"https://gitea\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar use_put = true;\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif(sha === \"\"){\n\t\t\t\t\tuse_put = false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: endpoint + \"/repos/\" + repo + \"/branches/\" + branch,\n\t\t\t\ttype: \"GET\",\n\t\t\t\theaders: headers,\n\t\t\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\t\t\tif(xhr.status === 404) {\n\t\t\t\t\t\tcallback(\"Please ensure the branch in the Gitea repo exists\");\n\t\t\t\t\t}else{\n\t\t\t\t\t\tdata[\"branch\"] = branch;\n\t\t\t\t\t\tself.upload(uri + filename, use_put?\"PUT\":\"POST\", headers, data, callback);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\nGiteaSaver.prototype.upload = function(uri,method,headers,data,callback) {\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: method,\n\t\theaders: headers,\n\t\tdata: JSON.stringify(data),\n\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\tcallback(null);\n\t\t}\n\t});\n};\n\n/*\nInformation about this saver\n*/\nGiteaSaver.prototype.info = {\n\tname: \"Gitea\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GiteaSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/github.js": {
"title": "$:/core/modules/savers/github.js",
"text": "/*\\\ntitle: $:/core/modules/savers/github.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitHub v3 REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitHubSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitHubSaver.prototype.save = function(text,method,callback) {\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitHub/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"github\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitHub/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitHub/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitHub/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitHub/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitHub/ServerURL\") || \"https://api.github.com\",\n\t\theaders = {\n\t\t\t\"Accept\": \"application/vnd.github.v3+json\",\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Authorization\": \"Basic \" + window.btoa(username + \":\" + password)\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/repos/\" + repo + \"/contents\" + path;\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tdata: {\n\t\t\tref: branch\n\t\t},\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tmessage: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: $tw.utils.base64Encode(text),\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a PUT request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + filename,\n\t\t\t\ttype: \"PUT\",\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitHubSaver.prototype.info = {\n\tname: \"github\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitHubSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/gitlab.js": {
"title": "$:/core/modules/savers/gitlab.js",
"text": "/*\\\ntitle: $:/core/modules/savers/gitlab.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by pushing a commit to the GitLab REST API\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: true */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar GitLabSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nGitLabSaver.prototype.save = function(text,method,callback) {\n\t/* See https://docs.gitlab.com/ee/api/repository_files.html */\n\tvar self = this,\n\t\tusername = this.wiki.getTiddlerText(\"$:/GitLab/Username\"),\n\t\tpassword = $tw.utils.getPassword(\"gitlab\"),\n\t\trepo = this.wiki.getTiddlerText(\"$:/GitLab/Repo\"),\n\t\tpath = this.wiki.getTiddlerText(\"$:/GitLab/Path\",\"\"),\n\t\tfilename = this.wiki.getTiddlerText(\"$:/GitLab/Filename\"),\n\t\tbranch = this.wiki.getTiddlerText(\"$:/GitLab/Branch\") || \"master\",\n\t\tendpoint = this.wiki.getTiddlerText(\"$:/GitLab/ServerURL\") || \"https://gitlab.com/api/v4\",\n\t\theaders = {\n\t\t\t\"Content-Type\": \"application/json;charset=UTF-8\",\n\t\t\t\"Private-Token\": password\n\t\t};\n\t// Bail if we don't have everything we need\n\tif(!username || !password || !repo || !path || !filename) {\n\t\treturn false;\n\t}\n\t// Make sure the path start and ends with a slash\n\tif(path.substring(0,1) !== \"/\") {\n\t\tpath = \"/\" + path;\n\t}\n\tif(path.substring(path.length - 1) !== \"/\") {\n\t\tpath = path + \"/\";\n\t}\n\t// Compose the base URI\n\tvar uri = endpoint + \"/projects/\" + encodeURIComponent(repo) + \"/repository/\";\n\t// Perform a get request to get the details (inc shas) of files in the same path as our file\n\t$tw.utils.httpRequest({\n\t\turl: uri + \"tree/?path=\" + encodeURIComponent(path.replace(/^\\/+|\\/$/g, '')) + \"&branch=\" + encodeURIComponent(branch.replace(/^\\/+|\\/$/g, '')),\n\t\ttype: \"GET\",\n\t\theaders: headers,\n\t\tcallback: function(err,getResponseDataJson,xhr) {\n\t\t\tvar getResponseData,sha = \"\";\n\t\t\tif(err && xhr.status !== 404) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tvar requestType = \"POST\";\n\t\t\tif(xhr.status !== 404) {\n\t\t\t\tgetResponseData = JSON.parse(getResponseDataJson);\n\t\t\t\t$tw.utils.each(getResponseData,function(details) {\n\t\t\t\t\tif(details.name === filename) {\n\t\t\t\t\t\trequestType = \"PUT\";\n\t\t\t\t\t\tsha = details.sha;\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\tvar data = {\n\t\t\t\tcommit_message: $tw.language.getRawString(\"ControlPanel/Saving/GitService/CommitMessage\"),\n\t\t\t\tcontent: text,\n\t\t\t\tbranch: branch,\n\t\t\t\tsha: sha\n\t\t\t};\n\t\t\t// Perform a request to save the file\n\t\t\t$tw.utils.httpRequest({\n\t\t\t\turl: uri + \"files/\" + encodeURIComponent(path.replace(/^\\/+/, '') + filename),\n\t\t\t\ttype: requestType,\n\t\t\t\theaders: headers,\n\t\t\t\tdata: JSON.stringify(data),\n\t\t\t\tcallback: function(err,putResponseDataJson,xhr) {\n\t\t\t\t\tif(err) {\n\t\t\t\t\t\treturn callback(err);\n\t\t\t\t\t}\n\t\t\t\t\tvar putResponseData = JSON.parse(putResponseDataJson);\n\t\t\t\t\tcallback(null);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nGitLabSaver.prototype.info = {\n\tname: \"gitlab\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new GitLabSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/manualdownload.js": {
"title": "$:/core/modules/savers/manualdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/manualdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via HTML5's download APIs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Title of the tiddler containing the download message\nvar downloadInstructionsTitle = \"$:/language/Modals/Download\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar ManualDownloadSaver = function(wiki) {\n};\n\nManualDownloadSaver.prototype.save = function(text,method,callback) {\n\t$tw.modal.display(downloadInstructionsTitle,{\n\t\tdownloadLink: \"data:text/html,\" + encodeURIComponent(text)\n\t});\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nManualDownloadSaver.prototype.info = {\n\tname: \"manualdownload\",\n\tpriority: 0,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new ManualDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/msdownload.js": {
"title": "$:/core/modules/savers/msdownload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/msdownload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via window.navigator.msSaveBlob()\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar MsDownloadSaver = function(wiki) {\n};\n\nMsDownloadSaver.prototype.save = function(text,method,callback) {\n\t// Get the current filename\n\tvar filename = \"tiddlywiki.html\",\n\t\tp = document.location.pathname.lastIndexOf(\"/\");\n\tif(p !== -1) {\n\t\tfilename = document.location.pathname.substr(p+1);\n\t}\n\t// Set up the link\n\tvar blob = new Blob([text], {type: \"text/html\"});\n\twindow.navigator.msSaveBlob(blob,filename);\n\t// Callback that we succeeded\n\tcallback(null);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nMsDownloadSaver.prototype.info = {\n\tname: \"msdownload\",\n\tpriority: 110,\n\tcapabilities: [\"save\", \"download\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn !!window.navigator.msSaveBlob;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new MsDownloadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/put.js": {
"title": "$:/core/modules/savers/put.js",
"text": "/*\\\ntitle: $:/core/modules/savers/put.js\ntype: application/javascript\nmodule-type: saver\n\nSaves wiki by performing a PUT request to the server\n\nWorks with any server which accepts a PUT request\nto the current URL, such as a WebDAV server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRetrieve ETag if available\n*/\nvar retrieveETag = function(self) {\n\tvar headers = {\n\t\tAccept: \"*/*;charset=UTF-8\"\n\t};\n\t$tw.utils.httpRequest({\n\t\turl: self.uri(),\n\t\ttype: \"HEAD\",\n\t\theaders: headers,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvar etag = xhr.getResponseHeader(\"ETag\");\n\t\t\tif(!etag) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tself.etag = etag.replace(/^W\\//,\"\");\n\t\t}\n\t});\n};\n\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar PutSaver = function(wiki) {\n\tthis.wiki = wiki;\n\tvar self = this;\n\tvar uri = this.uri();\n\t// Async server probe. Until probe finishes, save will fail fast\n\t// See also https://github.com/Jermolene/TiddlyWiki5/issues/2276\n\t$tw.utils.httpRequest({\n\t\turl: uri,\n\t\ttype: \"OPTIONS\",\n\t\tcallback: function(err,data,xhr) {\n\t\t\t// Check DAV header http://www.webdav.org/specs/rfc2518.html#rfc.section.9.1\n\t\t\tif(!err) {\n\t\t\t\tself.serverAcceptsPuts = xhr.status === 200 && !!xhr.getResponseHeader(\"dav\");\n\t\t\t}\n\t\t}\n\t});\n\tretrieveETag(this);\n};\n\nPutSaver.prototype.uri = function() {\n\treturn document.location.toString().split(\"#\")[0];\n};\n\n// TODO: in case of edit conflict\n// Prompt: Do you want to save over this? Y/N\n// Merging would be ideal, and may be possible using future generic merge flow\nPutSaver.prototype.save = function(text,method,callback) {\n\tif(!this.serverAcceptsPuts) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tvar headers = {\n\t\t\"Content-Type\": \"text/html;charset=UTF-8\"\n\t};\n\tif(this.etag) {\n\t\theaders[\"If-Match\"] = this.etag;\n\t}\n\t$tw.utils.httpRequest({\n\t\turl: this.uri(),\n\t\ttype: \"PUT\",\n\t\theaders: headers,\n\t\tdata: text,\n\t\tcallback: function(err,data,xhr) {\n\t\t\tif(err) {\n\t\t\t\t// response is textual: \"XMLHttpRequest error code: 412\"\n\t\t\t\tvar status = Number(err.substring(err.indexOf(':') + 2, err.length))\n\t\t\t\tif(status === 412) { // edit conflict\n\t\t\t\t\tvar message = $tw.language.getString(\"Error/EditConflict\");\n\t\t\t\t\tcallback(message);\n\t\t\t\t} else {\n\t\t\t\t\tcallback(err); // fail\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tself.etag = xhr.getResponseHeader(\"ETag\");\n\t\t\t\tif(self.etag == null) {\n\t\t\t\t\tretrieveETag(self);\n\t\t\t\t}\n\t\t\t\tcallback(null); // success\n\t\t\t}\n\t\t}\n\t});\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nPutSaver.prototype.info = {\n\tname: \"put\",\n\tpriority: 2000,\n\tcapabilities: [\"save\",\"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn /^https?:/.test(location.protocol);\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new PutSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyfox.js": {
"title": "$:/core/modules/savers/tiddlyfox.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyfox.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TiddlyFox file extension\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TiddlyFoxSaver = function(wiki) {\n};\n\nTiddlyFoxSaver.prototype.save = function(text,method,callback) {\n\tvar messageBox = document.getElementById(\"tiddlyfox-message-box\");\n\tif(messageBox) {\n\t\t// Get the pathname of this document\n\t\tvar pathname = document.location.toString().split(\"#\")[0];\n\t\t// Replace file://localhost/ with file:///\n\t\tif(pathname.indexOf(\"file://localhost/\") === 0) {\n\t\t\tpathname = \"file://\" + pathname.substr(16);\n\t\t}\n\t\t// Windows path file:///x:/blah/blah --> x:\\blah\\blah\n\t\tif(/^file\\:\\/\\/\\/[A-Z]\\:\\//i.test(pathname)) {\n\t\t\t// Remove the leading slash and convert slashes to backslashes\n\t\t\tpathname = pathname.substr(8).replace(/\\//g,\"\\\\\");\n\t\t// Firefox Windows network path file://///server/share/blah/blah --> //server/share/blah/blah\n\t\t} else if(pathname.indexOf(\"file://///\") === 0) {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(10)).replace(/\\//g,\"\\\\\");\n\t\t// Mac/Unix local path file:///path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:///\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(7));\n\t\t// Mac/Unix local path file:/path/path --> /path/path\n\t\t} else if(pathname.indexOf(\"file:/\") === 0) {\n\t\t\tpathname = unescape(pathname.substr(5));\n\t\t// Otherwise Windows networth path file://server/share/path/path --> \\\\server\\share\\path\\path\n\t\t} else {\n\t\t\tpathname = \"\\\\\\\\\" + unescape(pathname.substr(7)).replace(new RegExp(\"/\",\"g\"),\"\\\\\");\n\t\t}\n\t\t// Create the message element and put it in the message box\n\t\tvar message = document.createElement(\"div\");\n\t\tmessage.setAttribute(\"data-tiddlyfox-path\",decodeURIComponent(pathname));\n\t\tmessage.setAttribute(\"data-tiddlyfox-content\",text);\n\t\tmessageBox.appendChild(message);\n\t\t// Add an event handler for when the file has been saved\n\t\tmessage.addEventListener(\"tiddlyfox-have-saved-file\",function(event) {\n\t\t\tcallback(null);\n\t\t}, false);\n\t\t// Create and dispatch the custom event to the extension\n\t\tvar event = document.createEvent(\"Events\");\n\t\tevent.initEvent(\"tiddlyfox-save-file\",true,false);\n\t\tmessage.dispatchEvent(event);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyFoxSaver.prototype.info = {\n\tname: \"tiddlyfox\",\n\tpriority: 1500,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyFoxSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/tiddlyie.js": {
"title": "$:/core/modules/savers/tiddlyie.js",
"text": "/*\\\ntitle: $:/core/modules/savers/tiddlyie.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via Internet Explorer BHO extenion (TiddlyIE)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar TiddlyIESaver = function(wiki) {\n};\n\nTiddlyIESaver.prototype.save = function(text,method,callback) {\n\t// Check existence of TiddlyIE BHO extension (note: only works after document is complete)\n\tif(typeof(window.TiddlyIE) != \"undefined\") {\n\t\t// Get the pathname of this document\n\t\tvar pathname = unescape(document.location.pathname);\n\t\t// Test for a Windows path of the form /x:/blah...\n\t\tif(/^\\/[A-Z]\\:\\/[^\\/]+/i.test(pathname)) {\t// ie: ^/[a-z]:/[^/]+ (is this better?: ^/[a-z]:/[^/]+(/[^/]+)*\\.[^/]+ )\n\t\t\t// Remove the leading slash\n\t\t\tpathname = pathname.substr(1);\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t} else if(document.hostname !== \"\" && /^\\/[^\\/]+\\/[^\\/]+/i.test(pathname)) {\t// test for \\\\server\\share\\blah... - ^/[^/]+/[^/]+\n\t\t\t// Convert slashes to backslashes\n\t\t\tpathname = pathname.replace(/\\//g,\"\\\\\");\n\t\t\t// reconstruct UNC path\n\t\t\tpathname = \"\\\\\\\\\" + document.location.hostname + pathname;\n\t\t} else return false;\n\t\t// Prompt the user to save the file\n\t\twindow.TiddlyIE.save(pathname, text);\n\t\t// Callback that we succeeded\n\t\tcallback(null);\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nInformation about this saver\n*/\nTiddlyIESaver.prototype.info = {\n\tname: \"tiddlyiesaver\",\n\tpriority: 1500,\n\tcapabilities: [\"save\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn (window.location.protocol === \"file:\");\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TiddlyIESaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/twedit.js": {
"title": "$:/core/modules/savers/twedit.js",
"text": "/*\\\ntitle: $:/core/modules/savers/twedit.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via the TWEdit iOS app\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false, netscape: false, Components: false */\n\"use strict\";\n\nvar TWEditSaver = function(wiki) {\n};\n\nTWEditSaver.prototype.save = function(text,method,callback) {\n\t// Bail if we're not running under TWEdit\n\tif(typeof DeviceInfo !== \"object\") {\n\t\treturn false;\n\t}\n\t// Get the pathname of this document\n\tvar pathname = decodeURIComponent(document.location.pathname);\n\t// Strip any query or location part\n\tvar p = pathname.indexOf(\"?\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\tp = pathname.indexOf(\"#\");\n\tif(p !== -1) {\n\t\tpathname = pathname.substr(0,p);\n\t}\n\t// Remove the leading \"/Documents\" from path\n\tvar prefix = \"/Documents\";\n\tif(pathname.indexOf(prefix) === 0) {\n\t\tpathname = pathname.substr(prefix.length);\n\t}\n\t// Error handler\n\tvar errorHandler = function(event) {\n\t\t// Error\n\t\tcallback($tw.language.getString(\"Error/SavingToTWEdit\") + \": \" + event.target.error.code);\n\t};\n\t// Get the file system\n\twindow.requestFileSystem(LocalFileSystem.PERSISTENT,0,function(fileSystem) {\n\t\t// Now we've got the filesystem, get the fileEntry\n\t\tfileSystem.root.getFile(pathname, {create: true}, function(fileEntry) {\n\t\t\t// Now we've got the fileEntry, create the writer\n\t\t\tfileEntry.createWriter(function(writer) {\n\t\t\t\twriter.onerror = errorHandler;\n\t\t\t\twriter.onwrite = function() {\n\t\t\t\t\tcallback(null);\n\t\t\t\t};\n\t\t\t\twriter.position = 0;\n\t\t\t\twriter.write(text);\n\t\t\t},errorHandler);\n\t\t}, errorHandler);\n\t}, errorHandler);\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nTWEditSaver.prototype.info = {\n\tname: \"twedit\",\n\tpriority: 1600,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new TWEditSaver(wiki);\n};\n\n/////////////////////////// Hack\n// HACK: This ensures that TWEdit recognises us as a TiddlyWiki document\nif($tw.browser) {\n\twindow.version = {title: \"TiddlyWiki\"};\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/savers/upload.js": {
"title": "$:/core/modules/savers/upload.js",
"text": "/*\\\ntitle: $:/core/modules/savers/upload.js\ntype: application/javascript\nmodule-type: saver\n\nHandles saving changes via upload to a server.\n\nDesigned to be compatible with BidiX's UploadPlugin at http://tiddlywiki.bidix.info/#UploadPlugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSelect the appropriate saver module and set it up\n*/\nvar UploadSaver = function(wiki) {\n\tthis.wiki = wiki;\n};\n\nUploadSaver.prototype.save = function(text,method,callback) {\n\t// Get the various parameters we need\n\tvar backupDir = this.wiki.getTextReference(\"$:/UploadBackupDir\") || \".\",\n\t\tusername = this.wiki.getTextReference(\"$:/UploadName\"),\n\t\tpassword = $tw.utils.getPassword(\"upload\"),\n\t\tuploadDir = this.wiki.getTextReference(\"$:/UploadDir\") || \".\",\n\t\tuploadFilename = this.wiki.getTextReference(\"$:/UploadFilename\") || \"index.html\",\n\t\turl = this.wiki.getTextReference(\"$:/UploadURL\");\n\t// Bail out if we don't have the bits we need\n\tif(!username || username.toString().trim() === \"\" || !password || password.toString().trim() === \"\") {\n\t\treturn false;\n\t}\n\t// Construct the url if not provided\n\tif(!url) {\n\t\turl = \"http://\" + username + \".tiddlyspot.com/store.cgi\";\n\t}\n\t// Assemble the header\n\tvar boundary = \"---------------------------\" + \"AaB03x\";\t\n\tvar uploadFormName = \"UploadPlugin\";\n\tvar head = [];\n\thead.push(\"--\" + boundary + \"\\r\\nContent-disposition: form-data; name=\\\"UploadPlugin\\\"\\r\\n\");\n\thead.push(\"backupDir=\" + backupDir + \";user=\" + username + \";password=\" + password + \";uploaddir=\" + uploadDir + \";;\"); \n\thead.push(\"\\r\\n\" + \"--\" + boundary);\n\thead.push(\"Content-disposition: form-data; name=\\\"userfile\\\"; filename=\\\"\" + uploadFilename + \"\\\"\");\n\thead.push(\"Content-Type: text/html;charset=UTF-8\");\n\thead.push(\"Content-Length: \" + text.length + \"\\r\\n\");\n\thead.push(\"\");\n\t// Assemble the tail and the data itself\n\tvar tail = \"\\r\\n--\" + boundary + \"--\\r\\n\",\n\t\tdata = head.join(\"\\r\\n\") + text + tail;\n\t// Do the HTTP post\n\tvar http = new XMLHttpRequest();\n\thttp.open(\"POST\",url,true,username,password);\n\thttp.setRequestHeader(\"Content-Type\",\"multipart/form-data; charset=UTF-8; boundary=\" + boundary);\n\thttp.onreadystatechange = function() {\n\t\tif(http.readyState == 4 && http.status == 200) {\n\t\t\tif(http.responseText.substr(0,4) === \"0 - \") {\n\t\t\t\tcallback(null);\n\t\t\t} else {\n\t\t\t\tcallback(http.responseText);\n\t\t\t}\n\t\t}\n\t};\n\ttry {\n\t\thttp.send(data);\n\t} catch(ex) {\n\t\treturn callback($tw.language.getString(\"Error/Caption\") + \":\" + ex);\n\t}\n\t$tw.notifier.display(\"$:/language/Notifications/Save/Starting\");\n\treturn true;\n};\n\n/*\nInformation about this saver\n*/\nUploadSaver.prototype.info = {\n\tname: \"upload\",\n\tpriority: 2000,\n\tcapabilities: [\"save\", \"autosave\"]\n};\n\n/*\nStatic method that returns true if this saver is capable of working\n*/\nexports.canSave = function(wiki) {\n\treturn true;\n};\n\n/*\nCreate an instance of this saver\n*/\nexports.create = function(wiki) {\n\treturn new UploadSaver(wiki);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "saver"
},
"$:/core/modules/server/authenticators/basic.js": {
"title": "$:/core/modules/server/authenticators/basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/basic.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for WWW basic authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\");\n}\n\nfunction BasicAuthenticator(server) {\n\tthis.server = server;\n\tthis.credentialsData = [];\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nBasicAuthenticator.prototype.init = function() {\n\t// Read the credentials data\n\tthis.credentialsFilepath = this.server.get(\"credentials\");\n\tif(this.credentialsFilepath) {\n\t\tvar resolveCredentialsFilepath = path.resolve($tw.boot.wikiPath,this.credentialsFilepath);\n\t\tif(fs.existsSync(resolveCredentialsFilepath) && !fs.statSync(resolveCredentialsFilepath).isDirectory()) {\n\t\t\tvar credentialsText = fs.readFileSync(resolveCredentialsFilepath,\"utf8\"),\n\t\t\t\tcredentialsData = $tw.utils.parseCsvStringWithHeader(credentialsText);\n\t\t\tif(typeof credentialsData === \"string\") {\n\t\t\t\treturn \"Error: \" + credentialsData + \" reading credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t\t} else {\n\t\t\t\tthis.credentialsData = credentialsData;\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"Error: Unable to load user credentials from '\" + resolveCredentialsFilepath + \"'\";\n\t\t}\n\t}\n\t// Add the hardcoded username and password if specified\n\tif(this.server.get(\"username\") && this.server.get(\"password\")) {\n\t\tthis.credentialsData = this.credentialsData || [];\n\t\tthis.credentialsData.push({\n\t\t\tusername: this.server.get(\"username\"),\n\t\t\tpassword: this.server.get(\"password\")\n\t\t});\n\t}\n\treturn this.credentialsData.length > 0;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nBasicAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Extract the incoming username and password from the request\n\tvar header = request.headers.authorization || \"\";\n\tif(!header && state.allowAnon) {\n\t\t// If there's no header and anonymous access is allowed then we don't set authenticatedUsername\n\t\treturn true;\n\t}\n\tvar token = header.split(/\\s+/).pop() || \"\",\n\t\tauth = $tw.utils.base64Decode(token),\n\t\tparts = auth.split(/:/),\n\t\tincomingUsername = parts[0],\n\t\tincomingPassword = parts[1];\n\t// Check that at least one of the credentials matches\n\tvar matchingCredentials = this.credentialsData.find(function(credential) {\n\t\treturn credential.username === incomingUsername && credential.password === incomingPassword;\n\t});\n\tif(matchingCredentials) {\n\t\t// If so, add the authenticated username to the request state\n\t\tstate.authenticatedUsername = incomingUsername;\n\t\treturn true;\n\t} else {\n\t\t// If not, return an authentication challenge\n\t\tresponse.writeHead(401,\"Authentication required\",{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\n\t\treturn false;\n\t}\n};\n\nexports.AuthenticatorClass = BasicAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/authenticators/header.js": {
"title": "$:/core/modules/server/authenticators/header.js",
"text": "/*\\\ntitle: $:/core/modules/server/authenticators/header.js\ntype: application/javascript\nmodule-type: authenticator\n\nAuthenticator for trusted header authentication\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction HeaderAuthenticator(server) {\n\tthis.server = server;\n\tthis.header = server.get(\"authenticated-user-header\");\n}\n\n/*\nReturns true if the authenticator is active, false if it is inactive, or a string if there is an error\n*/\nHeaderAuthenticator.prototype.init = function() {\n\treturn !!this.header;\n};\n\n/*\nReturns true if the request is authenticated and assigns the \"authenticatedUsername\" state variable.\nReturns false if the request couldn't be authenticated having sent an appropriate response to the browser\n*/\nHeaderAuthenticator.prototype.authenticateRequest = function(request,response,state) {\n\t// Otherwise, authenticate as the username in the specified header\n\tvar username = request.headers[this.header];\n\tif(!username && !state.allowAnon) {\n\t\tresponse.writeHead(401,\"Authorization header required to login to '\" + state.server.servername + \"'\");\n\t\tresponse.end();\n\t\treturn false;\n\t} else {\n\t\t// authenticatedUsername will be undefined for anonymous users\n\t\tstate.authenticatedUsername = username;\n\t\treturn true;\n\t}\n};\n\nexports.AuthenticatorClass = HeaderAuthenticator;\n\n})();\n",
"type": "application/javascript",
"module-type": "authenticator"
},
"$:/core/modules/server/routes/delete-tiddler.js": {
"title": "$:/core/modules/server/routes/delete-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/delete-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nDELETE /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"DELETE\";\n\nexports.path = /^\\/bags\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]);\n\tstate.wiki.deleteTiddler(title);\n\tresponse.writeHead(204, \"OK\", {\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-favicon.js": {
"title": "$:/core/modules/server/routes/get-favicon.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-favicon.js\ntype: application/javascript\nmodule-type: route\n\nGET /favicon.ico\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/favicon.ico$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"image/x-icon\"});\n\tvar buffer = state.wiki.getTiddlerText(\"$:/favicon.ico\",\"\");\n\tresponse.end(buffer,\"base64\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-file.js": {
"title": "$:/core/modules/server/routes/get-file.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-file.js\ntype: application/javascript\nmodule-type: route\n\nGET /files/:filepath\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/files\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar path = require(\"path\"),\n\t\tfs = require(\"fs\"),\n\t\tutil = require(\"util\"),\n\t\tsuppliedFilename = decodeURIComponent(state.params[0]),\n\t\tfilename = path.resolve($tw.boot.wikiPath,\"files\",suppliedFilename),\n\t\textension = path.extname(filename);\n\tfs.readFile(filename,function(err,content) {\n\t\tvar status,content,type = \"text/plain\";\n\t\tif(err) {\n\t\t\tconsole.log(\"Error accessing file \" + filename + \": \" + err.toString());\n\t\t\tstatus = 404;\n\t\t\tcontent = \"File '\" + suppliedFilename + \"' not found\";\n\t\t} else {\n\t\t\tstatus = 200;\n\t\t\tcontent = content;\n\t\t\ttype = ($tw.config.fileExtensionInfo[extension] ? $tw.config.fileExtensionInfo[extension].type : \"application/octet-stream\");\n\t\t}\n\t\tresponse.writeHead(status,{\n\t\t\t\"Content-Type\": type\n\t\t});\n\t\tresponse.end(content);\n\t});\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-index.js": {
"title": "$:/core/modules/server/routes/get-index.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-index.js\ntype: application/javascript\nmodule-type: route\n\nGET /\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar zlib = require(\"zlib\");\n\nexports.method = \"GET\";\n\nexports.path = /^\\/$/;\n\nexports.handler = function(request,response,state) {\n\tvar acceptEncoding = request.headers[\"accept-encoding\"];\n\tif(!acceptEncoding) {\n\t\tacceptEncoding = \"\";\n\t}\n\tvar text = state.wiki.renderTiddler(state.server.get(\"root-render-type\"),state.server.get(\"root-tiddler\")),\n\t\tresponseHeaders = {\n\t\t\"Content-Type\": state.server.get(\"root-serve-type\")\n\t};\n\t/*\n\tIf the gzip=yes flag for `listen` is set, check if the user agent permits\n\tcompression. If so, compress our response. Note that we use the synchronous\n\tfunctions from zlib to stay in the imperative style. The current `Server`\n\tdoesn't depend on this, and we may just as well use the async versions.\n\t*/\n\tif(state.server.enableGzip) {\n\t\tif (/\\bdeflate\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"deflate\";\n\t\t\ttext = zlib.deflateSync(text);\n\t\t} else if (/\\bgzip\\b/.test(acceptEncoding)) {\n\t\t\tresponseHeaders[\"Content-Encoding\"] = \"gzip\";\n\t\t\ttext = zlib.gzipSync(text);\n\t\t}\n\t}\n\tresponse.writeHead(200,responseHeaders);\n\tresponse.end(text);\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-login-basic.js": {
"title": "$:/core/modules/server/routes/get-login-basic.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-login-basic.js\ntype: application/javascript\nmodule-type: route\n\nGET /login-basic -- force a Basic Authentication challenge\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/login-basic$/;\n\nexports.handler = function(request,response,state) {\n\tif(!state.authenticatedUsername) {\n\t\t// Challenge if there's no username\n\t\tresponse.writeHead(401,{\n\t\t\t\"WWW-Authenticate\": 'Basic realm=\"Please provide your username and password to login to ' + state.server.servername + '\"'\n\t\t});\n\t\tresponse.end();\t\t\n\t} else {\n\t\t// Redirect to the root wiki if login worked\n\t\tresponse.writeHead(302,{\n\t\t\tLocation: \"/\"\n\t\t});\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-status.js": {
"title": "$:/core/modules/server/routes/get-status.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-status.js\ntype: application/javascript\nmodule-type: route\n\nGET /status\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/status$/;\n\nexports.handler = function(request,response,state) {\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar text = JSON.stringify({\n\t\tusername: state.authenticatedUsername || state.server.get(\"anon-username\") || \"\",\n\t\tanonymous: !state.authenticatedUsername,\n\t\tread_only: !state.server.isAuthorized(\"writers\",state.authenticatedUsername),\n\t\tspace: {\n\t\t\trecipe: \"default\"\n\t\t},\n\t\ttiddlywiki_version: $tw.version\n\t});\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler-html.js": {
"title": "$:/core/modules/server/routes/get-tiddler-html.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler-html.js\ntype: application/javascript\nmodule-type: route\n\nGET /:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/([^\\/]+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title);\n\tif(tiddler) {\n\t\tvar renderType = tiddler.getFieldString(\"_render_type\"),\n\t\t\trenderTemplate = tiddler.getFieldString(\"_render_template\");\n\t\t// Tiddler fields '_render_type' and '_render_template' overwrite\n\t\t// system wide settings for render type and template\n\t\tif(state.wiki.isSystemTiddler(title)) {\n\t\t\trenderType = renderType || state.server.get(\"system-tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"system-tiddler-render-template\");\n\t\t} else {\n\t\t\trenderType = renderType || state.server.get(\"tiddler-render-type\");\n\t\t\trenderTemplate = renderTemplate || state.server.get(\"tiddler-render-template\");\n\t\t}\n\t\tvar text = state.wiki.renderTiddler(renderType,renderTemplate,{parseAsInline: true, variables: {currentTiddler: title}});\n\t\t// Naughty not to set a content-type, but it's the easiest way to ensure the browser will see HTML pages as HTML, and accept plain text tiddlers as CSS or JS\n\t\tresponse.writeHead(200);\n\t\tresponse.end(text,\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddler.js": {
"title": "$:/core/modules/server/routes/get-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\t\ttiddler = state.wiki.getTiddler(title),\n\t\ttiddlerFields = {},\n\t\tknownFields = [\n\t\t\t\"bag\", \"created\", \"creator\", \"modified\", \"modifier\", \"permissions\", \"recipe\", \"revision\", \"tags\", \"text\", \"title\", \"type\", \"uri\"\n\t\t];\n\tif(tiddler) {\n\t\t$tw.utils.each(tiddler.fields,function(field,name) {\n\t\t\tvar value = tiddler.getFieldString(name);\n\t\t\tif(knownFields.indexOf(name) !== -1) {\n\t\t\t\ttiddlerFields[name] = value;\n\t\t\t} else {\n\t\t\t\ttiddlerFields.fields = tiddlerFields.fields || {};\n\t\t\t\ttiddlerFields.fields[name] = value;\n\t\t\t}\n\t\t});\n\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\ttiddlerFields.bag = \"default\";\n\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\t\tresponse.end(JSON.stringify(tiddlerFields),\"utf8\");\n\t} else {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t}\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/get-tiddlers-json.js": {
"title": "$:/core/modules/server/routes/get-tiddlers-json.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/get-tiddlers-json.js\ntype: application/javascript\nmodule-type: route\n\nGET /recipes/default/tiddlers/tiddlers.json?filter=<filter>\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_FILTER = \"[all[tiddlers]!is[system]sort[title]]\";\n\nexports.method = \"GET\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers.json$/;\n\nexports.handler = function(request,response,state) {\n\tvar filter = state.queryParameters.filter || DEFAULT_FILTER;\n\tif($tw.wiki.getTiddlerText(\"$:/config/Server/AllowAllExternalFilters\") !== \"yes\") {\n\t\tif($tw.wiki.getTiddlerText(\"$:/config/Server/ExternalFilters/\" + filter) !== \"yes\") {\n\t\t\tconsole.log(\"Blocked attempt to GET /recipes/default/tiddlers/tiddlers.json with filter: \" + filter);\n\t\t\tresponse.writeHead(403);\n\t\t\tresponse.end();\n\t\t\treturn;\n\t\t}\n\t}\n\tvar excludeFields = (state.queryParameters.exclude || \"text\").split(\",\"),\n\t\ttitles = state.wiki.filterTiddlers(filter);\n\tresponse.writeHead(200, {\"Content-Type\": \"application/json\"});\n\tvar tiddlers = [];\n\t$tw.utils.each(titles,function(title) {\n\t\tvar tiddler = state.wiki.getTiddler(title);\n\t\tif(tiddler) {\n\t\t\tvar tiddlerFields = tiddler.getFieldStrings({exclude: excludeFields});\n\t\t\ttiddlerFields.revision = state.wiki.getChangeCount(title);\n\t\t\ttiddlerFields.type = tiddlerFields.type || \"text/vnd.tiddlywiki\";\n\t\t\ttiddlers.push(tiddlerFields);\n\t\t}\n\t});\n\tvar text = JSON.stringify(tiddlers);\n\tresponse.end(text,\"utf8\");\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/routes/put-tiddler.js": {
"title": "$:/core/modules/server/routes/put-tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/server/routes/put-tiddler.js\ntype: application/javascript\nmodule-type: route\n\nPUT /recipes/default/tiddlers/:title\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.method = \"PUT\";\n\nexports.path = /^\\/recipes\\/default\\/tiddlers\\/(.+)$/;\n\nexports.handler = function(request,response,state) {\n\tvar title = decodeURIComponent(state.params[0]),\n\tfields = JSON.parse(state.data);\n\t// Pull up any subfields in the `fields` object\n\tif(fields.fields) {\n\t\t$tw.utils.each(fields.fields,function(field,name) {\n\t\t\tfields[name] = field;\n\t\t});\n\t\tdelete fields.fields;\n\t}\n\t// Remove any revision field\n\tif(fields.revision) {\n\t\tdelete fields.revision;\n\t}\n\tstate.wiki.addTiddler(new $tw.Tiddler(state.wiki.getCreationFields(),fields,{title: title},state.wiki.getModificationFields()));\n\tvar changeCount = state.wiki.getChangeCount(title).toString();\n\tresponse.writeHead(204, \"OK\",{\n\t\tEtag: \"\\\"default/\" + encodeURIComponent(title) + \"/\" + changeCount + \":\\\"\",\n\t\t\"Content-Type\": \"text/plain\"\n\t});\n\tresponse.end();\n};\n\n}());\n",
"type": "application/javascript",
"module-type": "route"
},
"$:/core/modules/server/server.js": {
"title": "$:/core/modules/server/server.js",
"text": "/*\\\ntitle: $:/core/modules/server/server.js\ntype: application/javascript\nmodule-type: library\n\nServe tiddlers over http\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nif($tw.node) {\n\tvar util = require(\"util\"),\n\t\tfs = require(\"fs\"),\n\t\turl = require(\"url\"),\n\t\tpath = require(\"path\"),\n\t\tquerystring = require(\"querystring\");\n}\n\n/*\nA simple HTTP server with regexp-based routes\noptions: variables - optional hashmap of variables to set (a misnomer - they are really constant parameters)\n\t\t routes - optional array of routes to use\n\t\t wiki - reference to wiki object\n*/\nfunction Server(options) {\n\tvar self = this;\n\tthis.routes = options.routes || [];\n\tthis.authenticators = options.authenticators || [];\n\tthis.wiki = options.wiki;\n\tthis.servername = $tw.utils.transliterateToSafeASCII(this.wiki.getTiddlerText(\"$:/SiteTitle\") || \"TiddlyWiki5\");\n\t// Initialise the variables\n\tthis.variables = $tw.utils.extend({},this.defaultVariables);\n\tif(options.variables) {\n\t\tfor(var variable in options.variables) {\n\t\t\tif(options.variables[variable]) {\n\t\t\t\tthis.variables[variable] = options.variables[variable];\n\t\t\t}\n\t\t}\t\t\n\t}\n\t$tw.utils.extend({},this.defaultVariables,options.variables);\n\t// Initialise CSRF\n\tthis.csrfDisable = this.get(\"csrf-disable\") === \"yes\";\n\t// Initialize Gzip compression\n\tthis.enableGzip = this.get(\"gzip\") === \"yes\";\n\t// Initialise authorization\n\tvar authorizedUserName = (this.get(\"username\") && this.get(\"password\")) ? this.get(\"username\") : \"(anon)\";\n\tthis.authorizationPrincipals = {\n\t\treaders: (this.get(\"readers\") || authorizedUserName).split(\",\").map($tw.utils.trim),\n\t\twriters: (this.get(\"writers\") || authorizedUserName).split(\",\").map($tw.utils.trim)\n\t}\n\t// Load and initialise authenticators\n\t$tw.modules.forEachModuleOfType(\"authenticator\", function(title,authenticatorDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addAuthenticator(authenticatorDefinition.AuthenticatorClass);\n\t});\n\t// Load route handlers\n\t$tw.modules.forEachModuleOfType(\"route\", function(title,routeDefinition) {\n\t\t// console.log(\"Loading server route \" + title);\n\t\tself.addRoute(routeDefinition);\n\t});\n\t// Initialise the http vs https\n\tthis.listenOptions = null;\n\tthis.protocol = \"http\";\n\tvar tlsKeyFilepath = this.get(\"tls-key\"),\n\t\ttlsCertFilepath = this.get(\"tls-cert\");\n\tif(tlsCertFilepath && tlsKeyFilepath) {\n\t\tthis.listenOptions = {\n\t\t\tkey: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsKeyFilepath),\"utf8\"),\n\t\t\tcert: fs.readFileSync(path.resolve($tw.boot.wikiPath,tlsCertFilepath),\"utf8\")\n\t\t};\n\t\tthis.protocol = \"https\";\n\t}\n\tthis.transport = require(this.protocol);\n}\n\nServer.prototype.defaultVariables = {\n\tport: \"8080\",\n\thost: \"127.0.0.1\",\n\t\"root-tiddler\": \"$:/core/save/all\",\n\t\"root-render-type\": \"text/plain\",\n\t\"root-serve-type\": \"text/html\",\n\t\"tiddler-render-type\": \"text/html\",\n\t\"tiddler-render-template\": \"$:/core/templates/server/static.tiddler.html\",\n\t\"system-tiddler-render-type\": \"text/plain\",\n\t\"system-tiddler-render-template\": \"$:/core/templates/wikified-tiddler\",\n\t\"debug-level\": \"none\",\n\t\"gzip\": \"no\"\n};\n\nServer.prototype.get = function(name) {\n\treturn this.variables[name];\n};\n\nServer.prototype.addRoute = function(route) {\n\tthis.routes.push(route);\n};\n\nServer.prototype.addAuthenticator = function(AuthenticatorClass) {\n\t// Instantiate and initialise the authenticator\n\tvar authenticator = new AuthenticatorClass(this),\n\t\tresult = authenticator.init();\n\tif(typeof result === \"string\") {\n\t\t$tw.utils.error(\"Error: \" + result);\n\t} else if(result) {\n\t\t// Only use the authenticator if it initialised successfully\n\t\tthis.authenticators.push(authenticator);\n\t}\n};\n\nServer.prototype.findMatchingRoute = function(request,state) {\n\tvar pathprefix = this.get(\"path-prefix\") || \"\";\n\tfor(var t=0; t<this.routes.length; t++) {\n\t\tvar potentialRoute = this.routes[t],\n\t\t\tpathRegExp = potentialRoute.path,\n\t\t\tpathname = state.urlInfo.pathname,\n\t\t\tmatch;\n\t\tif(pathprefix) {\n\t\t\tif(pathname.substr(0,pathprefix.length) === pathprefix) {\n\t\t\t\tpathname = pathname.substr(pathprefix.length) || \"/\";\n\t\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t\t} else {\n\t\t\t\tmatch = false;\n\t\t\t}\n\t\t} else {\n\t\t\tmatch = potentialRoute.path.exec(pathname);\n\t\t}\n\t\tif(match && request.method === potentialRoute.method) {\n\t\t\tstate.params = [];\n\t\t\tfor(var p=1; p<match.length; p++) {\n\t\t\t\tstate.params.push(match[p]);\n\t\t\t}\n\t\t\treturn potentialRoute;\n\t\t}\n\t}\n\treturn null;\n};\n\nServer.prototype.methodMappings = {\n\t\"GET\": \"readers\",\n\t\"OPTIONS\": \"readers\",\n\t\"HEAD\": \"readers\",\n\t\"PUT\": \"writers\",\n\t\"POST\": \"writers\",\n\t\"DELETE\": \"writers\"\n};\n\n/*\nCheck whether a given user is authorized for the specified authorizationType (\"readers\" or \"writers\"). Pass null or undefined as the username to check for anonymous access\n*/\nServer.prototype.isAuthorized = function(authorizationType,username) {\n\tvar principals = this.authorizationPrincipals[authorizationType] || [];\n\treturn principals.indexOf(\"(anon)\") !== -1 || (username && (principals.indexOf(\"(authenticated)\") !== -1 || principals.indexOf(username) !== -1));\n}\n\nServer.prototype.requestHandler = function(request,response) {\n\t// Compose the state object\n\tvar self = this;\n\tvar state = {};\n\tstate.wiki = self.wiki;\n\tstate.server = self;\n\tstate.urlInfo = url.parse(request.url);\n\tstate.queryParameters = querystring.parse(state.urlInfo.query);\n\t// Get the principals authorized to access this resource\n\tvar authorizationType = this.methodMappings[request.method] || \"readers\";\n\t// Check for the CSRF header if this is a write\n\tif(!this.csrfDisable && authorizationType === \"writers\" && request.headers[\"x-requested-with\"] !== \"TiddlyWiki\") {\n\t\tresponse.writeHead(403,\"'X-Requested-With' header required to login to '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\t\t\n\t}\n\t// Check whether anonymous access is granted\n\tstate.allowAnon = this.isAuthorized(authorizationType,null);\n\t// Authenticate with the first active authenticator\n\tif(this.authenticators.length > 0) {\n\t\tif(!this.authenticators[0].authenticateRequest(request,response,state)) {\n\t\t\t// Bail if we failed (the authenticator will have sent the response)\n\t\t\treturn;\n\t\t}\t\t\n\t}\n\t// Authorize with the authenticated username\n\tif(!this.isAuthorized(authorizationType,state.authenticatedUsername)) {\n\t\tresponse.writeHead(401,\"'\" + state.authenticatedUsername + \"' is not authorized to access '\" + this.servername + \"'\");\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Find the route that matches this path\n\tvar route = self.findMatchingRoute(request,state);\n\t// Optionally output debug info\n\tif(self.get(\"debug-level\") !== \"none\") {\n\t\tconsole.log(\"Request path:\",JSON.stringify(state.urlInfo));\n\t\tconsole.log(\"Request headers:\",JSON.stringify(request.headers));\n\t\tconsole.log(\"authenticatedUsername:\",state.authenticatedUsername);\n\t}\n\t// Return a 404 if we didn't find a route\n\tif(!route) {\n\t\tresponse.writeHead(404);\n\t\tresponse.end();\n\t\treturn;\n\t}\n\t// Receive the request body if necessary and hand off to the route handler\n\tif(route.bodyFormat === \"stream\" || request.method === \"GET\" || request.method === \"HEAD\") {\n\t\t// Let the route handle the request stream itself\n\t\troute.handler(request,response,state);\n\t} else if(route.bodyFormat === \"string\" || !route.bodyFormat) {\n\t\t// Set the encoding for the incoming request\n\t\trequest.setEncoding(\"utf8\");\n\t\tvar data = \"\";\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata += chunk.toString();\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = data;\n\t\t\troute.handler(request,response,state);\n\t\t});\n\t} else if(route.bodyFormat === \"buffer\") {\n\t\tvar data = [];\n\t\trequest.on(\"data\",function(chunk) {\n\t\t\tdata.push(chunk);\n\t\t});\n\t\trequest.on(\"end\",function() {\n\t\t\tstate.data = Buffer.concat(data);\n\t\t\troute.handler(request,response,state);\n\t\t})\n\t} else {\n\t\tresponse.writeHead(400,\"Invalid bodyFormat \" + route.bodyFormat + \" in route \" + route.method + \" \" + route.path.source);\n\t\tresponse.end();\n\t}\n};\n\n/*\nListen for requests\nport: optional port number (falls back to value of \"port\" variable)\nhost: optional host address (falls back to value of \"host\" variable)\nprefix: optional prefix (falls back to value of \"path-prefix\" variable)\n*/\nServer.prototype.listen = function(port,host,prefix) {\n\tvar self = this;\n\t// Handle defaults for port and host\n\tport = port || this.get(\"port\");\n\thost = host || this.get(\"host\");\n\tprefix = prefix || this.get(\"path-prefix\") || \"\";\n\t// Check for the port being a string and look it up as an environment variable\n\tif(parseInt(port,10).toString() !== port) {\n\t\tport = process.env[port] || 8080;\n\t}\n\t// Warn if required plugins are missing\n\tif(!$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/tiddlyweb\") || !$tw.wiki.getTiddler(\"$:/plugins/tiddlywiki/filesystem\")) {\n\t\t$tw.utils.warning(\"Warning: Plugins required for client-server operation (\\\"tiddlywiki/filesystem\\\" and \\\"tiddlywiki/tiddlyweb\\\") are missing from tiddlywiki.info file\");\n\t}\n\t// Create the server\n\tvar server;\n\tif(this.listenOptions) {\n\t\tserver = this.transport.createServer(this.listenOptions,this.requestHandler.bind(this));\n\t} else {\n\t\tserver = this.transport.createServer(this.requestHandler.bind(this));\n\t}\n\t// Display the port number after we've started listening (the port number might have been specified as zero, in which case we will get an assigned port)\n\tserver.on(\"listening\",function() {\n\t\tvar address = server.address();\n\t\t$tw.utils.log(\"Serving on \" + self.protocol + \"://\" + address.address + \":\" + address.port + prefix,\"brown/orange\");\n\t\t$tw.utils.log(\"(press ctrl-C to exit)\",\"red\");\n\t});\n\t// Listen\n\treturn server.listen(port,host);\n};\n\nexports.Server = Server;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/core/modules/browser-messaging.js": {
"title": "$:/core/modules/browser-messaging.js",
"text": "/*\\\ntitle: $:/core/modules/browser-messaging.js\ntype: application/javascript\nmodule-type: startup\n\nBrowser message handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"browser-messaging\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*\nLoad a specified url as an iframe and call the callback when it is loaded. If the url is already loaded then the existing iframe instance is used\n*/\nfunction loadIFrame(url,callback) {\n\t// Check if iframe already exists\n\tvar iframeInfo = $tw.browserMessaging.iframeInfoMap[url];\n\tif(iframeInfo) {\n\t\t// We've already got the iframe\n\t\tcallback(null,iframeInfo);\n\t} else {\n\t\t// Create the iframe and save it in the list\n\t\tvar iframe = document.createElement(\"iframe\");\n\t\tiframeInfo = {\n\t\t\turl: url,\n\t\t\tstatus: \"loading\",\n\t\t\tdomNode: iframe\n\t\t};\n\t\t$tw.browserMessaging.iframeInfoMap[url] = iframeInfo;\n\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t// Add the iframe to the DOM and hide it\n\t\tiframe.style.display = \"none\";\n\t\tiframe.setAttribute(\"library\",\"true\");\n\t\tdocument.body.appendChild(iframe);\n\t\t// Set up onload\n\t\tiframe.onload = function() {\n\t\t\tiframeInfo.status = \"loaded\";\n\t\t\tsaveIFrameInfoTiddler(iframeInfo);\n\t\t\tcallback(null,iframeInfo);\n\t\t};\n\t\tiframe.onerror = function() {\n\t\t\tcallback(\"Cannot load iframe\");\n\t\t};\n\t\ttry {\n\t\t\tiframe.src = url;\n\t\t} catch(ex) {\n\t\t\tcallback(ex);\n\t\t}\n\t}\n}\n\n/*\nUnload library iframe for given url\n*/\nfunction unloadIFrame(url){\n\t$tw.utils.each(document.getElementsByTagName('iframe'), function(iframe) {\n\t\tif(iframe.getAttribute(\"library\") === \"true\" &&\n\t\t iframe.getAttribute(\"src\") === url) {\n\t\t\tiframe.parentNode.removeChild(iframe);\n\t\t}\n\t});\n}\n\nfunction saveIFrameInfoTiddler(iframeInfo) {\n\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),{\n\t\ttitle: \"$:/temp/ServerConnection/\" + iframeInfo.url,\n\t\ttext: iframeInfo.status,\n\t\ttags: [\"$:/tags/ServerConnection\"],\n\t\turl: iframeInfo.url\n\t},$tw.wiki.getModificationFields()));\n}\n\nexports.startup = function() {\n\t// Initialise the store of iframes we've created\n\t$tw.browserMessaging = {\n\t\tiframeInfoMap: {} // Hashmap by URL of {url:,status:\"loading/loaded\",domNode:}\n\t};\n\t// Listen for widget messages to control loading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\tif(url) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers.json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-info\",\n\t\t\t\t\t\t\tinfoTitlePrefix: paramObject.infoTitlePrefix || \"$:/temp/RemoteAssetInfo/\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for widget messages to control unloading the plugin library\n\t$tw.rootWidget.addEventListener(\"tm-unload-plugin-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url;\n\t\t$tw.browserMessaging.iframeInfoMap[url] = undefined;\n\t\tif(url) {\n\t\t\tunloadIFrame(url);\n\t\t\t$tw.utils.each(\n\t\t\t\t$tw.wiki.filterTiddlers(\"[[$:/temp/ServerConnection/\" + url + \"]] [prefix[$:/temp/RemoteAssetInfo/\" + url + \"/]]\"),\n\t\t\t\tfunction(title) {\n\t\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-load-plugin-from-library\",function(event) {\n\t\tvar paramObject = event.paramObject || {},\n\t\t\turl = paramObject.url,\n\t\t\ttitle = paramObject.title;\n\t\tif(url && title) {\n\t\t\tloadIFrame(url,function(err,iframeInfo) {\n\t\t\t\tif(err) {\n\t\t\t\t\talert($tw.language.getString(\"Error/LoadingPluginLibrary\") + \": \" + url);\n\t\t\t\t} else {\n\t\t\t\t\tiframeInfo.domNode.contentWindow.postMessage({\n\t\t\t\t\t\tverb: \"GET\",\n\t\t\t\t\t\turl: \"recipes/library/tiddlers/\" + encodeURIComponent(title) + \".json\",\n\t\t\t\t\t\tcookies: {\n\t\t\t\t\t\t\ttype: \"save-tiddler\",\n\t\t\t\t\t\t\turl: url\n\t\t\t\t\t\t}\n\t\t\t\t\t},\"*\");\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Listen for window messages from other windows\n\twindow.addEventListener(\"message\",function listener(event){\n\t\t// console.log(\"browser-messaging: \",document.location.toString())\n\t\t// console.log(\"browser-messaging: Received message from\",event.origin);\n\t\t// console.log(\"browser-messaging: Message content\",event.data);\n\t\tswitch(event.data.verb) {\n\t\t\tcase \"GET-RESPONSE\":\n\t\t\t\tif(event.data.status.charAt(0) === \"2\") {\n\t\t\t\t\tif(event.data.cookies) {\n\t\t\t\t\t\tif(event.data.cookies.type === \"save-info\") {\n\t\t\t\t\t\t\tvar tiddlers = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.utils.each(tiddlers,function(tiddler) {\n\t\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler($tw.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\t\t\t\t\ttitle: event.data.cookies.infoTitlePrefix + event.data.cookies.url + \"/\" + tiddler.title,\n\t\t\t\t\t\t\t\t\t\"original-title\": tiddler.title,\n\t\t\t\t\t\t\t\t\ttext: \"\",\n\t\t\t\t\t\t\t\t\ttype: \"text/vnd.tiddlywiki\",\n\t\t\t\t\t\t\t\t\t\"original-type\": tiddler.type,\n\t\t\t\t\t\t\t\t\t\"plugin-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-plugin-type\": tiddler[\"plugin-type\"],\n\t\t\t\t\t\t\t\t\t\"module-type\": undefined,\n\t\t\t\t\t\t\t\t\t\"original-module-type\": tiddler[\"module-type\"],\n\t\t\t\t\t\t\t\t\ttags: [\"$:/tags/RemoteAssetInfo\"],\n\t\t\t\t\t\t\t\t\t\"original-tags\": $tw.utils.stringifyList(tiddler.tags || []),\n\t\t\t\t\t\t\t\t\t\"server-url\": event.data.cookies.url\n\t\t\t\t\t\t\t\t},$tw.wiki.getModificationFields()));\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else if(event.data.cookies.type === \"save-tiddler\") {\n\t\t\t\t\t\t\tvar tiddler = JSON.parse(event.data.body);\n\t\t\t\t\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(tiddler));\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t}\n\t},false);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/commands.js": {
"title": "$:/core/modules/startup/commands.js",
"text": "/*\\\ntitle: $:/core/modules/startup/commands.js\ntype: application/javascript\nmodule-type: startup\n\nCommand processing\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"commands\";\nexports.platforms = [\"node\"];\nexports.after = [\"story\"];\nexports.synchronous = false;\n\nexports.startup = function(callback) {\n\t// On the server, start a commander with the command line arguments\n\tvar commander = new $tw.Commander(\n\t\t$tw.boot.argv,\n\t\tfunction(err) {\n\t\t\tif(err) {\n\t\t\t\treturn $tw.utils.error(\"Error: \" + err);\n\t\t\t}\n\t\t\tcallback();\n\t\t},\n\t\t$tw.wiki,\n\t\t{output: process.stdout, error: process.stderr}\n\t);\n\tcommander.execute();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/CSSescape.js": {
"title": "$:/core/modules/startup/CSSescape.js",
"text": "/*\\\ntitle: $:/core/modules/startup/CSSescape.js\ntype: application/javascript\nmodule-type: startup\n\nPolyfill for CSS.escape()\n\n\\*/\n(function(root,factory){\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"css-escape\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n/*! https://mths.be/cssescape v1.5.1 by @mathias | MIT license */\n// https://github.com/umdjs/umd/blob/master/returnExports.js\nexports.startup = factory(root);\n}(typeof global != 'undefined' ? global : this, function(root) {\n\n\tif (root.CSS && root.CSS.escape) {\n\t\treturn;\n\t}\n\n\t// https://drafts.csswg.org/cssom/#serialize-an-identifier\n\tvar cssEscape = function(value) {\n\t\tif (arguments.length == 0) {\n\t\t\tthrow new TypeError('`CSS.escape` requires an argument.');\n\t\t}\n\t\tvar string = String(value);\n\t\tvar length = string.length;\n\t\tvar index = -1;\n\t\tvar codeUnit;\n\t\tvar result = '';\n\t\tvar firstCodeUnit = string.charCodeAt(0);\n\t\twhile (++index < length) {\n\t\t\tcodeUnit = string.charCodeAt(index);\n\t\t\t// Note: there’s no need to special-case astral symbols, surrogate\n\t\t\t// pairs, or lone surrogates.\n\n\t\t\t// If the character is NULL (U+0000), then the REPLACEMENT CHARACTER\n\t\t\t// (U+FFFD).\n\t\t\tif (codeUnit == 0x0000) {\n\t\t\t\tresult += '\\uFFFD';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is in the range [\\1-\\1F] (U+0001 to U+001F) or is\n\t\t\t\t// U+007F, […]\n\t\t\t\t(codeUnit >= 0x0001 && codeUnit <= 0x001F) || codeUnit == 0x007F ||\n\t\t\t\t// If the character is the first character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039), […]\n\t\t\t\t(index == 0 && codeUnit >= 0x0030 && codeUnit <= 0x0039) ||\n\t\t\t\t// If the character is the second character and is in the range [0-9]\n\t\t\t\t// (U+0030 to U+0039) and the first character is a `-` (U+002D), […]\n\t\t\t\t(\n\t\t\t\t\tindex == 1 &&\n\t\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 &&\n\t\t\t\t\tfirstCodeUnit == 0x002D\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character-as-code-point\n\t\t\t\tresult += '\\\\' + codeUnit.toString(16) + ' ';\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t// If the character is the first character and is a `-` (U+002D), and\n\t\t\t\t// there is no second character, […]\n\t\t\t\tindex == 0 &&\n\t\t\t\tlength == 1 &&\n\t\t\t\tcodeUnit == 0x002D\n\t\t\t) {\n\t\t\t\tresult += '\\\\' + string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// If the character is not handled by one of the above rules and is\n\t\t\t// greater than or equal to U+0080, is `-` (U+002D) or `_` (U+005F), or\n\t\t\t// is in one of the ranges [0-9] (U+0030 to U+0039), [A-Z] (U+0041 to\n\t\t\t// U+005A), or [a-z] (U+0061 to U+007A), […]\n\t\t\tif (\n\t\t\t\tcodeUnit >= 0x0080 ||\n\t\t\t\tcodeUnit == 0x002D ||\n\t\t\t\tcodeUnit == 0x005F ||\n\t\t\t\tcodeUnit >= 0x0030 && codeUnit <= 0x0039 ||\n\t\t\t\tcodeUnit >= 0x0041 && codeUnit <= 0x005A ||\n\t\t\t\tcodeUnit >= 0x0061 && codeUnit <= 0x007A\n\t\t\t) {\n\t\t\t\t// the character itself\n\t\t\t\tresult += string.charAt(index);\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\t// Otherwise, the escaped character.\n\t\t\t// https://drafts.csswg.org/cssom/#escape-a-character\n\t\t\tresult += '\\\\' + string.charAt(index);\n\n\t\t}\n\t\treturn result;\n\t};\n\n\tif (!root.CSS) {\n\t\troot.CSS = {};\n\t}\n\n\troot.CSS.escape = cssEscape;\n\n}));\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/favicon.js": {
"title": "$:/core/modules/startup/favicon.js",
"text": "/*\\\ntitle: $:/core/modules/startup/favicon.js\ntype: application/javascript\nmodule-type: startup\n\nFavicon handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"favicon\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\t\t\n// Favicon tiddler\nvar FAVICON_TITLE = \"$:/favicon.ico\";\n\nexports.startup = function() {\n\t// Set up the favicon\n\tsetFavicon();\n\t// Reset the favicon when the tiddler changes\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,FAVICON_TITLE)) {\n\t\t\tsetFavicon();\n\t\t}\n\t});\n};\n\nfunction setFavicon() {\n\tvar tiddler = $tw.wiki.getTiddler(FAVICON_TITLE);\n\tif(tiddler) {\n\t\tvar faviconLink = document.getElementById(\"faviconLink\");\n\t\tfaviconLink.setAttribute(\"href\",\"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text);\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/info.js": {
"title": "$:/core/modules/startup/info.js",
"text": "/*\\\ntitle: $:/core/modules/startup/info.js\ntype: application/javascript\nmodule-type: startup\n\nInitialise $:/info tiddlers via $:/temp/info-plugin pseudo-plugin\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"info\";\nexports.before = [\"startup\"];\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_INFO_PLUGIN = \"$:/temp/info-plugin\";\n\nexports.startup = function() {\n\t// Collect up the info tiddlers\n\tvar infoTiddlerFields = {};\n\t// Give each info module a chance to fill in as many info tiddlers as they want\n\t$tw.modules.forEachModuleOfType(\"info\",function(title,moduleExports) {\n\t\tif(moduleExports && moduleExports.getInfoTiddlerFields) {\n\t\t\tvar tiddlerFieldsArray = moduleExports.getInfoTiddlerFields(infoTiddlerFields);\n\t\t\t$tw.utils.each(tiddlerFieldsArray,function(fields) {\n\t\t\t\tif(fields) {\n\t\t\t\t\tinfoTiddlerFields[fields.title] = fields;\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n\t// Bake the info tiddlers into a plugin. We use the non-standard plugin-type \"info\" because ordinary plugins are only registered asynchronously after being loaded dynamically\n\tvar fields = {\n\t\ttitle: TITLE_INFO_PLUGIN,\n\t\ttype: \"application/json\",\n\t\t\"plugin-type\": \"info\",\n\t\ttext: JSON.stringify({tiddlers: infoTiddlerFields},null,$tw.config.preferences.jsonSpaces)\n\t};\n\t$tw.wiki.addTiddler(new $tw.Tiddler(fields));\n\t$tw.wiki.readPluginInfo([TITLE_INFO_PLUGIN]);\n\t$tw.wiki.registerPluginTiddlers(\"info\");\n\t$tw.wiki.unpackPluginTiddlers();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/load-modules.js": {
"title": "$:/core/modules/startup/load-modules.js",
"text": "/*\\\ntitle: $:/core/modules/startup/load-modules.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"load-modules\";\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Load modules\n\t$tw.modules.applyMethods(\"utils\",$tw.utils);\n\tif($tw.node) {\n\t\t$tw.modules.applyMethods(\"utils-node\",$tw.utils);\n\t}\n\t$tw.modules.applyMethods(\"global\",$tw);\n\t$tw.modules.applyMethods(\"config\",$tw.config);\n\t$tw.Tiddler.fieldModules = $tw.modules.getModulesByTypeAsHashmap(\"tiddlerfield\");\n\t$tw.modules.applyMethods(\"tiddlermethod\",$tw.Tiddler.prototype);\n\t$tw.modules.applyMethods(\"wikimethod\",$tw.Wiki.prototype);\n\t$tw.wiki.addIndexersToWiki();\n\t$tw.modules.applyMethods(\"tiddlerdeserializer\",$tw.Wiki.tiddlerDeserializerModules);\n\t$tw.macros = $tw.modules.getModulesByTypeAsHashmap(\"macro\");\n\t$tw.wiki.initParsers();\n\t$tw.Commander.initCommands();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/password.js": {
"title": "$:/core/modules/startup/password.js",
"text": "/*\\\ntitle: $:/core/modules/startup/password.js\ntype: application/javascript\nmodule-type: startup\n\nPassword handling\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"password\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t$tw.rootWidget.addEventListener(\"tm-set-password\",function(event) {\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: $tw.language.getString(\"Encryption/PromptSetPassword\"),\n\t\t\tnoUserName: true,\n\t\t\tsubmitText: $tw.language.getString(\"Encryption/SetPassword\"),\n\t\t\tcanCancel: true,\n\t\t\trepeatPassword: true,\n\t\t\tcallback: function(data) {\n\t\t\t\tif(data) {\n\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t}\n\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t}\n\t\t});\n\t});\n\t$tw.rootWidget.addEventListener(\"tm-clear-password\",function(event) {\n\t\tif($tw.browser) {\n\t\t\tif(!confirm($tw.language.getString(\"Encryption/ConfirmClearPassword\"))) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t\t$tw.crypto.setPassword(null);\n\t});\n\t// Ensure that $:/isEncrypted is maintained properly\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.utils.hop(changes,\"$:/isEncrypted\")) {\n\t\t\t$tw.crypto.updateCryptoStateTiddler();\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/plugins.js": {
"title": "$:/core/modules/startup/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/startup/plugins.js\ntype: application/javascript\nmodule-type: startup\n\nStartup logic concerned with managing plugins\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"plugins\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nvar TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE = \"$:/status/RequireReloadDueToPluginChange\";\n\nvar PREFIX_CONFIG_REGISTER_PLUGIN_TYPE = \"$:/config/RegisterPluginType/\";\n\nexports.startup = function() {\n\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"no\"});\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tvar changesToProcess = [],\n\t\t\trequireReloadDueToPluginChange = false;\n\t\t$tw.utils.each(Object.keys(changes),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\t\trequiresReload = $tw.wiki.doesPluginRequireReload(title);\n\t\t\tif(requiresReload) {\n\t\t\t\trequireReloadDueToPluginChange = true;\n\t\t\t} else if(tiddler) {\n\t\t\t\tvar pluginType = tiddler.fields[\"plugin-type\"];\n\t\t\t\tif($tw.wiki.getTiddlerText(PREFIX_CONFIG_REGISTER_PLUGIN_TYPE + (tiddler.fields[\"plugin-type\"] || \"\"),\"no\") === \"yes\") {\n\t\t\t\t\tchangesToProcess.push(title);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t\tif(requireReloadDueToPluginChange) {\n\t\t\t$tw.wiki.addTiddler({title: TITLE_REQUIRE_RELOAD_DUE_TO_PLUGIN_CHANGE,text: \"yes\"});\n\t\t}\n\t\t// Read or delete the plugin info of the changed tiddlers\n\t\tif(changesToProcess.length > 0) {\n\t\t\tvar changes = $tw.wiki.readPluginInfo(changesToProcess);\n\t\t\tif(changes.modifiedPlugins.length > 0 || changes.deletedPlugins.length > 0) {\n\t\t\t\t// (Re-)register any modified plugins\n\t\t\t\t$tw.wiki.registerPluginTiddlers(null,changes.modifiedPlugins);\n\t\t\t\t// Unregister any deleted plugins\n\t\t\t\t$tw.wiki.unregisterPluginTiddlers(null,changes.deletedPlugins);\n\t\t\t\t// Unpack the shadow tiddlers\n\t\t\t\t$tw.wiki.unpackPluginTiddlers();\n\t\t\t}\n\t\t}\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/render.js": {
"title": "$:/core/modules/startup/render.js",
"text": "/*\\\ntitle: $:/core/modules/startup/render.js\ntype: application/javascript\nmodule-type: startup\n\nTitle, stylesheet and page rendering\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"render\";\nexports.platforms = [\"browser\"];\nexports.after = [\"story\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar PAGE_TITLE_TITLE = \"$:/core/wiki/title\";\nvar PAGE_STYLESHEET_TITLE = \"$:/core/ui/PageStylesheet\";\nvar PAGE_TEMPLATE_TITLE = \"$:/core/ui/PageTemplate\";\n\n// Time (in ms) that we defer refreshing changes to draft tiddlers\nvar DRAFT_TIDDLER_TIMEOUT_TITLE = \"$:/config/Drafts/TypingTimeout\";\nvar THROTTLE_REFRESH_TIMEOUT = 400;\n\nexports.startup = function() {\n\t// Set up the title\n\t$tw.titleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TITLE_TITLE,{document: $tw.fakeDocument, parseAsInline: true});\n\t$tw.titleContainer = $tw.fakeDocument.createElement(\"div\");\n\t$tw.titleWidgetNode.render($tw.titleContainer,null);\n\tdocument.title = $tw.titleContainer.textContent;\n\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\tif($tw.titleWidgetNode.refresh(changes,$tw.titleContainer,null)) {\n\t\t\tdocument.title = $tw.titleContainer.textContent;\n\t\t}\n\t});\n\t// Set up the styles\n\t$tw.styleWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_STYLESHEET_TITLE,{document: $tw.fakeDocument});\n\t$tw.styleContainer = $tw.fakeDocument.createElement(\"style\");\n\t$tw.styleWidgetNode.render($tw.styleContainer,null);\n\t$tw.styleElement = document.createElement(\"style\");\n\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\tdocument.head.insertBefore($tw.styleElement,document.head.firstChild);\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"styleRefresh\",function(changes) {\n\t\tif($tw.styleWidgetNode.refresh(changes,$tw.styleContainer,null)) {\n\t\t\t$tw.styleElement.innerHTML = $tw.styleContainer.textContent;\n\t\t}\n\t}));\n\t// Display the $:/core/ui/PageTemplate tiddler to kick off the display\n\t$tw.perf.report(\"mainRender\",function() {\n\t\t$tw.pageWidgetNode = $tw.wiki.makeTranscludeWidget(PAGE_TEMPLATE_TITLE,{document: document, parentWidget: $tw.rootWidget});\n\t\t$tw.pageContainer = document.createElement(\"div\");\n\t\t$tw.utils.addClass($tw.pageContainer,\"tc-page-container-wrapper\");\n\t\tdocument.body.insertBefore($tw.pageContainer,document.body.firstChild);\n\t\t$tw.pageWidgetNode.render($tw.pageContainer,null);\n \t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t})();\n\t// Remove any splash screen elements\n\tvar removeList = document.querySelectorAll(\".tc-remove-when-wiki-loaded\");\n\t$tw.utils.each(removeList,function(removeItem) {\n\t\tif(removeItem.parentNode) {\n\t\t\tremoveItem.parentNode.removeChild(removeItem);\n\t\t}\n\t});\n\t// Prepare refresh mechanism\n\tvar deferredChanges = Object.create(null),\n\t\ttimerId;\n\tfunction refresh() {\n\t\t// Process the refresh\n\t\t$tw.hooks.invokeHook(\"th-page-refreshing\");\n\t\t$tw.pageWidgetNode.refresh(deferredChanges);\n\t\tdeferredChanges = Object.create(null);\n\t\t$tw.hooks.invokeHook(\"th-page-refreshed\");\n\t}\n\t// Add the change event handler\n\t$tw.wiki.addEventListener(\"change\",$tw.perf.report(\"mainRefresh\",function(changes) {\n\t\t// Check if only tiddlers that are throttled have changed\n\t\tvar onlyThrottledTiddlersHaveChanged = true;\n\t\tfor(var title in changes) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(!tiddler || !(tiddler.hasField(\"draft.of\") || tiddler.hasField(\"throttle.refresh\"))) {\n\t\t\t\tonlyThrottledTiddlersHaveChanged = false;\n\t\t\t}\n\t\t}\n\t\t// Defer the change if only drafts have changed\n\t\tif(timerId) {\n\t\t\tclearTimeout(timerId);\n\t\t}\n\t\ttimerId = null;\n\t\tif(onlyThrottledTiddlersHaveChanged) {\n\t\t\tvar timeout = parseInt($tw.wiki.getTiddlerText(DRAFT_TIDDLER_TIMEOUT_TITLE,\"\"),10);\n\t\t\tif(isNaN(timeout)) {\n\t\t\t\ttimeout = THROTTLE_REFRESH_TIMEOUT;\n\t\t\t}\n\t\t\ttimerId = setTimeout(refresh,timeout);\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t} else {\n\t\t\t$tw.utils.extend(deferredChanges,changes);\n\t\t\trefresh();\n\t\t}\n\t}));\n\t// Fix up the link between the root widget and the page container\n\t$tw.rootWidget.domNodes = [$tw.pageContainer];\n\t$tw.rootWidget.children = [$tw.pageWidgetNode];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/rootwidget.js": {
"title": "$:/core/modules/startup/rootwidget.js",
"text": "/*\\\ntitle: $:/core/modules/startup/rootwidget.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget and the core root widget handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"rootwidget\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.before = [\"story\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Install the modal message mechanism\n\t$tw.modal = new $tw.utils.Modal($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-modal\",function(event) {\n\t\t$tw.modal.display(event.param,{variables: event.paramObject, event: event});\n\t});\n\t// Install the notification mechanism\n\t$tw.notifier = new $tw.utils.Notifier($tw.wiki);\n\t$tw.rootWidget.addEventListener(\"tm-notify\",function(event) {\n\t\t$tw.notifier.display(event.param,{variables: event.paramObject});\n\t});\n\t// Install the copy-to-clipboard mechanism\n\t$tw.rootWidget.addEventListener(\"tm-copy-to-clipboard\",function(event) {\n\t\t$tw.utils.copyToClipboard(event.param);\n\t});\n\t// Install the tm-focus-selector message\n\t$tw.rootWidget.addEventListener(\"tm-focus-selector\",function(event) {\n\t\tvar selector = event.param || \"\",\n\t\t\telement;\n\t\ttry {\n\t\t\telement = document.querySelector(selector);\n\t\t} catch(e) {\n\t\t\tconsole.log(\"Error in selector: \",selector)\n\t\t}\n\t\tif(element && element.focus) {\n\t\t\telement.focus(event.paramObject);\n\t\t}\n\t});\n\t// Install the scroller\n\t$tw.pageScroller = new $tw.utils.PageScroller();\n\t$tw.rootWidget.addEventListener(\"tm-scroll\",function(event) {\n\t\t$tw.pageScroller.handleEvent(event);\n\t});\n\tvar fullscreen = $tw.utils.getFullScreenApis();\n\tif(fullscreen) {\n\t\t$tw.rootWidget.addEventListener(\"tm-full-screen\",function(event) {\n\t\t\tvar fullScreenDocument = event.event ? event.event.target.ownerDocument : document;\n\t\t\tif(event.param === \"enter\") {\n\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t} else if(event.param === \"exit\") {\n\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t} else {\n\t\t\t\tif(fullScreenDocument[fullscreen._fullscreenElement]) {\n\t\t\t\t\tfullScreenDocument[fullscreen._exitFullscreen]();\n\t\t\t\t} else {\n\t\t\t\t\tfullScreenDocument.documentElement[fullscreen._requestFullscreen](Element.ALLOW_KEYBOARD_INPUT);\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t}\n\t// If we're being viewed on a data: URI then give instructions for how to save\n\tif(document.location.protocol === \"data:\") {\n\t\t$tw.rootWidget.dispatchEvent({\n\t\t\ttype: \"tm-modal\",\n\t\t\tparam: \"$:/language/Modals/SaveInstructions\"\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup.js": {
"title": "$:/core/modules/startup.js",
"text": "/*\\\ntitle: $:/core/modules/startup.js\ntype: application/javascript\nmodule-type: startup\n\nMiscellaneous startup logic for both the client and server.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\n// Set to `true` to enable performance instrumentation\nvar PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE = \"$:/config/Performance/Instrumentation\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nexports.startup = function() {\n\tvar modules,n,m,f;\n\t// Minimal browser detection\n\tif($tw.browser) {\n\t\t$tw.browser.isIE = (/msie|trident/i.test(navigator.userAgent));\n\t\t$tw.browser.isFirefox = !!document.mozFullScreenEnabled;\n\t}\n\t// Platform detection\n\t$tw.platform = {};\n\tif($tw.browser) {\n\t\t$tw.platform.isMac = /Mac/.test(navigator.platform);\n\t\t$tw.platform.isWindows = /win/i.test(navigator.platform);\n\t\t$tw.platform.isLinux = /Linux/i.test(navigator.platform);\n\t} else {\n\t\tswitch(require(\"os\").platform()) {\n\t\t\tcase \"darwin\":\n\t\t\t\t$tw.platform.isMac = true;\n\t\t\t\tbreak;\n\t\t\tcase \"win32\":\n\t\t\t\t$tw.platform.isWindows = true;\n\t\t\t\tbreak;\n\t\t\tcase \"freebsd\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t\tcase \"linux\":\n\t\t\t\t$tw.platform.isLinux = true;\n\t\t\t\tbreak;\n\t\t}\n\t}\n\t// Initialise version\n\t$tw.version = $tw.utils.extractVersionInfo();\n\t// Set up the performance framework\n\t$tw.perf = new $tw.Performance($tw.wiki.getTiddlerText(PERFORMANCE_INSTRUMENTATION_CONFIG_TITLE,\"no\") === \"yes\");\n\t// Create a root widget for attaching event handlers. By using it as the parentWidget for another widget tree, one can reuse the event handlers\n\t$tw.rootWidget = new widget.widget({\n\t\ttype: \"widget\",\n\t\tchildren: []\n\t},{\n\t\twiki: $tw.wiki,\n\t\tdocument: $tw.browser ? document : $tw.fakeDocument\n\t});\n\t// Execute any startup actions\n\tvar executeStartupTiddlers = function(tag) {\n\t\t$tw.utils.each($tw.wiki.filterTiddlers(\"[all[shadows+tiddlers]tag[\" + tag + \"]!has[draft.of]]\"),function(title) {\n\t\t\t$tw.rootWidget.invokeActionString($tw.wiki.getTiddlerText(title),$tw.rootWidget);\n\t\t});\n\t};\n\texecuteStartupTiddlers(\"$:/tags/StartupAction\");\n\tif($tw.browser) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Browser\");\t\t\n\t}\n\tif($tw.node) {\n\t\texecuteStartupTiddlers(\"$:/tags/StartupAction/Node\");\t\t\n\t}\n\t// Kick off the language manager and switcher\n\t$tw.language = new $tw.Language();\n\t$tw.languageSwitcher = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"language\",\n\t\tcontrollerTitle: \"$:/language\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/languages/en-GB\"\n\t\t],\n\t\tonSwitch: function(plugins) {\n\t\t\tif($tw.browser) {\n\t\t\t\tvar pluginTiddler = $tw.wiki.getTiddler(plugins[0]);\n\t\t\t\tif(pluginTiddler) {\n\t\t\t\t\tdocument.documentElement.setAttribute(\"dir\",pluginTiddler.getFieldString(\"text-direction\") || \"auto\");\n\t\t\t\t} else {\n\t\t\t\t\tdocument.documentElement.removeAttribute(\"dir\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\t// Kick off the theme manager\n\t$tw.themeManager = new $tw.PluginSwitcher({\n\t\twiki: $tw.wiki,\n\t\tpluginType: \"theme\",\n\t\tcontrollerTitle: \"$:/theme\",\n\t\tdefaultPlugins: [\n\t\t\t\"$:/themes/tiddlywiki/snowwhite\",\n\t\t\t\"$:/themes/tiddlywiki/vanilla\"\n\t\t]\n\t});\n\t// Kick off the keyboard manager\n\t$tw.keyboardManager = new $tw.KeyboardManager();\n\t// Listen for shortcuts\n\tif($tw.browser) {\n\t\t$tw.utils.addEventListeners(document,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t}]);\n\t}\n\t// Clear outstanding tiddler store change events to avoid an unnecessary refresh cycle at startup\n\t$tw.wiki.clearTiddlerEventQueue();\n\t// Find a working syncadaptor\n\t$tw.syncadaptor = undefined;\n\t$tw.modules.forEachModuleOfType(\"syncadaptor\",function(title,module) {\n\t\tif(!$tw.syncadaptor && module.adaptorClass) {\n\t\t\t$tw.syncadaptor = new module.adaptorClass({wiki: $tw.wiki});\n\t\t}\n\t});\n\t// Set up the syncer object if we've got a syncadaptor\n\tif($tw.syncadaptor) {\n\t\t$tw.syncer = new $tw.Syncer({wiki: $tw.wiki, syncadaptor: $tw.syncadaptor});\n\t}\n\t// Setup the saver handler\n\t$tw.saverHandler = new $tw.SaverHandler({\n\t\twiki: $tw.wiki,\n\t\tdirtyTracking: !$tw.syncadaptor,\n\t\tpreloadDirty: $tw.boot.preloadDirty || []\n\t});\n\t// Host-specific startup\n\tif($tw.browser) {\n\t\t// Install the popup manager\n\t\t$tw.popup = new $tw.utils.Popup();\n\t\t// Install the animator\n\t\t$tw.anim = new $tw.utils.Animator();\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/story.js": {
"title": "$:/core/modules/startup/story.js",
"text": "/*\\\ntitle: $:/core/modules/startup/story.js\ntype: application/javascript\nmodule-type: startup\n\nLoad core modules\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"story\";\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Default story and history lists\nvar DEFAULT_STORY_TITLE = \"$:/StoryList\";\nvar DEFAULT_HISTORY_TITLE = \"$:/HistoryList\";\n\n// Default tiddlers\nvar DEFAULT_TIDDLERS_TITLE = \"$:/DefaultTiddlers\";\n\n// Config\nvar CONFIG_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/UpdateAddressBar\"; // Can be \"no\", \"permalink\", \"permaview\"\nvar CONFIG_UPDATE_HISTORY = \"$:/config/Navigation/UpdateHistory\"; // Can be \"yes\" or \"no\"\nvar CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD = \"$:/config/Navigation/Permalinkview/CopyToClipboard\"; // Can be \"yes\" (default) or \"no\"\nvar CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR = \"$:/config/Navigation/Permalinkview/UpdateAddressBar\"; // Can be \"yes\" (default) or \"no\"\n\n\n// Links to help, if there is no param\nvar HELP_OPEN_EXTERNAL_WINDOW = \"http://tiddlywiki.com/#WidgetMessage%3A%20tm-open-external-window\";\n\nexports.startup = function() {\n\t// Open startup tiddlers\n\topenStartupTiddlers({\n\t\tdisableHistory: $tw.boot.disableStartupNavigation\n\t});\n\tif($tw.browser) {\n\t\t// Set up location hash update\n\t\t$tw.wiki.addEventListener(\"change\",function(changes) {\n\t\t\tif($tw.utils.hop(changes,DEFAULT_STORY_TITLE) || $tw.utils.hop(changes,DEFAULT_HISTORY_TITLE)) {\n\t\t\t\tupdateLocationHash({\n\t\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_UPDATE_ADDRESS_BAR,\"permaview\").trim(),\n\t\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim()\n\t\t\t\t});\n\t\t\t}\n\t\t});\n\t\t// Listen for changes to the browser location hash\n\t\twindow.addEventListener(\"hashchange\",function() {\n\t\t\tvar hash = $tw.utils.getLocationHash();\n\t\t\tif(hash !== $tw.locationHash) {\n\t\t\t\t$tw.locationHash = hash;\n\t\t\t\topenStartupTiddlers({defaultToCurrentStory: true});\n\t\t\t}\n\t\t},false);\n\t\t// Listen for the tm-browser-refresh message\n\t\t$tw.rootWidget.addEventListener(\"tm-browser-refresh\",function(event) {\n\t\t\twindow.location.reload(true);\n\t\t});\n\t\t// Listen for tm-open-external-window message\n\t\t$tw.rootWidget.addEventListener(\"tm-open-external-window\",function(event) {\n\t\t\tvar paramObject = event.paramObject || {},\n\t\t\t\tstrUrl = event.param || HELP_OPEN_EXTERNAL_WINDOW,\n\t\t\t\tstrWindowName = paramObject.windowName,\n\t\t\t\tstrWindowFeatures = paramObject.windowFeatures;\n\t\t\twindow.open(strUrl, strWindowName, strWindowFeatures);\n\t\t});\n\t\t// Listen for the tm-print message\n\t\t$tw.rootWidget.addEventListener(\"tm-print\",function(event) {\n\t\t\t(event.event.view || window).print();\n\t\t});\n\t\t// Listen for the tm-home message\n\t\t$tw.rootWidget.addEventListener(\"tm-home\",function(event) {\n\t\t\twindow.location.hash = \"\";\n\t\t\tvar storyFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE),\n\t\t\t\tstoryList = $tw.wiki.filterTiddlers(storyFilter);\n\t\t\t//invoke any hooks that might change the default story list\n\t\t\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t\t\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t\t\tif(storyList[0]) {\n\t\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t\t}\n\t\t});\n\t\t// Listen for the tm-permalink message\n\t\t$tw.rootWidget.addEventListener(\"tm-permalink\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permalink\" : \"none\"\n\t\t\t});\n\t\t});\n\t\t// Listen for the tm-permaview message\n\t\t$tw.rootWidget.addEventListener(\"tm-permaview\",function(event) {\n\t\t\tupdateLocationHash({\n\t\t\t\tupdateAddressBar: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_UPDATE_ADDRESS_BAR,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\",\n\t\t\t\tupdateHistory: $tw.wiki.getTiddlerText(CONFIG_UPDATE_HISTORY,\"no\").trim(),\n\t\t\t\ttargetTiddler: event.param || event.tiddlerTitle,\n\t\t\t\tcopyToClipboard: $tw.wiki.getTiddlerText(CONFIG_PERMALINKVIEW_COPY_TO_CLIPBOARD,\"yes\").trim() === \"yes\" ? \"permaview\" : \"none\"\n\t\t\t});\t\t\t\t\n\t\t});\n\t}\n};\n\n/*\nProcess the location hash to open the specified tiddlers. Options:\ndisableHistory: if true $:/History is NOT updated\ndefaultToCurrentStory: If true, the current story is retained as the default, instead of opening the default tiddlers\n*/\nfunction openStartupTiddlers(options) {\n\toptions = options || {};\n\t// Work out the target tiddler and the story filter. \"null\" means \"unspecified\"\n\tvar target = null,\n\t\tstoryFilter = null;\n\tif($tw.locationHash.length > 1) {\n\t\tvar hash = $tw.locationHash.substr(1),\n\t\t\tsplit = hash.indexOf(\":\");\n\t\tif(split === -1) {\n\t\t\ttarget = decodeURIComponent(hash.trim());\n\t\t} else {\n\t\t\ttarget = decodeURIComponent(hash.substr(0,split).trim());\n\t\t\tstoryFilter = decodeURIComponent(hash.substr(split + 1).trim());\n\t\t}\n\t}\n\t// If the story wasn't specified use the current tiddlers or a blank story\n\tif(storyFilter === null) {\n\t\tif(options.defaultToCurrentStory) {\n\t\t\tvar currStoryList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE);\n\t\t\tstoryFilter = $tw.utils.stringifyList(currStoryList);\n\t\t} else {\n\t\t\tif(target && target !== \"\") {\n\t\t\t\tstoryFilter = \"\";\n\t\t\t} else {\n\t\t\t\tstoryFilter = $tw.wiki.getTiddlerText(DEFAULT_TIDDLERS_TITLE);\n\t\t\t}\n\t\t}\n\t}\n\t// Process the story filter to get the story list\n\tvar storyList = $tw.wiki.filterTiddlers(storyFilter);\n\t// Invoke any hooks that want to change the default story list\n\tstoryList = $tw.hooks.invokeHook(\"th-opening-default-tiddlers-list\",storyList);\n\t// If the target tiddler isn't included then splice it in at the top\n\tif(target && storyList.indexOf(target) === -1) {\n\t\tstoryList.unshift(target);\n\t}\n\t// Save the story list\n\t$tw.wiki.addTiddler({title: DEFAULT_STORY_TITLE, text: \"\", list: storyList},$tw.wiki.getModificationFields());\n\t// Update history\n\tif(!options.disableHistory) {\n\t\t// If a target tiddler was specified add it to the history stack\n\t\tif(target && target !== \"\") {\n\t\t\t// The target tiddler doesn't need double square brackets, but we'll silently remove them if they're present\n\t\t\tif(target.indexOf(\"[[\") === 0 && target.substr(-2) === \"]]\") {\n\t\t\t\ttarget = target.substr(2,target.length - 4);\n\t\t\t}\n\t\t\t$tw.wiki.addToHistory(target);\n\t\t} else if(storyList.length > 0) {\n\t\t\t$tw.wiki.addToHistory(storyList[0]);\n\t\t}\t\t\n\t}\n}\n\n/*\noptions: See below\noptions.updateAddressBar: \"permalink\", \"permaview\" or \"no\" (defaults to \"permaview\")\noptions.updateHistory: \"yes\" or \"no\" (defaults to \"no\")\noptions.copyToClipboard: \"permalink\", \"permaview\" or \"no\" (defaults to \"no\")\noptions.targetTiddler: optional title of target tiddler for permalink\n*/\nfunction updateLocationHash(options) {\n\t// Get the story and the history stack\n\tvar storyList = $tw.wiki.getTiddlerList(DEFAULT_STORY_TITLE),\n\t\thistoryList = $tw.wiki.getTiddlerData(DEFAULT_HISTORY_TITLE,[]),\n\t\ttargetTiddler = \"\";\n\tif(options.targetTiddler) {\n\t\ttargetTiddler = options.targetTiddler;\n\t} else {\n\t\t// The target tiddler is the one at the top of the stack\n\t\tif(historyList.length > 0) {\n\t\t\ttargetTiddler = historyList[historyList.length-1].title;\n\t\t}\n\t\t// Blank the target tiddler if it isn't present in the story\n\t\tif(storyList.indexOf(targetTiddler) === -1) {\n\t\t\ttargetTiddler = \"\";\n\t\t}\n\t}\n\t// Assemble the location hash\n\tswitch(options.updateAddressBar) {\n\t\tcase \"permalink\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler);\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.locationHash = \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList));\n\t\t\tbreak;\n\t}\n\t// Copy URL to the clipboard\n\tswitch(options.copyToClipboard) {\n\t\tcase \"permalink\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler));\n\t\t\tbreak;\n\t\tcase \"permaview\":\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getLocationPath() + \"#\" + encodeURIComponent(targetTiddler) + \":\" + encodeURIComponent($tw.utils.stringifyList(storyList)));\n\t\t\tbreak;\n\t}\n\t// Only change the location hash if we must, thus avoiding unnecessary onhashchange events\n\tif($tw.utils.getLocationHash() !== $tw.locationHash) {\n\t\tif(options.updateHistory === \"yes\") {\n\t\t\t// Assign the location hash so that history is updated\n\t\t\twindow.location.hash = $tw.locationHash;\n\t\t} else {\n\t\t\t// We use replace so that browser history isn't affected\n\t\t\twindow.location.replace(window.location.toString().split(\"#\")[0] + $tw.locationHash);\n\t\t}\n\t}\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/startup/windows.js": {
"title": "$:/core/modules/startup/windows.js",
"text": "/*\\\ntitle: $:/core/modules/startup/windows.js\ntype: application/javascript\nmodule-type: startup\n\nSetup root widget handlers for the messages concerned with opening external browser windows\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"windows\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Global to keep track of open windows (hashmap by title)\nvar windows = {};\n\nexports.startup = function() {\n\t// Handle open window message\n\t$tw.rootWidget.addEventListener(\"tm-open-window\",function(event) {\n\t\t// Get the parameters\n\t\tvar refreshHandler,\n\t\t\ttitle = event.param || event.tiddlerTitle,\n\t\t\tparamObject = event.paramObject || {},\n\t\t\twindowTitle = paramObject.windowTitle || title,\n\t\t\ttemplate = paramObject.template || \"$:/core/templates/single.tiddler.window\",\n\t\t\twidth = paramObject.width || \"700\",\n\t\t\theight = paramObject.height || \"600\",\n\t\t\tvariables = $tw.utils.extend({},paramObject,{currentTiddler: title});\n\t\t// Open the window\n\t\tvar srcWindow,\n\t\t srcDocument;\n\t\t// In case that popup blockers deny opening a new window\n\t\ttry {\n\t\t\tsrcWindow = window.open(\"\",\"external-\" + title,\"scrollbars,width=\" + width + \",height=\" + height),\n\t\t\tsrcDocument = srcWindow.document;\n\t\t}\n\t\tcatch(e) {\n\t\t\treturn;\n\t\t}\n\t\twindows[title] = srcWindow;\n\t\t// Check for reopening the same window\n\t\tif(srcWindow.haveInitialisedWindow) {\n\t\t\treturn;\n\t\t}\n\t\t// Initialise the document\n\t\tsrcDocument.write(\"<html><head></head><body class='tc-body tc-single-tiddler-window'></body></html>\");\n\t\tsrcDocument.close();\n\t\tsrcDocument.title = windowTitle;\n\t\tsrcWindow.addEventListener(\"beforeunload\",function(event) {\n\t\t\tdelete windows[title];\n\t\t\t$tw.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t},false);\n\t\t// Set up the styles\n\t\tvar styleWidgetNode = $tw.wiki.makeTranscludeWidget(\"$:/core/ui/PageStylesheet\",{\n\t\t\t\tdocument: $tw.fakeDocument,\n\t\t\t\tvariables: variables,\n\t\t\t\timportPageMacros: true}),\n\t\t\tstyleContainer = $tw.fakeDocument.createElement(\"style\");\n\t\tstyleWidgetNode.render(styleContainer,null);\n\t\tvar styleElement = srcDocument.createElement(\"style\");\n\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\tsrcDocument.head.insertBefore(styleElement,srcDocument.head.firstChild);\n\t\t// Render the text of the tiddler\n\t\tvar parser = $tw.wiki.parseTiddler(template),\n\t\t\twidgetNode = $tw.wiki.makeWidget(parser,{document: srcDocument, parentWidget: $tw.rootWidget, variables: variables});\n\t\twidgetNode.render(srcDocument.body,srcDocument.body.firstChild);\n\t\t// Function to handle refreshes\n\t\trefreshHandler = function(changes) {\n\t\t\tif(styleWidgetNode.refresh(changes,styleContainer,null)) {\n\t\t\t\tstyleElement.innerHTML = styleContainer.textContent;\n\t\t\t}\n\t\t\twidgetNode.refresh(changes);\n\t\t};\n\t\t$tw.wiki.addEventListener(\"change\",refreshHandler);\n\t\t// Listen for keyboard shortcuts\n\t\t$tw.utils.addEventListeners(srcDocument,[{\n\t\t\tname: \"keydown\",\n\t\t\thandlerObject: $tw.keyboardManager,\n\t\t\thandlerMethod: \"handleKeydownEvent\"\n\t\t},{\n\t\t\tname: \"click\",\n\t\t\thandlerObject: $tw.popup,\n\t\t\thandlerMethod: \"handleEvent\"\n\t\t}]);\n\t\tsrcWindow.haveInitialisedWindow = true;\n\t});\n\t// Close open windows when unloading main window\n\t$tw.addUnloadTask(function() {\n\t\t$tw.utils.each(windows,function(win) {\n\t\t\twin.close();\n\t\t});\n\t});\n\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/core/modules/story.js": {
"title": "$:/core/modules/story.js",
"text": "/*\\\ntitle: $:/core/modules/story.js\ntype: application/javascript\nmodule-type: global\n\nLightweight object for managing interactions with the story and history lists.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nConstruct Story object with options:\nwiki: reference to wiki object to use to resolve tiddler titles\nstoryTitle: title of story list tiddler\nhistoryTitle: title of history list tiddler\n*/\nfunction Story(options) {\n\toptions = options || {};\n\tthis.wiki = options.wiki || $tw.wiki;\n\tthis.storyTitle = options.storyTitle || \"$:/StoryList\";\n\tthis.historyTitle = options.historyTitle || \"$:/HistoryList\";\n};\n\nStory.prototype.navigateTiddler = function(navigateTo,navigateFromTitle,navigateFromClientRect) {\n\tthis.addToStory(navigateTo,navigateFromTitle);\n\tthis.addToHistory(navigateTo,navigateFromClientRect);\n};\n\nStory.prototype.getStoryList = function() {\n\treturn this.wiki.getTiddlerList(this.storyTitle) || [];\n};\n\nStory.prototype.addToStory = function(navigateTo,navigateFromTitle,options) {\n\toptions = options || {};\n\tvar storyList = this.getStoryList();\n\t// See if the tiddler is already there\n\tvar slot = storyList.indexOf(navigateTo);\n\t// Quit if it already exists in the story river\n\tif(slot >= 0) {\n\t\treturn;\n\t}\n\t// First we try to find the position of the story element we navigated from\n\tvar fromIndex = storyList.indexOf(navigateFromTitle);\n\tif(fromIndex >= 0) {\n\t\t// The tiddler is added from inside the river\n\t\t// Determine where to insert the tiddler; Fallback is \"below\"\n\t\tswitch(options.openLinkFromInsideRiver) {\n\t\t\tcase \"top\":\n\t\t\t\tslot = 0;\n\t\t\t\tbreak;\n\t\t\tcase \"bottom\":\n\t\t\t\tslot = storyList.length;\n\t\t\t\tbreak;\n\t\t\tcase \"above\":\n\t\t\t\tslot = fromIndex;\n\t\t\t\tbreak;\n\t\t\tcase \"below\": // Intentional fall-through\n\t\t\tdefault:\n\t\t\t\tslot = fromIndex + 1;\n\t\t\t\tbreak;\n\t\t}\n\t} else {\n\t\t// The tiddler is opened from outside the river. Determine where to insert the tiddler; default is \"top\"\n\t\tif(options.openLinkFromOutsideRiver === \"bottom\") {\n\t\t\t// Insert at bottom\n\t\t\tslot = storyList.length;\n\t\t} else {\n\t\t\t// Insert at top\n\t\t\tslot = 0;\n\t\t}\n\t}\n\t// Add the tiddler\n\tstoryList.splice(slot,0,navigateTo);\n\t// Save the story\n\tthis.saveStoryList(storyList);\n};\n\nStory.prototype.saveStoryList = function(storyList) {\n\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\tthis.wiki.getCreationFields(),\n\t\t{title: this.storyTitle},\n\t\tstoryTiddler,\n\t\t{list: storyList},\n\t\tthis.wiki.getModificationFields()\n\t));\n};\n\nStory.prototype.addToHistory = function(navigateTo,navigateFromClientRect) {\n\tvar titles = $tw.utils.isArray(navigateTo) ? navigateTo : [navigateTo];\n\t// Add a new record to the top of the history stack\n\tvar historyList = this.wiki.getTiddlerData(this.historyTitle,[]);\n\t$tw.utils.each(titles,function(title) {\n\t\thistoryList.push({title: title, fromPageRect: navigateFromClientRect});\n\t});\n\tthis.wiki.setTiddlerData(this.historyTitle,historyList,{\"current-tiddler\": titles[titles.length-1]});\n};\n\nStory.prototype.storyCloseTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCloseAllTiddlers = function() {\n// TBD\n};\n\nStory.prototype.storyCloseOtherTiddlers = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyEditTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyDeleteTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storySaveTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyCancelTiddler = function(targetTitle) {\n// TBD\n};\n\nStory.prototype.storyNewTiddler = function(targetTitle) {\n// TBD\n};\n\nexports.Story = Story;\n\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/storyviews/classic.js": {
"title": "$:/core/modules/storyviews/classic.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/classic.js\ntype: application/javascript\nmodule-type: storyview\n\nViews the story as a linear sequence\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ClassicStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nClassicStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration()\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\tif(duration) {\n\t\t// Scroll the node into view\n\t\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\t\n\t} else {\n\t\ttargetElement.scrollIntoView();\n\t}\n};\n\nClassicStoryView.prototype.insert = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar computedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Reset the margin once the transition is over\n\t\tsetTimeout(function() {\n\t\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t\t{transition: \"none\"},\n\t\t\t\t{marginBottom: \"\"}\n\t\t\t]);\n\t\t},duration);\n\t\t// Set up the initial position of the element\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t// Transition to the final position\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t]);\n\t}\n};\n\nClassicStoryView.prototype.remove = function(widget) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tif(duration) {\n\t\tvar targetElement = widget.findFirstDomNode(),\n\t\t\tremoveElement = function() {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t};\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(targetElement instanceof Element)) {\n\t\t\tremoveElement();\n\t\t\treturn;\n\t\t}\n\t\t// Get the current height of the tiddler\n\t\tvar currWidth = targetElement.offsetWidth,\n\t\t\tcomputedStyle = window.getComputedStyle(targetElement),\n\t\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\t\tcurrHeight = targetElement.offsetHeight + currMarginTop;\n\t\t// Remove the dom nodes of the widget at the end of the transition\n\t\tsetTimeout(removeElement,duration);\n\t\t// Animate the closure\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"translateX(0px)\"},\n\t\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t\t{opacity: \"1.0\"}\n\t\t]);\n\t\t$tw.utils.forceLayout(targetElement);\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"opacity \" + duration + \"ms \" + easing + \", \" +\n\t\t\t\t\t\t\"margin-bottom \" + duration + \"ms \" + easing},\n\t\t\t{transform: \"translateX(-\" + currWidth + \"px)\"},\n\t\t\t{marginBottom: (-currHeight) + \"px\"},\n\t\t\t{opacity: \"0.0\"}\n\t\t]);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n};\n\nexports.classic = ClassicStoryView;\n\n})();",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/pop.js": {
"title": "$:/core/modules/storyviews/pop.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/pop.js\ntype: application/javascript\nmodule-type: storyview\n\nAnimates list insertions and removals\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar PopStoryView = function(listWidget) {\n\tthis.listWidget = listWidget;\n};\n\nPopStoryView.prototype.navigateTo = function(historyInfo) {\n\tvar listElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Scroll the node into view\n\tthis.listWidget.dispatchEvent({type: \"tm-scroll\", target: targetElement});\n};\n\nPopStoryView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Reset once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(targetElement,[\n\t\t\t{transition: \"none\"},\n\t\t\t{transform: \"none\"}\n\t\t]);\n\t\t$tw.utils.setStyle(widget.document.body,[\n\t\t\t{\"overflow-x\": \"\"}\n\t\t]);\n\t},duration);\n\t// Prevent the page from overscrolling due to the zoom factor\n\t$tw.utils.setStyle(widget.document.body,[\n\t\t{\"overflow-x\": \"hidden\"}\n\t]);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(2)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t// Transition to the final position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n};\n\nPopStoryView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\tif(targetElement && targetElement.parentNode) {\n\t\t\t\twidget.removeChildDomNodes();\n\t\t\t}\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Remove the element at the end of the transition\n\tsetTimeout(removeElement,duration);\n\t// Animate the closure\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: \"none\"},\n\t\t{transform: \"scale(1)\"},\n\t\t{opacity: \"1.0\"}\n\t]);\n\t$tw.utils.forceLayout(targetElement);\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{transform: \"scale(0.1)\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n};\n\nexports.pop = PopStoryView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/storyviews/zoomin.js": {
"title": "$:/core/modules/storyviews/zoomin.js",
"text": "/*\\\ntitle: $:/core/modules/storyviews/zoomin.js\ntype: application/javascript\nmodule-type: storyview\n\nZooms between individual tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar easing = \"cubic-bezier(0.645, 0.045, 0.355, 1)\"; // From http://easings.net/#easeInOutCubic\n\nvar ZoominListView = function(listWidget) {\n\tvar self = this;\n\tthis.listWidget = listWidget;\n\t// Get the index of the tiddler that is at the top of the history\n\tvar history = this.listWidget.wiki.getTiddlerDataCached(this.listWidget.historyTitle,[]),\n\t\ttargetTiddler;\n\tif(history.length > 0) {\n\t\ttargetTiddler = history[history.length-1].title;\n\t}\n\t// Make all the tiddlers position absolute, and hide all but the top (or first) one\n\t$tw.utils.each(this.listWidget.children,function(itemWidget,index) {\n\t\tvar domNode = itemWidget.findFirstDomNode();\n\t\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\t\tif(!(domNode instanceof Element)) {\n\t\t\treturn;\n\t\t}\n\t\tif((targetTiddler && targetTiddler !== itemWidget.parseTreeNode.itemTitle) || (!targetTiddler && index)) {\n\t\t\tdomNode.style.display = \"none\";\n\t\t} else {\n\t\t\tself.currentTiddlerDomNode = domNode;\n\t\t}\n\t\t$tw.utils.addClass(domNode,\"tc-storyview-zoomin-tiddler\");\n\t});\n};\n\nZoominListView.prototype.navigateTo = function(historyInfo) {\n\tvar duration = $tw.utils.getAnimationDuration(),\n\t\tlistElementIndex = this.listWidget.findListItem(0,historyInfo.title);\n\tif(listElementIndex === undefined) {\n\t\treturn;\n\t}\n\tvar listItemWidget = this.listWidget.children[listElementIndex],\n\t\ttargetElement = listItemWidget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the new tiddler be position absolute and visible so that we can measure it\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"0 0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{opacity: \"0.0\"}\n\t]);\n\t// Get the position of the source node, or use the centre of the window as the source position\n\tvar sourceBounds = historyInfo.fromPageRect || {\n\t\t\tleft: window.innerWidth/2 - 2,\n\t\t\ttop: window.innerHeight/2 - 2,\n\t\t\twidth: window.innerWidth/8,\n\t\t\theight: window.innerHeight/8\n\t\t};\n\t// Try to find the title node in the target tiddler\n\tvar titleDomNode = findTitleDomNode(listItemWidget) || listItemWidget.findFirstDomNode(),\n\t\tzoomBounds = titleDomNode.getBoundingClientRect();\n\t// Compute the transform for the target tiddler to make the title lie over the source rectange\n\tvar targetBounds = targetElement.getBoundingClientRect(),\n\t\tscale = sourceBounds.width / zoomBounds.width,\n\t\tx = sourceBounds.left - targetBounds.left - (zoomBounds.left - targetBounds.left) * scale,\n\t\ty = sourceBounds.top - targetBounds.top - (zoomBounds.top - targetBounds.top) * scale;\n\t// Transform the target tiddler to its starting position\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(targetElement);\n\t// Apply the ending transitions with a timeout to ensure that the previously applied transformations are applied first\n\tvar self = this,\n\t\tprevCurrentTiddler = this.currentTiddlerDomNode;\n\tthis.currentTiddlerDomNode = targetElement;\n\t// Transform the target tiddler to its natural size\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{zIndex: \"500\"},\n\t]);\n\t// Transform the previous tiddler out of the way and then hide it\n\tif(prevCurrentTiddler && prevCurrentTiddler !== targetElement) {\n\t\tscale = zoomBounds.width / sourceBounds.width;\n\t\tx = zoomBounds.left - targetBounds.left - (sourceBounds.left - targetBounds.left) * scale;\n\t\ty = zoomBounds.top - targetBounds.top - (sourceBounds.top - targetBounds.top) * scale;\n\t\t$tw.utils.setStyle(prevCurrentTiddler,[\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transformOrigin: \"0 0\"},\n\t\t\t{transform: \"translateX(\" + x + \"px) translateY(\" + y + \"px) scale(\" + scale + \")\"},\n\t\t\t{zIndex: \"0\"}\n\t\t]);\n\t\t// Hide the tiddler when the transition has finished\n\t\tsetTimeout(function() {\n\t\t\tif(self.currentTiddlerDomNode !== prevCurrentTiddler) {\n\t\t\t\tprevCurrentTiddler.style.display = \"none\";\n\t\t\t}\n\t\t},duration);\n\t}\n\t// Scroll the target into view\n//\t$tw.pageScroller.scrollIntoView(targetElement);\n};\n\n/*\nFind the first child DOM node of a widget that has the class \"tc-title\"\n*/\nfunction findTitleDomNode(widget,targetClass) {\n\ttargetClass = targetClass || \"tc-title\";\n\tvar domNode = widget.findFirstDomNode();\n\tif(domNode && domNode.querySelector) {\n\t\treturn domNode.querySelector(\".\" + targetClass);\n\t}\n\treturn null;\n}\n\nZoominListView.prototype.insert = function(widget) {\n\tvar targetElement = widget.findFirstDomNode();\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\treturn;\n\t}\n\t// Make the newly inserted node position absolute and hidden\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"none\"}\n\t]);\n};\n\nZoominListView.prototype.remove = function(widget) {\n\tvar targetElement = widget.findFirstDomNode(),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\tremoveElement = function() {\n\t\t\twidget.removeChildDomNodes();\n\t\t};\n\t// Abandon if the list entry isn't a DOM element (it might be a text node)\n\tif(!(targetElement instanceof Element)) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Abandon if hidden\n\tif(targetElement.style.display != \"block\" ) {\n\t\tremoveElement();\n\t\treturn;\n\t}\n\t// Set up the tiddler that is being closed\n\t$tw.utils.addClass(targetElement,\"tc-storyview-zoomin-tiddler\");\n\t$tw.utils.setStyle(targetElement,[\n\t\t{display: \"block\"},\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t{transition: \"none\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\t// We'll move back to the previous or next element in the story\n\tvar toWidget = widget.previousSibling();\n\tif(!toWidget) {\n\t\ttoWidget = widget.nextSibling();\n\t}\n\tvar toWidgetDomNode = toWidget && toWidget.findFirstDomNode();\n\t// Set up the tiddler we're moving back in\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.addClass(toWidgetDomNode,\"tc-storyview-zoomin-tiddler\");\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{display: \"block\"},\n\t\t\t{transformOrigin: \"50% 50%\"},\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(10)\"},\n\t\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t\t{opacity: \"0\"},\n\t\t\t{zIndex: \"500\"}\n\t\t]);\n\t\tthis.currentTiddlerDomNode = toWidgetDomNode;\n\t}\n\t// Animate them both\n\t// Force layout\n\t$tw.utils.forceLayout(this.listWidget.parentDomNode);\n\t// First, the tiddler we're closing\n\t$tw.utils.setStyle(targetElement,[\n\t\t{transformOrigin: \"50% 50%\"},\n\t\t{transform: \"translateX(0px) translateY(0px) scale(0.1)\"},\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms \" + easing + \", opacity \" + duration + \"ms \" + easing},\n\t\t{opacity: \"0\"},\n\t\t{zIndex: \"0\"}\n\t]);\n\tsetTimeout(removeElement,duration);\n\t// Now the tiddler we're going back to\n\tif(toWidgetDomNode) {\n\t\t$tw.utils.setStyle(toWidgetDomNode,[\n\t\t\t{transform: \"translateX(0px) translateY(0px) scale(1)\"},\n\t\t\t{opacity: \"1\"}\n\t\t]);\n\t}\n\treturn true; // Indicate that we'll delete the DOM node\n};\n\nexports.zoomin = ZoominListView;\n\n})();\n",
"type": "application/javascript",
"module-type": "storyview"
},
"$:/core/modules/syncer.js": {
"title": "$:/core/modules/syncer.js",
"text": "/*\\\ntitle: $:/core/modules/syncer.js\ntype: application/javascript\nmodule-type: global\n\nThe syncer tracks changes to the store and synchronises them to a remote data store represented as a \"sync adaptor\"\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDefaults\n*/\nSyncer.prototype.titleIsLoggedIn = \"$:/status/IsLoggedIn\";\nSyncer.prototype.titleIsAnonymous = \"$:/status/IsAnonymous\";\nSyncer.prototype.titleIsReadOnly = \"$:/status/IsReadOnly\";\nSyncer.prototype.titleUserName = \"$:/status/UserName\";\nSyncer.prototype.titleSyncFilter = \"$:/config/SyncFilter\";\nSyncer.prototype.titleSyncPollingInterval = \"$:/config/SyncPollingInterval\";\nSyncer.prototype.titleSyncDisableLazyLoading = \"$:/config/SyncDisableLazyLoading\";\nSyncer.prototype.titleSavedNotification = \"$:/language/Notifications/Save/Done\";\nSyncer.prototype.titleSyncThrottleInterval = \"$:/config/SyncThrottleInterval\";\nSyncer.prototype.taskTimerInterval = 1 * 1000; // Interval for sync timer\nSyncer.prototype.throttleInterval = 1 * 1000; // Defer saving tiddlers if they've changed in the last 1s...\nSyncer.prototype.errorRetryInterval = 5 * 1000; // Interval to retry after an error\nSyncer.prototype.fallbackInterval = 10 * 1000; // Unless the task is older than 10s\nSyncer.prototype.pollTimerInterval = 60 * 1000; // Interval for polling for changes from the adaptor\n\n/*\nInstantiate the syncer with the following options:\nsyncadaptor: reference to syncadaptor to be used\nwiki: wiki to be synced\n*/\nfunction Syncer(options) {\n\tvar self = this;\n\tthis.wiki = options.wiki;\n\t// Save parameters\n\tthis.syncadaptor = options.syncadaptor;\n\tthis.disableUI = !!options.disableUI;\n\tthis.titleIsLoggedIn = options.titleIsLoggedIn || this.titleIsLoggedIn;\n\tthis.titleUserName = options.titleUserName || this.titleUserName;\n\tthis.titleSyncFilter = options.titleSyncFilter || this.titleSyncFilter;\n\tthis.titleSavedNotification = options.titleSavedNotification || this.titleSavedNotification;\n\tthis.taskTimerInterval = options.taskTimerInterval || this.taskTimerInterval;\n\tthis.throttleInterval = options.throttleInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncThrottleInterval,\"\"),10) || this.throttleInterval;\n\tthis.errorRetryInterval = options.errorRetryInterval || this.errorRetryInterval;\n\tthis.fallbackInterval = options.fallbackInterval || this.fallbackInterval;\n\tthis.pollTimerInterval = options.pollTimerInterval || parseInt(this.wiki.getTiddlerText(this.titleSyncPollingInterval,\"\"),10) || this.pollTimerInterval;\n\tthis.logging = \"logging\" in options ? options.logging : true;\n\t// Make a logger\n\tthis.logger = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\"),{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging,\n\t\tsaveHistory: true\n\t});\n\t// Make another logger for connection errors\n\tthis.loggerConnection = new $tw.utils.Logger(\"syncer\" + ($tw.browser ? \"-browser\" : \"\") + ($tw.node ? \"-server\" : \"\") + (this.syncadaptor.name ? (\"-\" + this.syncadaptor.name) : \"\") + \"-connection\",{\n\t\tcolour: \"cyan\",\n\t\tenable: this.logging\n\t});\n\t// Ask the syncadaptor to use the main logger\n\tif(this.syncadaptor.setLoggerSaveBuffer) {\n\t\tthis.syncadaptor.setLoggerSaveBuffer(this.logger);\n\t}\n\t// Compile the dirty tiddler filter\n\tthis.filterFn = this.wiki.compileFilter(this.wiki.getTiddlerText(this.titleSyncFilter));\n\t// Record information for known tiddlers\n\tthis.readTiddlerInfo();\n\tthis.titlesToBeLoaded = {}; // Hashmap of titles of tiddlers that need loading from the server\n\tthis.titlesHaveBeenLazyLoaded = {}; // Hashmap of titles of tiddlers that have already been lazily loaded from the server\n\t// Timers\n\tthis.taskTimerId = null; // Timer for task dispatch\n\tthis.pollTimerId = null; // Timer for polling server\n\t// Number of outstanding requests\n\tthis.numTasksInProgress = 0;\n\t// Listen out for changes to tiddlers\n\tthis.wiki.addEventListener(\"change\",function(changes) {\n\t\t// Filter the changes to just include ones that are being synced\n\t\tvar filteredChanges = self.getSyncedTiddlers(function(callback) {\n\t\t\t$tw.utils.each(changes,function(change,title) {\n\t\t\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\t\t\tcallback(tiddler,title);\n\t\t\t});\n\t\t});\n\t\tif(filteredChanges.length > 0) {\n\t\t\tself.processTaskQueue();\n\t\t} else {\n\t\t\t// Look for deletions of tiddlers we're already syncing\t\n\t\t\tvar outstandingDeletion = false\n\t\t\t$tw.utils.each(changes,function(change,title,object) {\n\t\t\t\tif(change.deleted && $tw.utils.hop(self.tiddlerInfo,title)) {\n\t\t\t\t\toutstandingDeletion = true;\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(outstandingDeletion) {\n\t\t\t\tself.processTaskQueue();\n\t\t\t}\n\t\t}\n\t});\n\t// Browser event handlers\n\tif($tw.browser && !this.disableUI) {\n\t\t// Set up our beforeunload handler\n\t\t$tw.addUnloadTask(function(event) {\n\t\t\tvar confirmationMessage;\n\t\t\tif(self.isDirty()) {\n\t\t\t\tconfirmationMessage = $tw.language.getString(\"UnsavedChangesWarning\");\n\t\t\t\tevent.returnValue = confirmationMessage; // Gecko\n\t\t\t}\n\t\t\treturn confirmationMessage;\n\t\t});\n\t\t// Listen out for login/logout/refresh events in the browser\n\t\t$tw.rootWidget.addEventListener(\"tm-login\",function() {\n\t\t\tself.handleLoginEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-logout\",function() {\n\t\t\tself.handleLogoutEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-server-refresh\",function() {\n\t\t\tself.handleRefreshEvent();\n\t\t});\n\t\t$tw.rootWidget.addEventListener(\"tm-copy-syncer-logs-to-clipboard\",function() {\n\t\t\t$tw.utils.copyToClipboard($tw.utils.getSystemInfo() + \"\\n\\nLog:\\n\" + self.logger.getBuffer());\n\t\t});\n\t}\n\t// Listen out for lazyLoad events\n\tif(!this.disableUI && $tw.wiki.getTiddlerText(this.titleSyncDisableLazyLoading) !== \"yes\") {\n\t\tthis.wiki.addEventListener(\"lazyLoad\",function(title) {\n\t\t\tself.handleLazyLoadEvent(title);\n\t\t});\t\t\n\t}\n\t// Get the login status\n\tthis.getStatus(function(err,isLoggedIn) {\n\t\t// Do a sync from the server\n\t\tself.syncFromServer();\n\t});\n}\n\n/*\nShow a generic network error alert\n*/\nSyncer.prototype.displayError = function(msg,err) {\n\tif(err === ($tw.language.getString(\"Error/XMLHttpRequest\") + \": 0\")) {\n\t\tthis.loggerConnection.alert($tw.language.getString(\"Error/NetworkErrorAlert\"));\n\t\tthis.logger.log(msg + \":\",err);\n\t} else {\n\t\tthis.logger.alert(msg + \":\",err);\n\t}\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getSyncedTiddlers = function(source) {\n\treturn this.filterFn.call(this.wiki,source);\n};\n\n/*\nReturn an array of the tiddler titles that are subjected to syncing\n*/\nSyncer.prototype.getTiddlerRevision = function(title) {\n\tif(this.syncadaptor && this.syncadaptor.getTiddlerRevision) {\n\t\treturn this.syncadaptor.getTiddlerRevision(title);\n\t} else {\n\t\treturn this.wiki.getTiddler(title).fields.revision;\t\n\t} \n};\n\n/*\nRead (or re-read) the latest tiddler info from the store\n*/\nSyncer.prototype.readTiddlerInfo = function() {\n\t// Hashmap by title of {revision:,changeCount:,adaptorInfo:}\n\t// \"revision\" is the revision of the tiddler last seen on the server, and \"changecount\" is the corresponding local changecount\n\tthis.tiddlerInfo = {};\n\t// Record information for known tiddlers\n\tvar self = this,\n\t\ttiddlers = this.getSyncedTiddlers();\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.tiddlerExists(title) && self.wiki.getTiddler(title);\n\t\tself.tiddlerInfo[title] = {\n\t\t\trevision: self.getTiddlerRevision(title),\n\t\t\tadaptorInfo: self.syncadaptor && self.syncadaptor.getTiddlerInfo(tiddler),\n\t\t\tchangeCount: self.wiki.getChangeCount(title)\n\t\t};\n\t});\n};\n\n/*\nChecks whether the wiki is dirty (ie the window shouldn't be closed)\n*/\nSyncer.prototype.isDirty = function() {\n\tthis.logger.log(\"Checking dirty status\");\n\t// Check tiddlers that are in the store and included in the filter function\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(this.wiki.tiddlerExists(title)) {\n\t\t\tif(tiddlerInfo) {\n\t\t\t\t// If the tiddler is known on the server and has been modified locally then it needs to be saved to the server\n\t\t\t\tif($tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount) {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\t// If the tiddler isn't known on the server then it needs to be saved to the server\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t}\n\t// Check tiddlers that are known from the server but not currently in the store\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\tif(!this.wiki.tiddlerExists(titles[index])) {\n\t\t\t// There must be a pending delete\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nUpdate the document body with the class \"tc-dirty\" if the wiki has unsaved/unsynced changes\n*/\nSyncer.prototype.updateDirtyStatus = function() {\n\tif($tw.browser && !this.disableUI) {\n\t\tvar dirty = this.isDirty();\n\t\t$tw.utils.toggleClass(document.body,\"tc-dirty\",dirty);\n\t\tif(!dirty) {\n\t\t\tthis.loggerConnection.clearAlerts();\n\t\t}\n\t}\n};\n\n/*\nSave an incoming tiddler in the store, and updates the associated tiddlerInfo\n*/\nSyncer.prototype.storeTiddler = function(tiddlerFields) {\n\t// Save the tiddler\n\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\tthis.wiki.addTiddler(tiddler);\n\t// Save the tiddler revision and changeCount details\n\tthis.tiddlerInfo[tiddlerFields.title] = {\n\t\trevision: this.getTiddlerRevision(tiddlerFields.title),\n\t\tadaptorInfo: this.syncadaptor.getTiddlerInfo(tiddler),\n\t\tchangeCount: this.wiki.getChangeCount(tiddlerFields.title)\n\t};\n};\n\nSyncer.prototype.getStatus = function(callback) {\n\tvar self = this;\n\t// Check if the adaptor supports getStatus()\n\tif(this.syncadaptor && this.syncadaptor.getStatus) {\n\t\t// Mark us as not logged in\n\t\tthis.wiki.addTiddler({title: this.titleIsLoggedIn,text: \"no\"});\n\t\t// Get login status\n\t\tthis.syncadaptor.getStatus(function(err,isLoggedIn,username,isReadOnly,isAnonymous) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\t// Set the various status tiddlers\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsReadOnly,text: isReadOnly ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsAnonymous,text: isAnonymous ? \"yes\" : \"no\"});\n\t\t\t\tself.wiki.addTiddler({title: self.titleIsLoggedIn,text: isLoggedIn ? \"yes\" : \"no\"});\n\t\t\t\tif(isLoggedIn) {\n\t\t\t\t\tself.wiki.addTiddler({title: self.titleUserName,text: username || \"\"});\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Invoke the callback\n\t\t\tif(callback) {\n\t\t\t\tcallback(err,isLoggedIn,username);\n\t\t\t}\n\t\t});\n\t} else {\n\t\tcallback(null,true,\"UNAUTHENTICATED\");\n\t}\n};\n\n/*\nSynchronise from the server by reading the skinny tiddler list and queuing up loads for any tiddlers that we don't already have up to date\n*/\nSyncer.prototype.syncFromServer = function() {\n\tvar self = this,\n\t\tcancelNextSync = function() {\n\t\t\tif(self.pollTimerId) {\n\t\t\t\tclearTimeout(self.pollTimerId);\n\t\t\t\tself.pollTimerId = null;\n\t\t\t}\n\t\t},\n\t\ttriggerNextSync = function() {\n\t\t\tself.pollTimerId = setTimeout(function() {\n\t\t\t\tself.pollTimerId = null;\n\t\t\t\tself.syncFromServer.call(self);\n\t\t\t},self.pollTimerInterval);\n\t\t};\n\tif(this.syncadaptor && this.syncadaptor.getUpdatedTiddlers) {\n\t\tthis.logger.log(\"Retrieving updated tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getUpdatedTiddlers(self,function(err,updates) {\n\t\t\ttriggerNextSync();\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tif(updates) {\n\t\t\t\t$tw.utils.each(updates.modifications,function(title) {\n\t\t\t\t\tself.titlesToBeLoaded[title] = true;\n\t\t\t\t});\n\t\t\t\t$tw.utils.each(updates.deletions,function(title) {\n\t\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t\t});\n\t\t\t\tif(updates.modifications.length > 0 || updates.deletions.length > 0) {\n\t\t\t\t\tself.processTaskQueue();\n\t\t\t\t}\t\t\t\t\n\t\t\t}\n\t\t});\n\t} else if(this.syncadaptor && this.syncadaptor.getSkinnyTiddlers) {\n\t\tthis.logger.log(\"Retrieving skinny tiddler list\");\n\t\tcancelNextSync();\n\t\tthis.syncadaptor.getSkinnyTiddlers(function(err,tiddlers) {\n\t\t\ttriggerNextSync();\n\t\t\t// Check for errors\n\t\t\tif(err) {\n\t\t\t\tself.displayError($tw.language.getString(\"Error/RetrievingSkinny\"),err);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep track of which tiddlers we already know about have been reported this time\n\t\t\tvar previousTitles = Object.keys(self.tiddlerInfo);\n\t\t\t// Process each incoming tiddler\n\t\t\tfor(var t=0; t<tiddlers.length; t++) {\n\t\t\t\t// Get the incoming tiddler fields, and the existing tiddler\n\t\t\t\tvar tiddlerFields = tiddlers[t],\n\t\t\t\t\tincomingRevision = tiddlerFields.revision + \"\",\n\t\t\t\t\ttiddler = self.wiki.tiddlerExists(tiddlerFields.title) && self.wiki.getTiddler(tiddlerFields.title),\n\t\t\t\t\ttiddlerInfo = self.tiddlerInfo[tiddlerFields.title],\n\t\t\t\t\tcurrRevision = tiddlerInfo ? tiddlerInfo.revision : null,\n\t\t\t\t\tindexInPreviousTitles = previousTitles.indexOf(tiddlerFields.title);\n\t\t\t\tif(indexInPreviousTitles !== -1) {\n\t\t\t\t\tpreviousTitles.splice(indexInPreviousTitles,1);\n\t\t\t\t}\n\t\t\t\t// Ignore the incoming tiddler if it's the same as the revision we've already got\n\t\t\t\tif(currRevision !== incomingRevision) {\n\t\t\t\t\t// Only load the skinny version if we don't already have a fat version of the tiddler\n\t\t\t\t\tif(!tiddler || tiddler.fields.text === undefined) {\n\t\t\t\t\t\tself.storeTiddler(tiddlerFields);\n\t\t\t\t\t}\n\t\t\t\t\t// Do a full load of this tiddler\n\t\t\t\t\tself.titlesToBeLoaded[tiddlerFields.title] = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Delete any tiddlers that were previously reported but missing this time\n\t\t\t$tw.utils.each(previousTitles,function(title) {\n\t\t\t\tdelete self.tiddlerInfo[title];\n\t\t\t\tself.logger.log(\"Deleting tiddler missing from server:\",title);\n\t\t\t\tself.wiki.deleteTiddler(title);\n\t\t\t});\n\t\t\tself.processTaskQueue();\n\t\t});\n\t}\n};\n\n/*\nForce load a tiddler from the server\n*/\nSyncer.prototype.enqueueLoadTiddler = function(title) {\n\tthis.titlesToBeLoaded[title] = true;\n\tthis.processTaskQueue();\n};\n\n/*\nLazily load a skinny tiddler if we can\n*/\nSyncer.prototype.handleLazyLoadEvent = function(title) {\n\t// Ignore if the syncadaptor doesn't handle it\n\tif(!this.syncadaptor.supportsLazyLoading) {\n\t\treturn;\n\t}\n\t// Don't lazy load the same tiddler twice\n\tif(!this.titlesHaveBeenLazyLoaded[title]) {\n\t\t// Don't lazy load if the tiddler isn't included in the sync filter\n\t\tif(this.getSyncedTiddlers().indexOf(title) !== -1) {\n\t\t\t// Mark the tiddler as needing loading, and having already been lazily loaded\n\t\t\tthis.titlesToBeLoaded[title] = true;\n\t\t\tthis.titlesHaveBeenLazyLoaded[title] = true;\n\t\t}\n\t}\n};\n\n/*\nDispay a password prompt and allow the user to login\n*/\nSyncer.prototype.handleLoginEvent = function() {\n\tvar self = this;\n\tthis.getStatus(function(err,isLoggedIn,username) {\n\t\tif(!err && !isLoggedIn) {\n\t\t\t$tw.passwordPrompt.createPrompt({\n\t\t\t\tserviceName: $tw.language.getString(\"LoginToTiddlySpace\"),\n\t\t\t\tcallback: function(data) {\n\t\t\t\t\tself.login(data.username,data.password,function(err,isLoggedIn) {\n\t\t\t\t\t\tself.syncFromServer();\n\t\t\t\t\t});\n\t\t\t\t\treturn true; // Get rid of the password prompt\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t});\n};\n\n/*\nAttempt to login to TiddlyWeb.\n\tusername: username\n\tpassword: password\n\tcallback: invoked with arguments (err,isLoggedIn)\n*/\nSyncer.prototype.login = function(username,password,callback) {\n\tthis.logger.log(\"Attempting to login as\",username);\n\tvar self = this;\n\tif(this.syncadaptor.login) {\n\t\tthis.syncadaptor.login(username,password,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.getStatus(function(err,isLoggedIn,username) {\n\t\t\t\tif(callback) {\n\t\t\t\t\tcallback(err,isLoggedIn);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t} else {\n\t\tcallback(null,true);\n\t}\n};\n\n/*\nAttempt to log out of TiddlyWeb\n*/\nSyncer.prototype.handleLogoutEvent = function() {\n\tthis.logger.log(\"Attempting to logout\");\n\tvar self = this;\n\tif(this.syncadaptor.logout) {\n\t\tthis.syncadaptor.logout(function(err) {\n\t\t\tif(err) {\n\t\t\t\tself.logger.alert(err);\n\t\t\t} else {\n\t\t\t\tself.getStatus();\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nImmediately refresh from the server\n*/\nSyncer.prototype.handleRefreshEvent = function() {\n\tthis.syncFromServer();\n};\n\n/*\nProcess the next task\n*/\nSyncer.prototype.processTaskQueue = function() {\n\tvar self = this;\n\t// Only process a task if the sync adaptor is fully initialised and we're not already performing\n\t// a task. If we are already performing a task then we'll dispatch the next one when it completes\n\tif((!this.syncadaptor.isReady || this.syncadaptor.isReady()) && this.numTasksInProgress === 0) {\n\t\t// Choose the next task to perform\n\t\tvar task = this.chooseNextTask();\n\t\t// Perform the task if we had one\n\t\tif(typeof task === \"object\" && task !== null) {\n\t\t\tthis.numTasksInProgress += 1;\n\t\t\ttask.run(function(err) {\n\t\t\t\tself.numTasksInProgress -= 1;\n\t\t\t\tif(err) {\n\t\t\t\t\tself.displayError(\"Sync error while processing \" + task.type + \" of '\" + task.title + \"'\",err);\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\tself.triggerTimeout(self.errorRetryInterval);\n\t\t\t\t} else {\n\t\t\t\t\tself.updateDirtyStatus();\n\t\t\t\t\t// Process the next task\n\t\t\t\t\tself.processTaskQueue.call(self);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\t// No task is ready so update the status\n\t\t\tthis.updateDirtyStatus();\n\t\t\t// And trigger a timeout if there is a pending task\n\t\t\tif(task === true) {\n\t\t\t\tthis.triggerTimeout();\t\t\t\t\n\t\t\t}\n\t\t}\n\t} else {\n\t\tthis.updateDirtyStatus();\t\t\n\t}\n};\n\nSyncer.prototype.triggerTimeout = function(interval) {\n\tvar self = this;\n\tif(!this.taskTimerId) {\n\t\tthis.taskTimerId = setTimeout(function() {\n\t\t\tself.taskTimerId = null;\n\t\t\tself.processTaskQueue.call(self);\n\t\t},interval || self.taskTimerInterval);\n\t}\n};\n\n/*\nChoose the next sync task. We prioritise saves, then deletes, then loads from the server\n\nReturns either a task object, null if there's no upcoming tasks, or the boolean true if there are pending tasks that aren't yet due\n*/\nSyncer.prototype.chooseNextTask = function() {\n\tvar thresholdLastSaved = (new Date()) - this.throttleInterval,\n\t\thavePending = null;\n\t// First we look for tiddlers that have been modified locally and need saving back to the server\n\tvar titles = this.getSyncedTiddlers();\n\tfor(var index=0; index<titles.length; index++) {\n\t\tvar title = titles[index],\n\t\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title),\n\t\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\tif(tiddler) {\n\t\t\t// If the tiddler is not known on the server, or has been modified locally no more recently than the threshold then it needs to be saved to the server\n\t\t\tvar hasChanged = !tiddlerInfo || $tw.wiki.getChangeCount(title) > tiddlerInfo.changeCount,\n\t\t\t\tisReadyToSave = !tiddlerInfo || !tiddlerInfo.timestampLastSaved || tiddlerInfo.timestampLastSaved < thresholdLastSaved;\n\t\t\tif(hasChanged) {\n\t\t\t\tif(isReadyToSave) {\n\t\t\t\t\treturn new SaveTiddlerTask(this,title); \t\t\t\t\t\n\t\t\t\t} else {\n\t\t\t\t\thavePending = true;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t// Second, we check tiddlers that are known from the server but not currently in the store, and so need deleting on the server\n\ttitles = Object.keys(this.tiddlerInfo);\n\tfor(index=0; index<titles.length; index++) {\n\t\ttitle = titles[index];\n\t\ttiddlerInfo = this.tiddlerInfo[title];\n\t\ttiddler = this.wiki.tiddlerExists(title) && this.wiki.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\treturn new DeleteTiddlerTask(this,title);\n\t\t}\n\t}\n\t// Check for tiddlers that need loading\n\ttitle = Object.keys(this.titlesToBeLoaded)[0];\n\tif(title) {\n\t\tdelete this.titlesToBeLoaded[title];\n\t\treturn new LoadTiddlerTask(this,title);\n\t}\n\t// No tasks are ready\n\treturn havePending;\n};\n\nfunction SaveTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"save\";\n}\n\nSaveTiddlerTask.prototype.run = function(callback) {\n\tvar self = this,\n\t\tchangeCount = this.syncer.wiki.getChangeCount(this.title),\n\t\ttiddler = this.syncer.wiki.tiddlerExists(this.title) && this.syncer.wiki.getTiddler(this.title);\n\tthis.syncer.logger.log(\"Dispatching 'save' task:\",this.title);\n\tif(tiddler) {\n\t\tthis.syncer.syncadaptor.saveTiddler(tiddler,function(err,adaptorInfo,revision) {\n\t\t\t// If there's an error, exit without changing any internal state\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\t// Adjust the info stored about this tiddler\n\t\t\tself.syncer.tiddlerInfo[self.title] = {\n\t\t\t\tchangeCount: changeCount,\n\t\t\t\tadaptorInfo: adaptorInfo,\n\t\t\t\trevision: revision,\n\t\t\t\ttimestampLastSaved: new Date()\n\t\t\t};\n\t\t\t// Invoke the callback\n\t\t\tcallback(null);\n\t\t});\n\t} else {\n\t\tthis.syncer.logger.log(\" Not Dispatching 'save' task:\",this.title,\"tiddler does not exist\");\n\t\t$tw.utils.nextTick(callback(null));\n\t}\n};\n\nfunction DeleteTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"delete\";\n}\n\nDeleteTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'delete' task:\",this.title);\n\tthis.syncer.syncadaptor.deleteTiddler(this.title,function(err) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Remove the info stored about this tiddler\n\t\tdelete self.syncer.tiddlerInfo[self.title];\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t},{\n\t\ttiddlerInfo: self.syncer.tiddlerInfo[this.title]\n\t});\n};\n\nfunction LoadTiddlerTask(syncer,title) {\n\tthis.syncer = syncer;\n\tthis.title = title;\n\tthis.type = \"load\";\n}\n\nLoadTiddlerTask.prototype.run = function(callback) {\n\tvar self = this;\n\tthis.syncer.logger.log(\"Dispatching 'load' task:\",this.title);\n\tthis.syncer.syncadaptor.loadTiddler(this.title,function(err,tiddlerFields) {\n\t\t// If there's an error, exit without changing any internal state\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\t// Update the info stored about this tiddler\n\t\tif(tiddlerFields) {\n\t\t\tself.syncer.storeTiddler(tiddlerFields);\n\t\t}\n\t\t// Invoke the callback\n\t\tcallback(null);\n\t});\n};\n\nexports.Syncer = Syncer;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/tiddler.js": {
"title": "$:/core/modules/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/tiddler.js\ntype: application/javascript\nmodule-type: tiddlermethod\n\nExtension methods for the $tw.Tiddler object (constructor and methods required at boot time are in boot/boot.js)\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.hasTag = function(tag) {\n\treturn this.fields.tags && this.fields.tags.indexOf(tag) !== -1;\n};\n\nexports.isPlugin = function() {\n\treturn this.fields.type === \"application/json\" && this.hasField(\"plugin-type\");\n};\n\nexports.isDraft = function() {\n\treturn this.hasField(\"draft.of\");\n};\n\nexports.getFieldString = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn \"\";\n\t}\n\t// Parse the field with the associated module (if any)\n\tvar fieldModule = $tw.Tiddler.fieldModules[field];\n\tif(fieldModule && fieldModule.stringify) {\n\t\treturn fieldModule.stringify.call(this,value);\n\t} else {\n\t\treturn value.toString();\n\t}\n};\n\n/*\nGet the value of a field as a list\n*/\nexports.getFieldList = function(field) {\n\tvar value = this.fields[field];\n\t// Check for a missing field\n\tif(value === undefined || value === null) {\n\t\treturn [];\n\t}\n\treturn $tw.utils.parseStringArray(value);\n};\n\n/*\nGet all the fields as a hashmap of strings. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStrings = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [];\n\tvar fields = {};\n\tfor(var field in this.fields) {\n\t\tif($tw.utils.hop(this.fields,field)) {\n\t\t\tif(exclude.indexOf(field) === -1) {\n\t\t\t\tfields[field] = this.getFieldString(field);\n\t\t\t}\n\t\t}\n\t}\n\treturn fields;\n};\n\n/*\nGet all the fields as a name:value block. Options:\n\texclude: an array of field names to exclude\n*/\nexports.getFieldStringBlock = function(options) {\n\toptions = options || {};\n\tvar exclude = options.exclude || [],\n\t\tfields = Object.keys(this.fields).sort(),\n\t\tresult = [];\n\tfor(var t=0; t<fields.length; t++) {\n\t\tvar field = fields[t];\n\t\tif(exclude.indexOf(field) === -1) {\n\t\t\tresult.push(field + \": \" + this.getFieldString(field));\n\t\t}\n\t}\n\treturn result.join(\"\\n\");\n};\n\nexports.getFieldDay = function(field) {\n\tif(this.cache && this.cache.day && $tw.utils.hop(this.cache.day,field) ) {\n\t\treturn this.cache.day[field];\n\t}\n\tvar day = \"\";\n\tif(this.fields[field]) {\n\t\tday = (new Date($tw.utils.parseDate(this.fields[field]))).setHours(0,0,0,0);\n\t}\n\tthis.cache.day = this.cache.day || {};\n\tthis.cache.day[field] = day;\n\treturn day;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlermethod"
},
"$:/core/modules/upgraders/plugins.js": {
"title": "$:/core/modules/upgraders/plugins.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/plugins.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that checks that plugins are newer than any already installed version\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar UPGRADE_LIBRARY_TITLE = \"$:/UpgradeLibrary\";\n\nvar BLOCKED_PLUGINS = {\n\t\"$:/themes/tiddlywiki/stickytitles\": {\n\t\tversions: [\"*\"]\n\t},\n\t\"$:/plugins/tiddlywiki/fullscreen\": {\n\t\tversions: [\"*\"]\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tupgradeLibrary,\n\t\tgetLibraryTiddler = function(title) {\n\t\t\tif(!upgradeLibrary) {\n\t\t\t\tupgradeLibrary = wiki.getTiddlerData(UPGRADE_LIBRARY_TITLE,{});\n\t\t\t\tupgradeLibrary.tiddlers = upgradeLibrary.tiddlers || {};\n\t\t\t}\n\t\t\treturn upgradeLibrary.tiddlers[title];\n\t\t};\n\n\t// Go through all the incoming tiddlers\n\t$tw.utils.each(titles,function(title) {\n\t\tvar incomingTiddler = tiddlers[title];\n\t\t// Check if we're dealing with a plugin\n\t\tif(incomingTiddler && incomingTiddler[\"plugin-type\"]) {\n\t\t\t// Check whether the plugin contains JS modules\n\t\t\tvar requiresReload = $tw.wiki.doesPluginInfoRequireReload(JSON.parse(incomingTiddler.text)) ? ($tw.wiki.getTiddlerText(\"$:/language/ControlPanel/Plugins/PluginWillRequireReload\") + \" \") : \"\";\n\t\t\tmessages[title] = requiresReload;\n\t\t\tif(incomingTiddler.version) {\n\t\t\t\t// Upgrade the incoming plugin if it is in the upgrade library\n\t\t\t\tvar libraryTiddler = getLibraryTiddler(title);\n\t\t\t\tif(libraryTiddler && libraryTiddler[\"plugin-type\"] && libraryTiddler.version) {\n\t\t\t\t\ttiddlers[title] = libraryTiddler;\n\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Upgraded\",{variables: {incoming: incomingTiddler.version, upgraded: libraryTiddler.version}});\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t// Suppress the incoming plugin if it is older than the currently installed one\n\t\t\t\tvar existingTiddler = wiki.getTiddler(title);\n\t\t\t\tif(existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t\t\t\t// Reject the incoming plugin by blanking all its fields\n\t\t\t\t\tif($tw.utils.checkVersions(existingTiddler.fields.version,incomingTiddler.version)) {\n\t\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\t\tmessages[title] = requiresReload + $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Version\",{variables: {incoming: incomingTiddler.version, existing: existingTiddler.fields.version}});\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\t// Check whether the plugin is on the blocked list\n\t\t\tvar blockInfo = BLOCKED_PLUGINS[title];\n\t\t\tif(blockInfo) {\n\t\t\t\tif(blockInfo.versions.indexOf(\"*\") !== -1 || (incomingTiddler.version && blockInfo.versions.indexOf(incomingTiddler.version) !== -1)) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/Plugins/Suppressed/Incompatible\");\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/system.js": {
"title": "$:/core/modules/upgraders/system.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/system.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that suppresses certain system tiddlers that shouldn't be imported\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DONT_IMPORT_LIST = [\"$:/StoryList\",\"$:/HistoryList\"],\n\tDONT_IMPORT_PREFIX_LIST = [\"$:/temp/\",\"$:/state/\",\"$:/Import\"],\n\tWARN_IMPORT_PREFIX_LIST = [\"$:/core/modules/\"];\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {},\n\t\tshowAlert = false;\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tif(DONT_IMPORT_LIST.indexOf(title) !== -1) {\n\t\t\ttiddlers[title] = Object.create(null);\n\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Suppressed\");\n\t\t} else {\n\t\t\tfor(var t=0; t<DONT_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = DONT_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix) {\n\t\t\t\t\ttiddlers[title] = Object.create(null);\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/State/Suppressed\");\n\t\t\t\t}\n\t\t\t}\n\t\t\tfor(var t=0; t<WARN_IMPORT_PREFIX_LIST.length; t++) {\n\t\t\t\tvar prefix = WARN_IMPORT_PREFIX_LIST[t];\n\t\t\t\tif(title.substr(0,prefix.length) === prefix && wiki.isShadowTiddler(title)) {\n\t\t\t\t\tshowAlert = true;\n\t\t\t\t\tmessages[title] = $tw.language.getString(\"Import/Upgrader/System/Warning\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\tif(showAlert) {\n\t\tvar logger = new $tw.utils.Logger(\"import\");\n\t\tlogger.alert($tw.language.getString(\"Import/Upgrader/System/Alert\"));\n\t}\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/upgraders/themetweaks.js": {
"title": "$:/core/modules/upgraders/themetweaks.js",
"text": "/*\\\ntitle: $:/core/modules/upgraders/themetweaks.js\ntype: application/javascript\nmodule-type: upgrader\n\nUpgrader module that handles the change in theme tweak storage introduced in 5.0.14-beta.\n\nPreviously, theme tweaks were stored in two data tiddlers:\n\n* $:/themes/tiddlywiki/vanilla/metrics\n* $:/themes/tiddlywiki/vanilla/settings\n\nNow, each tweak is stored in its own separate tiddler.\n\nThis upgrader copies any values from the old format to the new. The old data tiddlers are not deleted in case they have been used to store additional indexes.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar MAPPINGS = {\n\t\"$:/themes/tiddlywiki/vanilla/metrics\": {\n\t\t\"fontsize\": \"$:/themes/tiddlywiki/vanilla/metrics/fontsize\",\n\t\t\"lineheight\": \"$:/themes/tiddlywiki/vanilla/metrics/lineheight\",\n\t\t\"storyleft\": \"$:/themes/tiddlywiki/vanilla/metrics/storyleft\",\n\t\t\"storytop\": \"$:/themes/tiddlywiki/vanilla/metrics/storytop\",\n\t\t\"storyright\": \"$:/themes/tiddlywiki/vanilla/metrics/storyright\",\n\t\t\"storywidth\": \"$:/themes/tiddlywiki/vanilla/metrics/storywidth\",\n\t\t\"tiddlerwidth\": \"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"\n\t},\n\t\"$:/themes/tiddlywiki/vanilla/settings\": {\n\t\t\"fontfamily\": \"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"\n\t}\n};\n\nexports.upgrade = function(wiki,titles,tiddlers) {\n\tvar self = this,\n\t\tmessages = {};\n\t// Check for tiddlers on our list\n\t$tw.utils.each(titles,function(title) {\n\t\tvar mapping = MAPPINGS[title];\n\t\tif(mapping) {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlers[title]),\n\t\t\t\ttiddlerData = wiki.getTiddlerDataCached(tiddler,{});\n\t\t\tfor(var index in mapping) {\n\t\t\t\tvar mappedTitle = mapping[index];\n\t\t\t\tif(!tiddlers[mappedTitle] || tiddlers[mappedTitle].title !== mappedTitle) {\n\t\t\t\t\ttiddlers[mappedTitle] = {\n\t\t\t\t\t\ttitle: mappedTitle,\n\t\t\t\t\t\ttext: tiddlerData[index]\n\t\t\t\t\t};\n\t\t\t\t\tmessages[mappedTitle] = $tw.language.getString(\"Import/Upgrader/ThemeTweaks/Created\",{variables: {\n\t\t\t\t\t\tfrom: title + \"##\" + index\n\t\t\t\t\t}});\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\treturn messages;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "upgrader"
},
"$:/core/modules/utils/base64-utf8/base64-utf8.module.js": {
"text": "(function(){// From https://gist.github.com/Nijikokun/5192472\n//\n// UTF8 Module\n//\n// Cleaner and modularized utf-8 encoding and decoding library for javascript.\n//\n// copyright: MIT\n// author: Nijiko Yonskai, @nijikokun, nijikokun@gmail.com\n!function(r,e,o,t){void 0!==o.module&&o.module.exports?o.module.exports=e.apply(o):void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"utf8\",[],e):o.utf8=e.apply(o)}(0,function(){return{encode:function(r){if(\"string\"!=typeof r)return r;r=r.replace(/\\r\\n/g,\"\\n\");for(var e,o=\"\",t=0;t<r.length;t++)(e=r.charCodeAt(t))<128?o+=String.fromCharCode(e):e>127&&e<2048?(o+=String.fromCharCode(e>>6|192),o+=String.fromCharCode(63&e|128)):(o+=String.fromCharCode(e>>12|224),o+=String.fromCharCode(e>>6&63|128),o+=String.fromCharCode(63&e|128));return o},decode:function(r){if(\"string\"!=typeof r)return r;for(var e=\"\",o=0,t=0;o<r.length;)(t=r.charCodeAt(o))<128?(e+=String.fromCharCode(t),o++):t>191&&t<224?(e+=String.fromCharCode((31&t)<<6|63&r.charCodeAt(o+1)),o+=2):(e+=String.fromCharCode((15&t)<<12|(63&r.charCodeAt(o+1))<<6|63&r.charCodeAt(o+2)),o+=3);return e}}},this),function(r,e,o,t){if(void 0!==o.module&&o.module.exports){if(t&&o.require)for(var n=0;n<t.length;n++)o[t[n]]=o.require(t[n]);o.module.exports=e.apply(o)}else void 0!==o.define&&\"function\"===o.define&&o.define.amd?define(\"base64\",t||[],e):o.base64=e.apply(o)}(0,function(r){var e=r||this.utf8,o=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";return{encode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=e.encode(r);for(var t,n,i,d,f,a,h,c=\"\",u=0;u<r.length;)d=(t=r.charCodeAt(u++))>>2,f=(3&t)<<4|(n=r.charCodeAt(u++))>>4,a=(15&n)<<2|(i=r.charCodeAt(u++))>>6,h=63&i,isNaN(n)?a=h=64:isNaN(i)&&(h=64),c+=o.charAt(d)+o.charAt(f)+o.charAt(a)+o.charAt(h);return c},decode:function(r){if(void 0===e)throw{error:\"MissingMethod\",message:\"UTF8 Module is missing.\"};if(\"string\"!=typeof r)return r;r=r.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");for(var t,n,i,d,f,a,h=\"\",c=0;c<r.length;)t=o.indexOf(r.charAt(c++))<<2|(d=o.indexOf(r.charAt(c++)))>>4,n=(15&d)<<4|(f=o.indexOf(r.charAt(c++)))>>2,i=(3&f)<<6|(a=o.indexOf(r.charAt(c++))),h+=String.fromCharCode(t),64!=f&&(h+=String.fromCharCode(n)),64!=a&&(h+=String.fromCharCode(i));return e.decode(h)}}},this,[\"utf8\"]);}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/base64-utf8/base64-utf8.module.js",
"module-type": "library"
},
"$:/core/modules/utils/crypto.js": {
"title": "$:/core/modules/utils/crypto.js",
"text": "/*\\\ntitle: $:/core/modules/utils/crypto.js\ntype: application/javascript\nmodule-type: utils\n\nUtility functions related to crypto.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nLook for an encrypted store area in the text of a TiddlyWiki file\n*/\nexports.extractEncryptedStoreArea = function(text) {\n\tvar encryptedStoreAreaStartMarker = \"<pre id=\\\"encryptedStoreArea\\\" type=\\\"text/plain\\\" style=\\\"display:none;\\\">\",\n\t\tencryptedStoreAreaStart = text.indexOf(encryptedStoreAreaStartMarker);\n\tif(encryptedStoreAreaStart !== -1) {\n\t\tvar encryptedStoreAreaEnd = text.indexOf(\"</pre>\",encryptedStoreAreaStart);\n\t\tif(encryptedStoreAreaEnd !== -1) {\n\t\t\treturn $tw.utils.htmlDecode(text.substring(encryptedStoreAreaStart + encryptedStoreAreaStartMarker.length,encryptedStoreAreaEnd-1));\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If the password is not provided then the password in the password store will be used\n*/\nexports.decryptStoreArea = function(encryptedStoreArea,password) {\n\tvar decryptedText = $tw.crypto.decrypt(encryptedStoreArea,password);\n\tif(decryptedText) {\n\t\tvar json = JSON.parse(decryptedText),\n\t\t\ttiddlers = [];\n\t\tfor(var title in json) {\n\t\t\tif(title !== \"$:/isEncrypted\") {\n\t\t\t\ttiddlers.push(json[title]);\n\t\t\t}\n\t\t}\n\t\treturn tiddlers;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n\n/*\nAttempt to extract the tiddlers from an encrypted store area using the current password. If that fails, the user is prompted for a password.\nencryptedStoreArea: text of the TiddlyWiki encrypted store area\ncallback: function(tiddlers) called with the array of decrypted tiddlers\n\nThe following configuration settings are supported:\n\n$tw.config.usePasswordVault: causes any password entered by the user to also be put into the system password vault\n*/\nexports.decryptStoreAreaInteractive = function(encryptedStoreArea,callback,options) {\n\t// Try to decrypt with the current password\n\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea);\n\tif(tiddlers) {\n\t\tcallback(tiddlers);\n\t} else {\n\t\t// Prompt for a new password and keep trying\n\t\t$tw.passwordPrompt.createPrompt({\n\t\t\tserviceName: \"Enter a password to decrypt the imported TiddlyWiki\",\n\t\t\tnoUserName: true,\n\t\t\tcanCancel: true,\n\t\t\tsubmitText: \"Decrypt\",\n\t\t\tcallback: function(data) {\n\t\t\t\t// Exit if the user cancelled\n\t\t\t\tif(!data) {\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\t// Attempt to decrypt the tiddlers\n\t\t\t\tvar tiddlers = $tw.utils.decryptStoreArea(encryptedStoreArea,data.password);\n\t\t\t\tif(tiddlers) {\n\t\t\t\t\tif($tw.config.usePasswordVault) {\n\t\t\t\t\t\t$tw.crypto.setPassword(data.password);\n\t\t\t\t\t}\n\t\t\t\t\tcallback(tiddlers);\n\t\t\t\t\t// Exit and remove the password prompt\n\t\t\t\t\treturn true;\n\t\t\t\t} else {\n\t\t\t\t\t// We didn't decrypt everything, so continue to prompt for password\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/csv.js": {
"title": "$:/core/modules/utils/csv.js",
"text": "/*\\\ntitle: $:/core/modules/utils/csv.js\ntype: application/javascript\nmodule-type: utils\n\nA barebones CSV parser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse a CSV string with a header row and return an array of hashmaps.\n*/\nexports.parseCsvStringWithHeader = function(text,options) {\n\toptions = options || {};\n\tvar separator = options.separator || \",\",\n\t\trows = text.split(/\\r?\\n/mg).map(function(row) {\n\t\t\treturn $tw.utils.trim(row);\n\t\t}).filter(function(row) {\n\t\t\treturn row !== \"\";\n\t\t});\n\tif(rows.length < 1) {\n\t\treturn \"Missing header row\";\n\t}\n\tvar headings = rows[0].split(separator),\n\t\tresults = [];\n\tfor(var row=1; row<rows.length; row++) {\n\t\tvar columns = rows[row].split(separator),\n\t\t\tcolumnResult = Object.create(null);\n\t\tif(columns.length !== headings.length) {\n\t\t\treturn \"Malformed CSV row '\" + rows[row] + \"'\";\n\t\t}\n\t\tfor(var column=0; column<columns.length; column++) {\n\t\t\tvar columnName = headings[column];\n\t\t\tcolumnResult[columnName] = $tw.utils.trim(columns[column] || \"\");\n\t\t}\n\t\tresults.push(columnResult);\t\t\t\n\t}\n\treturn results;\n}\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/diff-match-patch/diff_match_patch.js": {
"text": "(function(){function diff_match_patch(){this.Diff_Timeout=1;this.Diff_EditCost=4;this.Match_Threshold=.5;this.Match_Distance=1E3;this.Patch_DeleteThreshold=.5;this.Patch_Margin=4;this.Match_MaxBits=32}var DIFF_DELETE=-1,DIFF_INSERT=1,DIFF_EQUAL=0;\ndiff_match_patch.prototype.diff_main=function(a,b,c,d){\"undefined\"==typeof d&&(d=0>=this.Diff_Timeout?Number.MAX_VALUE:(new Date).getTime()+1E3*this.Diff_Timeout);if(null==a||null==b)throw Error(\"Null input. (diff_main)\");if(a==b)return a?[[DIFF_EQUAL,a]]:[];\"undefined\"==typeof c&&(c=!0);var e=c,f=this.diff_commonPrefix(a,b);c=a.substring(0,f);a=a.substring(f);b=b.substring(f);f=this.diff_commonSuffix(a,b);var g=a.substring(a.length-f);a=a.substring(0,a.length-f);b=b.substring(0,b.length-f);a=this.diff_compute_(a,\nb,e,d);c&&a.unshift([DIFF_EQUAL,c]);g&&a.push([DIFF_EQUAL,g]);this.diff_cleanupMerge(a);return a};\ndiff_match_patch.prototype.diff_compute_=function(a,b,c,d){if(!a)return[[DIFF_INSERT,b]];if(!b)return[[DIFF_DELETE,a]];var e=a.length>b.length?a:b,f=a.length>b.length?b:a,g=e.indexOf(f);return-1!=g?(c=[[DIFF_INSERT,e.substring(0,g)],[DIFF_EQUAL,f],[DIFF_INSERT,e.substring(g+f.length)]],a.length>b.length&&(c[0][0]=c[2][0]=DIFF_DELETE),c):1==f.length?[[DIFF_DELETE,a],[DIFF_INSERT,b]]:(e=this.diff_halfMatch_(a,b))?(b=e[1],f=e[3],a=e[4],e=this.diff_main(e[0],e[2],c,d),c=this.diff_main(b,f,c,d),e.concat([[DIFF_EQUAL,\na]],c)):c&&100<a.length&&100<b.length?this.diff_lineMode_(a,b,d):this.diff_bisect_(a,b,d)};\ndiff_match_patch.prototype.diff_lineMode_=function(a,b,c){var d=this.diff_linesToChars_(a,b);a=d.chars1;b=d.chars2;d=d.lineArray;a=this.diff_main(a,b,!1,c);this.diff_charsToLines_(a,d);this.diff_cleanupSemantic(a);a.push([DIFF_EQUAL,\"\"]);for(var e=d=b=0,f=\"\",g=\"\";b<a.length;){switch(a[b][0]){case DIFF_INSERT:e++;g+=a[b][1];break;case DIFF_DELETE:d++;f+=a[b][1];break;case DIFF_EQUAL:if(1<=d&&1<=e){a.splice(b-d-e,d+e);b=b-d-e;d=this.diff_main(f,g,!1,c);for(e=d.length-1;0<=e;e--)a.splice(b,0,d[e]);b+=\nd.length}d=e=0;g=f=\"\"}b++}a.pop();return a};\ndiff_match_patch.prototype.diff_bisect_=function(a,b,c){for(var d=a.length,e=b.length,f=Math.ceil((d+e)/2),g=2*f,h=Array(g),l=Array(g),k=0;k<g;k++)h[k]=-1,l[k]=-1;h[f+1]=0;l[f+1]=0;k=d-e;for(var m=0!=k%2,p=0,x=0,w=0,q=0,t=0;t<f&&!((new Date).getTime()>c);t++){for(var v=-t+p;v<=t-x;v+=2){var n=f+v;var r=v==-t||v!=t&&h[n-1]<h[n+1]?h[n+1]:h[n-1]+1;for(var y=r-v;r<d&&y<e&&a.charAt(r)==b.charAt(y);)r++,y++;h[n]=r;if(r>d)x+=2;else if(y>e)p+=2;else if(m&&(n=f+k-v,0<=n&&n<g&&-1!=l[n])){var u=d-l[n];if(r>=\nu)return this.diff_bisectSplit_(a,b,r,y,c)}}for(v=-t+w;v<=t-q;v+=2){n=f+v;u=v==-t||v!=t&&l[n-1]<l[n+1]?l[n+1]:l[n-1]+1;for(r=u-v;u<d&&r<e&&a.charAt(d-u-1)==b.charAt(e-r-1);)u++,r++;l[n]=u;if(u>d)q+=2;else if(r>e)w+=2;else if(!m&&(n=f+k-v,0<=n&&n<g&&-1!=h[n]&&(r=h[n],y=f+r-n,u=d-u,r>=u)))return this.diff_bisectSplit_(a,b,r,y,c)}}return[[DIFF_DELETE,a],[DIFF_INSERT,b]]};\ndiff_match_patch.prototype.diff_bisectSplit_=function(a,b,c,d,e){var f=a.substring(0,c),g=b.substring(0,d);a=a.substring(c);b=b.substring(d);f=this.diff_main(f,g,!1,e);e=this.diff_main(a,b,!1,e);return f.concat(e)};\ndiff_match_patch.prototype.diff_linesToChars_=function(a,b){function c(a){for(var b=\"\",c=0,f=-1,g=d.length;f<a.length-1;){f=a.indexOf(\"\\n\",c);-1==f&&(f=a.length-1);var h=a.substring(c,f+1);c=f+1;(e.hasOwnProperty?e.hasOwnProperty(h):void 0!==e[h])?b+=String.fromCharCode(e[h]):(b+=String.fromCharCode(g),e[h]=g,d[g++]=h)}return b}var d=[],e={};d[0]=\"\";var f=c(a),g=c(b);return{chars1:f,chars2:g,lineArray:d}};\ndiff_match_patch.prototype.diff_charsToLines_=function(a,b){for(var c=0;c<a.length;c++){for(var d=a[c][1],e=[],f=0;f<d.length;f++)e[f]=b[d.charCodeAt(f)];a[c][1]=e.join(\"\")}};diff_match_patch.prototype.diff_commonPrefix=function(a,b){if(!a||!b||a.charAt(0)!=b.charAt(0))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(f,e)==b.substring(f,e)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonSuffix=function(a,b){if(!a||!b||a.charAt(a.length-1)!=b.charAt(b.length-1))return 0;for(var c=0,d=Math.min(a.length,b.length),e=d,f=0;c<e;)a.substring(a.length-e,a.length-f)==b.substring(b.length-e,b.length-f)?f=c=e:d=e,e=Math.floor((d-c)/2+c);return e};\ndiff_match_patch.prototype.diff_commonOverlap_=function(a,b){var c=a.length,d=b.length;if(0==c||0==d)return 0;c>d?a=a.substring(c-d):c<d&&(b=b.substring(0,c));c=Math.min(c,d);if(a==b)return c;d=0;for(var e=1;;){var f=a.substring(c-e);f=b.indexOf(f);if(-1==f)return d;e+=f;if(0==f||a.substring(c-e)==b.substring(0,e))d=e,e++}};\ndiff_match_patch.prototype.diff_halfMatch_=function(a,b){function c(a,b,c){for(var d=a.substring(c,c+Math.floor(a.length/4)),e=-1,g=\"\",h,k,l,m;-1!=(e=b.indexOf(d,e+1));){var p=f.diff_commonPrefix(a.substring(c),b.substring(e)),u=f.diff_commonSuffix(a.substring(0,c),b.substring(0,e));g.length<u+p&&(g=b.substring(e-u,e)+b.substring(e,e+p),h=a.substring(0,c-u),k=a.substring(c+p),l=b.substring(0,e-u),m=b.substring(e+p))}return 2*g.length>=a.length?[h,k,l,m,g]:null}if(0>=this.Diff_Timeout)return null;\nvar d=a.length>b.length?a:b,e=a.length>b.length?b:a;if(4>d.length||2*e.length<d.length)return null;var f=this,g=c(d,e,Math.ceil(d.length/4));d=c(d,e,Math.ceil(d.length/2));if(g||d)g=d?g?g[4].length>d[4].length?g:d:d:g;else return null;if(a.length>b.length){d=g[0];e=g[1];var h=g[2];var l=g[3]}else h=g[0],l=g[1],d=g[2],e=g[3];return[d,e,h,l,g[4]]};\ndiff_match_patch.prototype.diff_cleanupSemantic=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=0,h=0,l=0,k=0;f<a.length;)a[f][0]==DIFF_EQUAL?(c[d++]=f,g=l,h=k,k=l=0,e=a[f][1]):(a[f][0]==DIFF_INSERT?l+=a[f][1].length:k+=a[f][1].length,e&&e.length<=Math.max(g,h)&&e.length<=Math.max(l,k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,d--,f=0<d?c[d-1]:-1,k=l=h=g=0,e=null,b=!0)),f++;b&&this.diff_cleanupMerge(a);this.diff_cleanupSemanticLossless(a);for(f=1;f<a.length;){if(a[f-1][0]==\nDIFF_DELETE&&a[f][0]==DIFF_INSERT){b=a[f-1][1];c=a[f][1];d=this.diff_commonOverlap_(b,c);e=this.diff_commonOverlap_(c,b);if(d>=e){if(d>=b.length/2||d>=c.length/2)a.splice(f,0,[DIFF_EQUAL,c.substring(0,d)]),a[f-1][1]=b.substring(0,b.length-d),a[f+1][1]=c.substring(d),f++}else if(e>=b.length/2||e>=c.length/2)a.splice(f,0,[DIFF_EQUAL,b.substring(0,e)]),a[f-1][0]=DIFF_INSERT,a[f-1][1]=c.substring(0,c.length-e),a[f+1][0]=DIFF_DELETE,a[f+1][1]=b.substring(e),f++;f++}f++}};\ndiff_match_patch.prototype.diff_cleanupSemanticLossless=function(a){function b(a,b){if(!a||!b)return 6;var c=a.charAt(a.length-1),d=b.charAt(0),e=c.match(diff_match_patch.nonAlphaNumericRegex_),f=d.match(diff_match_patch.nonAlphaNumericRegex_),g=e&&c.match(diff_match_patch.whitespaceRegex_),h=f&&d.match(diff_match_patch.whitespaceRegex_);c=g&&c.match(diff_match_patch.linebreakRegex_);d=h&&d.match(diff_match_patch.linebreakRegex_);var k=c&&a.match(diff_match_patch.blanklineEndRegex_),l=d&&b.match(diff_match_patch.blanklineStartRegex_);\nreturn k||l?5:c||d?4:e&&!g&&h?3:g||h?2:e||f?1:0}for(var c=1;c<a.length-1;){if(a[c-1][0]==DIFF_EQUAL&&a[c+1][0]==DIFF_EQUAL){var d=a[c-1][1],e=a[c][1],f=a[c+1][1],g=this.diff_commonSuffix(d,e);if(g){var h=e.substring(e.length-g);d=d.substring(0,d.length-g);e=h+e.substring(0,e.length-g);f=h+f}g=d;h=e;for(var l=f,k=b(d,e)+b(e,f);e.charAt(0)===f.charAt(0);){d+=e.charAt(0);e=e.substring(1)+f.charAt(0);f=f.substring(1);var m=b(d,e)+b(e,f);m>=k&&(k=m,g=d,h=e,l=f)}a[c-1][1]!=g&&(g?a[c-1][1]=g:(a.splice(c-\n1,1),c--),a[c][1]=h,l?a[c+1][1]=l:(a.splice(c+1,1),c--))}c++}};diff_match_patch.nonAlphaNumericRegex_=/[^a-zA-Z0-9]/;diff_match_patch.whitespaceRegex_=/\\s/;diff_match_patch.linebreakRegex_=/[\\r\\n]/;diff_match_patch.blanklineEndRegex_=/\\n\\r?\\n$/;diff_match_patch.blanklineStartRegex_=/^\\r?\\n\\r?\\n/;\ndiff_match_patch.prototype.diff_cleanupEfficiency=function(a){for(var b=!1,c=[],d=0,e=null,f=0,g=!1,h=!1,l=!1,k=!1;f<a.length;)a[f][0]==DIFF_EQUAL?(a[f][1].length<this.Diff_EditCost&&(l||k)?(c[d++]=f,g=l,h=k,e=a[f][1]):(d=0,e=null),l=k=!1):(a[f][0]==DIFF_DELETE?k=!0:l=!0,e&&(g&&h&&l&&k||e.length<this.Diff_EditCost/2&&3==g+h+l+k)&&(a.splice(c[d-1],0,[DIFF_DELETE,e]),a[c[d-1]+1][0]=DIFF_INSERT,d--,e=null,g&&h?(l=k=!0,d=0):(d--,f=0<d?c[d-1]:-1,l=k=!1),b=!0)),f++;b&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_cleanupMerge=function(a){a.push([DIFF_EQUAL,\"\"]);for(var b=0,c=0,d=0,e=\"\",f=\"\",g;b<a.length;)switch(a[b][0]){case DIFF_INSERT:d++;f+=a[b][1];b++;break;case DIFF_DELETE:c++;e+=a[b][1];b++;break;case DIFF_EQUAL:1<c+d?(0!==c&&0!==d&&(g=this.diff_commonPrefix(f,e),0!==g&&(0<b-c-d&&a[b-c-d-1][0]==DIFF_EQUAL?a[b-c-d-1][1]+=f.substring(0,g):(a.splice(0,0,[DIFF_EQUAL,f.substring(0,g)]),b++),f=f.substring(g),e=e.substring(g)),g=this.diff_commonSuffix(f,e),0!==g&&(a[b][1]=f.substring(f.length-\ng)+a[b][1],f=f.substring(0,f.length-g),e=e.substring(0,e.length-g))),0===c?a.splice(b-d,c+d,[DIFF_INSERT,f]):0===d?a.splice(b-c,c+d,[DIFF_DELETE,e]):a.splice(b-c-d,c+d,[DIFF_DELETE,e],[DIFF_INSERT,f]),b=b-c-d+(c?1:0)+(d?1:0)+1):0!==b&&a[b-1][0]==DIFF_EQUAL?(a[b-1][1]+=a[b][1],a.splice(b,1)):b++,c=d=0,f=e=\"\"}\"\"===a[a.length-1][1]&&a.pop();c=!1;for(b=1;b<a.length-1;)a[b-1][0]==DIFF_EQUAL&&a[b+1][0]==DIFF_EQUAL&&(a[b][1].substring(a[b][1].length-a[b-1][1].length)==a[b-1][1]?(a[b][1]=a[b-1][1]+a[b][1].substring(0,\na[b][1].length-a[b-1][1].length),a[b+1][1]=a[b-1][1]+a[b+1][1],a.splice(b-1,1),c=!0):a[b][1].substring(0,a[b+1][1].length)==a[b+1][1]&&(a[b-1][1]+=a[b+1][1],a[b][1]=a[b][1].substring(a[b+1][1].length)+a[b+1][1],a.splice(b+1,1),c=!0)),b++;c&&this.diff_cleanupMerge(a)};\ndiff_match_patch.prototype.diff_xIndex=function(a,b){var c=0,d=0,e=0,f=0,g;for(g=0;g<a.length;g++){a[g][0]!==DIFF_INSERT&&(c+=a[g][1].length);a[g][0]!==DIFF_DELETE&&(d+=a[g][1].length);if(c>b)break;e=c;f=d}return a.length!=g&&a[g][0]===DIFF_DELETE?f:f+(b-e)};\ndiff_match_patch.prototype.diff_prettyHtml=function(a){for(var b=[],c=/&/g,d=/</g,e=/>/g,f=/\\n/g,g=0;g<a.length;g++){var h=a[g][0],l=a[g][1].replace(c,\"&\").replace(d,\"<\").replace(e,\">\").replace(f,\"¶<br>\");switch(h){case DIFF_INSERT:b[g]='<ins style=\"background:#e6ffe6;\">'+l+\"</ins>\";break;case DIFF_DELETE:b[g]='<del style=\"background:#ffe6e6;\">'+l+\"</del>\";break;case DIFF_EQUAL:b[g]=\"<span>\"+l+\"</span>\"}}return b.join(\"\")};\ndiff_match_patch.prototype.diff_text1=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_INSERT&&(b[c]=a[c][1]);return b.join(\"\")};diff_match_patch.prototype.diff_text2=function(a){for(var b=[],c=0;c<a.length;c++)a[c][0]!==DIFF_DELETE&&(b[c]=a[c][1]);return b.join(\"\")};\ndiff_match_patch.prototype.diff_levenshtein=function(a){for(var b=0,c=0,d=0,e=0;e<a.length;e++){var f=a[e][1];switch(a[e][0]){case DIFF_INSERT:c+=f.length;break;case DIFF_DELETE:d+=f.length;break;case DIFF_EQUAL:b+=Math.max(c,d),d=c=0}}return b+=Math.max(c,d)};\ndiff_match_patch.prototype.diff_toDelta=function(a){for(var b=[],c=0;c<a.length;c++)switch(a[c][0]){case DIFF_INSERT:b[c]=\"+\"+encodeURI(a[c][1]);break;case DIFF_DELETE:b[c]=\"-\"+a[c][1].length;break;case DIFF_EQUAL:b[c]=\"=\"+a[c][1].length}return b.join(\"\\t\").replace(/%20/g,\" \")};\ndiff_match_patch.prototype.diff_fromDelta=function(a,b){for(var c=[],d=0,e=0,f=b.split(/\\t/g),g=0;g<f.length;g++){var h=f[g].substring(1);switch(f[g].charAt(0)){case \"+\":try{c[d++]=[DIFF_INSERT,decodeURI(h)]}catch(k){throw Error(\"Illegal escape in diff_fromDelta: \"+h);}break;case \"-\":case \"=\":var l=parseInt(h,10);if(isNaN(l)||0>l)throw Error(\"Invalid number in diff_fromDelta: \"+h);h=a.substring(e,e+=l);\"=\"==f[g].charAt(0)?c[d++]=[DIFF_EQUAL,h]:c[d++]=[DIFF_DELETE,h];break;default:if(f[g])throw Error(\"Invalid diff operation in diff_fromDelta: \"+\nf[g]);}}if(e!=a.length)throw Error(\"Delta length (\"+e+\") does not equal source text length (\"+a.length+\").\");return c};diff_match_patch.prototype.match_main=function(a,b,c){if(null==a||null==b||null==c)throw Error(\"Null input. (match_main)\");c=Math.max(0,Math.min(c,a.length));return a==b?0:a.length?a.substring(c,c+b.length)==b?c:this.match_bitap_(a,b,c):-1};\ndiff_match_patch.prototype.match_bitap_=function(a,b,c){function d(a,d){var e=a/b.length,g=Math.abs(c-d);return f.Match_Distance?e+g/f.Match_Distance:g?1:e}if(b.length>this.Match_MaxBits)throw Error(\"Pattern too long for this browser.\");var e=this.match_alphabet_(b),f=this,g=this.Match_Threshold,h=a.indexOf(b,c);-1!=h&&(g=Math.min(d(0,h),g),h=a.lastIndexOf(b,c+b.length),-1!=h&&(g=Math.min(d(0,h),g)));var l=1<<b.length-1;h=-1;for(var k,m,p=b.length+a.length,x,w=0;w<b.length;w++){k=0;for(m=p;k<m;)d(w,\nc+m)<=g?k=m:p=m,m=Math.floor((p-k)/2+k);p=m;k=Math.max(1,c-m+1);var q=Math.min(c+m,a.length)+b.length;m=Array(q+2);for(m[q+1]=(1<<w)-1;q>=k;q--){var t=e[a.charAt(q-1)];m[q]=0===w?(m[q+1]<<1|1)&t:(m[q+1]<<1|1)&t|(x[q+1]|x[q])<<1|1|x[q+1];if(m[q]&l&&(t=d(w,q-1),t<=g))if(g=t,h=q-1,h>c)k=Math.max(1,2*c-h);else break}if(d(w+1,c)>g)break;x=m}return h};\ndiff_match_patch.prototype.match_alphabet_=function(a){for(var b={},c=0;c<a.length;c++)b[a.charAt(c)]=0;for(c=0;c<a.length;c++)b[a.charAt(c)]|=1<<a.length-c-1;return b};\ndiff_match_patch.prototype.patch_addContext_=function(a,b){if(0!=b.length){for(var c=b.substring(a.start2,a.start2+a.length1),d=0;b.indexOf(c)!=b.lastIndexOf(c)&&c.length<this.Match_MaxBits-this.Patch_Margin-this.Patch_Margin;)d+=this.Patch_Margin,c=b.substring(a.start2-d,a.start2+a.length1+d);d+=this.Patch_Margin;(c=b.substring(a.start2-d,a.start2))&&a.diffs.unshift([DIFF_EQUAL,c]);(d=b.substring(a.start2+a.length1,a.start2+a.length1+d))&&a.diffs.push([DIFF_EQUAL,d]);a.start1-=c.length;a.start2-=\nc.length;a.length1+=c.length+d.length;a.length2+=c.length+d.length}};\ndiff_match_patch.prototype.patch_make=function(a,b,c){if(\"string\"==typeof a&&\"string\"==typeof b&&\"undefined\"==typeof c){var d=a;b=this.diff_main(d,b,!0);2<b.length&&(this.diff_cleanupSemantic(b),this.diff_cleanupEfficiency(b))}else if(a&&\"object\"==typeof a&&\"undefined\"==typeof b&&\"undefined\"==typeof c)b=a,d=this.diff_text1(b);else if(\"string\"==typeof a&&b&&\"object\"==typeof b&&\"undefined\"==typeof c)d=a;else if(\"string\"==typeof a&&\"string\"==typeof b&&c&&\"object\"==typeof c)d=a,b=c;else throw Error(\"Unknown call format to patch_make.\");\nif(0===b.length)return[];c=[];a=new diff_match_patch.patch_obj;for(var e=0,f=0,g=0,h=d,l=0;l<b.length;l++){var k=b[l][0],m=b[l][1];e||k===DIFF_EQUAL||(a.start1=f,a.start2=g);switch(k){case DIFF_INSERT:a.diffs[e++]=b[l];a.length2+=m.length;d=d.substring(0,g)+m+d.substring(g);break;case DIFF_DELETE:a.length1+=m.length;a.diffs[e++]=b[l];d=d.substring(0,g)+d.substring(g+m.length);break;case DIFF_EQUAL:m.length<=2*this.Patch_Margin&&e&&b.length!=l+1?(a.diffs[e++]=b[l],a.length1+=m.length,a.length2+=m.length):\nm.length>=2*this.Patch_Margin&&e&&(this.patch_addContext_(a,h),c.push(a),a=new diff_match_patch.patch_obj,e=0,h=d,f=g)}k!==DIFF_INSERT&&(f+=m.length);k!==DIFF_DELETE&&(g+=m.length)}e&&(this.patch_addContext_(a,h),c.push(a));return c};\ndiff_match_patch.prototype.patch_deepCopy=function(a){for(var b=[],c=0;c<a.length;c++){var d=a[c],e=new diff_match_patch.patch_obj;e.diffs=[];for(var f=0;f<d.diffs.length;f++)e.diffs[f]=d.diffs[f].slice();e.start1=d.start1;e.start2=d.start2;e.length1=d.length1;e.length2=d.length2;b[c]=e}return b};\ndiff_match_patch.prototype.patch_apply=function(a,b){if(0==a.length)return[b,[]];a=this.patch_deepCopy(a);var c=this.patch_addPadding(a);b=c+b+c;this.patch_splitMax(a);for(var d=0,e=[],f=0;f<a.length;f++){var g=a[f].start2+d,h=this.diff_text1(a[f].diffs),l=-1;if(h.length>this.Match_MaxBits){var k=this.match_main(b,h.substring(0,this.Match_MaxBits),g);-1!=k&&(l=this.match_main(b,h.substring(h.length-this.Match_MaxBits),g+h.length-this.Match_MaxBits),-1==l||k>=l)&&(k=-1)}else k=this.match_main(b,h,\ng);if(-1==k)e[f]=!1,d-=a[f].length2-a[f].length1;else if(e[f]=!0,d=k-g,g=-1==l?b.substring(k,k+h.length):b.substring(k,l+this.Match_MaxBits),h==g)b=b.substring(0,k)+this.diff_text2(a[f].diffs)+b.substring(k+h.length);else if(g=this.diff_main(h,g,!1),h.length>this.Match_MaxBits&&this.diff_levenshtein(g)/h.length>this.Patch_DeleteThreshold)e[f]=!1;else{this.diff_cleanupSemanticLossless(g);h=0;var m;for(l=0;l<a[f].diffs.length;l++){var p=a[f].diffs[l];p[0]!==DIFF_EQUAL&&(m=this.diff_xIndex(g,h));p[0]===\nDIFF_INSERT?b=b.substring(0,k+m)+p[1]+b.substring(k+m):p[0]===DIFF_DELETE&&(b=b.substring(0,k+m)+b.substring(k+this.diff_xIndex(g,h+p[1].length)));p[0]!==DIFF_DELETE&&(h+=p[1].length)}}}b=b.substring(c.length,b.length-c.length);return[b,e]};\ndiff_match_patch.prototype.patch_addPadding=function(a){for(var b=this.Patch_Margin,c=\"\",d=1;d<=b;d++)c+=String.fromCharCode(d);for(d=0;d<a.length;d++)a[d].start1+=b,a[d].start2+=b;d=a[0];var e=d.diffs;if(0==e.length||e[0][0]!=DIFF_EQUAL)e.unshift([DIFF_EQUAL,c]),d.start1-=b,d.start2-=b,d.length1+=b,d.length2+=b;else if(b>e[0][1].length){var f=b-e[0][1].length;e[0][1]=c.substring(e[0][1].length)+e[0][1];d.start1-=f;d.start2-=f;d.length1+=f;d.length2+=f}d=a[a.length-1];e=d.diffs;0==e.length||e[e.length-\n1][0]!=DIFF_EQUAL?(e.push([DIFF_EQUAL,c]),d.length1+=b,d.length2+=b):b>e[e.length-1][1].length&&(f=b-e[e.length-1][1].length,e[e.length-1][1]+=c.substring(0,f),d.length1+=f,d.length2+=f);return c};\ndiff_match_patch.prototype.patch_splitMax=function(a){for(var b=this.Match_MaxBits,c=0;c<a.length;c++)if(!(a[c].length1<=b)){var d=a[c];a.splice(c--,1);for(var e=d.start1,f=d.start2,g=\"\";0!==d.diffs.length;){var h=new diff_match_patch.patch_obj,l=!0;h.start1=e-g.length;h.start2=f-g.length;\"\"!==g&&(h.length1=h.length2=g.length,h.diffs.push([DIFF_EQUAL,g]));for(;0!==d.diffs.length&&h.length1<b-this.Patch_Margin;){g=d.diffs[0][0];var k=d.diffs[0][1];g===DIFF_INSERT?(h.length2+=k.length,f+=k.length,h.diffs.push(d.diffs.shift()),\nl=!1):g===DIFF_DELETE&&1==h.diffs.length&&h.diffs[0][0]==DIFF_EQUAL&&k.length>2*b?(h.length1+=k.length,e+=k.length,l=!1,h.diffs.push([g,k]),d.diffs.shift()):(k=k.substring(0,b-h.length1-this.Patch_Margin),h.length1+=k.length,e+=k.length,g===DIFF_EQUAL?(h.length2+=k.length,f+=k.length):l=!1,h.diffs.push([g,k]),k==d.diffs[0][1]?d.diffs.shift():d.diffs[0][1]=d.diffs[0][1].substring(k.length))}g=this.diff_text2(h.diffs);g=g.substring(g.length-this.Patch_Margin);k=this.diff_text1(d.diffs).substring(0,\nthis.Patch_Margin);\"\"!==k&&(h.length1+=k.length,h.length2+=k.length,0!==h.diffs.length&&h.diffs[h.diffs.length-1][0]===DIFF_EQUAL?h.diffs[h.diffs.length-1][1]+=k:h.diffs.push([DIFF_EQUAL,k]));l||a.splice(++c,0,h)}}};diff_match_patch.prototype.patch_toText=function(a){for(var b=[],c=0;c<a.length;c++)b[c]=a[c];return b.join(\"\")};\ndiff_match_patch.prototype.patch_fromText=function(a){var b=[];if(!a)return b;a=a.split(\"\\n\");for(var c=0,d=/^@@ -(\\d+),?(\\d*) \\+(\\d+),?(\\d*) @@$/;c<a.length;){var e=a[c].match(d);if(!e)throw Error(\"Invalid patch string: \"+a[c]);var f=new diff_match_patch.patch_obj;b.push(f);f.start1=parseInt(e[1],10);\"\"===e[2]?(f.start1--,f.length1=1):\"0\"==e[2]?f.length1=0:(f.start1--,f.length1=parseInt(e[2],10));f.start2=parseInt(e[3],10);\"\"===e[4]?(f.start2--,f.length2=1):\"0\"==e[4]?f.length2=0:(f.start2--,f.length2=\nparseInt(e[4],10));for(c++;c<a.length;){e=a[c].charAt(0);try{var g=decodeURI(a[c].substring(1))}catch(h){throw Error(\"Illegal escape in patch_fromText: \"+g);}if(\"-\"==e)f.diffs.push([DIFF_DELETE,g]);else if(\"+\"==e)f.diffs.push([DIFF_INSERT,g]);else if(\" \"==e)f.diffs.push([DIFF_EQUAL,g]);else if(\"@\"==e)break;else if(\"\"!==e)throw Error('Invalid patch mode \"'+e+'\" in: '+g);c++}}return b};diff_match_patch.patch_obj=function(){this.diffs=[];this.start2=this.start1=null;this.length2=this.length1=0};\ndiff_match_patch.patch_obj.prototype.toString=function(){for(var a=[\"@@ -\"+(0===this.length1?this.start1+\",0\":1==this.length1?this.start1+1:this.start1+1+\",\"+this.length1)+\" +\"+(0===this.length2?this.start2+\",0\":1==this.length2?this.start2+1:this.start2+1+\",\"+this.length2)+\" @@\\n\"],b,c=0;c<this.diffs.length;c++){switch(this.diffs[c][0]){case DIFF_INSERT:b=\"+\";break;case DIFF_DELETE:b=\"-\";break;case DIFF_EQUAL:b=\" \"}a[c+1]=b+encodeURI(this.diffs[c][1])+\"\\n\"}return a.join(\"\").replace(/%20/g,\" \")};\nthis.diff_match_patch=diff_match_patch;this.DIFF_DELETE=DIFF_DELETE;this.DIFF_INSERT=DIFF_INSERT;this.DIFF_EQUAL=DIFF_EQUAL;\n}).call(exports);",
"type": "application/javascript",
"title": "$:/core/modules/utils/diff-match-patch/diff_match_patch.js",
"module-type": "library"
},
"$:/core/modules/utils/dom/animations/slide.js": {
"title": "$:/core/modules/utils/dom/animations/slide.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animations/slide.js\ntype: application/javascript\nmodule-type: animation\n\nA simple slide animation that varies the height of the element\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction slideOpen(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration();\n\t// Get the current height of the domNode\n\tvar computedStyle = window.getComputedStyle(domNode),\n\t\tcurrMarginBottom = parseInt(computedStyle.marginBottom,10),\n\t\tcurrMarginTop = parseInt(computedStyle.marginTop,10),\n\t\tcurrPaddingBottom = parseInt(computedStyle.paddingBottom,10),\n\t\tcurrPaddingTop = parseInt(computedStyle.paddingTop,10),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Reset the margin once the transition is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"none\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginBottom: currMarginBottom + \"px\"},\n\t\t{marginTop: currMarginTop + \"px\"},\n\t\t{paddingBottom: currPaddingBottom + \"px\"},\n\t\t{paddingTop: currPaddingTop + \"px\"},\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n}\n\nfunction slideClosed(domNode,options) {\n\toptions = options || {};\n\tvar duration = options.duration || $tw.utils.getAnimationDuration(),\n\t\tcurrHeight = domNode.offsetHeight;\n\t// Clear the properties we've set when the animation is over\n\tsetTimeout(function() {\n\t\t$tw.utils.setStyle(domNode,[\n\t\t\t{transition: \"none\"},\n\t\t\t{marginBottom: \"\"},\n\t\t\t{marginTop: \"\"},\n\t\t\t{paddingBottom: \"\"},\n\t\t\t{paddingTop: \"\"},\n\t\t\t{height: \"auto\"},\n\t\t\t{opacity: \"\"}\n\t\t]);\n\t\tif(options.callback) {\n\t\t\toptions.callback();\n\t\t}\n\t},duration);\n\t// Set up the initial position of the element\n\t$tw.utils.setStyle(domNode,[\n\t\t{height: currHeight + \"px\"},\n\t\t{opacity: \"1\"}\n\t]);\n\t$tw.utils.forceLayout(domNode);\n\t// Transition to the final position\n\t$tw.utils.setStyle(domNode,[\n\t\t{transition: \"margin-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"margin-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-top \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"padding-bottom \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"height \" + duration + \"ms ease-in-out, \" +\n\t\t\t\t\t\"opacity \" + duration + \"ms ease-in-out\"},\n\t\t{marginTop: \"0px\"},\n\t\t{marginBottom: \"0px\"},\n\t\t{paddingTop: \"0px\"},\n\t\t{paddingBottom: \"0px\"},\n\t\t{height: \"0px\"},\n\t\t{opacity: \"0\"}\n\t]);\n}\n\nexports.slide = {\n\topen: slideOpen,\n\tclose: slideClosed\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "animation"
},
"$:/core/modules/utils/dom/animator.js": {
"title": "$:/core/modules/utils/dom/animator.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/animator.js\ntype: application/javascript\nmodule-type: utils\n\nOrchestrates animations and transitions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Animator() {\n\t// Get the registered animation modules\n\tthis.animations = {};\n\t$tw.modules.applyMethods(\"animation\",this.animations);\n}\n\nAnimator.prototype.perform = function(type,domNode,options) {\n\toptions = options || {};\n\t// Find an animation that can handle this type\n\tvar chosenAnimation;\n\t$tw.utils.each(this.animations,function(animation,name) {\n\t\tif($tw.utils.hop(animation,type)) {\n\t\t\tchosenAnimation = animation[type];\n\t\t}\n\t});\n\tif(!chosenAnimation) {\n\t\tchosenAnimation = function(domNode,options) {\n\t\t\tif(options.callback) {\n\t\t\t\toptions.callback();\n\t\t\t}\n\t\t};\n\t}\n\t// Call the animation\n\tchosenAnimation(domNode,options);\n};\n\nexports.Animator = Animator;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/browser.js": {
"title": "$:/core/modules/utils/dom/browser.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/browser.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser feature detection\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nSet style properties of an element\n\telement: dom node\n\tstyles: ordered array of {name: value} pairs\n*/\nexports.setStyle = function(element,styles) {\n\tif(element.nodeType === 1) { // Element.ELEMENT_NODE\n\t\tfor(var t=0; t<styles.length; t++) {\n\t\t\tfor(var styleName in styles[t]) {\n\t\t\t\telement.style[$tw.utils.convertStyleNameToPropertyName(styleName)] = styles[t][styleName];\n\t\t\t}\n\t\t}\n\t}\n};\n\n/*\nConverts a standard CSS property name into the local browser-specific equivalent. For example:\n\t\"background-color\" --> \"backgroundColor\"\n\t\"transition\" --> \"webkitTransition\"\n*/\n\nvar styleNameCache = {}; // We'll cache the style name conversions\n\nexports.convertStyleNameToPropertyName = function(styleName) {\n\t// Return from the cache if we can\n\tif(styleNameCache[styleName]) {\n\t\treturn styleNameCache[styleName];\n\t}\n\t// Convert it by first removing any hyphens\n\tvar propertyName = $tw.utils.unHyphenateCss(styleName);\n\t// Then check if it needs a prefix\n\tif($tw.browser && document.body.style[propertyName] === undefined) {\n\t\tvar prefixes = [\"O\",\"MS\",\"Moz\",\"webkit\"];\n\t\tfor(var t=0; t<prefixes.length; t++) {\n\t\t\tvar prefixedName = prefixes[t] + propertyName.substr(0,1).toUpperCase() + propertyName.substr(1);\n\t\t\tif(document.body.style[prefixedName] !== undefined) {\n\t\t\t\tpropertyName = prefixedName;\n\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\t// Put it in the cache too\n\tstyleNameCache[styleName] = propertyName;\n\treturn propertyName;\n};\n\n/*\nConverts a JS format CSS property name back into the dashed form used in CSS declarations. For example:\n\t\"backgroundColor\" --> \"background-color\"\n\t\"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.convertPropertyNameToStyleName = function(propertyName) {\n\t// Rehyphenate the name\n\tvar styleName = $tw.utils.hyphenateCss(propertyName);\n\t// If there's a webkit prefix, add a dash (other browsers have uppercase prefixes, and so get the dash automatically)\n\tif(styleName.indexOf(\"webkit\") === 0) {\n\t\tstyleName = \"-\" + styleName;\n\t} else if(styleName.indexOf(\"-m-s\") === 0) {\n\t\tstyleName = \"-ms\" + styleName.substr(4);\n\t}\n\treturn styleName;\n};\n\n/*\nRound trip a stylename to a property name and back again. For example:\n\t\"transform\" --> \"webkitTransform\" --> \"-webkit-transform\"\n*/\nexports.roundTripPropertyName = function(propertyName) {\n\treturn $tw.utils.convertPropertyNameToStyleName($tw.utils.convertStyleNameToPropertyName(propertyName));\n};\n\n/*\nConverts a standard event name into the local browser specific equivalent. For example:\n\t\"animationEnd\" --> \"webkitAnimationEnd\"\n*/\n\nvar eventNameCache = {}; // We'll cache the conversions\n\nvar eventNameMappings = {\n\t\"transitionEnd\": {\n\t\tcorrespondingCssProperty: \"transition\",\n\t\tmappings: {\n\t\t\ttransition: \"transitionend\",\n\t\t\tOTransition: \"oTransitionEnd\",\n\t\t\tMSTransition: \"msTransitionEnd\",\n\t\t\tMozTransition: \"transitionend\",\n\t\t\twebkitTransition: \"webkitTransitionEnd\"\n\t\t}\n\t},\n\t\"animationEnd\": {\n\t\tcorrespondingCssProperty: \"animation\",\n\t\tmappings: {\n\t\t\tanimation: \"animationend\",\n\t\t\tOAnimation: \"oAnimationEnd\",\n\t\t\tMSAnimation: \"msAnimationEnd\",\n\t\t\tMozAnimation: \"animationend\",\n\t\t\twebkitAnimation: \"webkitAnimationEnd\"\n\t\t}\n\t}\n};\n\nexports.convertEventName = function(eventName) {\n\tif(eventNameCache[eventName]) {\n\t\treturn eventNameCache[eventName];\n\t}\n\tvar newEventName = eventName,\n\t\tmappings = eventNameMappings[eventName];\n\tif(mappings) {\n\t\tvar convertedProperty = $tw.utils.convertStyleNameToPropertyName(mappings.correspondingCssProperty);\n\t\tif(mappings.mappings[convertedProperty]) {\n\t\t\tnewEventName = mappings.mappings[convertedProperty];\n\t\t}\n\t}\n\t// Put it in the cache too\n\teventNameCache[eventName] = newEventName;\n\treturn newEventName;\n};\n\n/*\nReturn the names of the fullscreen APIs\n*/\nexports.getFullScreenApis = function() {\n\tvar d = document,\n\t\tdb = d.body,\n\t\tresult = {\n\t\t\"_requestFullscreen\": db.webkitRequestFullscreen !== undefined ? \"webkitRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.mozRequestFullScreen !== undefined ? \"mozRequestFullScreen\" :\n\t\t\t\t\t\t\tdb.msRequestFullscreen !== undefined ? \"msRequestFullscreen\" :\n\t\t\t\t\t\t\tdb.requestFullscreen !== undefined ? \"requestFullscreen\" : \"\",\n\t\t\"_exitFullscreen\": d.webkitExitFullscreen !== undefined ? \"webkitExitFullscreen\" :\n\t\t\t\t\t\t\td.mozCancelFullScreen !== undefined ? \"mozCancelFullScreen\" :\n\t\t\t\t\t\t\td.msExitFullscreen !== undefined ? \"msExitFullscreen\" :\n\t\t\t\t\t\t\td.exitFullscreen !== undefined ? \"exitFullscreen\" : \"\",\n\t\t\"_fullscreenElement\": d.webkitFullscreenElement !== undefined ? \"webkitFullscreenElement\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozFullScreenElement\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"msFullscreenElement\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenElement\" : \"\",\n\t\t\"_fullscreenChange\": d.webkitFullscreenElement !== undefined ? \"webkitfullscreenchange\" :\n\t\t\t\t\t\t\td.mozFullScreenElement !== undefined ? \"mozfullscreenchange\" :\n\t\t\t\t\t\t\td.msFullscreenElement !== undefined ? \"MSFullscreenChange\" :\n\t\t\t\t\t\t\td.fullscreenElement !== undefined ? \"fullscreenchange\" : \"\"\n\t};\n\tif(!result._requestFullscreen || !result._exitFullscreen || !result._fullscreenElement || !result._fullscreenChange) {\n\t\treturn null;\n\t} else {\n\t\treturn result;\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/csscolorparser.js": {
"title": "$:/core/modules/utils/dom/csscolorparser.js",
"text": "// (c) Dean McNamee <dean@gmail.com>, 2012.\n//\n// https://github.com/deanm/css-color-parser-js\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 OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n// LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING\n// FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS\n// IN THE SOFTWARE.\n\n// http://www.w3.org/TR/css3-color/\nvar kCSSColorTable = {\n \"transparent\": [0,0,0,0], \"aliceblue\": [240,248,255,1],\n \"antiquewhite\": [250,235,215,1], \"aqua\": [0,255,255,1],\n \"aquamarine\": [127,255,212,1], \"azure\": [240,255,255,1],\n \"beige\": [245,245,220,1], \"bisque\": [255,228,196,1],\n \"black\": [0,0,0,1], \"blanchedalmond\": [255,235,205,1],\n \"blue\": [0,0,255,1], \"blueviolet\": [138,43,226,1],\n \"brown\": [165,42,42,1], \"burlywood\": [222,184,135,1],\n \"cadetblue\": [95,158,160,1], \"chartreuse\": [127,255,0,1],\n \"chocolate\": [210,105,30,1], \"coral\": [255,127,80,1],\n \"cornflowerblue\": [100,149,237,1], \"cornsilk\": [255,248,220,1],\n \"crimson\": [220,20,60,1], \"cyan\": [0,255,255,1],\n \"darkblue\": [0,0,139,1], \"darkcyan\": [0,139,139,1],\n \"darkgoldenrod\": [184,134,11,1], \"darkgray\": [169,169,169,1],\n \"darkgreen\": [0,100,0,1], \"darkgrey\": [169,169,169,1],\n \"darkkhaki\": [189,183,107,1], \"darkmagenta\": [139,0,139,1],\n \"darkolivegreen\": [85,107,47,1], \"darkorange\": [255,140,0,1],\n \"darkorchid\": [153,50,204,1], \"darkred\": [139,0,0,1],\n \"darksalmon\": [233,150,122,1], \"darkseagreen\": [143,188,143,1],\n \"darkslateblue\": [72,61,139,1], \"darkslategray\": [47,79,79,1],\n \"darkslategrey\": [47,79,79,1], \"darkturquoise\": [0,206,209,1],\n \"darkviolet\": [148,0,211,1], \"deeppink\": [255,20,147,1],\n \"deepskyblue\": [0,191,255,1], \"dimgray\": [105,105,105,1],\n \"dimgrey\": [105,105,105,1], \"dodgerblue\": [30,144,255,1],\n \"firebrick\": [178,34,34,1], \"floralwhite\": [255,250,240,1],\n \"forestgreen\": [34,139,34,1], \"fuchsia\": [255,0,255,1],\n \"gainsboro\": [220,220,220,1], \"ghostwhite\": [248,248,255,1],\n \"gold\": [255,215,0,1], \"goldenrod\": [218,165,32,1],\n \"gray\": [128,128,128,1], \"green\": [0,128,0,1],\n \"greenyellow\": [173,255,47,1], \"grey\": [128,128,128,1],\n \"honeydew\": [240,255,240,1], \"hotpink\": [255,105,180,1],\n \"indianred\": [205,92,92,1], \"indigo\": [75,0,130,1],\n \"ivory\": [255,255,240,1], \"khaki\": [240,230,140,1],\n \"lavender\": [230,230,250,1], \"lavenderblush\": [255,240,245,1],\n \"lawngreen\": [124,252,0,1], \"lemonchiffon\": [255,250,205,1],\n \"lightblue\": [173,216,230,1], \"lightcoral\": [240,128,128,1],\n \"lightcyan\": [224,255,255,1], \"lightgoldenrodyellow\": [250,250,210,1],\n \"lightgray\": [211,211,211,1], \"lightgreen\": [144,238,144,1],\n \"lightgrey\": [211,211,211,1], \"lightpink\": [255,182,193,1],\n \"lightsalmon\": [255,160,122,1], \"lightseagreen\": [32,178,170,1],\n \"lightskyblue\": [135,206,250,1], \"lightslategray\": [119,136,153,1],\n \"lightslategrey\": [119,136,153,1], \"lightsteelblue\": [176,196,222,1],\n \"lightyellow\": [255,255,224,1], \"lime\": [0,255,0,1],\n \"limegreen\": [50,205,50,1], \"linen\": [250,240,230,1],\n \"magenta\": [255,0,255,1], \"maroon\": [128,0,0,1],\n \"mediumaquamarine\": [102,205,170,1], \"mediumblue\": [0,0,205,1],\n \"mediumorchid\": [186,85,211,1], \"mediumpurple\": [147,112,219,1],\n \"mediumseagreen\": [60,179,113,1], \"mediumslateblue\": [123,104,238,1],\n \"mediumspringgreen\": [0,250,154,1], \"mediumturquoise\": [72,209,204,1],\n \"mediumvioletred\": [199,21,133,1], \"midnightblue\": [25,25,112,1],\n \"mintcream\": [245,255,250,1], \"mistyrose\": [255,228,225,1],\n \"moccasin\": [255,228,181,1], \"navajowhite\": [255,222,173,1],\n \"navy\": [0,0,128,1], \"oldlace\": [253,245,230,1],\n \"olive\": [128,128,0,1], \"olivedrab\": [107,142,35,1],\n \"orange\": [255,165,0,1], \"orangered\": [255,69,0,1],\n \"orchid\": [218,112,214,1], \"palegoldenrod\": [238,232,170,1],\n \"palegreen\": [152,251,152,1], \"paleturquoise\": [175,238,238,1],\n \"palevioletred\": [219,112,147,1], \"papayawhip\": [255,239,213,1],\n \"peachpuff\": [255,218,185,1], \"peru\": [205,133,63,1],\n \"pink\": [255,192,203,1], \"plum\": [221,160,221,1],\n \"powderblue\": [176,224,230,1], \"purple\": [128,0,128,1],\n \"red\": [255,0,0,1], \"rosybrown\": [188,143,143,1],\n \"royalblue\": [65,105,225,1], \"saddlebrown\": [139,69,19,1],\n \"salmon\": [250,128,114,1], \"sandybrown\": [244,164,96,1],\n \"seagreen\": [46,139,87,1], \"seashell\": [255,245,238,1],\n \"sienna\": [160,82,45,1], \"silver\": [192,192,192,1],\n \"skyblue\": [135,206,235,1], \"slateblue\": [106,90,205,1],\n \"slategray\": [112,128,144,1], \"slategrey\": [112,128,144,1],\n \"snow\": [255,250,250,1], \"springgreen\": [0,255,127,1],\n \"steelblue\": [70,130,180,1], \"tan\": [210,180,140,1],\n \"teal\": [0,128,128,1], \"thistle\": [216,191,216,1],\n \"tomato\": [255,99,71,1], \"turquoise\": [64,224,208,1],\n \"violet\": [238,130,238,1], \"wheat\": [245,222,179,1],\n \"white\": [255,255,255,1], \"whitesmoke\": [245,245,245,1],\n \"yellow\": [255,255,0,1], \"yellowgreen\": [154,205,50,1]}\n\nfunction clamp_css_byte(i) { // Clamp to integer 0 .. 255.\n i = Math.round(i); // Seems to be what Chrome does (vs truncation).\n return i < 0 ? 0 : i > 255 ? 255 : i;\n}\n\nfunction clamp_css_float(f) { // Clamp to float 0.0 .. 1.0.\n return f < 0 ? 0 : f > 1 ? 1 : f;\n}\n\nfunction parse_css_int(str) { // int or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_byte(parseFloat(str) / 100 * 255);\n return clamp_css_byte(parseInt(str));\n}\n\nfunction parse_css_float(str) { // float or percentage.\n if (str[str.length - 1] === '%')\n return clamp_css_float(parseFloat(str) / 100);\n return clamp_css_float(parseFloat(str));\n}\n\nfunction css_hue_to_rgb(m1, m2, h) {\n if (h < 0) h += 1;\n else if (h > 1) h -= 1;\n\n if (h * 6 < 1) return m1 + (m2 - m1) * h * 6;\n if (h * 2 < 1) return m2;\n if (h * 3 < 2) return m1 + (m2 - m1) * (2/3 - h) * 6;\n return m1;\n}\n\nfunction parseCSSColor(css_str) {\n // Remove all whitespace, not compliant, but should just be more accepting.\n var str = css_str.replace(/ /g, '').toLowerCase();\n\n // Color keywords (and transparent) lookup.\n if (str in kCSSColorTable) return kCSSColorTable[str].slice(); // dup.\n\n // #abc and #abc123 syntax.\n if (str[0] === '#') {\n if (str.length === 4) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xfff)) return null; // Covers NaN.\n return [((iv & 0xf00) >> 4) | ((iv & 0xf00) >> 8),\n (iv & 0xf0) | ((iv & 0xf0) >> 4),\n (iv & 0xf) | ((iv & 0xf) << 4),\n 1];\n } else if (str.length === 7) {\n var iv = parseInt(str.substr(1), 16); // TODO(deanm): Stricter parsing.\n if (!(iv >= 0 && iv <= 0xffffff)) return null; // Covers NaN.\n return [(iv & 0xff0000) >> 16,\n (iv & 0xff00) >> 8,\n iv & 0xff,\n 1];\n }\n\n return null;\n }\n\n var op = str.indexOf('('), ep = str.indexOf(')');\n if (op !== -1 && ep + 1 === str.length) {\n var fname = str.substr(0, op);\n var params = str.substr(op+1, ep-(op+1)).split(',');\n var alpha = 1; // To allow case fallthrough.\n switch (fname) {\n case 'rgba':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'rgb':\n if (params.length !== 3) return null;\n return [parse_css_int(params[0]),\n parse_css_int(params[1]),\n parse_css_int(params[2]),\n alpha];\n case 'hsla':\n if (params.length !== 4) return null;\n alpha = parse_css_float(params.pop());\n // Fall through.\n case 'hsl':\n if (params.length !== 3) return null;\n var h = (((parseFloat(params[0]) % 360) + 360) % 360) / 360; // 0 .. 1\n // NOTE(deanm): According to the CSS spec s/l should only be\n // percentages, but we don't bother and let float or percentage.\n var s = parse_css_float(params[1]);\n var l = parse_css_float(params[2]);\n var m2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\n var m1 = l * 2 - m2;\n return [clamp_css_byte(css_hue_to_rgb(m1, m2, h+1/3) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h) * 255),\n clamp_css_byte(css_hue_to_rgb(m1, m2, h-1/3) * 255),\n alpha];\n default:\n return null;\n }\n }\n\n return null;\n}\n\ntry { exports.parseCSSColor = parseCSSColor } catch(e) { }\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom.js": {
"title": "$:/core/modules/utils/dom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static DOM-related utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nDetermines whether element 'a' contains element 'b'\nCode thanks to John Resig, http://ejohn.org/blog/comparing-document-position/\n*/\nexports.domContains = function(a,b) {\n\treturn a.contains ?\n\t\ta !== b && a.contains(b) :\n\t\t!!(a.compareDocumentPosition(b) & 16);\n};\n\nexports.removeChildren = function(node) {\n\twhile(node.hasChildNodes()) {\n\t\tnode.removeChild(node.firstChild);\n\t}\n};\n\nexports.hasClass = function(el,className) {\n\treturn el && el.className && el.className.toString().split(\" \").indexOf(className) !== -1;\n};\n\nexports.addClass = function(el,className) {\n\tvar c = el.className.split(\" \");\n\tif(c.indexOf(className) === -1) {\n\t\tc.push(className);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.removeClass = function(el,className) {\n\tvar c = el.className.split(\" \"),\n\t\tp = c.indexOf(className);\n\tif(p !== -1) {\n\t\tc.splice(p,1);\n\t\tel.className = c.join(\" \");\n\t}\n};\n\nexports.toggleClass = function(el,className,status) {\n\tif(status === undefined) {\n\t\tstatus = !exports.hasClass(el,className);\n\t}\n\tif(status) {\n\t\texports.addClass(el,className);\n\t} else {\n\t\texports.removeClass(el,className);\n\t}\n};\n\n/*\nGet the first parent element that has scrollbars or use the body as fallback.\n*/\nexports.getScrollContainer = function(el) {\n\tvar doc = el.ownerDocument;\n\twhile(el.parentNode) {\t\n\t\tel = el.parentNode;\n\t\tif(el.scrollTop) {\n\t\t\treturn el;\n\t\t}\n\t}\n\treturn doc.body;\n};\n\n/*\nGet the scroll position of the viewport\nReturns:\n\t{\n\t\tx: horizontal scroll position in pixels,\n\t\ty: vertical scroll position in pixels\n\t}\n*/\nexports.getScrollPosition = function(srcWindow) {\n\tvar scrollWindow = srcWindow || window;\n\tif(\"scrollX\" in scrollWindow) {\n\t\treturn {x: scrollWindow.scrollX, y: scrollWindow.scrollY};\n\t} else {\n\t\treturn {x: scrollWindow.document.documentElement.scrollLeft, y: scrollWindow.document.documentElement.scrollTop};\n\t}\n};\n\n/*\nAdjust the height of a textarea to fit its content, preserving scroll position, and return the height\n*/\nexports.resizeTextAreaToFit = function(domNode,minHeight) {\n\t// Get the scroll container and register the current scroll position\n\tvar container = $tw.utils.getScrollContainer(domNode),\n\t\tscrollTop = container.scrollTop;\n // Measure the specified minimum height\n\tdomNode.style.height = minHeight;\n\tvar measuredHeight = domNode.offsetHeight || parseInt(minHeight,10);\n\t// Set its height to auto so that it snaps to the correct height\n\tdomNode.style.height = \"auto\";\n\t// Calculate the revised height\n\tvar newHeight = Math.max(domNode.scrollHeight + domNode.offsetHeight - domNode.clientHeight,measuredHeight);\n\t// Only try to change the height if it has changed\n\tif(newHeight !== domNode.offsetHeight) {\n\t\tdomNode.style.height = newHeight + \"px\";\n\t\t// Make sure that the dimensions of the textarea are recalculated\n\t\t$tw.utils.forceLayout(domNode);\n\t\t// Set the container to the position we registered at the beginning\n\t\tcontainer.scrollTop = scrollTop;\n\t}\n\treturn newHeight;\n};\n\n/*\nGets the bounding rectangle of an element in absolute page coordinates\n*/\nexports.getBoundingPageRect = function(element) {\n\tvar scrollPos = $tw.utils.getScrollPosition(element.ownerDocument.defaultView),\n\t\tclientRect = element.getBoundingClientRect();\n\treturn {\n\t\tleft: clientRect.left + scrollPos.x,\n\t\twidth: clientRect.width,\n\t\tright: clientRect.right + scrollPos.x,\n\t\ttop: clientRect.top + scrollPos.y,\n\t\theight: clientRect.height,\n\t\tbottom: clientRect.bottom + scrollPos.y\n\t};\n};\n\n/*\nSaves a named password in the browser\n*/\nexports.savePassword = function(name,password) {\n\tvar done = false;\n\ttry {\n\t\twindow.localStorage.setItem(\"tw5-password-\" + name,password);\n\t\tdone = true;\n\t} catch(e) {\n\t}\n\tif(!done) {\n\t\t$tw.savedPasswords = $tw.savedPasswords || Object.create(null);\n\t\t$tw.savedPasswords[name] = password;\n\t}\n};\n\n/*\nRetrieve a named password from the browser\n*/\nexports.getPassword = function(name) {\n\tvar value;\n\ttry {\n\t\tvalue = window.localStorage.getItem(\"tw5-password-\" + name);\n\t} catch(e) {\n\t}\n\tif(value !== undefined) {\n\t\treturn value;\n\t} else {\n\t\treturn ($tw.savedPasswords || Object.create(null))[name] || \"\";\n\t}\n};\n\n/*\nForce layout of a dom node and its descendents\n*/\nexports.forceLayout = function(element) {\n\tvar dummy = element.offsetWidth;\n};\n\n/*\nPulse an element for debugging purposes\n*/\nexports.pulseElement = function(element) {\n\t// Event handler to remove the class at the end\n\telement.addEventListener($tw.browser.animationEnd,function handler(event) {\n\t\telement.removeEventListener($tw.browser.animationEnd,handler,false);\n\t\t$tw.utils.removeClass(element,\"pulse\");\n\t},false);\n\t// Apply the pulse class\n\t$tw.utils.removeClass(element,\"pulse\");\n\t$tw.utils.forceLayout(element);\n\t$tw.utils.addClass(element,\"pulse\");\n};\n\n/*\nAttach specified event handlers to a DOM node\ndomNode: where to attach the event handlers\nevents: array of event handlers to be added (see below)\nEach entry in the events array is an object with these properties:\nhandlerFunction: optional event handler function\nhandlerObject: optional event handler object\nhandlerMethod: optionally specifies object handler method name (defaults to `handleEvent`)\n*/\nexports.addEventListeners = function(domNode,events) {\n\t$tw.utils.each(events,function(eventInfo) {\n\t\tvar handler;\n\t\tif(eventInfo.handlerFunction) {\n\t\t\thandler = eventInfo.handlerFunction;\n\t\t} else if(eventInfo.handlerObject) {\n\t\t\tif(eventInfo.handlerMethod) {\n\t\t\t\thandler = function(event) {\n\t\t\t\t\teventInfo.handlerObject[eventInfo.handlerMethod].call(eventInfo.handlerObject,event);\n\t\t\t\t};\t\n\t\t\t} else {\n\t\t\t\thandler = eventInfo.handlerObject;\n\t\t\t}\n\t\t}\n\t\tdomNode.addEventListener(eventInfo.name,handler,false);\n\t});\n};\n\n/*\nGet the computed styles applied to an element as an array of strings of individual CSS properties\n*/\nexports.getComputedStyles = function(domNode) {\n\tvar textAreaStyles = window.getComputedStyle(domNode,null),\n\t\tstyleDefs = [],\n\t\tname;\n\tfor(var t=0; t<textAreaStyles.length; t++) {\n\t\tname = textAreaStyles[t];\n\t\tstyleDefs.push(name + \": \" + textAreaStyles.getPropertyValue(name) + \";\");\n\t}\n\treturn styleDefs;\n};\n\n/*\nApply a set of styles passed as an array of strings of individual CSS properties\n*/\nexports.setStyles = function(domNode,styleDefs) {\n\tdomNode.style.cssText = styleDefs.join(\"\");\n};\n\n/*\nCopy the computed styles from a source element to a destination element\n*/\nexports.copyStyles = function(srcDomNode,dstDomNode) {\n\t$tw.utils.setStyles(dstDomNode,$tw.utils.getComputedStyles(srcDomNode));\n};\n\n/*\nCopy plain text to the clipboard on browsers that support it\n*/\nexports.copyToClipboard = function(text,options) {\n\toptions = options || {};\n\tvar textArea = document.createElement(\"textarea\");\n\ttextArea.style.position = \"fixed\";\n\ttextArea.style.top = 0;\n\ttextArea.style.left = 0;\n\ttextArea.style.fontSize = \"12pt\";\n\ttextArea.style.width = \"2em\";\n\ttextArea.style.height = \"2em\";\n\ttextArea.style.padding = 0;\n\ttextArea.style.border = \"none\";\n\ttextArea.style.outline = \"none\";\n\ttextArea.style.boxShadow = \"none\";\n\ttextArea.style.background = \"transparent\";\n\ttextArea.value = text;\n\tdocument.body.appendChild(textArea);\n\ttextArea.select();\n\ttextArea.setSelectionRange(0,text.length);\n\tvar succeeded = false;\n\ttry {\n\t\tsucceeded = document.execCommand(\"copy\");\n\t} catch (err) {\n\t}\n\tif(!options.doNotNotify) {\n\t\t$tw.notifier.display(succeeded ? \"$:/language/Notifications/CopiedToClipboard/Succeeded\" : \"$:/language/Notifications/CopiedToClipboard/Failed\");\n\t}\n\tdocument.body.removeChild(textArea);\n};\n\nexports.getLocationPath = function() {\n\treturn window.location.toString().split(\"#\")[0];\n};\n\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/dragndrop.js": {
"title": "$:/core/modules/utils/dom/dragndrop.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/dragndrop.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser data transfer utilities, used with the clipboard and drag and drop\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nOptions:\n\ndomNode: dom node to make draggable\ndragImageType: \"pill\" or \"dom\"\ndragTiddlerFn: optional function to retrieve the title of tiddler to drag\ndragFilterFn: optional function to retreive the filter defining a list of tiddlers to drag\nwidget: widget to use as the contect for the filter\n*/\nexports.makeDraggable = function(options) {\n\tvar dragImageType = options.dragImageType || \"dom\",\n\t\tdragImage,\n\t\tdomNode = options.domNode;\n\t// Make the dom node draggable (not necessary for anchor tags)\n\tif((domNode.tagName || \"\").toLowerCase() !== \"a\") {\n\t\tdomNode.setAttribute(\"draggable\",\"true\");\t\t\n\t}\n\t// Add event handlers\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"dragstart\", handlerFunction: function(event) {\n\t\t\tif(event.dataTransfer === undefined) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\t// Collect the tiddlers being dragged\n\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \tstartActions = options.startActions;\n\t\t\tif(dragFilter) {\n\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t}\n\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t// Check that we've something to drag\n\t\t\tif(titles.length > 0 && event.target === domNode) {\n\t\t\t\t// Mark the drag in progress\n\t\t\t\t$tw.dragInProgress = domNode;\n\t\t\t\t// Set the dragging class on the element being dragged\n\t\t\t\t$tw.utils.addClass(event.target,\"tc-dragging\");\n\t\t\t\t// Invoke drag-start actions if given\n\t\t\t\tif(startActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(startActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Create the drag image elements\n\t\t\t\tdragImage = options.widget.document.createElement(\"div\");\n\t\t\t\tdragImage.className = \"tc-tiddler-dragger\";\n\t\t\t\tvar inner = options.widget.document.createElement(\"div\");\n\t\t\t\tinner.className = \"tc-tiddler-dragger-inner\";\n\t\t\t\tinner.appendChild(options.widget.document.createTextNode(\n\t\t\t\t\ttitles.length === 1 ? \n\t\t\t\t\t\ttitles[0] :\n\t\t\t\t\t\ttitles.length + \" tiddlers\"\n\t\t\t\t));\n\t\t\t\tdragImage.appendChild(inner);\n\t\t\t\toptions.widget.document.body.appendChild(dragImage);\n\t\t\t\t// Set the data transfer properties\n\t\t\t\tvar dataTransfer = event.dataTransfer;\n\t\t\t\t// Set up the image\n\t\t\t\tdataTransfer.effectAllowed = \"all\";\n\t\t\t\tif(dataTransfer.setDragImage) {\n\t\t\t\t\tif(dragImageType === \"pill\") {\n\t\t\t\t\t\tdataTransfer.setDragImage(dragImage.firstChild,-16,-16);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvar r = domNode.getBoundingClientRect();\n\t\t\t\t\t\tdataTransfer.setDragImage(domNode,event.clientX-r.left,event.clientY-r.top);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Set up the data transfer\n\t\t\t\tif(dataTransfer.clearData) {\n\t\t\t\t\tdataTransfer.clearData();\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\tvar jsonData = [];\n\t\t\t\tif(titles.length > 1) {\n\t\t\t\t\ttitles.forEach(function(title) {\n\t\t\t\t\t\tjsonData.push(options.widget.wiki.getTiddlerAsJson(title));\n\t\t\t\t\t});\n\t\t\t\t\tjsonData = \"[\" + jsonData.join(\",\") + \"]\";\n\t\t\t\t} else {\n\t\t\t\t\tjsonData = options.widget.wiki.getTiddlerAsJson(titles[0]);\n\t\t\t\t}\n\t\t\t\t// IE doesn't like these content types\n\t\t\t\tif(!$tw.browser.isIE) {\n\t\t\t\t\tdataTransfer.setData(\"text/vnd.tiddler\",jsonData);\n\t\t\t\t\tdataTransfer.setData(\"text/plain\",titleString);\n\t\t\t\t\tdataTransfer.setData(\"text/x-moz-url\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\t}\n\t\t\t\tdataTransfer.setData(\"URL\",\"data:text/vnd.tiddler,\" + encodeURIComponent(jsonData));\n\t\t\t\tdataTransfer.setData(\"Text\",titleString);\n\t\t\t\tevent.stopPropagation();\n\t\t\t}\n\t\t\treturn false;\n\t\t}},\n\t\t{name: \"dragend\", handlerFunction: function(event) {\n\t\t\tif(event.target === domNode) {\n\t\t\t\t// Collect the tiddlers being dragged\n\t\t\t\tvar dragTiddler = options.dragTiddlerFn && options.dragTiddlerFn(),\n\t\t\t\t\tdragFilter = options.dragFilterFn && options.dragFilterFn(),\n\t\t\t\t\ttitles = dragTiddler ? [dragTiddler] : [],\n\t\t\t \t\tendActions = options.endActions;\n\t\t\t\tif(dragFilter) {\n\t\t\t\t\ttitles.push.apply(titles,options.widget.wiki.filterTiddlers(dragFilter,options.widget));\n\t\t\t\t}\n\t\t\t\tvar titleString = $tw.utils.stringifyList(titles);\n\t\t\t\t$tw.dragInProgress = null;\n\t\t\t\t// Invoke drag-end actions if given\n\t\t\t\tif(endActions !== undefined) {\n\t\t\t\t\toptions.widget.invokeActionString(endActions,options.widget,event,{actionTiddler: titleString});\n\t\t\t\t}\n\t\t\t\t// Remove the dragging class on the element being dragged\n\t\t\t\t$tw.utils.removeClass(event.target,\"tc-dragging\");\n\t\t\t\t// Delete the drag image element\n\t\t\t\tif(dragImage) {\n\t\t\t\t\tdragImage.parentNode.removeChild(dragImage);\n\t\t\t\t\tdragImage = null;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false;\n\t\t}}\n\t]);\n};\n\nexports.importDataTransfer = function(dataTransfer,fallbackTitle,callback) {\n\t// Try each provided data type in turn\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Available data types:\");\n\t\tfor(var type=0; type<dataTransfer.types.length; type++) {\n\t\t\tconsole.log(\"type\",dataTransfer.types[type],dataTransfer.getData(dataTransfer.types[type]))\n\t\t}\n\t}\n\tfor(var t=0; t<importDataTypes.length; t++) {\n\t\tif(!$tw.browser.isIE || importDataTypes[t].IECompatible) {\n\t\t\t// Get the data\n\t\t\tvar dataType = importDataTypes[t];\n\t\t\t\tvar data = dataTransfer.getData(dataType.type);\n\t\t\t// Import the tiddlers in the data\n\t\t\tif(data !== \"\" && data !== null) {\n\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\tconsole.log(\"Importing data type '\" + dataType.type + \"', data: '\" + data + \"'\")\n\t\t\t\t}\n\t\t\t\tvar tiddlerFields = dataType.toTiddlerFieldsArray(data,fallbackTitle);\n\t\t\t\tcallback(tiddlerFields);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\t}\n};\n\nvar importDataTypes = [\n\t{type: \"text/vnd.tiddler\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn parseJSONTiddlers(data,fallbackTitle);\n\t}},\n\t{type: \"URL\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/x-moz-url\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\t// Check for tiddler data URI\n\t\tvar match = decodeURIComponent(data).match(/^data\\:text\\/vnd\\.tiddler,(.*)/i);\n\t\tif(match) {\n\t\t\treturn parseJSONTiddlers(match[1],fallbackTitle);\n\t\t} else {\n\t\t\treturn [{title: fallbackTitle, text: data}]; // As URL string\n\t\t}\n\t}},\n\t{type: \"text/html\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/plain\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"Text\", IECompatible: true, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}},\n\t{type: \"text/uri-list\", IECompatible: false, toTiddlerFieldsArray: function(data,fallbackTitle) {\n\t\treturn [{title: fallbackTitle, text: data}];\n\t}}\n];\n\nfunction parseJSONTiddlers(json,fallbackTitle) {\n\tvar data = JSON.parse(json);\n\tif(!$tw.utils.isArray(data)) {\n\t\tdata = [data];\n\t}\n\tdata.forEach(function(fields) {\n\t\tfields.title = fields.title || fallbackTitle;\n\t});\n\treturn data;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/http.js": {
"title": "$:/core/modules/utils/dom/http.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/http.js\ntype: application/javascript\nmodule-type: utils\n\nBrowser HTTP support\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nA quick and dirty HTTP function; to be refactored later. Options are:\n\turl: URL to retrieve\n\theaders: hashmap of headers to send\n\ttype: GET, PUT, POST etc\n\tcallback: function invoked with (err,data,xhr)\n\treturnProp: string name of the property to return as first argument of callback\n*/\nexports.httpRequest = function(options) {\n\tvar type = options.type || \"GET\",\n\t\turl = options.url,\n\t\theaders = options.headers || {accept: \"application/json\"},\n\t\treturnProp = options.returnProp || \"responseText\",\n\t\trequest = new XMLHttpRequest(),\n\t\tdata = \"\",\n\t\tf,results;\n\t// Massage the data hashmap into a string\n\tif(options.data) {\n\t\tif(typeof options.data === \"string\") { // Already a string\n\t\t\tdata = options.data;\n\t\t} else { // A hashmap of strings\n\t\t\tresults = [];\n\t\t\t$tw.utils.each(options.data,function(dataItem,dataItemTitle) {\n\t\t\t\tresults.push(dataItemTitle + \"=\" + encodeURIComponent(dataItem));\n\t\t\t});\n\t\t\tif(type === \"GET\" || type === \"HEAD\") {\n\t\t\t\turl += \"?\" + results.join(\"&\");\n\t\t\t} else {\n\t\t\t\tdata = results.join(\"&\");\n\t\t\t}\n\t\t}\n\t}\n\t// Set up the state change handler\n\trequest.onreadystatechange = function() {\n\t\tif(this.readyState === 4) {\n\t\t\tif(this.status === 200 || this.status === 201 || this.status === 204) {\n\t\t\t\t// Success!\n\t\t\t\toptions.callback(null,this[returnProp],this);\n\t\t\t\treturn;\n\t\t\t}\n\t\t// Something went wrong\n\t\toptions.callback($tw.language.getString(\"Error/XMLHttpRequest\") + \": \" + this.status,null,this);\n\t\t}\n\t};\n\t// Make the request\n\trequest.open(type,url,true);\n\tif(headers) {\n\t\t$tw.utils.each(headers,function(header,headerTitle,object) {\n\t\t\trequest.setRequestHeader(headerTitle,header);\n\t\t});\n\t}\n\tif(data && !$tw.utils.hop(headers,\"Content-type\")) {\n\t\trequest.setRequestHeader(\"Content-type\",\"application/x-www-form-urlencoded; charset=UTF-8\");\n\t}\n\tif(!$tw.utils.hop(headers,\"X-Requested-With\")) {\n\t\trequest.setRequestHeader(\"X-Requested-With\",\"TiddlyWiki\");\n\t}\n\ttry {\n\t\trequest.send(data);\n\t} catch(e) {\n\t\toptions.callback(e,null,this);\n\t}\n\treturn request;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/keyboard.js": {
"title": "$:/core/modules/utils/dom/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/keyboard.js\ntype: application/javascript\nmodule-type: utils\n\nKeyboard utilities; now deprecated. Instead, use $tw.keyboardManager\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n[\"parseKeyDescriptor\",\"checkKeyDescriptor\"].forEach(function(method) {\n\texports[method] = function() {\n\t\tif($tw.keyboardManager) {\n\t\t\treturn $tw.keyboardManager[method].apply($tw.keyboardManager,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t};\n});\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/modal.js": {
"title": "$:/core/modules/utils/dom/modal.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/modal.js\ntype: application/javascript\nmodule-type: utils\n\nModal message mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Modal = function(wiki) {\n\tthis.wiki = wiki;\n\tthis.modalCount = 0;\n};\n\n/*\nDisplay a modal dialogue\n\ttitle: Title of tiddler to display\n\toptions: see below\nOptions include:\n\tdownloadLink: Text of a big download link to include\n*/\nModal.prototype.display = function(title,options) {\n\toptions = options || {};\n\tthis.srcDocument = options.variables && (options.variables.rootwindow === \"true\" ||\n\t\t\t\toptions.variables.rootwindow === \"yes\") ? document :\n\t\t\t\t(options.event.event && options.event.event.target ? options.event.event.target.ownerDocument : document);\n\tthis.srcWindow = this.srcDocument.defaultView;\n\tvar self = this,\n\t\trefreshHandler,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\ttiddler = this.wiki.getTiddler(title);\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Create the wrapper divs\n\tvar wrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalBackdrop = this.srcDocument.createElement(\"div\"),\n\t\tmodalWrapper = this.srcDocument.createElement(\"div\"),\n\t\tmodalHeader = this.srcDocument.createElement(\"div\"),\n\t\theaderTitle = this.srcDocument.createElement(\"h3\"),\n\t\tmodalBody = this.srcDocument.createElement(\"div\"),\n\t\tmodalLink = this.srcDocument.createElement(\"a\"),\n\t\tmodalFooter = this.srcDocument.createElement(\"div\"),\n\t\tmodalFooterHelp = this.srcDocument.createElement(\"span\"),\n\t\tmodalFooterButtons = this.srcDocument.createElement(\"span\");\n\t// Up the modal count and adjust the body class\n\tthis.modalCount++;\n\tthis.adjustPageClass();\n\t// Add classes\n\t$tw.utils.addClass(wrapper,\"tc-modal-wrapper\");\n\tif(tiddler.fields && tiddler.fields.class) {\n\t\t$tw.utils.addClass(wrapper,tiddler.fields.class);\n\t}\n\t$tw.utils.addClass(modalBackdrop,\"tc-modal-backdrop\");\n\t$tw.utils.addClass(modalWrapper,\"tc-modal\");\n\t$tw.utils.addClass(modalHeader,\"tc-modal-header\");\n\t$tw.utils.addClass(modalBody,\"tc-modal-body\");\n\t$tw.utils.addClass(modalFooter,\"tc-modal-footer\");\n\t// Join them together\n\twrapper.appendChild(modalBackdrop);\n\twrapper.appendChild(modalWrapper);\n\tmodalHeader.appendChild(headerTitle);\n\tmodalWrapper.appendChild(modalHeader);\n\tmodalWrapper.appendChild(modalBody);\n\tmodalFooter.appendChild(modalFooterHelp);\n\tmodalFooter.appendChild(modalFooterButtons);\n\tmodalWrapper.appendChild(modalFooter);\n\t// Render the title of the message\n\tvar headerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"subtitle\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"text\",\n\t\t\tattributes: {\n\t\t\t\ttext: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title\n\t\t}}}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\theaderWidgetNode.render(headerTitle,null);\n\t// Render the body of the message\n\tvar bodyWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tbodyWidgetNode.render(modalBody,null);\n\t// Setup the link if present\n\tif(options.downloadLink) {\n\t\tmodalLink.href = options.downloadLink;\n\t\tmodalLink.appendChild(this.srcDocument.createTextNode(\"Right-click to save changes\"));\n\t\tmodalBody.appendChild(modalLink);\n\t}\n\t// Render the footer of the message\n\tif(tiddler.fields && tiddler.fields.help) {\n\t\tvar link = this.srcDocument.createElement(\"a\");\n\t\tlink.setAttribute(\"href\",tiddler.fields.help);\n\t\tlink.setAttribute(\"target\",\"_blank\");\n\t\tlink.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\tlink.appendChild(this.srcDocument.createTextNode(\"Help\"));\n\t\tmodalFooterHelp.appendChild(link);\n\t\tmodalFooterHelp.style.float = \"left\";\n\t}\n\tvar footerWidgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tfield: \"footer\",\n\t\tmode: \"inline\",\n\t\tchildren: [{\n\t\t\ttype: \"button\",\n\t\t\tattributes: {\n\t\t\t\tmessage: {\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: \"tm-close-tiddler\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tchildren: [{\n\t\t\t\ttype: \"text\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttext: {\n\t\t\t\t\t\ttype: \"string\",\n\t\t\t\t\t\tvalue: $tw.language.getString(\"Buttons/Close/Caption\")\n\t\t\t}}}\n\t\t]}],\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: this.srcDocument,\n\t\tvariables: variables,\n\t\timportPageMacros: true\n\t});\n\tfooterWidgetNode.render(modalFooterButtons,null);\n\t// Set up the refresh handler\n\trefreshHandler = function(changes) {\n\t\theaderWidgetNode.refresh(changes,modalHeader,null);\n\t\tbodyWidgetNode.refresh(changes,modalBody,null);\n\t\tfooterWidgetNode.refresh(changes,modalFooterButtons,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Add the close event handler\n\tvar closeHandler = function(event) {\n\t\t// Remove our refresh handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Decrease the modal count and adjust the body class\n\t\tself.modalCount--;\n\t\tself.adjustPageClass();\n\t\t// Force layout and animate the modal message away\n\t\t$tw.utils.forceLayout(modalBackdrop);\n\t\t$tw.utils.forceLayout(modalWrapper);\n\t\t$tw.utils.setStyle(modalBackdrop,[\n\t\t\t{opacity: \"0\"}\n\t\t]);\n\t\t$tw.utils.setStyle(modalWrapper,[\n\t\t\t{transform: \"translateY(\" + self.srcWindow.innerHeight + \"px)\"}\n\t\t]);\n\t\t// Set up an event for the transition end\n\t\tself.srcWindow.setTimeout(function() {\n\t\t\tif(wrapper.parentNode) {\n\t\t\t\t// Remove the modal message from the DOM\n\t\t\t\tself.srcDocument.body.removeChild(wrapper);\n\t\t\t}\n\t\t},duration);\n\t\t// Don't let anyone else handle the tm-close-tiddler message\n\t\treturn false;\n\t};\n\theaderWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tbodyWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\tfooterWidgetNode.addEventListener(\"tm-close-tiddler\",closeHandler,false);\n\t// Set the initial styles for the message\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-this.srcWindow.innerHeight) + \"px)\"}\n\t]);\n\t// Put the message into the document\n\tthis.srcDocument.body.appendChild(wrapper);\n\t// Set up animation for the styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{transition: \"opacity \" + duration + \"ms ease-out\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transition: $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Force layout\n\t$tw.utils.forceLayout(modalBackdrop);\n\t$tw.utils.forceLayout(modalWrapper);\n\t// Set final animated styles\n\t$tw.utils.setStyle(modalBackdrop,[\n\t\t{opacity: \"0.7\"}\n\t]);\n\t$tw.utils.setStyle(modalWrapper,[\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n};\n\nModal.prototype.adjustPageClass = function() {\n\tvar windowContainer = $tw.pageContainer ? ($tw.pageContainer === this.srcDocument.body.firstChild ? $tw.pageContainer : this.srcDocument.body.firstChild) : null;\n\tif(windowContainer) {\n\t\t$tw.utils.toggleClass(windowContainer,\"tc-modal-displayed\",this.modalCount > 0);\n\t}\n};\n\nexports.Modal = Modal;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/notifier.js": {
"title": "$:/core/modules/utils/dom/notifier.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/notifier.js\ntype: application/javascript\nmodule-type: utils\n\nNotifier mechanism\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar Notifier = function(wiki) {\n\tthis.wiki = wiki;\n};\n\n/*\nDisplay a notification\n\ttitle: Title of tiddler containing the notification text\n\toptions: see below\nOptions include:\n*/\nNotifier.prototype.display = function(title,options) {\n\toptions = options || {};\n\t// Create the wrapper divs\n\tvar self = this,\n\t\tnotification = document.createElement(\"div\"),\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t\trefreshHandler;\n\t// Don't do anything if the tiddler doesn't exist\n\tif(!tiddler) {\n\t\treturn;\n\t}\n\t// Add classes\n\t$tw.utils.addClass(notification,\"tc-notification\");\n\t// Create the variables\n\tvar variables = $tw.utils.extend({currentTiddler: title},options.variables);\n\t// Render the body of the notification\n\tvar widgetNode = this.wiki.makeTranscludeWidget(title,{\n\t\tparentWidget: $tw.rootWidget,\n\t\tdocument: document,\n\t\tvariables: variables,\n\t\timportPageMacros: true});\n\twidgetNode.render(notification,null);\n\trefreshHandler = function(changes) {\n\t\twidgetNode.refresh(changes,notification,null);\n\t};\n\tthis.wiki.addEventListener(\"change\",refreshHandler);\n\t// Set the initial styles for the notification\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"0\"},\n\t\t{transformOrigin: \"0% 0%\"},\n\t\t{transform: \"translateY(\" + (-window.innerHeight) + \"px)\"},\n\t\t{transition: \"opacity \" + duration + \"ms ease-out, \" + $tw.utils.roundTripPropertyName(\"transform\") + \" \" + duration + \"ms ease-in-out\"}\n\t]);\n\t// Add the notification to the DOM\n\tdocument.body.appendChild(notification);\n\t// Force layout\n\t$tw.utils.forceLayout(notification);\n\t// Set final animated styles\n\t$tw.utils.setStyle(notification,[\n\t\t{opacity: \"1.0\"},\n\t\t{transform: \"translateY(0px)\"}\n\t]);\n\t// Set a timer to remove the notification\n\twindow.setTimeout(function() {\n\t\t// Remove our change event handler\n\t\tself.wiki.removeEventListener(\"change\",refreshHandler);\n\t\t// Force layout and animate the notification away\n\t\t$tw.utils.forceLayout(notification);\n\t\t$tw.utils.setStyle(notification,[\n\t\t\t{opacity: \"0.0\"},\n\t\t\t{transform: \"translateX(\" + (notification.offsetWidth) + \"px)\"}\n\t\t]);\n\t\t// Remove the modal message from the DOM once the transition ends\n\t\tsetTimeout(function() {\n\t\t\tif(notification.parentNode) {\n\t\t\t\tdocument.body.removeChild(notification);\n\t\t\t}\n\t\t},duration);\n\t},$tw.config.preferences.notificationDuration);\n};\n\nexports.Notifier = Notifier;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/popup.js": {
"title": "$:/core/modules/utils/dom/popup.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/popup.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Popup object prototype that manages popups in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreates a Popup object with these options:\n\trootElement: the DOM element to which the popup zapper should be attached\n*/\nvar Popup = function(options) {\n\toptions = options || {};\n\tthis.rootElement = options.rootElement || document.documentElement;\n\tthis.popups = []; // Array of {title:,wiki:,domNode:} objects\n};\n\n/*\nTrigger a popup open or closed. Parameters are in a hashmap:\n\ttitle: title of the tiddler where the popup details are stored\n\tdomNode: dom node to which the popup will be positioned (one of domNode or domNodeRect is required)\n\tdomNodeRect: rectangle to which the popup will be positioned\n\twiki: wiki\n\tforce: if specified, forces the popup state to true or false (instead of toggling it)\n\tfloating: if true, skips registering the popup, meaning that it will need manually clearing\n*/\nPopup.prototype.triggerPopup = function(options) {\n\t// Check if this popup is already active\n\tvar index = this.findPopup(options.title);\n\t// Compute the new state\n\tvar state = index === -1;\n\tif(options.force !== undefined) {\n\t\tstate = options.force;\n\t}\n\t// Show or cancel the popup according to the new state\n\tif(state) {\n\t\tthis.show(options);\n\t} else {\n\t\tthis.cancel(index);\n\t}\n};\n\nPopup.prototype.findPopup = function(title) {\n\tvar index = -1;\n\tfor(var t=0; t<this.popups.length; t++) {\n\t\tif(this.popups[t].title === title) {\n\t\t\tindex = t;\n\t\t}\n\t}\n\treturn index;\n};\n\nPopup.prototype.handleEvent = function(event) {\n\tif(event.type === \"click\") {\n\t\t// Find out what was clicked on\n\t\tvar info = this.popupInfo(event.target),\n\t\t\tcancelLevel = info.popupLevel - 1;\n\t\t// Don't remove the level that was clicked on if we clicked on a handle\n\t\tif(info.isHandle) {\n\t\t\tcancelLevel++;\n\t\t}\n\t\t// Cancel\n\t\tthis.cancel(cancelLevel);\n\t}\n};\n\n/*\nFind the popup level containing a DOM node. Returns:\npopupLevel: count of the number of nested popups containing the specified element\nisHandle: true if the specified element is within a popup handle\n*/\nPopup.prototype.popupInfo = function(domNode) {\n\tvar isHandle = false,\n\t\tpopupCount = 0,\n\t\tnode = domNode;\n\t// First check ancestors to see if we're within a popup handle\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup-handle\")) {\n\t\t\tisHandle = true;\n\t\t\tpopupCount++;\n\t\t}\n\t\tif($tw.utils.hasClass(node,\"tc-popup-keep\")) {\n\t\t\tisHandle = true;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\t// Then count the number of ancestor popups\n\tnode = domNode;\n\twhile(node) {\n\t\tif($tw.utils.hasClass(node,\"tc-popup\")) {\n\t\t\tpopupCount++;\n\t\t}\n\t\tnode = node.parentNode;\n\t}\n\tvar info = {\n\t\tpopupLevel: popupCount,\n\t\tisHandle: isHandle\n\t};\n\treturn info;\n};\n\n/*\nDisplay a popup by adding it to the stack\n*/\nPopup.prototype.show = function(options) {\n\t// Find out what was clicked on\n\tvar info = this.popupInfo(options.domNode);\n\t// Cancel any higher level popups\n\tthis.cancel(info.popupLevel);\n\n\t// Store the popup details if not already there\n\tif(!options.floating && this.findPopup(options.title) === -1) {\n\t\tthis.popups.push({\n\t\t\ttitle: options.title,\n\t\t\twiki: options.wiki,\n\t\t\tdomNode: options.domNode,\n\t\t\tnoStateReference: options.noStateReference\n\t\t});\n\t}\n\t// Set the state tiddler\n\tvar rect;\n\tif(options.domNodeRect) {\n\t\trect = options.domNodeRect;\n\t} else {\n\t\trect = {\n\t\t\tleft: options.domNode.offsetLeft,\n\t\t\ttop: options.domNode.offsetTop,\n\t\t\twidth: options.domNode.offsetWidth,\n\t\t\theight: options.domNode.offsetHeight\n\t\t};\n\t}\n\tvar popupRect = \"(\" + rect.left + \",\" + rect.top + \",\" + \n\t\t\t\trect.width + \",\" + rect.height + \")\";\n\tif(options.noStateReference) {\n\t\toptions.wiki.setText(options.title,\"text\",undefined,popupRect);\n\t} else {\n\t\toptions.wiki.setTextReference(options.title,popupRect);\n\t}\n\t// Add the click handler if we have any popups\n\tif(this.popups.length > 0) {\n\t\tthis.rootElement.addEventListener(\"click\",this,true);\t\t\n\t}\n};\n\n/*\nCancel all popups at or above a specified level or DOM node\nlevel: popup level to cancel (0 cancels all popups)\n*/\nPopup.prototype.cancel = function(level) {\n\tvar numPopups = this.popups.length;\n\tlevel = Math.max(0,Math.min(level,numPopups));\n\tfor(var t=level; t<numPopups; t++) {\n\t\tvar popup = this.popups.pop();\n\t\tif(popup.title) {\n\t\t\tif(popup.noStateReference) {\n\t\t\t\tpopup.wiki.deleteTiddler(popup.title);\n\t\t\t} else {\n\t\t\t\tpopup.wiki.deleteTiddler($tw.utils.parseTextReference(popup.title).title);\n \t\t}\n\t\t}\n\t}\n\tif(this.popups.length === 0) {\n\t\tthis.rootElement.removeEventListener(\"click\",this,false);\n\t}\n};\n\n/*\nReturns true if the specified title and text identifies an active popup\n*/\nPopup.prototype.readPopupState = function(text) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/;\n\treturn popupLocationRegExp.test(text);\n};\n\nexports.Popup = Popup;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/dom/scroller.js": {
"title": "$:/core/modules/utils/dom/scroller.js",
"text": "/*\\\ntitle: $:/core/modules/utils/dom/scroller.js\ntype: application/javascript\nmodule-type: utils\n\nModule that creates a $tw.utils.Scroller object prototype that manages scrolling in the browser\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nEvent handler for when the `tm-scroll` event hits the document body\n*/\nvar PageScroller = function() {\n\tthis.idRequestFrame = null;\n\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\twindow.webkitRequestAnimationFrame ||\n\t\twindow.mozRequestAnimationFrame ||\n\t\tfunction(callback) {\n\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t};\n\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\twindow.webkitCancelAnimationFrame ||\n\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\twindow.mozCancelAnimationFrame ||\n\t\twindow.mozCancelRequestAnimationFrame ||\n\t\tfunction(id) {\n\t\t\twindow.clearTimeout(id);\n\t\t};\n};\n\nPageScroller.prototype.isScrolling = function() {\n\treturn this.idRequestFrame !== null;\n}\n\nPageScroller.prototype.cancelScroll = function(srcWindow) {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(srcWindow,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle an event\n*/\nPageScroller.prototype.handleEvent = function(event) {\n\tif(event.type === \"tm-scroll\") {\n\t\treturn this.scrollIntoView(event.target);\n\t}\n\treturn true;\n};\n\n/*\nHandle a scroll event hitting the page document\n*/\nPageScroller.prototype.scrollIntoView = function(element,callback) {\n\tvar self = this,\n\t\tduration = $tw.utils.getAnimationDuration(),\n\t srcWindow = element ? element.ownerDocument.defaultView : window;\n\t// Now get ready to scroll the body\n\tthis.cancelScroll(srcWindow);\n\tthis.startTime = Date.now();\n\t// Get the height of any position:fixed toolbars\n\tvar toolbar = srcWindow.document.querySelector(\".tc-adjust-top-of-scroll\"),\n\t\toffset = 0;\n\tif(toolbar) {\n\t\toffset = toolbar.offsetHeight;\n\t}\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar getBounds = function() {\n\t\t\tvar clientBounds = typeof callback === 'function' ? callback() : element.getBoundingClientRect(),\n\t\t\t\tscrollPosition = $tw.utils.getScrollPosition(srcWindow);\n\t\t\treturn {\n\t\t\t\tleft: clientBounds.left + scrollPosition.x,\n\t\t\t\ttop: clientBounds.top + scrollPosition.y - offset,\n\t\t\t\twidth: clientBounds.width,\n\t\t\t\theight: clientBounds.height\n\t\t\t};\n\t\t},\n\t\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\t\t// targetPos/targetSize - position and size of the target element\n\t\t// currentPos/currentSize - position and size of the current scroll viewport\n\t\t// returns: new position of the scroll viewport\n\t\tgetEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\tvar newPos = targetPos;\n\t\t\t// If we are scrolling within 50 pixels of the top/left then snap to zero\n\t\t\tif(newPos < 50) {\n\t\t\t\tnewPos = 0;\n\t\t\t}\n\t\t\treturn newPos;\n\t\t},\n\t\tdrawFrame = function drawFrame() {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll(srcWindow);\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tvar scrollPosition = $tw.utils.getScrollPosition(srcWindow),\n\t\t\t\tbounds = getBounds(),\n\t\t\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,srcWindow.innerWidth),\n\t\t\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,srcWindow.innerHeight);\n\t\t\tsrcWindow.scrollTo(scrollPosition.x + (endX - scrollPosition.x) * t,scrollPosition.y + (endY - scrollPosition.y) * t);\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(srcWindow,drawFrame);\n\t\t\t}\n\t\t};\n\tdrawFrame();\n};\n\nexports.PageScroller = PageScroller;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/edition-info.js": {
"title": "$:/core/modules/utils/edition-info.js",
"text": "/*\\\ntitle: $:/core/modules/utils/edition-info.js\ntype: application/javascript\nmodule-type: utils-node\n\nInformation about the available editions\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\nvar editionInfo;\n\nexports.getEditionInfo = function() {\n\tif(!editionInfo) {\n\t\t// Enumerate the edition paths\n\t\tvar editionPaths = $tw.getLibraryItemSearchPaths($tw.config.editionsPath,$tw.config.editionsEnvVar);\n\t\teditionInfo = {};\n\t\tfor(var editionIndex=0; editionIndex<editionPaths.length; editionIndex++) {\n\t\t\tvar editionPath = editionPaths[editionIndex];\n\t\t\t// Enumerate the folders\n\t\t\tvar entries = fs.readdirSync(editionPath);\n\t\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\t\tvar entry = entries[entryIndex];\n\t\t\t\t// Check if directories have a valid tiddlywiki.info\n\t\t\t\tif(!editionInfo[entry] && $tw.utils.isDirectory(path.resolve(editionPath,entry))) {\n\t\t\t\t\tvar info;\n\t\t\t\t\ttry {\n\t\t\t\t\t\tinfo = JSON.parse(fs.readFileSync(path.resolve(editionPath,entry,\"tiddlywiki.info\"),\"utf8\"));\n\t\t\t\t\t} catch(ex) {\n\t\t\t\t\t}\n\t\t\t\t\tif(info) {\n\t\t\t\t\t\teditionInfo[entry] = info;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn editionInfo;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/fakedom.js": {
"title": "$:/core/modules/utils/fakedom.js",
"text": "/*\\\ntitle: $:/core/modules/utils/fakedom.js\ntype: application/javascript\nmodule-type: global\n\nA barebones implementation of DOM interfaces needed by the rendering mechanism.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Sequence number used to enable us to track objects for testing\nvar sequenceNumber = null;\n\nvar bumpSequenceNumber = function(object) {\n\tif(sequenceNumber !== null) {\n\t\tobject.sequenceNumber = sequenceNumber++;\n\t}\n};\n\nvar TW_TextNode = function(text) {\n\tbumpSequenceNumber(this);\n\tthis.textContent = text + \"\";\n};\n\nObject.defineProperty(TW_TextNode.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 3;\n\t}\n});\n\nObject.defineProperty(TW_TextNode.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\treturn this.textContent.replace(/(\\r?\\n)/g,\"\");\n\t}\n});\n\nvar TW_Element = function(tag,namespace) {\n\tbumpSequenceNumber(this);\n\tthis.isTiddlyWikiFakeDom = true;\n\tthis.tag = tag;\n\tthis.attributes = {};\n\tthis.isRaw = false;\n\tthis.children = [];\n\tthis._style = {};\n\tthis.namespaceURI = namespace || \"http://www.w3.org/1999/xhtml\";\n};\n\nObject.defineProperty(TW_Element.prototype, \"style\", {\n\tget: function() {\n\t\treturn this._style;\n\t},\n\tset: function(str) {\n\t\tvar self = this;\n\t\tstr = str || \"\";\n\t\t$tw.utils.each(str.split(\";\"),function(declaration) {\n\t\t\tvar parts = declaration.split(\":\"),\n\t\t\t\tname = $tw.utils.trim(parts[0]),\n\t\t\t\tvalue = $tw.utils.trim(parts[1]);\n\t\t\tif(name && value) {\n\t\t\t\tself._style[$tw.utils.convertStyleNameToPropertyName(name)] = value;\n\t\t\t}\n\t\t});\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"nodeType\", {\n\tget: function() {\n\t\treturn 1;\n\t}\n});\n\nTW_Element.prototype.getAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot getAttribute on a raw TW_Element\";\n\t}\n\treturn this.attributes[name];\n};\n\nTW_Element.prototype.setAttribute = function(name,value) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot setAttribute on a raw TW_Element\";\n\t}\n\tthis.attributes[name] = value + \"\";\n};\n\nTW_Element.prototype.setAttributeNS = function(namespace,name,value) {\n\tthis.setAttribute(name,value);\n};\n\nTW_Element.prototype.removeAttribute = function(name) {\n\tif(this.isRaw) {\n\t\tthrow \"Cannot removeAttribute on a raw TW_Element\";\n\t}\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\tdelete this.attributes[name];\n\t}\n};\n\nTW_Element.prototype.appendChild = function(node) {\n\tthis.children.push(node);\n\tnode.parentNode = this;\n};\n\nTW_Element.prototype.insertBefore = function(node,nextSibling) {\n\tif(nextSibling) {\n\t\tvar p = this.children.indexOf(nextSibling);\n\t\tif(p !== -1) {\n\t\t\tthis.children.splice(p,0,node);\n\t\t\tnode.parentNode = this;\n\t\t} else {\n\t\t\tthis.appendChild(node);\n\t\t}\n\t} else {\n\t\tthis.appendChild(node);\n\t}\n};\n\nTW_Element.prototype.removeChild = function(node) {\n\tvar p = this.children.indexOf(node);\n\tif(p !== -1) {\n\t\tthis.children.splice(p,1);\n\t}\n};\n\nTW_Element.prototype.hasChildNodes = function() {\n\treturn !!this.children.length;\n};\n\nObject.defineProperty(TW_Element.prototype, \"childNodes\", {\n\tget: function() {\n\t\treturn this.children;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"firstChild\", {\n\tget: function() {\n\t\treturn this.children[0];\n\t}\n});\n\nTW_Element.prototype.addEventListener = function(type,listener,useCapture) {\n\t// Do nothing\n};\n\nObject.defineProperty(TW_Element.prototype, \"tagName\", {\n\tget: function() {\n\t\treturn this.tag || \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"className\", {\n\tget: function() {\n\t\treturn this.attributes[\"class\"] || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes[\"class\"] = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"value\", {\n\tget: function() {\n\t\treturn this.attributes.value || \"\";\n\t},\n\tset: function(value) {\n\t\tthis.attributes.value = value + \"\";\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"outerHTML\", {\n\tget: function() {\n\t\tvar output = [],attr,a,v;\n\t\toutput.push(\"<\",this.tag);\n\t\tif(this.attributes) {\n\t\t\tattr = [];\n\t\t\tfor(a in this.attributes) {\n\t\t\t\tattr.push(a);\n\t\t\t}\n\t\t\tattr.sort();\n\t\t\tfor(a=0; a<attr.length; a++) {\n\t\t\t\tv = this.attributes[attr[a]];\n\t\t\t\tif(v !== undefined) {\n\t\t\t\t\toutput.push(\" \",attr[a],\"=\\\"\",$tw.utils.htmlEncode(v),\"\\\"\");\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif(this._style) {\n\t\t\tvar style = [];\n\t\t\tfor(var s in this._style) {\n\t\t\t\tstyle.push($tw.utils.convertPropertyNameToStyleName(s) + \":\" + this._style[s] + \";\");\n\t\t\t}\n\t\t\tif(style.length > 0) {\n\t\t\t\toutput.push(\" style=\\\"\",style.join(\"\"),\"\\\"\");\n\t\t\t}\n\t\t}\n\t\toutput.push(\">\");\n\t\tif($tw.config.htmlVoidElements.indexOf(this.tag) === -1) {\n\t\t\toutput.push(this.innerHTML);\n\t\t\toutput.push(\"</\",this.tag,\">\");\n\t\t}\n\t\treturn output.join(\"\");\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"innerHTML\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn this.rawHTML;\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tif(node instanceof TW_Element) {\n\t\t\t\t\tb.push(node.outerHTML);\n\t\t\t\t} else if(node instanceof TW_TextNode) {\n\t\t\t\t\tb.push($tw.utils.htmlEncode(node.textContent));\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.isRaw = true;\n\t\tthis.rawHTML = value;\n\t\tthis.rawTextContent = null;\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textInnerHTML\", {\n\tset: function(value) {\n\t\tif(this.isRaw) {\n\t\t\tthis.rawTextContent = value;\n\t\t} else {\n\t\t\tthrow \"Cannot set textInnerHTML of a non-raw TW_Element\";\n\t\t}\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"textContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\tif(this.rawTextContent === null) {\n\t\t\t\treturn \"\";\n\t\t\t} else {\n\t\t\t\treturn this.rawTextContent;\n\t\t\t}\n\t\t} else {\n\t\t\tvar b = [];\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.textContent);\n\t\t\t});\n\t\t\treturn b.join(\"\");\n\t\t}\n\t},\n\tset: function(value) {\n\t\tthis.children = [new TW_TextNode(value)];\n\t}\n});\n\nObject.defineProperty(TW_Element.prototype, \"formattedTextContent\", {\n\tget: function() {\n\t\tif(this.isRaw) {\n\t\t\treturn \"\";\n\t\t} else {\n\t\t\tvar b = [],\n\t\t\t\tisBlock = $tw.config.htmlBlockElements.indexOf(this.tag) !== -1;\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\tif(this.tag === \"li\") {\n\t\t\t\tb.push(\"* \");\n\t\t\t}\n\t\t\t$tw.utils.each(this.children,function(node) {\n\t\t\t\tb.push(node.formattedTextContent);\n\t\t\t});\n\t\t\tif(isBlock) {\n\t\t\t\tb.push(\"\\n\");\n\t\t\t}\n\t\t\treturn b.join(\"\");\n\t\t}\n\t}\n});\n\nvar document = {\n\tsetSequenceNumber: function(value) {\n\t\tsequenceNumber = value;\n\t},\n\tcreateElementNS: function(namespace,tag) {\n\t\treturn new TW_Element(tag,namespace);\n\t},\n\tcreateElement: function(tag) {\n\t\treturn new TW_Element(tag);\n\t},\n\tcreateTextNode: function(text) {\n\t\treturn new TW_TextNode(text);\n\t},\n\tcompatMode: \"CSS1Compat\", // For KaTeX to know that we're not a browser in quirks mode\n\tisTiddlyWikiFakeDom: true\n};\n\nexports.fakeDocument = document;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/filesystem.js": {
"title": "$:/core/modules/utils/filesystem.js",
"text": "/*\\\ntitle: $:/core/modules/utils/filesystem.js\ntype: application/javascript\nmodule-type: utils-node\n\nFile system utilities\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar fs = require(\"fs\"),\n\tpath = require(\"path\");\n\n/*\nRecursively (and synchronously) copy a directory and all its content\n*/\nexports.copyDirectory = function(srcPath,dstPath) {\n\t// Remove any trailing path separators\n\tsrcPath = $tw.utils.removeTrailingSeparator(srcPath);\n\tdstPath = $tw.utils.removeTrailingSeparator(dstPath);\n\t// Create the destination directory\n\tvar err = $tw.utils.createDirectory(dstPath);\n\tif(err) {\n\t\treturn err;\n\t}\n\t// Function to copy a folder full of files\n\tvar copy = function(srcPath,dstPath) {\n\t\tvar srcStats = fs.lstatSync(srcPath),\n\t\t\tdstExists = fs.existsSync(dstPath);\n\t\tif(srcStats.isFile()) {\n\t\t\t$tw.utils.copyFile(srcPath,dstPath);\n\t\t} else if(srcStats.isDirectory()) {\n\t\t\tvar items = fs.readdirSync(srcPath);\n\t\t\tfor(var t=0; t<items.length; t++) {\n\t\t\t\tvar item = items[t],\n\t\t\t\t\terr = copy(srcPath + path.sep + item,dstPath + path.sep + item);\n\t\t\t\tif(err) {\n\t\t\t\t\treturn err;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t};\n\tcopy(srcPath,dstPath);\n\treturn null;\n};\n\n/*\nCopy a file\n*/\nvar FILE_BUFFER_LENGTH = 64 * 1024,\n\tfileBuffer;\n\nexports.copyFile = function(srcPath,dstPath) {\n\t// Create buffer if required\n\tif(!fileBuffer) {\n\t\tfileBuffer = Buffer.alloc(FILE_BUFFER_LENGTH);\n\t}\n\t// Create any directories in the destination\n\t$tw.utils.createDirectory(path.dirname(dstPath));\n\t// Copy the file\n\tvar srcFile = fs.openSync(srcPath,\"r\"),\n\t\tdstFile = fs.openSync(dstPath,\"w\"),\n\t\tbytesRead = 1,\n\t\tpos = 0;\n\twhile (bytesRead > 0) {\n\t\tbytesRead = fs.readSync(srcFile,fileBuffer,0,FILE_BUFFER_LENGTH,pos);\n\t\tfs.writeSync(dstFile,fileBuffer,0,bytesRead);\n\t\tpos += bytesRead;\n\t}\n\tfs.closeSync(srcFile);\n\tfs.closeSync(dstFile);\n\treturn null;\n};\n\n/*\nRemove trailing path separator\n*/\nexports.removeTrailingSeparator = function(dirPath) {\n\tvar len = dirPath.length;\n\tif(dirPath.charAt(len-1) === path.sep) {\n\t\tdirPath = dirPath.substr(0,len-1);\n\t}\n\treturn dirPath;\n};\n\n/*\nRecursively create a directory\n*/\nexports.createDirectory = function(dirPath) {\n\tif(dirPath.substr(dirPath.length-1,1) !== path.sep) {\n\t\tdirPath = dirPath + path.sep;\n\t}\n\tvar pos = 1;\n\tpos = dirPath.indexOf(path.sep,pos);\n\twhile(pos !== -1) {\n\t\tvar subDirPath = dirPath.substr(0,pos);\n\t\tif(!$tw.utils.isDirectory(subDirPath)) {\n\t\t\ttry {\n\t\t\t\tfs.mkdirSync(subDirPath);\n\t\t\t} catch(e) {\n\t\t\t\treturn \"Error creating directory '\" + subDirPath + \"'\";\n\t\t\t}\n\t\t}\n\t\tpos = dirPath.indexOf(path.sep,pos + 1);\n\t}\n\treturn null;\n};\n\n/*\nRecursively create directories needed to contain a specified file\n*/\nexports.createFileDirectories = function(filePath) {\n\treturn $tw.utils.createDirectory(path.dirname(filePath));\n};\n\n/*\nRecursively delete a directory\n*/\nexports.deleteDirectory = function(dirPath) {\n\tif(fs.existsSync(dirPath)) {\n\t\tvar entries = fs.readdirSync(dirPath);\n\t\tfor(var entryIndex=0; entryIndex<entries.length; entryIndex++) {\n\t\t\tvar currPath = dirPath + path.sep + entries[entryIndex];\n\t\t\tif(fs.lstatSync(currPath).isDirectory()) {\n\t\t\t\t$tw.utils.deleteDirectory(currPath);\n\t\t\t} else {\n\t\t\t\tfs.unlinkSync(currPath);\n\t\t\t}\n\t\t}\n\tfs.rmdirSync(dirPath);\n\t}\n\treturn null;\n};\n\n/*\nCheck if a path identifies a directory\n*/\nexports.isDirectory = function(dirPath) {\n\treturn fs.existsSync(dirPath) && fs.statSync(dirPath).isDirectory();\n};\n\n/*\nCheck if a path identifies a directory that is empty\n*/\nexports.isDirectoryEmpty = function(dirPath) {\n\tif(!$tw.utils.isDirectory(dirPath)) {\n\t\treturn false;\n\t}\n\tvar files = fs.readdirSync(dirPath),\n\t\tempty = true;\n\t$tw.utils.each(files,function(file,index) {\n\t\tif(file.charAt(0) !== \".\") {\n\t\t\tempty = false;\n\t\t}\n\t});\n\treturn empty;\n};\n\n/*\nRecursively delete a tree of empty directories\n*/\nexports.deleteEmptyDirs = function(dirpath,callback) {\n\tvar self = this;\n\tfs.readdir(dirpath,function(err,files) {\n\t\tif(err) {\n\t\t\treturn callback(err);\n\t\t}\n\t\tif(files.length > 0) {\n\t\t\treturn callback(null);\n\t\t}\n\t\tfs.rmdir(dirpath,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tself.deleteEmptyDirs(path.dirname(dirpath),callback);\n\t\t});\n\t});\n};\n\n/*\nCreate a fileInfo object for saving a tiddler:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\nOptions include:\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFileInfo = function(tiddler,options) {\n\tvar fileInfo = {};\n\t// Check if the tiddler has any unsafe fields that can't be expressed in a .tid or .meta file: containing control characters, or leading/trailing whitespace\n\tvar hasUnsafeFields = false;\n\t$tw.utils.each(tiddler.getFieldStrings(),function(value,fieldName) {\n\t\tif(fieldName !== \"text\") {\n\t\t\thasUnsafeFields = hasUnsafeFields || /[\\x00-\\x1F]/mg.test(value);\n\t\t\thasUnsafeFields = hasUnsafeFields || ($tw.utils.trim(value) !== value);\n\t\t}\n\t});\n\t// Check for field values \n\tif(hasUnsafeFields) {\n\t\t// Save as a JSON file\n\t\tfileInfo.type = \"application/json\";\n\t\tfileInfo.hasMetaFile = false;\n\t} else {\n\t\t// Save as a .tid or a text/binary file plus a .meta file\n\t\tvar tiddlerType = tiddler.fields.type || \"text/vnd.tiddlywiki\";\n\t\tif(tiddlerType === \"text/vnd.tiddlywiki\") {\n\t\t\t// Save as a .tid file\n\t\t\tfileInfo.type = \"application/x-tiddler\";\n\t\t\tfileInfo.hasMetaFile = false;\n\t\t} else {\n\t\t\t// Save as a text/binary file and a .meta file\n\t\t\tfileInfo.type = tiddlerType;\n\t\t\tfileInfo.hasMetaFile = true;\n\t\t}\n\t}\n\t// Take the file extension from the tiddler content type\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[fileInfo.type] || {extension: \"\"};\n\t// Generate the filepath\n\tfileInfo.filepath = $tw.utils.generateTiddlerFilepath(tiddler.fields.title,{\n\t\textension: contentTypeInfo.extension,\n\t\tdirectory: options.directory,\n\t\tpathFilters: options.pathFilters,\n\t\twiki: options.wiki\n\t});\n\treturn fileInfo;\n};\n\n/*\nGenerate the filepath for saving a tiddler\nOptions include:\n\textension: file extension to be added the finished filepath\n\tdirectory: absolute path of root directory to which we are saving\n\tpathFilters: optional array of filters to be used to generate the base path\n\twiki: optional wiki for evaluating the pathFilters\n*/\nexports.generateTiddlerFilepath = function(title,options) {\n\tvar self = this,\n\t\tdirectory = options.directory || \"\",\n\t\textension = options.extension || \"\",\n\t\tfilepath;\n\t// Check if any of the pathFilters applies\n\tif(options.pathFilters && options.wiki) {\n\t\t$tw.utils.each(options.pathFilters,function(filter) {\n\t\t\tif(!filepath) {\n\t\t\t\tvar source = options.wiki.makeTiddlerIterator([title]),\n\t\t\t\t\tresult = options.wiki.filterTiddlers(filter,null,source);\n\t\t\t\tif(result.length > 0) {\n\t\t\t\t\tfilepath = result[0];\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\t// If not, generate a base pathname\n\tif(!filepath) {\n\t\tfilepath = title;\n\t\t// If the filepath already ends in the extension then remove it\n\t\tif(filepath.substring(filepath.length - extension.length) === extension) {\n\t\t\tfilepath = filepath.substring(0,filepath.length - extension.length);\n\t\t}\n\t\t// Remove any forward or backward slashes so we don't create directories\n\t\tfilepath = filepath.replace(/\\/|\\\\/g,\"_\");\n\t}\n\t// Don't let the filename start with a dot because such files are invisible on *nix\n\tfilepath = filepath.replace(/^\\./g,\"_\");\n\t// Remove any characters that can't be used in cross-platform filenames\n\tfilepath = $tw.utils.transliterate(filepath.replace(/<|>|\\:|\\\"|\\||\\?|\\*|\\^/g,\"_\"));\n\t// Truncate the filename if it is too long\n\tif(filepath.length > 200) {\n\t\tfilepath = filepath.substr(0,200);\n\t}\n\t// If the resulting filename is blank (eg because the title is just punctuation characters)\n\tif(!filepath) {\n\t\t// ...then just use the character codes of the title\n\t\tfilepath = \"\";\t\n\t\t$tw.utils.each(title.split(\"\"),function(char) {\n\t\t\tif(filepath) {\n\t\t\t\tfilepath += \"-\";\n\t\t\t}\n\t\t\tfilepath += char.charCodeAt(0).toString();\n\t\t});\n\t}\n\t// Add a uniquifier if the file already exists\n\tvar fullPath,\n\t\tcount = 0;\n\tdo {\n\t\tfullPath = path.resolve(directory,filepath + (count ? \"_\" + count : \"\") + extension);\n\t\tcount++;\n\t} while(fs.existsSync(fullPath));\n\t// Return the full path to the file\n\treturn fullPath;\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFile = function(tiddler,fileInfo,callback) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFile(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding,function(err) {\n\t\t\tif(err) {\n\t\t\t\treturn callback(err);\n\t\t\t}\n\t\t\tfs.writeFile(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\",callback);\n\t\t});\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFile(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\",callback);\n\t\t} else {\n\t\t\tfs.writeFile(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\",callback);\n\t\t}\n\t}\n};\n\n/*\nSave a tiddler to a file described by the fileInfo:\n\tfilepath: the absolute path to the file containing the tiddler\n\ttype: the type of the tiddler file (NOT the type of the tiddler)\n\thasMetaFile: true if the file also has a companion .meta file\n*/\nexports.saveTiddlerToFileSync = function(tiddler,fileInfo) {\n\t$tw.utils.createDirectory(path.dirname(fileInfo.filepath));\n\tif(fileInfo.hasMetaFile) {\n\t\t// Save the tiddler as a separate body and meta file\n\t\tvar typeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/plain\"] || {encoding: \"utf8\"};\n\t\tfs.writeFileSync(fileInfo.filepath,tiddler.fields.text,typeInfo.encoding);\n\t\tfs.writeFileSync(fileInfo.filepath + \".meta\",tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}),\"utf8\");\n\t} else {\n\t\t// Save the tiddler as a self contained templated file\n\t\tif(fileInfo.type === \"application/x-tiddler\") {\n\t\t\tfs.writeFileSync(fileInfo.filepath,tiddler.getFieldStringBlock({exclude: [\"text\",\"bag\"]}) + (!!tiddler.fields.text ? \"\\n\\n\" + tiddler.fields.text : \"\"),\"utf8\");\n\t\t} else {\n\t\t\tfs.writeFileSync(fileInfo.filepath,JSON.stringify([tiddler.getFieldStrings({exclude: [\"bag\"]})],null,$tw.config.preferences.jsonSpaces),\"utf8\");\n\t\t}\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils-node"
},
"$:/core/modules/utils/logger.js": {
"title": "$:/core/modules/utils/logger.js",
"text": "/*\\\ntitle: $:/core/modules/utils/logger.js\ntype: application/javascript\nmodule-type: utils\n\nA basic logging implementation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar ALERT_TAG = \"$:/tags/Alert\";\n\n/*\nMake a new logger\n*/\nfunction Logger(componentName,options) {\n\toptions = options || {};\n\tthis.componentName = componentName || \"\";\n\tthis.colour = options.colour || \"white\";\n\tthis.enable = \"enable\" in options ? options.enable : true;\n\tthis.save = \"save\" in options ? options.save : true;\n\tthis.saveLimit = options.saveLimit || 100 * 1024;\n\tthis.saveBufferLogger = this;\n\tthis.buffer = \"\";\n\tthis.alertCount = 0;\n}\n\nLogger.prototype.setSaveBuffer = function(logger) {\n\tthis.saveBufferLogger = logger;\n};\n\n/*\nLog a message\n*/\nLogger.prototype.log = function(/* args */) {\n\tvar self = this;\n\tif(this.enable) {\n\t\tif(this.saveBufferLogger.save) {\n\t\t\tthis.saveBufferLogger.buffer += $tw.utils.formatDateString(new Date(),\"YYYY MM DD 0hh:0mm:0ss.0XXX\") + \":\";\n\t\t\t$tw.utils.each(Array.prototype.slice.call(arguments,0),function(arg,index) {\n\t\t\t\tself.saveBufferLogger.buffer += \" \" + arg;\n\t\t\t});\n\t\t\tthis.saveBufferLogger.buffer += \"\\n\";\n\t\t\tthis.saveBufferLogger.buffer = this.saveBufferLogger.buffer.slice(-this.saveBufferLogger.saveLimit);\t\t\t\n\t\t}\n\t\tif(console !== undefined && console.log !== undefined) {\n\t\t\treturn Function.apply.call(console.log, console, [$tw.utils.terminalColour(this.colour),this.componentName + \":\"].concat(Array.prototype.slice.call(arguments,0)).concat($tw.utils.terminalColour()));\n\t\t}\n\t} \n};\n\n/*\nRead the message buffer\n*/\nLogger.prototype.getBuffer = function() {\n\treturn this.saveBufferLogger.buffer;\n};\n\n/*\nLog a structure as a table\n*/\nLogger.prototype.table = function(value) {\n\t(console.table || console.log)(value);\n};\n\n/*\nAlert a message\n*/\nLogger.prototype.alert = function(/* args */) {\n\tif(this.enable) {\n\t\t// Prepare the text of the alert\n\t\tvar text = Array.prototype.join.call(arguments,\" \");\n\t\t// Create alert tiddlers in the browser\n\t\tif($tw.browser) {\n\t\t\t// Check if there is an existing alert with the same text and the same component\n\t\t\tvar existingAlerts = $tw.wiki.getTiddlersWithTag(ALERT_TAG),\n\t\t\t\talertFields,\n\t\t\t\texistingCount,\n\t\t\t\tself = this;\n\t\t\t$tw.utils.each(existingAlerts,function(title) {\n\t\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\t\tif(tiddler.fields.text === text && tiddler.fields.component === self.componentName && tiddler.fields.modified && (!alertFields || tiddler.fields.modified < alertFields.modified)) {\n\t\t\t\t\t\talertFields = $tw.utils.extend({},tiddler.fields);\n\t\t\t\t}\n\t\t\t});\n\t\t\tif(alertFields) {\n\t\t\t\texistingCount = alertFields.count || 1;\n\t\t\t} else {\n\t\t\t\talertFields = {\n\t\t\t\t\ttitle: $tw.wiki.generateNewTitle(\"$:/temp/alerts/alert\",{prefix: \"\"}),\n\t\t\t\t\ttext: text,\n\t\t\t\t\ttags: [ALERT_TAG],\n\t\t\t\t\tcomponent: this.componentName\n\t\t\t\t};\n\t\t\t\texistingCount = 0;\n\t\t\t\tthis.alertCount += 1;\n\t\t\t}\n\t\t\talertFields.modified = new Date();\n\t\t\tif(++existingCount > 1) {\n\t\t\t\talertFields.count = existingCount;\n\t\t\t} else {\n\t\t\t\talertFields.count = undefined;\n\t\t\t}\n\t\t\t$tw.wiki.addTiddler(new $tw.Tiddler(alertFields));\n\t\t\t// Log the alert as well\n\t\t\tthis.log.apply(this,Array.prototype.slice.call(arguments,0));\n\t\t} else {\n\t\t\t// Print an orange message to the console if not in the browser\n\t\t\tconsole.error(\"\\x1b[1;33m\" + text + \"\\x1b[0m\");\n\t\t}\t\t\n\t}\n};\n\n/*\nClear outstanding alerts\n*/\nLogger.prototype.clearAlerts = function() {\n\tvar self = this;\n\tif($tw.browser && this.alertCount > 0) {\n\t\t$tw.utils.each($tw.wiki.getTiddlersWithTag(ALERT_TAG),function(title) {\n\t\t\tvar tiddler = $tw.wiki.getTiddler(title);\n\t\t\tif(tiddler.fields.component === self.componentName) {\n\t\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t\t}\n\t\t});\n\t\tthis.alertCount = 0;\n\t}\n};\n\nexports.Logger = Logger;\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/parsetree.js": {
"title": "$:/core/modules/utils/parsetree.js",
"text": "/*\\\ntitle: $:/core/modules/utils/parsetree.js\ntype: application/javascript\nmodule-type: utils\n\nParse tree utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.addAttributeToParseTreeNode = function(node,name,value) {\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[name] = {type: \"string\", value: value};\n};\n\nexports.getAttributeValueFromParseTreeNode = function(node,name,defaultValue) {\n\tif(node.attributes && node.attributes[name] && node.attributes[name].value !== undefined) {\n\t\treturn node.attributes[name].value;\n\t}\n\treturn defaultValue;\n};\n\nexports.addClassToParseTreeNode = function(node,classString) {\n\tvar classes = [];\n\tnode.attributes = node.attributes || {};\n\tnode.attributes[\"class\"] = node.attributes[\"class\"] || {type: \"string\", value: \"\"};\n\tif(node.attributes[\"class\"].type === \"string\") {\n\t\tif(node.attributes[\"class\"].value !== \"\") {\n\t\t\tclasses = node.attributes[\"class\"].value.split(\" \");\n\t\t}\n\t\tif(classString !== \"\") {\n\t\t\t$tw.utils.pushTop(classes,classString.split(\" \"));\n\t\t}\n\t\tnode.attributes[\"class\"].value = classes.join(\" \");\n\t}\n};\n\nexports.addStyleToParseTreeNode = function(node,name,value) {\n\t\tnode.attributes = node.attributes || {};\n\t\tnode.attributes.style = node.attributes.style || {type: \"string\", value: \"\"};\n\t\tif(node.attributes.style.type === \"string\") {\n\t\t\tnode.attributes.style.value += name + \":\" + value + \";\";\n\t\t}\n};\n\nexports.findParseTreeNode = function(nodeArray,search) {\n\tfor(var t=0; t<nodeArray.length; t++) {\n\t\tif(nodeArray[t].type === search.type && nodeArray[t].tag === search.tag) {\n\t\t\treturn nodeArray[t];\n\t\t}\n\t}\n\treturn undefined;\n};\n\n/*\nHelper to get the text of a parse tree node or array of nodes\n*/\nexports.getParseTreeText = function getParseTreeText(tree) {\n\tvar output = [];\n\tif($tw.utils.isArray(tree)) {\n\t\t$tw.utils.each(tree,function(node) {\n\t\t\toutput.push(getParseTreeText(node));\n\t\t});\n\t} else {\n\t\tif(tree.type === \"text\") {\n\t\t\toutput.push(tree.text);\n\t\t}\n\t\tif(tree.children) {\n\t\t\treturn getParseTreeText(tree.children);\n\t\t}\n\t}\n\treturn output.join(\"\");\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/performance.js": {
"title": "$:/core/modules/utils/performance.js",
"text": "/*\\\ntitle: $:/core/modules/utils/performance.js\ntype: application/javascript\nmodule-type: global\n\nPerformance measurement.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Performance(enabled) {\n\tthis.enabled = !!enabled;\n\tthis.measures = {}; // Hashmap by measurement name of {time:, invocations:}\n\tthis.logger = new $tw.utils.Logger(\"performance\");\n\tthis.showGreeting();\n}\n\nPerformance.prototype.showGreeting = function() {\n\tif($tw.browser) {\n\t\tthis.logger.log(\"Execute $tw.perf.log(); to see filter execution timings\");\t\t\n\t}\n};\n\n/*\nWrap performance reporting around a top level function\n*/\nPerformance.prototype.report = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tself.logger.log(name + \": \" + $tw.utils.timer(startTime).toFixed(2) + \"ms\");\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nPerformance.prototype.log = function() {\n\tvar self = this,\n\t\ttotalTime = 0,\n\t\torderedMeasures = Object.keys(this.measures).sort(function(a,b) {\n\t\t\tif(self.measures[a].time > self.measures[b].time) {\n\t\t\t\treturn -1;\n\t\t\t} else if (self.measures[a].time < self.measures[b].time) {\n\t\t\t\treturn + 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t});\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\ttotalTime += self.measures[name].time;\n\t});\n\tvar results = []\n\t$tw.utils.each(orderedMeasures,function(name) {\n\t\tvar measure = self.measures[name];\n\t\tresults.push({name: name,invocations: measure.invocations, avgTime: measure.time / measure.invocations, totalTime: measure.time, percentTime: (measure.time / totalTime) * 100})\n\t});\n\tself.logger.table(results);\n};\n\n/*\nWrap performance measurements around a subfunction\n*/\nPerformance.prototype.measure = function(name,fn) {\n\tvar self = this;\n\tif(this.enabled) {\n\t\treturn function() {\n\t\t\tvar startTime = $tw.utils.timer(),\n\t\t\t\tresult = fn.apply(this,arguments);\n\t\t\tif(!(name in self.measures)) {\n\t\t\t\tself.measures[name] = {time: 0, invocations: 0};\n\t\t\t}\n\t\t\tself.measures[name].time += $tw.utils.timer(startTime);\n\t\t\tself.measures[name].invocations++;\n\t\t\treturn result;\n\t\t};\n\t} else {\n\t\treturn fn;\n\t}\n};\n\nexports.Performance = Performance;\n\n})();\n",
"type": "application/javascript",
"module-type": "global"
},
"$:/core/modules/utils/pluginmaker.js": {
"title": "$:/core/modules/utils/pluginmaker.js",
"text": "/*\\\ntitle: $:/core/modules/utils/pluginmaker.js\ntype: application/javascript\nmodule-type: utils\n\nA quick and dirty way to pack up plugins within the browser.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRepack a plugin, and then delete any non-shadow payload tiddlers\n*/\nexports.repackPlugin = function(title,additionalTiddlers,excludeTiddlers) {\n\tadditionalTiddlers = additionalTiddlers || [];\n\texcludeTiddlers = excludeTiddlers || [];\n\t// Get the plugin tiddler\n\tvar pluginTiddler = $tw.wiki.getTiddler(title);\n\tif(!pluginTiddler) {\n\t\tthrow \"No such tiddler as \" + title;\n\t}\n\t// Extract the JSON\n\tvar jsonPluginTiddler;\n\ttry {\n\t\tjsonPluginTiddler = JSON.parse(pluginTiddler.fields.text);\n\t} catch(e) {\n\t\tthrow \"Cannot parse plugin tiddler \" + title + \"\\n\" + $tw.language.getString(\"Error/Caption\") + \": \" + e;\n\t}\n\t// Get the list of tiddlers\n\tvar tiddlers = Object.keys(jsonPluginTiddler.tiddlers);\n\t// Add the additional tiddlers\n\t$tw.utils.pushTop(tiddlers,additionalTiddlers);\n\t// Remove any excluded tiddlers\n\tfor(var t=tiddlers.length-1; t>=0; t--) {\n\t\tif(excludeTiddlers.indexOf(tiddlers[t]) !== -1) {\n\t\t\ttiddlers.splice(t,1);\n\t\t}\n\t}\n\t// Pack up the tiddlers into a block of JSON\n\tvar plugins = {};\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = $tw.wiki.getTiddler(title),\n\t\t\tfields = {};\n\t\t$tw.utils.each(tiddler.fields,function (value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\tplugins[title] = fields;\n\t});\n\t// Retrieve and bump the version number\n\tvar pluginVersion = $tw.utils.parseVersion(pluginTiddler.getFieldString(\"version\") || \"0.0.0\") || {\n\t\t\tmajor: \"0\",\n\t\t\tminor: \"0\",\n\t\t\tpatch: \"0\"\n\t\t};\n\tpluginVersion.patch++;\n\tvar version = pluginVersion.major + \".\" + pluginVersion.minor + \".\" + pluginVersion.patch;\n\tif(pluginVersion.prerelease) {\n\t\tversion += \"-\" + pluginVersion.prerelease;\n\t}\n\tif(pluginVersion.build) {\n\t\tversion += \"+\" + pluginVersion.build;\n\t}\n\t// Save the tiddler\n\t$tw.wiki.addTiddler(new $tw.Tiddler(pluginTiddler,{text: JSON.stringify({tiddlers: plugins},null,4), version: version}));\n\t// Delete any non-shadow constituent tiddlers\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tif($tw.wiki.tiddlerExists(title)) {\n\t\t\t$tw.wiki.deleteTiddler(title);\n\t\t}\n\t});\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t// Return a heartwarming confirmation\n\treturn \"Plugin \" + title + \" successfully saved\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/transliterate.js": {
"title": "$:/core/modules/utils/transliterate.js",
"text": "/*\\\ntitle: $:/core/modules/utils/transliterate.js\ntype: application/javascript\nmodule-type: utils\n\nTransliteration static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nTransliterate string to ASCII\n\n(Some pairs taken from http://semplicewebsites.com/removing-accents-javascript)\n*/\nexports.transliterationPairs = {\n\t\"Á\":\"A\",\n\t\"Ă\":\"A\",\n\t\"Ắ\":\"A\",\n\t\"Ặ\":\"A\",\n\t\"Ằ\":\"A\",\n\t\"Ẳ\":\"A\",\n\t\"Ẵ\":\"A\",\n\t\"Ǎ\":\"A\",\n\t\"Â\":\"A\",\n\t\"Ấ\":\"A\",\n\t\"Ậ\":\"A\",\n\t\"Ầ\":\"A\",\n\t\"Ẩ\":\"A\",\n\t\"Ẫ\":\"A\",\n\t\"Ä\":\"A\",\n\t\"Ǟ\":\"A\",\n\t\"Ȧ\":\"A\",\n\t\"Ǡ\":\"A\",\n\t\"Ạ\":\"A\",\n\t\"Ȁ\":\"A\",\n\t\"À\":\"A\",\n\t\"Ả\":\"A\",\n\t\"Ȃ\":\"A\",\n\t\"Ā\":\"A\",\n\t\"Ą\":\"A\",\n\t\"Å\":\"A\",\n\t\"Ǻ\":\"A\",\n\t\"Ḁ\":\"A\",\n\t\"Ⱥ\":\"A\",\n\t\"Ã\":\"A\",\n\t\"Ꜳ\":\"AA\",\n\t\"Æ\":\"AE\",\n\t\"Ǽ\":\"AE\",\n\t\"Ǣ\":\"AE\",\n\t\"Ꜵ\":\"AO\",\n\t\"Ꜷ\":\"AU\",\n\t\"Ꜹ\":\"AV\",\n\t\"Ꜻ\":\"AV\",\n\t\"Ꜽ\":\"AY\",\n\t\"Ḃ\":\"B\",\n\t\"Ḅ\":\"B\",\n\t\"Ɓ\":\"B\",\n\t\"Ḇ\":\"B\",\n\t\"Ƀ\":\"B\",\n\t\"Ƃ\":\"B\",\n\t\"Ć\":\"C\",\n\t\"Č\":\"C\",\n\t\"Ç\":\"C\",\n\t\"Ḉ\":\"C\",\n\t\"Ĉ\":\"C\",\n\t\"Ċ\":\"C\",\n\t\"Ƈ\":\"C\",\n\t\"Ȼ\":\"C\",\n\t\"Ď\":\"D\",\n\t\"Ḑ\":\"D\",\n\t\"Ḓ\":\"D\",\n\t\"Ḋ\":\"D\",\n\t\"Ḍ\":\"D\",\n\t\"Ɗ\":\"D\",\n\t\"Ḏ\":\"D\",\n\t\"Dz\":\"D\",\n\t\"Dž\":\"D\",\n\t\"Đ\":\"D\",\n\t\"Ƌ\":\"D\",\n\t\"DZ\":\"DZ\",\n\t\"DŽ\":\"DZ\",\n\t\"É\":\"E\",\n\t\"Ĕ\":\"E\",\n\t\"Ě\":\"E\",\n\t\"Ȩ\":\"E\",\n\t\"Ḝ\":\"E\",\n\t\"Ê\":\"E\",\n\t\"Ế\":\"E\",\n\t\"Ệ\":\"E\",\n\t\"Ề\":\"E\",\n\t\"Ể\":\"E\",\n\t\"Ễ\":\"E\",\n\t\"Ḙ\":\"E\",\n\t\"Ë\":\"E\",\n\t\"Ė\":\"E\",\n\t\"Ẹ\":\"E\",\n\t\"Ȅ\":\"E\",\n\t\"È\":\"E\",\n\t\"Ẻ\":\"E\",\n\t\"Ȇ\":\"E\",\n\t\"Ē\":\"E\",\n\t\"Ḗ\":\"E\",\n\t\"Ḕ\":\"E\",\n\t\"Ę\":\"E\",\n\t\"Ɇ\":\"E\",\n\t\"Ẽ\":\"E\",\n\t\"Ḛ\":\"E\",\n\t\"Ꝫ\":\"ET\",\n\t\"Ḟ\":\"F\",\n\t\"Ƒ\":\"F\",\n\t\"Ǵ\":\"G\",\n\t\"Ğ\":\"G\",\n\t\"Ǧ\":\"G\",\n\t\"Ģ\":\"G\",\n\t\"Ĝ\":\"G\",\n\t\"Ġ\":\"G\",\n\t\"Ɠ\":\"G\",\n\t\"Ḡ\":\"G\",\n\t\"Ǥ\":\"G\",\n\t\"Ḫ\":\"H\",\n\t\"Ȟ\":\"H\",\n\t\"Ḩ\":\"H\",\n\t\"Ĥ\":\"H\",\n\t\"Ⱨ\":\"H\",\n\t\"Ḧ\":\"H\",\n\t\"Ḣ\":\"H\",\n\t\"Ḥ\":\"H\",\n\t\"Ħ\":\"H\",\n\t\"Í\":\"I\",\n\t\"Ĭ\":\"I\",\n\t\"Ǐ\":\"I\",\n\t\"Î\":\"I\",\n\t\"Ï\":\"I\",\n\t\"Ḯ\":\"I\",\n\t\"İ\":\"I\",\n\t\"Ị\":\"I\",\n\t\"Ȉ\":\"I\",\n\t\"Ì\":\"I\",\n\t\"Ỉ\":\"I\",\n\t\"Ȋ\":\"I\",\n\t\"Ī\":\"I\",\n\t\"Į\":\"I\",\n\t\"Ɨ\":\"I\",\n\t\"Ĩ\":\"I\",\n\t\"Ḭ\":\"I\",\n\t\"Ꝺ\":\"D\",\n\t\"Ꝼ\":\"F\",\n\t\"Ᵹ\":\"G\",\n\t\"Ꞃ\":\"R\",\n\t\"Ꞅ\":\"S\",\n\t\"Ꞇ\":\"T\",\n\t\"Ꝭ\":\"IS\",\n\t\"Ĵ\":\"J\",\n\t\"Ɉ\":\"J\",\n\t\"Ḱ\":\"K\",\n\t\"Ǩ\":\"K\",\n\t\"Ķ\":\"K\",\n\t\"Ⱪ\":\"K\",\n\t\"Ꝃ\":\"K\",\n\t\"Ḳ\":\"K\",\n\t\"Ƙ\":\"K\",\n\t\"Ḵ\":\"K\",\n\t\"Ꝁ\":\"K\",\n\t\"Ꝅ\":\"K\",\n\t\"Ĺ\":\"L\",\n\t\"Ƚ\":\"L\",\n\t\"Ľ\":\"L\",\n\t\"Ļ\":\"L\",\n\t\"Ḽ\":\"L\",\n\t\"Ḷ\":\"L\",\n\t\"Ḹ\":\"L\",\n\t\"Ⱡ\":\"L\",\n\t\"Ꝉ\":\"L\",\n\t\"Ḻ\":\"L\",\n\t\"Ŀ\":\"L\",\n\t\"Ɫ\":\"L\",\n\t\"Lj\":\"L\",\n\t\"Ł\":\"L\",\n\t\"LJ\":\"LJ\",\n\t\"Ḿ\":\"M\",\n\t\"Ṁ\":\"M\",\n\t\"Ṃ\":\"M\",\n\t\"Ɱ\":\"M\",\n\t\"Ń\":\"N\",\n\t\"Ň\":\"N\",\n\t\"Ņ\":\"N\",\n\t\"Ṋ\":\"N\",\n\t\"Ṅ\":\"N\",\n\t\"Ṇ\":\"N\",\n\t\"Ǹ\":\"N\",\n\t\"Ɲ\":\"N\",\n\t\"Ṉ\":\"N\",\n\t\"Ƞ\":\"N\",\n\t\"Nj\":\"N\",\n\t\"Ñ\":\"N\",\n\t\"NJ\":\"NJ\",\n\t\"Ó\":\"O\",\n\t\"Ŏ\":\"O\",\n\t\"Ǒ\":\"O\",\n\t\"Ô\":\"O\",\n\t\"Ố\":\"O\",\n\t\"Ộ\":\"O\",\n\t\"Ồ\":\"O\",\n\t\"Ổ\":\"O\",\n\t\"Ỗ\":\"O\",\n\t\"Ö\":\"O\",\n\t\"Ȫ\":\"O\",\n\t\"Ȯ\":\"O\",\n\t\"Ȱ\":\"O\",\n\t\"Ọ\":\"O\",\n\t\"Ő\":\"O\",\n\t\"Ȍ\":\"O\",\n\t\"Ò\":\"O\",\n\t\"Ỏ\":\"O\",\n\t\"Ơ\":\"O\",\n\t\"Ớ\":\"O\",\n\t\"Ợ\":\"O\",\n\t\"Ờ\":\"O\",\n\t\"Ở\":\"O\",\n\t\"Ỡ\":\"O\",\n\t\"Ȏ\":\"O\",\n\t\"Ꝋ\":\"O\",\n\t\"Ꝍ\":\"O\",\n\t\"Ō\":\"O\",\n\t\"Ṓ\":\"O\",\n\t\"Ṑ\":\"O\",\n\t\"Ɵ\":\"O\",\n\t\"Ǫ\":\"O\",\n\t\"Ǭ\":\"O\",\n\t\"Ø\":\"O\",\n\t\"Ǿ\":\"O\",\n\t\"Õ\":\"O\",\n\t\"Ṍ\":\"O\",\n\t\"Ṏ\":\"O\",\n\t\"Ȭ\":\"O\",\n\t\"Ƣ\":\"OI\",\n\t\"Ꝏ\":\"OO\",\n\t\"Ɛ\":\"E\",\n\t\"Ɔ\":\"O\",\n\t\"Ȣ\":\"OU\",\n\t\"Ṕ\":\"P\",\n\t\"Ṗ\":\"P\",\n\t\"Ꝓ\":\"P\",\n\t\"Ƥ\":\"P\",\n\t\"Ꝕ\":\"P\",\n\t\"Ᵽ\":\"P\",\n\t\"Ꝑ\":\"P\",\n\t\"Ꝙ\":\"Q\",\n\t\"Ꝗ\":\"Q\",\n\t\"Ŕ\":\"R\",\n\t\"Ř\":\"R\",\n\t\"Ŗ\":\"R\",\n\t\"Ṙ\":\"R\",\n\t\"Ṛ\":\"R\",\n\t\"Ṝ\":\"R\",\n\t\"Ȑ\":\"R\",\n\t\"Ȓ\":\"R\",\n\t\"Ṟ\":\"R\",\n\t\"Ɍ\":\"R\",\n\t\"Ɽ\":\"R\",\n\t\"Ꜿ\":\"C\",\n\t\"Ǝ\":\"E\",\n\t\"Ś\":\"S\",\n\t\"Ṥ\":\"S\",\n\t\"Š\":\"S\",\n\t\"Ṧ\":\"S\",\n\t\"Ş\":\"S\",\n\t\"Ŝ\":\"S\",\n\t\"Ș\":\"S\",\n\t\"Ṡ\":\"S\",\n\t\"Ṣ\":\"S\",\n\t\"Ṩ\":\"S\",\n\t\"Ť\":\"T\",\n\t\"Ţ\":\"T\",\n\t\"Ṱ\":\"T\",\n\t\"Ț\":\"T\",\n\t\"Ⱦ\":\"T\",\n\t\"Ṫ\":\"T\",\n\t\"Ṭ\":\"T\",\n\t\"Ƭ\":\"T\",\n\t\"Ṯ\":\"T\",\n\t\"Ʈ\":\"T\",\n\t\"Ŧ\":\"T\",\n\t\"Ɐ\":\"A\",\n\t\"Ꞁ\":\"L\",\n\t\"Ɯ\":\"M\",\n\t\"Ʌ\":\"V\",\n\t\"Ꜩ\":\"TZ\",\n\t\"Ú\":\"U\",\n\t\"Ŭ\":\"U\",\n\t\"Ǔ\":\"U\",\n\t\"Û\":\"U\",\n\t\"Ṷ\":\"U\",\n\t\"Ü\":\"U\",\n\t\"Ǘ\":\"U\",\n\t\"Ǚ\":\"U\",\n\t\"Ǜ\":\"U\",\n\t\"Ǖ\":\"U\",\n\t\"Ṳ\":\"U\",\n\t\"Ụ\":\"U\",\n\t\"Ű\":\"U\",\n\t\"Ȕ\":\"U\",\n\t\"Ù\":\"U\",\n\t\"Ủ\":\"U\",\n\t\"Ư\":\"U\",\n\t\"Ứ\":\"U\",\n\t\"Ự\":\"U\",\n\t\"Ừ\":\"U\",\n\t\"Ử\":\"U\",\n\t\"Ữ\":\"U\",\n\t\"Ȗ\":\"U\",\n\t\"Ū\":\"U\",\n\t\"Ṻ\":\"U\",\n\t\"Ų\":\"U\",\n\t\"Ů\":\"U\",\n\t\"Ũ\":\"U\",\n\t\"Ṹ\":\"U\",\n\t\"Ṵ\":\"U\",\n\t\"Ꝟ\":\"V\",\n\t\"Ṿ\":\"V\",\n\t\"Ʋ\":\"V\",\n\t\"Ṽ\":\"V\",\n\t\"Ꝡ\":\"VY\",\n\t\"Ẃ\":\"W\",\n\t\"Ŵ\":\"W\",\n\t\"Ẅ\":\"W\",\n\t\"Ẇ\":\"W\",\n\t\"Ẉ\":\"W\",\n\t\"Ẁ\":\"W\",\n\t\"Ⱳ\":\"W\",\n\t\"Ẍ\":\"X\",\n\t\"Ẋ\":\"X\",\n\t\"Ý\":\"Y\",\n\t\"Ŷ\":\"Y\",\n\t\"Ÿ\":\"Y\",\n\t\"Ẏ\":\"Y\",\n\t\"Ỵ\":\"Y\",\n\t\"Ỳ\":\"Y\",\n\t\"Ƴ\":\"Y\",\n\t\"Ỷ\":\"Y\",\n\t\"Ỿ\":\"Y\",\n\t\"Ȳ\":\"Y\",\n\t\"Ɏ\":\"Y\",\n\t\"Ỹ\":\"Y\",\n\t\"Ź\":\"Z\",\n\t\"Ž\":\"Z\",\n\t\"Ẑ\":\"Z\",\n\t\"Ⱬ\":\"Z\",\n\t\"Ż\":\"Z\",\n\t\"Ẓ\":\"Z\",\n\t\"Ȥ\":\"Z\",\n\t\"Ẕ\":\"Z\",\n\t\"Ƶ\":\"Z\",\n\t\"IJ\":\"IJ\",\n\t\"Œ\":\"OE\",\n\t\"ᴀ\":\"A\",\n\t\"ᴁ\":\"AE\",\n\t\"ʙ\":\"B\",\n\t\"ᴃ\":\"B\",\n\t\"ᴄ\":\"C\",\n\t\"ᴅ\":\"D\",\n\t\"ᴇ\":\"E\",\n\t\"ꜰ\":\"F\",\n\t\"ɢ\":\"G\",\n\t\"ʛ\":\"G\",\n\t\"ʜ\":\"H\",\n\t\"ɪ\":\"I\",\n\t\"ʁ\":\"R\",\n\t\"ᴊ\":\"J\",\n\t\"ᴋ\":\"K\",\n\t\"ʟ\":\"L\",\n\t\"ᴌ\":\"L\",\n\t\"ᴍ\":\"M\",\n\t\"ɴ\":\"N\",\n\t\"ᴏ\":\"O\",\n\t\"ɶ\":\"OE\",\n\t\"ᴐ\":\"O\",\n\t\"ᴕ\":\"OU\",\n\t\"ᴘ\":\"P\",\n\t\"ʀ\":\"R\",\n\t\"ᴎ\":\"N\",\n\t\"ᴙ\":\"R\",\n\t\"ꜱ\":\"S\",\n\t\"ᴛ\":\"T\",\n\t\"ⱻ\":\"E\",\n\t\"ᴚ\":\"R\",\n\t\"ᴜ\":\"U\",\n\t\"ᴠ\":\"V\",\n\t\"ᴡ\":\"W\",\n\t\"ʏ\":\"Y\",\n\t\"ᴢ\":\"Z\",\n\t\"á\":\"a\",\n\t\"ă\":\"a\",\n\t\"ắ\":\"a\",\n\t\"ặ\":\"a\",\n\t\"ằ\":\"a\",\n\t\"ẳ\":\"a\",\n\t\"ẵ\":\"a\",\n\t\"ǎ\":\"a\",\n\t\"â\":\"a\",\n\t\"ấ\":\"a\",\n\t\"ậ\":\"a\",\n\t\"ầ\":\"a\",\n\t\"ẩ\":\"a\",\n\t\"ẫ\":\"a\",\n\t\"ä\":\"a\",\n\t\"ǟ\":\"a\",\n\t\"ȧ\":\"a\",\n\t\"ǡ\":\"a\",\n\t\"ạ\":\"a\",\n\t\"ȁ\":\"a\",\n\t\"à\":\"a\",\n\t\"ả\":\"a\",\n\t\"ȃ\":\"a\",\n\t\"ā\":\"a\",\n\t\"ą\":\"a\",\n\t\"ᶏ\":\"a\",\n\t\"ẚ\":\"a\",\n\t\"å\":\"a\",\n\t\"ǻ\":\"a\",\n\t\"ḁ\":\"a\",\n\t\"ⱥ\":\"a\",\n\t\"ã\":\"a\",\n\t\"ꜳ\":\"aa\",\n\t\"æ\":\"ae\",\n\t\"ǽ\":\"ae\",\n\t\"ǣ\":\"ae\",\n\t\"ꜵ\":\"ao\",\n\t\"ꜷ\":\"au\",\n\t\"ꜹ\":\"av\",\n\t\"ꜻ\":\"av\",\n\t\"ꜽ\":\"ay\",\n\t\"ḃ\":\"b\",\n\t\"ḅ\":\"b\",\n\t\"ɓ\":\"b\",\n\t\"ḇ\":\"b\",\n\t\"ᵬ\":\"b\",\n\t\"ᶀ\":\"b\",\n\t\"ƀ\":\"b\",\n\t\"ƃ\":\"b\",\n\t\"ɵ\":\"o\",\n\t\"ć\":\"c\",\n\t\"č\":\"c\",\n\t\"ç\":\"c\",\n\t\"ḉ\":\"c\",\n\t\"ĉ\":\"c\",\n\t\"ɕ\":\"c\",\n\t\"ċ\":\"c\",\n\t\"ƈ\":\"c\",\n\t\"ȼ\":\"c\",\n\t\"ď\":\"d\",\n\t\"ḑ\":\"d\",\n\t\"ḓ\":\"d\",\n\t\"ȡ\":\"d\",\n\t\"ḋ\":\"d\",\n\t\"ḍ\":\"d\",\n\t\"ɗ\":\"d\",\n\t\"ᶑ\":\"d\",\n\t\"ḏ\":\"d\",\n\t\"ᵭ\":\"d\",\n\t\"ᶁ\":\"d\",\n\t\"đ\":\"d\",\n\t\"ɖ\":\"d\",\n\t\"ƌ\":\"d\",\n\t\"ı\":\"i\",\n\t\"ȷ\":\"j\",\n\t\"ɟ\":\"j\",\n\t\"ʄ\":\"j\",\n\t\"dz\":\"dz\",\n\t\"dž\":\"dz\",\n\t\"é\":\"e\",\n\t\"ĕ\":\"e\",\n\t\"ě\":\"e\",\n\t\"ȩ\":\"e\",\n\t\"ḝ\":\"e\",\n\t\"ê\":\"e\",\n\t\"ế\":\"e\",\n\t\"ệ\":\"e\",\n\t\"ề\":\"e\",\n\t\"ể\":\"e\",\n\t\"ễ\":\"e\",\n\t\"ḙ\":\"e\",\n\t\"ë\":\"e\",\n\t\"ė\":\"e\",\n\t\"ẹ\":\"e\",\n\t\"ȅ\":\"e\",\n\t\"è\":\"e\",\n\t\"ẻ\":\"e\",\n\t\"ȇ\":\"e\",\n\t\"ē\":\"e\",\n\t\"ḗ\":\"e\",\n\t\"ḕ\":\"e\",\n\t\"ⱸ\":\"e\",\n\t\"ę\":\"e\",\n\t\"ᶒ\":\"e\",\n\t\"ɇ\":\"e\",\n\t\"ẽ\":\"e\",\n\t\"ḛ\":\"e\",\n\t\"ꝫ\":\"et\",\n\t\"ḟ\":\"f\",\n\t\"ƒ\":\"f\",\n\t\"ᵮ\":\"f\",\n\t\"ᶂ\":\"f\",\n\t\"ǵ\":\"g\",\n\t\"ğ\":\"g\",\n\t\"ǧ\":\"g\",\n\t\"ģ\":\"g\",\n\t\"ĝ\":\"g\",\n\t\"ġ\":\"g\",\n\t\"ɠ\":\"g\",\n\t\"ḡ\":\"g\",\n\t\"ᶃ\":\"g\",\n\t\"ǥ\":\"g\",\n\t\"ḫ\":\"h\",\n\t\"ȟ\":\"h\",\n\t\"ḩ\":\"h\",\n\t\"ĥ\":\"h\",\n\t\"ⱨ\":\"h\",\n\t\"ḧ\":\"h\",\n\t\"ḣ\":\"h\",\n\t\"ḥ\":\"h\",\n\t\"ɦ\":\"h\",\n\t\"ẖ\":\"h\",\n\t\"ħ\":\"h\",\n\t\"ƕ\":\"hv\",\n\t\"í\":\"i\",\n\t\"ĭ\":\"i\",\n\t\"ǐ\":\"i\",\n\t\"î\":\"i\",\n\t\"ï\":\"i\",\n\t\"ḯ\":\"i\",\n\t\"ị\":\"i\",\n\t\"ȉ\":\"i\",\n\t\"ì\":\"i\",\n\t\"ỉ\":\"i\",\n\t\"ȋ\":\"i\",\n\t\"ī\":\"i\",\n\t\"į\":\"i\",\n\t\"ᶖ\":\"i\",\n\t\"ɨ\":\"i\",\n\t\"ĩ\":\"i\",\n\t\"ḭ\":\"i\",\n\t\"ꝺ\":\"d\",\n\t\"ꝼ\":\"f\",\n\t\"ᵹ\":\"g\",\n\t\"ꞃ\":\"r\",\n\t\"ꞅ\":\"s\",\n\t\"ꞇ\":\"t\",\n\t\"ꝭ\":\"is\",\n\t\"ǰ\":\"j\",\n\t\"ĵ\":\"j\",\n\t\"ʝ\":\"j\",\n\t\"ɉ\":\"j\",\n\t\"ḱ\":\"k\",\n\t\"ǩ\":\"k\",\n\t\"ķ\":\"k\",\n\t\"ⱪ\":\"k\",\n\t\"ꝃ\":\"k\",\n\t\"ḳ\":\"k\",\n\t\"ƙ\":\"k\",\n\t\"ḵ\":\"k\",\n\t\"ᶄ\":\"k\",\n\t\"ꝁ\":\"k\",\n\t\"ꝅ\":\"k\",\n\t\"ĺ\":\"l\",\n\t\"ƚ\":\"l\",\n\t\"ɬ\":\"l\",\n\t\"ľ\":\"l\",\n\t\"ļ\":\"l\",\n\t\"ḽ\":\"l\",\n\t\"ȴ\":\"l\",\n\t\"ḷ\":\"l\",\n\t\"ḹ\":\"l\",\n\t\"ⱡ\":\"l\",\n\t\"ꝉ\":\"l\",\n\t\"ḻ\":\"l\",\n\t\"ŀ\":\"l\",\n\t\"ɫ\":\"l\",\n\t\"ᶅ\":\"l\",\n\t\"ɭ\":\"l\",\n\t\"ł\":\"l\",\n\t\"lj\":\"lj\",\n\t\"ſ\":\"s\",\n\t\"ẜ\":\"s\",\n\t\"ẛ\":\"s\",\n\t\"ẝ\":\"s\",\n\t\"ḿ\":\"m\",\n\t\"ṁ\":\"m\",\n\t\"ṃ\":\"m\",\n\t\"ɱ\":\"m\",\n\t\"ᵯ\":\"m\",\n\t\"ᶆ\":\"m\",\n\t\"ń\":\"n\",\n\t\"ň\":\"n\",\n\t\"ņ\":\"n\",\n\t\"ṋ\":\"n\",\n\t\"ȵ\":\"n\",\n\t\"ṅ\":\"n\",\n\t\"ṇ\":\"n\",\n\t\"ǹ\":\"n\",\n\t\"ɲ\":\"n\",\n\t\"ṉ\":\"n\",\n\t\"ƞ\":\"n\",\n\t\"ᵰ\":\"n\",\n\t\"ᶇ\":\"n\",\n\t\"ɳ\":\"n\",\n\t\"ñ\":\"n\",\n\t\"nj\":\"nj\",\n\t\"ó\":\"o\",\n\t\"ŏ\":\"o\",\n\t\"ǒ\":\"o\",\n\t\"ô\":\"o\",\n\t\"ố\":\"o\",\n\t\"ộ\":\"o\",\n\t\"ồ\":\"o\",\n\t\"ổ\":\"o\",\n\t\"ỗ\":\"o\",\n\t\"ö\":\"o\",\n\t\"ȫ\":\"o\",\n\t\"ȯ\":\"o\",\n\t\"ȱ\":\"o\",\n\t\"ọ\":\"o\",\n\t\"ő\":\"o\",\n\t\"ȍ\":\"o\",\n\t\"ò\":\"o\",\n\t\"ỏ\":\"o\",\n\t\"ơ\":\"o\",\n\t\"ớ\":\"o\",\n\t\"ợ\":\"o\",\n\t\"ờ\":\"o\",\n\t\"ở\":\"o\",\n\t\"ỡ\":\"o\",\n\t\"ȏ\":\"o\",\n\t\"ꝋ\":\"o\",\n\t\"ꝍ\":\"o\",\n\t\"ⱺ\":\"o\",\n\t\"ō\":\"o\",\n\t\"ṓ\":\"o\",\n\t\"ṑ\":\"o\",\n\t\"ǫ\":\"o\",\n\t\"ǭ\":\"o\",\n\t\"ø\":\"o\",\n\t\"ǿ\":\"o\",\n\t\"õ\":\"o\",\n\t\"ṍ\":\"o\",\n\t\"ṏ\":\"o\",\n\t\"ȭ\":\"o\",\n\t\"ƣ\":\"oi\",\n\t\"ꝏ\":\"oo\",\n\t\"ɛ\":\"e\",\n\t\"ᶓ\":\"e\",\n\t\"ɔ\":\"o\",\n\t\"ᶗ\":\"o\",\n\t\"ȣ\":\"ou\",\n\t\"ṕ\":\"p\",\n\t\"ṗ\":\"p\",\n\t\"ꝓ\":\"p\",\n\t\"ƥ\":\"p\",\n\t\"ᵱ\":\"p\",\n\t\"ᶈ\":\"p\",\n\t\"ꝕ\":\"p\",\n\t\"ᵽ\":\"p\",\n\t\"ꝑ\":\"p\",\n\t\"ꝙ\":\"q\",\n\t\"ʠ\":\"q\",\n\t\"ɋ\":\"q\",\n\t\"ꝗ\":\"q\",\n\t\"ŕ\":\"r\",\n\t\"ř\":\"r\",\n\t\"ŗ\":\"r\",\n\t\"ṙ\":\"r\",\n\t\"ṛ\":\"r\",\n\t\"ṝ\":\"r\",\n\t\"ȑ\":\"r\",\n\t\"ɾ\":\"r\",\n\t\"ᵳ\":\"r\",\n\t\"ȓ\":\"r\",\n\t\"ṟ\":\"r\",\n\t\"ɼ\":\"r\",\n\t\"ᵲ\":\"r\",\n\t\"ᶉ\":\"r\",\n\t\"ɍ\":\"r\",\n\t\"ɽ\":\"r\",\n\t\"ↄ\":\"c\",\n\t\"ꜿ\":\"c\",\n\t\"ɘ\":\"e\",\n\t\"ɿ\":\"r\",\n\t\"ś\":\"s\",\n\t\"ṥ\":\"s\",\n\t\"š\":\"s\",\n\t\"ṧ\":\"s\",\n\t\"ş\":\"s\",\n\t\"ŝ\":\"s\",\n\t\"ș\":\"s\",\n\t\"ṡ\":\"s\",\n\t\"ṣ\":\"s\",\n\t\"ṩ\":\"s\",\n\t\"ʂ\":\"s\",\n\t\"ᵴ\":\"s\",\n\t\"ᶊ\":\"s\",\n\t\"ȿ\":\"s\",\n\t\"ɡ\":\"g\",\n\t\"ᴑ\":\"o\",\n\t\"ᴓ\":\"o\",\n\t\"ᴝ\":\"u\",\n\t\"ť\":\"t\",\n\t\"ţ\":\"t\",\n\t\"ṱ\":\"t\",\n\t\"ț\":\"t\",\n\t\"ȶ\":\"t\",\n\t\"ẗ\":\"t\",\n\t\"ⱦ\":\"t\",\n\t\"ṫ\":\"t\",\n\t\"ṭ\":\"t\",\n\t\"ƭ\":\"t\",\n\t\"ṯ\":\"t\",\n\t\"ᵵ\":\"t\",\n\t\"ƫ\":\"t\",\n\t\"ʈ\":\"t\",\n\t\"ŧ\":\"t\",\n\t\"ᵺ\":\"th\",\n\t\"ɐ\":\"a\",\n\t\"ᴂ\":\"ae\",\n\t\"ǝ\":\"e\",\n\t\"ᵷ\":\"g\",\n\t\"ɥ\":\"h\",\n\t\"ʮ\":\"h\",\n\t\"ʯ\":\"h\",\n\t\"ᴉ\":\"i\",\n\t\"ʞ\":\"k\",\n\t\"ꞁ\":\"l\",\n\t\"ɯ\":\"m\",\n\t\"ɰ\":\"m\",\n\t\"ᴔ\":\"oe\",\n\t\"ɹ\":\"r\",\n\t\"ɻ\":\"r\",\n\t\"ɺ\":\"r\",\n\t\"ⱹ\":\"r\",\n\t\"ʇ\":\"t\",\n\t\"ʌ\":\"v\",\n\t\"ʍ\":\"w\",\n\t\"ʎ\":\"y\",\n\t\"ꜩ\":\"tz\",\n\t\"ú\":\"u\",\n\t\"ŭ\":\"u\",\n\t\"ǔ\":\"u\",\n\t\"û\":\"u\",\n\t\"ṷ\":\"u\",\n\t\"ü\":\"u\",\n\t\"ǘ\":\"u\",\n\t\"ǚ\":\"u\",\n\t\"ǜ\":\"u\",\n\t\"ǖ\":\"u\",\n\t\"ṳ\":\"u\",\n\t\"ụ\":\"u\",\n\t\"ű\":\"u\",\n\t\"ȕ\":\"u\",\n\t\"ù\":\"u\",\n\t\"ủ\":\"u\",\n\t\"ư\":\"u\",\n\t\"ứ\":\"u\",\n\t\"ự\":\"u\",\n\t\"ừ\":\"u\",\n\t\"ử\":\"u\",\n\t\"ữ\":\"u\",\n\t\"ȗ\":\"u\",\n\t\"ū\":\"u\",\n\t\"ṻ\":\"u\",\n\t\"ų\":\"u\",\n\t\"ᶙ\":\"u\",\n\t\"ů\":\"u\",\n\t\"ũ\":\"u\",\n\t\"ṹ\":\"u\",\n\t\"ṵ\":\"u\",\n\t\"ᵫ\":\"ue\",\n\t\"ꝸ\":\"um\",\n\t\"ⱴ\":\"v\",\n\t\"ꝟ\":\"v\",\n\t\"ṿ\":\"v\",\n\t\"ʋ\":\"v\",\n\t\"ᶌ\":\"v\",\n\t\"ⱱ\":\"v\",\n\t\"ṽ\":\"v\",\n\t\"ꝡ\":\"vy\",\n\t\"ẃ\":\"w\",\n\t\"ŵ\":\"w\",\n\t\"ẅ\":\"w\",\n\t\"ẇ\":\"w\",\n\t\"ẉ\":\"w\",\n\t\"ẁ\":\"w\",\n\t\"ⱳ\":\"w\",\n\t\"ẘ\":\"w\",\n\t\"ẍ\":\"x\",\n\t\"ẋ\":\"x\",\n\t\"ᶍ\":\"x\",\n\t\"ý\":\"y\",\n\t\"ŷ\":\"y\",\n\t\"ÿ\":\"y\",\n\t\"ẏ\":\"y\",\n\t\"ỵ\":\"y\",\n\t\"ỳ\":\"y\",\n\t\"ƴ\":\"y\",\n\t\"ỷ\":\"y\",\n\t\"ỿ\":\"y\",\n\t\"ȳ\":\"y\",\n\t\"ẙ\":\"y\",\n\t\"ɏ\":\"y\",\n\t\"ỹ\":\"y\",\n\t\"ź\":\"z\",\n\t\"ž\":\"z\",\n\t\"ẑ\":\"z\",\n\t\"ʑ\":\"z\",\n\t\"ⱬ\":\"z\",\n\t\"ż\":\"z\",\n\t\"ẓ\":\"z\",\n\t\"ȥ\":\"z\",\n\t\"ẕ\":\"z\",\n\t\"ᵶ\":\"z\",\n\t\"ᶎ\":\"z\",\n\t\"ʐ\":\"z\",\n\t\"ƶ\":\"z\",\n\t\"ɀ\":\"z\",\n\t\"ff\":\"ff\",\n\t\"ffi\":\"ffi\",\n\t\"ffl\":\"ffl\",\n\t\"fi\":\"fi\",\n\t\"fl\":\"fl\",\n\t\"ij\":\"ij\",\n\t\"œ\":\"oe\",\n\t\"st\":\"st\",\n\t\"ₐ\":\"a\",\n\t\"ₑ\":\"e\",\n\t\"ᵢ\":\"i\",\n\t\"ⱼ\":\"j\",\n\t\"ₒ\":\"o\",\n\t\"ᵣ\":\"r\",\n\t\"ᵤ\":\"u\",\n\t\"ᵥ\":\"v\",\n\t\"ₓ\":\"x\",\n\t\"Ё\":\"YO\",\n\t\"Й\":\"I\",\n\t\"Ц\":\"TS\",\n\t\"У\":\"U\",\n\t\"К\":\"K\",\n\t\"Е\":\"E\",\n\t\"Н\":\"N\",\n\t\"Г\":\"G\",\n\t\"Ш\":\"SH\",\n\t\"Щ\":\"SCH\",\n\t\"З\":\"Z\",\n\t\"Х\":\"H\",\n\t\"Ъ\":\"'\",\n\t\"ё\":\"yo\",\n\t\"й\":\"i\",\n\t\"ц\":\"ts\",\n\t\"у\":\"u\",\n\t\"к\":\"k\",\n\t\"е\":\"e\",\n\t\"н\":\"n\",\n\t\"г\":\"g\",\n\t\"ш\":\"sh\",\n\t\"щ\":\"sch\",\n\t\"з\":\"z\",\n\t\"х\":\"h\",\n\t\"ъ\":\"'\",\n\t\"Ф\":\"F\",\n\t\"Ы\":\"I\",\n\t\"В\":\"V\",\n\t\"А\":\"a\",\n\t\"П\":\"P\",\n\t\"Р\":\"R\",\n\t\"О\":\"O\",\n\t\"Л\":\"L\",\n\t\"Д\":\"D\",\n\t\"Ж\":\"ZH\",\n\t\"Э\":\"E\",\n\t\"ф\":\"f\",\n\t\"ы\":\"i\",\n\t\"в\":\"v\",\n\t\"а\":\"a\",\n\t\"п\":\"p\",\n\t\"р\":\"r\",\n\t\"о\":\"o\",\n\t\"л\":\"l\",\n\t\"д\":\"d\",\n\t\"ж\":\"zh\",\n\t\"э\":\"e\",\n\t\"Я\":\"Ya\",\n\t\"Ч\":\"CH\",\n\t\"С\":\"S\",\n\t\"М\":\"M\",\n\t\"И\":\"I\",\n\t\"Т\":\"T\",\n\t\"Ь\":\"'\",\n\t\"Б\":\"B\",\n\t\"Ю\":\"YU\",\n\t\"я\":\"ya\",\n\t\"ч\":\"ch\",\n\t\"с\":\"s\",\n\t\"м\":\"m\",\n\t\"и\":\"i\",\n\t\"т\":\"t\",\n\t\"ь\":\"'\",\n\t\"б\":\"b\",\n\t\"ю\":\"yu\"\n};\n\nexports.transliterate = function(str) {\n\treturn str.replace(/[^A-Za-z0-9\\[\\] ]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || ch\n\t});\n};\n\nexports.transliterateToSafeASCII = function(str) {\n\treturn str.replace(/[^\\x00-\\x7F]/g,function(ch) {\n\t\treturn exports.transliterationPairs[ch] || \"\"\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/utils/utils.js": {
"title": "$:/core/modules/utils/utils.js",
"text": "/*\\\ntitle: $:/core/modules/utils/utils.js\ntype: application/javascript\nmodule-type: utils\n\nVarious static utility functions.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar base64utf8 = require(\"$:/core/modules/utils/base64-utf8/base64-utf8.module.js\");\n\n/*\nDisplay a message, in colour if we're on a terminal\n*/\nexports.log = function(text,colour) {\n\tconsole.log($tw.node ? exports.terminalColour(colour) + text + exports.terminalColour() : text);\n};\n\nexports.terminalColour = function(colour) {\n\tif(!$tw.browser && $tw.node && process.stdout.isTTY) {\n\t\tif(colour) {\n\t\t\tvar code = exports.terminalColourLookup[colour];\n\t\t\tif(code) {\n\t\t\t\treturn \"\\x1b[\" + code + \"m\";\n\t\t\t}\n\t\t} else {\n\t\t\treturn \"\\x1b[0m\"; // Cancel colour\n\t\t}\n\t}\n\treturn \"\";\n};\n\nexports.terminalColourLookup = {\n\t\"black\": \"0;30\",\n\t\"red\": \"0;31\",\n\t\"green\": \"0;32\",\n\t\"brown/orange\": \"0;33\",\n\t\"blue\": \"0;34\",\n\t\"purple\": \"0;35\",\n\t\"cyan\": \"0;36\",\n\t\"light gray\": \"0;37\"\n};\n\n/*\nDisplay a warning, in colour if we're on a terminal\n*/\nexports.warning = function(text) {\n\texports.log(text,\"brown/orange\");\n};\n\n/*\nReturn the integer represented by the str (string).\nReturn the dflt (default) parameter if str is not a base-10 number.\n*/\nexports.getInt = function(str,deflt) {\n\tvar i = parseInt(str,10);\n\treturn isNaN(i) ? deflt : i;\n}\n\n/*\nRepeatedly replaces a substring within a string. Like String.prototype.replace, but without any of the default special handling of $ sequences in the replace string\n*/\nexports.replaceString = function(text,search,replace) {\n\treturn text.replace(search,function() {\n\t\treturn replace;\n\t});\n};\n\n/*\nRepeats a string\n*/\nexports.repeat = function(str,count) {\n\tvar result = \"\";\n\tfor(var t=0;t<count;t++) {\n\t\tresult += str;\n\t}\n\treturn result;\n};\n\n/*\nTrim whitespace from the start and end of a string\nThanks to Steven Levithan, http://blog.stevenlevithan.com/archives/faster-trim-javascript\n*/\nexports.trim = function(str) {\n\tif(typeof str === \"string\") {\n\t\treturn str.replace(/^\\s\\s*/, '').replace(/\\s\\s*$/, '');\n\t} else {\n\t\treturn str;\n\t}\n};\n\n/*\nConvert a string to sentence case (ie capitalise first letter)\n*/\nexports.toSentenceCase = function(str) {\n\treturn (str || \"\").replace(/^\\S/, function(c) {return c.toUpperCase();});\n}\n\n/*\nConvert a string to title case (ie capitalise each initial letter)\n*/\nexports.toTitleCase = function(str) {\n\treturn (str || \"\").replace(/(^|\\s)\\S/g, function(c) {return c.toUpperCase();});\n}\n\t\n/*\nFind the line break preceding a given position in a string\nReturns position immediately after that line break, or the start of the string\n*/\nexports.findPrecedingLineBreak = function(text,pos) {\n\tvar result = text.lastIndexOf(\"\\n\",pos - 1);\n\tif(result === -1) {\n\t\tresult = 0;\n\t} else {\n\t\tresult++;\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nFind the line break following a given position in a string\n*/\nexports.findFollowingLineBreak = function(text,pos) {\n\t// Cut to just past the following line break, or to the end of the text\n\tvar result = text.indexOf(\"\\n\",pos);\n\tif(result === -1) {\n\t\tresult = text.length;\n\t} else {\n\t\tif(text.charAt(result) === \"\\r\") {\n\t\t\tresult++;\n\t\t}\n\t}\n\treturn result;\n};\n\n/*\nReturn the number of keys in an object\n*/\nexports.count = function(object) {\n\treturn Object.keys(object || {}).length;\n};\n\n/*\nDetermine whether an array-item is an object-property\n*/\nexports.hopArray = function(object,array) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tif($tw.utils.hop(object,array[i])) {\n\t\t\treturn true;\n\t\t}\n\t}\n\treturn false;\n};\n\n/*\nRemove entries from an array\n\tarray: array to modify\n\tvalue: a single value to remove, or an array of values to remove\n*/\nexports.removeArrayEntries = function(array,value) {\n\tvar t,p;\n\tif($tw.utils.isArray(value)) {\n\t\tfor(t=0; t<value.length; t++) {\n\t\t\tp = array.indexOf(value[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tarray.splice(p,1);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tp = array.indexOf(value);\n\t\tif(p !== -1) {\n\t\t\tarray.splice(p,1);\n\t\t}\n\t}\n};\n\n/*\nCheck whether any members of a hashmap are present in another hashmap\n*/\nexports.checkDependencies = function(dependencies,changes) {\n\tvar hit = false;\n\t$tw.utils.each(changes,function(change,title) {\n\t\tif($tw.utils.hop(dependencies,title)) {\n\t\t\thit = true;\n\t\t}\n\t});\n\treturn hit;\n};\n\nexports.extend = function(object /* [, src] */) {\n\t$tw.utils.each(Array.prototype.slice.call(arguments, 1), function(source) {\n\t\tif(source) {\n\t\t\tfor(var property in source) {\n\t\t\t\tobject[property] = source[property];\n\t\t\t}\n\t\t}\n\t});\n\treturn object;\n};\n\nexports.deepCopy = function(object) {\n\tvar result,t;\n\tif($tw.utils.isArray(object)) {\n\t\t// Copy arrays\n\t\tresult = object.slice(0);\n\t} else if(typeof object === \"object\") {\n\t\tresult = {};\n\t\tfor(t in object) {\n\t\t\tif(object[t] !== undefined) {\n\t\t\t\tresult[t] = $tw.utils.deepCopy(object[t]);\n\t\t\t}\n\t\t}\n\t} else {\n\t\tresult = object;\n\t}\n\treturn result;\n};\n\nexports.extendDeepCopy = function(object,extendedProperties) {\n\tvar result = $tw.utils.deepCopy(object),t;\n\tfor(t in extendedProperties) {\n\t\tif(extendedProperties[t] !== undefined) {\n\t\t\tresult[t] = $tw.utils.deepCopy(extendedProperties[t]);\n\t\t}\n\t}\n\treturn result;\n};\n\nexports.deepFreeze = function deepFreeze(object) {\n\tvar property, key;\n\tif(object) {\n\t\tObject.freeze(object);\n\t\tfor(key in object) {\n\t\t\tproperty = object[key];\n\t\t\tif($tw.utils.hop(object,key) && (typeof property === \"object\") && !Object.isFrozen(property)) {\n\t\t\t\tdeepFreeze(property);\n\t\t\t}\n\t\t}\n\t}\n};\n\nexports.slowInSlowOut = function(t) {\n\treturn (1 - ((Math.cos(t * Math.PI) + 1) / 2));\n};\n\nexports.formatDateString = function(date,template) {\n\tvar result = \"\",\n\t\tt = template,\n\t\tmatches = [\n\t\t\t[/^0hh12/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getHours12(date));\n\t\t\t}],\n\t\t\t[/^wYYYY/, function() {\n\t\t\t\treturn $tw.utils.getYearForWeekNo(date);\n\t\t\t}],\n\t\t\t[/^hh12/, function() {\n\t\t\t\treturn $tw.utils.getHours12(date);\n\t\t\t}],\n\t\t\t[/^DDth/, function() {\n\t\t\t\treturn date.getDate() + $tw.utils.getDaySuffix(date);\n\t\t\t}],\n\t\t\t[/^YYYY/, function() {\n\t\t\t\treturn date.getFullYear();\n\t\t\t}],\n\t\t\t[/^0hh/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getHours());\n\t\t\t}],\n\t\t\t[/^0mm/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMinutes());\n\t\t\t}],\n\t\t\t[/^0ss/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getSeconds());\n\t\t\t}],\n\t\t\t[/^0XXX/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMilliseconds(),3);\n\t\t\t}],\n\t\t\t[/^0DD/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getDate());\n\t\t\t}],\n\t\t\t[/^0MM/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getMonth()+1);\n\t\t\t}],\n\t\t\t[/^0WW/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getWeek(date));\n\t\t\t}],\n\t\t\t[/^ddd/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^mmm/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Short/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^DDD/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Day/\" + date.getDay());\n\t\t\t}],\n\t\t\t[/^MMM/, function() {\n\t\t\t\treturn $tw.language.getString(\"Date/Long/Month/\" + (date.getMonth() + 1));\n\t\t\t}],\n\t\t\t[/^TZD/, function() {\n\t\t\t\tvar tz = date.getTimezoneOffset(),\n\t\t\t\tatz = Math.abs(tz);\n\t\t\t\treturn (tz < 0 ? '+' : '-') + $tw.utils.pad(Math.floor(atz / 60)) + ':' + $tw.utils.pad(atz % 60);\n\t\t\t}],\n\t\t\t[/^wYY/, function() {\n\t\t\t\treturn $tw.utils.pad($tw.utils.getYearForWeekNo(date) - 2000);\n\t\t\t}],\n\t\t\t[/^[ap]m/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toLowerCase();\n\t\t\t}],\n\t\t\t[/^hh/, function() {\n\t\t\t\treturn date.getHours();\n\t\t\t}],\n\t\t\t[/^mm/, function() {\n\t\t\t\treturn date.getMinutes();\n\t\t\t}],\n\t\t\t[/^ss/, function() {\n\t\t\t\treturn date.getSeconds();\n\t\t\t}],\n\t\t\t[/^XXX/, function() {\n\t\t\t\treturn date.getMilliseconds();\n\t\t\t}],\n\t\t\t[/^[AP]M/, function() {\n\t\t\t\treturn $tw.utils.getAmPm(date).toUpperCase();\n\t\t\t}],\n\t\t\t[/^DD/, function() {\n\t\t\t\treturn date.getDate();\n\t\t\t}],\n\t\t\t[/^MM/, function() {\n\t\t\t\treturn date.getMonth() + 1;\n\t\t\t}],\n\t\t\t[/^WW/, function() {\n\t\t\t\treturn $tw.utils.getWeek(date);\n\t\t\t}],\n\t\t\t[/^YY/, function() {\n\t\t\t\treturn $tw.utils.pad(date.getFullYear() - 2000);\n\t\t\t}]\n\t\t];\n\t// If the user wants everything in UTC, shift the datestamp\n\t// Optimize for format string that essentially means\n\t// 'return raw UTC (tiddlywiki style) date string.'\n\tif(t.indexOf(\"[UTC]\") == 0 ) {\n\t\tif(t == \"[UTC]YYYY0MM0DD0hh0mm0ssXXX\")\n\t\t\treturn $tw.utils.stringifyDate(new Date());\n\t\tvar offset = date.getTimezoneOffset() ; // in minutes\n\t\tdate = new Date(date.getTime()+offset*60*1000) ;\n\t\tt = t.substr(5) ;\n\t}\n\twhile(t.length){\n\t\tvar matchString = \"\";\n\t\t$tw.utils.each(matches, function(m) {\n\t\t\tvar match = m[0].exec(t);\n\t\t\tif(match) {\n\t\t\t\tmatchString = m[1].call();\n\t\t\t\tt = t.substr(match[0].length);\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\t\tif(matchString) {\n\t\t\tresult += matchString;\n\t\t} else {\n\t\t\tresult += t.charAt(0);\n\t\t\tt = t.substr(1);\n\t\t}\n\t}\n\tresult = result.replace(/\\\\(.)/g,\"$1\");\n\treturn result;\n};\n\nexports.getAmPm = function(date) {\n\treturn $tw.language.getString(\"Date/Period/\" + (date.getHours() >= 12 ? \"pm\" : \"am\"));\n};\n\nexports.getDaySuffix = function(date) {\n\treturn $tw.language.getString(\"Date/DaySuffix/\" + date.getDate());\n};\n\nexports.getWeek = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week to calculate weekNo\n\tvar x = new Date(dt.getFullYear(),0,1);\n\tvar n = Math.floor((dt.getTime() - x.getTime()) / 86400000);\n\treturn Math.floor(n / 7) + 1;\n};\n\nexports.getYearForWeekNo = function(date) {\n\tvar dt = new Date(date.getTime());\n\tvar d = dt.getDay();\n\tif(d === 0) {\n\t\td = 7; // JavaScript Sun=0, ISO Sun=7\n\t}\n\tdt.setTime(dt.getTime() + (4 - d) * 86400000);// shift day to Thurs of same week\n\treturn dt.getFullYear();\n};\n\nexports.getHours12 = function(date) {\n\tvar h = date.getHours();\n\treturn h > 12 ? h-12 : ( h > 0 ? h : 12 );\n};\n\n/*\nConvert a date delta in milliseconds into a string representation of \"23 seconds ago\", \"27 minutes ago\" etc.\n\tdelta: delta in milliseconds\nReturns an object with these members:\n\tdescription: string describing the delta period\n\tupdatePeriod: time in millisecond until the string will be inaccurate\n*/\nexports.getRelativeDate = function(delta) {\n\tvar futurep = false;\n\tif(delta < 0) {\n\t\tdelta = -1 * delta;\n\t\tfuturep = true;\n\t}\n\tvar units = [\n\t\t{name: \"Years\", duration: 365 * 24 * 60 * 60 * 1000},\n\t\t{name: \"Months\", duration: (365/12) * 24 * 60 * 60 * 1000},\n\t\t{name: \"Days\", duration: 24 * 60 * 60 * 1000},\n\t\t{name: \"Hours\", duration: 60 * 60 * 1000},\n\t\t{name: \"Minutes\", duration: 60 * 1000},\n\t\t{name: \"Seconds\", duration: 1000}\n\t];\n\tfor(var t=0; t<units.length; t++) {\n\t\tvar result = Math.floor(delta / units[t].duration);\n\t\tif(result >= 2) {\n\t\t\treturn {\n\t\t\t\tdelta: delta,\n\t\t\t\tdescription: $tw.language.getString(\n\t\t\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/\" + units[t].name,\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{period: result.toString()}\n\t\t\t\t\t}\n\t\t\t\t),\n\t\t\t\tupdatePeriod: units[t].duration\n\t\t\t};\n\t\t}\n\t}\n\treturn {\n\t\tdelta: delta,\n\t\tdescription: $tw.language.getString(\n\t\t\t\"RelativeDate/\" + (futurep ? \"Future\" : \"Past\") + \"/Second\",\n\t\t\t{variables:\n\t\t\t\t{period: \"1\"}\n\t\t\t}\n\t\t),\n\t\tupdatePeriod: 1000\n\t};\n};\n\n// Convert & to \"&\", < to \"<\", > to \">\", \" to \""\"\nexports.htmlEncode = function(s) {\n\tif(s) {\n\t\treturn s.toString().replace(/&/mg,\"&\").replace(/</mg,\"<\").replace(/>/mg,\">\").replace(/\\\"/mg,\""\");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n// Converts all HTML entities to their character equivalents\nexports.entityDecode = function(s) {\n\tvar converter = String.fromCodePoint || String.fromCharCode,\n\t\te = s.substr(1,s.length-2), // Strip the & and the ;\n\t\tc;\n\tif(e.charAt(0) === \"#\") {\n\t\tif(e.charAt(1) === \"x\" || e.charAt(1) === \"X\") {\n\t\t\tc = parseInt(e.substr(2),16);\n\t\t} else {\n\t\t\tc = parseInt(e.substr(1),10);\n\t\t}\n\t\tif(isNaN(c)) {\n\t\t\treturn s;\n\t\t} else {\n\t\t\treturn converter(c);\n\t\t}\n\t} else {\n\t\tc = $tw.config.htmlEntities[e];\n\t\tif(c) {\n\t\t\treturn converter(c);\n\t\t} else {\n\t\t\treturn s; // Couldn't convert it as an entity, just return it raw\n\t\t}\n\t}\n};\n\nexports.unescapeLineBreaks = function(s) {\n\treturn s.replace(/\\\\n/mg,\"\\n\").replace(/\\\\b/mg,\" \").replace(/\\\\s/mg,\"\\\\\").replace(/\\r/mg,\"\");\n};\n\n/*\n * Returns an escape sequence for given character. Uses \\x for characters <=\n * 0xFF to save space, \\u for the rest.\n *\n * The code needs to be in sync with th code template in the compilation\n * function for \"action\" nodes.\n */\n// Copied from peg.js, thanks to David Majda\nexports.escape = function(ch) {\n\tvar charCode = ch.charCodeAt(0);\n\tif(charCode <= 0xFF) {\n\t\treturn '\\\\x' + $tw.utils.pad(charCode.toString(16).toUpperCase());\n\t} else {\n\t\treturn '\\\\u' + $tw.utils.pad(charCode.toString(16).toUpperCase(),4);\n\t}\n};\n\n// Turns a string into a legal JavaScript string\n// Copied from peg.js, thanks to David Majda\nexports.stringify = function(s) {\n\t/*\n\t* ECMA-262, 5th ed., 7.8.4: All characters may appear literally in a string\n\t* literal except for the closing quote character, backslash, carriage return,\n\t* line separator, paragraph separator, and line feed. Any character may\n\t* appear in the form of an escape sequence.\n\t*\n\t* For portability, we also escape all non-ASCII characters.\n\t*/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/'/g, \"\\\\'\") // single quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g, exports.escape); // non-ASCII characters\n};\n\n// Turns a string into a legal JSON string\n// Derived from peg.js, thanks to David Majda\nexports.jsonStringify = function(s) {\n\t// See http://www.json.org/\n\treturn (s || \"\")\n\t\t.replace(/\\\\/g, '\\\\\\\\') // backslash\n\t\t.replace(/\"/g, '\\\\\"') // double quote character\n\t\t.replace(/\\r/g, '\\\\r') // carriage return\n\t\t.replace(/\\n/g, '\\\\n') // line feed\n\t\t.replace(/\\x08/g, '\\\\b') // backspace\n\t\t.replace(/\\x0c/g, '\\\\f') // formfeed\n\t\t.replace(/\\t/g, '\\\\t') // tab\n\t\t.replace(/[\\x00-\\x1f\\x80-\\uFFFF]/g,function(s) {\n\t\t\treturn '\\\\u' + $tw.utils.pad(s.charCodeAt(0).toString(16).toUpperCase(),4);\n\t\t}); // non-ASCII characters\n};\n\n/*\nEscape the RegExp special characters with a preceding backslash\n*/\nexports.escapeRegExp = function(s) {\n return s.replace(/[\\-\\/\\\\\\^\\$\\*\\+\\?\\.\\(\\)\\|\\[\\]\\{\\}]/g, '\\\\$&');\n};\n\n// Checks whether a link target is external, i.e. not a tiddler title\nexports.isLinkExternal = function(to) {\n\tvar externalRegExp = /^(?:file|http|https|mailto|ftp|irc|news|data|skype):[^\\s<>{}\\[\\]`|\"\\\\^]+(?:\\/|\\b)/i;\n\treturn externalRegExp.test(to);\n};\n\nexports.nextTick = function(fn) {\n/*global window: false */\n\tif(typeof process === \"undefined\") {\n\t\t// Apparently it would be faster to use postMessage - http://dbaron.org/log/20100309-faster-timeouts\n\t\twindow.setTimeout(fn,4);\n\t} else {\n\t\tprocess.nextTick(fn);\n\t}\n};\n\n/*\nConvert a hyphenated CSS property name into a camel case one\n*/\nexports.unHyphenateCss = function(propName) {\n\treturn propName.replace(/-([a-z])/gi, function(match0,match1) {\n\t\treturn match1.toUpperCase();\n\t});\n};\n\n/*\nConvert a camelcase CSS property name into a dashed one (\"backgroundColor\" --> \"background-color\")\n*/\nexports.hyphenateCss = function(propName) {\n\treturn propName.replace(/([A-Z])/g, function(match0,match1) {\n\t\treturn \"-\" + match1.toLowerCase();\n\t});\n};\n\n/*\nParse a text reference of one of these forms:\n* title\n* !!field\n* title!!field\n* title##index\n* etc\nReturns an object with the following fields, all optional:\n* title: tiddler title\n* field: tiddler field name\n* index: JSON property index\n*/\nexports.parseTextReference = function(textRef) {\n\t// Separate out the title, field name and/or JSON indices\n\tvar reTextRef = /(?:(.*?)!!(.+))|(?:(.*?)##(.+))|(.*)/mg,\n\t\tmatch = reTextRef.exec(textRef),\n\t\tresult = {};\n\tif(match && reTextRef.lastIndex === textRef.length) {\n\t\t// Return the parts\n\t\tif(match[1]) {\n\t\t\tresult.title = match[1];\n\t\t}\n\t\tif(match[2]) {\n\t\t\tresult.field = match[2];\n\t\t}\n\t\tif(match[3]) {\n\t\t\tresult.title = match[3];\n\t\t}\n\t\tif(match[4]) {\n\t\t\tresult.index = match[4];\n\t\t}\n\t\tif(match[5]) {\n\t\t\tresult.title = match[5];\n\t\t}\n\t} else {\n\t\t// If we couldn't parse it\n\t\tresult.title = textRef\n\t}\n\treturn result;\n};\n\n/*\nChecks whether a string is a valid fieldname\n*/\nexports.isValidFieldName = function(name) {\n\tif(!name || typeof name !== \"string\") {\n\t\treturn false;\n\t}\n\tname = name.toLowerCase().trim();\n\tvar fieldValidatorRegEx = /^[a-z0-9\\-\\._]+$/mg;\n\treturn fieldValidatorRegEx.test(name);\n};\n\n/*\nExtract the version number from the meta tag or from the boot file\n*/\n\n// Browser version\nexports.extractVersionInfo = function() {\n\tif($tw.packageInfo) {\n\t\treturn $tw.packageInfo.version;\n\t} else {\n\t\tvar metatags = document.getElementsByTagName(\"meta\");\n\t\tfor(var t=0; t<metatags.length; t++) {\n\t\t\tvar m = metatags[t];\n\t\t\tif(m.name === \"tiddlywiki-version\") {\n\t\t\t\treturn m.content;\n\t\t\t}\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the animation duration in ms\n*/\nexports.getAnimationDuration = function() {\n\treturn parseInt($tw.wiki.getTiddlerText(\"$:/config/AnimationDuration\",\"400\"),10) || 0;\n};\n\n/*\nHash a string to a number\nDerived from http://stackoverflow.com/a/15710692\n*/\nexports.hashString = function(str) {\n\treturn str.split(\"\").reduce(function(a,b) {\n\t\ta = ((a << 5) - a) + b.charCodeAt(0);\n\t\treturn a & a;\n\t},0);\n};\n\n/*\nDecode a base64 string\n*/\nexports.base64Decode = function(string64) {\n\treturn base64utf8.base64.decode.call(base64utf8,string64);\n};\n\n/*\nEncode a string to base64\n*/\nexports.base64Encode = function(string64) {\n\treturn base64utf8.base64.encode.call(base64utf8,string64);\n};\n\n/*\nConvert a hashmap into a tiddler dictionary format sequence of name:value pairs\n*/\nexports.makeTiddlerDictionary = function(data) {\n\tvar output = [];\n\tfor(var name in data) {\n\t\toutput.push(name + \": \" + data[name]);\n\t}\n\treturn output.join(\"\\n\");\n};\n\n/*\nHigh resolution microsecond timer for profiling\n*/\nexports.timer = function(base) {\n\tvar m;\n\tif($tw.node) {\n\t\tvar r = process.hrtime();\n\t\tm = r[0] * 1e3 + (r[1] / 1e6);\n\t} else if(window.performance) {\n\t\tm = performance.now();\n\t} else {\n\t\tm = Date.now();\n\t}\n\tif(typeof base !== \"undefined\") {\n\t\tm = m - base;\n\t}\n\treturn m;\n};\n\n/*\nConvert text and content type to a data URI\n*/\nexports.makeDataUri = function(text,type,_canonical_uri) {\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar typeInfo = $tw.config.contentTypeInfo[type] || $tw.config.contentTypeInfo[\"text/plain\"],\n\t\tisBase64 = typeInfo.encoding === \"base64\",\n\t\tparts = [];\n\tif(_canonical_uri) {\n\t\tparts.push(_canonical_uri);\n\t} else {\n\t\tparts.push(\"data:\");\n\t\tparts.push(type);\n\t\tparts.push(isBase64 ? \";base64\" : \"\");\n\t\tparts.push(\",\");\n\t\tparts.push(isBase64 ? text : encodeURIComponent(text));\t\t\n\t}\n\treturn parts.join(\"\");\n};\n\n/*\nUseful for finding out the fully escaped CSS selector equivalent to a given tag. For example:\n\n$tw.utils.tagToCssSelector(\"$:/tags/Stylesheet\") --> tc-tagged-\\%24\\%3A\\%2Ftags\\%2FStylesheet\n*/\nexports.tagToCssSelector = function(tagName) {\n\treturn \"tc-tagged-\" + encodeURIComponent(tagName).replace(/[!\"#$%&'()*+,\\-./:;<=>?@[\\\\\\]^`{\\|}~,]/mg,function(c) {\n\t\treturn \"\\\\\" + c;\n\t});\n};\n\n/*\nIE does not have sign function\n*/\nexports.sign = Math.sign || function(x) {\n\tx = +x; // convert to a number\n\tif (x === 0 || isNaN(x)) {\n\t\treturn x;\n\t}\n\treturn x > 0 ? 1 : -1;\n};\n\n/*\nIE does not have an endsWith function\n*/\nexports.strEndsWith = function(str,ending,position) {\n\tif(str.endsWith) {\n\t\treturn str.endsWith(ending,position);\n\t} else {\n\t\tif (typeof position !== 'number' || !isFinite(position) || Math.floor(position) !== position || position > str.length) {\n\t\t\tposition = str.length;\n\t\t}\n\t\tposition -= ending.length;\n\t\tvar lastIndex = str.indexOf(ending, position);\n\t\treturn lastIndex !== -1 && lastIndex === position;\n\t}\n};\n\n/*\nReturn system information useful for debugging\n*/\nexports.getSystemInfo = function(str,ending,position) {\n\tvar results = [],\n\t\tsave = function(desc,value) {\n\t\t\tresults.push(desc + \": \" + value);\n\t\t};\n\tif($tw.browser) {\n\t\tsave(\"User Agent\",navigator.userAgent);\n\t\tsave(\"Online Status\",window.navigator.onLine);\n\t}\n\tif($tw.node) {\n\t\tsave(\"Node Version\",process.version);\n\t}\n\treturn results.join(\"\\n\");\n};\n\nexports.parseNumber = function(str) {\n\treturn parseFloat(str) || 0;\n};\n\nexports.parseInt = function(str) {\n\treturn parseInt(str,10) || 0;\n};\n\nexports.stringifyNumber = function(num) {\n\treturn num + \"\";\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "utils"
},
"$:/core/modules/widgets/action-createtiddler.js": {
"title": "$:/core/modules/widgets/action-createtiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-createtiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to create a new tiddler with a unique name and specified fields.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw:false, require:false, exports:false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CreateTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCreateTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCreateTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nCreateTiddlerWidget.prototype.execute = function() {\n\tthis.actionBaseTitle = this.getAttribute(\"$basetitle\");\n\tthis.hasBase = !!this.actionBaseTitle;\n\tthis.actionSaveTitle = this.getAttribute(\"$savetitle\");\n\tthis.actionSaveDraftTitle = this.getAttribute(\"$savedrafttitle\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n\t//Following params are new since 5.1.22\n\tthis.actionTemplate = this.getAttribute(\"$template\");\n\tthis.useTemplate = !!this.actionTemplate;\n\tthis.actionOverwrite = this.getAttribute(\"$overwrite\",\"no\");\n\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nCreateTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nCreateTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar title = this.wiki.getTiddlerText(\"$:/language/DefaultNewTiddlerTitle\"), // Get the initial new-tiddler title\n\t\tfields = {},\n\t\tcreationFields,\n\t\tmodificationFields;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tfields[name] = attribute;\n\t\t}\n\t});\n\tif(this.actionTimestamp) {\n\t\tcreationFields = this.wiki.getCreationFields();\n\t\tmodificationFields = this.wiki.getModificationFields();\n\t}\n\tif(this.hasBase && this.actionOverwrite === \"no\") {\n\t\ttitle = this.wiki.generateNewTitle(this.actionBaseTitle);\n\t} else if (this.hasBase && this.actionOverwrite === \"yes\") {\n\t\ttitle = this.actionBaseTitle\n\t}\n\t// NO $basetitle BUT $template parameter is available\n\t// the title MUST be unique, otherwise the template would be overwritten\n\tif (!this.hasBase && this.useTemplate) {\n\t\ttitle = this.wiki.generateNewTitle(this.actionTemplate);\n\t} else if (!this.hasBase && !this.useTemplate) {\n\t\t// If NO $basetitle AND NO $template use initial title\n\t\t// DON'T overwrite any stuff\n\t\ttitle = this.wiki.generateNewTitle(title);\n\t}\n\tvar templateTiddler = this.wiki.getTiddler(this.actionTemplate) || {};\n\tvar tiddler = this.wiki.addTiddler(new $tw.Tiddler(templateTiddler.fields,creationFields,fields,modificationFields,{title: title}));\n\tif(this.actionSaveTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveTitle,title,this.getVariable(\"currentTiddler\"));\n\t}\n\tif(this.actionSaveDraftTitle) {\n\t\tthis.wiki.setTextReference(this.actionSaveDraftTitle,this.wiki.generateDraftTitle(title),this.getVariable(\"currentTiddler\"));\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-createtiddler\"] = CreateTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletefield.js": {
"title": "$:/core/modules/widgets/action-deletefield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletefield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete fields of a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\ttiddler = this.wiki.getTiddler(self.actionTiddler),\n\t\tremoveFields = {},\n\t\thasChanged = false;\n\tif(this.actionField && tiddler) {\n\t\tremoveFields[this.actionField] = undefined;\n\t\tif(this.actionField in tiddler.fields) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(tiddler) {\n\t\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\t\tif(name.charAt(0) !== \"$\" && name !== \"title\") {\n\t\t\t\tremoveFields[name] = undefined;\n\t\t\t\thasChanged = true;\n\t\t\t}\n\t\t});\n\t\tif(hasChanged) {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,removeFields,this.wiki.getModificationFields()));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletefield\"] = DeleteFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-deletetiddler.js": {
"title": "$:/core/modules/widgets/action-deletetiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-deletetiddler.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to delete a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DeleteTiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDeleteTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDeleteTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nDeleteTiddlerWidget.prototype.execute = function() {\n\tthis.actionFilter = this.getAttribute(\"$filter\");\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nDeleteTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$filter\"] || changedAttributes[\"$tiddler\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nDeleteTiddlerWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar tiddlers = [];\n\tif(this.actionFilter) {\n\t\ttiddlers = this.wiki.filterTiddlers(this.actionFilter,this);\n\t}\n\tif(this.actionTiddler) {\n\t\ttiddlers.push(this.actionTiddler);\n\t}\n\tfor(var t=0; t<tiddlers.length; t++) {\n\t\tthis.wiki.deleteTiddler(tiddlers[t]);\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-deletetiddler\"] = DeleteTiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-listops.js": {
"title": "$:/core/modules/widgets/action-listops.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-listops.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to apply list operations to any tiddler field (defaults to the 'list' field of the current tiddler)\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\nvar ActionListopsWidget = function(parseTreeNode, options) {\n\tthis.initialise(parseTreeNode, options);\n};\n/**\n * Inherit from the base widget class\n */\nActionListopsWidget.prototype = new Widget();\n/**\n * Render this widget into the DOM\n */\nActionListopsWidget.prototype.render = function(parent, nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n/**\n * Compute the internal state of the widget\n */\nActionListopsWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.target = this.getAttribute(\"$tiddler\", this.getVariable(\n\t\t\"currentTiddler\"));\n\tthis.filter = this.getAttribute(\"$filter\");\n\tthis.subfilter = this.getAttribute(\"$subfilter\");\n\tthis.listField = this.getAttribute(\"$field\", \"list\");\n\tthis.listIndex = this.getAttribute(\"$index\");\n\tthis.filtertags = this.getAttribute(\"$tags\");\n};\n/**\n * \tRefresh the widget by ensuring our attributes are up to date\n */\nActionListopsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.$tiddler || changedAttributes.$filter ||\n\t\tchangedAttributes.$subfilter || changedAttributes.$field ||\n\t\tchangedAttributes.$index || changedAttributes.$tags) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n/**\n * \tInvoke the action associated with this widget\n */\nActionListopsWidget.prototype.invokeAction = function(triggeringWidget,\n\tevent) {\n\t//Apply the specified filters to the lists\n\tvar field = this.listField,\n\t\tindex,\n\t\ttype = \"!!\",\n\t\tlist = this.listField;\n\tif(this.listIndex) {\n\t\tfield = undefined;\n\t\tindex = this.listIndex;\n\t\ttype = \"##\";\n\t\tlist = this.listIndex;\n\t}\n\tif(this.filter) {\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(this.filter, this)));\n\t}\n\tif(this.subfilter) {\n\t\tvar subfilter = \"[list[\" + this.target + type + list + \"]] \" + this.subfilter;\n\t\tthis.wiki.setText(this.target, field, index, $tw.utils.stringifyList(\n\t\t\tthis.wiki\n\t\t\t.filterTiddlers(subfilter, this)));\n\t}\n\tif(this.filtertags) {\n\t\tvar tiddler = this.wiki.getTiddler(this.target),\n\t\t\toldtags = tiddler ? (tiddler.fields.tags || []).slice(0) : [],\n\t\t\ttagfilter = \"[list[\" + this.target + \"!!tags]] \" + this.filtertags,\n\t\t\tnewtags = this.wiki.filterTiddlers(tagfilter,this);\n\t\tif($tw.utils.stringifyList(oldtags.sort()) !== $tw.utils.stringifyList(newtags.sort())) {\n\t\t\tthis.wiki.setText(this.target,\"tags\",undefined,$tw.utils.stringifyList(newtags));\t\t\t\n\t\t}\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-listops\"] = ActionListopsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-navigate.js": {
"title": "$:/core/modules/widgets/action-navigate.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-navigate.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to navigate to a tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigateWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigateWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigateWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigateWidget.prototype.execute = function() {\n\tthis.actionTo = this.getAttribute(\"$to\");\n\tthis.actionScroll = this.getAttribute(\"$scroll\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nNavigateWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$to\"] || changedAttributes[\"$scroll\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nNavigateWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tevent = event || {};\n\tvar bounds = triggeringWidget && triggeringWidget.getBoundingClientRect && triggeringWidget.getBoundingClientRect(),\n\t\tsuppressNavigation = event.metaKey || event.ctrlKey || (event.button === 1);\n\tif(this.actionScroll === \"yes\") {\n\t\tsuppressNavigation = false;\n\t} else if(this.actionScroll === \"no\") {\n\t\tsuppressNavigation = true;\n\t}\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.actionTo === undefined ? this.getVariable(\"currentTiddler\") : this.actionTo,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: triggeringWidget,\n\t\tnavigateFromClientRect: bounds && { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: suppressNavigation\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-navigate\"] = NavigateWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-popup.js": {
"title": "$:/core/modules/widgets/action-popup.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-popup.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to trigger a popup.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ActionPopupWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nActionPopupWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nActionPopupWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nActionPopupWidget.prototype.execute = function() {\n\tthis.actionState = this.getAttribute(\"$state\");\n\tthis.actionCoords = this.getAttribute(\"$coords\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nActionPopupWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$state\"] || changedAttributes[\"$coords\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nActionPopupWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Trigger the popup\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(this.actionCoords);\n\tif(match) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: null,\n\t\t\tdomNodeRect: {\n\t\t\t\tleft: parseFloat(match[1]),\n\t\t\t\ttop: parseFloat(match[2]),\n\t\t\t\twidth: parseFloat(match[3]),\n\t\t\t\theight: parseFloat(match[4])\n\t\t\t},\n\t\t\ttitle: this.actionState,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n\treturn true; // Action was invoked\n};\n\nexports[\"action-popup\"] = ActionPopupWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-sendmessage.js": {
"title": "$:/core/modules/widgets/action-sendmessage.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-sendmessage.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to send a message\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SendMessageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSendMessageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSendMessageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSendMessageWidget.prototype.execute = function() {\n\tthis.actionMessage = this.getAttribute(\"$message\");\n\tthis.actionParam = this.getAttribute(\"$param\");\n\tthis.actionName = this.getAttribute(\"$name\");\n\tthis.actionValue = this.getAttribute(\"$value\",\"\");\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSendMessageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSendMessageWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\t// Get the string parameter\n\tvar param = this.actionParam;\n\t// Assemble the attributes as a hashmap\n\tvar paramObject = Object.create(null);\n\tvar count = 0;\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparamObject[name] = attribute;\n\t\t\tcount++;\n\t\t}\n\t});\n\t// Add name/value pair if present\n\tif(this.actionName) {\n\t\tparamObject[this.actionName] = this.actionValue;\n\t}\n\t// Dispatch the message\n\tthis.dispatchEvent({\n\t\ttype: this.actionMessage,\n\t\tparam: param,\n\t\tparamObject: paramObject,\n\t\ttiddlerTitle: this.getVariable(\"currentTiddler\"),\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tevent: event\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-sendmessage\"] = SendMessageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/action-setfield.js": {
"title": "$:/core/modules/widgets/action-setfield.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/action-setfield.js\ntype: application/javascript\nmodule-type: widget\n\nAction widget to set a single field or index on a tiddler.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetFieldWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetFieldWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetFieldWidget.prototype.render = function(parent,nextSibling) {\n\tthis.computeAttributes();\n\tthis.execute();\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetFieldWidget.prototype.execute = function() {\n\tthis.actionTiddler = this.getAttribute(\"$tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.actionField = this.getAttribute(\"$field\");\n\tthis.actionIndex = this.getAttribute(\"$index\");\n\tthis.actionValue = this.getAttribute(\"$value\");\n\tthis.actionTimestamp = this.getAttribute(\"$timestamp\",\"yes\") === \"yes\";\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nSetFieldWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"$tiddler\"] || changedAttributes[\"$field\"] || changedAttributes[\"$index\"] || changedAttributes[\"$value\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nInvoke the action associated with this widget\n*/\nSetFieldWidget.prototype.invokeAction = function(triggeringWidget,event) {\n\tvar self = this,\n\t\toptions = {};\n\toptions.suppressTimestamp = !this.actionTimestamp;\n\tif((typeof this.actionField == \"string\") || (typeof this.actionIndex == \"string\") || (typeof this.actionValue == \"string\")) {\n\t\tthis.wiki.setText(this.actionTiddler,this.actionField,this.actionIndex,this.actionValue,options);\n\t}\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tself.wiki.setText(self.actionTiddler,name,undefined,attribute,options);\n\t\t}\n\t});\n\treturn true; // Action was invoked\n};\n\nexports[\"action-setfield\"] = SetFieldWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/browse.js": {
"title": "$:/core/modules/widgets/browse.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/browse.js\ntype: application/javascript\nmodule-type: widget\n\nBrowse widget for browsing for files to import\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar BrowseWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBrowseWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBrowseWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"file\");\n\tif(this.browseMultiple) {\n\t\tdomNode.setAttribute(\"multiple\",\"multiple\");\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\t// Nw.js supports \"nwsaveas\" to force a \"save as\" dialogue that allows a new or existing file to be selected\n\tif(this.nwsaveas) {\n\t\tdomNode.setAttribute(\"nwsaveas\",this.nwsaveas);\n\t}\n\t// Nw.js supports \"webkitdirectory\" and \"nwdirectory\" to allow a directory to be selected\n\tif(this.webkitdirectory) {\n\t\tdomNode.setAttribute(\"webkitdirectory\",this.webkitdirectory);\n\t}\n\tif(this.nwdirectory) {\n\t\tdomNode.setAttribute(\"nwdirectory\",this.nwdirectory);\n\t}\n\t// Add a click event handler\n\tdomNode.addEventListener(\"change\",function (event) {\n\t\tif(self.message) {\n\t\t\tself.dispatchEvent({type: self.message, param: self.param, files: event.target.files});\n\t\t} else {\n\t\t\tself.wiki.readFiles(event.target.files,{\n\t\t\t\tcallback: function(tiddlerFieldsArray) {\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t\t\t},\n\t\t\t\tdeserializer: self.deserializer\n\t\t\t});\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nBrowseWidget.prototype.execute = function() {\n\tthis.browseMultiple = this.getAttribute(\"multiple\");\n\tthis.deserializer = this.getAttribute(\"deserializer\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.nwsaveas = this.getAttribute(\"nwsaveas\");\n\tthis.webkitdirectory = this.getAttribute(\"webkitdirectory\");\n\tthis.nwdirectory = this.getAttribute(\"nwdirectory\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBrowseWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.browse = BrowseWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/button.js": {
"title": "$:/core/modules/widgets/button.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/button.js\ntype: application/javascript\nmodule-type: widget\n\nButton widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ButtonWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nButtonWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nButtonWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar tag = \"button\";\n\tif(this.buttonTag && $tw.config.htmlUnsafeElements.indexOf(this.buttonTag) === -1) {\n\t\ttag = this.buttonTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = this[\"class\"].split(\" \") || [],\n\t\tisPoppedUp = (this.popup || this.popupTitle) && this.isPoppedUp();\n\tif(this.selectedClass) {\n\t\tif((this.set || this.setTitle) && this.setTo && this.isSelected()) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t\tif(isPoppedUp) {\n\t\t\t$tw.utils.pushTop(classes,this.selectedClass.split(\" \"));\n\t\t}\n\t}\n\tif(isPoppedUp) {\n\t\t$tw.utils.pushTop(classes,\"tc-popup-handle\");\n\t}\n\tdomNode.className = classes.join(\" \");\n\t// Assign other attributes\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tif(this.tooltip) {\n\t\tdomNode.setAttribute(\"title\",this.tooltip);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\t\n\t// Add a click event handler\n\tdomNode.addEventListener(\"click\",function (event) {\n\t\tvar handled = false;\n\t\tif(self.invokeActions(self,event)) {\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.to) {\n\t\t\tself.navigateTo(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.message) {\n\t\t\tself.dispatchMessage(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.popup || self.popupTitle) {\n\t\t\tself.triggerPopup(event);\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.set || self.setTitle) {\n\t\t\tself.setTiddler();\n\t\t\thandled = true;\n\t\t}\n\t\tif(self.actions) {\n\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t}\n\t\tif(handled) {\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t}\n\t\treturn handled;\n\t},false);\n\t// Make it draggable if required\n\tif(this.dragTiddler || this.dragFilter) {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.dragTiddler;},\n\t\t\tdragFilterFn: function() {return self.dragFilter;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nWe don't allow actions to propagate because we trigger actions ourselves\n*/\nButtonWidget.prototype.allowActionPropagation = function() {\n\treturn false;\n};\n\nButtonWidget.prototype.getBoundingClientRect = function() {\n\treturn this.domNodes[0].getBoundingClientRect();\n};\n\nButtonWidget.prototype.isSelected = function() {\n return this.setTitle ? (this.setField ? this.wiki.getTiddler(this.setTitle).getFieldString(this.setField) === this.setTo :\n\t\t(this.setIndex ? this.wiki.extractTiddlerDataItem(this.setTitle,this.setIndex) === this.setTo :\n\t\t\tthis.wiki.getTiddlerText(this.setTitle))) || this.defaultSetValue || this.getVariable(\"currentTiddler\") :\n\t\tthis.wiki.getTextReference(this.set,this.defaultSetValue,this.getVariable(\"currentTiddler\")) === this.setTo;\n};\n\nButtonWidget.prototype.isPoppedUp = function() {\n\tvar tiddler = this.popupTitle ? this.wiki.getTiddler(this.popupTitle) : this.wiki.getTiddler(this.popup);\n\tvar result = tiddler && tiddler.fields.text ? $tw.popup.readPopupState(tiddler.fields.text) : false;\n\treturn result;\n};\n\nButtonWidget.prototype.navigateTo = function(event) {\n\tvar bounds = this.getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tevent: event\n\t});\n};\n\nButtonWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\"), event: event});\n};\n\nButtonWidget.prototype.triggerPopup = function(event) {\n\tif(this.popupTitle) {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popupTitle,\n\t\t\twiki: this.wiki,\n\t\t\tnoStateReference: true\n\t\t});\n\t} else {\n\t\t$tw.popup.triggerPopup({\n\t\t\tdomNode: this.domNodes[0],\n\t\t\ttitle: this.popup,\n\t\t\twiki: this.wiki\n\t\t});\n\t}\n};\n\nButtonWidget.prototype.setTiddler = function() {\n\tif(this.setTitle) {\n\t\tthis.setField ? this.wiki.setText(this.setTitle,this.setField,undefined,this.setTo) :\n\t\t\t\t(this.setIndex ? this.wiki.setText(this.setTitle,undefined,this.setIndex,this.setTo) :\n\t\t\t\tthis.wiki.setText(this.setTitle,\"text\",undefined,this.setTo));\n\t} else {\n\t\tthis.wiki.setTextReference(this.set,this.setTo,this.getVariable(\"currentTiddler\"));\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nButtonWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\");\n\tthis.to = this.getAttribute(\"to\");\n\tthis.message = this.getAttribute(\"message\");\n\tthis.param = this.getAttribute(\"param\");\n\tthis.set = this.getAttribute(\"set\");\n\tthis.setTo = this.getAttribute(\"setTo\");\n\tthis.popup = this.getAttribute(\"popup\");\n\tthis.hover = this.getAttribute(\"hover\");\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis.style = this.getAttribute(\"style\");\n\tthis.selectedClass = this.getAttribute(\"selectedClass\");\n\tthis.defaultSetValue = this.getAttribute(\"default\",\"\");\n\tthis.buttonTag = this.getAttribute(\"tag\");\n\tthis.dragTiddler = this.getAttribute(\"dragTiddler\");\n\tthis.dragFilter = this.getAttribute(\"dragFilter\");\n\tthis.setTitle = this.getAttribute(\"setTitle\");\n\tthis.setField = this.getAttribute(\"setField\");\n\tthis.setIndex = this.getAttribute(\"setIndex\");\n\tthis.popupTitle = this.getAttribute(\"popupTitle\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nButtonWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.actions || changedAttributes.to || changedAttributes.message || changedAttributes.param || changedAttributes.set || changedAttributes.setTo || changedAttributes.popup || changedAttributes.hover || changedAttributes[\"class\"] || changedAttributes.selectedClass || changedAttributes.style || changedAttributes.dragFilter || changedAttributes.dragTiddler || (this.set && changedTiddlers[this.set]) || (this.popup && changedTiddlers[this.popup]) || (this.popupTitle && changedTiddlers[this.popupTitle]) || changedAttributes.setTitle || changedAttributes.setField || changedAttributes.setIndex || changedAttributes.popupTitle) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.button = ButtonWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/checkbox.js": {
"title": "$:/core/modules/widgets/checkbox.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/checkbox.js\ntype: application/javascript\nmodule-type: widget\n\nCheckbox widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CheckboxWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCheckboxWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCheckboxWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",this.checkboxClass);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"checkbox\");\n\tif(this.getValue()) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nCheckboxWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.checkboxTitle);\n\tif(tiddler) {\n\t\tif(this.checkboxTag) {\n\t\t\tif(this.checkboxInvertTag) {\n\t\t\t\treturn !tiddler.hasTag(this.checkboxTag);\n\t\t\t} else {\n\t\t\t\treturn tiddler.hasTag(this.checkboxTag);\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tvar value;\n\t\t\tif($tw.utils.hop(tiddler.fields,this.checkboxField)) {\n\t\t\t\tvalue = tiddler.fields[this.checkboxField] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.checkboxDefault || \"\";\n\t\t\t}\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t\tif(this.checkboxIndex) {\n\t\t\tvar value = this.wiki.extractTiddlerDataItem(tiddler,this.checkboxIndex,this.checkboxDefault || \"\");\n\t\t\tif(value === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(value === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t} else {\n\t\tif(this.checkboxTag) {\n\t\t\treturn false;\n\t\t}\n\t\tif(this.checkboxField) {\n\t\t\tif(this.checkboxDefault === this.checkboxChecked) {\n\t\t\t\treturn true;\n\t\t\t}\n\t\t\tif(this.checkboxDefault === this.checkboxUnchecked) {\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\nCheckboxWidget.prototype.handleChangeEvent = function(event) {\n\tvar checked = this.inputDomNode.checked,\n\t\ttiddler = this.wiki.getTiddler(this.checkboxTitle),\n\t\tfallbackFields = {text: \"\"},\n\t\tnewFields = {title: this.checkboxTitle},\n\t\thasChanged = false,\n\t\ttagCheck = false,\n\t\thasTag = tiddler && tiddler.hasTag(this.checkboxTag),\n\t\tvalue = checked ? this.checkboxChecked : this.checkboxUnchecked;\n\tif(this.checkboxTag && this.checkboxInvertTag === \"yes\") {\n\t\ttagCheck = hasTag === checked;\n\t} else {\n\t\ttagCheck = hasTag !== checked;\n\t}\n\t// Set the tag if specified\n\tif(this.checkboxTag && (!tiddler || tagCheck)) {\n\t\tnewFields.tags = tiddler ? (tiddler.fields.tags || []).slice(0) : [];\n\t\tvar pos = newFields.tags.indexOf(this.checkboxTag);\n\t\tif(pos !== -1) {\n\t\t\tnewFields.tags.splice(pos,1);\n\t\t}\n\t\tif(this.checkboxInvertTag === \"yes\" && !checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t} else if(this.checkboxInvertTag !== \"yes\" && checked) {\n\t\t\tnewFields.tags.push(this.checkboxTag);\n\t\t}\n\t\thasChanged = true;\n\t}\n\t// Set the field if specified\n\tif(this.checkboxField) {\n\t\tif(!tiddler || tiddler.fields[this.checkboxField] !== value) {\n\t\t\tnewFields[this.checkboxField] = value;\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\t// Set the index if specified\n\tif(this.checkboxIndex) {\n\t\tvar indexValue = this.wiki.extractTiddlerDataItem(this.checkboxTitle,this.checkboxIndex);\n\t\tif(!tiddler || indexValue !== value) {\n\t\t\thasChanged = true;\n\t\t}\n\t}\n\tif(hasChanged) {\n\t\tif(this.checkboxIndex) {\n\t\t\tthis.wiki.setText(this.checkboxTitle,\"\",this.checkboxIndex,value);\n\t\t} else {\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),fallbackFields,tiddler,newFields,this.wiki.getModificationFields()));\n\t\t}\n\t}\n\t// Trigger actions\n\tif(this.checkboxActions) {\n\t\tthis.invokeActionString(this.checkboxActions,this,event);\n\t}\n\tif(this.checkboxCheckActions && checked) {\n\t\tthis.invokeActionString(this.checkboxCheckActions,this,event);\n\t}\n\tif(this.checkboxUncheckActions && !checked) {\n\t\tthis.invokeActionString(this.checkboxUncheckActions,this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCheckboxWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.checkboxActions = this.getAttribute(\"actions\");\n\tthis.checkboxCheckActions = this.getAttribute(\"checkactions\");\n\tthis.checkboxUncheckActions = this.getAttribute(\"uncheckactions\");\n\tthis.checkboxTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.checkboxTag = this.getAttribute(\"tag\");\n\tthis.checkboxField = this.getAttribute(\"field\");\n\tthis.checkboxIndex = this.getAttribute(\"index\");\n\tthis.checkboxChecked = this.getAttribute(\"checked\");\n\tthis.checkboxUnchecked = this.getAttribute(\"unchecked\");\n\tthis.checkboxDefault = this.getAttribute(\"default\");\n\tthis.checkboxClass = this.getAttribute(\"class\",\"\");\n\tthis.checkboxInvertTag = this.getAttribute(\"invertTag\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCheckboxWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.tag || changedAttributes.invertTag || changedAttributes.field || changedAttributes.index || changedAttributes.checked || changedAttributes.unchecked || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.checkboxTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue();\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.checkbox = CheckboxWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/codeblock.js": {
"title": "$:/core/modules/widgets/codeblock.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/codeblock.js\ntype: application/javascript\nmodule-type: widget\n\nCode block node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CodeBlockWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCodeBlockWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCodeBlockWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar codeNode = this.document.createElement(\"code\"),\n\t\tdomNode = this.document.createElement(\"pre\");\n\tcodeNode.appendChild(this.document.createTextNode(this.getAttribute(\"code\")));\n\tdomNode.appendChild(codeNode);\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n\tif(this.postRender) {\n\t\tthis.postRender();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nCodeBlockWidget.prototype.execute = function() {\n\tthis.language = this.getAttribute(\"language\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCodeBlockWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.codeblock = CodeBlockWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/count.js": {
"title": "$:/core/modules/widgets/count.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/count.js\ntype: application/javascript\nmodule-type: widget\n\nCount widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar CountWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCountWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCountWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.currentCount);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nCountWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Execute the filter\n\tif(this.filter) {\n\t\tthis.currentCount = this.wiki.filterTiddlers(this.filter,this).length;\n\t} else {\n\t\tthis.currentCount = \"0\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCountWidget.prototype.refresh = function(changedTiddlers) {\n\t// Re-execute the filter to get the count\n\tthis.computeAttributes();\n\tvar oldCount = this.currentCount;\n\tthis.execute();\n\tif(this.currentCount !== oldCount) {\n\t\t// Regenerate and rerender the widget and replace the existing DOM node\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n\n};\n\nexports.count = CountWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/diff-text.js": {
"title": "$:/core/modules/widgets/diff-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/diff-text.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display a diff between two texts\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\tdmp = require(\"$:/core/modules/utils/diff-match-patch/diff_match_patch.js\");\n\nvar DiffTextWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDiffTextWidget.prototype = new Widget();\n\nDiffTextWidget.prototype.invisibleCharacters = {\n\t\"\\n\": \"↩︎\\n\",\n\t\"\\r\": \"⇠\",\n\t\"\\t\": \"⇥\\t\"\n};\n\n/*\nRender this widget into the DOM\n*/\nDiffTextWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create the diff\n\tvar dmpObject = new dmp.diff_match_patch(),\n\t\tdiffs = dmpObject.diff_main(this.getAttribute(\"source\"),this.getAttribute(\"dest\"));\n\t// Apply required cleanup\n\tswitch(this.getAttribute(\"cleanup\",\"semantic\")) {\n\t\tcase \"none\":\n\t\t\t// No cleanup\n\t\t\tbreak;\n\t\tcase \"efficiency\":\n\t\t\tdmpObject.diff_cleanupEfficiency(diffs);\n\t\t\tbreak;\n\t\tdefault: // case \"semantic\"\n\t\t\tdmpObject.diff_cleanupSemantic(diffs);\n\t\t\tbreak;\n\t}\n\t// Create the elements\n\tvar domContainer = this.document.createElement(\"div\"), \n\t\tdomDiff = this.createDiffDom(diffs);\n\tparent.insertBefore(domContainer,nextSibling);\n\t// Set variables\n\tthis.setVariable(\"diff-count\",diffs.reduce(function(acc,diff) {\n\t\tif(diff[0] !== dmp.DIFF_EQUAL) {\n\t\t\tacc++;\n\t\t}\n\t\treturn acc;\n\t},0).toString());\n\t// Render child widgets\n\tthis.renderChildren(domContainer,null);\n\t// Render the diff\n\tdomContainer.appendChild(domDiff);\n\t// Save our container\n\tthis.domNodes.push(domContainer);\n};\n\n/*\nCreate DOM elements representing a list of diffs\n*/\nDiffTextWidget.prototype.createDiffDom = function(diffs) {\n\tvar self = this;\n\t// Create the element and assign the attributes\n\tvar domPre = this.document.createElement(\"pre\"),\n\t\tdomCode = this.document.createElement(\"code\");\n\t$tw.utils.each(diffs,function(diff) {\n\t\tvar tag = diff[0] === dmp.DIFF_INSERT ? \"ins\" : (diff[0] === dmp.DIFF_DELETE ? \"del\" : \"span\"),\n\t\t\tclassName = diff[0] === dmp.DIFF_INSERT ? \"tc-diff-insert\" : (diff[0] === dmp.DIFF_DELETE ? \"tc-diff-delete\" : \"tc-diff-equal\"),\n\t\t\tdom = self.document.createElement(tag),\n\t\t\ttext = diff[1],\n\t\t\tcurrPos = 0,\n\t\t\tre = /([\\x00-\\x1F])/mg,\n\t\t\tmatch = re.exec(text),\n\t\t\tspan,\n\t\t\tprintable;\n\t\tdom.className = className;\n\t\twhile(match) {\n\t\t\tif(currPos < match.index) {\n\t\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos,match.index)));\n\t\t\t}\n\t\t\tspan = self.document.createElement(\"span\");\n\t\t\tspan.className = \"tc-diff-invisible\";\n\t\t\tprintable = self.invisibleCharacters[match[0]] || (\"[0x\" + match[0].charCodeAt(0).toString(16) + \"]\");\n\t\t\tspan.appendChild(self.document.createTextNode(printable));\n\t\t\tdom.appendChild(span);\n\t\t\tcurrPos = match.index + match[0].length;\n\t\t\tmatch = re.exec(text);\n\t\t}\n\t\tif(currPos < text.length) {\n\t\t\tdom.appendChild(self.document.createTextNode(text.slice(currPos)));\n\t\t}\n\t\tdomCode.appendChild(dom);\n\t});\n\tdomPre.appendChild(domCode);\n\treturn domPre;\n};\n\n/*\nCompute the internal state of the widget\n*/\nDiffTextWidget.prototype.execute = function() {\n\t// Make child widgets\n\tvar parseTreeNodes;\n\tif(this.parseTreeNode && this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\tparseTreeNodes = this.parseTreeNode.children;\n\t} else {\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: \"$:/language/Diffs/CountMessage\"}\n\t\t\t}\n\t\t}];\n\t}\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDiffTextWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.dest || changedAttributes.cleanup) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports[\"diff-text\"] = DiffTextWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/draggable.js": {
"title": "$:/core/modules/widgets/draggable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/draggable.js\ntype: application/javascript\nmodule-type: widget\n\nDraggable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DraggableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDraggableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDraggableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Sanitise the specified tag\n\tvar tag = this.draggableTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"div\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [\"tc-draggable\"];\n\tif(this.draggableClasses) {\n\t\tclasses.push(this.draggableClasses);\n\t}\n\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t// Add event handlers\n\t$tw.utils.makeDraggable({\n\t\tdomNode: domNode,\n\t\tdragTiddlerFn: function() {return self.getAttribute(\"tiddler\");},\n\t\tdragFilterFn: function() {return self.getAttribute(\"filter\");},\n\t\tstartActions: self.startActions,\n\t\tendActions: self.endActions,\n\t\twidget: this\n\t});\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nDraggableWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.draggableTag = this.getAttribute(\"tag\",\"div\");\n\tthis.draggableClasses = this.getAttribute(\"class\");\n\tthis.startActions = this.getAttribute(\"startactions\");\n\tthis.endActions = this.getAttribute(\"endactions\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDraggableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tag || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.draggable = DraggableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/droppable.js": {
"title": "$:/core/modules/widgets/droppable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/droppable.js\ntype: application/javascript\nmodule-type: widget\n\nDroppable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DroppableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDroppableWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDroppableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.droppableTag && $tw.config.htmlUnsafeElements.indexOf(this.droppableTag) === -1) {\n\t\ttag = this.droppableTag;\n\t}\n\t// Create element and assign classes\n\tvar domNode = this.document.createElement(tag),\n\t\tclasses = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-droppable\");\n\tdomNode.className = classes.join(\" \");\n\t// Add event handlers\n\tif(this.droppableEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"}\n\t\t]);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDroppableWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDroppableWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally. The hacky second condition is to resolve a problem with Firefox whereby there is an erroneous dragenter event if the node being dragged is within the dropzone\n\tif(this.currentlyEntered.length === 0 || (this.currentlyEntered.length === 1 && this.currentlyEntered[0] === $tw.dragInProgress)) {\n\t\tthis.currentlyEntered = [];\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDroppableWidget.prototype.handleDragEnterEvent = function(event) {\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\t// Set the drop effect\n\tevent.dataTransfer.dropEffect = this.droppableEffect;\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n\treturn false;\n};\n\nDroppableWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this;\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\tvar dataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Try to import the various data types we understand\n\t$tw.utils.importDataTransfer(dataTransfer,null,function(fieldsArray) {\n\t\tfieldsArray.forEach(function(fields) {\n\t\t\tself.performActions(fields.title || fields.text,event);\n\t\t});\n\t});\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n\treturn false;\n};\n\nDroppableWidget.prototype.performActions = function(title,event) {\n\tif(this.droppableActions) {\n\t\tvar modifierKey = event.ctrlKey && ! event.shiftKey ? \"ctrl\" : event.shiftKey && !event.ctrlKey ? \"shift\" : \n\t\t\t\tevent.ctrlKey && event.shiftKey ? \"ctrl-shift\" : \"normal\" ;\n\t\tthis.invokeActionString(this.droppableActions,this,event,{actionTiddler: title, modifier: modifierKey});\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDroppableWidget.prototype.execute = function() {\n\tthis.droppableActions = this.getAttribute(\"actions\");\n\tthis.droppableEffect = this.getAttribute(\"effect\",\"copy\");\n\tthis.droppableTag = this.getAttribute(\"tag\");\n\tthis.droppableClass = this.getAttribute(\"class\");\n\tthis.droppableEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDroppableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"] || changedAttributes.tag || changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.droppable = DroppableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/dropzone.js": {
"title": "$:/core/modules/widgets/dropzone.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/dropzone.js\ntype: application/javascript\nmodule-type: widget\n\nDropzone widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar DropZoneWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nDropZoneWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nDropZoneWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\tvar domNode = this.document.createElement(\"div\");\n\tdomNode.className = this.dropzoneClass || \"tc-dropzone\";\n\t// Add event handlers\n\tif(this.dropzoneEnable) {\n\t\t$tw.utils.addEventListeners(domNode,[\n\t\t\t{name: \"dragenter\", handlerObject: this, handlerMethod: \"handleDragEnterEvent\"},\n\t\t\t{name: \"dragover\", handlerObject: this, handlerMethod: \"handleDragOverEvent\"},\n\t\t\t{name: \"dragleave\", handlerObject: this, handlerMethod: \"handleDragLeaveEvent\"},\n\t\t\t{name: \"drop\", handlerObject: this, handlerMethod: \"handleDropEvent\"},\n\t\t\t{name: \"paste\", handlerObject: this, handlerMethod: \"handlePasteEvent\"},\n\t\t\t{name: \"dragend\", handlerObject: this, handlerMethod: \"handleDragEndEvent\"}\n\t\t]);\t\t\n\t}\n\tdomNode.addEventListener(\"click\",function (event) {\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n\t// Stack of outstanding enter/leave events\n\tthis.currentlyEntered = [];\n};\n\nDropZoneWidget.prototype.enterDrag = function(event) {\n\tif(this.currentlyEntered.indexOf(event.target) === -1) {\n\t\tthis.currentlyEntered.push(event.target);\n\t}\n\t// If we're entering for the first time we need to apply highlighting\n\t$tw.utils.addClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.leaveDrag = function(event) {\n\tvar pos = this.currentlyEntered.indexOf(event.target);\n\tif(pos !== -1) {\n\t\tthis.currentlyEntered.splice(pos,1);\n\t}\n\t// Remove highlighting if we're leaving externally\n\tif(this.currentlyEntered.length === 0) {\n\t\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t}\n};\n\nDropZoneWidget.prototype.handleDragEnterEvent = function(event) {\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tthis.enterDrag(event);\n\t// Tell the browser that we're ready to handle the drop\n\tevent.preventDefault();\n\t// Tell the browser not to ripple the drag up to any parent drop handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handleDragOverEvent = function(event) {\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\t// Tell the browser that we're still interested in the drop\n\tevent.preventDefault();\n\tevent.dataTransfer.dropEffect = \"copy\"; // Explicitly show this is a copy\n};\n\nDropZoneWidget.prototype.handleDragLeaveEvent = function(event) {\n\tthis.leaveDrag(event);\n};\n\nDropZoneWidget.prototype.handleDragEndEvent = function(event) {\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n};\n\nDropZoneWidget.prototype.handleDropEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\tthis.leaveDrag(event);\n\t// Check for being over a TEXTAREA or INPUT\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) !== -1) {\n\t\treturn false;\n\t}\n\t// Check for this window being the source of the drag\n\tif($tw.dragInProgress) {\n\t\treturn false;\n\t}\n\tvar self = this,\n\t\tdataTransfer = event.dataTransfer;\n\t// Remove highlighting\n\t$tw.utils.removeClass(this.domNodes[0],\"tc-dragover\");\n\t// Import any files in the drop\n\tvar numFiles = 0;\n\tif(dataTransfer.files) {\n\t\tnumFiles = this.wiki.readFiles(dataTransfer.files,{\n\t\t\tcallback: readFileCallback,\n\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t});\n\t}\n\t// Try to import the various data types we understand\n\tif(numFiles === 0) {\n\t\t$tw.utils.importDataTransfer(dataTransfer,this.wiki.generateNewTitle(\"Untitled\"),readFileCallback);\n\t}\n\t// Tell the browser that we handled the drop\n\tevent.preventDefault();\n\t// Stop the drop ripple up to any parent handlers\n\tevent.stopPropagation();\n};\n\nDropZoneWidget.prototype.handlePasteEvent = function(event) {\n\tvar self = this,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify(tiddlerFieldsArray)});\n\t\t};\n\t// Let the browser handle it if we're in a textarea or input box\n\tif([\"TEXTAREA\",\"INPUT\"].indexOf(event.target.tagName) == -1 && !event.target.isContentEditable) {\n\t\tvar self = this,\n\t\t\titems = event.clipboardData.items;\n\t\t// Enumerate the clipboard items\n\t\tfor(var t = 0; t<items.length; t++) {\n\t\t\tvar item = items[t];\n\t\t\tif(item.kind === \"file\") {\n\t\t\t\t// Import any files\n\t\t\t\tthis.wiki.readFile(item.getAsFile(),{\n\t\t\t\t\tcallback: readFileCallback,\n\t\t\t\t\tdeserializer: this.dropzoneDeserializer\n\t\t\t\t});\n\t\t\t} else if(item.kind === \"string\") {\n\t\t\t\t// Create tiddlers from string items\n\t\t\t\tvar type = item.type;\n\t\t\t\titem.getAsString(function(str) {\n\t\t\t\t\tvar tiddlerFields = {\n\t\t\t\t\t\ttitle: self.wiki.generateNewTitle(\"Untitled\"),\n\t\t\t\t\t\ttext: str,\n\t\t\t\t\t\ttype: type\n\t\t\t\t\t};\n\t\t\t\t\tif($tw.log.IMPORT) {\n\t\t\t\t\t\tconsole.log(\"Importing string '\" + str + \"', type: '\" + type + \"'\");\n\t\t\t\t\t}\n\t\t\t\t\tself.dispatchEvent({type: \"tm-import-tiddlers\", param: JSON.stringify([tiddlerFields])});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t// Tell the browser that we've handled the paste\n\t\tevent.stopPropagation();\n\t\tevent.preventDefault();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nDropZoneWidget.prototype.execute = function() {\n\tthis.dropzoneClass = this.getAttribute(\"class\");\n\tthis.dropzoneDeserializer = this.getAttribute(\"deserializer\");\n\tthis.dropzoneEnable = (this.getAttribute(\"enable\") || \"yes\") === \"yes\";\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nDropZoneWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.enable) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.dropzone = DropZoneWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-binary.js": {
"title": "$:/core/modules/widgets/edit-binary.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-binary.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-binary widget; placeholder for editing binary tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar BINARY_WARNING_MESSAGE = \"$:/core/ui/BinaryWarning\";\nvar EXPORT_BUTTON_IMAGE = \"$:/core/images/export-button\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBinaryWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBinaryWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBinaryWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBinaryWidget.prototype.execute = function() {\n\t// Get our parameters\n\tvar editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tvar tiddler = this.wiki.getTiddler(editTitle);\n\tvar type = tiddler.fields.type;\n\tvar text = tiddler.fields.text;\n\t// Transclude the binary data tiddler warning message\n\tvar warn = {\n\t\ttype: \"element\",\n\t\ttag: \"p\",\n\t\tchildren: [{\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: BINARY_WARNING_MESSAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Create download link based on draft tiddler title\n\tvar link = {\n\t\ttype: \"element\",\n\t\ttag: \"a\",\n\t\tattributes: {\n\t\t\ttitle: {type: \"indirect\", textReference: \"!!draft.title\"},\n\t\t\tdownload: {type: \"indirect\", textReference: \"!!draft.title\"}\n\t\t},\n\t\tchildren: [{\n\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {type: \"string\", value: EXPORT_BUTTON_IMAGE}\n\t\t\t}\n\t\t}]\n\t};\n\t// Set the link href to internal data URI (no external)\n\tif(text) {\n\t\tlink.attributes.href = {\n\t\t\ttype: \"string\", \n\t\t\tvalue: \"data:\" + type + \";base64,\" + text\n\t\t};\n\t}\n\t// Combine warning message and download link in a div\n\tvar element = {\n\t\ttype: \"element\",\n\t\ttag: \"div\",\n\t\tattributes: {\n\t\t\tclass: {type: \"string\", value: \"tc-binary-warning\"}\n\t\t},\n\t\tchildren: [warn, link]\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets([element]);\n};\n\n/*\nRefresh by refreshing our child widget\n*/\nEditBinaryWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"edit-binary\"] = EditBinaryWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-bitmap.js": {
"title": "$:/core/modules/widgets/edit-bitmap.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-bitmap.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-bitmap widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Default image sizes\nvar DEFAULT_IMAGE_WIDTH = 600,\n\tDEFAULT_IMAGE_HEIGHT = 370,\n\tDEFAULT_IMAGE_TYPE = \"image/png\";\n\n// Configuration tiddlers\nvar LINE_WIDTH_TITLE = \"$:/config/BitmapEditor/LineWidth\",\n\tLINE_COLOUR_TITLE = \"$:/config/BitmapEditor/Colour\",\n\tLINE_OPACITY_TITLE = \"$:/config/BitmapEditor/Opacity\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditBitmapWidget = function(parseTreeNode,options) {\n\t// Initialise the editor operations if they've not been done already\n\tif(!this.editorOperations) {\n\t\tEditBitmapWidget.prototype.editorOperations = {};\n\t\t$tw.modules.applyMethods(\"bitmapeditoroperation\",this.editorOperations);\n\t}\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditBitmapWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditBitmapWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the wrapper for the toolbar and render its content\n\tthis.toolbarNode = this.document.createElement(\"div\");\n\tthis.toolbarNode.className = \"tc-editor-toolbar\";\n\tparent.insertBefore(this.toolbarNode,nextSibling);\n\tthis.domNodes.push(this.toolbarNode);\n\t// Create the on-screen canvas\n\tthis.canvasDomNode = $tw.utils.domMaker(\"canvas\",{\n\t\tdocument: this.document,\n\t\t\"class\":\"tc-edit-bitmapeditor\",\n\t\teventListeners: [{\n\t\t\tname: \"touchstart\", handlerObject: this, handlerMethod: \"handleTouchStartEvent\"\n\t\t},{\n\t\t\tname: \"touchmove\", handlerObject: this, handlerMethod: \"handleTouchMoveEvent\"\n\t\t},{\n\t\t\tname: \"touchend\", handlerObject: this, handlerMethod: \"handleTouchEndEvent\"\n\t\t},{\n\t\t\tname: \"mousedown\", handlerObject: this, handlerMethod: \"handleMouseDownEvent\"\n\t\t},{\n\t\t\tname: \"mousemove\", handlerObject: this, handlerMethod: \"handleMouseMoveEvent\"\n\t\t},{\n\t\t\tname: \"mouseup\", handlerObject: this, handlerMethod: \"handleMouseUpEvent\"\n\t\t}]\n\t});\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Render toolbar child widgets\n\tthis.renderChildren(this.toolbarNode,null);\n\t// // Insert the elements into the DOM\n\tparent.insertBefore(this.canvasDomNode,nextSibling);\n\tthis.domNodes.push(this.canvasDomNode);\n\t// Load the image into the canvas\n\tif($tw.browser) {\n\t\tthis.loadCanvas();\n\t}\n\t// Add widget message listeners\n\tthis.addEventListeners([\n\t\t{type: \"tm-edit-bitmap-operation\", handler: \"handleEditBitmapOperationMessage\"}\n\t]);\n};\n\n/*\nHandle an edit bitmap operation message from the toolbar\n*/\nEditBitmapWidget.prototype.handleEditBitmapOperationMessage = function(event) {\n\t// Invoke the handler\n\tvar handler = this.editorOperations[event.param];\n\tif(handler) {\n\t\thandler.call(this,event);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditBitmapWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nJust refresh the toolbar\n*/\nEditBitmapWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nSet the bitmap size variables and refresh the toolbar\n*/\nEditBitmapWidget.prototype.refreshToolbar = function() {\n\t// Set the width and height variables\n\tthis.setVariable(\"tv-bitmap-editor-width\",this.canvasDomNode.width + \"px\");\n\tthis.setVariable(\"tv-bitmap-editor-height\",this.canvasDomNode.height + \"px\");\n\t// Refresh each of our child widgets\n\t$tw.utils.each(this.children,function(childWidget) {\n\t\tchildWidget.refreshSelf();\n\t});\n};\n\nEditBitmapWidget.prototype.loadCanvas = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle),\n\t\tcurrImage = new Image();\n\t// Set up event handlers for loading the image\n\tvar self = this;\n\tcurrImage.onload = function() {\n\t\t// Copy the image to the on-screen canvas\n\t\tself.initCanvas(self.canvasDomNode,currImage.width,currImage.height,currImage);\n\t\t// And also copy the current bitmap to the off-screen canvas\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,currImage.width,currImage.height,currImage);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\tcurrImage.onerror = function() {\n\t\t// Set the on-screen canvas size and clear it\n\t\tself.initCanvas(self.canvasDomNode,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the off-screen canvas size and clear it\n\t\tself.currCanvas = self.document.createElement(\"canvas\");\n\t\tself.initCanvas(self.currCanvas,DEFAULT_IMAGE_WIDTH,DEFAULT_IMAGE_HEIGHT);\n\t\t// Set the width and height input boxes\n\t\tself.refreshToolbar();\n\t};\n\t// Get the current bitmap into an image object\n\tif(tiddler && tiddler.fields.type && tiddler.fields.text) {\n\t\tcurrImage.src = \"data:\" + tiddler.fields.type + \";base64,\" + tiddler.fields.text;\t\t\n\t} else {\n\t\tcurrImage.width = DEFAULT_IMAGE_WIDTH;\n\t\tcurrImage.height = DEFAULT_IMAGE_HEIGHT;\n\t\tcurrImage.onerror();\n\t}\n};\n\nEditBitmapWidget.prototype.initCanvas = function(canvas,width,height,image) {\n\tcanvas.width = width;\n\tcanvas.height = height;\n\tvar ctx = canvas.getContext(\"2d\");\n\tif(image) {\n\t\tctx.drawImage(image,0,0);\n\t} else {\n\t\tctx.fillStyle = \"#fff\";\n\t\tctx.fillRect(0,0,canvas.width,canvas.height);\n\t}\n};\n\n/*\n** Change the size of the canvas, preserving the current image\n*/\nEditBitmapWidget.prototype.changeCanvasSize = function(newWidth,newHeight) {\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\");\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\n/*\n** Rotate the canvas left by 90 degrees\n*/\nEditBitmapWidget.prototype.rotateCanvasLeft = function() {\n\t// Get the current size of the image\n\tvar origWidth = this.currCanvas.width,\n\t\torigHeight = this.currCanvas.height;\n\t// Create and size a new canvas\n\tvar newCanvas = this.document.createElement(\"canvas\"),\n\t\tnewWidth = origHeight,\n\t\tnewHeight = origWidth;\n\tthis.initCanvas(newCanvas,newWidth,newHeight);\n\t// Copy the old image\n\tvar ctx = newCanvas.getContext(\"2d\");\n\tctx.save();\n\tctx.translate(newWidth / 2,newHeight / 2);\n\tctx.rotate(-Math.PI / 2);\n\tctx.drawImage(this.currCanvas,-origWidth / 2,-origHeight / 2);\n\tctx.restore();\n\t// Set the new canvas as the current one\n\tthis.currCanvas = newCanvas;\n\t// Set the size of the onscreen canvas\n\tthis.canvasDomNode.width = newWidth;\n\tthis.canvasDomNode.height = newHeight;\n\t// Paint the onscreen canvas with the offscreen canvas\n\tctx = this.canvasDomNode.getContext(\"2d\");\n\tctx.drawImage(this.currCanvas,0,0);\n};\n\nEditBitmapWidget.prototype.handleTouchStartEvent = function(event) {\n\tthis.brushDown = true;\n\tthis.strokeStart(event.touches[0].clientX,event.touches[0].clientY);\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.touches[0].clientX,event.touches[0].clientY);\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleTouchEndEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t}\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseDownEvent = function(event) {\n\tthis.strokeStart(event.clientX,event.clientY);\n\tthis.brushDown = true;\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nEditBitmapWidget.prototype.handleMouseMoveEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.strokeMove(event.clientX,event.clientY);\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.handleMouseUpEvent = function(event) {\n\tif(this.brushDown) {\n\t\tthis.brushDown = false;\n\t\tthis.strokeEnd();\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn false;\n\t}\n\treturn true;\n};\n\nEditBitmapWidget.prototype.adjustCoordinates = function(x,y) {\n\tvar canvasRect = this.canvasDomNode.getBoundingClientRect(),\n\t\tscale = this.canvasDomNode.width/canvasRect.width;\n\treturn {x: (x - canvasRect.left) * scale, y: (y - canvasRect.top) * scale};\n};\n\nEditBitmapWidget.prototype.strokeStart = function(x,y) {\n\t// Start off a new stroke\n\tthis.stroke = [this.adjustCoordinates(x,y)];\n};\n\nEditBitmapWidget.prototype.strokeMove = function(x,y) {\n\tvar ctx = this.canvasDomNode.getContext(\"2d\"),\n\t\tt;\n\t// Add the new position to the end of the stroke\n\tthis.stroke.push(this.adjustCoordinates(x,y));\n\t// Redraw the previous image\n\tctx.drawImage(this.currCanvas,0,0);\n\t// Render the stroke\n\tctx.globalAlpha = parseFloat(this.wiki.getTiddlerText(LINE_OPACITY_TITLE,\"1.0\"));\n\tctx.strokeStyle = this.wiki.getTiddlerText(LINE_COLOUR_TITLE,\"#ff0\");\n\tctx.lineWidth = parseFloat(this.wiki.getTiddlerText(LINE_WIDTH_TITLE,\"3\"));\n\tctx.lineCap = \"round\";\n\tctx.lineJoin = \"round\";\n\tctx.beginPath();\n\tctx.moveTo(this.stroke[0].x,this.stroke[0].y);\n\tfor(t=1; t<this.stroke.length-1; t++) {\n\t\tvar s1 = this.stroke[t],\n\t\t\ts2 = this.stroke[t-1],\n\t\t\ttx = (s1.x + s2.x)/2,\n\t\t\tty = (s1.y + s2.y)/2;\n\t\tctx.quadraticCurveTo(s2.x,s2.y,tx,ty);\n\t}\n\tctx.stroke();\n};\n\nEditBitmapWidget.prototype.strokeEnd = function() {\n\t// Copy the bitmap to the off-screen canvas\n\tvar ctx = this.currCanvas.getContext(\"2d\");\n\tctx.drawImage(this.canvasDomNode,0,0);\n\t// Save the image into the tiddler\n\tthis.saveChanges();\n};\n\nEditBitmapWidget.prototype.saveChanges = function() {\n\tvar tiddler = this.wiki.getTiddler(this.editTitle) || new $tw.Tiddler({title: this.editTitle,type: DEFAULT_IMAGE_TYPE});\n\t// data URIs look like \"data:<type>;base64,<text>\"\n\tvar dataURL = this.canvasDomNode.toDataURL(tiddler.fields.type),\n\t\tposColon = dataURL.indexOf(\":\"),\n\t\tposSemiColon = dataURL.indexOf(\";\"),\n\t\tposComma = dataURL.indexOf(\",\"),\n\t\ttype = dataURL.substring(posColon+1,posSemiColon),\n\t\ttext = dataURL.substring(posComma+1);\n\tvar update = {type: type, text: text};\n\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getModificationFields(),tiddler,update,this.wiki.getCreationFields()));\n};\n\nexports[\"edit-bitmap\"] = EditBitmapWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-shortcut.js": {
"title": "$:/core/modules/widgets/edit-shortcut.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-shortcut.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to display an editable keyboard shortcut\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditShortcutWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditShortcutWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditShortcutWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.inputNode = this.document.createElement(\"input\");\n\t// Assign classes\n\tif(this.shortcutClass) {\n\t\tthis.inputNode.className = this.shortcutClass;\t\t\n\t}\n\t// Assign other attributes\n\tif(this.shortcutStyle) {\n\t\tthis.inputNode.setAttribute(\"style\",this.shortcutStyle);\n\t}\n\tif(this.shortcutTooltip) {\n\t\tthis.inputNode.setAttribute(\"title\",this.shortcutTooltip);\n\t}\n\tif(this.shortcutPlaceholder) {\n\t\tthis.inputNode.setAttribute(\"placeholder\",this.shortcutPlaceholder);\n\t}\n\tif(this.shortcutAriaLabel) {\n\t\tthis.inputNode.setAttribute(\"aria-label\",this.shortcutAriaLabel);\n\t}\n\t// Assign the current shortcut\n\tthis.updateInputNode();\n\t// Add event handlers\n\t$tw.utils.addEventListeners(this.inputNode,[\n\t\t{name: \"keydown\", handlerObject: this, handlerMethod: \"handleKeydownEvent\"}\n\t]);\n\t// Link into the DOM\n\tparent.insertBefore(this.inputNode,nextSibling);\n\tthis.domNodes.push(this.inputNode);\n\t// Focus the input Node if focus === \"yes\" or focus === \"true\"\n\tif(this.shortcutFocus === \"yes\" || this.shortcutFocus === \"true\") {\n\t\tthis.focus();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nEditShortcutWidget.prototype.execute = function() {\n\tthis.shortcutTiddler = this.getAttribute(\"tiddler\");\n\tthis.shortcutField = this.getAttribute(\"field\");\n\tthis.shortcutIndex = this.getAttribute(\"index\");\n\tthis.shortcutPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.shortcutDefault = this.getAttribute(\"default\",\"\");\n\tthis.shortcutClass = this.getAttribute(\"class\");\n\tthis.shortcutStyle = this.getAttribute(\"style\");\n\tthis.shortcutTooltip = this.getAttribute(\"tooltip\");\n\tthis.shortcutAriaLabel = this.getAttribute(\"aria-label\");\n\tthis.shortcutFocus = this.getAttribute(\"focus\");\n};\n\n/*\nUpdate the value of the input node\n*/\nEditShortcutWidget.prototype.updateInputNode = function() {\n\tif(this.shortcutField) {\n\t\tvar tiddler = this.wiki.getTiddler(this.shortcutTiddler);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,this.shortcutField)) {\n\t\t\tthis.inputNode.value = tiddler.getFieldString(this.shortcutField);\n\t\t} else {\n\t\t\tthis.inputNode.value = this.shortcutDefault;\n\t\t}\n\t} else if(this.shortcutIndex) {\n\t\tthis.inputNode.value = this.wiki.extractTiddlerDataItem(this.shortcutTiddler,this.shortcutIndex,this.shortcutDefault);\n\t} else {\n\t\tthis.inputNode.value = this.wiki.getTiddlerText(this.shortcutTiddler,this.shortcutDefault);\n\t}\n};\n\n/*\nHandle a dom \"keydown\" event\n*/\nEditShortcutWidget.prototype.handleKeydownEvent = function(event) {\n\t// Ignore shift, ctrl, meta, alt\n\tif(event.keyCode && $tw.keyboardManager.getModifierKeys().indexOf(event.keyCode) === -1) {\n\t\t// Get the shortcut text representation\n\t\tvar value = $tw.keyboardManager.getPrintableShortcuts([{\n\t\t\tctrlKey: event.ctrlKey,\n\t\t\tshiftKey: event.shiftKey,\n\t\t\taltKey: event.altKey,\n\t\t\tmetaKey: event.metaKey,\n\t\t\tkeyCode: event.keyCode\n\t\t}]);\n\t\tif(value.length > 0) {\n\t\t\tthis.wiki.setText(this.shortcutTiddler,this.shortcutField,this.shortcutIndex,value[0]);\n\t\t}\n\t\t// Ignore the keydown if it was already handled\n\t\tevent.preventDefault();\n\t\tevent.stopPropagation();\n\t\treturn true;\t\t\n\t} else {\n\t\treturn false;\n\t}\n};\n\n/*\nfocus the input node\n*/\nEditShortcutWidget.prototype.focus = function() {\n\tif(this.inputNode.focus && this.inputNode.select) {\n\t\tthis.inputNode.focus();\n\t\tthis.inputNode.select();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget needed re-rendering\n*/\nEditShortcutWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.placeholder || changedAttributes[\"default\"] || changedAttributes[\"class\"] || changedAttributes.style || changedAttributes.tooltip || changedAttributes[\"aria-label\"] || changedAttributes.focus) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedTiddlers[this.shortcutTiddler]) {\n\t\tthis.updateInputNode();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports[\"edit-shortcut\"] = EditShortcutWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit-text.js": {
"title": "$:/core/modules/widgets/edit-text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit-text.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-text widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tFramedEngine = require(\"$:/core/modules/editor/engines/framed.js\").FramedEngine,\n\tSimpleEngine = require(\"$:/core/modules/editor/engines/simple.js\").SimpleEngine;\n\nexports[\"edit-text\"] = editTextWidgetFactory(FramedEngine,SimpleEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/edit.js": {
"title": "$:/core/modules/widgets/edit.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/edit.js\ntype: application/javascript\nmodule-type: widget\n\nEdit widget is a meta-widget chooses the appropriate actual editting widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EditWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEditWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEditWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n// Mappings from content type to editor type are stored in tiddlers with this prefix\nvar EDITOR_MAPPING_PREFIX = \"$:/config/EditorTypeMappings/\";\n\n/*\nCompute the internal state of the widget\n*/\nEditWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.editTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.editField = this.getAttribute(\"field\",\"text\");\n\tthis.editIndex = this.getAttribute(\"index\");\n\tthis.editClass = this.getAttribute(\"class\");\n\tthis.editPlaceholder = this.getAttribute(\"placeholder\");\n\tthis.editTabIndex = this.getAttribute(\"tabindex\");\n\tthis.editFocus = this.getAttribute(\"focus\",\"\");\n\t// Choose the appropriate edit widget\n\tthis.editorType = this.getEditorType();\n\t// Make the child widgets\n\tthis.makeChildWidgets([{\n\t\ttype: \"edit-\" + this.editorType,\n\t\tattributes: {\n\t\t\ttiddler: {type: \"string\", value: this.editTitle},\n\t\t\tfield: {type: \"string\", value: this.editField},\n\t\t\tindex: {type: \"string\", value: this.editIndex},\n\t\t\t\"class\": {type: \"string\", value: this.editClass},\n\t\t\t\"placeholder\": {type: \"string\", value: this.editPlaceholder},\n\t\t\t\"tabindex\": {type: \"string\", value: this.editTabIndex},\n\t\t\t\"focus\": {type: \"string\", value: this.editFocus}\n\t\t},\n\t\tchildren: this.parseTreeNode.children\n\t}]);\n};\n\nEditWidget.prototype.getEditorType = function() {\n\t// Get the content type of the thing we're editing\n\tvar type;\n\tif(this.editField === \"text\") {\n\t\tvar tiddler = this.wiki.getTiddler(this.editTitle);\n\t\tif(tiddler) {\n\t\t\ttype = tiddler.fields.type;\n\t\t}\n\t}\n\ttype = type || \"text/vnd.tiddlywiki\";\n\tvar editorType = this.wiki.getTiddlerText(EDITOR_MAPPING_PREFIX + type);\n\tif(!editorType) {\n\t\tvar typeInfo = $tw.config.contentTypeInfo[type];\n\t\tif(typeInfo && typeInfo.encoding === \"base64\") {\n\t\t\teditorType = \"binary\";\n\t\t} else {\n\t\t\teditorType = \"text\";\n\t\t}\n\t}\n\treturn editorType;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEditWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh if an attribute has changed, or the type associated with the target tiddler has changed\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.tabindex || (changedTiddlers[this.editTitle] && this.getEditorType() !== this.editorType)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.edit = EditWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/element.js": {
"title": "$:/core/modules/widgets/element.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/element.js\ntype: application/javascript\nmodule-type: widget\n\nElement widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ElementWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nElementWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nElementWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Neuter blacklisted elements\n\tvar tag = this.parseTreeNode.tag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"safe-\" + tag;\n\t}\n\t// Adjust headings by the current base level\n\tvar headingLevel = [\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\"].indexOf(tag);\n\tif(headingLevel !== -1) {\n\t\tvar baseLevel = parseInt(this.getVariable(\"tv-adjust-heading-level\",\"0\"),10) || 0;\n\t\theadingLevel = Math.min(Math.max(headingLevel + 1 + baseLevel,1),6);\n\t\ttag = \"h\" + headingLevel;\n\t}\n\t// Create the DOM node\n\tvar domNode = this.document.createElementNS(this.namespace,tag);\n\tthis.assignAttributes(domNode,{excludeEventAttributes: true});\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nElementWidget.prototype.execute = function() {\n\t// Select the namespace for the tag\n\tvar tagNamespaces = {\n\t\t\tsvg: \"http://www.w3.org/2000/svg\",\n\t\t\tmath: \"http://www.w3.org/1998/Math/MathML\",\n\t\t\tbody: \"http://www.w3.org/1999/xhtml\"\n\t\t};\n\tthis.namespace = tagNamespaces[this.parseTreeNode.tag];\n\tif(this.namespace) {\n\t\tthis.setVariable(\"namespace\",this.namespace);\n\t} else {\n\t\tthis.namespace = this.getVariable(\"namespace\",{defaultValue: \"http://www.w3.org/1999/xhtml\"});\n\t}\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nElementWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\thasChangedAttributes = $tw.utils.count(changedAttributes) > 0;\n\tif(hasChangedAttributes) {\n\t\t// Update our attributes\n\t\tthis.assignAttributes(this.domNodes[0],{excludeEventAttributes: true});\n\t}\n\treturn this.refreshChildren(changedTiddlers) || hasChangedAttributes;\n};\n\nexports.element = ElementWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/encrypt.js": {
"title": "$:/core/modules/widgets/encrypt.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/encrypt.js\ntype: application/javascript\nmodule-type: widget\n\nEncrypt widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EncryptWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEncryptWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEncryptWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.encryptedText);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEncryptWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.filter = this.getAttribute(\"filter\",\"[!is[system]]\");\n\t// Encrypt the filtered tiddlers\n\tvar tiddlers = this.wiki.filterTiddlers(this.filter),\n\t\tjson = {},\n\t\tself = this;\n\t$tw.utils.each(tiddlers,function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title),\n\t\t\tjsonTiddler = {};\n\t\tfor(var f in tiddler.fields) {\n\t\t\tjsonTiddler[f] = tiddler.getFieldString(f);\n\t\t}\n\t\tjson[title] = jsonTiddler;\n\t});\n\tthis.encryptedText = $tw.utils.htmlEncode($tw.crypto.encrypt(JSON.stringify(json)));\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEncryptWidget.prototype.refresh = function(changedTiddlers) {\n\t// We don't need to worry about refreshing because the encrypt widget isn't for interactive use\n\treturn false;\n};\n\nexports.encrypt = EncryptWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/entity.js": {
"title": "$:/core/modules/widgets/entity.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/entity.js\ntype: application/javascript\nmodule-type: widget\n\nHTML entity widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar EntityWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nEntityWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nEntityWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar entityString = this.getAttribute(\"entity\",this.parseTreeNode.entity || \"\"),\n\t\ttextNode = this.document.createTextNode($tw.utils.entityDecode(entityString));\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nEntityWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nEntityWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.entity) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.entity = EntityWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fieldmangler.js": {
"title": "$:/core/modules/widgets/fieldmangler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fieldmangler.js\ntype: application/javascript\nmodule-type: widget\n\nField mangler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldManglerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-remove-field\", handler: \"handleRemoveFieldEvent\"},\n\t\t{type: \"tm-add-field\", handler: \"handleAddFieldEvent\"},\n\t\t{type: \"tm-remove-tag\", handler: \"handleRemoveTagEvent\"},\n\t\t{type: \"tm-add-tag\", handler: \"handleAddTagEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldManglerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldManglerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldManglerWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.mangleTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldManglerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nFieldManglerWidget.prototype.handleRemoveFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tdeletion = {};\n\tdeletion[event.param] = undefined;\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,deletion));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddFieldEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\taddition = this.wiki.getModificationFields(),\n\t\thadInvalidFieldName = false,\n\t\taddField = function(name,value) {\n\t\t\tvar trimmedName = name.toLowerCase().trim();\n\t\t\tif(!$tw.utils.isValidFieldName(trimmedName)) {\n\t\t\t\tif(!hadInvalidFieldName) {\n\t\t\t\t\talert($tw.language.getString(\n\t\t\t\t\t\t\"InvalidFieldName\",\n\t\t\t\t\t\t{variables:\n\t\t\t\t\t\t\t{fieldName: trimmedName}\n\t\t\t\t\t\t}\n\t\t\t\t\t));\n\t\t\t\t\thadInvalidFieldName = true;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif(!value && tiddler) {\n\t\t\t\t\tvalue = tiddler.fields[trimmedName];\n\t\t\t\t}\n\t\t\t\taddition[trimmedName] = value || \"\";\n\t\t\t}\n\t\t\treturn;\n\t\t};\n\taddition.title = this.mangleTitle;\n\tif(typeof event.param === \"string\") {\n\t\taddField(event.param,\"\");\n\t}\n\tif(typeof event.paramObject === \"object\") {\n\t\tfor(var name in event.paramObject) {\n\t\t\taddField(name,event.paramObject[name]);\n\t\t}\n\t}\n\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,addition));\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleRemoveTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && tiddler.fields.tags) {\n\t\tvar p = tiddler.fields.tags.indexOf(event.param);\n\t\tif(p !== -1) {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\tmodification.tags.splice(p,1);\n\t\t\tif(modification.tags.length === 0) {\n\t\t\t\tmodification.tags = undefined;\n\t\t\t}\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\n\t\t}\n\t}\n\treturn true;\n};\n\nFieldManglerWidget.prototype.handleAddTagEvent = function(event) {\n\tvar tiddler = this.wiki.getTiddler(this.mangleTitle),\n\t\tmodification = this.wiki.getModificationFields();\n\tif(tiddler && typeof event.param === \"string\") {\n\t\tvar tag = event.param.trim();\n\t\tif(tag !== \"\") {\n\t\t\tmodification.tags = (tiddler.fields.tags || []).slice(0);\n\t\t\t$tw.utils.pushTop(modification.tags,tag);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,modification));\t\t\t\n\t\t}\n\t} else if(typeof event.param === \"string\" && event.param.trim() !== \"\" && this.mangleTitle.trim() !== \"\") {\n\t\tvar tag = [];\n\t\ttag.push(event.param.trim());\n\t\tthis.wiki.addTiddler(new $tw.Tiddler({title: this.mangleTitle, tags: tag},modification));\n\t}\n\treturn true;\n};\n\nexports.fieldmangler = FieldManglerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/fields.js": {
"title": "$:/core/modules/widgets/fields.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/fields.js\ntype: application/javascript\nmodule-type: widget\n\nFields widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar FieldsWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nFieldsWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nFieldsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar textNode = this.document.createTextNode(this.text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nFieldsWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.template = this.getAttribute(\"template\");\n\tthis.sort = this.getAttribute(\"sort\",\"yes\") === \"yes\";\n\tthis.sortReverse = this.getAttribute(\"sortReverse\",\"no\") === \"yes\";\n\tthis.exclude = this.getAttribute(\"exclude\");\n\tthis.include = this.getAttribute(\"include\",null);\n\tthis.stripTitlePrefix = this.getAttribute(\"stripTitlePrefix\",\"no\") === \"yes\";\n\t// Get the value to display\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\n\t// Get the inclusion and exclusion list\n\tvar excludeArr = (this.exclude) ? this.exclude.split(\" \") : [\"text\"];\n\t// Include takes precedence\n\tvar includeArr = (this.include) ? this.include.split(\" \") : null;\n\n\t// Compose the template\n\tvar text = [];\n\tif(this.template && tiddler) {\n\t\tvar fields = [];\n\t\tif (includeArr) { // Include takes precedence\n\t\t\tfor(var i=0; i<includeArr.length; i++) {\n\t\t\t\tif(tiddler.fields[includeArr[i]]) {\n\t\t\t\t\tfields.push(includeArr[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tfor(var fieldName in tiddler.fields) {\n\t\t\t\tif(excludeArr.indexOf(fieldName) === -1) {\n\t\t\t\t\tfields.push(fieldName);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tif (this.sort) fields.sort();\n\t\tif (this.sortReverse) fields.reverse();\n\t\tfor(var f=0, fmax=fields.length; f<fmax; f++) {\n\t\t\tfieldName = fields[f];\n\t\t\tvar row = this.template,\n\t\t\t\tvalue = tiddler.getFieldString(fieldName);\n\t\t\tif(this.stripTitlePrefix && fieldName === \"title\") {\n\t\t\t\tvar reStrip = /^\\{[^\\}]+\\}(.+)/mg,\n\t\t\t\t\treMatch = reStrip.exec(value);\n\t\t\t\tif(reMatch) {\n\t\t\t\t\tvalue = reMatch[1];\n\t\t\t\t}\n\t\t\t}\n\t\t\trow = $tw.utils.replaceString(row,\"$name$\",fieldName);\n\t\t\trow = $tw.utils.replaceString(row,\"$value$\",value);\n\t\t\trow = $tw.utils.replaceString(row,\"$encoded_value$\",$tw.utils.htmlEncode(value));\n\t\t\ttext.push(row);\n\t\t}\n\t}\n\tthis.text = text.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nFieldsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif( changedAttributes.tiddler || changedAttributes.template || changedAttributes.exclude ||\n\t\tchangedAttributes.include || changedAttributes.sort || changedAttributes.sortReverse ||\n\t\tchangedTiddlers[this.tiddlerTitle] || changedAttributes.stripTitlePrefix) {\n\t\t\tthis.refreshSelf();\n\t\t\treturn true;\n\t} else {\n\t\treturn false;\n\t}\n};\n\nexports.fields = FieldsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/image.js": {
"title": "$:/core/modules/widgets/image.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/image.js\ntype: application/javascript\nmodule-type: widget\n\nThe image widget displays an image referenced with an external URI or with a local tiddler title.\n\n```\n<$image src=\"TiddlerTitle\" width=\"320\" height=\"400\" class=\"classnames\">\n```\n\nThe image source can be the title of an existing tiddler or the URL of an external image.\n\nExternal images always generate an HTML `<img>` tag.\n\nTiddlers that have a _canonical_uri field generate an HTML `<img>` tag with the src attribute containing the URI.\n\nTiddlers that contain image data generate an HTML `<img>` tag with the src attribute containing a base64 representation of the image.\n\nTiddlers that contain wikitext could be rendered to a DIV of the usual size of a tiddler, and then transformed to the size requested.\n\nThe width and height attributes are interpreted as a number of pixels, and do not need to include the \"px\" suffix.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImageWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImageWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImageWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create element\n\t// Determine what type of image it is\n\tvar tag = \"img\", src = \"\",\n\t\ttiddler = this.wiki.getTiddler(this.imageSource);\n\tif(!tiddler) {\n\t\t// The source isn't the title of a tiddler, so we'll assume it's a URL\n\t\tsrc = this.getVariable(\"tv-get-export-image-link\",{params: [{name: \"src\",value: this.imageSource}],defaultValue: this.imageSource});\n\t} else {\n\t\t// Check if it is an image tiddler\n\t\tif(this.wiki.isImageTiddler(this.imageSource)) {\n\t\t\tvar type = tiddler.fields.type,\n\t\t\t\ttext = tiddler.fields.text,\n\t\t\t\t_canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t// If the tiddler has body text then it doesn't need to be lazily loaded\n\t\t\tif(text) {\n\t\t\t\t// Render the appropriate element for the image type\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = \"data:application/pdf;base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = \"data:image/svg+xml,\" + encodeURIComponent(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = \"data:\" + type + \";base64,\" + text;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t} else if(_canonical_uri) {\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase \"application/pdf\":\n\t\t\t\t\t\ttag = \"embed\";\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"image/svg+xml\":\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tsrc = _canonical_uri;\n\t\t\t\t\t\tbreak;\n\t\t\t\t}\t\n\t\t\t} else {\n\t\t\t\t// Just trigger loading of the tiddler\n\t\t\t\tthis.wiki.getTiddlerText(this.imageSource);\n\t\t\t}\n\t\t}\n\t}\n\t// Create the element and assign the attributes\n\tvar domNode = this.document.createElement(tag);\n\tdomNode.setAttribute(\"src\",src);\n\tif(this.imageClass) {\n\t\tdomNode.setAttribute(\"class\",this.imageClass);\t\t\n\t}\n\tif(this.imageWidth) {\n\t\tdomNode.setAttribute(\"width\",this.imageWidth);\n\t}\n\tif(this.imageHeight) {\n\t\tdomNode.setAttribute(\"height\",this.imageHeight);\n\t}\n\tif(this.imageTooltip) {\n\t\tdomNode.setAttribute(\"title\",this.imageTooltip);\t\t\n\t}\n\tif(this.imageAlt) {\n\t\tdomNode.setAttribute(\"alt\",this.imageAlt);\t\t\n\t}\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.domNodes.push(domNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImageWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.imageSource = this.getAttribute(\"source\");\n\tthis.imageWidth = this.getAttribute(\"width\");\n\tthis.imageHeight = this.getAttribute(\"height\");\n\tthis.imageClass = this.getAttribute(\"class\");\n\tthis.imageTooltip = this.getAttribute(\"tooltip\");\n\tthis.imageAlt = this.getAttribute(\"alt\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImageWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.source || changedAttributes.width || changedAttributes.height || changedAttributes[\"class\"] || changedAttributes.tooltip || changedTiddlers[this.imageSource]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\t\n\t}\n};\n\nexports.image = ImageWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/importvariables.js": {
"title": "$:/core/modules/widgets/importvariables.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/importvariables.js\ntype: application/javascript\nmodule-type: widget\n\nImport variable definitions from other tiddlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ImportVariablesWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nImportVariablesWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nImportVariablesWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nImportVariablesWidget.prototype.execute = function(tiddlerList) {\n\tvar widgetPointer = this;\n\t// Get our parameters\n\tthis.filter = this.getAttribute(\"filter\");\n\t// Compute the filter\n\tthis.tiddlerList = tiddlerList || this.wiki.filterTiddlers(this.filter,this);\n\t// Accumulate the <$set> widgets from each tiddler\n\t$tw.utils.each(this.tiddlerList,function(title) {\n\t\tvar parser = widgetPointer.wiki.parseTiddler(title);\n\t\tif(parser) {\n\t\t\tvar parseTreeNode = parser.tree[0];\n\t\t\twhile(parseTreeNode && parseTreeNode.type === \"set\") {\n\t\t\t\tvar node = {\n\t\t\t\t\ttype: \"set\",\n\t\t\t\t\tattributes: parseTreeNode.attributes,\n\t\t\t\t\tparams: parseTreeNode.params,\n\t\t\t\t\tisMacroDefinition: parseTreeNode.isMacroDefinition\n\t\t\t\t};\n\t\t\t\tif (parseTreeNode.isMacroDefinition) {\n\t\t\t\t\t// Macro definitions can be folded into\n\t\t\t\t\t// current widget instead of adding\n\t\t\t\t\t// another link to the chain.\n\t\t\t\t\tvar widget = widgetPointer.makeChildWidget(node);\n\t\t\t\t\twidget.computeAttributes();\n\t\t\t\t\twidget.execute();\n\t\t\t\t\t// We SHALLOW copy over all variables\n\t\t\t\t\t// in widget. We can't use\n\t\t\t\t\t// $tw.utils.assign, because that copies\n\t\t\t\t\t// up the prototype chain, which we\n\t\t\t\t\t// don't want.\n\t\t\t\t\t$tw.utils.each(Object.keys(widget.variables), function(key) {\n\t\t\t\t\t\twidgetPointer.variables[key] = widget.variables[key];\n\t\t\t\t\t});\n\t\t\t\t} else {\n\t\t\t\t\twidgetPointer.makeChildWidgets([node]);\n\t\t\t\t\twidgetPointer = widgetPointer.children[0];\n\t\t\t\t}\n\t\t\t\tparseTreeNode = parseTreeNode.children && parseTreeNode.children[0];\n\t\t\t}\n\t\t} \n\t});\n\n\tif (widgetPointer != this) {\n\t\twidgetPointer.parseTreeNode.children = this.parseTreeNode.children;\n\t} else {\n\t\twidgetPointer.makeChildWidgets();\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nImportVariablesWidget.prototype.refresh = function(changedTiddlers) {\n\t// Recompute our attributes and the filter list\n\tvar changedAttributes = this.computeAttributes(),\n\t\ttiddlerList = this.wiki.filterTiddlers(this.getAttribute(\"filter\"),this);\n\t// Refresh if the filter has changed, or the list of tiddlers has changed, or any of the tiddlers in the list has changed\n\tfunction haveListedTiddlersChanged() {\n\t\tvar changed = false;\n\t\ttiddlerList.forEach(function(title) {\n\t\t\tif(changedTiddlers[title]) {\n\t\t\t\tchanged = true;\n\t\t\t}\n\t\t});\n\t\treturn changed;\n\t}\n\tif(changedAttributes.filter || !$tw.utils.isArrayEqual(this.tiddlerList,tiddlerList) || haveListedTiddlersChanged()) {\n\t\t// Compute the filter\n\t\tthis.removeChildDomNodes();\n\t\tthis.execute(tiddlerList);\n\t\tthis.renderChildren(this.parentDomNode,this.findNextSiblingDomNode());\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.importvariables = ImportVariablesWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/keyboard.js": {
"title": "$:/core/modules/widgets/keyboard.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/keyboard.js\ntype: application/javascript\nmodule-type: widget\n\nKeyboard shortcut widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar KeyboardWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKeyboardWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKeyboardWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.tag && $tw.config.htmlUnsafeElements.indexOf(this.tag) === -1) {\n\t\ttag = this.tag;\n\t}\n\t// Create element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = (this[\"class\"] || \"\").split(\" \");\n\tclasses.push(\"tc-keyboard\");\n\tdomNode.className = classes.join(\" \");\n\t// Add a keyboard event handler\n\tdomNode.addEventListener(\"keydown\",function (event) {\n\t\tif($tw.keyboardManager.checkKeyDescriptors(event,self.keyInfoArray)) {\n\t\t\tself.invokeActions(self,event);\n\t\t\tif(self.actions) {\n\t\t\t\tself.invokeActionString(self.actions,self,event);\n\t\t\t}\n\t\t\tself.dispatchMessage(event);\n\t\t\tevent.preventDefault();\n\t\t\tevent.stopPropagation();\n\t\t\treturn true;\n\t\t}\n\t\treturn false;\n\t},false);\n\t// Insert element\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nKeyboardWidget.prototype.dispatchMessage = function(event) {\n\tthis.dispatchEvent({type: this.message, param: this.param, tiddlerTitle: this.getVariable(\"currentTiddler\")});\n};\n\n/*\nCompute the internal state of the widget\n*/\nKeyboardWidget.prototype.execute = function() {\n\tvar self = this;\n\t// Get attributes\n\tthis.actions = this.getAttribute(\"actions\",\"\");\n\tthis.message = this.getAttribute(\"message\",\"\");\n\tthis.param = this.getAttribute(\"param\",\"\");\n\tthis.key = this.getAttribute(\"key\",\"\");\n\tthis.tag = this.getAttribute(\"tag\",\"\");\n\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tif(this.key.substr(0,2) === \"((\" && this.key.substr(-2,2) === \"))\") {\n\t\tthis.shortcutTiddlers = [];\n\t\tvar name = this.key.substring(2,this.key.length -2);\n\t\t$tw.utils.each($tw.keyboardManager.lookupNames,function(platformDescriptor) {\n\t\t\tself.shortcutTiddlers.push(\"$:/config/\" + platformDescriptor + \"/\" + name);\n\t\t});\n\t}\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKeyboardWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.message || changedAttributes.param || changedAttributes.key || changedAttributes[\"class\"] || changedAttributes.tag) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\t// Update the keyInfoArray if one of its shortcut-config-tiddlers has changed\n\tif(this.shortcutTiddlers && $tw.utils.hopArray(changedTiddlers,this.shortcutTiddlers)) {\n\t\tthis.keyInfoArray = $tw.keyboardManager.parseKeyDescriptors(this.key);\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.keyboard = KeyboardWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/link.js": {
"title": "$:/core/modules/widgets/link.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/link.js\ntype: application/javascript\nmodule-type: widget\n\nLink widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the value of the tv-wikilinks configuration macro\n\tvar wikiLinksMacro = this.getVariable(\"tv-wikilinks\"),\n\t\tuseWikiLinks = wikiLinksMacro ? (wikiLinksMacro.trim() !== \"no\") : true,\n\t\tmissingLinksEnabled = !(this.hideMissingLinks && this.isMissing && !this.isShadow);\n\t// Render the link if required\n\tif(useWikiLinks && missingLinksEnabled) {\n\t\tthis.renderLink(parent,nextSibling);\n\t} else {\n\t\t// Just insert the link text\n\t\tvar domNode = this.document.createElement(\"span\");\n\t\tparent.insertBefore(domNode,nextSibling);\n\t\tthis.renderChildren(domNode,null);\n\t\tthis.domNodes.push(domNode);\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nLinkWidget.prototype.renderLink = function(parent,nextSibling) {\n\tvar self = this;\n\t// Sanitise the specified tag\n\tvar tag = this.linkTag;\n\tif($tw.config.htmlUnsafeElements.indexOf(tag) !== -1) {\n\t\ttag = \"a\";\n\t}\n\t// Create our element\n\tvar domNode = this.document.createElement(tag);\n\t// Assign classes\n\tvar classes = [];\n\tif(this.overrideClasses === undefined) {\n\t\tclasses.push(\"tc-tiddlylink\");\n\t\tif(this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-shadow\");\n\t\t}\n\t\tif(this.isMissing && !this.isShadow) {\n\t\t\tclasses.push(\"tc-tiddlylink-missing\");\n\t\t} else {\n\t\t\tif(!this.isMissing) {\n\t\t\t\tclasses.push(\"tc-tiddlylink-resolves\");\n\t\t\t}\n\t\t}\n\t\tif(this.linkClasses) {\n\t\t\tclasses.push(this.linkClasses);\t\t\t\n\t\t}\n\t} else if(this.overrideClasses !== \"\") {\n\t\tclasses.push(this.overrideClasses)\n\t}\n\tif(classes.length > 0) {\n\t\tdomNode.setAttribute(\"class\",classes.join(\" \"));\n\t}\n\t// Set an href\n\tvar wikilinkTransformFilter = this.getVariable(\"tv-filter-export-link\"),\n\t\twikiLinkText;\n\tif(wikilinkTransformFilter) {\n\t\t// Use the filter to construct the href\n\t\twikiLinkText = this.wiki.filterTiddlers(wikilinkTransformFilter,this,function(iterator) {\n\t\t\titerator(self.wiki.getTiddler(self.to),self.to)\n\t\t})[0];\n\t} else {\n\t\t// Expand the tv-wikilink-template variable to construct the href\n\t\tvar wikiLinkTemplateMacro = this.getVariable(\"tv-wikilink-template\"),\n\t\t\twikiLinkTemplate = wikiLinkTemplateMacro ? wikiLinkTemplateMacro.trim() : \"#$uri_encoded$\";\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkTemplate,\"$uri_encoded$\",encodeURIComponent(this.to));\n\t\twikiLinkText = $tw.utils.replaceString(wikiLinkText,\"$uri_doubleencoded$\",encodeURIComponent(encodeURIComponent(this.to)));\n\t}\n\t// Override with the value of tv-get-export-link if defined\n\twikiLinkText = this.getVariable(\"tv-get-export-link\",{params: [{name: \"to\",value: this.to}],defaultValue: wikiLinkText});\n\tif(tag === \"a\") {\n\t\tdomNode.setAttribute(\"href\",wikiLinkText);\n\t}\n\t// Set the tabindex\n\tif(this.tabIndex) {\n\t\tdomNode.setAttribute(\"tabindex\",this.tabIndex);\n\t}\n\t// Set the tooltip\n\t// HACK: Performance issues with re-parsing the tooltip prevent us defaulting the tooltip to \"<$transclude field='tooltip'><$transclude field='title'/></$transclude>\"\n\tvar tooltipWikiText = this.tooltip || this.getVariable(\"tv-wikilink-tooltip\");\n\tif(tooltipWikiText) {\n\t\tvar tooltipText = this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",tooltipWikiText,{\n\t\t\t\tparseAsInline: true,\n\t\t\t\tvariables: {\n\t\t\t\t\tcurrentTiddler: this.to\n\t\t\t\t},\n\t\t\t\tparentWidget: this\n\t\t\t});\n\t\tdomNode.setAttribute(\"title\",tooltipText);\n\t}\n\tif(this[\"aria-label\"]) {\n\t\tdomNode.setAttribute(\"aria-label\",this[\"aria-label\"]);\n\t}\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"click\", handlerObject: this, handlerMethod: \"handleClickEvent\"},\n\t]);\n\t// Make the link draggable if required\n\tif(this.draggable === \"yes\") {\n\t\t$tw.utils.makeDraggable({\n\t\t\tdomNode: domNode,\n\t\t\tdragTiddlerFn: function() {return self.to;},\n\t\t\twidget: this\n\t\t});\n\t}\n\t// Insert the link into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nLinkWidget.prototype.handleClickEvent = function(event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: this.to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1),\n\t\tmetaKey: event.metaKey,\n\t\tctrlKey: event.ctrlKey,\n\t\taltKey: event.altKey,\n\t\tshiftKey: event.shiftKey\n\t});\n\tif(this.domNodes[0].hasAttribute(\"href\")) {\n\t\tevent.preventDefault();\n\t}\n\tevent.stopPropagation();\n\treturn false;\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkWidget.prototype.execute = function() {\n\t// Pick up our attributes\n\tthis.to = this.getAttribute(\"to\",this.getVariable(\"currentTiddler\"));\n\tthis.tooltip = this.getAttribute(\"tooltip\");\n\tthis[\"aria-label\"] = this.getAttribute(\"aria-label\");\n\tthis.linkClasses = this.getAttribute(\"class\");\n\tthis.overrideClasses = this.getAttribute(\"overrideClass\");\n\tthis.tabIndex = this.getAttribute(\"tabindex\");\n\tthis.draggable = this.getAttribute(\"draggable\",\"yes\");\n\tthis.linkTag = this.getAttribute(\"tag\",\"a\");\n\t// Determine the link characteristics\n\tthis.isMissing = !this.wiki.tiddlerExists(this.to);\n\tthis.isShadow = this.wiki.isShadowTiddler(this.to);\n\tthis.hideMissingLinks = (this.getVariable(\"tv-show-missing-links\") || \"yes\") === \"no\";\n\t// Make the child widgets\n\tvar templateTree;\n\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\ttemplateTree = this.parseTreeNode.children;\n\t} else {\n\t\t// Default template is a link to the title\n\t\ttemplateTree = [{type: \"text\", text: this.to}];\n\t}\n\tthis.makeChildWidgets(templateTree);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedTiddlers[this.to] || changedAttributes[\"aria-label\"] || changedAttributes.tooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.link = LinkWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/linkcatcher.js": {
"title": "$:/core/modules/widgets/linkcatcher.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/linkcatcher.js\ntype: application/javascript\nmodule-type: widget\n\nLinkcatcher widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar LinkCatcherWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nLinkCatcherWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nLinkCatcherWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nLinkCatcherWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.catchTo = this.getAttribute(\"to\");\n\tthis.catchMessage = this.getAttribute(\"message\");\n\tthis.catchSet = this.getAttribute(\"set\");\n\tthis.catchSetTo = this.getAttribute(\"setTo\");\n\tthis.catchActions = this.getAttribute(\"actions\");\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n\t// When executing actions we avoid trapping navigate events, so that we don't trigger ourselves recursively\n\tthis.executingActions = false;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nLinkCatcherWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.to || changedAttributes.message || changedAttributes.set || changedAttributes.setTo) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\n/*\nHandle a tm-navigate event\n*/\nLinkCatcherWidget.prototype.handleNavigateEvent = function(event) {\n\tif(!this.executingActions) {\n\t\t// Execute the actions\n\t\tif(this.catchTo) {\n\t\t\tthis.wiki.setTextReference(this.catchTo,event.navigateTo,this.getVariable(\"currentTiddler\"));\n\t\t}\n\t\tif(this.catchMessage && this.parentWidget) {\n\t\t\tthis.parentWidget.dispatchEvent({\n\t\t\t\ttype: this.catchMessage,\n\t\t\t\tparam: event.navigateTo,\n\t\t\t\tnavigateTo: event.navigateTo\n\t\t\t});\n\t\t}\n\t\tif(this.catchSet) {\n\t\t\tvar tiddler = this.wiki.getTiddler(this.catchSet);\n\t\t\tthis.wiki.addTiddler(new $tw.Tiddler(tiddler,{title: this.catchSet, text: this.catchSetTo}));\n\t\t}\n\t\tif(this.catchActions) {\n\t\t\tthis.executingActions = true;\n\t\t\tthis.invokeActionString(this.catchActions,this,event,{navigateTo: event.navigateTo});\n\t\t\tthis.executingActions = false;\n\t\t}\n\t} else {\n\t\t// This is a navigate event generated by the actions of this linkcatcher, so we don't trap it again, but just pass it to the parent\n\t\tthis.parentWidget.dispatchEvent({\n\t\t\ttype: \"tm-navigate\",\n\t\t\tparam: event.navigateTo,\n\t\t\tnavigateTo: event.navigateTo\n\t\t});\n\t}\n\treturn false;\n};\n\nexports.linkcatcher = LinkCatcherWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/list.js": {
"title": "$:/core/modules/widgets/list.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/list.js\ntype: application/javascript\nmodule-type: widget\n\nList and list item widgets\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\n/*\nThe list widget creates list element sub-widgets that reach back into the list widget for their configuration\n*/\n\nvar ListWidget = function(parseTreeNode,options) {\n\t// Initialise the storyviews if they've not been done already\n\tif(!this.storyViews) {\n\t\tListWidget.prototype.storyViews = {};\n\t\t$tw.modules.applyMethods(\"storyview\",this.storyViews);\n\t}\n\t// Main initialisation inherited from widget.js\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\t// Construct the storyview\n\tvar StoryView = this.storyViews[this.storyViewName];\n\tif(this.storyViewName && !StoryView) {\n\t\tStoryView = this.storyViews[\"classic\"];\n\t}\n\tif(StoryView && !this.document.isTiddlyWikiFakeDom) {\n\t\tthis.storyview = new StoryView(this);\n\t} else {\n\t\tthis.storyview = null;\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nListWidget.prototype.execute = function() {\n\t// Get our attributes\n\tthis.template = this.getAttribute(\"template\");\n\tthis.editTemplate = this.getAttribute(\"editTemplate\");\n\tthis.variableName = this.getAttribute(\"variable\",\"currentTiddler\");\n\tthis.storyViewName = this.getAttribute(\"storyview\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\t// Compose the list elements\n\tthis.list = this.getTiddlerList();\n\tvar members = [],\n\t\tself = this;\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\tmembers = this.getEmptyMessage();\n\t} else {\n\t\t$tw.utils.each(this.list,function(title,index) {\n\t\t\tmembers.push(self.makeItemTemplate(title));\n\t\t});\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(members);\n\t// Clear the last history\n\tthis.history = [];\n};\n\nListWidget.prototype.getTiddlerList = function() {\n\tvar defaultFilter = \"[!is[system]sort[title]]\";\n\treturn this.wiki.filterTiddlers(this.getAttribute(\"filter\",defaultFilter),this);\n};\n\nListWidget.prototype.getEmptyMessage = function() {\n\tvar emptyMessage = this.getAttribute(\"emptyMessage\",\"\"),\n\t\tparser = this.wiki.parseText(\"text/vnd.tiddlywiki\",emptyMessage,{parseAsInline: true});\n\tif(parser) {\n\t\treturn parser.tree;\n\t} else {\n\t\treturn [];\n\t}\n};\n\n/*\nCompose the template for a list item\n*/\nListWidget.prototype.makeItemTemplate = function(title) {\n\t// Check if the tiddler is a draft\n\tvar tiddler = this.wiki.getTiddler(title),\n\t\tisDraft = tiddler && tiddler.hasField(\"draft.of\"),\n\t\ttemplate = this.template,\n\t\ttemplateTree;\n\tif(isDraft && this.editTemplate) {\n\t\ttemplate = this.editTemplate;\n\t}\n\t// Compose the transclusion of the template\n\tif(template) {\n\t\ttemplateTree = [{type: \"transclude\", attributes: {tiddler: {type: \"string\", value: template}}}];\n\t} else {\n\t\tif(this.parseTreeNode.children && this.parseTreeNode.children.length > 0) {\n\t\t\ttemplateTree = this.parseTreeNode.children;\n\t\t} else {\n\t\t\t// Default template is a link to the title\n\t\t\ttemplateTree = [{type: \"element\", tag: this.parseTreeNode.isBlock ? \"div\" : \"span\", children: [{type: \"link\", attributes: {to: {type: \"string\", value: title}}, children: [\n\t\t\t\t\t{type: \"text\", text: title}\n\t\t\t]}]}];\n\t\t}\n\t}\n\t// Return the list item\n\treturn {type: \"listitem\", itemTitle: title, variableName: this.variableName, children: templateTree};\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tresult;\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshStart) {\n\t\tthis.storyview.refreshStart(changedTiddlers,changedAttributes);\n\t}\n\t// Completely refresh if any of our attributes have changed\n\tif(changedAttributes.filter || changedAttributes.template || changedAttributes.editTemplate || changedAttributes.emptyMessage || changedAttributes.storyview || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\tresult = true;\n\t} else {\n\t\t// Handle any changes to the list\n\t\tresult = this.handleListChanges(changedTiddlers);\n\t\t// Handle any changes to the history stack\n\t\tif(this.historyTitle && changedTiddlers[this.historyTitle]) {\n\t\t\tthis.handleHistoryChanges();\n\t\t}\n\t}\n\t// Call the storyview\n\tif(this.storyview && this.storyview.refreshEnd) {\n\t\tthis.storyview.refreshEnd(changedTiddlers,changedAttributes);\n\t}\n\treturn result;\n};\n\n/*\nHandle any changes to the history list\n*/\nListWidget.prototype.handleHistoryChanges = function() {\n\t// Get the history data\n\tvar newHistory = this.wiki.getTiddlerDataCached(this.historyTitle,[]);\n\t// Ignore any entries of the history that match the previous history\n\tvar entry = 0;\n\twhile(entry < newHistory.length && entry < this.history.length && newHistory[entry].title === this.history[entry].title) {\n\t\tentry++;\n\t}\n\t// Navigate forwards to each of the new tiddlers\n\twhile(entry < newHistory.length) {\n\t\tif(this.storyview && this.storyview.navigateTo) {\n\t\t\tthis.storyview.navigateTo(newHistory[entry]);\n\t\t}\n\t\tentry++;\n\t}\n\t// Update the history\n\tthis.history = newHistory;\n};\n\n/*\nProcess any changes to the list\n*/\nListWidget.prototype.handleListChanges = function(changedTiddlers) {\n\t// Get the new list\n\tvar prevList = this.list;\n\tthis.list = this.getTiddlerList();\n\t// Check for an empty list\n\tif(this.list.length === 0) {\n\t\t// Check if it was empty before\n\t\tif(prevList.length === 0) {\n\t\t\t// If so, just refresh the empty message\n\t\t\treturn this.refreshChildren(changedTiddlers);\n\t\t} else {\n\t\t\t// Replace the previous content with the empty message\n\t\t\tfor(t=this.children.length-1; t>=0; t--) {\n\t\t\t\tthis.removeListItem(t);\n\t\t\t}\n\t\t\tvar nextSibling = this.findNextSiblingDomNode();\n\t\t\tthis.makeChildWidgets(this.getEmptyMessage());\n\t\t\tthis.renderChildren(this.parentDomNode,nextSibling);\n\t\t\treturn true;\n\t\t}\n\t} else {\n\t\t// If the list was empty then we need to remove the empty message\n\t\tif(prevList.length === 0) {\n\t\t\tthis.removeChildDomNodes();\n\t\t\tthis.children = [];\n\t\t}\n\t\t// Cycle through the list, inserting and removing list items as needed\n\t\tvar hasRefreshed = false;\n\t\tfor(var t=0; t<this.list.length; t++) {\n\t\t\tvar index = this.findListItem(t,this.list[t]);\n\t\t\tif(index === undefined) {\n\t\t\t\t// The list item must be inserted\n\t\t\t\tthis.insertListItem(t,this.list[t]);\n\t\t\t\thasRefreshed = true;\n\t\t\t} else {\n\t\t\t\t// There are intervening list items that must be removed\n\t\t\t\tfor(var n=index-1; n>=t; n--) {\n\t\t\t\t\tthis.removeListItem(n);\n\t\t\t\t\thasRefreshed = true;\n\t\t\t\t}\n\t\t\t\t// Refresh the item we're reusing\n\t\t\t\tvar refreshed = this.children[t].refresh(changedTiddlers);\n\t\t\t\thasRefreshed = hasRefreshed || refreshed;\n\t\t\t}\n\t\t}\n\t\t// Remove any left over items\n\t\tfor(t=this.children.length-1; t>=this.list.length; t--) {\n\t\t\tthis.removeListItem(t);\n\t\t\thasRefreshed = true;\n\t\t}\n\t\treturn hasRefreshed;\n\t}\n};\n\n/*\nFind the list item with a given title, starting from a specified position\n*/\nListWidget.prototype.findListItem = function(startIndex,title) {\n\twhile(startIndex < this.children.length) {\n\t\tif(this.children[startIndex].parseTreeNode.itemTitle === title) {\n\t\t\treturn startIndex;\n\t\t}\n\t\tstartIndex++;\n\t}\n\treturn undefined;\n};\n\n/*\nInsert a new list item at the specified index\n*/\nListWidget.prototype.insertListItem = function(index,title) {\n\t// Create, insert and render the new child widgets\n\tvar widget = this.makeChildWidget(this.makeItemTemplate(title));\n\twidget.parentDomNode = this.parentDomNode; // Hack to enable findNextSiblingDomNode() to work\n\tthis.children.splice(index,0,widget);\n\tvar nextSibling = widget.findNextSiblingDomNode();\n\twidget.render(this.parentDomNode,nextSibling);\n\t// Animate the insertion if required\n\tif(this.storyview && this.storyview.insert) {\n\t\tthis.storyview.insert(widget);\n\t}\n\treturn true;\n};\n\n/*\nRemove the specified list item\n*/\nListWidget.prototype.removeListItem = function(index) {\n\tvar widget = this.children[index];\n\t// Animate the removal if required\n\tif(this.storyview && this.storyview.remove) {\n\t\tthis.storyview.remove(widget);\n\t} else {\n\t\twidget.removeChildDomNodes();\n\t}\n\t// Remove the child widget\n\tthis.children.splice(index,1);\n};\n\nexports.list = ListWidget;\n\nvar ListItemWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nListItemWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nListItemWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nListItemWidget.prototype.execute = function() {\n\t// Set the current list item title\n\tthis.setVariable(this.parseTreeNode.variableName,this.parseTreeNode.itemTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nListItemWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.listitem = ListItemWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/macrocall.js": {
"title": "$:/core/modules/widgets/macrocall.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/macrocall.js\ntype: application/javascript\nmodule-type: widget\n\nMacrocall widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar MacroCallWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nMacroCallWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nMacroCallWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nMacroCallWidget.prototype.execute = function() {\n\t// Get the parse type if specified\n\tthis.parseType = this.getAttribute(\"$type\",\"text/vnd.tiddlywiki\");\n\tthis.renderOutput = this.getAttribute(\"$output\",\"text/html\");\n\t// Merge together the parameters specified in the parse tree with the specified attributes\n\tvar params = this.parseTreeNode.params ? this.parseTreeNode.params.slice(0) : [];\n\t$tw.utils.each(this.attributes,function(attribute,name) {\n\t\tif(name.charAt(0) !== \"$\") {\n\t\t\tparams.push({name: name, value: attribute});\t\t\t\n\t\t}\n\t});\n\t// Get the macro value\n\tvar macroName = this.parseTreeNode.name || this.getAttribute(\"$name\"),\n\t\tvariableInfo = this.getVariableInfo(macroName,{params: params}),\n\t\ttext = variableInfo.text,\n\t\tparseTreeNodes;\n\t// Are we rendering to HTML?\n\tif(this.renderOutput === \"text/html\") {\n\t\t// If so we'll return the parsed macro\n\t\tvar parser = this.wiki.parseText(this.parseType,text,\n\t\t\t\t\t\t\t{parseAsInline: !this.parseTreeNode.isBlock});\n\t\tparseTreeNodes = parser ? parser.tree : [];\n\t\t// Wrap the parse tree in a vars widget assigning the parameters to variables named \"__paramname__\"\n\t\tvar attributes = {};\n\t\t$tw.utils.each(variableInfo.params,function(param) {\n\t\t\tvar name = \"__\" + param.name + \"__\";\n\t\t\tattributes[name] = {\n\t\t\t\tname: name,\n\t\t\t\ttype: \"string\",\n\t\t\t\tvalue: param.value\n\t\t\t};\n\t\t});\n\t\tparseTreeNodes = [{\n\t\t\ttype: \"vars\",\n\t\t\tattributes: attributes,\n\t\t\tchildren: parseTreeNodes\n\t\t}];\n\t} else {\n\t\t// Otherwise, we'll render the text\n\t\tvar plainText = this.wiki.renderText(\"text/plain\",this.parseType,text,{parentWidget: this});\n\t\tparseTreeNodes = [{type: \"text\", text: plainText}];\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nMacroCallWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif($tw.utils.count(changedAttributes) > 0) {\n\t\t// Rerender ourselves\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.macrocall = MacroCallWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/navigator.js": {
"title": "$:/core/modules/widgets/navigator.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/navigator.js\ntype: application/javascript\nmodule-type: widget\n\nNavigator widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar IMPORT_TITLE = \"$:/Import\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar NavigatorWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.addEventListeners([\n\t\t{type: \"tm-navigate\", handler: \"handleNavigateEvent\"},\n\t\t{type: \"tm-edit-tiddler\", handler: \"handleEditTiddlerEvent\"},\n\t\t{type: \"tm-delete-tiddler\", handler: \"handleDeleteTiddlerEvent\"},\n\t\t{type: \"tm-save-tiddler\", handler: \"handleSaveTiddlerEvent\"},\n\t\t{type: \"tm-cancel-tiddler\", handler: \"handleCancelTiddlerEvent\"},\n\t\t{type: \"tm-close-tiddler\", handler: \"handleCloseTiddlerEvent\"},\n\t\t{type: \"tm-close-all-tiddlers\", handler: \"handleCloseAllTiddlersEvent\"},\n\t\t{type: \"tm-close-other-tiddlers\", handler: \"handleCloseOtherTiddlersEvent\"},\n\t\t{type: \"tm-new-tiddler\", handler: \"handleNewTiddlerEvent\"},\n\t\t{type: \"tm-import-tiddlers\", handler: \"handleImportTiddlersEvent\"},\n\t\t{type: \"tm-perform-import\", handler: \"handlePerformImportEvent\"},\n\t\t{type: \"tm-fold-tiddler\", handler: \"handleFoldTiddlerEvent\"},\n\t\t{type: \"tm-fold-other-tiddlers\", handler: \"handleFoldOtherTiddlersEvent\"},\n\t\t{type: \"tm-fold-all-tiddlers\", handler: \"handleFoldAllTiddlersEvent\"},\n\t\t{type: \"tm-unfold-all-tiddlers\", handler: \"handleUnfoldAllTiddlersEvent\"},\n\t\t{type: \"tm-rename-tiddler\", handler: \"handleRenameTiddlerEvent\"}\n\t]);\n};\n\n/*\nInherit from the base widget class\n*/\nNavigatorWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nNavigatorWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nNavigatorWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.storyTitle = this.getAttribute(\"story\");\n\tthis.historyTitle = this.getAttribute(\"history\");\n\tthis.setVariable(\"tv-story-list\",this.storyTitle);\n\tthis.setVariable(\"tv-history-list\",this.historyTitle);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nNavigatorWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.story || changedAttributes.history) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nNavigatorWidget.prototype.getStoryList = function() {\n\treturn this.storyTitle ? this.wiki.getTiddlerList(this.storyTitle) : null;\n};\n\nNavigatorWidget.prototype.saveStoryList = function(storyList) {\n\tif(this.storyTitle) {\n\t\tvar storyTiddler = this.wiki.getTiddler(this.storyTitle);\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(\n\t\t\t{title: this.storyTitle},\n\t\t\tstoryTiddler,\n\t\t\t{list: storyList}\n\t\t));\t\t\n\t}\n};\n\nNavigatorWidget.prototype.removeTitleFromStory = function(storyList,title) {\n\tif(storyList) {\n\t\tvar p = storyList.indexOf(title);\n\t\twhile(p !== -1) {\n\t\t\tstoryList.splice(p,1);\n\t\t\tp = storyList.indexOf(title);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.replaceFirstTitleInStory = function(storyList,oldTitle,newTitle) {\n\tif(storyList) {\n\t\tvar pos = storyList.indexOf(oldTitle);\n\t\tif(pos !== -1) {\n\t\t\tstoryList[pos] = newTitle;\n\t\t\tdo {\n\t\t\t\tpos = storyList.indexOf(oldTitle,pos + 1);\n\t\t\t\tif(pos !== -1) {\n\t\t\t\t\tstoryList.splice(pos,1);\n\t\t\t\t}\n\t\t\t} while(pos !== -1);\n\t\t} else {\n\t\t\tstoryList.splice(0,0,newTitle);\n\t\t}\t\t\n\t}\n};\n\nNavigatorWidget.prototype.addToStory = function(title,fromTitle) {\n\tif(this.storyTitle) {\n\t\tthis.wiki.addToStory(title,fromTitle,this.storyTitle,{\n\t\t\topenLinkFromInsideRiver: this.getAttribute(\"openLinkFromInsideRiver\",\"top\"),\n\t\t\topenLinkFromOutsideRiver: this.getAttribute(\"openLinkFromOutsideRiver\",\"top\")\n\t\t});\n\t}\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\n*/\nNavigatorWidget.prototype.addToHistory = function(title,fromPageRect) {\n\tthis.wiki.addToHistory(title,fromPageRect,this.historyTitle);\n};\n\n/*\nHandle a tm-navigate event\n*/\nNavigatorWidget.prototype.handleNavigateEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-navigating\",event);\n\tif(event.navigateTo) {\n\t\tthis.addToStory(event.navigateTo,event.navigateFromTitle);\n\t\tif(!event.navigateSuppressNavigation) {\n\t\t\tthis.addToHistory(event.navigateTo,event.navigateFromClientRect);\n\t\t}\n\t}\n\treturn false;\n};\n\n// Close a specified tiddler\nNavigatorWidget.prototype.handleCloseTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\tstoryList = this.getStoryList();\n\t// Look for tiddlers with this title to close\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\treturn false;\n};\n\n// Close all tiddlers\nNavigatorWidget.prototype.handleCloseAllTiddlersEvent = function(event) {\n\tthis.saveStoryList([]);\n\treturn false;\n};\n\n// Close other tiddlers\nNavigatorWidget.prototype.handleCloseOtherTiddlersEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle;\n\tthis.saveStoryList([title]);\n\treturn false;\n};\n\n// Place a tiddler in edit mode\nNavigatorWidget.prototype.handleEditTiddlerEvent = function(event) {\n\tvar editTiddler = $tw.hooks.invokeHook(\"th-editing-tiddler\",event);\n\tif(!editTiddler) {\n\t\treturn false;\n\t}\n\tvar self = this;\n\tfunction isUnmodifiedShadow(title) {\n\t\treturn self.wiki.isShadowTiddler(title) && !self.wiki.tiddlerExists(title);\n\t}\n\tfunction confirmEditShadow(title) {\n\t\treturn confirm($tw.language.getString(\n\t\t\t\"ConfirmEditShadowTiddler\",\n\t\t\t{variables:\n\t\t\t\t{title: title}\n\t\t\t}\n\t\t));\n\t}\n\tvar title = event.param || event.tiddlerTitle;\n\tif(isUnmodifiedShadow(title) && !confirmEditShadow(title)) {\n\t\treturn false;\n\t}\n\t// Replace the specified tiddler with a draft in edit mode\n\tvar draftTiddler = this.makeDraftTiddler(title);\n\t// Update the story and history if required\n\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\tvar draftTitle = draftTiddler.fields.title,\n\t\t\tstoryList = this.getStoryList();\n\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\tthis.saveStoryList(storyList);\n\t\treturn false;\n\t}\n};\n\n// Delete a tiddler\nNavigatorWidget.prototype.handleDeleteTiddlerEvent = function(event) {\n\t// Get the tiddler we're deleting\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList(),\n\t\toriginalTitle = tiddler ? tiddler.fields[\"draft.of\"] : \"\",\n\t\toriginalTiddler = originalTitle ? this.wiki.getTiddler(originalTitle) : undefined,\n\t\tconfirmationTitle;\n\tif(!tiddler) {\n\t\treturn false;\n\t}\n\t// Check if the tiddler we're deleting is in draft mode\n\tif(originalTitle) {\n\t\t// If so, we'll prompt for confirmation referencing the original tiddler\n\t\tconfirmationTitle = originalTitle;\n\t} else {\n\t\t// If not a draft, then prompt for confirmation referencing the specified tiddler\n\t\tconfirmationTitle = title;\n\t}\n\t// Seek confirmation\n\tif((this.wiki.getTiddler(originalTitle) || (tiddler.fields.text || \"\") !== \"\") && !confirm($tw.language.getString(\n\t\t\t\t\"ConfirmDeleteTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: confirmationTitle}\n\t\t\t\t}\n\t\t\t))) {\n\t\treturn false;\n\t}\n\t// Delete the original tiddler\n\tif(originalTitle) {\n\t\tif(originalTiddler) {\n\t\t\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",originalTiddler);\n\t\t}\n\t\tthis.wiki.deleteTiddler(originalTitle);\n\t\tthis.removeTitleFromStory(storyList,originalTitle);\n\t}\n\t// Invoke the hook function and delete this tiddler\n\t$tw.hooks.invokeHook(\"th-deleting-tiddler\",tiddler);\n\tthis.wiki.deleteTiddler(title);\n\t// Remove the closed tiddler from the story\n\tthis.removeTitleFromStory(storyList,title);\n\tthis.saveStoryList(storyList);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\treturn false;\n};\n\n/*\nCreate/reuse the draft tiddler for a given title\n*/\nNavigatorWidget.prototype.makeDraftTiddler = function(targetTitle) {\n\t// See if there is already a draft tiddler for this tiddler\n\tvar draftTitle = this.wiki.findDraft(targetTitle);\n\tif(draftTitle) {\n\t\treturn this.wiki.getTiddler(draftTitle);\n\t}\n\t// Get the current value of the tiddler we're editing\n\tvar tiddler = this.wiki.getTiddler(targetTitle);\n\t// Save the initial value of the draft tiddler\n\tdraftTitle = this.generateDraftTitle(targetTitle);\n\tvar draftTiddler = new $tw.Tiddler(\n\t\t\ttiddler,\n\t\t\t{\n\t\t\t\ttitle: draftTitle,\n\t\t\t\t\"draft.title\": targetTitle,\n\t\t\t\t\"draft.of\": targetTitle\n\t\t\t},\n\t\t\tthis.wiki.getModificationFields()\n\t\t);\n\tthis.wiki.addTiddler(draftTiddler);\n\treturn draftTiddler;\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nNavigatorWidget.prototype.generateDraftTitle = function(title) {\n\treturn this.wiki.generateDraftTitle(title);\n};\n\n// Take a tiddler out of edit mode, saving the changes\nNavigatorWidget.prototype.handleSaveTiddlerEvent = function(event) {\n\tvar title = event.param || event.tiddlerTitle,\n\t\ttiddler = this.wiki.getTiddler(title),\n\t\tstoryList = this.getStoryList();\n\t// Replace the original tiddler with the draft\n\tif(tiddler) {\n\t\tvar draftTitle = (tiddler.fields[\"draft.title\"] || \"\").trim(),\n\t\t\tdraftOf = (tiddler.fields[\"draft.of\"] || \"\").trim();\n\t\tif(draftTitle) {\n\t\t\tvar isRename = draftOf !== draftTitle,\n\t\t\t\tisConfirmed = true;\n\t\t\tif(isRename && this.wiki.tiddlerExists(draftTitle)) {\n\t\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\t\"ConfirmOverwriteTiddler\",\n\t\t\t\t\t{variables:\n\t\t\t\t\t\t{title: draftTitle}\n\t\t\t\t\t}\n\t\t\t\t));\n\t\t\t}\n\t\t\tif(isConfirmed) {\n\t\t\t\t// Create the new tiddler and pass it through the th-saving-tiddler hook\n\t\t\t\tvar newTiddler = new $tw.Tiddler(this.wiki.getCreationFields(),tiddler,{\n\t\t\t\t\ttitle: draftTitle,\n\t\t\t\t\t\"draft.title\": undefined,\n\t\t\t\t\t\"draft.of\": undefined\n\t\t\t\t},this.wiki.getModificationFields());\n\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-saving-tiddler\",newTiddler);\n\t\t\t\tthis.wiki.addTiddler(newTiddler);\n\t\t\t\t// If enabled, relink references to renamed tiddler\n\t\t\t\tvar shouldRelink = this.getAttribute(\"relinkOnRename\",\"no\").toLowerCase().trim() === \"yes\";\n\t\t\t\tif(isRename && shouldRelink && this.wiki.tiddlerExists(draftOf)) {\nconsole.log(\"Relinking '\" + draftOf + \"' to '\" + draftTitle + \"'\");\n\t\t\t\t\tthis.wiki.relinkTiddler(draftOf,draftTitle);\n\t\t\t\t}\n\t\t\t\t// Remove the draft tiddler\n\t\t\t\tthis.wiki.deleteTiddler(title);\n\t\t\t\t// Remove the original tiddler if we're renaming it\n\t\t\t\tif(isRename) {\n\t\t\t\t\tthis.wiki.deleteTiddler(draftOf);\n\t\t\t\t}\n\t\t\t\t// #2381 always remove new title & old\n\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\tthis.removeTitleFromStory(storyList,draftOf);\n\t\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\t\t// Replace the draft in the story with the original\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,title,draftTitle);\n\t\t\t\t\tthis.addToHistory(draftTitle,event.navigateFromClientRect);\n\t\t\t\t\tif(draftTitle !== this.storyTitle) {\n\t\t\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// Trigger an autosave\n\t\t\t\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Take a tiddler out of edit mode without saving the changes\nNavigatorWidget.prototype.handleCancelTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-cancelling-tiddler\", event);\n\t// Flip the specified tiddler from draft back to the original\n\tvar draftTitle = event.param || event.tiddlerTitle,\n\t\tdraftTiddler = this.wiki.getTiddler(draftTitle),\n\t\toriginalTitle = draftTiddler && draftTiddler.fields[\"draft.of\"];\n\tif(draftTiddler && originalTitle) {\n\t\t// Ask for confirmation if the tiddler text has changed\n\t\tvar isConfirmed = true,\n\t\t\toriginalTiddler = this.wiki.getTiddler(originalTitle),\n\t\t\tstoryList = this.getStoryList();\n\t\tif(this.wiki.isDraftModified(draftTitle)) {\n\t\t\tisConfirmed = confirm($tw.language.getString(\n\t\t\t\t\"ConfirmCancelTiddler\",\n\t\t\t\t{variables:\n\t\t\t\t\t{title: draftTitle}\n\t\t\t\t}\n\t\t\t));\n\t\t}\n\t\t// Remove the draft tiddler\n\t\tif(isConfirmed) {\n\t\t\tthis.wiki.deleteTiddler(draftTitle);\n\t\t\tif(!event.paramObject || event.paramObject.suppressNavigation !== \"yes\") {\n\t\t\t\tif(originalTiddler) {\n\t\t\t\t\tthis.replaceFirstTitleInStory(storyList,draftTitle,originalTitle);\n\t\t\t\t\tthis.addToHistory(originalTitle,event.navigateFromClientRect);\n\t\t\t\t} else {\n\t\t\t\t\tthis.removeTitleFromStory(storyList,draftTitle);\n\t\t\t\t}\n\t\t\t\tthis.saveStoryList(storyList);\n\t\t\t}\n\t\t}\n\t}\n\treturn false;\n};\n\n// Create a new draft tiddler\n// event.param can either be the title of a template tiddler, or a hashmap of fields.\n//\n// The title of the newly created tiddler follows these rules:\n// * If a hashmap was used and a title field was specified, use that title\n// * If a hashmap was used without a title field, use a default title, if necessary making it unique with a numeric suffix\n// * If a template tiddler was used, use the title of the template, if necessary making it unique with a numeric suffix\n//\n// If a draft of the target tiddler already exists then it is reused\nNavigatorWidget.prototype.handleNewTiddlerEvent = function(event) {\n\tevent = $tw.hooks.invokeHook(\"th-new-tiddler\", event);\n\t// Get the story details\n\tvar storyList = this.getStoryList(),\n\t\ttemplateTiddler, additionalFields, title, draftTitle, existingTiddler;\n\t// Get the template tiddler (if any)\n\tif(typeof event.param === \"string\") {\n\t\t// Get the template tiddler\n\t\ttemplateTiddler = this.wiki.getTiddler(event.param);\n\t\t// Generate a new title\n\t\ttitle = this.wiki.generateNewTitle(event.param || $tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t}\n\t// Get the specified additional fields\n\tif(typeof event.paramObject === \"object\") {\n\t\tadditionalFields = event.paramObject;\n\t}\n\tif(typeof event.param === \"object\") { // Backwards compatibility with 5.1.3\n\t\tadditionalFields = event.param;\n\t}\n\tif(additionalFields && additionalFields.title) {\n\t\ttitle = additionalFields.title;\n\t}\n\t// Make a copy of the additional fields excluding any blank ones\n\tvar filteredAdditionalFields = $tw.utils.extend({},additionalFields);\n\tObject.keys(filteredAdditionalFields).forEach(function(fieldName) {\n\t\tif(filteredAdditionalFields[fieldName] === \"\") {\n\t\t\tdelete filteredAdditionalFields[fieldName];\n\t\t}\n\t});\n\t// Generate a title if we don't have one\n\ttitle = title || this.wiki.generateNewTitle($tw.language.getString(\"DefaultNewTiddlerTitle\"));\n\t// Find any existing draft for this tiddler\n\tdraftTitle = this.wiki.findDraft(title);\n\t// Pull in any existing tiddler\n\tif(draftTitle) {\n\t\texistingTiddler = this.wiki.getTiddler(draftTitle);\n\t} else {\n\t\tdraftTitle = this.generateDraftTitle(title);\n\t\texistingTiddler = this.wiki.getTiddler(title);\n\t}\n\t// Merge the tags\n\tvar mergedTags = [];\n\tif(existingTiddler && existingTiddler.fields.tags) {\n\t\t$tw.utils.pushTop(mergedTags,existingTiddler.fields.tags);\n\t}\n\tif(additionalFields && additionalFields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,$tw.utils.parseStringArray(additionalFields.tags));\n\t}\n\tif(templateTiddler && templateTiddler.fields.tags) {\n\t\t// Merge tags\n\t\tmergedTags = $tw.utils.pushTop(mergedTags,templateTiddler.fields.tags);\n\t}\n\t// Save the draft tiddler\n\tvar draftTiddler = new $tw.Tiddler({\n\t\t\ttext: \"\",\n\t\t\t\"draft.title\": title\n\t\t},\n\t\ttemplateTiddler,\n\t\tadditionalFields,\n\t\tthis.wiki.getCreationFields(),\n\t\texistingTiddler,\n\t\tfilteredAdditionalFields,\n\t\t{\n\t\t\ttitle: draftTitle,\n\t\t\t\"draft.of\": title,\n\t\t\ttags: mergedTags\n\t\t},this.wiki.getModificationFields());\n\tthis.wiki.addTiddler(draftTiddler);\n\t// Update the story to insert the new draft at the top and remove any existing tiddler\n\tif(storyList && storyList.indexOf(draftTitle) === -1) {\n\t\tvar slot = storyList.indexOf(event.navigateFromTitle);\n\t\tif(slot === -1) {\n\t\t\tslot = this.getAttribute(\"openLinkFromOutsideRiver\",\"top\") === \"bottom\" ? storyList.length - 1 : slot;\n\t\t}\n\t\tstoryList.splice(slot + 1,0,draftTitle);\n\t}\n\tif(storyList && storyList.indexOf(title) !== -1) {\n\t\tstoryList.splice(storyList.indexOf(title),1);\n\t}\n\tthis.saveStoryList(storyList);\n\t// Add a new record to the top of the history stack\n\tthis.addToHistory(draftTitle);\n\treturn false;\n};\n\n// Import JSON tiddlers into a pending import tiddler\nNavigatorWidget.prototype.handleImportTiddlersEvent = function(event) {\n\t// Get the tiddlers\n\tvar tiddlers = [];\n\ttry {\n\t\ttiddlers = JSON.parse(event.param);\n\t} catch(e) {\n\t}\n\t// Get the current $:/Import tiddler\n\tvar importTiddler = this.wiki.getTiddler(IMPORT_TITLE),\n\t\timportData = this.wiki.getTiddlerData(IMPORT_TITLE,{}),\n\t\tnewFields = new Object({\n\t\t\ttitle: IMPORT_TITLE,\n\t\t\ttype: \"application/json\",\n\t\t\t\"plugin-type\": \"import\",\n\t\t\t\"status\": \"pending\"\n\t\t}),\n\t\tincomingTiddlers = [];\n\t// Process each tiddler\n\timportData.tiddlers = importData.tiddlers || {};\n\t$tw.utils.each(tiddlers,function(tiddlerFields) {\n\t\ttiddlerFields.title = $tw.utils.trim(tiddlerFields.title);\n\t\tvar title = tiddlerFields.title;\n\t\tif(title) {\n\t\t\tincomingTiddlers.push(title);\n\t\t\timportData.tiddlers[title] = tiddlerFields;\n\t\t}\n\t});\n\t// Give the active upgrader modules a chance to process the incoming tiddlers\n\tvar messages = this.wiki.invokeUpgraders(incomingTiddlers,importData.tiddlers);\n\t$tw.utils.each(messages,function(message,title) {\n\t\tnewFields[\"message-\" + title] = message;\n\t});\n\t// Deselect any suppressed tiddlers\n\t$tw.utils.each(importData.tiddlers,function(tiddler,title) {\n\t\tif($tw.utils.count(tiddler) === 0) {\n\t\t\tnewFields[\"selection-\" + title] = \"unchecked\";\n\t\t}\n\t});\n\t// Save the $:/Import tiddler\n\tnewFields.text = JSON.stringify(importData,null,$tw.config.preferences.jsonSpaces);\n\tthis.wiki.addTiddler(new $tw.Tiddler(importTiddler,newFields));\n\t// Update the story and history details\n\tif(this.getVariable(\"tv-auto-open-on-import\") !== \"no\") {\n\t\tvar storyList = this.getStoryList(),\n\t\t\thistory = [];\n\t\t// Add it to the story\n\t\tif(storyList && storyList.indexOf(IMPORT_TITLE) === -1) {\n\t\t\tstoryList.unshift(IMPORT_TITLE);\n\t\t}\n\t\t// And to history\n\t\thistory.push(IMPORT_TITLE);\n\t\t// Save the updated story and history\n\t\tthis.saveStoryList(storyList);\n\t\tthis.addToHistory(history);\n\t}\n\treturn false;\n};\n\n//\nNavigatorWidget.prototype.handlePerformImportEvent = function(event) {\n\tvar self = this,\n\t\timportTiddler = this.wiki.getTiddler(event.param),\n\t\timportData = this.wiki.getTiddlerDataCached(event.param,{tiddlers: {}}),\n\t\timportReport = [];\n\t// Add the tiddlers to the store\n\timportReport.push($tw.language.getString(\"Import/Imported/Hint\") + \"\\n\");\n\t$tw.utils.each(importData.tiddlers,function(tiddlerFields) {\n\t\tvar title = tiddlerFields.title;\n\t\tif(title && importTiddler && importTiddler.fields[\"selection-\" + title] !== \"unchecked\") {\n\t\t\tvar tiddler = new $tw.Tiddler(tiddlerFields);\n\t\t\ttiddler = $tw.hooks.invokeHook(\"th-importing-tiddler\",tiddler);\n\t\t\tself.wiki.addTiddler(tiddler);\n\t\t\timportReport.push(\"# [[\" + tiddlerFields.title + \"]]\");\n\t\t}\n\t});\n\t// Replace the $:/Import tiddler with an import report\n\tthis.wiki.addTiddler(new $tw.Tiddler({\n\t\ttitle: event.param,\n\t\ttext: importReport.join(\"\\n\"),\n\t\t\"status\": \"complete\"\n\t}));\n\t// Navigate to the $:/Import tiddler\n\tthis.addToHistory([event.param]);\n\t// Trigger an autosave\n\t$tw.rootWidget.dispatchEvent({type: \"tm-auto-save-wiki\"});\n};\n\nNavigatorWidget.prototype.handleFoldTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {};\n\tif(paramObject.foldedState) {\n\t\tvar foldedState = this.wiki.getTiddlerText(paramObject.foldedState,\"show\") === \"show\" ? \"hide\" : \"show\";\n\t\tthis.wiki.setText(paramObject.foldedState,\"text\",null,foldedState);\n\t}\n};\n\nNavigatorWidget.prototype.handleFoldOtherTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,event.param === title ? \"show\" : \"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleFoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix || \"$:/state/folded/\";\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"hide\");\n\t});\n};\n\nNavigatorWidget.prototype.handleUnfoldAllTiddlersEvent = function(event) {\n\tvar self = this,\n\t\tparamObject = event.paramObject || {},\n\t\tprefix = paramObject.foldedStatePrefix;\n\t$tw.utils.each(this.getStoryList(),function(title) {\n\t\tself.wiki.setText(prefix + title,\"text\",null,\"show\");\n\t});\n};\n\nNavigatorWidget.prototype.handleRenameTiddlerEvent = function(event) {\n\tvar paramObject = event.paramObject || {},\n\t\tfrom = paramObject.from || event.tiddlerTitle,\n\t\tto = paramObject.to;\n\tthis.wiki.renameTiddler(from,to);\n};\n\nexports.navigator = NavigatorWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/password.js": {
"title": "$:/core/modules/widgets/password.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/password.js\ntype: application/javascript\nmodule-type: widget\n\nPassword widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar PasswordWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nPasswordWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nPasswordWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Get the current password\n\tvar password = $tw.browser ? $tw.utils.getPassword(this.passwordName) || \"\" : \"\";\n\t// Create our element\n\tvar domNode = this.document.createElement(\"input\");\n\tdomNode.setAttribute(\"type\",\"password\");\n\tdomNode.setAttribute(\"value\",password);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(domNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tthis.domNodes.push(domNode);\n};\n\nPasswordWidget.prototype.handleChangeEvent = function(event) {\n\tvar password = this.domNodes[0].value;\n\treturn $tw.utils.savePassword(this.passwordName,password);\n};\n\n/*\nCompute the internal state of the widget\n*/\nPasswordWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.passwordName = this.getAttribute(\"name\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nPasswordWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.password = PasswordWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/qualify.js": {
"title": "$:/core/modules/widgets/qualify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/qualify.js\ntype: application/javascript\nmodule-type: widget\n\nQualify text to a variable \n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar QualifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nQualifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nQualifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nQualifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.qualifyName = this.getAttribute(\"name\");\n\tthis.qualifyTitle = this.getAttribute(\"title\");\n\t// Set context variable\n\tif(this.qualifyName) {\n\t\tthis.setVariable(this.qualifyName,this.qualifyTitle + \"-\" + this.getStateQualifier());\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nQualifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.title) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.qualify = QualifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/radio.js": {
"title": "$:/core/modules/widgets/radio.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/radio.js\ntype: application/javascript\nmodule-type: widget\n\nSet a field or index at a given tiddler via radio buttons\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RadioWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRadioWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRadioWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\tvar isChecked = this.getValue() === this.radioValue;\n\t// Create our elements\n\tthis.labelDomNode = this.document.createElement(\"label\");\n\tthis.labelDomNode.setAttribute(\"class\",\n \t\t\"tc-radio \" + this.radioClass + (isChecked ? \" tc-radio-selected\" : \"\")\n \t);\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"radio\");\n\tif(isChecked) {\n\t\tthis.inputDomNode.setAttribute(\"checked\",\"true\");\n\t}\n\tthis.labelDomNode.appendChild(this.inputDomNode);\n\tthis.spanDomNode = this.document.createElement(\"span\");\n\tthis.labelDomNode.appendChild(this.spanDomNode);\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.labelDomNode,nextSibling);\n\tthis.renderChildren(this.spanDomNode,null);\n\tthis.domNodes.push(this.labelDomNode);\n};\n\nRadioWidget.prototype.getValue = function() {\n\tvar value,\n\t\ttiddler = this.wiki.getTiddler(this.radioTitle);\n\tif (this.radioIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.radioTitle,this.radioIndex);\n\t} else {\n\t\tvalue = tiddler && tiddler.getFieldString(this.radioField);\n\t}\n\treturn value;\n};\n\nRadioWidget.prototype.setValue = function() {\n\tif(this.radioIndex) {\n\t\tthis.wiki.setText(this.radioTitle,\"\",this.radioIndex,this.radioValue);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.radioTitle),\n\t\t\taddition = {};\n\t\taddition[this.radioField] = this.radioValue;\n\t\tthis.wiki.addTiddler(new $tw.Tiddler(this.wiki.getCreationFields(),{title: this.radioTitle},tiddler,addition,this.wiki.getModificationFields()));\n\t}\n};\n\nRadioWidget.prototype.handleChangeEvent = function(event) {\n\tif(this.inputDomNode.checked) {\n\t\tthis.setValue();\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRadioWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.radioTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.radioField = this.getAttribute(\"field\",\"text\");\n\tthis.radioIndex = this.getAttribute(\"index\");\n\tthis.radioValue = this.getAttribute(\"value\");\n\tthis.radioClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRadioWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.radioTitle]) {\n\t\t\tthis.inputDomNode.checked = this.getValue() === this.radioValue;\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.radio = RadioWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/range.js": {
"title": "$:/core/modules/widgets/range.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/range.js\ntype: application/javascript\nmodule-type: widget\n\nRange widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RangeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRangeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRangeWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create our elements\n\tthis.inputDomNode = this.document.createElement(\"input\");\n\tthis.inputDomNode.setAttribute(\"type\",\"range\");\n\tthis.inputDomNode.setAttribute(\"class\",this.elementClass);\n\tif(this.minValue){\n\t\tthis.inputDomNode.setAttribute(\"min\", this.minValue);\n\t}\n\tif(this.maxValue){\n\t\tthis.inputDomNode.setAttribute(\"max\", this.maxValue);\n\t}\n\tif(this.increment){\n\t\tthis.inputDomNode.setAttribute(\"step\", this.increment);\n\t}\n\tthis.inputDomNode.value = this.getValue();\n\t// Add a click event handler\n\t$tw.utils.addEventListeners(this.inputDomNode,[\n\t\t{name: \"input\", handlerObject: this, handlerMethod: \"handleInputEvent\"},\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleInputEvent\"}\t\t\n\t]);\n\t// Insert the label into the DOM and render any children\n\tparent.insertBefore(this.inputDomNode,nextSibling);\n\tthis.domNodes.push(this.inputDomNode);\n};\n\nRangeWidget.prototype.getValue = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle),\n\t\tfieldName = this.tiddlerField || \"text\",\n\t\tvalue = this.defaultValue;\n\tif(tiddler) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(tiddler,this.tiddlerIndex,this.defaultValue || \"\");\n\t\t} else {\n\t\t\tif($tw.utils.hop(tiddler.fields,fieldName)) {\n\t\t\t\tvalue = tiddler.fields[fieldName] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = this.defaultValue || \"\";\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nRangeWidget.prototype.handleInputEvent = function(event) {\n\tif(this.getValue() !== this.inputDomNode.value) {\n\t\tif(this.tiddlerIndex) {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,\"\",this.tiddlerIndex,this.inputDomNode.value);\n\t\t} else {\n\t\t\tthis.wiki.setText(this.tiddlerTitle,this.tiddlerField,null,this.inputDomNode.value);\n\t\t}\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nRangeWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.tiddlerField = this.getAttribute(\"field\");\n\tthis.tiddlerIndex = this.getAttribute(\"index\");\n\tthis.minValue = this.getAttribute(\"min\");\n\tthis.maxValue = this.getAttribute(\"max\");\n\tthis.increment = this.getAttribute(\"increment\");\n\tthis.defaultValue = this.getAttribute(\"default\");\n\tthis.elementClass = this.getAttribute(\"class\",\"\");\n\t// Make the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRangeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes['min'] || changedAttributes['max'] || changedAttributes['increment'] || changedAttributes[\"default\"] || changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar refreshed = false;\n\t\tif(changedTiddlers[this.tiddlerTitle]) {\n\t\t\tvar value = this.getValue();\n\t\t\tif(this.inputDomNode.value !== value) {\n\t\t\t\tthis.inputDomNode.value = value;\t\t\t\t\n\t\t\t}\n\t\t\trefreshed = true;\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers) || refreshed;\n\t}\n};\n\nexports.range = RangeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/raw.js": {
"title": "$:/core/modules/widgets/raw.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/raw.js\ntype: application/javascript\nmodule-type: widget\n\nRaw widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RawWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRawWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRawWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tvar div = this.document.createElement(\"div\");\n\tdiv.innerHTML=this.parseTreeNode.html;\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\t\n};\n\n/*\nCompute the internal state of the widget\n*/\nRawWidget.prototype.execute = function() {\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRawWidget.prototype.refresh = function(changedTiddlers) {\n\treturn false;\n};\n\nexports.raw = RawWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/reveal.js": {
"title": "$:/core/modules/widgets/reveal.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/reveal.js\ntype: application/javascript\nmodule-type: widget\n\nReveal widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RevealWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nRevealWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRevealWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar tag = this.parseTreeNode.isBlock ? \"div\" : \"span\";\n\tif(this.revealTag && $tw.config.htmlUnsafeElements.indexOf(this.revealTag) === -1) {\n\t\ttag = this.revealTag;\n\t}\n\tvar domNode = this.document.createElement(tag);\n\tvar classes = this[\"class\"].split(\" \") || [];\n\tclasses.push(\"tc-reveal\");\n\tdomNode.className = classes.join(\" \");\n\tif(this.style) {\n\t\tdomNode.setAttribute(\"style\",this.style);\n\t}\n\tparent.insertBefore(domNode,nextSibling);\n\tthis.renderChildren(domNode,null);\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\t}\n\tif(!this.isOpen) {\n\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t}\n\tthis.domNodes.push(domNode);\n};\n\nRevealWidget.prototype.positionPopup = function(domNode) {\n\tdomNode.style.position = \"absolute\";\n\tdomNode.style.zIndex = \"1000\";\n\tvar left,top;\n\tswitch(this.position) {\n\t\tcase \"left\":\n\t\t\tleft = this.popup.left - domNode.offsetWidth;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"above\":\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"aboveright\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top + this.popup.height - domNode.offsetHeight;\n\t\t\tbreak;\n\t\tcase \"right\":\n\t\t\tleft = this.popup.left + this.popup.width;\n\t\t\ttop = this.popup.top;\n\t\t\tbreak;\n\t\tcase \"belowleft\":\n\t\t\tleft = this.popup.left + this.popup.width - domNode.offsetWidth;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t\tdefault: // Below\n\t\t\tleft = this.popup.left;\n\t\t\ttop = this.popup.top + this.popup.height;\n\t\t\tbreak;\n\t}\n\tif(!this.positionAllowNegative) {\n\t\tleft = Math.max(0,left);\n\t\ttop = Math.max(0,top);\n\t}\n\tdomNode.style.left = left + \"px\";\n\tdomNode.style.top = top + \"px\";\n};\n\n/*\nCompute the internal state of the widget\n*/\nRevealWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.state = this.getAttribute(\"state\");\n\tthis.revealTag = this.getAttribute(\"tag\");\n\tthis.type = this.getAttribute(\"type\");\n\tthis.text = this.getAttribute(\"text\");\n\tthis.position = this.getAttribute(\"position\");\n\tthis.positionAllowNegative = this.getAttribute(\"positionAllowNegative\") === \"yes\";\n\tthis[\"class\"] = this.getAttribute(\"class\",\"\");\n\tthis.style = this.getAttribute(\"style\",\"\");\n\tthis[\"default\"] = this.getAttribute(\"default\",\"\");\n\tthis.animate = this.getAttribute(\"animate\",\"no\");\n\tthis.retain = this.getAttribute(\"retain\",\"no\");\n\tthis.openAnimation = this.animate === \"no\" ? undefined : \"open\";\n\tthis.closeAnimation = this.animate === \"no\" ? undefined : \"close\";\n\t// Compute the title of the state tiddler and read it\n\tthis.stateTiddlerTitle = this.state;\n\tthis.stateTitle = this.getAttribute(\"stateTitle\");\n\tthis.stateField = this.getAttribute(\"stateField\");\n\tthis.stateIndex = this.getAttribute(\"stateIndex\");\n\tthis.readState();\n\t// Construct the child widgets\n\tvar childNodes = this.isOpen ? this.parseTreeNode.children : [];\n\tthis.hasChildNodes = this.isOpen;\n\tthis.makeChildWidgets(childNodes);\n};\n\n/*\nRead the state tiddler\n*/\nRevealWidget.prototype.readState = function() {\n\t// Read the information from the state tiddler\n\tvar state,\n\t defaultState = this[\"default\"];\n\tif(this.stateTitle) {\n\t\tvar stateTitleTiddler = this.wiki.getTiddler(this.stateTitle);\n\t\tif(this.stateField) {\n\t\t\tstate = stateTitleTiddler ? stateTitleTiddler.getFieldString(this.stateField) || defaultState : defaultState;\n\t\t} else if(this.stateIndex) {\n\t\t\tstate = stateTitleTiddler ? this.wiki.extractTiddlerDataItem(this.stateTitle,this.stateIndex) || defaultState : defaultState;\n\t\t} else if(stateTitleTiddler) {\n\t\t\tstate = this.wiki.getTiddlerText(this.stateTitle) || defaultState;\n\t\t} else {\n\t\t\tstate = defaultState;\n\t\t}\n\t} else {\n\t\tstate = this.stateTiddlerTitle ? this.wiki.getTextReference(this.state,this[\"default\"],this.getVariable(\"currentTiddler\")) : this[\"default\"];\n\t}\n\tif(state === null) {\n\t\tstate = this[\"default\"];\n\t}\n\tswitch(this.type) {\n\t\tcase \"popup\":\n\t\t\tthis.readPopupState(state);\n\t\t\tbreak;\n\t\tcase \"match\":\n\t\t\tthis.isOpen = this.text === state;\n\t\t\tbreak;\n\t\tcase \"nomatch\":\n\t\t\tthis.isOpen = this.text !== state;\n\t\t\tbreak;\n\t\tcase \"lt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t\tcase \"gt\":\n\t\t\tthis.isOpen = !!(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"lteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) > 0);\n\t\t\tbreak;\n\t\tcase \"gteq\":\n\t\t\tthis.isOpen = !(this.compareStateText(state) < 0);\n\t\t\tbreak;\n\t}\n};\n\nRevealWidget.prototype.compareStateText = function(state) {\n\treturn state.localeCompare(this.text,undefined,{numeric: true,sensitivity: \"case\"});\n};\n\nRevealWidget.prototype.readPopupState = function(state) {\n\tvar popupLocationRegExp = /^\\((-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+),(-?[0-9\\.E]+)\\)$/,\n\t\tmatch = popupLocationRegExp.exec(state);\n\t// Check if the state matches the location regexp\n\tif(match) {\n\t\t// If so, we're open\n\t\tthis.isOpen = true;\n\t\t// Get the location\n\t\tthis.popup = {\n\t\t\tleft: parseFloat(match[1]),\n\t\t\ttop: parseFloat(match[2]),\n\t\t\twidth: parseFloat(match[3]),\n\t\t\theight: parseFloat(match[4])\n\t\t};\n\t} else {\n\t\t// If not, we're closed\n\t\tthis.isOpen = false;\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nRevealWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.state || changedAttributes.type || changedAttributes.text || changedAttributes.position || changedAttributes.positionAllowNegative || changedAttributes[\"default\"] || changedAttributes.animate || changedAttributes.stateTitle || changedAttributes.stateField || changedAttributes.stateIndex) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\tvar currentlyOpen = this.isOpen;\n\t\tthis.readState();\n\t\tif(this.isOpen !== currentlyOpen) {\n\t\t\tif(this.retain === \"yes\") {\n\t\t\t\tthis.updateState();\n\t\t\t} else {\n\t\t\t\tthis.refreshSelf();\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\n/*\nCalled by refresh() to dynamically show or hide the content\n*/\nRevealWidget.prototype.updateState = function() {\n\tvar self = this;\n\t// Read the current state\n\tthis.readState();\n\t// Construct the child nodes if needed\n\tvar domNode = this.domNodes[0];\n\tif(this.isOpen && !this.hasChildNodes) {\n\t\tthis.hasChildNodes = true;\n\t\tthis.makeChildWidgets(this.parseTreeNode.children);\n\t\tthis.renderChildren(domNode,null);\n\t}\n\t// Animate our DOM node\n\tif(!domNode.isTiddlyWikiFakeDom && this.type === \"popup\" && this.isOpen) {\n\t\tthis.positionPopup(domNode);\n\t\t$tw.utils.addClass(domNode,\"tc-popup\"); // Make sure that clicks don't dismiss popups within the revealed content\n\n\t}\n\tif(this.isOpen) {\n\t\tdomNode.removeAttribute(\"hidden\");\n $tw.anim.perform(this.openAnimation,domNode);\n\t} else {\n\t\t$tw.anim.perform(this.closeAnimation,domNode,{callback: function() {\n\t\t\t//make sure that the state hasn't changed during the close animation\n\t\t\tself.readState()\n\t\t\tif(!self.isOpen) {\n\t\t\t\tdomNode.setAttribute(\"hidden\",\"true\");\n\t\t\t}\n\t\t}});\n\t}\n};\n\nexports.reveal = RevealWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/scrollable.js": {
"title": "$:/core/modules/widgets/scrollable.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/scrollable.js\ntype: application/javascript\nmodule-type: widget\n\nScrollable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ScrollableWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n\tthis.scaleFactor = 1;\n\tthis.addEventListeners([\n\t\t{type: \"tm-scroll\", handler: \"handleScrollEvent\"}\n\t]);\n\tif($tw.browser) {\n\t\tthis.requestAnimationFrame = window.requestAnimationFrame ||\n\t\t\twindow.webkitRequestAnimationFrame ||\n\t\t\twindow.mozRequestAnimationFrame ||\n\t\t\tfunction(callback) {\n\t\t\t\treturn window.setTimeout(callback, 1000/60);\n\t\t\t};\n\t\tthis.cancelAnimationFrame = window.cancelAnimationFrame ||\n\t\t\twindow.webkitCancelAnimationFrame ||\n\t\t\twindow.webkitCancelRequestAnimationFrame ||\n\t\t\twindow.mozCancelAnimationFrame ||\n\t\t\twindow.mozCancelRequestAnimationFrame ||\n\t\t\tfunction(id) {\n\t\t\t\twindow.clearTimeout(id);\n\t\t\t};\n\t}\n};\n\n/*\nInherit from the base widget class\n*/\nScrollableWidget.prototype = new Widget();\n\nScrollableWidget.prototype.cancelScroll = function() {\n\tif(this.idRequestFrame) {\n\t\tthis.cancelAnimationFrame.call(window,this.idRequestFrame);\n\t\tthis.idRequestFrame = null;\n\t}\n};\n\n/*\nHandle a scroll event\n*/\nScrollableWidget.prototype.handleScrollEvent = function(event) {\n\t// Pass the scroll event through if our offsetsize is larger than our scrollsize\n\tif(this.outerDomNode.scrollWidth <= this.outerDomNode.offsetWidth && this.outerDomNode.scrollHeight <= this.outerDomNode.offsetHeight && this.fallthrough === \"yes\") {\n\t\treturn true;\n\t}\n\tthis.scrollIntoView(event.target);\n\treturn false; // Handled event\n};\n\n/*\nScroll an element into view\n*/\nScrollableWidget.prototype.scrollIntoView = function(element) {\n\tvar duration = $tw.utils.getAnimationDuration();\n\tthis.cancelScroll();\n\tthis.startTime = Date.now();\n\tvar scrollPosition = {\n\t\tx: this.outerDomNode.scrollLeft,\n\t\ty: this.outerDomNode.scrollTop\n\t};\n\t// Get the client bounds of the element and adjust by the scroll position\n\tvar scrollableBounds = this.outerDomNode.getBoundingClientRect(),\n\t\tclientTargetBounds = element.getBoundingClientRect(),\n\t\tbounds = {\n\t\t\tleft: clientTargetBounds.left + scrollPosition.x - scrollableBounds.left,\n\t\t\ttop: clientTargetBounds.top + scrollPosition.y - scrollableBounds.top,\n\t\t\twidth: clientTargetBounds.width,\n\t\t\theight: clientTargetBounds.height\n\t\t};\n\t// We'll consider the horizontal and vertical scroll directions separately via this function\n\tvar getEndPos = function(targetPos,targetSize,currentPos,currentSize) {\n\t\t\t// If the target is already visible then stay where we are\n\t\t\tif(targetPos >= currentPos && (targetPos + targetSize) <= (currentPos + currentSize)) {\n\t\t\t\treturn currentPos;\n\t\t\t// If the target is above/left of the current view, then scroll to its top/left\n\t\t\t} else if(targetPos <= currentPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// If the target is smaller than the window and the scroll position is too far up, then scroll till the target is at the bottom of the window\n\t\t\t} else if(targetSize < currentSize && currentPos < (targetPos + targetSize - currentSize)) {\n\t\t\t\treturn targetPos + targetSize - currentSize;\n\t\t\t// If the target is big, then just scroll to the top\n\t\t\t} else if(currentPos < targetPos) {\n\t\t\t\treturn targetPos;\n\t\t\t// Otherwise, stay where we are\n\t\t\t} else {\n\t\t\t\treturn currentPos;\n\t\t\t}\n\t\t},\n\t\tendX = getEndPos(bounds.left,bounds.width,scrollPosition.x,this.outerDomNode.offsetWidth),\n\t\tendY = getEndPos(bounds.top,bounds.height,scrollPosition.y,this.outerDomNode.offsetHeight);\n\t// Only scroll if necessary\n\tif(endX !== scrollPosition.x || endY !== scrollPosition.y) {\n\t\tvar self = this,\n\t\t\tdrawFrame;\n\t\tdrawFrame = function () {\n\t\t\tvar t;\n\t\t\tif(duration <= 0) {\n\t\t\t\tt = 1;\n\t\t\t} else {\n\t\t\t\tt = ((Date.now()) - self.startTime) / duration;\t\n\t\t\t}\n\t\t\tif(t >= 1) {\n\t\t\t\tself.cancelScroll();\n\t\t\t\tt = 1;\n\t\t\t}\n\t\t\tt = $tw.utils.slowInSlowOut(t);\n\t\t\tself.outerDomNode.scrollLeft = scrollPosition.x + (endX - scrollPosition.x) * t;\n\t\t\tself.outerDomNode.scrollTop = scrollPosition.y + (endY - scrollPosition.y) * t;\n\t\t\tif(t < 1) {\n\t\t\t\tself.idRequestFrame = self.requestAnimationFrame.call(window,drawFrame);\n\t\t\t}\n\t\t};\n\t\tdrawFrame();\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nScrollableWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Remember parent\n\tthis.parentDomNode = parent;\n\t// Compute attributes and execute state\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Create elements\n\tthis.outerDomNode = this.document.createElement(\"div\");\n\t$tw.utils.setStyle(this.outerDomNode,[\n\t\t{overflowY: \"auto\"},\n\t\t{overflowX: \"auto\"},\n\t\t{webkitOverflowScrolling: \"touch\"}\n\t]);\n\tthis.innerDomNode = this.document.createElement(\"div\");\n\tthis.outerDomNode.appendChild(this.innerDomNode);\n\t// Assign classes\n\tthis.outerDomNode.className = this[\"class\"] || \"\";\n\t// Insert element\n\tparent.insertBefore(this.outerDomNode,nextSibling);\n\tthis.renderChildren(this.innerDomNode,null);\n\tthis.domNodes.push(this.outerDomNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nScrollableWidget.prototype.execute = function() {\n\t// Get attributes\n\tthis.fallthrough = this.getAttribute(\"fallthrough\",\"yes\");\n\tthis[\"class\"] = this.getAttribute(\"class\");\n\t// Make child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nScrollableWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes[\"class\"]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports.scrollable = ScrollableWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/select.js": {
"title": "$:/core/modules/widgets/select.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/select.js\ntype: application/javascript\nmodule-type: widget\n\nSelect widget:\n\n```\n<$select tiddler=\"MyTiddler\" field=\"text\">\n<$list filter=\"[tag[chapter]]\">\n<option value=<<currentTiddler>>>\n<$view field=\"description\"/>\n</option>\n</$list>\n</$select>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SelectWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSelectWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSelectWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n\tthis.setSelectValue();\n\t$tw.utils.addEventListeners(this.getSelectDomNode(),[\n\t\t{name: \"change\", handlerObject: this, handlerMethod: \"handleChangeEvent\"}\n\t]);\n};\n\n/*\nHandle a change event\n*/\nSelectWidget.prototype.handleChangeEvent = function(event) {\n\t// Get the new value and assign it to the tiddler\n\tif(this.selectMultiple == false) {\n\t\tvar value = this.getSelectDomNode().value;\n\t} else {\n\t\tvar value = this.getSelectValues()\n\t\t\t\tvalue = $tw.utils.stringifyList(value);\n\t}\n\tthis.wiki.setText(this.selectTitle,this.selectField,this.selectIndex,value);\n\t// Trigger actions\n\tif(this.selectActions) {\n\t\tthis.invokeActionString(this.selectActions,this,event);\n\t}\n};\n\n/*\nIf necessary, set the value of the select element to the current value\n*/\nSelectWidget.prototype.setSelectValue = function() {\n\tvar value = this.selectDefault;\n\t// Get the value\n\tif(this.selectIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.selectTitle,this.selectIndex,value);\n\t} else {\n\t\tvar tiddler = this.wiki.getTiddler(this.selectTitle);\n\t\tif(tiddler) {\n\t\t\tif(this.selectField === \"text\") {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.selectTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.selectField)) {\n\t\t\t\t\tvalue = tiddler.getFieldString(this.selectField);\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.selectField === \"title\") {\n\t\t\t\tvalue = this.selectTitle;\n\t\t\t}\n\t\t}\n\t}\n\t// Assign it to the select element if it's different than the current value\n\tif (this.selectMultiple) {\n\t\tvalue = value === undefined ? \"\" : value;\n\t\tvar select = this.getSelectDomNode();\n\t\tvar values = Array.isArray(value) ? value : $tw.utils.parseStringArray(value);\n\t\tfor(var i=0; i < select.children.length; i++){\n\t\t\tselect.children[i].selected = values.indexOf(select.children[i].value) !== -1\n\t\t}\n\t} else {\n\t\tvar domNode = this.getSelectDomNode();\n\t\tif(domNode.value !== value) {\n\t\t\tdomNode.value = value;\n\t\t}\n\t}\n};\n\n/*\nGet the DOM node of the select element\n*/\nSelectWidget.prototype.getSelectDomNode = function() {\n\treturn this.children[0].domNodes[0];\n};\n\n// Return an array of the selected opion values\n// select is an HTML select element\nSelectWidget.prototype.getSelectValues = function() {\n\tvar select, result, options, opt;\n\tselect = this.getSelectDomNode();\n\tresult = [];\n\toptions = select && select.options;\n\tfor (var i=0; i<options.length; i++) {\n\t\topt = options[i];\n\t\tif (opt.selected) {\n\t\t\tresult.push(opt.value || opt.text);\n\t\t}\n\t}\n\treturn result;\n}\n\n/*\nCompute the internal state of the widget\n*/\nSelectWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.selectActions = this.getAttribute(\"actions\");\n\tthis.selectTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.selectField = this.getAttribute(\"field\",\"text\");\n\tthis.selectIndex = this.getAttribute(\"index\");\n\tthis.selectClass = this.getAttribute(\"class\");\n\tthis.selectDefault = this.getAttribute(\"default\");\n\tthis.selectMultiple = this.getAttribute(\"multiple\", false);\n\tthis.selectSize = this.getAttribute(\"size\");\n\tthis.selectTooltip = this.getAttribute(\"tooltip\");\n\t// Make the child widgets\n\tvar selectNode = {\n\t\ttype: \"element\",\n\t\ttag: \"select\",\n\t\tchildren: this.parseTreeNode.children\n\t};\n\tif(this.selectClass) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"class\",this.selectClass);\n\t}\n\tif(this.selectMultiple) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"multiple\",\"multiple\");\n\t}\n\tif(this.selectSize) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"size\",this.selectSize);\n\t}\n\tif(this.selectTooltip) {\n\t\t$tw.utils.addAttributeToParseTreeNode(selectNode,\"title\",this.selectTooltip);\n\t}\n\tthis.makeChildWidgets([selectNode]);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSelectWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// If we're using a different tiddler/field/index then completely refresh ourselves\n\tif(changedAttributes.selectTitle || changedAttributes.selectField || changedAttributes.selectIndex || changedAttributes.selectTooltip) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t// If the target tiddler value has changed, just update setting and refresh the children\n\t} else {\n\t\tvar childrenRefreshed = this.refreshChildren(changedTiddlers);\n\t\tif(changedTiddlers[this.selectTitle] || childrenRefreshed) {\n\t\t\tthis.setSelectValue();\n\t\t} \n\t\treturn childrenRefreshed;\n\t}\n};\n\nexports.select = SelectWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/set.js": {
"title": "$:/core/modules/widgets/set.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/set.js\ntype: application/javascript\nmodule-type: widget\n\nSet variable widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar SetWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nSetWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nSetWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nSetWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.setName = this.getAttribute(\"name\",\"currentTiddler\");\n\tthis.setFilter = this.getAttribute(\"filter\");\n\tthis.setSelect = this.getAttribute(\"select\");\n\tthis.setTiddler = this.getAttribute(\"tiddler\");\n\tthis.setSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.setField = this.getAttribute(\"field\");\n\tthis.setIndex = this.getAttribute(\"index\");\n\tthis.setValue = this.getAttribute(\"value\");\n\tthis.setEmptyValue = this.getAttribute(\"emptyValue\");\n\t// Set context variable\n\tthis.setVariable(this.setName,this.getValue(),this.parseTreeNode.params,!!this.parseTreeNode.isMacroDefinition);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nGet the value to be assigned\n*/\nSetWidget.prototype.getValue = function() {\n\tvar value = this.setValue;\n\tif(this.setTiddler) {\n\t\tvar tiddler;\n\t\tif(this.setSubTiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.setTiddler,this.setSubTiddler);\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.setTiddler);\t\t\t\n\t\t}\n\t\tif(!tiddler) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t} else if(this.setField) {\n\t\t\tvalue = tiddler.getFieldString(this.setField) || this.setEmptyValue;\n\t\t} else if(this.setIndex) {\n\t\t\tvalue = this.wiki.extractTiddlerDataItem(this.setTiddler,this.setIndex,this.setEmptyValue);\n\t\t} else {\n\t\t\tvalue = tiddler.fields.text || this.setEmptyValue ;\n\t\t}\n\t} else if(this.setFilter) {\n\t\tvar results = this.wiki.filterTiddlers(this.setFilter,this);\n\t\tif(this.setValue == null) {\n\t\t\tvar select;\n\t\t\tif(this.setSelect) {\n\t\t\t\tselect = parseInt(this.setSelect,10);\n\t\t\t}\n\t\t\tif(select !== undefined) {\n\t\t\t\tvalue = results[select] || \"\";\n\t\t\t} else {\n\t\t\t\tvalue = $tw.utils.stringifyList(results);\t\t\t\n\t\t\t}\n\t\t}\n\t\tif(results.length === 0 && this.setEmptyValue !== undefined) {\n\t\t\tvalue = this.setEmptyValue;\n\t\t}\n\t} else if(!value && this.setEmptyValue) {\n\t\tvalue = this.setEmptyValue;\n\t}\n\treturn value || \"\";\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nSetWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.name || changedAttributes.filter || changedAttributes.select || changedAttributes.tiddler || (this.setTiddler && changedTiddlers[this.setTiddler]) || changedAttributes.field || changedAttributes.index || changedAttributes.value || changedAttributes.emptyValue ||\n\t (this.setFilter && this.getValue() != this.variables[this.setName].value)) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.setvariable = SetWidget;\nexports.set = SetWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/text.js": {
"title": "$:/core/modules/widgets/text.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/text.js\ntype: application/javascript\nmodule-type: widget\n\nText node widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TextNodeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTextNodeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTextNodeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\ttext = text.replace(/\\r/mg,\"\");\n\tvar textNode = this.document.createTextNode(text);\n\tparent.insertBefore(textNode,nextSibling);\n\tthis.domNodes.push(textNode);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTextNodeWidget.prototype.execute = function() {\n\t// Nothing to do for a text node\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTextNodeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.text = TextNodeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/tiddler.js": {
"title": "$:/core/modules/widgets/tiddler.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/tiddler.js\ntype: application/javascript\nmodule-type: widget\n\nTiddler widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TiddlerWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTiddlerWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTiddlerWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTiddlerWidget.prototype.execute = function() {\n\tthis.tiddlerState = this.computeTiddlerState();\n\tthis.setVariable(\"currentTiddler\",this.tiddlerState.currentTiddler);\n\tthis.setVariable(\"missingTiddlerClass\",this.tiddlerState.missingTiddlerClass);\n\tthis.setVariable(\"shadowTiddlerClass\",this.tiddlerState.shadowTiddlerClass);\n\tthis.setVariable(\"systemTiddlerClass\",this.tiddlerState.systemTiddlerClass);\n\tthis.setVariable(\"tiddlerTagClasses\",this.tiddlerState.tiddlerTagClasses);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nCompute the tiddler state flags\n*/\nTiddlerWidget.prototype.computeTiddlerState = function() {\n\t// Get our parameters\n\tthis.tiddlerTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\t// Compute the state\n\tvar state = {\n\t\tcurrentTiddler: this.tiddlerTitle || \"\",\n\t\tmissingTiddlerClass: (this.wiki.tiddlerExists(this.tiddlerTitle) || this.wiki.isShadowTiddler(this.tiddlerTitle)) ? \"tc-tiddler-exists\" : \"tc-tiddler-missing\",\n\t\tshadowTiddlerClass: this.wiki.isShadowTiddler(this.tiddlerTitle) ? \"tc-tiddler-shadow\" : \"\",\n\t\tsystemTiddlerClass: this.wiki.isSystemTiddler(this.tiddlerTitle) ? \"tc-tiddler-system\" : \"\",\n\t\ttiddlerTagClasses: this.getTagClasses()\n\t};\n\t// Compute a simple hash to make it easier to detect changes\n\tstate.hash = state.currentTiddler + state.missingTiddlerClass + state.shadowTiddlerClass + state.systemTiddlerClass + state.tiddlerTagClasses;\n\treturn state;\n};\n\n/*\nCreate a string of CSS classes derived from the tags of the current tiddler\n*/\nTiddlerWidget.prototype.getTagClasses = function() {\n\tvar tiddler = this.wiki.getTiddler(this.tiddlerTitle);\n\tif(tiddler) {\n\t\tvar tags = [];\n\t\t$tw.utils.each(tiddler.fields.tags,function(tag) {\n\t\t\ttags.push(\"tc-tagged-\" + encodeURIComponent(tag));\n\t\t});\n\t\treturn tags.join(\" \");\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTiddlerWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes(),\n\t\tnewTiddlerState = this.computeTiddlerState();\n\tif(changedAttributes.tiddler || newTiddlerState.hash !== this.tiddlerState.hash) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.tiddler = TiddlerWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/transclude.js": {
"title": "$:/core/modules/widgets/transclude.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/transclude.js\ntype: application/javascript\nmodule-type: widget\n\nTransclude widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TranscludeWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTranscludeWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nTranscludeWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nTranscludeWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.transcludeTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.transcludeSubTiddler = this.getAttribute(\"subtiddler\");\n\tthis.transcludeField = this.getAttribute(\"field\");\n\tthis.transcludeIndex = this.getAttribute(\"index\");\n\tthis.transcludeMode = this.getAttribute(\"mode\");\n\t// Parse the text reference\n\tvar parseAsInline = !this.parseTreeNode.isBlock;\n\tif(this.transcludeMode === \"inline\") {\n\t\tparseAsInline = true;\n\t} else if(this.transcludeMode === \"block\") {\n\t\tparseAsInline = false;\n\t}\n\tvar parser = this.wiki.parseTextReference(\n\t\t\t\t\t\tthis.transcludeTitle,\n\t\t\t\t\t\tthis.transcludeField,\n\t\t\t\t\t\tthis.transcludeIndex,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tparseAsInline: parseAsInline,\n\t\t\t\t\t\t\tsubTiddler: this.transcludeSubTiddler\n\t\t\t\t\t\t}),\n\t\tparseTreeNodes = parser ? parser.tree : this.parseTreeNode.children;\n\t// Set context variables for recursion detection\n\tvar recursionMarker = this.makeRecursionMarker();\n\tthis.setVariable(\"transclusion\",recursionMarker);\n\t// Check for recursion\n\tif(parser) {\n\t\tif(this.parentWidget && this.parentWidget.hasVariable(\"transclusion\",recursionMarker)) {\n\t\t\tparseTreeNodes = [{type: \"element\", tag: \"span\", attributes: {\n\t\t\t\t\"class\": {type: \"string\", value: \"tc-error\"}\n\t\t\t}, children: [\n\t\t\t\t{type: \"text\", text: $tw.language.getString(\"Error/RecursiveTransclusion\")}\n\t\t\t]}];\n\t\t}\n\t}\n\t// Construct the child widgets\n\tthis.makeChildWidgets(parseTreeNodes);\n};\n\n/*\nCompose a string comprising the title, field and/or index to identify this transclusion for recursion detection\n*/\nTranscludeWidget.prototype.makeRecursionMarker = function() {\n\tvar output = [];\n\toutput.push(\"{\");\n\toutput.push(this.getVariable(\"currentTiddler\",{defaultValue: \"\"}));\n\toutput.push(\"|\");\n\toutput.push(this.transcludeTitle || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeField || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeIndex || \"\");\n\toutput.push(\"|\");\n\toutput.push(this.transcludeSubTiddler || \"\");\n\toutput.push(\"}\");\n\treturn output.join(\"\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTranscludeWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedTiddlers[this.transcludeTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn this.refreshChildren(changedTiddlers);\t\t\n\t}\n};\n\nexports.transclude = TranscludeWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/vars.js": {
"title": "$:/core/modules/widgets/vars.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/vars.js\ntype: application/javascript\nmodule-type: widget\n\nThis widget allows multiple variables to be set in one go:\n\n```\n\\define helloworld() Hello world!\n<$vars greeting=\"Hi\" me={{!!title}} sentence=<<helloworld>>>\n <<greeting>>! I am <<me>> and I say: <<sentence>>\n</$vars>\n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar VarsWidget = function(parseTreeNode,options) {\n\t// Call the constructor\n\tWidget.call(this);\n\t// Initialise\t\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nVarsWidget.prototype = Object.create(Widget.prototype);\n\n/*\nRender this widget into the DOM\n*/\nVarsWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nVarsWidget.prototype.execute = function() {\n\t// Parse variables\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(val,key) {\n\t\tif(key.charAt(0) !== \"$\") {\n\t\t\tself.setVariable(key,val);\n\t\t}\n\t});\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nRefresh the widget by ensuring our attributes are up to date\n*/\nVarsWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(Object.keys(changedAttributes).length) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn this.refreshChildren(changedTiddlers);\n};\n\nexports[\"vars\"] = VarsWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/view.js": {
"title": "$:/core/modules/widgets/view.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/view.js\ntype: application/javascript\nmodule-type: widget\n\nView widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar ViewWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nViewWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nViewWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tif(this.text) {\n\t\tvar textNode = this.document.createTextNode(this.text);\n\t\tparent.insertBefore(textNode,nextSibling);\n\t\tthis.domNodes.push(textNode);\n\t} else {\n\t\tthis.makeChildWidgets();\n\t\tthis.renderChildren(parent,nextSibling);\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nViewWidget.prototype.execute = function() {\n\t// Get parameters from our attributes\n\tthis.viewTitle = this.getAttribute(\"tiddler\",this.getVariable(\"currentTiddler\"));\n\tthis.viewSubtiddler = this.getAttribute(\"subtiddler\");\n\tthis.viewField = this.getAttribute(\"field\",\"text\");\n\tthis.viewIndex = this.getAttribute(\"index\");\n\tthis.viewFormat = this.getAttribute(\"format\",\"text\");\n\tthis.viewTemplate = this.getAttribute(\"template\",\"\");\n\tthis.viewMode = this.getAttribute(\"mode\",\"block\");\n\tswitch(this.viewFormat) {\n\t\tcase \"htmlwikified\":\n\t\t\tthis.text = this.getValueAsHtmlWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"plainwikified\":\n\t\t\tthis.text = this.getValueAsPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencodedplainwikified\":\n\t\t\tthis.text = this.getValueAsHtmlEncodedPlainWikified(this.viewMode);\n\t\t\tbreak;\n\t\tcase \"htmlencoded\":\n\t\t\tthis.text = this.getValueAsHtmlEncoded();\n\t\t\tbreak;\n\t\tcase \"urlencoded\":\n\t\t\tthis.text = this.getValueAsUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"doubleurlencoded\":\n\t\t\tthis.text = this.getValueAsDoubleUrlEncoded();\n\t\t\tbreak;\n\t\tcase \"date\":\n\t\t\tthis.text = this.getValueAsDate(this.viewTemplate);\n\t\t\tbreak;\n\t\tcase \"relativedate\":\n\t\t\tthis.text = this.getValueAsRelativeDate();\n\t\t\tbreak;\n\t\tcase \"stripcomments\":\n\t\t\tthis.text = this.getValueAsStrippedComments();\n\t\t\tbreak;\n\t\tcase \"jsencoded\":\n\t\t\tthis.text = this.getValueAsJsEncoded();\n\t\t\tbreak;\n\t\tdefault: // \"text\"\n\t\t\tthis.text = this.getValueAsText();\n\t\t\tbreak;\n\t}\n};\n\n/*\nThe various formatter functions are baked into this widget for the moment. Eventually they will be replaced by macro functions\n*/\n\n/*\nRetrieve the value of the widget. Options are:\nasString: Optionally return the value as a string\n*/\nViewWidget.prototype.getValue = function(options) {\n\toptions = options || {};\n\tvar value = options.asString ? \"\" : undefined;\n\tif(this.viewIndex) {\n\t\tvalue = this.wiki.extractTiddlerDataItem(this.viewTitle,this.viewIndex);\n\t} else {\n\t\tvar tiddler;\n\t\tif(this.viewSubtiddler) {\n\t\t\ttiddler = this.wiki.getSubTiddler(this.viewTitle,this.viewSubtiddler);\t\n\t\t} else {\n\t\t\ttiddler = this.wiki.getTiddler(this.viewTitle);\n\t\t}\n\t\tif(tiddler) {\n\t\t\tif(this.viewField === \"text\" && !this.viewSubtiddler) {\n\t\t\t\t// Calling getTiddlerText() triggers lazy loading of skinny tiddlers\n\t\t\t\tvalue = this.wiki.getTiddlerText(this.viewTitle);\n\t\t\t} else {\n\t\t\t\tif($tw.utils.hop(tiddler.fields,this.viewField)) {\n\t\t\t\t\tif(options.asString) {\n\t\t\t\t\t\tvalue = tiddler.getFieldString(this.viewField);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tvalue = tiddler.fields[this.viewField];\t\t\t\t\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tif(this.viewField === \"title\") {\n\t\t\t\tvalue = this.viewTitle;\n\t\t\t}\n\t\t}\n\t}\n\treturn value;\n};\n\nViewWidget.prototype.getValueAsText = function() {\n\treturn this.getValue({asString: true});\n};\n\nViewWidget.prototype.getValueAsHtmlWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/html\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsPlainWikified = function(mode) {\n\treturn this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t});\n};\n\nViewWidget.prototype.getValueAsHtmlEncodedPlainWikified = function(mode) {\n\treturn $tw.utils.htmlEncode(this.wiki.renderText(\"text/plain\",\"text/vnd.tiddlywiki\",this.getValueAsText(),{\n\t\tparseAsInline: mode !== \"block\",\n\t\tparentWidget: this\n\t}));\n};\n\nViewWidget.prototype.getValueAsHtmlEncoded = function() {\n\treturn $tw.utils.htmlEncode(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsUrlEncoded = function() {\n\treturn encodeURIComponent(this.getValueAsText());\n};\n\nViewWidget.prototype.getValueAsDoubleUrlEncoded = function() {\n\treturn encodeURIComponent(encodeURIComponent(this.getValueAsText()));\n};\n\nViewWidget.prototype.getValueAsDate = function(format) {\n\tformat = format || \"YYYY MM DD 0hh:0mm\";\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.formatDateString(value,format);\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsRelativeDate = function(format) {\n\tvar value = $tw.utils.parseDate(this.getValue());\n\tif(value && $tw.utils.isDate(value) && value.toString() !== \"Invalid Date\") {\n\t\treturn $tw.utils.getRelativeDate((new Date()) - (new Date(value))).description;\n\t} else {\n\t\treturn \"\";\n\t}\n};\n\nViewWidget.prototype.getValueAsStrippedComments = function() {\n\tvar lines = this.getValueAsText().split(\"\\n\"),\n\t\tout = [];\n\tfor(var line=0; line<lines.length; line++) {\n\t\tvar text = lines[line];\n\t\tif(!/^\\s*\\/\\/#/.test(text)) {\n\t\t\tout.push(text);\n\t\t}\n\t}\n\treturn out.join(\"\\n\");\n};\n\nViewWidget.prototype.getValueAsJsEncoded = function() {\n\treturn $tw.utils.stringify(this.getValueAsText());\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nViewWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.tiddler || changedAttributes.field || changedAttributes.index || changedAttributes.template || changedAttributes.format || changedTiddlers[this.viewTitle]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.view = ViewWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/widget.js": {
"title": "$:/core/modules/widgets/widget.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/widget.js\ntype: application/javascript\nmodule-type: widget\n\nWidget base class\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nCreate a widget object for a parse tree node\n\tparseTreeNode: reference to the parse tree node to be rendered\n\toptions: see below\nOptions include:\n\twiki: mandatory reference to wiki associated with this render tree\n\tparentWidget: optional reference to a parent renderer node for the context chain\n\tdocument: optional document object to use instead of global document\n*/\nvar Widget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInitialise widget properties. These steps are pulled out of the constructor so that we can reuse them in subclasses\n*/\nWidget.prototype.initialise = function(parseTreeNode,options) {\n\t// Bail if parseTreeNode is undefined, meaning that the widget constructor was called without any arguments so that it can be subclassed\n\tif(parseTreeNode === undefined) {\n\t\treturn;\n\t}\n\toptions = options || {};\n\t// Save widget info\n\tthis.parseTreeNode = parseTreeNode;\n\tthis.wiki = options.wiki;\n\tthis.parentWidget = options.parentWidget;\n\tthis.variablesConstructor = function() {};\n\tthis.variablesConstructor.prototype = this.parentWidget ? this.parentWidget.variables : {};\n\tthis.variables = new this.variablesConstructor();\n\tthis.document = options.document;\n\tthis.attributes = {};\n\tthis.children = [];\n\tthis.domNodes = [];\n\tthis.eventListeners = {};\n\t// Hashmap of the widget classes\n\tif(!this.widgetClasses) {\n\t\t// Get widget classes\n\t\tWidget.prototype.widgetClasses = $tw.modules.applyMethods(\"widget\");\n\t\t// Process any subclasses\n\t\t$tw.modules.forEachModuleOfType(\"widget-subclass\",function(title,module) {\n\t\t\tif(module.baseClass) {\n\t\t\t\tvar baseClass = Widget.prototype.widgetClasses[module.baseClass];\n\t\t\t\tif(!baseClass) {\n\t\t\t\t\tthrow \"Module '\" + title + \"' is attemping to extend a non-existent base class '\" + module.baseClass + \"'\";\n\t\t\t\t}\n\t\t\t\tvar subClass = module.constructor;\n\t\t\t\tsubClass.prototype = new baseClass();\n\t\t\t\t$tw.utils.extend(subClass.prototype,module.prototype);\n\t\t\t\tWidget.prototype.widgetClasses[module.name || module.baseClass] = subClass;\n\t\t\t}\n\t\t});\n\t}\n};\n\n/*\nRender this widget into the DOM\n*/\nWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWidget.prototype.execute = function() {\n\tthis.makeChildWidgets();\n};\n\n/*\nSet the value of a context variable\nname: name of the variable\nvalue: value of the variable\nparams: array of {name:, default:} for each parameter\nisMacroDefinition: true if the variable is set via a \\define macro pragma (and hence should have variable substitution performed)\n*/\nWidget.prototype.setVariable = function(name,value,params,isMacroDefinition) {\n\tthis.variables[name] = {value: value, params: params, isMacroDefinition: !!isMacroDefinition};\n};\n\n/*\nGet the prevailing value of a context variable\nname: name of variable\noptions: see below\nOptions include\nparams: array of {name:, value:} for each parameter\ndefaultValue: default value if the variable is not defined\n\nReturns an object with the following fields:\n\nparams: array of {name:,value:} of parameters passed to wikitext variables\ntext: text of variable, with parameters properly substituted\n*/\nWidget.prototype.getVariableInfo = function(name,options) {\n\toptions = options || {};\n\tvar actualParams = options.params || [],\n\t\tparentWidget = this.parentWidget;\n\t// Check for the variable defined in the parent widget (or an ancestor in the prototype chain)\n\tif(parentWidget && name in parentWidget.variables) {\n\t\tvar variable = parentWidget.variables[name],\n\t\t\tvalue = variable.value,\n\t\t\tparams = this.resolveVariableParameters(variable.params,actualParams);\n\t\t// Substitute any parameters specified in the definition\n\t\t$tw.utils.each(params,function(param) {\n\t\t\tvalue = $tw.utils.replaceString(value,new RegExp(\"\\\\$\" + $tw.utils.escapeRegExp(param.name) + \"\\\\$\",\"mg\"),param.value);\n\t\t});\n\t\t// Only substitute variable references if this variable was defined with the \\define pragma\n\t\tif(variable.isMacroDefinition) {\n\t\t\tvalue = this.substituteVariableReferences(value);\t\t\t\n\t\t}\n\t\treturn {\n\t\t\ttext: value,\n\t\t\tparams: params\n\t\t};\n\t}\n\t// If the variable doesn't exist in the parent widget then look for a macro module\n\treturn {\n\t\ttext: this.evaluateMacroModule(name,actualParams,options.defaultValue)\n\t};\n};\n\n/*\nSimplified version of getVariableInfo() that just returns the text\n*/\nWidget.prototype.getVariable = function(name,options) {\n\treturn this.getVariableInfo(name,options).text;\n};\n\nWidget.prototype.resolveVariableParameters = function(formalParams,actualParams) {\n\tformalParams = formalParams || [];\n\tactualParams = actualParams || [];\n\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\tparamInfo, paramValue,\n\t\tresults = [];\n\t// Step through each of the parameters in the macro definition\n\tfor(var p=0; p<formalParams.length; p++) {\n\t\t// Check if we've got a macro call parameter with the same name\n\t\tparamInfo = formalParams[p];\n\t\tparamValue = undefined;\n\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t}\n\t\t}\n\t\t// If not, use the next available anonymous macro call parameter\n\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\tnextAnonParameter++;\n\t\t}\n\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t}\n\t\t// If we've still not got a value, use the default, if any\n\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t// Store the parameter name and value\n\t\tresults.push({name: paramInfo.name, value: paramValue});\n\t}\n\treturn results;\n};\n\nWidget.prototype.substituteVariableReferences = function(text) {\n\tvar self = this;\n\treturn (text || \"\").replace(/\\$\\(([^\\)\\$]+)\\)\\$/g,function(match,p1,offset,string) {\n\t\treturn self.getVariable(p1,{defaultValue: \"\"});\n\t});\n};\n\nWidget.prototype.evaluateMacroModule = function(name,actualParams,defaultValue) {\n\tif($tw.utils.hop($tw.macros,name)) {\n\t\tvar macro = $tw.macros[name],\n\t\t\targs = [];\n\t\tif(macro.params.length > 0) {\n\t\t\tvar nextAnonParameter = 0, // Next candidate anonymous parameter in macro call\n\t\t\t\tparamInfo, paramValue;\n\t\t\t// Step through each of the parameters in the macro definition\n\t\t\tfor(var p=0; p<macro.params.length; p++) {\n\t\t\t\t// Check if we've got a macro call parameter with the same name\n\t\t\t\tparamInfo = macro.params[p];\n\t\t\t\tparamValue = undefined;\n\t\t\t\tfor(var m=0; m<actualParams.length; m++) {\n\t\t\t\t\tif(actualParams[m].name === paramInfo.name) {\n\t\t\t\t\t\tparamValue = actualParams[m].value;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If not, use the next available anonymous macro call parameter\n\t\t\t\twhile(nextAnonParameter < actualParams.length && actualParams[nextAnonParameter].name) {\n\t\t\t\t\tnextAnonParameter++;\n\t\t\t\t}\n\t\t\t\tif(paramValue === undefined && nextAnonParameter < actualParams.length) {\n\t\t\t\t\tparamValue = actualParams[nextAnonParameter++].value;\n\t\t\t\t}\n\t\t\t\t// If we've still not got a value, use the default, if any\n\t\t\t\tparamValue = paramValue || paramInfo[\"default\"] || \"\";\n\t\t\t\t// Save the parameter\n\t\t\t\targs.push(paramValue);\n\t\t\t}\n\t\t}\n\t\telse for(var i=0; i<actualParams.length; ++i) {\n\t\t\targs.push(actualParams[i].value);\n\t\t}\n\t\treturn (macro.run.apply(this,args) || \"\").toString();\n\t} else {\n\t\treturn defaultValue;\n\t}\n};\n\n/*\nCheck whether a given context variable value exists in the parent chain\n*/\nWidget.prototype.hasVariable = function(name,value) {\n\tvar node = this;\n\twhile(node) {\n\t\tif($tw.utils.hop(node.variables,name) && node.variables[name].value === value) {\n\t\t\treturn true;\n\t\t}\n\t\tnode = node.parentWidget;\n\t}\n\treturn false;\n};\n\n/*\nConstruct a qualifying string based on a hash of concatenating the values of a given variable in the parent chain\n*/\nWidget.prototype.getStateQualifier = function(name) {\n\tthis.qualifiers = this.qualifiers || Object.create(null);\n\tname = name || \"transclusion\";\n\tif(this.qualifiers[name]) {\n\t\treturn this.qualifiers[name];\n\t} else {\n\t\tvar output = [],\n\t\t\tnode = this;\n\t\twhile(node && node.parentWidget) {\n\t\t\tif($tw.utils.hop(node.parentWidget.variables,name)) {\n\t\t\t\toutput.push(node.getVariable(name));\n\t\t\t}\n\t\t\tnode = node.parentWidget;\n\t\t}\n\t\tvar value = $tw.utils.hashString(output.join(\"\"));\n\t\tthis.qualifiers[name] = value;\n\t\treturn value;\n\t}\n};\n\n/*\nCompute the current values of the attributes of the widget. Returns a hashmap of the names of the attributes that have changed\n*/\nWidget.prototype.computeAttributes = function() {\n\tvar changedAttributes = {},\n\t\tself = this,\n\t\tvalue;\n\t$tw.utils.each(this.parseTreeNode.attributes,function(attribute,name) {\n\t\tif(attribute.type === \"filtered\") {\n\t\t\tvalue = self.wiki.filterTiddlers(attribute.filter,self)[0] || \"\";\n\t\t} else if(attribute.type === \"indirect\") {\n\t\t\tvalue = self.wiki.getTextReference(attribute.textReference,\"\",self.getVariable(\"currentTiddler\"));\n\t\t} else if(attribute.type === \"macro\") {\n\t\t\tvalue = self.getVariable(attribute.value.name,{params: attribute.value.params});\n\t\t} else { // String attribute\n\t\t\tvalue = attribute.value;\n\t\t}\n\t\t// Check whether the attribute has changed\n\t\tif(self.attributes[name] !== value) {\n\t\t\tself.attributes[name] = value;\n\t\t\tchangedAttributes[name] = true;\n\t\t}\n\t});\n\treturn changedAttributes;\n};\n\n/*\nCheck for the presence of an attribute\n*/\nWidget.prototype.hasAttribute = function(name) {\n\treturn $tw.utils.hop(this.attributes,name);\n};\n\n/*\nGet the value of an attribute\n*/\nWidget.prototype.getAttribute = function(name,defaultText) {\n\tif($tw.utils.hop(this.attributes,name)) {\n\t\treturn this.attributes[name];\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nAssign the computed attributes of the widget to a domNode\noptions include:\nexcludeEventAttributes: ignores attributes whose name begins with \"on\"\n*/\nWidget.prototype.assignAttributes = function(domNode,options) {\n\toptions = options || {};\n\tvar self = this;\n\t$tw.utils.each(this.attributes,function(v,a) {\n\t\t// Check exclusions\n\t\tif(options.excludeEventAttributes && a.substr(0,2) === \"on\") {\n\t\t\tv = undefined;\n\t\t}\n\t\tif(v !== undefined) {\n\t\t\tvar b = a.split(\":\");\n\t\t\t// Setting certain attributes can cause a DOM error (eg xmlns on the svg element)\n\t\t\ttry {\n\t\t\t\tif (b.length == 2 && b[0] == \"xlink\"){\n\t\t\t\t\tdomNode.setAttributeNS(\"http://www.w3.org/1999/xlink\",b[1],v);\n\t\t\t\t} else {\n\t\t\t\t\tdomNode.setAttributeNS(null,a,v);\n\t\t\t\t}\n\t\t\t} catch(e) {\n\t\t\t}\n\t\t}\n\t});\n};\n\n/*\nMake child widgets correspondng to specified parseTreeNodes\n*/\nWidget.prototype.makeChildWidgets = function(parseTreeNodes) {\n\tthis.children = [];\n\tvar self = this;\n\t$tw.utils.each(parseTreeNodes || (this.parseTreeNode && this.parseTreeNode.children),function(childNode) {\n\t\tself.children.push(self.makeChildWidget(childNode));\n\t});\n};\n\n/*\nConstruct the widget object for a parse tree node\n*/\nWidget.prototype.makeChildWidget = function(parseTreeNode) {\n\tvar WidgetClass = this.widgetClasses[parseTreeNode.type];\n\tif(!WidgetClass) {\n\t\tWidgetClass = this.widgetClasses.text;\n\t\tparseTreeNode = {type: \"text\", text: \"Undefined widget '\" + parseTreeNode.type + \"'\"};\n\t}\n\treturn new WidgetClass(parseTreeNode,{\n\t\twiki: this.wiki,\n\t\tvariables: {},\n\t\tparentWidget: this,\n\t\tdocument: this.document\n\t});\n};\n\n/*\nGet the next sibling of this widget\n*/\nWidget.prototype.nextSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index < this.parentWidget.children.length-1) {\n\t\t\treturn this.parentWidget.children[index+1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nGet the previous sibling of this widget\n*/\nWidget.prototype.previousSibling = function() {\n\tif(this.parentWidget) {\n\t\tvar index = this.parentWidget.children.indexOf(this);\n\t\tif(index !== -1 && index > 0) {\n\t\t\treturn this.parentWidget.children[index-1];\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRender the children of this widget into the DOM\n*/\nWidget.prototype.renderChildren = function(parent,nextSibling) {\n\tvar children = this.children;\n\tfor(var i = 0; i < children.length; i++) {\n\t\tchildren[i].render(parent,nextSibling);\n\t};\n};\n\n/*\nAdd a list of event listeners from an array [{type:,handler:},...]\n*/\nWidget.prototype.addEventListeners = function(listeners) {\n\tvar self = this;\n\t$tw.utils.each(listeners,function(listenerInfo) {\n\t\tself.addEventListener(listenerInfo.type,listenerInfo.handler);\n\t});\n};\n\n/*\nAdd an event listener\n*/\nWidget.prototype.addEventListener = function(type,handler) {\n\tvar self = this;\n\tif(typeof handler === \"string\") { // The handler is a method name on this widget\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn self[handler].call(self,event);\n\t\t};\n\t} else { // The handler is a function\n\t\tthis.eventListeners[type] = function(event) {\n\t\t\treturn handler.call(self,event);\n\t\t};\n\t}\n};\n\n/*\nDispatch an event to a widget. If the widget doesn't handle the event then it is also dispatched to the parent widget\n*/\nWidget.prototype.dispatchEvent = function(event) {\n\t// Dispatch the event if this widget handles it\n\tvar listener = this.eventListeners[event.type];\n\tif(listener) {\n\t\t// Don't propagate the event if the listener returned false\n\t\tif(!listener(event)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Dispatch the event to the parent widget\n\tif(this.parentWidget) {\n\t\treturn this.parentWidget.dispatchEvent(event);\n\t}\n\treturn true;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWidget.prototype.refresh = function(changedTiddlers) {\n\treturn this.refreshChildren(changedTiddlers);\n};\n\n/*\nRebuild a previously rendered widget\n*/\nWidget.prototype.refreshSelf = function() {\n\tvar nextSibling = this.findNextSiblingDomNode();\n\tthis.removeChildDomNodes();\n\tthis.render(this.parentDomNode,nextSibling);\n};\n\n/*\nRefresh all the children of a widget\n*/\nWidget.prototype.refreshChildren = function(changedTiddlers) {\n\tvar children = this.children,\n\t\trefreshed = false;\n\tfor (var i = 0; i < children.length; i++) {\n\t\trefreshed = children[i].refresh(changedTiddlers) || refreshed;\n\t}\n\treturn refreshed;\n};\n\n/*\nFind the next sibling in the DOM to this widget. This is done by scanning the widget tree through all next siblings and their descendents that share the same parent DOM node\n*/\nWidget.prototype.findNextSiblingDomNode = function(startIndex) {\n\t// Refer to this widget by its index within its parents children\n\tvar parent = this.parentWidget,\n\t\tindex = startIndex !== undefined ? startIndex : parent.children.indexOf(this);\nif(index === -1) {\n\tthrow \"node not found in parents children\";\n}\n\t// Look for a DOM node in the later siblings\n\twhile(++index < parent.children.length) {\n\t\tvar domNode = parent.children[index].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\t// Go back and look for later siblings of our parent if it has the same parent dom node\n\tvar grandParent = parent.parentWidget;\n\tif(grandParent && parent.parentDomNode === this.parentDomNode) {\n\t\tindex = grandParent.children.indexOf(parent);\n\t\tif(index !== -1) {\n\t\t\treturn parent.findNextSiblingDomNode(index);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nFind the first DOM node generated by a widget or its children\n*/\nWidget.prototype.findFirstDomNode = function() {\n\t// Return the first dom node of this widget, if we've got one\n\tif(this.domNodes.length > 0) {\n\t\treturn this.domNodes[0];\n\t}\n\t// Otherwise, recursively call our children\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar domNode = this.children[t].findFirstDomNode();\n\t\tif(domNode) {\n\t\t\treturn domNode;\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRemove any DOM nodes created by this widget or its children\n*/\nWidget.prototype.removeChildDomNodes = function() {\n\t// If this widget has directly created DOM nodes, delete them and exit. This assumes that any child widgets are contained within the created DOM nodes, which would normally be the case\n\tif(this.domNodes.length > 0) {\n\t\t$tw.utils.each(this.domNodes,function(domNode) {\n\t\t\tdomNode.parentNode.removeChild(domNode);\n\t\t});\n\t\tthis.domNodes = [];\n\t} else {\n\t\t// Otherwise, ask the child widgets to delete their DOM nodes\n\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\tchildWidget.removeChildDomNodes();\n\t\t});\n\t}\n};\n\n/*\nInvoke the action widgets that are descendents of the current widget.\n*/\nWidget.prototype.invokeActions = function(triggeringWidget,event) {\n\tvar handled = false;\n\t// For each child widget\n\tfor(var t=0; t<this.children.length; t++) {\n\t\tvar child = this.children[t];\n\t\t// Invoke the child if it is an action widget\n\t\tif(child.invokeAction) {\n\t\t\tchild.refreshSelf();\n\t\t\tif(child.invokeAction(triggeringWidget,event)) {\n\t\t\t\thandled = true;\n\t\t\t}\n\t\t}\n\t\t// Propagate through through the child if it permits it\n\t\tif(child.allowActionPropagation() && child.invokeActions(triggeringWidget,event)) {\n\t\t\thandled = true;\n\t\t}\n\t}\n\treturn handled;\n};\n\n/*\nInvoke the action widgets defined in a string\n*/\nWidget.prototype.invokeActionString = function(actions,triggeringWidget,event,variables) {\n\tactions = actions || \"\";\n\tvar parser = this.wiki.parseText(\"text/vnd.tiddlywiki\",actions,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document\n\t\t}),\n\t\twidgetNode = this.wiki.makeWidget(parser,{\n\t\t\tparentWidget: this,\n\t\t\tdocument: this.document,\n\t\t\tvariables: variables\n\t\t});\n\tvar container = this.document.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn widgetNode.invokeActions(this,event);\n};\n\nWidget.prototype.allowActionPropagation = function() {\n\treturn true;\n};\n\nexports.widget = Widget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/widgets/wikify.js": {
"title": "$:/core/modules/widgets/wikify.js",
"text": "/*\\\ntitle: $:/core/modules/widgets/wikify.js\ntype: application/javascript\nmodule-type: widget\n\nWidget to wikify text into a variable\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar WikifyWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nWikifyWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nWikifyWidget.prototype.render = function(parent,nextSibling) {\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\tthis.renderChildren(parent,nextSibling);\n};\n\n/*\nCompute the internal state of the widget\n*/\nWikifyWidget.prototype.execute = function() {\n\t// Get our parameters\n\tthis.wikifyName = this.getAttribute(\"name\");\n\tthis.wikifyText = this.getAttribute(\"text\");\n\tthis.wikifyType = this.getAttribute(\"type\");\n\tthis.wikifyMode = this.getAttribute(\"mode\",\"block\");\n\tthis.wikifyOutput = this.getAttribute(\"output\",\"text\");\n\t// Create the parse tree\n\tthis.wikifyParser = this.wiki.parseText(this.wikifyType,this.wikifyText,{\n\t\t\tparseAsInline: this.wikifyMode === \"inline\"\n\t\t});\n\t// Create the widget tree \n\tthis.wikifyWidgetNode = this.wiki.makeWidget(this.wikifyParser,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparentWidget: this\n\t\t});\n\t// Render the widget tree to the container\n\tthis.wikifyContainer = $tw.fakeDocument.createElement(\"div\");\n\tthis.wikifyWidgetNode.render(this.wikifyContainer,null);\n\tthis.wikifyResult = this.getResult();\n\t// Set context variable\n\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t// Construct the child widgets\n\tthis.makeChildWidgets();\n};\n\n/*\nReturn the result string\n*/\nWikifyWidget.prototype.getResult = function() {\n\tvar result;\n\tswitch(this.wikifyOutput) {\n\t\tcase \"text\":\n\t\t\tresult = this.wikifyContainer.textContent;\n\t\t\tbreak;\n\t\tcase \"formattedtext\":\n\t\t\tresult = this.wikifyContainer.formattedTextContent;\n\t\t\tbreak;\n\t\tcase \"html\":\n\t\t\tresult = this.wikifyContainer.innerHTML;\n\t\t\tbreak;\n\t\tcase \"parsetree\":\n\t\t\tresult = JSON.stringify(this.wikifyParser.tree,0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t\tcase \"widgettree\":\n\t\t\tresult = JSON.stringify(this.getWidgetTree(),0,$tw.config.preferences.jsonSpaces);\n\t\t\tbreak;\n\t}\n\treturn result;\n};\n\n/*\nReturn a string of the widget tree\n*/\nWikifyWidget.prototype.getWidgetTree = function() {\n\tvar copyNode = function(widgetNode,resultNode) {\n\t\t\tvar type = widgetNode.parseTreeNode.type;\n\t\t\tresultNode.type = type;\n\t\t\tswitch(type) {\n\t\t\t\tcase \"element\":\n\t\t\t\t\tresultNode.tag = widgetNode.parseTreeNode.tag;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"text\":\n\t\t\t\t\tresultNode.text = widgetNode.parseTreeNode.text;\n\t\t\t\t\tbreak;\t\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.attributes || {}).length > 0) {\n\t\t\t\tresultNode.attributes = {};\n\t\t\t\t$tw.utils.each(widgetNode.attributes,function(attr,attrName) {\n\t\t\t\t\tresultNode.attributes[attrName] = widgetNode.getAttribute(attrName);\n\t\t\t\t});\n\t\t\t}\n\t\t\tif(Object.keys(widgetNode.children || {}).length > 0) {\n\t\t\t\tresultNode.children = [];\n\t\t\t\t$tw.utils.each(widgetNode.children,function(widgetChildNode) {\n\t\t\t\t\tvar node = {};\n\t\t\t\t\tresultNode.children.push(node);\n\t\t\t\t\tcopyNode(widgetChildNode,node);\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tresults = {};\n\tcopyNode(this.wikifyWidgetNode,results);\n\treturn results;\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nWikifyWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\t// Refresh ourselves entirely if any of our attributes have changed\n\tif(changedAttributes.name || changedAttributes.text || changedAttributes.type || changedAttributes.mode || changedAttributes.output) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\t// Refresh the widget tree\n\t\tif(this.wikifyWidgetNode.refresh(changedTiddlers)) {\n\t\t\t// Check if there was any change\n\t\t\tvar result = this.getResult();\n\t\t\tif(result !== this.wikifyResult) {\n\t\t\t\t// If so, save the change\n\t\t\t\tthis.wikifyResult = result;\n\t\t\t\tthis.setVariable(this.wikifyName,this.wikifyResult);\n\t\t\t\t// Refresh each of our child widgets\n\t\t\t\t$tw.utils.each(this.children,function(childWidget) {\n\t\t\t\t\tchildWidget.refreshSelf();\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t\t// Just refresh the children\n\t\treturn this.refreshChildren(changedTiddlers);\n\t}\n};\n\nexports.wikify = WikifyWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/core/modules/wiki-bulkops.js": {
"title": "$:/core/modules/wiki-bulkops.js",
"text": "/*\\\ntitle: $:/core/modules/wiki-bulkops.js\ntype: application/javascript\nmodule-type: wikimethod\n\nBulk tiddler operations such as rename.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nRename a tiddler, and relink any tags or lists that reference it.\n*/\nfunction renameTiddler(fromTitle,toTitle,options) {\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\t// Rename the tiddler itself\n\t\tvar oldTiddler = this.getTiddler(fromTitle),\n\t\t\tnewTiddler = new $tw.Tiddler(oldTiddler,{title: toTitle},this.getModificationFields());\n\t\tnewTiddler = $tw.hooks.invokeHook(\"th-renaming-tiddler\",newTiddler,oldTiddler);\n\t\tthis.addTiddler(newTiddler);\n\t\tthis.deleteTiddler(fromTitle);\n\t\t// Rename any tags or lists that reference it\n\t\tthis.relinkTiddler(fromTitle,toTitle,options)\n\t}\n}\n\n/*\nRelink any tags or lists that reference a given tiddler\n*/\nfunction relinkTiddler(fromTitle,toTitle,options) {\n\tvar self = this;\n\tfromTitle = (fromTitle || \"\").trim();\n\ttoTitle = (toTitle || \"\").trim();\n\toptions = options || {};\n\tif(fromTitle && toTitle && fromTitle !== toTitle) {\n\t\tthis.each(function(tiddler,title) {\n\t\t\tvar type = tiddler.fields.type || \"\";\n\t\t\t// Don't touch plugins or JavaScript modules\n\t\t\tif(!tiddler.fields[\"plugin-type\"] && type !== \"application/javascript\") {\n\t\t\t\tvar tags = tiddler.fields.tags ? tiddler.fields.tags.slice(0) : undefined,\n\t\t\t\t\tlist = tiddler.fields.list ? tiddler.fields.list.slice(0) : undefined,\n\t\t\t\t\tisModified = false;\n\t\t\t\tif(!options.dontRenameInTags) {\n\t\t\t\t\t// Rename tags\n\t\t\t\t\t$tw.utils.each(tags,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming tag '\" + tags[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\ttags[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(!options.dontRenameInLists) {\n\t\t\t\t\t// Rename lists\n\t\t\t\t\t$tw.utils.each(list,function (title,index) {\n\t\t\t\t\t\tif(title === fromTitle) {\nconsole.log(\"Renaming list item '\" + list[index] + \"' to '\" + toTitle + \"' of tiddler '\" + tiddler.fields.title + \"'\");\n\t\t\t\t\t\t\tlist[index] = toTitle;\n\t\t\t\t\t\t\tisModified = true;\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tif(isModified) {\n\t\t\t\t\tvar newTiddler = new $tw.Tiddler(tiddler,{tags: tags, list: list},self.getModificationFields())\n\t\t\t\t\tnewTiddler = $tw.hooks.invokeHook(\"th-relinking-tiddler\",newTiddler,tiddler);\n\t\t\t\t\tself.addTiddler(newTiddler);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n};\n\nexports.renameTiddler = renameTiddler;\nexports.relinkTiddler = relinkTiddler;\n\n})();\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/core/modules/wiki.js": {
"title": "$:/core/modules/wiki.js",
"text": "/*\\\ntitle: $:/core/modules/wiki.js\ntype: application/javascript\nmodule-type: wikimethod\n\nExtension methods for the $tw.Wiki object\n\nAdds the following properties to the wiki object:\n\n* `eventListeners` is a hashmap by type of arrays of listener functions\n* `changedTiddlers` is a hashmap describing changes to named tiddlers since wiki change events were last dispatched. Each entry is a hashmap containing two fields:\n\tmodified: true/false\n\tdeleted: true/false\n* `changeCount` is a hashmap by tiddler title containing a numerical index that starts at zero and is incremented each time a tiddler is created changed or deleted\n* `caches` is a hashmap by tiddler title containing a further hashmap of named cache objects. Caches are automatically cleared when a tiddler is modified or deleted\n* `globalCache` is a hashmap by cache name of cache objects that are cleared whenever any tiddler change occurs\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\");\n\nvar USER_NAME_TITLE = \"$:/status/UserName\",\n\tTIMESTAMP_DISABLE_TITLE = \"$:/config/TimestampDisable\";\n\n/*\nAdd available indexers to this wiki\n*/\nexports.addIndexersToWiki = function() {\n\tvar self = this;\n\t$tw.utils.each($tw.modules.applyMethods(\"indexer\"),function(Indexer,name) {\n\t\tself.addIndexer(new Indexer(self),name);\n\t});\n};\n\n/*\nGet the value of a text reference. Text references can have any of these forms:\n\t<tiddlertitle>\n\t<tiddlertitle>!!<fieldname>\n\t!!<fieldname> - specifies a field of the current tiddlers\n\t<tiddlertitle>##<index>\n*/\nexports.getTextReference = function(textRef,defaultText,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tif(tr.field) {\n\t\tvar tiddler = this.getTiddler(title);\n\t\tif(tr.field === \"title\") { // Special case so we can return the title of a non-existent tiddler\n\t\t\treturn title;\n\t\t} else if(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\treturn tiddler.getFieldString(tr.field);\n\t\t} else {\n\t\t\treturn defaultText;\n\t\t}\n\t} else if(tr.index) {\n\t\treturn this.extractTiddlerDataItem(title,tr.index,defaultText);\n\t} else {\n\t\treturn this.getTiddlerText(title,defaultText);\n\t}\n};\n\nexports.setTextReference = function(textRef,value,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle = tr.title || currTiddlerTitle;\n\tthis.setText(title,tr.field,tr.index,value);\n};\n\nexports.setText = function(title,field,index,value,options) {\n\toptions = options || {};\n\tvar creationFields = options.suppressTimestamp ? {} : this.getCreationFields(),\n\t\tmodificationFields = options.suppressTimestamp ? {} : this.getModificationFields();\n\t// Check if it is a reference to a tiddler field\n\tif(index) {\n\t\tvar data = this.getTiddlerData(title,Object.create(null));\n\t\tif(value !== undefined) {\n\t\t\tdata[index] = value;\n\t\t} else {\n\t\t\tdelete data[index];\n\t\t}\n\t\tthis.setTiddlerData(title,data,modificationFields);\n\t} else {\n\t\tvar tiddler = this.getTiddler(title),\n\t\t\tfields = {title: title};\n\t\tfields[field || \"text\"] = value;\n\t\tthis.addTiddler(new $tw.Tiddler(creationFields,tiddler,fields,modificationFields));\n\t}\n};\n\nexports.deleteTextReference = function(textRef,currTiddlerTitle) {\n\tvar tr = $tw.utils.parseTextReference(textRef),\n\t\ttitle,tiddler,fields;\n\t// Check if it is a reference to a tiddler\n\tif(tr.title && !tr.field) {\n\t\tthis.deleteTiddler(tr.title);\n\t// Else check for a field reference\n\t} else if(tr.field) {\n\t\ttitle = tr.title || currTiddlerTitle;\n\t\ttiddler = this.getTiddler(title);\n\t\tif(tiddler && $tw.utils.hop(tiddler.fields,tr.field)) {\n\t\t\tfields = Object.create(null);\n\t\t\tfields[tr.field] = undefined;\n\t\t\tthis.addTiddler(new $tw.Tiddler(tiddler,fields,this.getModificationFields()));\n\t\t}\n\t}\n};\n\nexports.addEventListener = function(type,listener) {\n\tthis.eventListeners = this.eventListeners || {};\n\tthis.eventListeners[type] = this.eventListeners[type] || [];\n\tthis.eventListeners[type].push(listener);\t\n};\n\nexports.removeEventListener = function(type,listener) {\n\tvar listeners = this.eventListeners[type];\n\tif(listeners) {\n\t\tvar p = listeners.indexOf(listener);\n\t\tif(p !== -1) {\n\t\t\tlisteners.splice(p,1);\n\t\t}\n\t}\n};\n\nexports.dispatchEvent = function(type /*, args */) {\n\tvar args = Array.prototype.slice.call(arguments,1),\n\t\tlisteners = this.eventListeners[type];\n\tif(listeners) {\n\t\tfor(var p=0; p<listeners.length; p++) {\n\t\t\tvar listener = listeners[p];\n\t\t\tlistener.apply(listener,args);\n\t\t}\n\t}\n};\n\n/*\nCauses a tiddler to be marked as changed, incrementing the change count, and triggers event handlers.\nThis method should be called after the changes it describes have been made to the wiki.tiddlers[] array.\n\ttitle: Title of tiddler\n\tisDeleted: defaults to false (meaning the tiddler has been created or modified),\n\t\ttrue if the tiddler has been deleted\n*/\nexports.enqueueTiddlerEvent = function(title,isDeleted) {\n\t// Record the touch in the list of changed tiddlers\n\tthis.changedTiddlers = this.changedTiddlers || Object.create(null);\n\tthis.changedTiddlers[title] = this.changedTiddlers[title] || Object.create(null);\n\tthis.changedTiddlers[title][isDeleted ? \"deleted\" : \"modified\"] = true;\n\t// Increment the change count\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\tthis.changeCount[title]++;\n\t} else {\n\t\tthis.changeCount[title] = 1;\n\t}\n\t// Trigger events\n\tthis.eventListeners = this.eventListeners || {};\n\tif(!this.eventsTriggered) {\n\t\tvar self = this;\n\t\t$tw.utils.nextTick(function() {\n\t\t\tvar changes = self.changedTiddlers;\n\t\t\tself.changedTiddlers = Object.create(null);\n\t\t\tself.eventsTriggered = false;\n\t\t\tif($tw.utils.count(changes) > 0) {\n\t\t\t\tself.dispatchEvent(\"change\",changes);\n\t\t\t}\n\t\t});\n\t\tthis.eventsTriggered = true;\n\t}\n};\n\nexports.getSizeOfTiddlerEventQueue = function() {\n\treturn $tw.utils.count(this.changedTiddlers);\n};\n\nexports.clearTiddlerEventQueue = function() {\n\tthis.changedTiddlers = Object.create(null);\n\tthis.changeCount = Object.create(null);\n};\n\nexports.getChangeCount = function(title) {\n\tthis.changeCount = this.changeCount || Object.create(null);\n\tif($tw.utils.hop(this.changeCount,title)) {\n\t\treturn this.changeCount[title];\n\t} else {\n\t\treturn 0;\n\t}\n};\n\n/*\nGenerate an unused title from the specified base\n*/\nexports.generateNewTitle = function(baseTitle,options) {\n\toptions = options || {};\n\tvar c = 0,\n\t\ttitle = baseTitle;\n\twhile(this.tiddlerExists(title) || this.isShadowTiddler(title) || this.findDraft(title)) {\n\t\ttitle = baseTitle + \n\t\t\t(options.prefix || \" \") + \n\t\t\t(++c);\n\t}\n\treturn title;\n};\n\nexports.isSystemTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/\") === 0;\n};\n\nexports.isTemporaryTiddler = function(title) {\n\treturn title && title.indexOf(\"$:/temp/\") === 0;\n};\n\nexports.isImageTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.flags.indexOf(\"image\") !== -1;\n\t} else {\n\t\treturn null;\n\t}\n};\n\nexports.isBinaryTiddler = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\t\t\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type || \"text/vnd.tiddlywiki\"];\n\t\treturn !!contentTypeInfo && contentTypeInfo.encoding === \"base64\";\n\t} else {\n\t\treturn null;\n\t}\n};\n\n/*\nLike addTiddler() except it will silently reject any plugin tiddlers that are older than the currently loaded version. Returns true if the tiddler was imported\n*/\nexports.importTiddler = function(tiddler) {\n\tvar existingTiddler = this.getTiddler(tiddler.fields.title);\n\t// Check if we're dealing with a plugin\n\tif(tiddler && tiddler.hasField(\"plugin-type\") && tiddler.hasField(\"version\") && existingTiddler && existingTiddler.hasField(\"plugin-type\") && existingTiddler.hasField(\"version\")) {\n\t\t// Reject the incoming plugin if it is older\n\t\tif(!$tw.utils.checkVersions(tiddler.fields.version,existingTiddler.fields.version)) {\n\t\t\treturn false;\n\t\t}\n\t}\n\t// Fall through to adding the tiddler\n\tthis.addTiddler(tiddler);\n\treturn true;\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is created\n*/\nexports.getCreationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = {\n\t\t\t\tcreated: new Date()\n\t\t\t},\n\t\t\tcreator = this.getTiddlerText(USER_NAME_TITLE);\n\t\tif(creator) {\n\t\t\tfields.creator = creator;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a hashmap of the fields that should be set when a tiddler is modified\n*/\nexports.getModificationFields = function() {\n\tif(this.getTiddlerText(TIMESTAMP_DISABLE_TITLE,\"\").toLowerCase() !== \"yes\") {\n\t\tvar fields = Object.create(null),\n\t\t\tmodifier = this.getTiddlerText(USER_NAME_TITLE);\n\t\tfields.modified = new Date();\n\t\tif(modifier) {\n\t\t\tfields.modifier = modifier;\n\t\t}\n\t\treturn fields;\n\t} else {\n\t\treturn {};\n\t}\n};\n\n/*\nReturn a sorted array of tiddler titles. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.getTiddlers = function(options) {\n\toptions = options || Object.create(null);\n\tvar self = this,\n\t\tsortField = options.sortField || \"title\",\n\t\ttiddlers = [], t, titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tif(options.includeSystem || !self.isSystemTiddler(title)) {\n\t\t\tif(!options.excludeTag || !tiddler.hasTag(options.excludeTag)) {\n\t\t\t\ttiddlers.push(tiddler);\n\t\t\t}\n\t\t}\n\t});\n\ttiddlers.sort(function(a,b) {\n\t\tvar aa = a.fields[sortField].toLowerCase() || \"\",\n\t\t\tbb = b.fields[sortField].toLowerCase() || \"\";\n\t\tif(aa < bb) {\n\t\t\treturn -1;\n\t\t} else {\n\t\t\tif(aa > bb) {\n\t\t\t\treturn 1;\n\t\t\t} else {\n\t\t\t\treturn 0;\n\t\t\t}\n\t\t}\n\t});\n\tfor(t=0; t<tiddlers.length; t++) {\n\t\ttitles.push(tiddlers[t].fields.title);\n\t}\n\treturn titles;\n};\n\nexports.countTiddlers = function(excludeTag) {\n\tvar tiddlers = this.getTiddlers({excludeTag: excludeTag});\n\treturn $tw.utils.count(tiddlers);\n};\n\n/*\nReturns a function iterator(callback) that iterates through the specified titles, and invokes the callback with callback(tiddler,title)\n*/\nexports.makeTiddlerIterator = function(titles) {\n\tvar self = this;\n\tif(!$tw.utils.isArray(titles)) {\n\t\ttitles = Object.keys(titles);\n\t} else {\n\t\ttitles = titles.slice(0);\n\t}\n\treturn function(callback) {\n\t\ttitles.forEach(function(title) {\n\t\t\tcallback(self.getTiddler(title),title);\n\t\t});\n\t};\n};\n\n/*\nSort an array of tiddler titles by a specified field\n\ttitles: array of titles (sorted in place)\n\tsortField: name of field to sort by\n\tisDescending: true if the sort should be descending\n\tisCaseSensitive: true if the sort should consider upper and lower case letters to be different\n*/\nexports.sortTiddlers = function(titles,sortField,isDescending,isCaseSensitive,isNumeric,isAlphaNumeric) {\n\tvar self = this;\n\ttitles.sort(function(a,b) {\n\t\tvar x,y,\n\t\t\tcompareNumbers = function(x,y) {\n\t\t\t\tvar result = \n\t\t\t\t\tisNaN(x) && !isNaN(y) ? (isDescending ? -1 : 1) :\n\t\t\t\t\t!isNaN(x) && isNaN(y) ? (isDescending ? 1 : -1) :\n\t\t\t\t\t\t\t\t\t\t\t(isDescending ? y - x : x - y);\n\t\t\t\treturn result;\n\t\t\t};\n\t\tif(sortField !== \"title\") {\n\t\t\tvar tiddlerA = self.getTiddler(a),\n\t\t\t\ttiddlerB = self.getTiddler(b);\n\t\t\tif(tiddlerA) {\n\t\t\t\ta = tiddlerA.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\ta = \"\";\n\t\t\t}\n\t\t\tif(tiddlerB) {\n\t\t\t\tb = tiddlerB.fields[sortField] || \"\";\n\t\t\t} else {\n\t\t\t\tb = \"\";\n\t\t\t}\n\t\t}\n\t\tx = Number(a);\n\t\ty = Number(b);\n\t\tif(isNumeric && (!isNaN(x) || !isNaN(y))) {\n\t\t\treturn compareNumbers(x,y);\n\t\t} else if(isAlphaNumeric) {\n\t\t\treturn isDescending ? b.localeCompare(a,undefined,{numeric: true,sensitivity: \"base\"}) : a.localeCompare(b,undefined,{numeric: true,sensitivity: \"base\"});\n\t\t} else if($tw.utils.isDate(a) && $tw.utils.isDate(b)) {\n\t\t\treturn isDescending ? b - a : a - b;\n\t\t} else {\n\t\t\ta = String(a);\n\t\t\tb = String(b);\n\t\t\tif(!isCaseSensitive) {\n\t\t\t\ta = a.toLowerCase();\n\t\t\t\tb = b.toLowerCase();\n\t\t\t}\n\t\t\treturn isDescending ? b.localeCompare(a) : a.localeCompare(b);\n\t\t}\n\t});\n};\n\n/*\nFor every tiddler invoke a callback(title,tiddler) with `this` set to the wiki object. Options include:\nsortField: field to sort by\nexcludeTag: tag to exclude\nincludeSystem: whether to include system tiddlers (defaults to false)\n*/\nexports.forEachTiddler = function(/* [options,]callback */) {\n\tvar arg = 0,\n\t\toptions = arguments.length >= 2 ? arguments[arg++] : {},\n\t\tcallback = arguments[arg++],\n\t\ttitles = this.getTiddlers(options),\n\t\tt, tiddler;\n\tfor(t=0; t<titles.length; t++) {\n\t\ttiddler = this.getTiddler(titles[t]);\n\t\tif(tiddler) {\n\t\t\tcallback.call(this,tiddler.fields.title,tiddler);\n\t\t}\n\t}\n};\n\n/*\nReturn an array of tiddler titles that are directly linked within the given parse tree\n */\nexports.extractLinks = function(parseTreeRoot) {\n\t// Count up the links\n\tvar links = [],\n\t\tcheckParseTree = function(parseTree) {\n\t\t\tfor(var t=0; t<parseTree.length; t++) {\n\t\t\t\tvar parseTreeNode = parseTree[t];\n\t\t\t\tif(parseTreeNode.type === \"link\" && parseTreeNode.attributes.to && parseTreeNode.attributes.to.type === \"string\") {\n\t\t\t\t\tvar value = parseTreeNode.attributes.to.value;\n\t\t\t\t\tif(links.indexOf(value) === -1) {\n\t\t\t\t\t\tlinks.push(value);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif(parseTreeNode.children) {\n\t\t\t\t\tcheckParseTree(parseTreeNode.children);\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\tcheckParseTree(parseTreeRoot);\n\treturn links;\n};\n\n/*\nReturn an array of tiddler titles that are directly linked from the specified tiddler\n*/\nexports.getTiddlerLinks = function(title) {\n\tvar self = this;\n\t// We'll cache the links so they only get computed if the tiddler changes\n\treturn this.getCacheForTiddler(title,\"links\",function() {\n\t\t// Parse the tiddler\n\t\tvar parser = self.parseTiddler(title);\n\t\tif(parser) {\n\t\t\treturn self.extractLinks(parser.tree);\n\t\t}\n\t\treturn [];\n\t});\n};\n\n/*\nReturn an array of tiddler titles that link to the specified tiddler\n*/\nexports.getTiddlerBacklinks = function(targetTitle) {\n\tvar self = this,\n\t\tbacklinksIndexer = this.getIndexer(\"BacklinksIndexer\"),\n\t\tbacklinks = backlinksIndexer && backlinksIndexer.lookup(targetTitle);\n\n\tif(!backlinks) {\n\t\tbacklinks = [];\n\t\tthis.forEachTiddler(function(title,tiddler) {\n\t\t\tvar links = self.getTiddlerLinks(title);\n\t\t\tif(links.indexOf(targetTitle) !== -1) {\n\t\t\t\tbacklinks.push(title);\n\t\t\t}\n\t\t});\n\t}\n\treturn backlinks;\n};\n\n/*\nReturn a hashmap of tiddler titles that are referenced but not defined. Each value is the number of times the missing tiddler is referenced\n*/\nexports.getMissingTitles = function() {\n\tvar self = this,\n\t\tmissing = [];\n// We should cache the missing tiddler list, even if we recreate it every time any tiddler is modified\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tif((!self.tiddlerExists(link) && !self.isShadowTiddler(link)) && missing.indexOf(link) === -1) {\n\t\t\t\tmissing.push(link);\n\t\t\t}\n\t\t});\n\t});\n\treturn missing;\n};\n\nexports.getOrphanTitles = function() {\n\tvar self = this,\n\t\torphans = this.getTiddlers();\n\tthis.forEachTiddler(function(title,tiddler) {\n\t\tvar links = self.getTiddlerLinks(title);\n\t\t$tw.utils.each(links,function(link) {\n\t\t\tvar p = orphans.indexOf(link);\n\t\t\tif(p !== -1) {\n\t\t\t\torphans.splice(p,1);\n\t\t\t}\n\t\t});\n\t});\n\treturn orphans; // Todo\n};\n\n/*\nRetrieves a list of the tiddler titles that are tagged with a given tag\n*/\nexports.getTiddlersWithTag = function(tag) {\n\t// Try to use the indexer\n\tvar self = this,\n\t\ttagIndexer = this.getIndexer(\"TagIndexer\"),\n\t\tresults = tagIndexer && tagIndexer.subIndexers[3].lookup(tag);\n\tif(!results) {\n\t\t// If not available, perform a manual scan\n\t\tresults = this.getGlobalCache(\"taglist-\" + tag,function() {\n\t\t\tvar tagmap = self.getTagMap();\n\t\t\treturn self.sortByList(tagmap[tag],tag);\n\t\t});\n\t}\n\treturn results;\n};\n\n/*\nGet a hashmap by tag of arrays of tiddler titles\n*/\nexports.getTagMap = function() {\n\tvar self = this;\n\treturn this.getGlobalCache(\"tagmap\",function() {\n\t\tvar tags = Object.create(null),\n\t\t\tstoreTags = function(tagArray,title) {\n\t\t\t\tif(tagArray) {\n\t\t\t\t\tfor(var index=0; index<tagArray.length; index++) {\n\t\t\t\t\t\tvar tag = tagArray[index];\n\t\t\t\t\t\tif($tw.utils.hop(tags,tag)) {\n\t\t\t\t\t\t\ttags[tag].push(title);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\ttags[tag] = [title];\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\ttitle, tiddler;\n\t\t// Collect up all the tags\n\t\tself.eachShadow(function(tiddler,title) {\n\t\t\tif(!self.tiddlerExists(title)) {\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t\t}\n\t\t});\n\t\tself.each(function(tiddler,title) {\n\t\t\tstoreTags(tiddler.fields.tags,title);\n\t\t});\n\t\treturn tags;\n\t});\n};\n\n/*\nLookup a given tiddler and return a list of all the tiddlers that include it in the specified list field\n*/\nexports.findListingsOfTiddler = function(targetTitle,fieldName) {\n\tfieldName = fieldName || \"list\";\n\tvar titles = [];\n\tthis.each(function(tiddler,title) {\n\t\tvar list = $tw.utils.parseStringArray(tiddler.fields[fieldName]);\n\t\tif(list && list.indexOf(targetTitle) !== -1) {\n\t\t\ttitles.push(title);\n\t\t}\n\t});\n\treturn titles;\n};\n\n/*\nSorts an array of tiddler titles according to an ordered list\n*/\nexports.sortByList = function(array,listTitle) {\n\tvar self = this,\n\t\treplacedTitles = Object.create(null);\n\t// Given a title, this function will place it in the correct location\n\t// within titles.\n\tfunction moveItemInList(title) {\n\t\tif(!$tw.utils.hop(replacedTitles, title)) {\n\t\t\treplacedTitles[title] = true;\n\t\t\tvar newPos = -1,\n\t\t\t\ttiddler = self.getTiddler(title);\n\t\t\tif(tiddler) {\n\t\t\t\tvar beforeTitle = tiddler.fields[\"list-before\"],\n\t\t\t\t\tafterTitle = tiddler.fields[\"list-after\"];\n\t\t\t\tif(beforeTitle === \"\") {\n\t\t\t\t\tnewPos = 0;\n\t\t\t\t} else if(afterTitle === \"\") {\n\t\t\t\t\tnewPos = titles.length;\n\t\t\t\t} else if(beforeTitle) {\n\t\t\t\t\t// if this title is placed relative\n\t\t\t\t\t// to another title, make sure that\n\t\t\t\t\t// title is placed before we place\n\t\t\t\t\t// this one.\n\t\t\t\t\tmoveItemInList(beforeTitle);\n\t\t\t\t\tnewPos = titles.indexOf(beforeTitle);\n\t\t\t\t} else if(afterTitle) {\n\t\t\t\t\t// Same deal\n\t\t\t\t\tmoveItemInList(afterTitle);\n\t\t\t\t\tnewPos = titles.indexOf(afterTitle);\n\t\t\t\t\tif(newPos >= 0) {\n\t\t\t\t\t\t++newPos;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\t// If a new position is specified, let's move it\n\t\t\t\tif (newPos !== -1) {\n\t\t\t\t\t// get its current Pos, and make sure\n\t\t\t\t\t// sure that it's _actually_ in the list\n\t\t\t\t\t// and that it would _actually_ move\n\t\t\t\t\t// (#4275) We don't bother calling\n\t\t\t\t\t// indexOf unless we have a new\n\t\t\t\t\t// position to work with\n\t\t\t\t\tvar currPos = titles.indexOf(title);\n\t\t\t\t\tif(currPos >= 0 && newPos !== currPos) {\n\t\t\t\t\t\t// move it!\n\t\t\t\t\t\ttitles.splice(currPos,1);\n\t\t\t\t\t\tif(newPos >= currPos) {\n\t\t\t\t\t\t\tnewPos--;\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttitles.splice(newPos,0,title);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\tvar list = this.getTiddlerList(listTitle);\n\tif(!array || array.length === 0) {\n\t\treturn [];\n\t} else {\n\t\tvar titles = [], t, title;\n\t\t// First place any entries that are present in the list\n\t\tfor(t=0; t<list.length; t++) {\n\t\t\ttitle = list[t];\n\t\t\tif(array.indexOf(title) !== -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Then place any remaining entries\n\t\tfor(t=0; t<array.length; t++) {\n\t\t\ttitle = array[t];\n\t\t\tif(list.indexOf(title) === -1) {\n\t\t\t\ttitles.push(title);\n\t\t\t}\n\t\t}\n\t\t// Finally obey the list-before and list-after fields of each tiddler in turn\n\t\tvar sortedTitles = titles.slice(0);\n\t\tfor(t=0; t<sortedTitles.length; t++) {\n\t\t\ttitle = sortedTitles[t];\n\t\t\tmoveItemInList(title);\n\t\t}\n\t\treturn titles;\n\t}\n};\n\nexports.getSubTiddler = function(title,subTiddlerTitle) {\n\tvar bundleInfo = this.getPluginInfo(title) || this.getTiddlerDataCached(title);\n\tif(bundleInfo && bundleInfo.tiddlers) {\n\t\tvar subTiddler = bundleInfo.tiddlers[subTiddlerTitle];\n\t\tif(subTiddler) {\n\t\t\treturn new $tw.Tiddler(subTiddler);\n\t\t}\n\t}\n\treturn null;\n};\n\n/*\nRetrieve a tiddler as a JSON string of the fields\n*/\nexports.getTiddlerAsJson = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\tvar fields = Object.create(null);\n\t\t$tw.utils.each(tiddler.fields,function(value,name) {\n\t\t\tfields[name] = tiddler.getFieldString(name);\n\t\t});\n\t\treturn JSON.stringify(fields);\n\t} else {\n\t\treturn JSON.stringify({title: title});\n\t}\n};\n\nexports.getTiddlersAsJson = function(filter,spaces) {\n\tvar tiddlers = this.filterTiddlers(filter),\n\t\tspaces = (spaces === undefined) ? $tw.config.preferences.jsonSpaces : spaces,\n\t\tdata = [];\n\tfor(var t=0;t<tiddlers.length; t++) {\n\t\tvar tiddler = this.getTiddler(tiddlers[t]);\n\t\tif(tiddler) {\n\t\t\tvar fields = new Object();\n\t\t\tfor(var field in tiddler.fields) {\n\t\t\t\tfields[field] = tiddler.getFieldString(field);\n\t\t\t}\n\t\t\tdata.push(fields);\n\t\t}\n\t}\n\treturn JSON.stringify(data,null,spaces);\n};\n\n/*\nGet the content of a tiddler as a JavaScript object. How this is done depends on the type of the tiddler:\n\napplication/json: the tiddler JSON is parsed into an object\napplication/x-tiddler-dictionary: the tiddler is parsed as sequence of name:value pairs\n\nOther types currently just return null.\n\ntitleOrTiddler: string tiddler title or a tiddler object\ndefaultData: default data to be returned if the tiddler is missing or doesn't contain data\n\nNote that the same value is returned for repeated calls for the same tiddler data. The value is frozen to prevent modification; otherwise modifications would be visible to all callers\n*/\nexports.getTiddlerDataCached = function(titleOrTiddler,defaultData) {\n\tvar self = this,\n\t\ttiddler = titleOrTiddler;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler) {\n\t\treturn this.getCacheForTiddler(tiddler.fields.title,\"data\",function() {\n\t\t\t// Return the frozen value\n\t\t\tvar value = self.getTiddlerData(tiddler.fields.title,undefined);\n\t\t\t$tw.utils.deepFreeze(value);\n\t\t\treturn value;\n\t\t}) || defaultData;\n\t} else {\n\t\treturn defaultData;\n\t}\n};\n\n/*\nAlternative, uncached version of getTiddlerDataCached(). The return value can be mutated freely and reused\n*/\nexports.getTiddlerData = function(titleOrTiddler,defaultData) {\n\tvar tiddler = titleOrTiddler,\n\t\tdata;\n\tif(!(tiddler instanceof $tw.Tiddler)) {\n\t\ttiddler = this.getTiddler(tiddler);\t\n\t}\n\tif(tiddler && tiddler.fields.text) {\n\t\tswitch(tiddler.fields.type) {\n\t\t\tcase \"application/json\":\n\t\t\t\t// JSON tiddler\n\t\t\t\ttry {\n\t\t\t\t\tdata = JSON.parse(tiddler.fields.text);\n\t\t\t\t} catch(ex) {\n\t\t\t\t\treturn defaultData;\n\t\t\t\t}\n\t\t\t\treturn data;\n\t\t\tcase \"application/x-tiddler-dictionary\":\n\t\t\t\treturn $tw.utils.parseFields(tiddler.fields.text);\n\t\t}\n\t}\n\treturn defaultData;\n};\n\n/*\nExtract an indexed field from within a data tiddler\n*/\nexports.extractTiddlerDataItem = function(titleOrTiddler,index,defaultText) {\n\tvar data = this.getTiddlerDataCached(titleOrTiddler,Object.create(null)),\n\t\ttext;\n\tif(data && $tw.utils.hop(data,index)) {\n\t\ttext = data[index];\n\t}\n\tif(typeof text === \"string\" || typeof text === \"number\") {\n\t\treturn text.toString();\n\t} else {\n\t\treturn defaultText;\n\t}\n};\n\n/*\nSet a tiddlers content to a JavaScript object. Currently this is done by setting the tiddler's type to \"application/json\" and setting the text to the JSON text of the data.\ntitle: title of tiddler\ndata: object that can be serialised to JSON\nfields: optional hashmap of additional tiddler fields to be set\n*/\nexports.setTiddlerData = function(title,data,fields) {\n\tvar existingTiddler = this.getTiddler(title),\n\t\tnewFields = {\n\t\t\ttitle: title\n\t};\n\tif(existingTiddler && existingTiddler.fields.type === \"application/x-tiddler-dictionary\") {\n\t\tnewFields.text = $tw.utils.makeTiddlerDictionary(data);\n\t} else {\n\t\tnewFields.type = \"application/json\";\n\t\tnewFields.text = JSON.stringify(data,null,$tw.config.preferences.jsonSpaces);\n\t}\n\tthis.addTiddler(new $tw.Tiddler(this.getCreationFields(),existingTiddler,fields,newFields,this.getModificationFields()));\n};\n\n/*\nReturn the content of a tiddler as an array containing each line\n*/\nexports.getTiddlerList = function(title,field,index) {\n\tif(index) {\n\t\treturn $tw.utils.parseStringArray(this.extractTiddlerDataItem(title,index,\"\"));\n\t}\n\tfield = field || \"list\";\n\tvar tiddler = this.getTiddler(title);\n\tif(tiddler) {\n\t\treturn ($tw.utils.parseStringArray(tiddler.fields[field]) || []).slice(0);\n\t}\n\treturn [];\n};\n\n// Return a named global cache object. Global cache objects are cleared whenever a tiddler change occurs\nexports.getGlobalCache = function(cacheName,initializer) {\n\tthis.globalCache = this.globalCache || Object.create(null);\n\tif($tw.utils.hop(this.globalCache,cacheName)) {\n\t\treturn this.globalCache[cacheName];\n\t} else {\n\t\tthis.globalCache[cacheName] = initializer();\n\t\treturn this.globalCache[cacheName];\n\t}\n};\n\nexports.clearGlobalCache = function() {\n\tthis.globalCache = Object.create(null);\n};\n\n// Return the named cache object for a tiddler. If the cache doesn't exist then the initializer function is invoked to create it\nexports.getCacheForTiddler = function(title,cacheName,initializer) {\n\tthis.caches = this.caches || Object.create(null);\n\tvar caches = this.caches[title];\n\tif(caches && caches[cacheName]) {\n\t\treturn caches[cacheName];\n\t} else {\n\t\tif(!caches) {\n\t\t\tcaches = Object.create(null);\n\t\t\tthis.caches[title] = caches;\n\t\t}\n\t\tcaches[cacheName] = initializer();\n\t\treturn caches[cacheName];\n\t}\n};\n\n// Clear all caches associated with a particular tiddler, or, if the title is null, clear all the caches for all the tiddlers\nexports.clearCache = function(title) {\n\tif(title) {\n\t\tthis.caches = this.caches || Object.create(null);\n\t\tif($tw.utils.hop(this.caches,title)) {\n\t\t\tdelete this.caches[title];\n\t\t}\n\t} else {\n\t\tthis.caches = Object.create(null);\n\t}\n};\n\nexports.initParsers = function(moduleType) {\n\t// Install the parser modules\n\t$tw.Wiki.parsers = {};\n\tvar self = this;\n\t$tw.modules.forEachModuleOfType(\"parser\",function(title,module) {\n\t\tfor(var f in module) {\n\t\t\tif($tw.utils.hop(module,f)) {\n\t\t\t\t$tw.Wiki.parsers[f] = module[f]; // Store the parser class\n\t\t\t}\n\t\t}\n\t});\n\t// Use the generic binary parser for any binary types not registered so far\n\tif($tw.Wiki.parsers[\"application/octet-stream\"]) {\n\t\tObject.keys($tw.config.contentTypeInfo).forEach(function(type) {\n\t\t\tif(!$tw.utils.hop($tw.Wiki.parsers,type) && $tw.config.contentTypeInfo[type].encoding === \"base64\") {\n\t\t\t\t$tw.Wiki.parsers[type] = $tw.Wiki.parsers[\"application/octet-stream\"];\n\t\t\t}\n\t\t});\t\t\n\t}\n};\n\n/*\nParse a block of text of a specified MIME type\n\ttype: content type of text to be parsed\n\ttext: text\n\toptions: see below\nOptions include:\n\tparseAsInline: if true, the text of the tiddler will be parsed as an inline run\n\t_canonical_uri: optional string of the canonical URI of this content\n*/\nexports.parseText = function(type,text,options) {\n\ttext = text || \"\";\n\toptions = options || {};\n\t// Select a parser\n\tvar Parser = $tw.Wiki.parsers[type];\n\tif(!Parser && $tw.utils.getFileExtensionInfo(type)) {\n\t\tParser = $tw.Wiki.parsers[$tw.utils.getFileExtensionInfo(type).type];\n\t}\n\tif(!Parser) {\n\t\tParser = $tw.Wiki.parsers[options.defaultType || \"text/vnd.tiddlywiki\"];\n\t}\n\tif(!Parser) {\n\t\treturn null;\n\t}\n\t// Return the parser instance\n\treturn new Parser(type,text,{\n\t\tparseAsInline: options.parseAsInline,\n\t\twiki: this,\n\t\t_canonical_uri: options._canonical_uri\n\t});\n};\n\n/*\nParse a tiddler according to its MIME type\n*/\nexports.parseTiddler = function(title,options) {\n\toptions = $tw.utils.extend({},options);\n\tvar cacheType = options.parseAsInline ? \"inlineParseTree\" : \"blockParseTree\",\n\t\ttiddler = this.getTiddler(title),\n\t\tself = this;\n\treturn tiddler ? this.getCacheForTiddler(title,cacheType,function() {\n\t\t\tif(tiddler.hasField(\"_canonical_uri\")) {\n\t\t\t\toptions._canonical_uri = tiddler.fields._canonical_uri;\n\t\t\t}\n\t\t\treturn self.parseText(tiddler.fields.type,tiddler.fields.text,options);\n\t\t}) : null;\n};\n\nexports.parseTextReference = function(title,field,index,options) {\n\tvar tiddler,text;\n\tif(options.subTiddler) {\n\t\ttiddler = this.getSubTiddler(title,options.subTiddler);\n\t} else {\n\t\ttiddler = this.getTiddler(title);\n\t\tif(field === \"text\" || (!field && !index)) {\n\t\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\t\treturn this.parseTiddler(title,options);\n\t\t}\n\t}\n\tif(field === \"text\" || (!field && !index)) {\n\t\tif(tiddler && tiddler.fields) {\n\t\t\treturn this.parseText(tiddler.fields.type,tiddler.fields.text,options);\t\t\t\n\t\t} else {\n\t\t\treturn null;\n\t\t}\n\t} else if(field) {\n\t\tif(field === \"title\") {\n\t\t\ttext = title;\n\t\t} else {\n\t\t\tif(!tiddler || !tiddler.hasField(field)) {\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\ttext = tiddler.fields[field];\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text.toString(),options);\n\t} else if(index) {\n\t\tthis.getTiddlerText(title); // Force the tiddler to be lazily loaded\n\t\ttext = this.extractTiddlerDataItem(tiddler,index,undefined);\n\t\tif(text === undefined) {\n\t\t\treturn null;\n\t\t}\n\t\treturn this.parseText(\"text/vnd.tiddlywiki\",text,options);\n\t}\n};\n\n/*\nMake a widget tree for a parse tree\nparser: parser object\noptions: see below\nOptions include:\ndocument: optional document to use\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.makeWidget = function(parser,options) {\n\toptions = options || {};\n\tvar widgetNode = {\n\t\t\ttype: \"widget\",\n\t\t\tchildren: []\n\t\t},\n\t\tcurrWidgetNode = widgetNode;\n\t// Create set variable widgets for each variable\n\t$tw.utils.each(options.variables,function(value,name) {\n\t\tvar setVariableWidget = {\n\t\t\ttype: \"set\",\n\t\t\tattributes: {\n\t\t\t\tname: {type: \"string\", value: name},\n\t\t\t\tvalue: {type: \"string\", value: value}\n\t\t\t},\n\t\t\tchildren: []\n\t\t};\n\t\tcurrWidgetNode.children = [setVariableWidget];\n\t\tcurrWidgetNode = setVariableWidget;\n\t});\n\t// Add in the supplied parse tree nodes\n\tcurrWidgetNode.children = parser ? parser.tree : [];\n\t// Create the widget\n\treturn new widget.widget(widgetNode,{\n\t\twiki: this,\n\t\tdocument: options.document || $tw.fakeDocument,\n\t\tparentWidget: options.parentWidget\n\t});\n};\n\n/*\nMake a widget tree for transclusion\ntitle: target tiddler title\noptions: as for wiki.makeWidget() plus:\noptions.field: optional field to transclude (defaults to \"text\")\noptions.mode: transclusion mode \"inline\" or \"block\"\noptions.children: optional array of children for the transclude widget\noptions.importVariables: optional importvariables filter string for macros to be included\noptions.importPageMacros: optional boolean; if true, equivalent to passing \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\" to options.importVariables\n*/\nexports.makeTranscludeWidget = function(title,options) {\n\toptions = options || {};\n\tvar parseTreeDiv = {tree: [{\n\t\t\ttype: \"element\",\n\t\t\ttag: \"div\",\n\t\t\tchildren: []}]},\n\t\tparseTreeImportVariables = {\n\t\t\ttype: \"importvariables\",\n\t\t\tattributes: {\n\t\t\t\tfilter: {\n\t\t\t\t\tname: \"filter\",\n\t\t\t\t\ttype: \"string\"\n\t\t\t\t}\n\t\t\t},\n\t\t\tisBlock: false,\n\t\t\tchildren: []},\n\t\tparseTreeTransclude = {\n\t\t\ttype: \"transclude\",\n\t\t\tattributes: {\n\t\t\t\ttiddler: {\n\t\t\t\t\tname: \"tiddler\",\n\t\t\t\t\ttype: \"string\",\n\t\t\t\t\tvalue: title}},\n\t\t\tisBlock: !options.parseAsInline};\n\tif(options.importVariables || options.importPageMacros) {\n\t\tif(options.importVariables) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = options.importVariables;\n\t\t} else if(options.importPageMacros) {\n\t\t\tparseTreeImportVariables.attributes.filter.value = \"[[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\";\n\t\t}\n\t\tparseTreeDiv.tree[0].children.push(parseTreeImportVariables);\n\t\tparseTreeImportVariables.children.push(parseTreeTransclude);\n\t} else {\n\t\tparseTreeDiv.tree[0].children.push(parseTreeTransclude);\n\t}\n\tif(options.field) {\n\t\tparseTreeTransclude.attributes.field = {type: \"string\", value: options.field};\n\t}\n\tif(options.mode) {\n\t\tparseTreeTransclude.attributes.mode = {type: \"string\", value: options.mode};\n\t}\n\tif(options.children) {\n\t\tparseTreeTransclude.children = options.children;\n\t}\n\treturn $tw.wiki.makeWidget(parseTreeDiv,options);\n};\n\n/*\nParse text in a specified format and render it into another format\n\toutputType: content type for the output\n\ttextType: content type of the input text\n\ttext: input text\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderText = function(outputType,textType,text,options) {\n\toptions = options || {};\n\tvar parser = this.parseText(textType,text,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : container.textContent;\n};\n\n/*\nParse text from a tiddler and render it into another format\n\toutputType: content type for the output\n\ttitle: title of the tiddler to be rendered\n\toptions: see below\nOptions include:\nvariables: hashmap of variables to set\nparentWidget: optional parent widget for the root node\n*/\nexports.renderTiddler = function(outputType,title,options) {\n\toptions = options || {};\n\tvar parser = this.parseTiddler(title,options),\n\t\twidgetNode = this.makeWidget(parser,options);\n\tvar container = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn outputType === \"text/html\" ? container.innerHTML : (outputType === \"text/plain-formatted\" ? container.formattedTextContent : container.textContent);\n};\n\n/*\nReturn an array of tiddler titles that match a search string\n\ttext: The text string to search for\n\toptions: see below\nOptions available:\n\tsource: an iterator function for the source tiddlers, called source(iterator), where iterator is called as iterator(tiddler,title)\n\texclude: An array of tiddler titles to exclude from the search\n\tinvert: If true returns tiddlers that do not contain the specified string\n\tcaseSensitive: If true forces a case sensitive search\n\tfield: If specified, restricts the search to the specified field, or an array of field names\n\tanchored: If true, forces all but regexp searches to be anchored to the start of text\n\texcludeField: If true, the field options are inverted to specify the fields that are not to be searched\n\tThe search mode is determined by the first of these boolean flags to be true\n\t\tliteral: searches for literal string\n\t\twhitespace: same as literal except runs of whitespace are treated as a single space\n\t\tregexp: treats the search term as a regular expression\n\t\twords: (default) treats search string as a list of tokens, and matches if all tokens are found, regardless of adjacency or ordering\n*/\nexports.search = function(text,options) {\n\toptions = options || {};\n\tvar self = this,\n\t\tt,\n\t\tinvert = !!options.invert;\n\t// Convert the search string into a regexp for each term\n\tvar terms, searchTermsRegExps,\n\t\tflags = options.caseSensitive ? \"\" : \"i\",\n\t\tanchor = options.anchored ? \"^\" : \"\";\n\tif(options.literal) {\n\t\tif(text.length === 0) {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(text) + \")\",flags)];\n\t\t}\n\t} else if(options.whitespace) {\n\t\tterms = [];\n\t\t$tw.utils.each(text.split(/\\s+/g),function(term) {\n\t\t\tif(term) {\n\t\t\t\tterms.push($tw.utils.escapeRegExp(term));\n\t\t\t}\n\t\t});\n\t\tsearchTermsRegExps = [new RegExp(\"(\" + anchor + terms.join(\"\\\\s+\") + \")\",flags)];\n\t} else if(options.regexp) {\n\t\ttry {\n\t\t\tsearchTermsRegExps = [new RegExp(\"(\" + text + \")\",flags)];\t\t\t\n\t\t} catch(e) {\n\t\t\tsearchTermsRegExps = null;\n\t\t\tconsole.log(\"Regexp error parsing /(\" + text + \")/\" + flags + \": \",e);\n\t\t}\n\t} else {\n\t\tterms = text.split(/ +/);\n\t\tif(terms.length === 1 && terms[0] === \"\") {\n\t\t\tsearchTermsRegExps = null;\n\t\t} else {\n\t\t\tsearchTermsRegExps = [];\n\t\t\tfor(t=0; t<terms.length; t++) {\n\t\t\t\tsearchTermsRegExps.push(new RegExp(\"(\" + anchor + $tw.utils.escapeRegExp(terms[t]) + \")\",flags));\n\t\t\t}\n\t\t}\n\t}\n\t// Accumulate the array of fields to be searched or excluded from the search\n\tvar fields = [];\n\tif(options.field) {\n\t\tif($tw.utils.isArray(options.field)) {\n\t\t\t$tw.utils.each(options.field,function(fieldName) {\n\t\t\t\tif(fieldName) {\n\t\t\t\t\tfields.push(fieldName);\t\t\t\t\t\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tfields.push(options.field);\n\t\t}\n\t}\n\t// Use default fields if none specified and we're not excluding fields (excluding fields with an empty field array is the same as searching all fields)\n\tif(fields.length === 0 && !options.excludeField) {\n\t\tfields.push(\"title\");\n\t\tfields.push(\"tags\");\n\t\tfields.push(\"text\");\n\t}\n\t// Function to check a given tiddler for the search term\n\tvar searchTiddler = function(title) {\n\t\tif(!searchTermsRegExps) {\n\t\t\treturn true;\n\t\t}\n\t\tvar notYetFound = searchTermsRegExps.slice();\n\n\t\tvar tiddler = self.getTiddler(title);\n\t\tif(!tiddler) {\n\t\t\ttiddler = new $tw.Tiddler({title: title, text: \"\", type: \"text/vnd.tiddlywiki\"});\n\t\t}\n\t\tvar contentTypeInfo = $tw.config.contentTypeInfo[tiddler.fields.type] || $tw.config.contentTypeInfo[\"text/vnd.tiddlywiki\"],\n\t\t\tsearchFields;\n\t\t// Get the list of fields we're searching\n\t\tif(options.excludeField) {\n\t\t\tsearchFields = Object.keys(tiddler.fields);\n\t\t\t$tw.utils.each(fields,function(fieldName) {\n\t\t\t\tvar p = searchFields.indexOf(fieldName);\n\t\t\t\tif(p !== -1) {\n\t\t\t\t\tsearchFields.splice(p,1);\n\t\t\t\t}\n\t\t\t});\n\t\t} else {\n\t\t\tsearchFields = fields;\n\t\t}\n\t\tfor(var fieldIndex=0; notYetFound.length>0 && fieldIndex<searchFields.length; fieldIndex++) {\n\t\t\t// Don't search the text field if the content type is binary\n\t\t\tvar fieldName = searchFields[fieldIndex];\n\t\t\tif(fieldName === \"text\" && contentTypeInfo.encoding !== \"utf8\") {\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tvar str = tiddler.fields[fieldName],\n\t\t\t\tt;\n\t\t\tif(str) {\n\t\t\t\tif($tw.utils.isArray(str)) {\n\t\t\t\t\t// If the field value is an array, test each regexp against each field array entry and fail if each regexp doesn't match at least one field array entry\n\t\t\t\t\tfor(var s=0; s<str.length; s++) {\n\t\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\t\tif(notYetFound[t].test(str[s])) {\n\t\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t} else {\n\t\t\t\t\t// If the field isn't an array, force it to a string and test each regexp against it and fail if any do not match\n\t\t\t\t\tstr = tiddler.getFieldString(fieldName);\n\t\t\t\t\tfor(t=0; t<notYetFound.length;) {\n\t\t\t\t\t\tif(notYetFound[t].test(str)) {\n\t\t\t\t\t\t\tnotYetFound.splice(t, 1);\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\tt++;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t};\n\t\treturn notYetFound.length == 0;\n\t};\n\t// Loop through all the tiddlers doing the search\n\tvar results = [],\n\t\tsource = options.source || this.each;\n\tsource(function(tiddler,title) {\n\t\tif(searchTiddler(title) !== options.invert) {\n\t\t\tresults.push(title);\n\t\t}\n\t});\n\t// Remove any of the results we have to exclude\n\tif(options.exclude) {\n\t\tfor(t=0; t<options.exclude.length; t++) {\n\t\t\tvar p = results.indexOf(options.exclude[t]);\n\t\t\tif(p !== -1) {\n\t\t\t\tresults.splice(p,1);\n\t\t\t}\n\t\t}\n\t}\n\treturn results;\n};\n\n/*\nTrigger a load for a tiddler if it is skinny. Returns the text, or undefined if the tiddler is missing, null if the tiddler is being lazily loaded.\n*/\nexports.getTiddlerText = function(title,defaultText) {\n\tvar tiddler = this.getTiddler(title);\n\t// Return undefined if the tiddler isn't found\n\tif(!tiddler) {\n\t\treturn defaultText;\n\t}\n\tif(!tiddler.hasField(\"_is_skinny\")) {\n\t\t// Just return the text if we've got it\n\t\treturn tiddler.fields.text || \"\";\n\t} else {\n\t\t// Tell any listeners about the need to lazily load this tiddler\n\t\tthis.dispatchEvent(\"lazyLoad\",title);\n\t\t// Indicate that the text is being loaded\n\t\treturn null;\n\t}\n};\n\n/*\nCheck whether the text of a tiddler matches a given value. By default, the comparison is case insensitive, and any spaces at either end of the tiddler text is trimmed\n*/\nexports.checkTiddlerText = function(title,targetText,options) {\n\toptions = options || {};\n\tvar text = this.getTiddlerText(title,\"\");\n\tif(!options.noTrim) {\n\t\ttext = text.trim();\n\t}\n\tif(!options.caseSensitive) {\n\t\ttext = text.toLowerCase();\n\t\ttargetText = targetText.toLowerCase();\n\t}\n\treturn text === targetText;\n}\n\n/*\nRead an array of browser File objects, invoking callback(tiddlerFieldsArray) once they're all read\n*/\nexports.readFiles = function(files,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\tvar result = [],\n\t\toutstanding = files.length,\n\t\treadFileCallback = function(tiddlerFieldsArray) {\n\t\t\tresult.push.apply(result,tiddlerFieldsArray);\n\t\t\tif(--outstanding === 0) {\n\t\t\t\tcallback(result);\n\t\t\t}\n\t\t};\n\tfor(var f=0; f<files.length; f++) {\n\t\tthis.readFile(files[f],$tw.utils.extend({},options,{callback: readFileCallback}));\n\t}\n\treturn files.length;\n};\n\n/*\nRead a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFile = function(file,options) {\n\tvar callback;\n\tif(typeof options === \"function\") {\n\t\tcallback = options;\n\t\toptions = {};\n\t} else {\n\t\tcallback = options.callback;\n\t}\n\t// Get the type, falling back to the filename extension\n\tvar self = this,\n\t\ttype = file.type;\n\tif(type === \"\" || !type) {\n\t\tvar dotPos = file.name.lastIndexOf(\".\");\n\t\tif(dotPos !== -1) {\n\t\t\tvar fileExtensionInfo = $tw.utils.getFileExtensionInfo(file.name.substr(dotPos));\n\t\t\tif(fileExtensionInfo) {\n\t\t\t\ttype = fileExtensionInfo.type;\n\t\t\t}\n\t\t}\n\t}\n\t// Figure out if we're reading a binary file\n\tvar contentTypeInfo = $tw.config.contentTypeInfo[type],\n\t\tisBinary = contentTypeInfo ? contentTypeInfo.encoding === \"base64\" : false;\n\t// Log some debugging information\n\tif($tw.log.IMPORT) {\n\t\tconsole.log(\"Importing file '\" + file.name + \"', type: '\" + type + \"', isBinary: \" + isBinary);\n\t}\n\t// Give the hook a chance to process the drag\n\tif($tw.hooks.invokeHook(\"th-importing-file\",{\n\t\tfile: file,\n\t\ttype: type,\n\t\tisBinary: isBinary,\n\t\tcallback: callback\n\t}) !== true) {\n\t\tthis.readFileContent(file,type,isBinary,options.deserializer,callback);\n\t}\n};\n\n/*\nLower level utility to read the content of a browser File object, invoking callback(tiddlerFieldsArray) with an array of tiddler fields objects\n*/\nexports.readFileContent = function(file,type,isBinary,deserializer,callback) {\n\tvar self = this;\n\t// Create the FileReader\n\tvar reader = new FileReader();\n\t// Onload\n\treader.onload = function(event) {\n\t\tvar text = event.target.result,\n\t\t\ttiddlerFields = {title: file.name || \"Untitled\", type: type};\n\t\tif(isBinary) {\n\t\t\tvar commaPos = text.indexOf(\",\");\n\t\t\tif(commaPos !== -1) {\n\t\t\t\ttext = text.substr(commaPos + 1);\n\t\t\t}\n\t\t}\n\t\t// Check whether this is an encrypted TiddlyWiki file\n\t\tvar encryptedJson = $tw.utils.extractEncryptedStoreArea(text);\n\t\tif(encryptedJson) {\n\t\t\t// If so, attempt to decrypt it with the current password\n\t\t\t$tw.utils.decryptStoreAreaInteractive(encryptedJson,function(tiddlers) {\n\t\t\t\tcallback(tiddlers);\n\t\t\t});\n\t\t} else {\n\t\t\t// Otherwise, just try to deserialise any tiddlers in the file\n\t\t\tcallback(self.deserializeTiddlers(type,text,tiddlerFields,{deserializer: deserializer}));\n\t\t}\n\t};\n\t// Kick off the read\n\tif(isBinary) {\n\t\treader.readAsDataURL(file);\n\t} else {\n\t\treader.readAsText(file);\n\t}\n};\n\n/*\nFind any existing draft of a specified tiddler\n*/\nexports.findDraft = function(targetTitle) {\n\tvar draftTitle = undefined;\n\tthis.forEachTiddler({includeSystem: true},function(title,tiddler) {\n\t\tif(tiddler.fields[\"draft.title\"] && tiddler.fields[\"draft.of\"] === targetTitle) {\n\t\t\tdraftTitle = title;\n\t\t}\n\t});\n\treturn draftTitle;\n}\n\n/*\nCheck whether the specified draft tiddler has been modified.\nIf the original tiddler doesn't exist, create a vanilla tiddler variable,\nto check if additional fields have been added.\n*/\nexports.isDraftModified = function(title) {\n\tvar tiddler = this.getTiddler(title);\n\tif(!tiddler.isDraft()) {\n\t\treturn false;\n\t}\n\tvar ignoredFields = [\"created\", \"modified\", \"title\", \"draft.title\", \"draft.of\"],\n\t\torigTiddler = this.getTiddler(tiddler.fields[\"draft.of\"]) || new $tw.Tiddler({text:\"\", tags:[]}),\n\t\ttitleModified = tiddler.fields[\"draft.title\"] !== tiddler.fields[\"draft.of\"];\n\treturn titleModified || !tiddler.isEqual(origTiddler,ignoredFields);\n};\n\n/*\nAdd a new record to the top of the history stack\ntitle: a title string or an array of title strings\nfromPageRect: page coordinates of the origin of the navigation\nhistoryTitle: title of history tiddler (defaults to $:/HistoryList)\n*/\nexports.addToHistory = function(title,fromPageRect,historyTitle) {\n\tvar story = new $tw.Story({wiki: this, historyTitle: historyTitle});\n\tstory.addToHistory(title,fromPageRect);\t\t\n};\n\n/*\nAdd a new tiddler to the story river\ntitle: a title string or an array of title strings\nfromTitle: the title of the tiddler from which the navigation originated\nstoryTitle: title of story tiddler (defaults to $:/StoryList)\noptions: see story.js\n*/\nexports.addToStory = function(title,fromTitle,storyTitle,options) {\n\tvar story = new $tw.Story({wiki: this, storyTitle: storyTitle});\n\tstory.addToStory(title,fromTitle,options);\t\t\n};\n\n/*\nGenerate a title for the draft of a given tiddler\n*/\nexports.generateDraftTitle = function(title) {\n\tvar c = 0,\n\t\tdraftTitle,\n\t\tusername = this.getTiddlerText(\"$:/status/UserName\"),\n\t\tattribution = username ? \" by \" + username : \"\";\n\tdo {\n\t\tdraftTitle = \"Draft \" + (c ? (c + 1) + \" \" : \"\") + \"of '\" + title + \"'\" + attribution;\n\t\tc++;\n\t} while(this.tiddlerExists(draftTitle));\n\treturn draftTitle;\n};\n\n/*\nInvoke the available upgrader modules\ntitles: array of tiddler titles to be processed\ntiddlers: hashmap by title of tiddler fields of pending import tiddlers. These can be modified by the upgraders. An entry with no fields indicates a tiddler that was pending import has been suppressed. When entries are added to the pending import the tiddlers hashmap may have entries that are not present in the titles array\nReturns a hashmap of messages keyed by tiddler title.\n*/\nexports.invokeUpgraders = function(titles,tiddlers) {\n\t// Collect up the available upgrader modules\n\tvar self = this;\n\tif(!this.upgraderModules) {\n\t\tthis.upgraderModules = [];\n\t\t$tw.modules.forEachModuleOfType(\"upgrader\",function(title,module) {\n\t\t\tif(module.upgrade) {\n\t\t\t\tself.upgraderModules.push(module);\n\t\t\t}\n\t\t});\n\t}\n\t// Invoke each upgrader in turn\n\tvar messages = {};\n\tfor(var t=0; t<this.upgraderModules.length; t++) {\n\t\tvar upgrader = this.upgraderModules[t],\n\t\t\tupgraderMessages = upgrader.upgrade(this,titles,tiddlers);\n\t\t$tw.utils.extend(messages,upgraderMessages);\n\t}\n\treturn messages;\n};\n\n// Determine whether a plugin by title is dynamically loadable\nexports.doesPluginRequireReload = function(title) {\n\treturn this.doesPluginInfoRequireReload(this.getPluginInfo(title) || this.getTiddlerDataCached(title));\n};\n\n// Determine whether a plugin info structure is dynamically loadable\nexports.doesPluginInfoRequireReload = function(pluginInfo) {\n\tif(pluginInfo) {\n\t\tvar foundModule = false;\n\t\t$tw.utils.each(pluginInfo.tiddlers,function(tiddler) {\n\t\t\tif(tiddler.type === \"application/javascript\" && $tw.utils.hop(tiddler,\"module-type\")) {\n\t\t\t\tfoundModule = true;\n\t\t\t}\n\t\t});\n\t\treturn foundModule;\n\t} else {\n\t\treturn null;\n\t}\n};\n\n})();\n\n",
"type": "application/javascript",
"module-type": "wikimethod"
},
"$:/palettes/Blanca": {
"title": "$:/palettes/Blanca",
"name": "Blanca",
"description": "A clean white palette to let you focus",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #66cccc\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ffffff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #7897f3\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ccc\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #ffffff\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #7897f3\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #eeeeee\ntab-border-selected: #cccccc\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffeedd\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: #eee\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #ff9900\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Blue": {
"title": "$:/palettes/Blue",
"name": "Blue",
"description": "A blue theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333353\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #ddddff\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #5959c0\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: #ccccdd\ntab-border-selected: #ccccdd\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #eeeeff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #666666\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #ffffff\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #ffffff\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #5959c0\ntoolbar-new-button: #5eb95e\ntoolbar-options-button: rgb(128, 88, 165)\ntoolbar-save-button: #0e90d2\ntoolbar-info-button: #0e90d2\ntoolbar-edit-button: rgb(243, 123, 29)\ntoolbar-close-button: #dd514c\ntoolbar-delete-button: #dd514c\ntoolbar-cancel-button: rgb(243, 123, 29)\ntoolbar-done-button: #5eb95e\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/Muted": {
"title": "$:/palettes/Muted",
"name": "Muted",
"description": "Bright tiddlers on a muted background",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #6f6f70\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #29a6ee\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #c2c1c2\nsidebar-foreground-shadow: rgba(255,255,255,0)\nsidebar-foreground: #d3d2d4\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #6f6f70\nsidebar-tab-background: #666667\nsidebar-tab-border-selected: #999\nsidebar-tab-border: #515151\nsidebar-tab-divider: #999\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: #999\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #d1d0d2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #d5ad34\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastLight": {
"title": "$:/palettes/ContrastLight",
"name": "Contrast (Light)",
"description": "High contrast and unambiguous (light version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #fff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #000\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #000\ntag-foreground: #fff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/ContrastDark": {
"title": "$:/palettes/ContrastDark",
"name": "Contrast (Dark)",
"description": "High contrast and unambiguous (dark version)",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #f00\nalert-border: <<colour background>>\nalert-highlight: <<colour foreground>>\nalert-muted-foreground: #800\nbackground: #000\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: <<colour background>>\nbutton-foreground: <<colour foreground>>\nbutton-border: <<colour foreground>>\ncode-background: <<colour background>>\ncode-border: <<colour foreground>>\ncode-foreground: <<colour foreground>>\ndirty-indicator: #f00\ndownload-background: #080\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: <<colour foreground>>\ndropdown-tab-background: <<colour foreground>>\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #00a\nexternal-link-foreground: #00e\nforeground: #fff\nmessage-background: <<colour foreground>>\nmessage-border: <<colour background>>\nmessage-foreground: <<colour background>>\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour foreground>>\nmodal-header-border: <<colour foreground>>\nmuted-foreground: <<colour foreground>>\nnotification-background: <<colour background>>\nnotification-border: <<colour foreground>>\npage-background: <<colour background>>\npre-background: <<colour background>>\npre-border: <<colour foreground>>\nprimary: #00f\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: <<colour background>>\nsidebar-controls-foreground: <<colour foreground>>\nsidebar-foreground-shadow: rgba(0,0,0, 0)\nsidebar-foreground: <<colour foreground>>\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: <<colour foreground>>\nsidebar-tab-background-selected: <<colour background>>\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: <<colour foreground>>\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: <<colour foreground>>\nsidebar-tiddler-link-foreground: <<colour primary>>\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: <<colour foreground>>\ntab-border-selected: <<colour foreground>>\ntab-border: <<colour foreground>>\ntab-divider: <<colour foreground>>\ntab-foreground-selected: <<colour foreground>>\ntab-foreground: <<colour background>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #fff\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour foreground>>\ntiddler-controls-foreground-hover: #ddd\ntiddler-controls-foreground-selected: #fdd\ntiddler-controls-foreground: <<colour foreground>>\ntiddler-editor-background: <<colour background>>\ntiddler-editor-border-image: <<colour foreground>>\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: <<colour background>>\ntiddler-editor-fields-odd: <<colour background>>\ntiddler-info-background: <<colour background>>\ntiddler-info-border: <<colour foreground>>\ntiddler-info-tab-background: <<colour background>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour foreground>>\ntiddler-title-foreground: <<colour foreground>>\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour foreground>>\nvery-muted-foreground: #888888\n"
},
"$:/palettes/DarkPhotos": {
"title": "$:/palettes/DarkPhotos",
"created": "20150402111612188",
"description": "Good with dark photo backgrounds",
"modified": "20150402112344080",
"name": "DarkPhotos",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: \nbutton-foreground: \nbutton-border: \ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #ddd\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #336438\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #ccf\nsidebar-controls-foreground: #fff\nsidebar-foreground-shadow: rgba(0,0,0, 0.5)\nsidebar-foreground: #fff\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #eee\nsidebar-tab-background-selected: rgba(255,255,255, 0.8)\nsidebar-tab-background: rgba(255,255,255, 0.4)\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: rgba(255,255,255, 0.2)\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #aaf\nsidebar-tiddler-link-foreground: #ddf\nsite-title-foreground: #fff\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/GruvboxDark": {
"title": "$:/palettes/GruvboxDark",
"name": "Gruvbox Dark",
"description": "Retro groove color scheme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "https://github.com/morhetz/gruvbox",
"text": "alert-background: #cc241d\nalert-border: #cc241d\nalert-highlight: #d79921\nalert-muted-foreground: #504945\nbackground: #3c3836\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #504945\nbutton-foreground: #fbf1c7\nbutton-border: transparent\ncode-background: #504945\ncode-border: #504945\ncode-foreground: #fb4934\ndiff-delete-background: #fb4934\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #b8bb26\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #fb4934\ndownload-background: #b8bb26\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #665c54\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ebdbb2\ndropdown-tab-background: #665c54\ndropzone-background: #98971a\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #d3869b\nexternal-link-foreground: #8ec07c\nforeground: #fbf1c7\nmenubar-background: #504945\nmenubar-foreground: <<colour foreground>>\nmessage-background: #83a598\nmessage-border: #83a598\nmessage-foreground: #3c3836\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #504945\nmodal-footer-background: #3c3836\nmodal-footer-border: #3c3836\nmodal-header-border: #3c3836\nmuted-foreground: #d5c4a1\nnotification-background: <<colour primary>>\nnotification-border: <<colour primary>>\npage-background: #282828\npre-background: #504945\npre-border: #504945\nprimary: #d79921\nselect-tag-background: #665c54\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #7c6f64\nsidebar-controls-foreground: #504945\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #fbf1c7\nsidebar-muted-foreground-hover: #7c6f64\nsidebar-muted-foreground: #504945\nsidebar-tab-background-selected: #bdae93\nsidebar-tab-background: #3c3836\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #bdae93\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #282828\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #458588\nsidebar-tiddler-link-foreground: #98971a\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ebdbb2\ntab-background: #665c54\ntab-border-selected: #665c54\ntab-border: #665c54\ntab-divider: #bdae93\ntab-foreground-selected: #282828\ntab-foreground: #ebdbb2\ntable-border: #7c6f64\ntable-footer-background: #665c54\ntable-header-background: #504945\ntag-background: #d3869b\ntag-foreground: #282828\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #7c6f64\ntiddler-controls-foreground-selected: #7c6f64\ntiddler-controls-foreground: #665c54\ntiddler-editor-background: #282828\ntiddler-editor-border-image: #282828\ntiddler-editor-border: #282828\ntiddler-editor-fields-even: #504945\ntiddler-editor-fields-odd: #7c6f64\ntiddler-info-background: #32302f\ntiddler-info-border: #ebdbb2\ntiddler-info-tab-background: #ebdbb2\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #7c6f64\ntiddler-title-foreground: #a89984\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #504945\nvery-muted-foreground: #bdae93\nwikilist-background: <<colour page-background>>\nwikilist-button-background: <<colour button-background>>\nwikilist-button-foreground: <<colour button-foreground>>\nwikilist-item: <<colour background>>\nwikilist-toolbar-background: <<colour background>>\nwikilist-toolbar-foreground: <<colour foreground>>\nwikilist-title: <<colour foreground>>\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: <<colour muted-foreground>>\nwikilist-button-open-hover: <<colour primary>>\nwikilist-button-open: <<colour dropzone-background>>\nwikilist-button-remove: <<colour dirty-indicator>>\nwikilist-button-remove-hover: <<colour alert-background>>\nwikilist-droplink-dragover: <<colour dropzone-background>>\nwikilist-button-reveal: <<colour sidebar-tiddler-link-foreground-hover>>\nwikilist-button-reveal-hover: <<colour message-background>>"
},
"$:/palettes/Nord": {
"title": "$:/palettes/Nord",
"name": "Nord",
"description": "An arctic, north-bluish color palette.",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"license": "MIT, arcticicestudio, https://github.com/arcticicestudio/nord/blob/develop/LICENSE.md",
"text": "alert-background: #D08770\nalert-border: #D08770\nalert-highlight: #B48EAD\nalert-muted-foreground: #4C566A\nbackground: #3b4252\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #4C566A\nbutton-foreground: #D8DEE9\nbutton-border: transparent\ncode-background: #2E3440\ncode-border: #2E3440\ncode-foreground: #BF616A\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #A3BE8C\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #BF616A\ndownload-background: #A3BE8C\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #ECEFF4\ndropdown-tab-background: #4C566A\ndropzone-background: #A3BE8C\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #5E81AC\nexternal-link-foreground: #8FBCBB\nforeground: #d8dee9\nmenubar-background: #2E3440\nmenubar-foreground: #d8dee9\nmessage-background: #2E3440\nmessage-border: #2E3440\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #3b4252\nmodal-footer-background: #3b4252\nmodal-footer-border: #3b4252\nmodal-header-border: #3b4252\nmuted-foreground: #4C566A\nnotification-background: <<colour primary>>\nnotification-border: #EBCB8B\npage-background: #2e3440\npre-background: #2E3440\npre-border: #2E3440\nprimary: #5E81AC\nselect-tag-background: #3b4252\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #D8DEE9\nsidebar-controls-foreground: #4C566A\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #D8DEE9\nsidebar-muted-foreground-hover: #4C566A\nsidebar-muted-foreground: #4C566A\nsidebar-tab-background-selected: #ECEFF4\nsidebar-tab-background: #4C566A\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #4C566A\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #4C566A\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #A3BE8C\nsidebar-tiddler-link-foreground: #81A1C1\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #B48EAD\ntab-background-selected: #ECEFF4\ntab-background: #4C566A\ntab-border-selected: #4C566A\ntab-border: #4C566A\ntab-divider: #4C566A\ntab-foreground-selected: #4C566A\ntab-foreground: #D8DEE9\ntable-border: #4C566A\ntable-footer-background: #2e3440\ntable-header-background: #2e3440\ntag-background: #A3BE8C\ntag-foreground: #4C566A\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: \ntiddler-controls-foreground-selected: #EBCB8B\ntiddler-controls-foreground: #4C566A\ntiddler-editor-background: #2e3440\ntiddler-editor-border-image: #2e3440\ntiddler-editor-border: #2e3440\ntiddler-editor-fields-even: #2e3440\ntiddler-editor-fields-odd: #2e3440\ntiddler-info-background: #2e3440\ntiddler-info-border: #2e3440\ntiddler-info-tab-background: #2e3440\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #4C566A\ntiddler-title-foreground: #81A1C1\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #2d3038\nvery-muted-foreground: #2d3038\n"
},
"$:/palettes/Rocker": {
"title": "$:/palettes/Rocker",
"name": "Rocker",
"description": "A dark theme",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #999999\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #000\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #cc0000\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #ffffff\nsidebar-foreground-shadow: rgba(255,255,255, 0.0)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #000\nsidebar-tab-background: <<colour tab-background>>\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: <<colour tab-divider>>\nsidebar-tab-foreground-selected: \nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #ffbb99\nsidebar-tiddler-link-foreground: #cc0000\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ffbb99\ntag-foreground: #000\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #cc0000\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarFlare": {
"title": "$:/palettes/SolarFlare",
"name": "Solar Flare",
"description": "Warm, relaxing earth colours",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": ": Background Tones\n\nbase03: #002b36\nbase02: #073642\n\n: Content Tones\n\nbase01: #586e75\nbase00: #657b83\nbase0: #839496\nbase1: #93a1a1\n\n: Background Tones\n\nbase2: #eee8d5\nbase3: #fdf6e3\n\n: Accent Colors\n\nyellow: #b58900\norange: #cb4b16\nred: #dc322f\nmagenta: #d33682\nviolet: #6c71c4\nblue: #268bd2\ncyan: #2aa198\ngreen: #859900\n\n: Additional Tones (RA)\n\nbase10: #c0c4bb\nviolet-muted: #7c81b0\nblue-muted: #4e7baa\n\nyellow-hot: #ffcc44\norange-hot: #eb6d20\nred-hot: #ff2222\nblue-hot: #2298ee\ngreen-hot: #98ee22\n\n: Palette\n\n: Do not use colour macro for background and foreground\nbackground: #fdf6e3\n download-foreground: <<colour background>>\n dragger-foreground: <<colour background>>\n dropdown-background: <<colour background>>\n modal-background: <<colour background>>\n sidebar-foreground-shadow: <<colour background>>\n tiddler-background: <<colour background>>\n tiddler-border: <<colour background>>\n tiddler-link-background: <<colour background>>\n tab-background-selected: <<colour background>>\n dropdown-tab-background-selected: <<colour tab-background-selected>>\nforeground: #657b83\n dragger-background: <<colour foreground>>\n tab-foreground: <<colour foreground>>\n tab-foreground-selected: <<colour tab-foreground>>\n sidebar-tab-foreground-selected: <<colour tab-foreground-selected>>\n sidebar-tab-foreground: <<colour tab-foreground>>\n sidebar-button-foreground: <<colour foreground>>\n sidebar-controls-foreground: <<colour foreground>>\n sidebar-foreground: <<colour foreground>>\n: base03\n: base02\n: base01\n alert-muted-foreground: <<colour base01>>\n: base00\n code-foreground: <<colour base00>>\n message-foreground: <<colour base00>>\n tag-foreground: <<colour base00>>\n: base0\n sidebar-tiddler-link-foreground: <<colour base0>>\n: base1\n muted-foreground: <<colour base1>>\n blockquote-bar: <<colour muted-foreground>>\n dropdown-border: <<colour muted-foreground>>\n sidebar-muted-foreground: <<colour muted-foreground>>\n tiddler-title-foreground: <<colour muted-foreground>>\n site-title-foreground: <<colour tiddler-title-foreground>>\n: base2\n modal-footer-background: <<colour base2>>\n page-background: <<colour base2>>\n modal-backdrop: <<colour page-background>>\n notification-background: <<colour page-background>>\n code-background: <<colour page-background>>\n code-border: <<colour code-background>>\n pre-background: <<colour page-background>>\n pre-border: <<colour pre-background>>\n sidebar-tab-background-selected: <<colour page-background>>\n table-header-background: <<colour base2>>\n tag-background: <<colour base2>>\n tiddler-editor-background: <<colour base2>>\n tiddler-info-background: <<colour base2>>\n tiddler-info-tab-background: <<colour base2>>\n tab-background: <<colour base2>>\n dropdown-tab-background: <<colour tab-background>>\n: base3\n alert-background: <<colour base3>>\n message-background: <<colour base3>>\n: yellow\n: orange\n: red\n: magenta\n alert-highlight: <<colour magenta>>\n: violet\n external-link-foreground: <<colour violet>>\n: blue\n: cyan\n: green\n: base10\n tiddler-controls-foreground: <<colour base10>>\n: violet-muted\n external-link-foreground-visited: <<colour violet-muted>>\n: blue-muted\n primary: <<colour blue-muted>>\n download-background: <<colour primary>>\n tiddler-link-foreground: <<colour primary>>\n\nalert-border: #b99e2f\ndirty-indicator: #ff0000\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nmessage-border: #cfd6e6\nmodal-border: #999999\nselect-tag-background:\nselect-tag-foreground:\nsidebar-controls-foreground-hover:\nsidebar-muted-foreground-hover:\nsidebar-tab-background: #ded8c5\nsidebar-tiddler-link-foreground-hover:\nstatic-alert-foreground: #aaaaaa\ntab-border: #cccccc\n modal-footer-border: <<colour tab-border>>\n modal-header-border: <<colour tab-border>>\n notification-border: <<colour tab-border>>\n sidebar-tab-border: <<colour tab-border>>\n tab-border-selected: <<colour tab-border>>\n sidebar-tab-border-selected: <<colour tab-border-selected>>\ntab-divider: #d8d8d8\n sidebar-tab-divider: <<colour tab-divider>>\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-border: #dddddd\ntiddler-subtitle-foreground: #c0c0c0\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\n"
},
"$:/palettes/SolarizedLight": {
"title": "$:/palettes/SolarizedLight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Precision colors for machines and people",
"license": "MIT, Ethan Schoonover, https://github.com/altercation/solarized/blob/master/LICENSE",
"name": "SolarizedLight",
"text": "alert-background: #eee8d5\nalert-border: #073642\nalert-highlight: #cb4b16\nalert-muted-foreground: #586e75\nbackground: #fdf6e3\nblockquote-bar: <<colour muted-foreground>>\nbutton-background: #cb4b16\nbutton-foreground: #fdf6e3\nbutton-border: transparent\ncode-background: #eee8d5\ncode-border: #93a1a1\ncode-foreground: #d33682\ndiff-delete-background: #BF616A\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #859900\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #D08770\ndownload-background: #859900\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour background>>\ndropdown-tab-background-selected: #fdf6e3\ndropdown-tab-background: #93a1a1\ndropzone-background: #859900\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: #d33682\nexternal-link-foreground-visited: #b58900\nexternal-link-foreground: #cb4b16\nforeground: #839496\nmessage-background: #586e75\nmessage-border: #586e75\nmessage-foreground: #eee8d5\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #eee8d5\nmodal-footer-background: #eee8d5\nmodal-footer-border: #eee8d5\nmodal-header-border: #eee8d5\nmuted-foreground: #93a1a1\nnotification-background: #EBCB8B\nnotification-border: #D08770\npage-background: #eee8d5\npre-background: #eee8d5\npre-border: #93a1a1\nprimary: #2aa198\nselect-tag-background: #eee8d5\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: #eee8d5\nsidebar-controls-foreground-hover: #268bd2\nsidebar-controls-foreground: #586e75\nsidebar-foreground-shadow: transparent\nsidebar-foreground: #839496\nsidebar-muted-foreground-hover: #657b83\nsidebar-muted-foreground: #93a1a1\nsidebar-tab-background-selected: #eee8d5\nsidebar-tab-background: #839496\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: #657b83\nsidebar-tab-divider: <<colour page-background>>\nsidebar-tab-foreground-selected: #839496\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #859900\nsidebar-tiddler-link-foreground: #268bd2\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #dc322f\ntab-background-selected: #fdf6e3\ntab-background: #839496\ntab-border-selected: #93a1a1\ntab-border: #93a1a1\ntab-divider: #fdf6e3\ntab-foreground-selected: #839496\ntab-foreground: #eee8d5\ntable-border: #657b83\ntable-footer-background: #657b83\ntable-header-background: #93a1a1\ntag-background: #6c71c4\ntag-foreground: #eee8d5\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #b58900\ntiddler-controls-foreground-selected: #b58900\ntiddler-controls-foreground: #073642\ntiddler-editor-background: #eee8d5\ntiddler-editor-border-image: #eee8d5\ntiddler-editor-border: #eee8d5\ntiddler-editor-fields-even: #eee8d5\ntiddler-editor-fields-odd: #fdf6e3\ntiddler-info-background: #eee8d5\ntiddler-info-border: #eee8d5\ntiddler-info-tab-background: #586e75\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #586e75\ntiddler-title-foreground: #073642\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: #839496\nvery-muted-foreground: #93a1a1\n"
},
"$:/palettes/SpartanDay": {
"title": "$:/palettes/SpartanDay",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Cold, spartan day colors",
"name": "Spartan Day",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: \ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)\n"
},
"$:/palettes/SpartanNight": {
"title": "$:/palettes/SpartanNight",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"description": "Dark spartan colors",
"name": "Spartan Night",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: #5656f3\nselect-tag-background: <<colour background>>\nselect-tag-foreground: <<colour foreground>>\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: transparent\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: transparent\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)\n"
},
"$:/palettes/Twilight": {
"title": "$:/palettes/Twilight",
"tags": "$:/tags/Palette",
"author": "Thomas Elmiger",
"type": "application/x-tiddler-dictionary",
"name": "Twilight",
"description": "Delightful, soft darkness.",
"text": "alert-background: rgb(255, 255, 102)\nalert-border: rgb(232, 232, 125)\nalert-highlight: rgb(255, 51, 51)\nalert-muted-foreground: rgb(224, 82, 82)\nbackground: rgb(38, 38, 38)\nblockquote-bar: rgba(240, 196, 117, 0.7)\nbutton-background: rgb(63, 63, 63)\nbutton-border: rgb(127, 127, 127)\nbutton-foreground: rgb(179, 179, 179)\ncode-background: rgba(0,0,0,0.03)\ncode-border: rgba(0,0,0,0.08)\ncode-foreground: rgb(255, 94, 94)\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: rgb(255, 94, 94)\ndownload-background: #19a974\ndownload-foreground: rgb(38, 38, 38)\ndragger-background: rgb(179, 179, 179)\ndragger-foreground: rgb(38, 38, 38)\ndropdown-background: rgb(38, 38, 38)\ndropdown-border: rgb(255, 255, 255)\ndropdown-tab-background: rgba(0,0,0,.1)\ndropdown-tab-background-selected: rgba(255,255,255,1)\ndropzone-background: #9eebcf\nexternal-link-background: inherit\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-foreground: rgb(179, 179, 255)\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: rgb(153, 153, 255)\nforeground: rgb(179, 179, 179)\nmessage-background: <<colour tag-foreground>>\nmessage-border: #96ccff\nmessage-foreground: <<colour tag-background>>\nmodal-backdrop: rgb(179, 179, 179)\nmodal-background: rgb(38, 38, 38)\nmodal-border: rgba(0,0,0,.5)\nmodal-footer-background: #f4f4f4\nmodal-footer-border: rgba(0,0,0,.1)\nmodal-header-border: rgba(0,0,0,.2)\nmuted-foreground: rgb(255, 255, 255)\nnotification-background: <<colour tag-foreground>>\nnotification-border: <<colour tag-background>>\npage-background: rgb(26, 26, 26)\npre-background: rgb(25, 25, 25)\npre-border: rgba(0,0,0,.2)\nprimary: rgb(255, 201, 102)\nselect-tag-background: \nselect-tag-foreground: \nsidebar-button-foreground: rgb(179, 179, 179)\nsidebar-controls-foreground: rgb(153, 153, 153)\nsidebar-controls-foreground-hover: <<colour tiddler-controls-foreground-hover>>\nsidebar-foreground: rgb(141, 141, 141)\nsidebar-foreground-shadow: transparent\nsidebar-muted-foreground: rgba(0, 0, 0, 0.5)\nsidebar-muted-foreground-hover: rgb(141, 141, 141)\nsidebar-tab-background: rgba(141, 141, 141, 0.2)\nsidebar-tab-background-selected: rgb(26, 26, 26)\nsidebar-tab-border: rgb(127, 127, 127)\nsidebar-tab-border-selected: rgb(127, 127, 127)\nsidebar-tab-divider: rgb(127, 127, 127)\nsidebar-tab-foreground: rgb(179, 179, 179)\nsidebar-tab-foreground-selected: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground: rgb(179, 179, 179)\nsidebar-tiddler-link-foreground-hover: rgb(115, 115, 115)\nsite-title-foreground: rgb(255, 201, 102)\nstatic-alert-foreground: rgba(0,0,0,.3)\ntab-background: rgba(0,0,0,0.125)\ntab-background-selected: rgb(38, 38, 38)\ntab-border: rgb(255, 201, 102)\ntab-border-selected: rgb(255, 201, 102)\ntab-divider: rgb(255, 201, 102)\ntab-foreground: rgb(179, 179, 179)\ntab-foreground-selected: rgb(179, 179, 179)\ntable-border: rgba(255,255,255,.3)\ntable-footer-background: rgba(0,0,0,.4)\ntable-header-background: rgba(0,0,0,.1)\ntag-background: rgb(255, 201, 102)\ntag-foreground: rgb(25, 25, 25)\ntiddler-background: rgb(38, 38, 38)\ntiddler-border: rgba(240, 196, 117, 0.7)\ntiddler-controls-foreground: rgb(128, 128, 128)\ntiddler-controls-foreground-hover: rgba(255, 255, 255, 0.8)\ntiddler-controls-foreground-selected: rgba(255, 255, 255, 0.9)\ntiddler-editor-background: rgb(33, 33, 33)\ntiddler-editor-border: rgb(63, 63, 63)\ntiddler-editor-border-image: rgb(25, 25, 25)\ntiddler-editor-fields-even: rgb(33, 33, 33)\ntiddler-editor-fields-odd: rgb(28, 28, 28)\ntiddler-info-background: rgb(43, 43, 43)\ntiddler-info-border: rgb(25, 25, 25)\ntiddler-info-tab-background: rgb(43, 43, 43)\ntiddler-link-background: rgb(38, 38, 38)\ntiddler-link-foreground: rgb(204, 204, 255)\ntiddler-subtitle-foreground: rgb(255, 255, 255)\ntiddler-title-foreground: rgb(255, 192, 76)\ntoolbar-cancel-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-done-button: \ntoolbar-edit-button: \ntoolbar-info-button: \ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \nuntagged-background: rgb(255, 255, 255)\nvery-muted-foreground: rgba(240, 196, 117, 0.7)\n"
},
"$:/palettes/Vanilla": {
"title": "$:/palettes/Vanilla",
"name": "Vanilla",
"description": "Pale and unobtrusive",
"tags": "$:/tags/Palette",
"type": "application/x-tiddler-dictionary",
"text": "alert-background: #ffe476\nalert-border: #b99e2f\nalert-highlight: #881122\nalert-muted-foreground: #b99e2f\nbackground: #ffffff\nblockquote-bar: <<colour muted-foreground>>\nbutton-background:\nbutton-foreground:\nbutton-border:\ncode-background: #f7f7f9\ncode-border: #e1e1e8\ncode-foreground: #dd1144\ndiff-delete-background: #ffc9c9\ndiff-delete-foreground: <<colour foreground>>\ndiff-equal-background: \ndiff-equal-foreground: <<colour foreground>>\ndiff-insert-background: #aaefad\ndiff-insert-foreground: <<colour foreground>>\ndiff-invisible-background: \ndiff-invisible-foreground: <<colour muted-foreground>>\ndirty-indicator: #ff0000\ndownload-background: #34c734\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: <<colour background>>\ndropdown-border: <<colour muted-foreground>>\ndropdown-tab-background-selected: #fff\ndropdown-tab-background: #ececec\ndropzone-background: rgba(0,200,0,0.7)\nexternal-link-background-hover: inherit\nexternal-link-background-visited: inherit\nexternal-link-background: inherit\nexternal-link-foreground-hover: inherit\nexternal-link-foreground-visited: #0000aa\nexternal-link-foreground: #0000ee\nforeground: #333333\nmessage-background: #ecf2ff\nmessage-border: #cfd6e6\nmessage-foreground: #547599\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: #999999\nmodal-footer-background: #f5f5f5\nmodal-footer-border: #dddddd\nmodal-header-border: #eeeeee\nmuted-foreground: #bbb\nnotification-background: #ffffdd\nnotification-border: #999999\npage-background: #f4f4f4\npre-background: #f5f5f5\npre-border: #cccccc\nprimary: #5778d8\nselect-tag-background:\nselect-tag-foreground:\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #000000\nsidebar-controls-foreground: #aaaaaa\nsidebar-foreground-shadow: rgba(255,255,255, 0.8)\nsidebar-foreground: #acacac\nsidebar-muted-foreground-hover: #444444\nsidebar-muted-foreground: #c0c0c0\nsidebar-tab-background-selected: #f4f4f4\nsidebar-tab-background: #e0e0e0\nsidebar-tab-border-selected: <<colour tab-border-selected>>\nsidebar-tab-border: <<colour tab-border>>\nsidebar-tab-divider: #e4e4e4\nsidebar-tab-foreground-selected:\nsidebar-tab-foreground: <<colour tab-foreground>>\nsidebar-tiddler-link-foreground-hover: #444444\nsidebar-tiddler-link-foreground: #999999\nsite-title-foreground: <<colour tiddler-title-foreground>>\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: #ffffff\ntab-background: #d8d8d8\ntab-border-selected: #d8d8d8\ntab-border: #cccccc\ntab-divider: #d8d8d8\ntab-foreground-selected: <<colour tab-foreground>>\ntab-foreground: #666666\ntable-border: #dddddd\ntable-footer-background: #a8a8a8\ntable-header-background: #f0f0f0\ntag-background: #ec6\ntag-foreground: #ffffff\ntiddler-background: <<colour background>>\ntiddler-border: <<colour background>>\ntiddler-controls-foreground-hover: #888888\ntiddler-controls-foreground-selected: #444444\ntiddler-controls-foreground: #cccccc\ntiddler-editor-background: #f8f8f8\ntiddler-editor-border-image: #ffffff\ntiddler-editor-border: #cccccc\ntiddler-editor-fields-even: #e0e8e0\ntiddler-editor-fields-odd: #f0f4f0\ntiddler-info-background: #f8f8f8\ntiddler-info-border: #dddddd\ntiddler-info-tab-background: #f8f8f8\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: #c0c0c0\ntiddler-title-foreground: #182955\ntoolbar-new-button:\ntoolbar-options-button:\ntoolbar-save-button:\ntoolbar-info-button:\ntoolbar-edit-button:\ntoolbar-close-button:\ntoolbar-delete-button:\ntoolbar-cancel-button:\ntoolbar-done-button:\nuntagged-background: #999999\nvery-muted-foreground: #888888\nwikilist-background: #e5e5e5\nwikilist-item: #fff\nwikilist-info: #000\nwikilist-title: #666\nwikilist-title-svg: <<colour wikilist-title>>\nwikilist-url: #aaa\nwikilist-button-open: #4fb82b\nwikilist-button-open-hover: green\nwikilist-button-reveal: #5778d8\nwikilist-button-reveal-hover: blue\nwikilist-button-remove: #d85778\nwikilist-button-remove-hover: red\nwikilist-toolbar-background: #d3d3d3\nwikilist-toolbar-foreground: #888\nwikilist-droplink-dragover: rgba(255,192,192,0.5)\nwikilist-button-background: #acacac\nwikilist-button-foreground: #000\n"
},
"$:/core/readme": {
"title": "$:/core/readme",
"text": "This plugin contains TiddlyWiki's core components, comprising:\n\n* JavaScript code modules\n* Icons\n* Templates needed to create TiddlyWiki's user interface\n* British English (''en-GB'') translations of the localisable strings used by the core\n"
},
"$:/library/sjcl.js/license": {
"title": "$:/library/sjcl.js/license",
"type": "text/plain",
"text": "SJCL is open. You can use, modify and redistribute it under a BSD\nlicense or under the GNU GPL, version 2.0.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/BSD-2-Clause\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University. All rights reserved.\n\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are\nmet:\n\n1. Redistributions of source code must retain the above copyright\nnotice, this list of conditions and the following disclaimer.\n\n2. Redistributions in binary form must reproduce the above copyright\nnotice, this list of conditions and the following disclaimer in the\ndocumentation and/or other materials provided with the distribution.\n\nTHIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS\nIS\" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED\nTO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A\nPARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT\nHOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,\nSPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED\nTO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR\nPROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF\nLIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING\nNEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n\n---------------------------------------------------------------------\n\nhttp://opensource.org/licenses/GPL-2.0\n\nThe Stanford Javascript Crypto Library (hosted here on GitHub) is a\nproject by the Stanford Computer Security Lab to build a secure,\npowerful, fast, small, easy-to-use, cross-browser library for\ncryptography in Javascript.\n\nCopyright (c) 2009-2015, Emily Stark, Mike Hamburg and Dan Boneh at\nStanford University.\n\nThis program is free software; you can redistribute it and/or modify it\nunder the terms of the GNU General Public License as published by the\nFree Software Foundation; either version 2 of the License, or (at your\noption) any later version.\n\nThis program is distributed in the hope that it will be useful, but\nWITHOUT ANY WARRANTY; without even the implied warranty of\nMERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General\nPublic License for more details.\n\nYou should have received a copy of the GNU General Public License along\nwith this program; if not, write to the Free Software Foundation, Inc.,\n59 Temple Place, Suite 330, Boston, MA 02111-1307 USA"
},
"$:/core/templates/MOTW.html": {
"title": "$:/core/templates/MOTW.html",
"text": "\\rules only filteredtranscludeinline transcludeinline entity\n<!-- The following comment is called a MOTW comment and is necessary for the TiddlyIE Internet Explorer extension -->\n<!-- saved from url=(0021)https://tiddlywiki.com --> "
},
"$:/core/templates/alltiddlers.template.html": {
"title": "$:/core/templates/alltiddlers.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "<!-- This template is provided for backwards compatibility with older versions of TiddlyWiki -->\n\n<$set name=\"exportFilter\" value=\"[!is[system]sort[title]]\">\n\n{{$:/core/templates/exporters/StaticRiver}}\n\n</$set>\n"
},
"$:/core/templates/canonical-uri-external-image": {
"title": "$:/core/templates/canonical-uri-external-image",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external images.\n\nChange the `./images/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./images/<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-raw": {
"title": "$:/core/templates/canonical-uri-external-raw",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external raw files that are stored in the same directory\n\n-->\n<$view field=\"title\" format=\"doubleurlencoded\"/>"
},
"$:/core/templates/canonical-uri-external-text": {
"title": "$:/core/templates/canonical-uri-external-text",
"text": "<!--\n\nThis template is used to assign the ''_canonical_uri'' field to external text files.\n\nChange the `./text/` part to a different base URI. The URI can be relative or absolute.\n\n-->\n./text/<$view field=\"title\" format=\"doubleurlencoded\"/>.tid"
},
"$:/core/templates/css-tiddler": {
"title": "$:/core/templates/css-tiddler",
"text": "<!--\n\nThis template is used for saving CSS tiddlers as a style tag with data attributes representing the tiddler fields.\n\n-->`<style`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/css\">`<$view field=\"text\" format=\"text\" />`</style>`"
},
"$:/core/templates/exporters/CsvFile": {
"title": "$:/core/templates/exporters/CsvFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/CsvFile}}",
"extension": ".csv",
"text": "\\define renderContent()\n<$text text=<<csvtiddlers filter:\"\"\"$(exportFilter)$\"\"\" format:\"quoted-comma-sep\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/JsonFile": {
"title": "$:/core/templates/exporters/JsonFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/JsonFile}}",
"extension": ".json",
"text": "\\define renderContent()\n<$text text=<<jsontiddlers filter:\"\"\"$(exportFilter)$\"\"\">>/>\n\\end\n<<renderContent>>\n"
},
"$:/core/templates/exporters/StaticRiver": {
"title": "$:/core/templates/exporters/StaticRiver",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/StaticRiver}}",
"extension": ".html",
"text": "\\define tv-wikilink-template() #$uri_encoded$\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n<section class=\"tc-story-river\">\n{{$:/core/templates/exporters/StaticRiver/Content||$:/core/templates/html-tiddler}}\n</section>\n</body>\n</html>\n"
},
"$:/core/templates/exporters/StaticRiver/Content": {
"title": "$:/core/templates/exporters/StaticRiver/Content",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ ||$:/core/templates/static-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>\n"
},
"$:/core/templates/exporters/TidFile": {
"title": "$:/core/templates/exporters/TidFile",
"tags": "$:/tags/Exporter",
"description": "{{$:/language/Exporters/TidFile}}",
"extension": ".tid",
"text": "\\define renderContent()\n{{{ $(exportFilter)$ +[limit[1]] ||$:/core/templates/tid-tiddler}}}\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<<renderContent>>"
},
"$:/core/save/all-external-js": {
"title": "$:/core/save/all-external-js",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/core]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5-external-js.html}}\n"
},
"$:/core/templates/tiddlywiki5.js": {
"title": "$:/core/templates/tiddlywiki5.js",
"text": "\\rules only filteredtranscludeinline transcludeinline codeinline\n\n/*\n{{ $:/core/copyright.txt ||$:/core/templates/plain-text-tiddler}}\n`*/\n`<!--~~ Library modules ~~-->\n{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/plain-text-tiddler}}}\n<!--~~ Boot prefix ~~-->\n{{ $:/boot/bootprefix.js ||$:/core/templates/plain-text-tiddler}}\n<!--~~ Core plugin ~~-->\n{{$:/core/templates/tiddlywiki5.js/tiddlers}}\n<!--~~ Boot kernel ~~-->\n{{ $:/boot/boot.js ||$:/core/templates/plain-text-tiddler}}\n"
},
"$:/core/templates/tiddlywiki5.js/tiddlers": {
"title": "$:/core/templates/tiddlywiki5.js/tiddlers",
"text": "`\n$tw.preloadTiddlerArray(`<$text text=<<jsontiddlers \"[[$:/core]]\">>/>`);\n$tw.preloadTiddlerArray([{\n\ttitle: \"$:/config/SaveWikiButton/Template\",\n\ttext: \"$:/core/save/all-external-js\"\n}]);\n`\n"
},
"$:/core/templates/tiddlywiki5-external-js.html": {
"title": "$:/core/templates/tiddlywiki5-external-js.html",
"text": "\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n{{$:/core/templates/MOTW.html}}<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"{{$:/core/copyright.txt}}\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/core/wiki/rawmarkup]] [all[shadows+tiddlers]tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n{{$:/core/templates/static.area}}\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n{{$:/core/templates/store.area.template.html}}\n<!--~~ Raw markup for the bottom of the body section ~~-->\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}\n</body>\n<script src=\"%24%3A%2Fcore%2Ftemplates%2Ftiddlywiki5.js\" onerror=\"alert('Error: Cannot load tiddlywiki.js');\"></script>\n</html>\n"
},
"$:/core/templates/html-div-skinny-tiddler": {
"title": "$:/core/templates/html-div-skinny-tiddler",
"text": "<!--\n\nThis template is a variant of $:/core/templates/html-div-tiddler used for saving skinny tiddlers (with no text field)\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre></pre>\n</div>`\n"
},
"$:/core/templates/html-div-tiddler": {
"title": "$:/core/templates/html-div-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as an HTML DIV tag with attributes representing the tiddler fields.\n\n-->`<div`<$fields template=' $name$=\"$encoded_value$\"'></$fields>`>\n<pre>`<$view field=\"text\" format=\"htmlencoded\" />`</pre>\n</div>`\n"
},
"$:/core/templates/html-tiddler": {
"title": "$:/core/templates/html-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw HTML\n\n--><$view field=\"text\" format=\"htmlwikified\" />"
},
"$:/core/templates/javascript-tiddler": {
"title": "$:/core/templates/javascript-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields.\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\">`<$view field=\"text\" format=\"text\" />`</script>`"
},
"$:/core/templates/json-tiddler": {
"title": "$:/core/templates/json-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as raw JSON\n\n--><$text text=<<jsontiddler>>/>"
},
"$:/core/templates/module-tiddler": {
"title": "$:/core/templates/module-tiddler",
"text": "<!--\n\nThis template is used for saving JavaScript tiddlers as a script tag with data attributes representing the tiddler fields. The body of the tiddler is wrapped in a call to the `$tw.modules.define` function in order to define the body of the tiddler as a module\n\n-->`<script`<$fields template=' data-tiddler-$name$=\"$encoded_value$\"'></$fields>` type=\"text/javascript\" data-module=\"yes\">$tw.modules.define(\"`<$view field=\"title\" format=\"jsencoded\" />`\",\"`<$view field=\"module-type\" format=\"jsencoded\" />`\",function(module,exports,require) {`<$view field=\"text\" format=\"text\" />`});\n</script>`"
},
"$:/core/templates/plain-text-tiddler": {
"title": "$:/core/templates/plain-text-tiddler",
"text": "<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/raw-static-tiddler": {
"title": "$:/core/templates/raw-static-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers as static HTML\n\n--><$view field=\"text\" format=\"plainwikified\" />"
},
"$:/core/save/all": {
"title": "$:/core/save/all",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] $(publishFilter)$\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/empty": {
"title": "$:/core/save/empty",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-all": {
"title": "$:/core/save/lazy-all",
"text": "\\define saveTiddlerFilter()\n[is[system]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[!is[system]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/save/lazy-images": {
"title": "$:/core/save/lazy-images",
"text": "\\define saveTiddlerFilter()\n[is[tiddler]] -[prefix[$:/state/popup/]] -[[$:/HistoryList]] -[[$:/boot/boot.css]] -[type[application/javascript]library[yes]] -[[$:/boot/boot.js]] -[[$:/boot/bootprefix.js]] -[!is[system]is[image]] +[sort[title]] \n\\end\n\\define skinnySaveTiddlerFilter()\n[is[image]]\n\\end\n{{$:/core/templates/tiddlywiki5.html}}\n"
},
"$:/core/templates/server/static.sidebar.wikitext": {
"title": "$:/core/templates/server/static.sidebar.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-scrollable\" style=\"overflow: auto;\">\n<div class=\"tc-sidebar-header\">\n<h1 class=\"tc-site-title\">\n<$transclude tiddler=\"$:/SiteTitle\"/>\n</h1>\n<div class=\"tc-site-subtitle\">\n<$transclude tiddler=\"$:/SiteSubtitle\"/>\n</div>\n<h2>\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$list filter={{$:/DefaultTiddlers}}>\n<div class=\"tc-menu-list-subitem\">\n<$link><$text text=<<currentTiddler>>/></$link>\n</div>\n</$list>\n</div>\n<!-- Currently disabled the recent list as it is unweildy when the responsive narrow view kicks in\n<h2>\n{{$:/language/SideBar/Recent/Caption}}\n</h2>\n<div class=\"tc-sidebar-lists\">\n<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n</div>\n</div>\n</div>\n-->\n"
},
"$:/core/templates/server/static.tiddler.html": {
"title": "$:/core/templates/server/static.tiddler.html",
"text": "\\whitespace trim\n\\define tv-wikilink-template() $uri_encoded$\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content={{$:/core/templates/version}} />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"%24%3A%2Fcore%2Ftemplates%2Fstatic.template.css\">\n<title><$view field=\"caption\" format=\"plainwikified\"><$view field=\"title\"/></$view>: <$view tiddler=\"$:/core/wiki/title\" format=\"plainwikified\"/></title>\n</head>\n<body class=\"tc-body\">\n<$transclude tiddler=\"$:/core/templates/server/static.sidebar.wikitext\" mode=\"inline\"/>\n<section class=\"tc-story-river\">\n<div class=\"tc-tiddler-frame\">\n<$transclude tiddler=\"$:/core/templates/server/static.tiddler.wikitext\" mode=\"inline\"/>\n</div>\n</section>\n</body>\n</html>"
},
"$:/core/templates/server/static.tiddler.wikitext": {
"title": "$:/core/templates/server/static.tiddler.wikitext",
"text": "\\whitespace trim\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<h2><$text text=<<currentTiddler>>/></h2>\n</div>\n</div>\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}}>\n<$view field=\"modifier\"/>\n</$link> <$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n<div class=\"tc-tags-wrapper\">\n<$list filter=\"[all[current]tags[]sort[title]]\">\n<a href={{{ [<currentTiddler>encodeuricomponent[]] }}}>\n<$macrocall $name=\"tag-pill\" tag=<<currentTiddler>>/>\n</a>\n</$list>\n</div>\n<div class=\"tc-tiddler-body\">\n<$transclude mode=\"block\"/>\n</div>\n"
},
"$:/core/templates/single.tiddler.window": {
"title": "$:/core/templates/single.tiddler.window",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n\n<$transclude mode=\"block\"/>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/templates/split-recipe": {
"title": "$:/core/templates/split-recipe",
"text": "<$list filter=\"[!is[system]]\">\ntiddler: <$view field=\"title\" format=\"urlencoded\"/>.tid\n</$list>\n"
},
"$:/core/templates/static-tiddler": {
"title": "$:/core/templates/static-tiddler",
"text": "<a name=<<currentTiddler>>>\n<$transclude tiddler=\"$:/core/ui/ViewTemplate\"/>\n</a>"
},
"$:/core/templates/static.area": {
"title": "$:/core/templates/static.area",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n{{{ [all[shadows+tiddlers]tag[$:/tags/RawStaticContent]!has[draft.of]] ||$:/core/templates/raw-static-tiddler}}}\n{{$:/core/templates/static.content||$:/core/templates/html-tiddler}}\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\nThis file contains an encrypted ~TiddlyWiki. Enable ~JavaScript and enter the decryption password when prompted.\n</$reveal>\n<!-- ensure splash screen isn't shown when JS is disabled -->\n`<style>\n.tc-remove-when-wiki-loaded {display: none;}\n</style>`\n"
},
"$:/core/templates/static.content": {
"title": "$:/core/templates/static.content",
"text": "<!-- For Google, and people without JavaScript-->\nThis [[TiddlyWiki|https://tiddlywiki.com]] contains the following tiddlers:\n\n<ul>\n<$list filter=<<saveTiddlerFilter>>>\n<li><$view field=\"title\" format=\"text\"></$view></li>\n</$list>\n</ul>\n"
},
"$:/core/templates/static.template.css": {
"title": "$:/core/templates/static.template.css",
"text": "{{$:/boot/boot.css||$:/core/templates/plain-text-tiddler}}\n\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n"
},
"$:/core/templates/static.template.html": {
"title": "$:/core/templates/static.template.html",
"type": "text/vnd.tiddlywiki-html",
"text": "\\define tv-wikilink-template() static/$uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\rules only filteredtranscludeinline transcludeinline\n<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"{{$:/core/templates/version}}\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>{{$:/core/wiki/title}}</title>\n<div id=\"styleArea\">\n{{$:/boot/boot.css||$:/core/templates/css-tiddler}}\n</div>\n<style type=\"text/css\">\n{{$:/core/ui/PageStylesheet||$:/core/templates/wikified-tiddler}}\n</style>\n</head>\n<body class=\"tc-body\">\n{{$:/StaticBanner||$:/core/templates/html-tiddler}}\n{{$:/core/ui/PageTemplate||$:/core/templates/html-tiddler}}\n</body>\n</html>\n"
},
"$:/core/templates/static.tiddler.html": {
"title": "$:/core/templates/static.tiddler.html",
"text": "\\define tv-wikilink-template() $uri_doubleencoded$.html\n\\define tv-config-toolbar-icons() no\n\\define tv-config-toolbar-text() no\n\\define tv-config-toolbar-class() tc-btn-invisible\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n`<!doctype html>\n<html>\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\">\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<link rel=\"stylesheet\" href=\"static.css\">\n<title>`<$view field=\"caption\"><$view field=\"title\"/></$view>: {{$:/core/wiki/title}}`</title>\n</head>\n<body class=\"tc-body\">\n`{{$:/StaticBanner||$:/core/templates/html-tiddler}}`\n<section class=\"tc-story-river\">\n`<$view tiddler=\"$:/core/ui/ViewTemplate\" format=\"htmlwikified\"/>`\n</section>\n</body>\n</html>\n`"
},
"$:/core/templates/store.area.template.html": {
"title": "$:/core/templates/store.area.template.html",
"text": "<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n`<div id=\"storeArea\" style=\"display:none;\">`\n<$list filter=<<saveTiddlerFilter>> template=\"$:/core/templates/html-div-tiddler\"/>\n<$list filter={{{ [<skinnySaveTiddlerFilter>] }}} template=\"$:/core/templates/html-div-skinny-tiddler\"/>\n`</div>`\n</$reveal>\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n`<!--~~ Encrypted tiddlers ~~-->`\n`<pre id=\"encryptedStoreArea\" type=\"text/plain\" style=\"display:none;\">`\n<$encrypt filter=<<saveTiddlerFilter>>/>\n`</pre>`\n</$reveal>"
},
"$:/core/templates/tid-tiddler": {
"title": "$:/core/templates/tid-tiddler",
"text": "<!--\n\nThis template is used for saving tiddlers in TiddlyWeb *.tid format\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>`\n`<$view field=\"text\" format=\"text\" />"
},
"$:/core/templates/tiddler-metadata": {
"title": "$:/core/templates/tiddler-metadata",
"text": "<!--\n\nThis template is used for saving tiddler metadata *.meta files\n\n--><$fields exclude='text bag' template='$name$: $value$\n'></$fields>"
},
"$:/core/templates/tiddlywiki5.html": {
"title": "$:/core/templates/tiddlywiki5.html",
"text": "<$set name=\"saveTiddlerAndShadowsFilter\" filter=\"[subfilter<saveTiddlerFilter>] [subfilter<saveTiddlerFilter>plugintiddlers[]]\">\n`<!doctype html>\n`{{$:/core/templates/MOTW.html}}`<html lang=\"`<$text text={{{ [{$:/language}get[name]] }}}/>`\">\n<head>\n<meta http-equiv=\"Content-Type\" content=\"text/html;charset=utf-8\" />\n<!--~~ Raw markup for the top of the head section ~~-->\n`{{{ [<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopHead]] ||$:/core/templates/raw-static-tiddler}}}`\n<meta http-equiv=\"X-UA-Compatible\" content=\"IE=Edge\"/>\n<meta name=\"application-name\" content=\"TiddlyWiki\" />\n<meta name=\"generator\" content=\"TiddlyWiki\" />\n<meta name=\"tiddlywiki-version\" content=\"`{{$:/core/templates/version}}`\" />\n<meta name=\"viewport\" content=\"width=device-width, initial-scale=1.0\" />\n<meta name=\"apple-mobile-web-app-capable\" content=\"yes\" />\n<meta name=\"apple-mobile-web-app-status-bar-style\" content=\"black-translucent\" />\n<meta name=\"mobile-web-app-capable\" content=\"yes\"/>\n<meta name=\"format-detection\" content=\"telephone=no\" />\n<meta name=\"copyright\" content=\"`{{$:/core/copyright.txt}}`\" />\n<link id=\"faviconLink\" rel=\"shortcut icon\" href=\"favicon.ico\">\n<title>`{{$:/core/wiki/title}}`</title>\n<!--~~ This is a Tiddlywiki file. The points of interest in the file are marked with this pattern ~~-->\n\n<!--~~ Raw markup ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/core/wiki/rawmarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkup]] ||$:/core/templates/plain-text-tiddler}}}\n{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified]] ||$:/core/templates/raw-static-tiddler}}}`\n</head>\n<body class=\"tc-body\">\n<!--~~ Raw markup for the top of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/TopBody]] ||$:/core/templates/raw-static-tiddler}}}`\n<!--~~ Static styles ~~-->\n<div id=\"styleArea\">\n`{{$:/boot/boot.css||$:/core/templates/css-tiddler}}`\n</div>\n<!--~~ Static content for Google and browsers without JavaScript ~~-->\n<noscript>\n<div id=\"splashArea\">\n`{{$:/core/templates/static.area}}`\n</div>\n</noscript>\n<!--~~ Ordinary tiddlers ~~-->\n`{{$:/core/templates/store.area.template.html}}`\n<!--~~ Library modules ~~-->\n<div id=\"libraryModules\" style=\"display:none;\">\n`{{{ [is[system]type[application/javascript]library[yes]] ||$:/core/templates/javascript-tiddler}}}`\n</div>\n<!--~~ Boot kernel prologue ~~-->\n<div id=\"bootKernelPrefix\" style=\"display:none;\">\n`{{ $:/boot/bootprefix.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Boot kernel ~~-->\n<div id=\"bootKernel\" style=\"display:none;\">\n`{{ $:/boot/boot.js ||$:/core/templates/javascript-tiddler}}`\n</div>\n<!--~~ Raw markup for the bottom of the body section ~~-->\n`{{{ [enlist<saveTiddlerAndShadowsFilter>tag[$:/tags/RawMarkupWikified/BottomBody]] ||$:/core/templates/raw-static-tiddler}}}`\n</body>\n</html>`\n"
},
"$:/core/templates/version": {
"title": "$:/core/templates/version",
"text": "<<version>>"
},
"$:/core/templates/wikified-tiddler": {
"title": "$:/core/templates/wikified-tiddler",
"text": "<$transclude />"
},
"$:/core/ui/AboveStory/tw2-plugin-check": {
"title": "$:/core/ui/AboveStory/tw2-plugin-check",
"tags": "$:/tags/AboveStory",
"text": "\\define lingo-base() $:/language/AboveStory/ClassicPlugin/\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]limit[1]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n<ul>\n\n<$list filter=\"[all[system+tiddlers]tag[systemConfig]]\">\n\n<li>\n\n<$link><$view field=\"title\"/></$link>\n\n</li>\n\n</$list>\n\n</ul>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/Actions/new-image": {
"title": "$:/core/ui/Actions/new-image",
"tags": "$:/tags/Actions",
"description": "create a new image tiddler",
"text": "\\define get-type()\nimage/$(imageType)$\n\\end\n<$vars imageType={{$:/config/NewImageType}}>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=<<get-type>> tags={{$:/config/NewTiddler/Tags!!tags}}/>\n</$vars>\n"
},
"$:/core/ui/Actions/new-journal": {
"title": "$:/core/ui/Actions/new-journal",
"tags": "$:/tags/Actions",
"description": "create a new journal tiddler",
"text": "<$vars journalTitleTemplate={{$:/config/NewJournal/Title}} journalTags={{$:/config/NewJournal/Tags!!tags}} journalText={{$:/config/NewJournal/Text}}>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$reveal type=\"nomatch\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text={{{ [<journalTitle>get[]] }}}/>\n</$reveal>\n<$reveal type=\"match\" state=<<journalTitle>> text=\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalTags>> text=<<journalText>>/>\n</$reveal>\n</$wikify>\n</$vars>\n"
},
"$:/core/ui/Actions/new-tiddler": {
"title": "$:/core/ui/Actions/new-tiddler",
"tags": "$:/tags/Actions",
"description": "create a new empty tiddler",
"text": "<$action-sendmessage $message=\"tm-new-tiddler\" tags={{$:/config/NewTiddler/Tags!!tags}}/>\n"
},
"$:/core/ui/AdvancedSearch/Filter": {
"title": "$:/core/ui/AdvancedSearch/Filter",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Filter/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<<lingo Filter/Hint>>\n\n<div class=\"tc-search tc-advanced-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]\"><$transclude/></$list>\n</div>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\n<div class=\"tc-search-results\">\n<<lingo Filter/Matches>>\n<$list filter={{$:/temp/advancedsearch}} template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/delete",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button popup=<<qualify \"$:/state/filterDeleteDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/delete-button}}\n</$button>\n</$reveal>\n\n<$reveal state=<<qualify \"$:/state/filterDeleteDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<div class=\"tc-dropdown-item-plain\">\n<$set name=\"resultCount\" value=\"\"\"<$count filter={{$:/temp/advancedsearch}}/>\"\"\">\nAre you sure you wish to delete <<resultCount>> tiddler(s)?\n</$set>\n</div>\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn\">\n<$action-deletetiddler $filter={{$:/temp/advancedsearch}}/>\nDelete these tiddlers\n</$button>\n</div>\n</div>\n</div>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/filterDropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</span>\n\n<$reveal state=<<qualify \"$:/state/filterDropdown\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Filter]]\"><$link to={{!!filter}}><$transclude field=\"description\"/></$link>\n</$list>\n</div>\n</div>\n</$linkcatcher>\n</$set>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Filter/FilterButtons/export": {
"title": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/export",
"tags": "$:/tags/AdvancedSearch/FilterButton",
"text": "<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$macrocall $name=\"exportButton\" exportFilter={{$:/temp/advancedsearch}} lingoBase=\"$:/language/Buttons/ExportTiddlers/\"/>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Shadows": {
"title": "$:/core/ui/AdvancedSearch/Shadows",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Shadows/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Shadows/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[all[shadows]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo Shadows/Matches>>\n\n<$list filter=\"[all[shadows]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/Standard": {
"title": "$:/core/ui/AdvancedSearch/Standard",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/Standard/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo Standard/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude/>\n</$list>\n\"\"\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n</$list>\n</$set>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/AdvancedSearch/System": {
"title": "$:/core/ui/AdvancedSearch/System",
"tags": "$:/tags/AdvancedSearch",
"caption": "{{$:/language/Search/System/Caption}}",
"text": "\\define lingo-base() $:/language/Search/\n<$linkcatcher to=\"$:/temp/advancedsearch\">\n\n<<lingo System/Hint>>\n\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}}/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n\n</$linkcatcher>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$list filter=\"[{$:/temp/advancedsearch}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[is[system]search{$:/temp/advancedsearch}] -[[$:/temp/advancedsearch]]\"/>\"\"\">\n\n<div class=\"tc-search-results\">\n\n<<lingo System/Matches>>\n\n<$list filter=\"[is[system]search{$:/temp/advancedsearch}sort[title]limit[250]] -[[$:/temp/advancedsearch]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n</div>\n\n</$set>\n\n</$list>\n\n</$reveal>\n\n<$reveal state=\"$:/temp/advancedsearch\" type=\"match\" text=\"\">\n\n</$reveal>\n"
},
"$:/AdvancedSearch": {
"title": "$:/AdvancedSearch",
"icon": "$:/core/images/advanced-search-button",
"color": "#bbb",
"text": "<div class=\"tc-advanced-search\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\">>\n</div>\n"
},
"$:/core/ui/AlertTemplate": {
"title": "$:/core/ui/AlertTemplate",
"text": "<div class=\"tc-alert\">\n<div class=\"tc-alert-toolbar\">\n<$button class=\"tc-btn-invisible\"><$action-deletetiddler $tiddler=<<currentTiddler>>/>{{$:/core/images/cancel-button}}</$button>\n</div>\n<div class=\"tc-alert-subtitle\">\n<$wikify name=\"format\" text=<<lingo Tiddler/DateFormat>>>\n<$view field=\"component\"/> - <$view field=\"modified\" format=\"date\" template=<<format>>/> <$reveal type=\"nomatch\" state=\"!!count\" text=\"\"><span class=\"tc-alert-highlight\">({{$:/language/Count}}: <$view field=\"count\"/>)</span></$reveal>\n</$wikify>\n</div>\n<div class=\"tc-alert-body\">\n\n<$transclude/>\n\n</div>\n</div>\n"
},
"$:/core/ui/BinaryWarning": {
"title": "$:/core/ui/BinaryWarning",
"text": "\\define lingo-base() $:/language/BinaryWarning/\n<<lingo Prompt>>\n"
},
"$:/core/ui/Components/plugin-info": {
"title": "$:/core/ui/Components/plugin-info",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define popup-state-macro()\n$(qualified-state)$-$(currentTiddler)$\n\\end\n\n\\define tabs-state-macro()\n$(popup-state)$-$(pluginInfoType)$\n\\end\n\n\\define plugin-icon-title()\n$(currentTiddler)$/icon\n\\end\n\n\\define plugin-disable-title()\n$:/config/Plugins/Disabled/$(currentTiddler)$\n\\end\n\n\\define plugin-table-body(type,disabledMessage,default-popup-state)\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\" default=\"\"\"$default-popup-state$\"\"\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<plugin-icon-title>>>\n<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\n</$transclude>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1>\n''<$text text={{{ [<currentTiddler>get[name]] ~[<currentTiddler>split[/]last[1]] }}}/>'': <$view field=\"description\"><$view field=\"title\"/></$view> $disabledMessage$\n</h1>\n<h2>\n<$view field=\"title\"/>\n</h2>\n<h2>\n<div><em><$view field=\"version\"/></em></div>\n</h2>\n</div>\n\\end\n\n\\define plugin-info(type,default-popup-state)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$link to={{!!title}} class=\"tc-plugin-info tc-plugin-info-disabled\">\n<<plugin-table-body type:\"$type$\" default-popup-state:\"\"\"$default-popup-state$\"\"\" disabledMessage:\"<$macrocall $name='lingo' title='Disabled/Status'/>\">>\n</$link>\n</$reveal>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>> default=\"\"\"$default-popup-state$\"\"\">\n<div class=\"tc-plugin-info-dropdown\">\n<div class=\"tc-plugin-info-dropdown-body\">\n<$list filter=\"[all[current]] -[[$:/core]]\">\n<div style=\"float:right;\">\n<$reveal type=\"nomatch\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"yes\" tooltip={{$:/language/ControlPanel/Plugins/Disable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Disable/Caption}}>\n<<lingo Disable/Caption>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<plugin-disable-title>> text=\"yes\">\n<$button set=<<plugin-disable-title>> setTo=\"no\" tooltip={{$:/language/ControlPanel/Plugins/Enable/Hint}} aria-label={{$:/language/ControlPanel/Plugins/Enable/Caption}}>\n<<lingo Enable/Caption>>\n</$button>\n</$reveal>\n</div>\n</$list>\n<$set name=\"tabsList\" filter=\"[<currentTiddler>list[]] contents\">\n<$macrocall $name=\"tabs\" state=<<tabs-state-macro>> tabsList=<<tabsList>> default={{{ [enlist<tabsList>] }}} template=\"$:/core/ui/PluginInfo\"/>\n</$set>\n</div>\n</div>\n</$reveal>\n</$set>\n\\end\n\n<$macrocall $name=\"plugin-info\" type=<<plugin-type>> default-popup-state=<<default-popup-state>>/>\n"
},
"$:/core/ui/Components/tag-link": {
"title": "$:/core/ui/Components/tag-link",
"text": "<$link>\n<$set name=\"backgroundColor\" value={{!!color}}>\n<span style=<<tag-styles>> class=\"tc-tag-label\">\n<$view field=\"title\" format=\"text\"/>\n</span>\n</$set>\n</$link>"
},
"$:/core/ui/ControlPanel/Advanced": {
"title": "$:/core/ui/ControlPanel/Advanced",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Advanced/Caption}}",
"text": "{{$:/language/ControlPanel/Advanced/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Advanced]!has[draft.of]]\" \"$:/core/ui/ControlPanel/TiddlerFields\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Appearance": {
"title": "$:/core/ui/ControlPanel/Appearance",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Appearance/Caption}}",
"text": "{{$:/language/ControlPanel/Appearance/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Appearance]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Theme\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Basics": {
"title": "$:/core/ui/ControlPanel/Basics",
"tags": "$:/tags/ControlPanel/Info",
"caption": "{{$:/language/ControlPanel/Basics/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\n\n\\define show-filter-count(filter)\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" $value=\"\"\"$filter$\"\"\"/>\n<$action-setfield $tiddler=\"$:/state/tab--1498284803\" $value=\"$:/core/ui/AdvancedSearch/Filter\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n''<$count filter=\"\"\"$filter$\"\"\"/>''\n{{$:/core/images/advanced-search-button}}\n</$button>\n\\end\n\n|<<lingo Version/Prompt>> |''<<version>>'' |\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/status/UserName\"><<lingo Username/Prompt>></$link> |<$edit-text tiddler=\"$:/status/UserName\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/AnimationDuration\"><<lingo AnimDuration/Prompt>></$link> |<$edit-text tiddler=\"$:/config/AnimationDuration\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\" class=\"tc-edit-texteditor\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n|<$link to=\"$:/language/DefaultNewTiddlerTitle\"><<lingo NewTiddler/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/language/DefaultNewTiddlerTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Title\"><<lingo NewJournal/Title/Prompt>></$link> |<$edit-text tiddler=\"$:/config/NewJournal/Title\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/config/NewJournal/Text\"><<lingo NewJournal/Text/Prompt>></$link> |<$edit tiddler=\"$:/config/NewJournal/Text\" tag=\"textarea\" class=\"tc-edit-texteditor\" default=\"\"/> |\n|<$link to=\"$:/config/NewTiddler/Tags\"><<lingo NewTiddler/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewTiddler/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/NewJournal/Tags\"><<lingo NewJournal/Tags/Prompt>></$link> |<$list filter=\"[[$:/config/NewJournal/Tags]]\" template=\"$:/core/ui/EditTemplate/tags\"/> |\n|<$link to=\"$:/config/AutoFocus\"><<lingo AutoFocus/Prompt>></$link> |{{$:/snippets/minifocusswitcher}} |\n|<<lingo Language/Prompt>> |{{$:/snippets/minilanguageswitcher}} |\n|<<lingo Tiddlers/Prompt>> |<<show-filter-count \"[!is[system]sort[title]]\">> |\n|<<lingo Tags/Prompt>> |<<show-filter-count \"[tags[]sort[title]]\">> |\n|<<lingo SystemTiddlers/Prompt>> |<<show-filter-count \"[is[system]sort[title]]\">> |\n|<<lingo ShadowTiddlers/Prompt>> |<<show-filter-count \"[all[shadows]sort[title]]\">> |\n|<<lingo OverriddenShadowTiddlers/Prompt>> |<<show-filter-count \"[is[tiddler]is[shadow]sort[title]]\">> |\n"
},
"$:/core/ui/ControlPanel/EditorTypes": {
"title": "$:/core/ui/ControlPanel/EditorTypes",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/EditorTypes/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/EditorTypes/\n\n<<lingo Hint>>\n\n<table>\n<tbody>\n<tr>\n<th><<lingo Type/Caption>></th>\n<th><<lingo Editor/Caption>></th>\n</tr>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/config/EditorTypeMappings/]sort[title]]\">\n<tr>\n<td>\n<$link>\n<$list filter=\"[all[current]removeprefix[$:/config/EditorTypeMappings/]]\">\n<$text text={{!!title}}/>\n</$list>\n</$link>\n</td>\n<td>\n<$view field=\"text\"/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/Info": {
"title": "$:/core/ui/ControlPanel/Info",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Info/Caption}}",
"text": "{{$:/language/ControlPanel/Info/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Info]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Basics\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/KeyboardShortcuts": {
"title": "$:/core/ui/ControlPanel/KeyboardShortcuts",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/KeyboardShortcuts/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/KeyboardShortcuts/\n\n\\define new-shortcut(title)\n<div class=\"tc-dropdown-item-plain\">\n<$edit-shortcut tiddler=\"$title$\" placeholder={{$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt}} focus=\"true\" style=\"width:auto;\"/> <$button>\n<<lingo Add/Caption>>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"[{$title$}]\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"$title$\"\n/>\n</$button>\n</div>\n\\end\n\n\\define shortcut-list-item(caption)\n<td>\n</td>\n<td style=\"text-align:right;font-size:0.7em;\">\n<<lingo Platform/$caption$>>\n</td>\n<td>\n<div style=\"position:relative;\">\n<$button popup=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> class=\"tc-btn-invisible\">\n{{$:/core/images/edit-button}}\n</$button>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutTitle)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\n<$reveal state=<<qualify \"$:/state/dropdown/$(shortcutTitle)$\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-block-dropdown-wrapper\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown tc-popup-keep\">\n<$list filter=\"[list[$(shortcutTitle)$!!text]sort[title]]\" variable=\"shortcut\" emptyMessage=\"\"\"\n<div class=\"tc-dropdown-item-plain\">\n//<<lingo NoShortcuts/Caption>>//\n</div>\n\"\"\">\n<div class=\"tc-dropdown-item-plain\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint}}>\n<$action-listops\n\t$tiddler=\"$(shortcutTitle)$\"\n\t$field=\"text\"\n\t$subfilter=\"+[remove<shortcut>]\"\n/>\n<small>{{$:/core/images/close-button}}</small>\n</$button>\n<kbd>\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts=<<shortcut>>/>\n</kbd>\n</div>\n</$list>\n<hr/>\n<$macrocall $name=\"new-shortcut\" title=<<qualify \"$:/state/new-shortcut/$(shortcutTitle)$\">>/>\n</div>\n</div>\n</$reveal>\n</div>\n</td>\n\\end\n\n\\define shortcut-list(caption,prefix)\n<tr>\n<$list filter=\"[[$prefix$$(shortcutName)$]]\" variable=\"shortcutTitle\">\n<<shortcut-list-item \"$caption$\">>\n</$list>\n</tr>\n\\end\n\n\\define shortcut-editor()\n<<shortcut-list \"All\" \"$:/config/shortcuts/\">>\n<<shortcut-list \"Mac\" \"$:/config/shortcuts-mac/\">>\n<<shortcut-list \"NonMac\" \"$:/config/shortcuts-not-mac/\">>\n<<shortcut-list \"Linux\" \"$:/config/shortcuts-linux/\">>\n<<shortcut-list \"NonLinux\" \"$:/config/shortcuts-not-linux/\">>\n<<shortcut-list \"Windows\" \"$:/config/shortcuts-windows/\">>\n<<shortcut-list \"NonWindows\" \"$:/config/shortcuts-not-windows/\">>\n\\end\n\n\\define shortcut-preview()\n<$macrocall $name=\"displayshortcuts\" $output=\"text/html\" shortcuts={{$(shortcutPrefix)$$(shortcutName)$}} prefix=\"<kbd>\" separator=\"</kbd> <kbd>\" suffix=\"</kbd>\"/>\n\\end\n\n\\define shortcut-item-inner()\n<tr>\n<td>\n<$reveal type=\"nomatch\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"open\"\n/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<dropdownStateTitle>> text=\"open\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield\n\t$tiddler=<<dropdownStateTitle>>\n\t$value=\"close\"\n/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n''<$text text=<<shortcutName>>/>''\n</td>\n<td>\n<$transclude tiddler=\"$:/config/ShortcutInfo/$(shortcutName)$\"/>\n</td>\n<td>\n<$list filter=\"$:/config/shortcuts/ $:/config/shortcuts-mac/ $:/config/shortcuts-not-mac/ $:/config/shortcuts-linux/ $:/config/shortcuts-not-linux/ $:/config/shortcuts-windows/ $:/config/shortcuts-not-windows/\" variable=\"shortcutPrefix\">\n<<shortcut-preview>>\n</$list>\n</td>\n</tr>\n<$set name=\"dropdownState\" value={{$(dropdownStateTitle)$}}>\n<$list filter=\"[<dropdownState>match[open]]\" variable=\"listItem\">\n<<shortcut-editor>>\n</$list>\n</$set>\n\\end\n\n\\define shortcut-item()\n<$set name=\"dropdownStateTitle\" value=<<qualify \"$:/state/dropdown/keyboardshortcut/$(shortcutName)$\">>>\n<<shortcut-item-inner>>\n</$set>\n\\end\n\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]removeprefix[$:/config/ShortcutInfo/]]\" variable=\"shortcutName\">\n<<shortcut-item>>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ControlPanel/LoadedModules": {
"title": "$:/core/ui/ControlPanel/LoadedModules",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/LoadedModules/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n<<lingo LoadedModules/Hint>>\n\n{{$:/snippets/modules}}\n"
},
"$:/core/ui/ControlPanel/Modals/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Modals/AddPlugins",
"subtitle": "{{$:/core/images/download-button}} {{$:/language/ControlPanel/Plugins/Add/Caption}}",
"text": "\\define install-plugin-actions()\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url={{!!url}} title={{$(assetInfo)$!!original-title}}/>\n<$set name=\"url\" value={{!!url}}>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$action-sendmessage $message=\"tm-load-plugin-from-library\" url=<<url>> title=<<dependency>>/>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define install-plugin-button()\n<div>\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$set name=\"reinstall-type\" value={{{ [<libraryVersion>compare:version:eq<installedVersion>then[tc-reinstall]] [<libraryVersion>compare:version:gt<installedVersion>then[tc-reinstall-upgrade]] [<libraryVersion>compare:version:lt<installedVersion>then[tc-reinstall-downgrade]] }}}>\n<$button actions=<<install-plugin-actions>> class={{{ [<assetInfo>get[original-title]has[version]then<reinstall-type>] tc-btn-invisible tc-install-plugin +[join[ ]] }}}>\n{{$:/core/images/download-button}}\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Install/Caption}}\">\n<$list filter=\"[<libraryVersion>compare:version:gt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[<libraryVersion>compare:version:lt<installedVersion>]\" variable=\"ignore\" emptyMessage=\"{{$:/language/ControlPanel/Plugins/Reinstall/Caption}}\">\n{{$:/language/ControlPanel/Plugins/Downgrade/Caption}}\n</$list>\n\"\"\">\n{{$:/language/ControlPanel/Plugins/Update/Caption}}\n</$list>\n</$list>\n</$button>\n<div>\n</div>\n<$reveal stateTitle=<<assetInfo>> stateField=\"requires-reload\" type=\"match\" text=\"yes\">{{$:/language/ControlPanel/Plugins/PluginWillRequireReload}}</$reveal>\n</$set>\n</$set>\n</$set>\n</div>\n\\end\n\n\\define popup-state-macro()\n$:/state/add-plugin-info/$(connectionTiddler)$/$(assetInfo)$\n\\end\n\n\\define display-plugin-info(type)\n<$set name=\"popup-state\" value=<<popup-state-macro>>>\n<div class=\"tc-plugin-info\">\n<div class=\"tc-plugin-info-chunk tc-plugin-info-toggle\">\n<$reveal type=\"nomatch\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"yes\">\n{{$:/core/images/chevron-right}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<popup-state>> text=\"yes\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" set=<<popup-state>> setTo=\"no\">\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-icon\">\n<$list filter=\"[<assetInfo>has[icon]]\" emptyMessage=\"\"\"<$transclude tiddler=\"$:/core/images/plugin-generic-$type$\"/>\"\"\">\n<img src={{$(assetInfo)$!!icon}}/>\n</$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-description\">\n<h1><strong><$text text={{{ [<assetInfo>get[name]] ~[<assetInfo>get[original-title]split[/]last[1]] }}}/></strong>: <$view tiddler=<<assetInfo>> field=\"description\"/></h1>\n<h2><$view tiddler=<<assetInfo>> field=\"original-title\"/></h2>\n<div><em><$view tiddler=<<assetInfo>> field=\"version\"/></em></div>\n<$list filter=\"[<assetInfo>get[original-title]get[version]]\" variable=\"installedVersion\"><div><em>{{$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint}}</em></div></$list>\n</div>\n<div class=\"tc-plugin-info-chunk tc-plugin-info-buttons\">\n<<install-plugin-button>>\n</div>\n</div>\n<$set name=\"original-title\" value={{{ [<assetInfo>get[original-title]] }}}>\n<$reveal type=\"match\" text=\"yes\" state=<<popup-state>>>\n<div class=\"tc-plugin-info-dropdown\">\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]] ~[<assetInfo>get[original-title]!is[tiddler]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-dropdown-message\">\n<$list filter=\"[<assetInfo>get[original-title]!is[tiddler]]\">\n{{$:/language/ControlPanel/Plugins/NotInstalled/Hint}}\n</$list>\n<$set name=\"currentTiddler\" value=<<assetInfo>>>\n<$list filter=\"[enlist{!!dependents}] [<currentTiddler>get[parent-plugin]] +[limit[1]]\" variable=\"ignore\">\n<div>\n{{$:/language/ControlPanel/Plugins/AlsoRequires}}\n<$list filter=\"[enlist{!!dependents}] [{!!parent-plugin}] +[sort[title]]\" variable=\"dependency\">\n<$text text=<<dependency>>/>\n</$list>\n</div>\n</$list>\n</$set>\n</div>\n</$list>\n<div class=\"tc-plugin-info-dropdown-body\">\n<$transclude tiddler=<<assetInfo>> field=\"readme\" mode=\"block\"/>\n</div>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<div class=\"tc-plugin-info-sub-plugins\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>sort[title]]\" variable=\"assetInfo\">\n<<display-plugin-info \"$type$\">>\n</$list>\n</div>\n</$list>\n</div>\n</$reveal>\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>limit[1]]\" variable=\"ignore\">\n<$reveal type=\"nomatch\" text=\"yes\" state=<<popup-state>> tag=\"div\" class=\"tc-plugin-info-sub-plugin-indicator\">\n<$wikify name=\"count\" text=\"\"\"<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]has[parent-plugin]parent-plugin<original-title>]\"/>\"\"\">\n<$button class=\"tc-btn-invisible\" set=<<popup-state>> setTo=\"yes\">\n{{$:/language/ControlPanel/Plugins/SubPluginPrompt}}\n</$button>\n</$wikify>\n</$reveal>\n</$list>\n</$set>\n</$set>\n\\end\n\n\\define load-plugin-library-button()\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-load-plugin-library\" url={{!!url}} infoTitlePrefix=\"$:/temp/RemoteAssetInfo/\"/>\n{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Plugins/OpenPluginLibrary}}\n</$button>\n\\end\n\n\\define display-server-assets(type)\n{{$:/language/Search/Search}}: <$edit-text tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" default=\"\" type=\"search\" tag=\"input\"/>\n<$reveal state=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" type=\"nomatch\" text=\"\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/temp/RemoteAssetSearch/$(currentTiddler)$\"\"\" $field=\"text\" $value=\"\"/>\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n<div class=\"tc-plugin-library-listing\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[$type$]search:author,description,original-title,readme,title{$:/temp/RemoteAssetSearch/$(currentTiddler)$}sort[title]]\" variable=\"assetInfo\">\n<$list filter=\"[[$:/temp/RemoteAssetSearch/$(currentTiddler)$]has[text]] ~[<assetInfo>!has[parent-plugin]]\" variable=\"ignore\"><!-- Hide sub-plugins if we're not searching -->\n<<display-plugin-info \"$type$\">>\n</$list>\n</$list>\n</div>\n\\end\n\n\\define display-server-connection()\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/ServerConnection]suffix{!!url}]\" variable=\"connectionTiddler\" emptyMessage=<<load-plugin-library-button>>>\n\n<$set name=\"transclusion\" value=<<connectionTiddler>>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Add/Updates]] [[$:/core/ui/ControlPanel/Plugins/Add/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Add/Themes]] [[$:/core/ui/ControlPanel/Plugins/Add/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Add/Plugins\">>\n\n</$set>\n\n</$list>\n\\end\n\n\\define close-library-button()\n<$reveal type='nomatch' state='$:/temp/ServerConnection/$(PluginLibraryURL)$' text=''>\n<$button class='tc-btn-big-green'>\n<$action-sendmessage $message=\"tm-unload-plugin-library\" url={{!!url}}/>\n{{$:/core/images/chevron-left}} {{$:/language/ControlPanel/Plugins/ClosePluginLibrary}}\n<$action-deletetiddler $filter=\"[prefix[$:/temp/ServerConnection/$(PluginLibraryURL)$]][prefix[$:/temp/RemoteAssetInfo/$(PluginLibraryURL)$]]\"/>\n</$button>\n</$reveal>\n\\end\n\n\\define plugin-library-listing()\n<div class=\"tc-tab-set\">\n<$set name=\"defaultTab\" value={{{ [all[tiddlers+shadows]tag[$:/tags/PluginLibrary]] }}}>\n<div class=\"tc-tab-buttons\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$button set=<<qualify \"$:/state/addplugins/tab\">> setTo=<<currentTiddler>> default=<<defaultTab>> selectedClass=\"tc-tab-selected\">\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude field=\"caption\"/>\n</$set>\n</$button>\n</$list>\n</div>\n<div class=\"tc-tab-divider\"/>\n<div class=\"tc-tab-content\">\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/PluginLibrary]]\">\n<$reveal type=\"match\" state=<<qualify \"$:/state/addplugins/tab\">> text=<<currentTiddler>> default=<<defaultTab>>>\n<h2><$link><$transclude field=\"caption\"><$view field=\"title\"/></$transclude></$link></h2>\n//<$view field=\"url\"/>//\n<$transclude mode=\"block\"/>\n<$set name=PluginLibraryURL value={{!!url}}>\n<<close-library-button>>\n</$set>\n<<display-server-connection>>\n</$reveal>\n</$list>\n</div>\n</$set>\n</div>\n\\end\n\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<div>\n<<plugin-library-listing>>\n</div>\n"
},
"$:/core/ui/ControlPanel/Palette": {
"title": "$:/core/ui/ControlPanel/Palette",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Palette/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/\n\n{{$:/snippets/paletteswitcher}}\n\n<$reveal type=\"nomatch\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"yes\"><<lingo ShowEditor/Caption>></$button>\n\n</$reveal>\n\n<$reveal type=\"match\" state=\"$:/state/ShowPaletteEditor\" text=\"yes\">\n\n<$button set=\"$:/state/ShowPaletteEditor\" setTo=\"no\"><<lingo HideEditor/Caption>></$button>\n{{$:/PaletteManager}}\n\n</$reveal>\n\n"
},
"$:/core/ui/ControlPanel/Parsing": {
"title": "$:/core/ui/ControlPanel/Parsing",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Parsing/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Parsing/\n\n\\define toggle(Type)\n<$checkbox\ntiddler=\"\"\"$:/config/WikiParserRules/$Type$/$(rule)$\"\"\"\nfield=\"text\"\nchecked=\"enable\"\nunchecked=\"disable\"\ndefault=\"enable\">\n<<rule>>\n</$checkbox>\n\\end\n\n\\define rules(type,Type)\n<$list filter=\"[wikiparserrules[$type$]]\" variable=\"rule\">\n<dd><<toggle $Type$>></dd>\n</$list>\n\\end\n\n<<lingo Hint>>\n\n<dl>\n<dt><<lingo Pragma/Caption>></dt>\n<<rules pragma Pragma>>\n<dt><<lingo Inline/Caption>></dt>\n<<rules inline Inline>>\n<dt><<lingo Block/Caption>></dt>\n<<rules block Block>>\n</dl>"
},
"$:/core/ui/ControlPanel/Plugins/Add/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[language]]\"/>)",
"text": "<<display-server-assets language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[plugin]]\"/>)",
"text": "<<display-server-assets plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}original-plugin-type[theme]]\"/>)",
"text": "<<display-server-assets theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Add/Updates": {
"title": "$:/core/ui/ControlPanel/Plugins/Add/Updates",
"caption": "<$importvariables filter=\"$:/core/ui/ControlPanel/Plugins/Add/Updates\">{{$:/language/ControlPanel/Plugins/Updates/Caption}} (<<update-count>>)</$importvariables>",
"text": "\\define each-updateable-plugin(body)\n<$list filter=\"[all[tiddlers+shadows]tag[$:/tags/RemoteAssetInfo]server-url{!!url}sort[title]]\" variable=\"assetInfo\">\n<$set name=\"libraryVersion\" value={{{ [<assetInfo>get[version]] }}}>\n<$list filter=\"[<assetInfo>get[original-title]has[version]!version<libraryVersion>]\" variable=\"ignore\">\n<$set name=\"installedVersion\" value={{{ [<assetInfo>get[original-title]get[version]] }}}>\n<$list filter=\"[<installedversion>!match<libraryVersion>]\" variable=\"ignore\">\n$body$\n</$list>\n</$set>\n</$list>\n</$set>\n</$list>\n\\end\n\n\\define update-all-actions()\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<<install-plugin-actions>>\n\"\"\"/>\n\\end\n\n\\define update-count()\n<$wikify name=\"count-filter\" text=<<each-updateable-plugin \"[[<$text text=<<assetInfo>>/>]]\">>><$count filter=<<count-filter>>/></$wikify>\n\\end\n\n<$button actions=<<update-all-actions>> class=\"tc-btn-invisible tc-install-plugin tc-reinstall-upgrade\">\n{{$:/core/images/download-button}} {{||$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption}}\n</$button>\n\n<div class=\"tc-plugin-library-listing\">\n<$macrocall $name=\"each-updateable-plugin\" body=\"\"\"\n<$macrocall $name=\"display-plugin-info\" type={{{ [<assetInfo>get[original-plugin-type]] }}}/>\n\"\"\"/>\n</div>\n"
},
"$:/core/ui/ControlPanel/Plugins/AddPlugins": {
"title": "$:/core/ui/ControlPanel/Plugins/AddPlugins",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n<$button message=\"tm-modal\" param=\"$:/core/ui/ControlPanel/Modals/AddPlugins\" tooltip={{$:/language/ControlPanel/Plugins/Add/Hint}} class=\"tc-btn-big-green tc-primary-btn\">\n{{$:/core/images/download-button}} <<lingo Add/Caption>>\n</$button>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Languages": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Languages",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[language]]\"/>)",
"text": "<<plugin-table language>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[plugin]]\"/>)",
"text": "<<plugin-table plugin>>\n"
},
"$:/core/ui/ControlPanel/Plugins/Installed/Themes": {
"title": "$:/core/ui/ControlPanel/Plugins/Installed/Themes",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}} (<$count filter=\"[!has[draft.of]plugin-type[theme]]\"/>)",
"text": "<<plugin-table theme>>\n"
},
"$:/core/ui/ControlPanel/Plugins": {
"title": "$:/core/ui/ControlPanel/Plugins",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Plugins/\n\n\\define plugin-table(type)\n<$set name=\"plugin-type\" value=\"\"\"$type$\"\"\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n<$list filter=\"[!has[draft.of]plugin-type[$type$]sort[title]]\" emptyMessage=<<lingo \"Empty/Hint\">> template=\"$:/core/ui/Components/plugin-info\"/>\n</$set>\n</$set>\n\\end\n\n{{$:/core/ui/ControlPanel/Plugins/AddPlugins}}\n\n<<lingo Installed/Hint>>\n\n<<tabs \"[[$:/core/ui/ControlPanel/Plugins/Installed/Plugins]] [[$:/core/ui/ControlPanel/Plugins/Installed/Themes]] [[$:/core/ui/ControlPanel/Plugins/Installed/Languages]]\" \"$:/core/ui/ControlPanel/Plugins/Installed/Plugins\">>\n"
},
"$:/core/ui/ControlPanel/Saving/DownloadSaver": {
"title": "$:/core/ui/ControlPanel/Saving/DownloadSaver",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/DownloadSaver/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/DownloadSaver/\n\n<<lingo Hint>>\n\n!! <$link to=\"$:/config/DownloadSaver/AutoSave\"><<lingo AutoSave/Hint>></$link>\n\n<$checkbox tiddler=\"$:/config/DownloadSaver/AutoSave\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <<lingo AutoSave/Description>> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Saving/General": {
"title": "$:/core/ui/ControlPanel/Saving/General",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/General/Caption}}",
"list-before": "",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n{{$:/language/ControlPanel/Saving/General/Hint}}\n\n!! <$link to=\"$:/config/AutoSave\"><<lingo AutoSave/Caption>></$link>\n\n<<lingo AutoSave/Hint>>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"yes\"> <<lingo AutoSave/Enabled/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/AutoSave\" value=\"no\"> <<lingo AutoSave/Disabled/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Saving/GitHub": {
"title": "$:/core/ui/ControlPanel/Saving/GitHub",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitHub/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitHub\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitHub/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitHub/Password>> |<$password name=\"github\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitHub/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitHub/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitHub/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitHub/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitHub/ServerURL\" default=\"https://api.github.com\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/GitLab": {
"title": "$:/core/ui/ControlPanel/Saving/GitLab",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/GitLab/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~GitLab\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/GitLab/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo GitLab/Password>> |<$password name=\"gitlab\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/GitLab/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/GitLab/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/GitLab/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/GitLab/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/GitLab/ServerURL\" default=\"https://gitlab.com/api/v4\" tag=\"input\"/> |"
},
"$:/core/ui/ControlPanel/Saving/TiddlySpot": {
"title": "$:/core/ui/ControlPanel/Saving/TiddlySpot",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/TiddlySpot/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/TiddlySpot/\n\n\\define backupURL()\nhttp://$(userName)$.tiddlyspot.com/backup/\n\\end\n\\define backupLink()\n<$reveal type=\"nomatch\" state=\"$:/UploadName\" text=\"\">\n<$set name=\"userName\" value={{$:/UploadName}}>\n<$reveal type=\"match\" state=\"$:/UploadURL\" text=\"\">\n<<backupURL>>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/UploadURL\" text=\"\">\n<$macrocall $name=resolvePath source={{$:/UploadBackupDir}} root={{$:/UploadURL}}>>\n</$reveal>\n</$set>\n</$reveal>\n\\end\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/UploadName\" default=\"\" tag=\"input\"/> |\n|<<lingo Password>> |<$password name=\"upload\"/> |\n|<<lingo Backups>> |<<backupLink>> |\n\n''<<lingo Advanced/Heading>>''\n\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/UploadURL\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/UploadFilename\" default=\"index.html\" tag=\"input\"/> |\n|<<lingo UploadDir>> |<$edit-text tiddler=\"$:/UploadDir\" default=\".\" tag=\"input\"/> |\n|<<lingo BackupDir>> |<$edit-text tiddler=\"$:/UploadBackupDir\" default=\".\" tag=\"input\"/> |\n\n<<lingo TiddlySpot/Hint>>"
},
"$:/core/ui/ControlPanel/Saving/Gitea": {
"title": "$:/core/ui/ControlPanel/Saving/Gitea",
"tags": "$:/tags/ControlPanel/Saving",
"caption": "{{$:/language/ControlPanel/Saving/GitService/Gitea/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Saving/GitService/\n\\define service-name() ~Gitea\n\n<<lingo Description>>\n\n|<<lingo UserName>> |<$edit-text tiddler=\"$:/Gitea/Username\" default=\"\" tag=\"input\"/> |\n|<<lingo Gitea/Password>> |<$password name=\"Gitea\"/> |\n|<<lingo Repo>> |<$edit-text tiddler=\"$:/Gitea/Repo\" default=\"\" tag=\"input\"/> |\n|<<lingo Branch>> |<$edit-text tiddler=\"$:/Gitea/Branch\" default=\"master\" tag=\"input\"/> |\n|<<lingo Path>> |<$edit-text tiddler=\"$:/Gitea/Path\" default=\"\" tag=\"input\"/> |\n|<<lingo Filename>> |<$edit-text tiddler=\"$:/Gitea/Filename\" default=\"\" tag=\"input\"/> |\n|<<lingo ServerURL>> |<$edit-text tiddler=\"$:/Gitea/ServerURL\" default=\"https://gitea/api/v1\" tag=\"input\"/> |\n"
},
"$:/core/ui/ControlPanel/Saving": {
"title": "$:/core/ui/ControlPanel/Saving",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Saving/Caption}}",
"text": "{{$:/language/ControlPanel/Saving/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Saving]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Saving/General\">>\n</div>\n"
},
"$:/core/buttonstyles/Borderless": {
"title": "$:/core/buttonstyles/Borderless",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless}}",
"text": "tc-btn-invisible"
},
"$:/core/buttonstyles/Boxed": {
"title": "$:/core/buttonstyles/Boxed",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed}}",
"text": "tc-btn-boxed"
},
"$:/core/buttonstyles/Rounded": {
"title": "$:/core/buttonstyles/Rounded",
"tags": "$:/tags/ToolbarButtonStyle",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded}}",
"text": "tc-btn-rounded"
},
"$:/core/ui/ControlPanel/Settings/CamelCase": {
"title": "$:/core/ui/ControlPanel/Settings/CamelCase",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/CamelCase/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/CamelCase/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/WikiParserRules/Inline/wikilink\" field=\"text\" checked=\"enable\" unchecked=\"disable\" default=\"enable\"> <$link to=\"$:/config/WikiParserRules/Inline/wikilink\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultMoreSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultMoreSidebarTab/\n\n<$link to=\"$:/config/DefaultMoreSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultMoreSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/DefaultSidebarTab": {
"title": "$:/core/ui/ControlPanel/Settings/DefaultSidebarTab",
"caption": "{{$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption}}",
"tags": "$:/tags/ControlPanel/Settings",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/DefaultSidebarTab/\n\n<$link to=\"$:/config/DefaultSidebarTab\"><<lingo Hint>></$link>\n\n<$select tiddler=\"$:/config/DefaultSidebarTab\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\">\n<option value=<<currentTiddler>>><$transclude field=\"caption\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Settings/EditorToolbar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/EditorToolbar/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/TextEditor/EnableToolbar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/TextEditor/EnableToolbar\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/InfoPanelMode": {
"title": "$:/core/ui/ControlPanel/Settings/InfoPanelMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/InfoPanelMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/InfoPanelMode/\n<$link to=\"$:/config/TiddlerInfo/Mode\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"popup\"> <<lingo Popup/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/TiddlerInfo/Mode\" value=\"sticky\"> <<lingo Sticky/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/LinkToBehaviour": {
"title": "$:/core/ui/ControlPanel/Settings/LinkToBehaviour",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/LinkToBehaviour/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/LinkToBehaviour/\n\n<$link to=\"$:/config/Navigation/openLinkFromInsideRiver\"><<lingo \"InsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromInsideRiver\">\n <option value=\"above\"><<lingo \"OpenAbove\">></option>\n <option value=\"below\"><<lingo \"OpenBelow\">></option>\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n\n<$link to=\"$:/config/Navigation/openLinkFromOutsideRiver\"><<lingo \"OutsideRiver/Hint\">></$link>\n\n<$select tiddler=\"$:/config/Navigation/openLinkFromOutsideRiver\">\n <option value=\"top\"><<lingo \"OpenAtTop\">></option>\n <option value=\"bottom\"><<lingo \"OpenAtBottom\">></option>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/MissingLinks": {
"title": "$:/core/ui/ControlPanel/Settings/MissingLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/MissingLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/MissingLinks/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/MissingLinks\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/MissingLinks\"><<lingo Description>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationAddressBar": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationAddressBar",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationAddressBar/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationAddressBar/\n\n<$link to=\"$:/config/Navigation/UpdateAddressBar\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permaview\"> <<lingo Permaview/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"permalink\"> <<lingo Permalink/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateAddressBar\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationHistory": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationHistory",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationHistory/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationHistory/\n<$link to=\"$:/config/Navigation/UpdateHistory\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Navigation/UpdateHistory\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode": {
"title": "$:/core/ui/ControlPanel/Settings/NavigationPermalinkviewMode",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/NavigationPermalinkviewMode/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/CopyToClipboard\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/CopyToClipboard\"><<lingo CopyToClipboard/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Navigation/Permalinkview/UpdateAddressBar\"><<lingo UpdateAddressBar/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation": {
"title": "$:/core/ui/ControlPanel/Settings/PerformanceInstrumentation",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/PerformanceInstrumentation/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Performance/Instrumentation\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Performance/Instrumentation\"><<lingo Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings/TitleLinks": {
"title": "$:/core/ui/ControlPanel/Settings/TitleLinks",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/TitleLinks/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/TitleLinks/\n<$link to=\"$:/config/Tiddlers/TitleLinks\"><<lingo Hint>></$link>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"yes\"> <<lingo Yes/Description>> </$radio>\n\n<$radio tiddler=\"$:/config/Tiddlers/TitleLinks\" value=\"no\"> <<lingo No/Description>> </$radio>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtonStyle",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtonStyle/\n<$link to=\"$:/config/Toolbar/ButtonClass\"><<lingo \"Hint\">></$link>\n\n<$select tiddler=\"$:/config/Toolbar/ButtonClass\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ToolbarButtonStyle]]\">\n<option value={{!!text}}>{{!!caption}}</option>\n</$list>\n</$select>\n"
},
"$:/core/ui/ControlPanel/Settings/ToolbarButtons": {
"title": "$:/core/ui/ControlPanel/Settings/ToolbarButtons",
"tags": "$:/tags/ControlPanel/Settings",
"caption": "{{$:/language/ControlPanel/Settings/ToolbarButtons/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/ToolbarButtons/\n<<lingo Hint>>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Icons\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> <$link to=\"$:/config/Toolbar/Icons\"><<lingo Icons/Description>></$link> </$checkbox>\n\n<$checkbox tiddler=\"$:/config/Toolbar/Text\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> <$link to=\"$:/config/Toolbar/Text\"><<lingo Text/Description>></$link> </$checkbox>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/StoryView": {
"title": "$:/core/ui/ControlPanel/StoryView",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/StoryView/Caption}}",
"text": "{{$:/snippets/viewswitcher}}\n"
},
"$:/core/ui/ControlPanel/Stylesheets": {
"title": "$:/core/ui/ControlPanel/Stylesheets",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/Stylesheets/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo Stylesheets/Hint>>\n\n{{$:/snippets/peek-stylesheets}}\n"
},
"$:/core/ui/ControlPanel/Theme": {
"title": "$:/core/ui/ControlPanel/Theme",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Theme/Caption}}",
"text": "{{$:/snippets/themeswitcher}}\n"
},
"$:/core/ui/ControlPanel/TiddlerFields": {
"title": "$:/core/ui/ControlPanel/TiddlerFields",
"tags": "$:/tags/ControlPanel/Advanced",
"caption": "{{$:/language/ControlPanel/TiddlerFields/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\n<<lingo TiddlerFields/Hint>>\n\n{{$:/snippets/allfields}}"
},
"$:/core/ui/ControlPanel/Toolbars/EditToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>"
},
"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"><$transclude tiddler={{!!icon}}/></span> <$transclude field=\"caption\"/> -- <i class=\"tc-muted\"><$transclude field=\"description\"/></i>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/EditorToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/EditorToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/EditorToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/EditorToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/EditorToolbar/Hint}}\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/EditorToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/EditorItemTemplate\"/>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ItemTemplate": {
"title": "$:/core/ui/ControlPanel/Toolbars/ItemTemplate",
"text": "\\define config-title()\n$(config-base)$$(currentTiddler)$\n\\end\n\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span>\n</$draggable>\n"
},
"$:/core/ui/ControlPanel/Toolbars/PageControls": {
"title": "$:/core/ui/ControlPanel/Toolbars/PageControls",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/PageControls/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/PageControlButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/PageControls/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/PageControls\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars/ViewToolbar": {
"title": "$:/core/ui/ControlPanel/Toolbars/ViewToolbar",
"tags": "$:/tags/ControlPanel/Toolbars",
"caption": "{{$:/language/ControlPanel/Toolbars/ViewToolbar/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\n\\define config-base() $:/config/ViewToolbarButtons/Visibility/\n\n{{$:/language/ControlPanel/Toolbars/ViewToolbar/Hint}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$macrocall $name=\"list-tagged-draggable\" tag=\"$:/tags/ViewToolbar\" itemTemplate=\"$:/core/ui/ControlPanel/Toolbars/ItemTemplate\"/>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/ControlPanel/Toolbars": {
"title": "$:/core/ui/ControlPanel/Toolbars",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ControlPanel/Toolbars/Caption}}",
"text": "{{$:/language/ControlPanel/Toolbars/Hint}}\n\n<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Toolbars]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Toolbars/ViewToolbar\" \"$:/state/tabs/controlpanel/toolbars\" \"tc-vertical\">>\n</div>\n"
},
"$:/ControlPanel": {
"title": "$:/ControlPanel",
"icon": "$:/core/images/options-button",
"color": "#bbb",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Info\">>\n</div>\n"
},
"$:/core/ui/DefaultSearchResultList": {
"title": "$:/core/ui/DefaultSearchResultList",
"tags": "$:/tags/SearchResults",
"caption": "{{$:/language/Search/DefaultResults/Caption}}",
"text": "\\define searchResultList()\n//<small>{{$:/language/Search/Matches/Title}}</small>//\n\n<$list filter=\"[!is[system]search:title{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n//<small>{{$:/language/Search/Matches/All}}</small>//\n\n<$list filter=\"[!is[system]search{$(searchTiddler)$}sort[title]limit[250]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n\n\\end\n<<searchResultList>>\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-current": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-current",
"tags": "$:/tags/EditPreview",
"caption": "differences from current",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/diffs-shadow": {
"title": "$:/core/ui/EditTemplate/body/preview/diffs-shadow",
"tags": "$:/tags/EditPreview",
"caption": "differences from shadow (if any)",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"text": "<$list filter=\"[<currentTiddler>!is[image]]\" emptyMessage={{$:/core/ui/EditTemplate/body/preview/output}}>\n\n<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle={{{ [{!!draft.of}shadowsource[]] }}} sourceSubTiddlerTitle={{!!draft.of}} destTiddlerTitle=<<currentTiddler>>/>\n\n</$list>\n\n"
},
"$:/core/ui/EditTemplate/body/preview/output": {
"title": "$:/core/ui/EditTemplate/body/preview/output",
"tags": "$:/tags/EditPreview",
"caption": "{{$:/language/EditTemplate/Body/Preview/Type/Output}}",
"text": "\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$set name=\"tv-tiddler-preview\" value=\"yes\">\n\n<$transclude />\n\n</$set>\n"
},
"$:/state/showeditpreview": {
"title": "$:/state/showeditpreview",
"text": "no"
},
"$:/core/ui/EditTemplate/body/editor": {
"title": "$:/core/ui/EditTemplate/body/editor",
"text": "<$edit\n\n field=\"text\"\n class=\"tc-edit-texteditor tc-edit-texteditor-body\"\n placeholder={{$:/language/EditTemplate/Body/Placeholder}}\n tabindex={{$:/config/EditTabIndex}}\n focus={{{ [{$:/config/AutoFocus}match[text]then[true]] ~[[false]] }}}\n\n><$set\n\n name=\"targetTiddler\"\n value=<<currentTiddler>>\n\n><$list\n\n filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]]\"\n\n><$reveal\n\n type=\"nomatch\"\n state=<<config-visibility-title>>\n text=\"hide\"\n class=\"tc-text-editor-toolbar-item-wrapper\"\n\n><$transclude\n\n tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\"\n mode=\"inline\"\n\n/></$reveal></$list></$set></$edit>\n"
},
"$:/core/ui/EditTemplate/body/toolbar/button": {
"title": "$:/core/ui/EditTemplate/body/toolbar/button",
"text": "\\define toolbar-button-icon()\n<$list\n\n filter=\"[all[current]!has[custom-icon]]\"\n variable=\"no-custom-icon\"\n\n><$transclude\n\n tiddler={{!!icon}}\n\n/></$list>\n\\end\n\n\\define toolbar-button-tooltip()\n{{!!description}}<$macrocall $name=\"displayshortcuts\" $output=\"text/plain\" shortcuts={{!!shortcuts}} prefix=\"` - [\" separator=\"] [\" suffix=\"]`\"/>\n\\end\n\n\\define toolbar-button()\n<$list\n\n filter={{!!condition}}\n variable=\"list-condition\"\n\n><$wikify\n\n name=\"tooltip-text\"\n text=<<toolbar-button-tooltip>>\n mode=\"inline\"\n output=\"text\"\n\n><$list\n\n filter=\"[all[current]!has[dropdown]]\"\n variable=\"no-dropdown\"\n\n><$button\n\n class=\"tc-btn-invisible $(buttonClasses)$\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button></$list><$list\n\n filter=\"[all[current]has[dropdown]]\"\n variable=\"dropdown\"\n\n><$set\n\n name=\"dropdown-state\"\n value=<<qualify \"$:/state/EditorToolbarDropdown\">>\n\n><$button\n\n popup=<<dropdown-state>>\n class=\"tc-popup-keep tc-btn-invisible $(buttonClasses)$\"\n selectedClass=\"tc-selected\"\n tooltip=<<tooltip-text>>\n actions={{!!actions}}\n\n><span\n\n data-tw-keyboard-shortcut={{!!shortcuts}}\n\n/><<toolbar-button-icon>><$transclude\n\n tiddler=<<currentTiddler>>\n field=\"text\"\n\n/></$button><$reveal\n\n state=<<dropdown-state>>\n type=\"popup\"\n position=\"below\"\n animate=\"yes\"\n tag=\"span\"\n\n><div\n\n class=\"tc-drop-down tc-popup-keep\"\n\n><$transclude\n\n tiddler={{!!dropdown}}\n mode=\"block\"\n\n/></div></$reveal></$set></$list></$wikify></$list>\n\\end\n\n\\define toolbar-button-outer()\n<$set\n\n name=\"buttonClasses\"\n value={{!!button-classes}}\n\n><<toolbar-button>></$set>\n\\end\n\n<<toolbar-button-outer>>"
},
"$:/core/ui/EditTemplate/body": {
"title": "$:/core/ui/EditTemplate/body",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Body/\n\\define config-visibility-title()\n$:/config/EditorToolbarButtons/Visibility/$(currentTiddler)$\n\\end\n<$list filter=\"[all[current]has[_canonical_uri]]\">\n\n<div class=\"tc-message-box\">\n\n<<lingo External/Hint>>\n\n<a href={{!!_canonical_uri}}><$text text={{!!_canonical_uri}}/></a>\n\n<$edit-text field=\"_canonical_uri\" class=\"tc-edit-fields\" tabindex={{$:/config/EditTabIndex}}></$edit-text>\n\n</div>\n\n</$list>\n\n<$list filter=\"[all[current]!has[_canonical_uri]]\">\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\">\n\n<div class=\"tc-tiddler-preview\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n<div class=\"tc-tiddler-preview-preview\">\n\n<$transclude tiddler={{$:/state/editpreviewtype}} mode=\"inline\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/preview/output\" mode=\"inline\"/>\n\n</$transclude>\n\n</div>\n\n</div>\n\n</$reveal>\n\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\">\n\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/editor\" mode=\"inline\"/>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/EditTemplate/controls": {
"title": "$:/core/ui/EditTemplate/controls",
"tags": "$:/tags/EditTemplate",
"text": "\\define config-title()\n$:/config/EditToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title tc-tiddler-edit-title\">\n<$view field=\"title\"/>\n<span class=\"tc-tiddler-controls tc-titlebar\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$transclude tiddler=<<listItem>>/></$reveal></$list></span>\n<div style=\"clear: both;\"></div>\n</div>\n"
},
"$:/core/ui/EditTemplate/fields": {
"title": "$:/core/ui/EditTemplate/fields",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\define config-title()\n$:/config/EditTemplateFields/Visibility/$(currentField)$\n\\end\n\n\\define config-filter()\n[[hide]] -[title{$(config-title)$}]\n\\end\n\n\\define current-tiddler-new-field-selector()\n[data-tiddler-title=\"$(currentTiddlerCSSescaped)$\"] .tc-edit-field-add-name input\n\\end\n\n\\define new-field-actions()\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=<<current-tiddler-new-field-selector>>/>\n\\end\n\n\\define new-field()\n<$vars name={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$reveal type=\"nomatch\" text=\"\" default=<<name>>>\n<$button tooltip=<<lingo Fields/Add/Button/Hint>>>\n<$action-sendmessage $message=\"tm-add-field\"\n$name=<<name>>\n$value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n<$reveal type=\"match\" text=\"\" default=<<name>>>\n<$button>\n<<lingo Fields/Add/Button>>\n</$button>\n</$reveal>\n</$vars>\n\\end\n\\whitespace trim\n\n<div class=\"tc-edit-fields\">\n<table class=\"tc-edit-fields\">\n<tbody>\n<$list filter=\"[all[current]fields[]] +[sort[title]]\" variable=\"currentField\" storyview=\"pop\">\n<$list filter=<<config-filter>> variable=\"temp\">\n<tr class=\"tc-edit-field\">\n<td class=\"tc-edit-field-name\">\n<$text text=<<currentField>>/>:</td>\n<td class=\"tc-edit-field-value\">\n<$edit-text tiddler=<<currentTiddler>> field=<<currentField>> placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} tabindex={{$:/config/EditTabIndex}}/>\n</td>\n<td class=\"tc-edit-field-remove\">\n<$button class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Field/Remove/Hint}} aria-label={{$:/language/EditTemplate/Field/Remove/Caption}}>\n<$action-deletefield $field=<<currentField>>/>\n{{$:/core/images/delete-button}}\n</$button>\n</td>\n</tr>\n</$list>\n</$list>\n</tbody>\n</table>\n</div>\n\n<$fieldmangler>\n<div class=\"tc-edit-field-add\">\n<em class=\"tc-edit\">\n<<lingo Fields/Add/Prompt>> \n</em>\n<span class=\"tc-edit-field-add-name\">\n<$edit-text tiddler=<<newFieldNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Name/Placeholder}} focusPopup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[fields]then[true]] ~[[false]] }}}/>\n</span> \n<$button popup=<<qualify \"$:/state/popup/field-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Field/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Field/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> \n<$reveal state=<<qualify \"$:/state/popup/field-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$linkcatcher to=<<newFieldNameTiddler>>>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/User>>\n</div>\n<$set name=\"newFieldName\" value={{{ [<newFieldNameTiddler>get[text]] }}}>\n<$list filter=\"[!is[shadow]!is[system]fields[]search:title<newFieldName>sort[]] -created -creator -draft.of -draft.title -modified -modifier -tags -text -title -type\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n<div class=\"tc-dropdown-item\">\n<<lingo Fields/Add/Dropdown/System>>\n</div>\n<$list filter=\"[fields[]search:title<newFieldName>sort[]] -[!is[shadow]!is[system]fields[]]\" variable=\"currentField\">\n<$link to=<<currentField>>>\n<$text text=<<currentField>>/>\n</$link>\n</$list>\n</$set>\n</$linkcatcher>\n</$set>\n</div>\n</$reveal>\n<span class=\"tc-edit-field-add-value\">\n<$set name=\"currentTiddlerCSSescaped\" value={{{ [<currentTiddler>escapecss[]] }}}>\n<$keyboard key=\"((add-field))\" actions=<<new-field-actions>>>\n<$edit-text tiddler=<<newFieldValueTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Fields/Add/Value/Placeholder}} class=\"tc-edit-texteditor\" tabindex={{$:/config/EditTabIndex}}/>\n</$keyboard>\n</$set>\n</span> \n<span class=\"tc-edit-field-add-button\">\n<$macrocall $name=\"new-field\"/>\n</span>\n</div>\n</$fieldmangler>\n"
},
"$:/core/ui/EditTemplate/shadow": {
"title": "$:/core/ui/EditTemplate/shadow",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/Shadow/\n\\define pluginLinkBody()\n<$link to=\"\"\"$(pluginTitle)$\"\"\">\n<$text text=\"\"\"$(pluginTitle)$\"\"\"/>\n</$link>\n\\end\n<$list filter=\"[all[current]get[draft.of]is[shadow]!is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo Warning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>\n\n<$list filter=\"[all[current]get[draft.of]is[shadow]is[tiddler]]\">\n\n<$list filter=\"[all[current]shadowsource[]]\" variable=\"pluginTitle\">\n\n<$set name=\"pluginLink\" value=<<pluginLinkBody>>>\n<div class=\"tc-message-box\">\n\n<<lingo OverriddenWarning>>\n\n</div>\n</$set>\n</$list>\n\n</$list>"
},
"$:/core/ui/EditTemplate/tags": {
"title": "$:/core/ui/EditTemplate/tags",
"tags": "$:/tags/EditTemplate",
"text": "\\whitespace trim\n\n\\define lingo-base() $:/language/EditTemplate/\n\n\\define tag-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-body-inner(colour,fallbackTarget,colourA,colourB,icon)\n\\whitespace trim\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<span style=<<tag-styles>> class=\"tc-tag-label tc-tag-list-item\">\n<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view field=\"title\" format=\"text\" />\n<$button message=\"tm-remove-tag\" param={{!!title}} class=\"tc-btn-invisible tc-remove-tag-button\">{{$:/core/images/close-button}}</$button>\n</span>\n</$vars>\n\\end\n\n\\define tag-body(colour,palette,icon)\n<$macrocall $name=\"tag-body-inner\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} icon=\"\"\"$icon$\"\"\"/>\n\\end\n\n<div class=\"tc-edit-tags\">\n<$fieldmangler>\n<$list filter=\"[all[current]tags[]sort[title]]\" storyview=\"pop\">\n<$macrocall $name=\"tag-body\" colour={{!!color}} palette={{$:/palette}} icon={{!!icon}}/>\n</$list>\n<$set name=\"tabIndex\" value={{$:/config/EditTabIndex}}>\n<$macrocall $name=\"tag-picker\"/>\n</$set>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/EditTemplate/title": {
"title": "$:/core/ui/EditTemplate/title",
"tags": "$:/tags/EditTemplate",
"text": "<$edit-text field=\"draft.title\" class=\"tc-titlebar tc-edit-texteditor\" focus={{{ [{$:/config/AutoFocus}match[title]then[true]] ~[[false]] }}} tabindex={{$:/config/EditTabIndex}}/>\n\n<$vars pattern=\"\"\"[\\|\\[\\]{}]\"\"\" bad-chars=\"\"\"`| [ ] { }`\"\"\">\n\n<$list filter=\"[all[current]regexp:draft.title<pattern>]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/BadCharacterWarning}}\n\n</div>\n\n</$list>\n\n</$vars>\n\n<$reveal state=\"!!draft.title\" type=\"nomatch\" text={{!!draft.of}} tag=\"div\">\n\n<$list filter=\"[{!!draft.title}!is[missing]]\" variable=\"listItem\">\n\n<div class=\"tc-message-box\">\n\n{{$:/core/images/warning}} {{$:/language/EditTemplate/Title/Exists/Prompt}}\n\n</div>\n\n</$list>\n\n<$list filter=\"[{!!draft.of}!is[missing]]\" variable=\"listItem\">\n\n<$vars fromTitle={{!!draft.of}} toTitle={{!!draft.title}}>\n\n<$checkbox tiddler=\"$:/config/RelinkOnRename\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> {{$:/language/EditTemplate/Title/Relink/Prompt}}</$checkbox>\n\n<$list filter=\"[title<fromTitle>backlinks[]limit[1]]\" variable=\"listItem\">\n\n<$vars stateTiddler=<<qualify \"$:/state/edit/references\">> >\n\n<$reveal type=\"nomatch\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"show\" class=\"tc-btn-invisible\">{{$:/core/images/right-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$button set=<<stateTiddler>> setTo=\"hide\" class=\"tc-btn-invisible\">{{$:/core/images/down-arrow}} \n<<lingo EditTemplate/Title/References/Prompt>></$button>\n</$reveal>\n\n<$reveal type=\"match\" state=<<stateTiddler>> text=\"show\">\n<$tiddler tiddler=<<fromTitle>> >\n<$transclude tiddler=\"$:/core/ui/TiddlerInfo/References\"/>\n</$tiddler>\n</$reveal>\n\n</$vars>\n\n</$list>\n\n</$vars>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/EditTemplate/type": {
"title": "$:/core/ui/EditTemplate/type",
"tags": "$:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/EditTemplate/\n\\whitespace trim\n<div class=\"tc-type-selector\"><$fieldmangler>\n<em class=\"tc-edit\"><<lingo Type/Prompt>></em> <$edit-text field=\"type\" tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Type/Placeholder}} focusPopup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-edit-typeeditor tc-edit-texteditor tc-popup-handle\" tabindex={{$:/config/EditTabIndex}} focus={{{ [{$:/config/AutoFocus}match[type]then[true]] ~[[false]] }}}/> <$button popup=<<qualify \"$:/state/popup/type-dropdown\">> class=\"tc-btn-invisible tc-btn-dropdown\" tooltip={{$:/language/EditTemplate/Type/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Type/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <$button message=\"tm-remove-field\" param=\"type\" class=\"tc-btn-invisible tc-btn-icon\" tooltip={{$:/language/EditTemplate/Type/Delete/Hint}} aria-label={{$:/language/EditTemplate/Type/Delete/Caption}}>{{$:/core/images/delete-button}}</$button>\n</$fieldmangler></div>\n\n<div class=\"tc-block-dropdown-wrapper\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$reveal state=<<qualify \"$:/state/popup/type-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown tc-edit-type-dropdown\">\n<$linkcatcher to=\"!!type\">\n<$list filter='[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]each[group]sort[group-sort]]'>\n<div class=\"tc-dropdown-item\">\n<$text text={{!!group}}/>\n</div>\n<$list filter=\"[all[shadows+tiddlers]prefix[$:/language/Docs/Types/]group{!!group}] +[sort[description]]\"><$link to={{!!name}}><$view field=\"description\"/> (<$view field=\"name\"/>)</$link>\n</$list>\n</$list>\n</$linkcatcher>\n</div>\n</$reveal>\n</$set>\n</div>\n"
},
"$:/core/ui/EditTemplate": {
"title": "$:/core/ui/EditTemplate",
"text": "\\define save-tiddler-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$action-sendmessage $message=\"tm-add-field\" $name={{{ [<newFieldNameTiddler>get[text]] }}} $value={{{ [<newFieldValueTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newFieldNameTiddler>>/>\n<$action-deletetiddler $tiddler=<<newFieldValueTiddler>>/>\n<$action-sendmessage $message=\"tm-save-tiddler\"/>\n\\end\n<div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-edit-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}>\n<$fieldmangler>\n<$vars storyTiddler=<<currentTiddler>> newTagNameTiddler=<<qualify \"$:/temp/NewTagName\">> newFieldNameTiddler=<<qualify \"$:/temp/NewFieldName\">> newFieldValueTiddler=<<qualify \"$:/temp/NewFieldValue\">>>\n<$keyboard key=\"((cancel-edit-tiddler))\" message=\"tm-cancel-tiddler\">\n<$keyboard key=\"((save-tiddler))\" actions=<<save-tiddler-actions>>>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditTemplate]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>>/>\n</$set>\n</$list>\n</$keyboard>\n</$keyboard>\n</$vars>\n</$fieldmangler>\n</div>\n"
},
"$:/core/ui/Buttons/cancel": {
"title": "$:/core/ui/Buttons/cancel",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/cancel-button}} {{$:/language/Buttons/Cancel/Caption}}",
"description": "{{$:/language/Buttons/Cancel/Hint}}",
"text": "<$button message=\"tm-cancel-tiddler\" tooltip={{$:/language/Buttons/Cancel/Hint}} aria-label={{$:/language/Buttons/Cancel/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/cancel-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Cancel/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/delete": {
"title": "$:/core/ui/Buttons/delete",
"tags": "$:/tags/EditToolbar $:/tags/ViewToolbar",
"caption": "{{$:/core/images/delete-button}} {{$:/language/Buttons/Delete/Caption}}",
"description": "{{$:/language/Buttons/Delete/Hint}}",
"text": "<$button message=\"tm-delete-tiddler\" tooltip={{$:/language/Buttons/Delete/Hint}} aria-label={{$:/language/Buttons/Delete/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/delete-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Delete/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save": {
"title": "$:/core/ui/Buttons/save",
"tags": "$:/tags/EditToolbar",
"caption": "{{$:/core/images/done-button}} {{$:/language/Buttons/Save/Caption}}",
"description": "{{$:/language/Buttons/Save/Hint}}",
"text": "\\define save-tiddler-button()\n<$fieldmangler><$button tooltip={{$:/language/Buttons/Save/Hint}} aria-label={{$:/language/Buttons/Save/Caption}} class=<<tv-config-toolbar-class>>>\n<<save-tiddler-actions>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/done-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Save/Caption}}/></span>\n</$list>\n</$button></$fieldmangler>\n\\end\n<<save-tiddler-button>>\n"
},
"$:/core/ui/EditorToolbar/bold": {
"title": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}}",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"''\"\n\tsuffix=\"''\"\n/>\n"
},
"$:/core/ui/EditorToolbar/clear-dropdown": {
"title": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": "''{{$:/language/Buttons/Clear/Hint}}''\n\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"clear\"\n\tcolour=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n\n</div>\n"
},
"$:/core/ui/EditorToolbar/clear": {
"title": "$:/core/ui/EditorToolbar/clear",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/erase",
"caption": "{{$:/language/Buttons/Clear/Caption}}",
"description": "{{$:/language/Buttons/Clear/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/clear-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/editor-height-dropdown": {
"title": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/EditorHeight/\n''<<lingo Hint>>''\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"auto\"> {{$:/core/images/auto-height}} <<lingo Caption/Auto>></$radio>\n\n<$radio tiddler=\"$:/config/TextEditor/EditorHeight/Mode\" value=\"fixed\"> {{$:/core/images/fixed-height}} <<lingo Caption/Fixed>> <$edit-text tag=\"input\" tiddler=\"$:/config/TextEditor/EditorHeight/Height\" default=\"100px\"/></$radio>\n"
},
"$:/core/ui/EditorToolbar/editor-height": {
"title": "$:/core/ui/EditorToolbar/editor-height",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/fixed-height",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/EditorHeight/Caption}}",
"description": "{{$:/language/Buttons/EditorHeight/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"dropdown": "$:/core/ui/EditorToolbar/editor-height-dropdown",
"text": "<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n{{$:/core/images/fixed-height}}\n</$reveal>\n<$reveal tag=\"span\" state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n{{$:/core/images/auto-height}}\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/excise-dropdown": {
"title": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Excise/\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<<lingo Caption/NewTitle>> <$edit-text tag=\"input\" tiddler=\"$config-title$/new-title\" default=\"\" focus=\"true\"/>\n\n<$set name=\"new-title\" value={{$config-title$/new-title}}>\n<$list filter=\"\"\"[<new-title>is[tiddler]]\"\"\">\n<div class=\"tc-error\">\n<<lingo Caption/TiddlerExists>>\n</div>\n</$list>\n</$set>\n\n<$checkbox tiddler=\"\"\"$config-title$/tagnew\"\"\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"false\"> <<lingo Caption/Tag>></$checkbox>\n\n<<lingo Caption/Replace>> <$select tiddler=\"\"\"$config-title$/type\"\"\" default=\"transclude\">\n<option value=\"link\"><<lingo Caption/Replace/Link>></option>\n<option value=\"transclude\"><<lingo Caption/Replace/Transclusion>></option>\n<option value=\"macro\"><<lingo Caption/Replace/Macro>></option>\n</$select>\n\n<$reveal state=\"\"\"$config-title$/type\"\"\" type=\"match\" text=\"macro\">\n<<lingo Caption/MacroName>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/macro-title\"\"\" default=\"translink\"/>\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"excise\"\n\ttitle={{$config-title$/new-title}}\n\ttype={{$config-title$/type}}\n\tmacro={{$config-title$/macro-title}}\n\ttagnew={{$config-title$/tagnew}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"$config-title$/new-title\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Excise>>\n</$button>\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Excise/\">>/>\n"
},
"$:/core/ui/EditorToolbar/excise": {
"title": "$:/core/ui/EditorToolbar/excise",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/excise",
"caption": "{{$:/language/Buttons/Excise/Caption}}",
"description": "{{$:/language/Buttons/Excise/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>type[text/vnd.tiddlywiki]] +[first[]]",
"shortcuts": "((excise))",
"dropdown": "$:/core/ui/EditorToolbar/excise-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/heading-1": {
"title": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}}",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-2": {
"title": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}}",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"2\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-3": {
"title": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}}",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"3\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}}",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"4\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}}",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"5\"\n/>\n"
},
"$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}}",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"!\"\n\tcount=\"6\"\n/>\n"
},
"$:/core/ui/EditorToolbar/italic": {
"title": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}}",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"//\"\n\tsuffix=\"//\"\n/>\n"
},
"$:/core/ui/EditorToolbar/line-width-dropdown": {
"title": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/LineWidth/\n\n\\define toolbar-line-width-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(line-width)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/LineWidth\"\n\t$value=\"$(line-width)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; margin: 4px calc(80px - $(line-width)$); background-color: #000; width: calc(100px + $(line-width)$ * 2); height: $(line-width)$; border-radius: 120px; vertical-align: middle;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(line-width)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/LineWidth\" type=\"match\" text=\"\"\"$(line-width)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/LineWidths}} variable=\"line-width\">\n\n<<toolbar-line-width-inner>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/line-width": {
"title": "$:/core/ui/EditorToolbar/line-width",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/line-width",
"caption": "{{$:/language/Buttons/LineWidth/Caption}}",
"description": "{{$:/language/Buttons/LineWidth/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/line-width-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/LineWidth}}/>"
},
"$:/core/ui/EditorToolbar/link-dropdown": {
"title": "$:/core/ui/EditorToolbar/link-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Link/\n\n\\define add-link-actions()\n<$action-sendmessage $message=\"tm-edit-text-operation\" $param=\"make-link\" text={{$(linkTiddler)$}} />\n<$action-deletetiddler $tiddler=<<dropdown-state>> />\n<$action-deletetiddler $tiddler=<<searchTiddler>> />\n<$action-deletetiddler $tiddler=<<linkTiddler>> />\n\\end\n\n\\define external-link()\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\" actions=<<add-link-actions>>>\n{{$:/core/images/chevron-right}}\n</$button>\n\\end\n\n\\define body(config-title)\n''<<lingo Hint>>''\n\n<$vars searchTiddler=\"\"\"$config-title$/search\"\"\" linkTiddler=\"\"\"$config-title$/link\"\"\" linktext=\"\" >\n\n<$vars linkTiddler=<<searchTiddler>>>\n<$keyboard key=\"ENTER\" actions=<<add-link-actions>>>\n<$edit-text tiddler=<<searchTiddler>> type=\"search\" tag=\"input\" focus=\"true\" placeholder={{$:/language/Search/Search}} default=\"\"/>\n<$reveal tag=\"span\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n<<external-link>>\n<$button class=\"tc-btn-invisible\" style=\"width: auto; display: inline-block; background-colour: inherit;\">\n<$action-setfield $tiddler=<<searchTiddler>> text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</$keyboard>\n</$vars>\n\n<$reveal tag=\"div\" state=<<searchTiddler>> type=\"nomatch\" text=\"\">\n\n<$linkcatcher actions=<<add-link-actions>> to=<<linkTiddler>>>\n\n{{$:/core/ui/SearchResults}}\n\n</$linkcatcher>\n\n</$reveal>\n\n</$vars>\n\n\\end\n\n<$macrocall $name=\"body\" config-title=<<qualify \"$:/state/Link/\">>/>"
},
"$:/core/ui/EditorToolbar/link": {
"title": "$:/core/ui/EditorToolbar/link",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/link",
"caption": "{{$:/language/Buttons/Link/Caption}}",
"description": "{{$:/language/Buttons/Link/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((link))",
"dropdown": "$:/core/ui/EditorToolbar/link-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/linkify": {
"title": "$:/core/ui/EditorToolbar/linkify",
"caption": "{{$:/language/Buttons/Linkify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Linkify/Hint}}",
"icon": "$:/core/images/linkify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((linkify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"[[\"\n\tsuffix=\"]]\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-bullet": {
"title": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}}",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/list-number": {
"title": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}}",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-block": {
"title": "$:/core/ui/EditorToolbar/mono-block",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-block",
"caption": "{{$:/language/Buttons/MonoBlock/Caption}}",
"description": "{{$:/language/Buttons/MonoBlock/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((mono-block))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n```\"\n\tsuffix=\"```\"\n/>\n"
},
"$:/core/ui/EditorToolbar/mono-line": {
"title": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}}",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/core/ui/EditorToolbar/more-dropdown": {
"title": "$:/core/ui/EditorToolbar/more-dropdown",
"text": "\\define config-title()\n$:/config/EditorToolbarButtons/Visibility/$(toolbarItem)$\n\\end\n\n\\define conditional-button()\n<$list filter={{$(toolbarItem)$!!condition}} variable=\"condition\">\n<$transclude tiddler=\"$:/core/ui/EditTemplate/body/toolbar/button\" mode=\"inline\"/> <$transclude tiddler=<<toolbarItem>> field=\"description\"/>\n</$list>\n\\end\n\n<div class=\"tc-text-editor-toolbar-more\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditorToolbar]!has[draft.of]] -[[$:/core/ui/EditorToolbar/more]]\">\n<$reveal type=\"match\" state=<<config-visibility-title>> text=\"hide\" tag=\"div\">\n<<conditional-button>>\n</$reveal>\n</$list>\n</div>\n"
},
"$:/core/ui/EditorToolbar/more": {
"title": "$:/core/ui/EditorToolbar/more",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/down-arrow",
"caption": "{{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"condition": "[<targetTiddler>]",
"dropdown": "$:/core/ui/EditorToolbar/more-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/opacity-dropdown": {
"title": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Opacity/\n\n\\define toolbar-opacity-inner()\n<$button tag=\"a\" tooltip=\"\"\"$(opacity)$\"\"\">\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Opacity\"\n\t$value=\"$(opacity)$\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(current-paint-colour)$; opacity: $(opacity)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\n<span style=\"margin-left: 8px;\">\n\n<$text text=\"\"\"$(opacity)$\"\"\"/>\n\n<$reveal state=\"$:/config/BitmapEditor/Opacity\" type=\"match\" text=\"\"\"$(opacity)$\"\"\" tag=\"span\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</span>\n\n</$button>\n\\end\n\n\\define toolbar-opacity()\n''<<lingo Hint>>''\n\n<$list filter={{$:/config/BitmapEditor/Opacities}} variable=\"opacity\">\n\n<<toolbar-opacity-inner>>\n\n</$list>\n\\end\n\n<$set name=\"current-paint-colour\" value={{$:/config/BitmapEditor/Colour}}>\n\n<$set name=\"current-opacity\" value={{$:/config/BitmapEditor/Opacity}}>\n\n<<toolbar-opacity>>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/EditorToolbar/opacity": {
"title": "$:/core/ui/EditorToolbar/opacity",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/opacity",
"caption": "{{$:/language/Buttons/Opacity/Caption}}",
"description": "{{$:/language/Buttons/Opacity/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/opacity-dropdown",
"text": "<$text text={{$:/config/BitmapEditor/Opacity}}/>\n"
},
"$:/core/ui/EditorToolbar/paint-dropdown": {
"title": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "''{{$:/language/Buttons/Paint/Hint}}''\n\n<$macrocall $name=\"colour-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/config/BitmapEditor/Colour\"\n\t$value=<<colour-picker-value>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/paint": {
"title": "$:/core/ui/EditorToolbar/paint",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/paint",
"caption": "{{$:/language/Buttons/Paint/Caption}}",
"description": "{{$:/language/Buttons/Paint/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/paint-dropdown",
"text": "\\define toolbar-paint()\n<div style=\"display: inline-block; vertical-align: middle; background-color: $(colour-picker-value)$; width: 1em; height: 1em; border-radius: 50%;\"/>\n\\end\n<$set name=\"colour-picker-value\" value={{$:/config/BitmapEditor/Colour}}>\n<<toolbar-paint>>\n</$set>\n"
},
"$:/core/ui/EditorToolbar/picture-dropdown": {
"title": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": "\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n''{{$:/language/Buttons/Picture/Hint}}''\n\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext=<<replacement-text>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n\"\"\"/>\n"
},
"$:/core/ui/EditorToolbar/picture": {
"title": "$:/core/ui/EditorToolbar/picture",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/picture",
"caption": "{{$:/language/Buttons/Picture/Caption}}",
"description": "{{$:/language/Buttons/Picture/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((picture))",
"dropdown": "$:/core/ui/EditorToolbar/picture-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/preview-type-dropdown": {
"title": "$:/core/ui/EditorToolbar/preview-type-dropdown",
"text": "\\define preview-type-button()\n<$button tag=\"a\">\n\n<$action-setfield $tiddler=\"$:/state/editpreviewtype\" $value=\"$(previewType)$\"/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<previewType>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<previewType>> field=\"title\" mode=\"inline\"/>\n\n</$transclude> \n\n<$reveal tag=\"span\" state=\"$:/state/editpreviewtype\" type=\"match\" text=<<previewType>> default=\"$:/core/ui/EditTemplate/body/preview/output\">\n\n<$entity entity=\" \"/>\n\n<$entity entity=\"✓\"/>\n\n</$reveal>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]]\" variable=\"previewType\">\n\n<<preview-type-button>>\n\n</$list>\n"
},
"$:/core/ui/EditorToolbar/preview-type": {
"title": "$:/core/ui/EditorToolbar/preview-type",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/chevron-down",
"caption": "{{$:/language/Buttons/PreviewType/Caption}}",
"description": "{{$:/language/Buttons/PreviewType/Hint}}",
"condition": "[all[shadows+tiddlers]tag[$:/tags/EditPreview]!has[draft.of]butfirst[]limit[1]]",
"button-classes": "tc-text-editor-toolbar-item-adjunct",
"dropdown": "$:/core/ui/EditorToolbar/preview-type-dropdown"
},
"$:/core/ui/EditorToolbar/preview": {
"title": "$:/core/ui/EditorToolbar/preview",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/preview-open",
"custom-icon": "yes",
"caption": "{{$:/language/Buttons/Preview/Caption}}",
"description": "{{$:/language/Buttons/Preview/Hint}}",
"condition": "[<targetTiddler>]",
"button-classes": "tc-text-editor-toolbar-item-start-group",
"shortcuts": "((preview))",
"text": "<$reveal state=\"$:/state/showeditpreview\" type=\"match\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-open}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"no\"/>\n</$reveal>\n<$reveal state=\"$:/state/showeditpreview\" type=\"nomatch\" text=\"yes\" tag=\"span\">\n{{$:/core/images/preview-closed}}\n<$action-setfield $tiddler=\"$:/state/showeditpreview\" $value=\"yes\"/>\n</$reveal>\n"
},
"$:/core/ui/EditorToolbar/quote": {
"title": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}}",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-lines\"\n\tprefix=\"\n<<<\"\n\tsuffix=\"<<<\"\n/>\n"
},
"$:/core/ui/EditorToolbar/rotate-left": {
"title": "$:/core/ui/EditorToolbar/rotate-left",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/rotate-left",
"caption": "{{$:/language/Buttons/RotateLeft/Caption}}",
"description": "{{$:/language/Buttons/RotateLeft/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"rotate-left\"\n/>\n"
},
"$:/core/ui/EditorToolbar/size-dropdown": {
"title": "$:/core/ui/EditorToolbar/size-dropdown",
"text": "\\define lingo-base() $:/language/Buttons/Size/\n\n\\define toolbar-button-size-preset(config-title)\n<$set name=\"width\" filter=\"$(sizePair)$ +[first[]]\">\n\n<$set name=\"height\" filter=\"$(sizePair)$ +[last[]]\">\n\n<$button tag=\"a\">\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n\t$value=<<width>>\n/>\n\n<$action-setfield\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n\t$value=<<height>>\n/>\n\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/presets-popup\"\"\"\n/>\n\n<$text text=<<width>>/> × <$text text=<<height>>/>\n\n</$button>\n\n</$set>\n\n</$set>\n\\end\n\n\\define toolbar-button-size(config-title)\n''{{$:/language/Buttons/Size/Hint}}''\n\n<<lingo Caption/Width>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-width\"\"\" default=<<tv-bitmap-editor-width>> focus=\"true\" size=\"8\"/> <<lingo Caption/Height>> <$edit-text tag=\"input\" tiddler=\"\"\"$config-title$/new-height\"\"\" default=<<tv-bitmap-editor-height>> size=\"8\"/> <$button popup=\"\"\"$config-title$/presets-popup\"\"\" class=\"tc-btn-invisible tc-popup-keep\" style=\"width: auto; display: inline-block; background-colour: inherit;\" selectedClass=\"tc-selected\">\n{{$:/core/images/down-arrow}}\n</$button>\n\n<$reveal tag=\"span\" state=\"\"\"$config-title$/presets-popup\"\"\" type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down tc-popup-keep\">\n\n<$list filter={{$:/config/BitmapEditor/ImageSizes}} variable=\"sizePair\">\n\n<$macrocall $name=\"toolbar-button-size-preset\" config-title=\"$config-title$\"/>\n\n</$list>\n\n</div>\n\n</$reveal>\n\n<$button>\n<$action-sendmessage\n\t$message=\"tm-edit-bitmap-operation\"\n\t$param=\"resize\"\n\twidth={{$config-title$/new-width}}\n\theight={{$config-title$/new-height}}\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-width\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=\"\"\"$config-title$/new-height\"\"\"\n/>\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n<<lingo Caption/Resize>>\n</$button>\n\\end\n\n<$macrocall $name=\"toolbar-button-size\" config-title=<<qualify \"$:/state/Size/\">>/>\n"
},
"$:/core/ui/EditorToolbar/size": {
"title": "$:/core/ui/EditorToolbar/size",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/size",
"caption": "{{$:/language/Buttons/Size/Caption}}",
"description": "{{$:/language/Buttons/Size/Hint}}",
"condition": "[<targetTiddler>is[image]]",
"dropdown": "$:/core/ui/EditorToolbar/size-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/stamp-dropdown": {
"title": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n</$list>\n\n\n<$list filter=\"[[$(snippetTitle)$]addsuffix[/prefix]is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]is[missing]] [[$(snippetTitle)$]addsuffix[/prefix]!is[missing]removesuffix[/prefix]addsuffix[/suffix]!is[missing]]\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix={{{ [[$(snippetTitle)$]addsuffix[/prefix]get[text]] }}}\nsuffix={{{ [[$(snippetTitle)$]addsuffix[/suffix]get[text]] }}}\n/>\n\n</$list>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$transclude tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$view tiddler=<<snippetTitle>> field=\"title\" />\n\n</$transclude>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextEditor/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/TextEditor/Snippet\"\n\tcaption={{$:/language/Buttons/Stamp/New/Title}}\n\ttext={{$:/language/Buttons/Stamp/New/Text}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n"
},
"$:/core/ui/EditorToolbar/stamp": {
"title": "$:/core/ui/EditorToolbar/stamp",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/stamp",
"caption": "{{$:/language/Buttons/Stamp/Caption}}",
"description": "{{$:/language/Buttons/Stamp/Hint}}",
"condition": "[<targetTiddler>type[]] [<targetTiddler>get[type]prefix[text/]] +[first[]]",
"shortcuts": "((stamp))",
"dropdown": "$:/core/ui/EditorToolbar/stamp-dropdown",
"text": ""
},
"$:/core/ui/EditorToolbar/strikethrough": {
"title": "$:/core/ui/EditorToolbar/strikethrough",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/strikethrough",
"caption": "{{$:/language/Buttons/Strikethrough/Caption}}",
"description": "{{$:/language/Buttons/Strikethrough/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((strikethrough))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"~~\"\n\tsuffix=\"~~\"\n/>\n"
},
"$:/core/ui/EditorToolbar/subscript": {
"title": "$:/core/ui/EditorToolbar/subscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/subscript",
"caption": "{{$:/language/Buttons/Subscript/Caption}}",
"description": "{{$:/language/Buttons/Subscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((subscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\",,\"\n\tsuffix=\",,\"\n/>\n"
},
"$:/core/ui/EditorToolbar/superscript": {
"title": "$:/core/ui/EditorToolbar/superscript",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/superscript",
"caption": "{{$:/language/Buttons/Superscript/Caption}}",
"description": "{{$:/language/Buttons/Superscript/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((superscript))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"^^\"\n\tsuffix=\"^^\"\n/>\n"
},
"$:/core/ui/EditorToolbar/transcludify": {
"title": "$:/core/ui/EditorToolbar/transcludify",
"caption": "{{$:/language/Buttons/Transcludify/Caption}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Buttons/Transcludify/Hint}}",
"icon": "$:/core/images/transcludify",
"list-before": "$:/core/ui/EditorToolbar/mono-block",
"shortcuts": "((transcludify))",
"tags": "$:/tags/EditorToolbar",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"{{\"\n\tsuffix=\"}}\"\n/>\n"
},
"$:/core/ui/EditorToolbar/underline": {
"title": "$:/core/ui/EditorToolbar/underline",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/underline",
"caption": "{{$:/language/Buttons/Underline/Caption}}",
"description": "{{$:/language/Buttons/Underline/Hint}}",
"condition": "[<targetTiddler>!has[type]] [<targetTiddler>type[text/vnd.tiddlywiki]]",
"shortcuts": "((underline))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"__\"\n\tsuffix=\"__\"\n/>\n"
},
"$:/core/Filters/AllTags": {
"title": "$:/core/Filters/AllTags",
"tags": "$:/tags/Filter",
"filter": "[tags[]!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTags}}",
"text": ""
},
"$:/core/Filters/AllTiddlers": {
"title": "$:/core/Filters/AllTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]sort[title]]",
"description": "{{$:/language/Filters/AllTiddlers}}",
"text": ""
},
"$:/core/Filters/Drafts": {
"title": "$:/core/Filters/Drafts",
"tags": "$:/tags/Filter",
"filter": "[has[draft.of]sort[title]]",
"description": "{{$:/language/Filters/Drafts}}",
"text": ""
},
"$:/core/Filters/Missing": {
"title": "$:/core/Filters/Missing",
"tags": "$:/tags/Filter",
"filter": "[all[missing]sort[title]]",
"description": "{{$:/language/Filters/Missing}}",
"text": ""
},
"$:/core/Filters/Orphans": {
"title": "$:/core/Filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[all[orphans]sort[title]]",
"description": "{{$:/language/Filters/Orphans}}",
"text": ""
},
"$:/core/Filters/OverriddenShadowTiddlers": {
"title": "$:/core/Filters/OverriddenShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[shadow]]",
"description": "{{$:/language/Filters/OverriddenShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentSystemTiddlers": {
"title": "$:/core/Filters/RecentSystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentSystemTiddlers}}",
"text": ""
},
"$:/core/Filters/RecentTiddlers": {
"title": "$:/core/Filters/RecentTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[modified]!sort[modified]limit[50]]",
"description": "{{$:/language/Filters/RecentTiddlers}}",
"text": ""
},
"$:/core/Filters/SessionTiddlers": {
"title": "$:/core/Filters/SessionTiddlers",
"tags": "$:/tags/Filter",
"filter": "[haschanged[]]",
"description": "{{$:/language/Filters/SessionTiddlers}}",
"text": ""
},
"$:/core/Filters/ShadowTiddlers": {
"title": "$:/core/Filters/ShadowTiddlers",
"tags": "$:/tags/Filter",
"filter": "[all[shadows]sort[title]]",
"description": "{{$:/language/Filters/ShadowTiddlers}}",
"text": ""
},
"$:/core/Filters/StoryList": {
"title": "$:/core/Filters/StoryList",
"tags": "$:/tags/Filter",
"filter": "[list[$:/StoryList]] -$:/AdvancedSearch",
"description": "{{$:/language/Filters/StoryList}}",
"text": ""
},
"$:/core/Filters/SystemTags": {
"title": "$:/core/Filters/SystemTags",
"tags": "$:/tags/Filter",
"filter": "[all[shadows+tiddlers]tags[]is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTags}}",
"text": ""
},
"$:/core/Filters/SystemTiddlers": {
"title": "$:/core/Filters/SystemTiddlers",
"tags": "$:/tags/Filter",
"filter": "[is[system]sort[title]]",
"description": "{{$:/language/Filters/SystemTiddlers}}",
"text": ""
},
"$:/core/Filters/TypedTiddlers": {
"title": "$:/core/Filters/TypedTiddlers",
"tags": "$:/tags/Filter",
"filter": "[!is[system]has[type]each[type]sort[type]] -[type[text/vnd.tiddlywiki]]",
"description": "{{$:/language/Filters/TypedTiddlers}}",
"text": ""
},
"$:/core/ui/ImportListing": {
"title": "$:/core/ui/ImportListing",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define messageField()\nmessage-$(payloadTiddler)$\n\\end\n\n\\define selectionField()\nselection-$(payloadTiddler)$\n\\end\n\n\\define previewPopupState()\n$(currentTiddler)$!!popup-$(payloadTiddler)$\n\\end\n\n\\define select-all-actions()\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<$action-setfield $field={{{ [<payloadTiddler>addprefix[selection-]] }}} $value={{$:/state/import/select-all}}/>\n</$list>\n\\end\n\n<table>\n<tbody>\n<tr>\n<th>\n<$checkbox tiddler=\"$:/state/import/select-all\" field=\"text\" checked=\"checked\" unchecked=\"unchecked\" default=\"checked\" actions=<<select-all-actions>>>\n<<lingo Listing/Select/Caption>>\n</$checkbox>\n</th>\n<th>\n<<lingo Listing/Title/Caption>>\n</th>\n<th>\n<<lingo Listing/Status/Caption>>\n</th>\n</tr>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" variable=\"payloadTiddler\">\n<tr>\n<td>\n<$checkbox field=<<selectionField>> checked=\"checked\" unchecked=\"unchecked\" default=\"checked\"/>\n</td>\n<td>\n<$reveal type=\"nomatch\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"yes\">\n{{$:/core/images/right-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<previewPopupState>> text=\"yes\" tag=\"div\">\n<$button class=\"tc-btn-invisible tc-btn-dropdown\" setTitle=<<previewPopupState>> setTo=\"no\">\n{{$:/core/images/down-arrow}} <$text text=<<payloadTiddler>>/>\n</$button>\n</$reveal>\n</td>\n<td>\n<$view field=<<messageField>>/>\n</td>\n</tr>\n<tr>\n<td colspan=\"3\">\n<$reveal type=\"match\" text=\"yes\" stateTitle=<<previewPopupState>> tag=\"div\">\n<$list filter=\"[{$:/state/importpreviewtype}has[text]]\" variable=\"listItem\" emptyMessage={{$:/core/ui/ImportPreviews/Text}}>\n<$transclude tiddler={{$:/state/importpreviewtype}}/>\n</$list>\n</$reveal>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Diff": {
"title": "$:/core/ui/ImportPreviews/Diff",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Diff}}",
"text": "<$macrocall $name=\"compareTiddlerText\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>>/>\n"
},
"$:/core/ui/ImportPreviews/DiffFields": {
"title": "$:/core/ui/ImportPreviews/DiffFields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/DiffFields}}",
"text": "<$macrocall $name=\"compareTiddlers\" sourceTiddlerTitle=<<payloadTiddler>> destTiddlerTitle=<<currentTiddler>> destSubTiddlerTitle=<<payloadTiddler>> exclude=\"text\"/>\n"
},
"$:/core/ui/ImportPreviews/Fields": {
"title": "$:/core/ui/ImportPreviews/Fields",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Fields}}",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[<payloadTiddler>subtiddlerfields<currentTiddler>sort[]] -text\" variable=\"fieldName\">\n<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<fieldName>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<fieldName>> tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>>/>\n</td>\n</tr>\n</$list>\n</tbody>\n</table>\n"
},
"$:/core/ui/ImportPreviews/Text": {
"title": "$:/core/ui/ImportPreviews/Text",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/Text}}",
"text": "<$transclude tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> mode=\"block\"/>\n"
},
"$:/core/ui/ImportPreviews/TextRaw": {
"title": "$:/core/ui/ImportPreviews/TextRaw",
"tags": "$:/tags/ImportPreview",
"caption": "{{$:/language/Import/Listing/Preview/TextRaw}}",
"text": "<pre><code><$view tiddler=<<currentTiddler>> subtiddler=<<payloadTiddler>> /></code></pre>"
},
"$:/core/ui/KeyboardShortcuts/advanced-search": {
"title": "$:/core/ui/KeyboardShortcuts/advanced-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((advanced-search))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\">\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n<$action-sendmessage $message=\"tm-focus-selector\" $param=\"\"\"[data-tiddler-title=\"$:/AdvancedSearch\"] .tc-search input\"\"\"/>\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-image": {
"title": "$:/core/ui/KeyboardShortcuts/new-image",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-image))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-image}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-journal": {
"title": "$:/core/ui/KeyboardShortcuts/new-journal",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-journal))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-journal}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/new-tiddler": {
"title": "$:/core/ui/KeyboardShortcuts/new-tiddler",
"tags": "$:/tags/KeyboardShortcut",
"key": "((new-tiddler))",
"text": "<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n{{$:/core/ui/Actions/new-tiddler}}\n</$navigator>\n"
},
"$:/core/ui/KeyboardShortcuts/sidebar-search": {
"title": "$:/core/ui/KeyboardShortcuts/sidebar-search",
"tags": "$:/tags/KeyboardShortcut",
"key": "((sidebar-search))",
"text": "<$action-sendmessage $message=\"tm-focus-selector\" $param=\".tc-search input\"/>\n"
},
"$:/core/ui/KeyboardShortcut/toggle-sidebar": {
"title": "$:/core/ui/KeyboardShortcut/toggle-sidebar",
"tags": "$:/tags/KeyboardShortcut",
"key": "((toggle-sidebar))",
"text": "<$list filter=\"[[$:/state/sidebar]is[missing]] [{$:/state/sidebar}removeprefix[yes]]\" emptyMessage=\"\"\"\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"yes\"/>\n\"\"\">\n<$action-setfield $tiddler=\"$:/state/sidebar\" text=\"no\"/>\n</$list>\n"
},
"$:/core/ui/ListItemTemplate": {
"title": "$:/core/ui/ListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link />\n</div>"
},
"$:/Manager/ItemMain/Fields": {
"title": "$:/Manager/ItemMain/Fields",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/Fields}}",
"text": "<table>\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/Manager/ItemMain/RawText": {
"title": "$:/Manager/ItemMain/RawText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/RawText}}",
"text": "<pre><code><$view/></code></pre>\n"
},
"$:/Manager/ItemMain/WikifiedText": {
"title": "$:/Manager/ItemMain/WikifiedText",
"tags": "$:/tags/Manager/ItemMain",
"caption": "{{$:/language/Manager/Item/WikifiedText}}",
"text": "<$transclude mode=\"block\"/>\n"
},
"$:/Manager/ItemSidebar/Colour": {
"title": "$:/Manager/ItemSidebar/Colour",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Colour}}",
"text": "\\define swatch-styles()\nheight: 1em;\nbackground-color: $(colour)$\n\\end\n\n<$vars colour={{!!color}}>\n<p style=<<swatch-styles>>/>\n</$vars>\n<p>\n<$edit-text field=\"color\" tag=\"input\" type=\"color\"/> / <$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Icon": {
"title": "$:/Manager/ItemSidebar/Icon",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Icon}}",
"text": "<p>\n<div class=\"tc-manager-icon-editor\">\n<$button popup=<<qualify \"$:/state/popup/image-picker\">> class=\"tc-btn-invisible\">\n<$transclude tiddler={{!!icon}}>\n{{$:/language/Manager/Item/Icon/None}}\n</$transclude>\n</$button>\n<div class=\"tc-block-dropdown-wrapper\" style=\"position: static;\">\n<$reveal state=<<qualify \"$:/state/popup/image-picker\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-popup\">\n<div class=\"tc-block-dropdown tc-popup-keep\" style=\"width: 80%; left: 10%; right: 10%; padding: 0.5em;\">\n<$macrocall $name=\"image-picker-include-tagged-images\" actions=\"\"\"\n<$action-setfield $field=\"icon\" $value=<<imageTitle>>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/image-picker\">>/>\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n</div>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tags": {
"title": "$:/Manager/ItemSidebar/Tags",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tags}}",
"text": "\\define tag-checkbox-actions()\n<$action-listops\n\t$tiddler=\"$:/config/Manager/RecentTags\"\n\t$subfilter=\"[<tag>] [list[$:/config/Manager/RecentTags]] +[limit[12]]\"\n/>\n\\end\n\n\\define tag-picker-actions()\n<<tag-checkbox-actions>>\n<$action-listops\n\t$tiddler=<<currentTiddler>>\n\t$field=\"tags\"\n\t$subfilter=\"[<tag>] [all[current]tags[]]\"\n/>\n\\end\n\n<p>\n<$list filter=\"[all[current]tags[]] [list[$:/config/Manager/RecentTags]] +[sort[title]] \" variable=\"tag\">\n<div>\n<$checkbox tiddler=<<currentTiddler>> tag=<<tag>> actions=<<tag-checkbox-actions>>>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$checkbox>\n</div>\n</$list>\n</p>\n<p>\n<$macrocall $name=\"tag-picker\" actions=<<tag-picker-actions>>/>\n</p>\n"
},
"$:/Manager/ItemSidebar/Tools": {
"title": "$:/Manager/ItemSidebar/Tools",
"tags": "$:/tags/Manager/ItemSidebar",
"caption": "{{$:/language/Manager/Item/Tools}}",
"text": "<p>\n<$button to=<<currentTiddler>>>{{$:/core/images/link}} open</$button>\n</p>\n<p>\n<$button message=\"tm-edit-tiddler\" param=<<currentTiddler>>>{{$:/core/images/edit-button}} edit</$button>\n</p>\n"
},
"$:/Manager": {
"title": "$:/Manager",
"icon": "$:/core/images/list",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/Manager/\n\n\\define list-item-content-item()\n<div class=\"tc-manager-list-item-content-item\">\n\t<$vars state-title=\"\"\"$:/state/popup/manager/item/$(listItem)$\"\"\">\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"hide\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/down-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"nomatch\" text=\"show\" default=\"show\" tag=\"div\">\n\t\t\t<$button set=<<state-title>> setTo=\"show\" class=\"tc-btn-invisible tc-manager-list-item-content-item-heading\">\n\t\t\t\t{{$:/core/images/right-arrow}} <$transclude tiddler=<<listItem>> field=\"caption\"/>\n\t\t\t</$button>\n\t\t</$reveal>\n\t\t<$reveal state=<<state-title>> type=\"match\" text=\"show\" default=\"show\" tag=\"div\" class=\"tc-manager-list-item-content-item-body\">\n\t\t\t<$transclude tiddler=<<listItem>>/>\n\t\t</$reveal>\n\t</$vars>\n</div>\n\\end\n\n<div class=\"tc-manager-wrapper\">\n\t<div class=\"tc-manager-controls\">\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Show/Prompt>> <$select tiddler=\"$:/config/Manager/Show\" default=\"tiddlers\">\n\t\t\t\t<option value=\"tiddlers\"><<lingo Controls/Show/Option/Tiddlers>></option>\n\t\t\t\t<option value=\"tags\"><<lingo Controls/Show/Option/Tags>></option>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Search/Prompt>> <$edit-text tiddler=\"$:/config/Manager/Filter\" tag=\"input\" default=\"\" placeholder={{$:/language/Manager/Controls/Search/Placeholder}}/>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/FilterByTag/Prompt>> <$select tiddler=\"$:/config/Manager/Tag\" default=\"\">\n\t\t\t\t<option value=\"\"><<lingo Controls/FilterByTag/None>></option>\n\t\t\t\t<$list filter=\"[!is{$:/config/Manager/System}tags[]!is[system]sort[title]]\" variable=\"tag\">\n\t\t\t\t\t<option value=<<tag>>><$text text=<<tag>>/></option>\n\t\t\t\t</$list>\n\t\t\t</$select>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<<lingo Controls/Sort/Prompt>> <$select tiddler=\"$:/config/Manager/Sort\" default=\"title\">\n\t\t\t\t<optgroup label=\"Common\">\n\t\t\t\t\t<$list filter=\"title modified modifier created creator created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t\t<optgroup label=\"All\">\n\t\t\t\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}fields[]sort[title]] -title -modified -modifier -created -creator -created\" variable=\"field\">\n\t\t\t\t\t\t<option value=<<field>>><$text text=<<field>>/></option>\n\t\t\t\t\t</$list>\n\t\t\t\t</optgroup>\n\t\t\t</$select>\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/Order\" field=\"text\" checked=\"reverse\" unchecked=\"forward\" default=\"forward\">\n\t\t\t\t<<lingo Controls/Order/Prompt>>\n\t\t\t</$checkbox>\n\t\t</div>\n\t\t<div class=\"tc-manager-control\">\n\t\t\t<$checkbox tiddler=\"$:/config/Manager/System\" field=\"text\" checked=\"\" unchecked=\"system\" default=\"system\">\n\t\t\t\t{{$:/language/SystemTiddlers/Include/Prompt}}\n\t\t\t</$checkbox>\n\t\t</div>\n\t</div>\n\t<div class=\"tc-manager-list\">\n\t\t<$list filter=\"[all{$:/config/Manager/Show}!is{$:/config/Manager/System}search{$:/config/Manager/Filter}tag:strict{$:/config/Manager/Tag}sort{$:/config/Manager/Sort}order{$:/config/Manager/Order}]\">\n\t\t\t<$vars transclusion=<<currentTiddler>>>\n\t\t\t\t<div style=\"tc-manager-list-item\">\n\t\t\t\t\t<$button popup=<<qualify \"$:/state/manager/popup\">> class=\"tc-btn-invisible tc-manager-list-item-heading\" selectedClass=\"tc-manager-list-item-heading-selected\">\n\t\t\t\t\t\t<$text text=<<currentTiddler>>/>\n\t\t\t\t\t</$button>\n\t\t\t\t\t<$reveal state=<<qualify \"$:/state/manager/popup\">> type=\"nomatch\" text=\"\" default=\"\" tag=\"div\" class=\"tc-manager-list-item-content tc-popup-handle\">\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-tiddler\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemMain]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"tc-manager-list-item-content-sidebar\">\n\t\t\t\t\t\t\t<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Manager/ItemSidebar]!has[draft.of]]\" variable=\"listItem\">\n\t\t\t\t\t\t\t\t<<list-item-content-item>>\n\t\t\t\t\t\t\t</$list>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</$reveal>\n\t\t\t\t</div>\n\t\t\t</$vars>\n\t\t</$list>\n\t</div>\n</div>\n"
},
"$:/core/ui/MissingTemplate": {
"title": "$:/core/ui/MissingTemplate",
"text": "<div class=\"tc-tiddler-missing\">\n<$button popup=<<qualify \"$:/state/popup/missing\">> class=\"tc-btn-invisible tc-missing-tiddler-label\">\n<$view field=\"title\" format=\"text\" />\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/missing\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n<hr>\n<$list filter=\"[all[current]backlinks[]sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n</div>\n"
},
"$:/core/ui/MoreSideBar/All": {
"title": "$:/core/ui/MoreSideBar/All",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/All/Caption}}",
"text": "<$list filter={{$:/core/Filters/AllTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Drafts": {
"title": "$:/core/ui/MoreSideBar/Drafts",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Drafts/Caption}}",
"text": "<$list filter={{$:/core/Filters/Drafts!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Explorer": {
"title": "$:/core/ui/MoreSideBar/Explorer",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Explorer/Caption}}",
"text": "<<tree \"$:/\">>\n"
},
"$:/core/ui/MoreSideBar/Missing": {
"title": "$:/core/ui/MoreSideBar/Missing",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Missing/Caption}}",
"text": "<$list filter={{$:/core/Filters/Missing!!filter}} template=\"$:/core/ui/MissingTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Orphans": {
"title": "$:/core/ui/MoreSideBar/Orphans",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Orphans/Caption}}",
"text": "<$list filter={{$:/core/Filters/Orphans!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/ControlPanel/Plugins/Caption}}",
"text": "\n{{$:/language/ControlPanel/Plugins/Installed/Hint}}\n\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar/Plugins]!has[draft.of]]\" \"$:/core/ui/MoreSideBar/Plugins/Plugins\">>\n"
},
"$:/core/ui/MoreSideBar/Recent": {
"title": "$:/core/ui/MoreSideBar/Recent",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/MoreSideBar/Shadows": {
"title": "$:/core/ui/MoreSideBar/Shadows",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Shadows/Caption}}",
"text": "<$list filter={{$:/core/Filters/ShadowTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/System": {
"title": "$:/core/ui/MoreSideBar/System",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/System/Caption}}",
"text": "<$list filter={{$:/core/Filters/SystemTiddlers!!filter}} template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/MoreSideBar/Tags": {
"title": "$:/core/ui/MoreSideBar/Tags",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Tags/Caption}}",
"text": "<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n{{$:/core/ui/Buttons/tag-manager}}\n\n</$set>\n\n</$set>\n\n</$set>\n\n<$list filter={{$:/core/Filters/AllTags!!filter}}>\n\n<$transclude tiddler=\"$:/core/ui/TagTemplate\"/>\n\n</$list>\n\n<hr class=\"tc-untagged-separator\">\n\n{{$:/core/ui/UntaggedTemplate}}\n"
},
"$:/core/ui/MoreSideBar/Types": {
"title": "$:/core/ui/MoreSideBar/Types",
"tags": "$:/tags/MoreSideBar",
"caption": "{{$:/language/SideBar/Types/Caption}}",
"text": "<$list filter={{$:/core/Filters/TypedTiddlers!!filter}}>\n<div class=\"tc-menu-list-item\">\n<$view field=\"type\"/>\n<$list filter=\"[type{!!type}!is[system]sort[title]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><$view field=\"title\"/></$link>\n</div>\n</$list>\n</div>\n</$list>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Languages": {
"title": "$:/core/ui/MoreSideBar/Plugins/Languages",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Languages/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[language]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Plugins": {
"title": "$:/core/ui/MoreSideBar/Plugins/Plugins",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Plugins/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[plugin]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}>>/>\n"
},
"$:/core/ui/MoreSideBar/Plugins/Theme": {
"title": "$:/core/ui/MoreSideBar/Plugins/Theme",
"tags": "$:/tags/MoreSideBar/Plugins",
"caption": "{{$:/language/ControlPanel/Plugins/Themes/Caption}}",
"text": "<$list filter=\"[!has[draft.of]plugin-type[theme]sort[description]]\" template=\"$:/core/ui/PluginListItemTemplate\" emptyMessage={{$:/language/ControlPanel/Plugins/Empty/Hint}}/>\n"
},
"$:/core/ui/Buttons/advanced-search": {
"title": "$:/core/ui/Buttons/advanced-search",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/advanced-search-button}} {{$:/language/Buttons/AdvancedSearch/Caption}}",
"description": "{{$:/language/Buttons/AdvancedSearch/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/AdvancedSearch]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/close-all": {
"title": "$:/core/ui/Buttons/close-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/close-all-button}} {{$:/language/Buttons/CloseAll/Caption}}",
"description": "{{$:/language/Buttons/CloseAll/Hint}}",
"text": "<$button message=\"tm-close-all-tiddlers\" tooltip={{$:/language/Buttons/CloseAll/Hint}} aria-label={{$:/language/Buttons/CloseAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/CloseAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/control-panel": {
"title": "$:/core/ui/Buttons/control-panel",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/options-button}} {{$:/language/Buttons/ControlPanel/Caption}}",
"description": "{{$:/language/Buttons/ControlPanel/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/ControlPanel\" tooltip={{$:/language/Buttons/ControlPanel/Hint}} aria-label={{$:/language/Buttons/ControlPanel/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/options-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/ControlPanel/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/ControlPanel]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/encryption": {
"title": "$:/core/ui/Buttons/encryption",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/locked-padlock}} {{$:/language/Buttons/Encryption/Caption}}",
"description": "{{$:/language/Buttons/Encryption/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"match\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-clear-password\" tooltip={{$:/language/Buttons/Encryption/ClearPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/ClearPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/locked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/ClearPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=\"$:/isEncrypted\" text=\"yes\">\n<$button message=\"tm-set-password\" tooltip={{$:/language/Buttons/Encryption/SetPassword/Hint}} aria-label={{$:/language/Buttons/Encryption/SetPassword/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/unlocked-padlock}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Encryption/SetPassword/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/export-page": {
"title": "$:/core/ui/Buttons/export-page",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportPage/Caption}}",
"description": "{{$:/language/Buttons/ExportPage/Hint}}",
"text": "<$macrocall $name=\"exportButton\" exportFilter=\"[!is[system]sort[title]]\" lingoBase=\"$:/language/Buttons/ExportPage/\"/>"
},
"$:/core/ui/Buttons/fold-all": {
"title": "$:/core/ui/Buttons/fold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/fold-all-button}} {{$:/language/Buttons/FoldAll/Caption}}",
"description": "{{$:/language/Buttons/FoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/FoldAll/Hint}} aria-label={{$:/language/Buttons/FoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/full-screen": {
"title": "$:/core/ui/Buttons/full-screen",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/full-screen-button}} {{$:/language/Buttons/FullScreen/Caption}}",
"description": "{{$:/language/Buttons/FullScreen/Hint}}",
"text": "<$button message=\"tm-full-screen\" tooltip={{$:/language/Buttons/FullScreen/Hint}} aria-label={{$:/language/Buttons/FullScreen/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/full-screen-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/FullScreen/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/home": {
"title": "$:/core/ui/Buttons/home",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/home-button}} {{$:/language/Buttons/Home/Caption}}",
"description": "{{$:/language/Buttons/Home/Hint}}",
"text": "<$button message=\"tm-home\" tooltip={{$:/language/Buttons/Home/Hint}} aria-label={{$:/language/Buttons/Home/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/home-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Home/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/import": {
"title": "$:/core/ui/Buttons/import",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/import-button}} {{$:/language/Buttons/Import/Caption}}",
"description": "{{$:/language/Buttons/Import/Hint}}",
"text": "<div class=\"tc-file-input-wrapper\">\n<$button tooltip={{$:/language/Buttons/Import/Hint}} aria-label={{$:/language/Buttons/Import/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/import-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Import/Caption}}/></span>\n</$list>\n</$button>\n<$browse tooltip={{$:/language/Buttons/Import/Hint}}/>\n</div>"
},
"$:/core/ui/Buttons/language": {
"title": "$:/core/ui/Buttons/language",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/globe}} {{$:/language/Buttons/Language/Caption}}",
"description": "{{$:/language/Buttons/Language/Hint}}",
"text": "\\whitespace trim\n\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/language\">> tooltip={{$:/language/Buttons/Language/Hint}} aria-label={{$:/language/Buttons/Language/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value={{$:/language}}>\n<$image source=<<flag-title>>/>\n</$set>\n</span>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Language/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/language\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/languageswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/manager": {
"title": "$:/core/ui/Buttons/manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/list}} {{$:/language/Buttons/Manager/Caption}}",
"description": "{{$:/language/Buttons/Manager/Hint}}",
"text": "\\whitespace trim\n\\define manager-button(class)\n<$button to=\"$:/Manager\" tooltip={{$:/language/Buttons/Manager/Hint}} aria-label={{$:/language/Buttons/Manager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/list}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Manager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/Manager]]\" emptyMessage=<<manager-button>>>\n<<manager-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/more-page-actions": {
"title": "$:/core/ui/Buttons/more-page-actions",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/More/Caption}}/></span>\n</$list>\n</$button><$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]] -[[$:/core/ui/Buttons/more-page-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-image": {
"title": "$:/core/ui/Buttons/new-image",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-image-button}} {{$:/language/Buttons/NewImage/Caption}}",
"description": "{{$:/language/Buttons/NewImage/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewImage/Hint}} aria-label={{$:/language/Buttons/NewImage/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-image}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-image-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewImage/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/new-journal": {
"title": "$:/core/ui/Buttons/new-journal",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournal/Caption}}",
"description": "{{$:/language/Buttons/NewJournal/Hint}}",
"text": "\\whitespace trim\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournal/Hint}} aria-label={{$:/language/Buttons/NewJournal/Caption}} class=<<tv-config-toolbar-class>> actions={{$:/core/ui/Actions/new-journal}}>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewJournal/Caption}}/></span>\n</$list>\n</$button>\n\\end\n<<journalButton>>\n"
},
"$:/core/ui/Buttons/new-tiddler": {
"title": "$:/core/ui/Buttons/new-tiddler",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/new-button}} {{$:/language/Buttons/NewTiddler/Caption}}",
"description": "{{$:/language/Buttons/NewTiddler/Hint}}",
"text": "\\whitespace trim\n<$button actions={{$:/core/ui/Actions/new-tiddler}} tooltip={{$:/language/Buttons/NewTiddler/Hint}} aria-label={{$:/language/Buttons/NewTiddler/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewTiddler/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/core/ui/Buttons/palette": {
"title": "$:/core/ui/Buttons/palette",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/palette}} {{$:/language/Buttons/Palette/Caption}}",
"description": "{{$:/language/Buttons/Palette/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/palette\">> tooltip={{$:/language/Buttons/Palette/Hint}} aria-label={{$:/language/Buttons/Palette/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/palette}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Palette/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/palette\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\" style=\"font-size:0.7em;\">\n{{$:/snippets/paletteswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/print": {
"title": "$:/core/ui/Buttons/print",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/print-button}} {{$:/language/Buttons/Print/Caption}}",
"description": "{{$:/language/Buttons/Print/Hint}}",
"text": "<$button message=\"tm-print\" tooltip={{$:/language/Buttons/Print/Hint}} aria-label={{$:/language/Buttons/Print/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/print-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Print/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/refresh": {
"title": "$:/core/ui/Buttons/refresh",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/refresh-button}} {{$:/language/Buttons/Refresh/Caption}}",
"description": "{{$:/language/Buttons/Refresh/Hint}}",
"text": "<$button message=\"tm-browser-refresh\" tooltip={{$:/language/Buttons/Refresh/Hint}} aria-label={{$:/language/Buttons/Refresh/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/refresh-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Refresh/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/save-wiki": {
"title": "$:/core/ui/Buttons/save-wiki",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/save-button}} {{$:/language/Buttons/SaveWiki/Caption}}",
"description": "{{$:/language/Buttons/SaveWiki/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/SaveWiki/Hint}} aria-label={{$:/language/Buttons/SaveWiki/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"site-title\" text={{$:/config/SaveWikiButton/Filename}}>\n<$action-sendmessage $message=\"tm-save-wiki\" $param={{$:/config/SaveWikiButton/Template}} filename=<<site-title>>/>\n</$wikify>\n<span class=\"tc-dirty-indicator\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/save-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/SaveWiki/Caption}}/></span>\n</$list>\n</span>\n</$button>"
},
"$:/core/ui/Buttons/storyview": {
"title": "$:/core/ui/Buttons/storyview",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/storyview-classic}} {{$:/language/Buttons/StoryView/Caption}}",
"description": "{{$:/language/Buttons/StoryView/Hint}}",
"text": "\\whitespace trim\n\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/storyview\">> tooltip={{$:/language/Buttons/StoryView/Hint}} aria-label={{$:/language/Buttons/StoryView/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n<$set name=\"storyview\" value={{$:/view}}>\n<$transclude tiddler=<<icon>>/>\n</$set>\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/StoryView/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/storyview\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n{{$:/snippets/viewswitcher}}\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/tag-manager": {
"title": "$:/core/ui/Buttons/tag-manager",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/tag-button}} {{$:/language/Buttons/TagManager/Caption}}",
"description": "{{$:/language/Buttons/TagManager/Hint}}",
"text": "\\whitespace trim\n\\define control-panel-button(class)\n<$button to=\"$:/TagManager\" tooltip={{$:/language/Buttons/TagManager/Hint}} aria-label={{$:/language/Buttons/TagManager/Caption}} class=\"\"\"$(tv-config-toolbar-class)$ $class$\"\"\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/tag-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/TagManager/Caption}}/></span>\n</$list>\n</$button>\n\\end\n\n<$list filter=\"[list[$:/StoryList]] +[field:title[$:/TagManager]]\" emptyMessage=<<control-panel-button>>>\n<<control-panel-button \"tc-selected\">>\n</$list>\n"
},
"$:/core/ui/Buttons/theme": {
"title": "$:/core/ui/Buttons/theme",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/theme-button}} {{$:/language/Buttons/Theme/Caption}}",
"description": "{{$:/language/Buttons/Theme/Hint}}",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/theme\">> tooltip={{$:/language/Buttons/Theme/Hint}} aria-label={{$:/language/Buttons/Theme/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/theme-button}}\n</$list>\n<$text text=\" \"/>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Theme/Caption}}/></span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/theme\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$linkcatcher to=\"$:/theme\">\n{{$:/snippets/themeswitcher}}\n</$linkcatcher>\n</div>\n</$reveal>\n"
},
"$:/core/ui/Buttons/timestamp": {
"title": "$:/core/ui/Buttons/timestamp",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/timestamp-on}} {{$:/language/Buttons/Timestamp/Caption}}",
"description": "{{$:/language/Buttons/Timestamp/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/On/Hint}} aria-label={{$:/language/Buttons/Timestamp/On/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"yes\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-on}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/On/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=\"$:/config/TimestampDisable\" text=\"yes\">\n<$button tooltip={{$:/language/Buttons/Timestamp/Off/Hint}} aria-label={{$:/language/Buttons/Timestamp/Off/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-setfield $tiddler=\"$:/config/TimestampDisable\" $value=\"no\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/timestamp-off}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/Timestamp/Off/Caption}}/></span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/unfold-all": {
"title": "$:/core/ui/Buttons/unfold-all",
"tags": "$:/tags/PageControls",
"caption": "{{$:/core/images/unfold-all-button}} {{$:/language/Buttons/UnfoldAll/Caption}}",
"description": "{{$:/language/Buttons/UnfoldAll/Hint}}",
"text": "<$button tooltip={{$:/language/Buttons/UnfoldAll/Hint}} aria-label={{$:/language/Buttons/UnfoldAll/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-unfold-all-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-all-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/UnfoldAll/Caption}}/></span>\n</$list>\n</$button>"
},
"$:/core/ui/PageTemplate/pagecontrols": {
"title": "$:/core/ui/PageTemplate/pagecontrols",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-page-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n<$set name=\"hidden\" value=<<config-title>>>\n<$list filter=\"[<hidden>!text[hide]]\" storyview=\"pop\" variable=\"ignore\">\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n</$set>\n</$list>\n</$set>\n</$list>\n</div>\n"
},
"$:/core/ui/PageStylesheet": {
"title": "$:/core/ui/PageStylesheet",
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"currentTiddler\" value={{$:/language}}>\n\n<$set name=\"languageTitle\" value={{!!name}}>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/PageTemplate/alerts": {
"title": "$:/core/ui/PageTemplate/alerts",
"tags": "$:/tags/PageTemplate",
"text": "<div class=\"tc-alerts\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Alert]!has[draft.of]]\" template=\"$:/core/ui/AlertTemplate\" storyview=\"pop\"/>\n\n</div>\n"
},
"$:/core/ui/PageTemplate/drafts": {
"title": "$:/core/ui/PageTemplate/drafts",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<$reveal state=\"$:/status/IsReadOnly\" type=\"nomatch\" text=\"yes\" tag=\"div\" class=\"tc-drafts-list\">\n<$list filter=\"[has[draft.of]!sort[modified]] -[list[$:/StoryList]]\">\n<$link>\n{{$:/core/images/edit-button}} <$text text=<<currentTiddler>>/>\n</$link>\n</$list>\n</$reveal>\n"
},
"$:/core/ui/PageTemplate/pluginreloadwarning": {
"title": "$:/core/ui/PageTemplate/pluginreloadwarning",
"tags": "$:/tags/PageTemplate",
"text": "\\define lingo-base() $:/language/\n\n<$list filter=\"[{$:/status/RequireReloadDueToPluginChange}match[yes]]\">\n\n<$reveal type=\"nomatch\" state=\"$:/temp/HidePluginWarning\" text=\"yes\">\n\n<div class=\"tc-plugin-reload-warning\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<<lingo PluginReloadWarning>> <$button set=\"$:/temp/HidePluginWarning\" setTo=\"yes\" class=\"tc-btn-invisible\">{{$:/core/images/close-button}}</$button>\n\n</$set>\n\n</div>\n\n</$reveal>\n\n</$list>\n"
},
"$:/core/ui/PageTemplate/sidebar": {
"title": "$:/core/ui/PageTemplate/sidebar",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/SideBarSegments/Visibility/$(listItem)$\n\\end\n\n<$scrollable fallthrough=\"no\" class=\"tc-sidebar-scrollable\">\n\n<div class=\"tc-sidebar-header\">\n\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]!has[draft.of]]\" variable=\"listItem\">\n\n<$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\" tag=\"div\">\n\n<$transclude tiddler=<<listItem>> mode=\"block\"/>\n\n</$reveal>\n\n</$list>\n\n</$reveal>\n\n</div>\n\n</$scrollable>\n"
},
"$:/core/ui/PageTemplate/story": {
"title": "$:/core/ui/PageTemplate/story",
"tags": "$:/tags/PageTemplate",
"text": "\\whitespace trim\n<section class=\"tc-story-river\">\n\n<section class=\"story-backdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AboveStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n<$list filter=\"[list[$:/StoryList]]\" history=\"$:/HistoryList\" template={{$:/config/ui/ViewTemplate}} editTemplate={{$:/config/ui/EditTemplate}} storyview={{$:/view}} emptyMessage={{$:/config/EmptyStoryMessage}}/>\n\n<section class=\"story-frontdrop\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/BelowStory]!has[draft.of]]\">\n\n<$transclude/>\n\n</$list>\n\n</section>\n\n</section>\n"
},
"$:/core/ui/PageTemplate/topleftbar": {
"title": "$:/core/ui/PageTemplate/topleftbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate/toprightbar": {
"title": "$:/core/ui/PageTemplate/toprightbar",
"tags": "$:/tags/PageTemplate",
"text": "<span class=\"tc-topbar tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\" storyview=\"pop\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</span>\n"
},
"$:/core/ui/PageTemplate": {
"title": "$:/core/ui/PageTemplate",
"text": "\\whitespace trim\n\\define containerClasses()\ntc-page-container tc-page-view-$(storyviewTitle)$ tc-language-$(languageTitle)$\n\\end\n\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\n<$set name=\"tv-config-toolbar-icons\" value={{$:/config/Toolbar/Icons}}>\n\n<$set name=\"tv-config-toolbar-text\" value={{$:/config/Toolbar/Text}}>\n\n<$set name=\"tv-config-toolbar-class\" value={{$:/config/Toolbar/ButtonClass}}>\n\n<$set name=\"tv-enable-drag-and-drop\" value={{$:/config/DragAndDrop/Enable}}>\n\n<$set name=\"tv-show-missing-links\" value={{$:/config/MissingLinks}}>\n\n<$set name=\"storyviewTitle\" value={{$:/view}}>\n\n<$set name=\"languageTitle\" value={{{ [{$:/language}get[name]] }}}>\n\n<div class=<<containerClasses>>>\n\n<$navigator story=\"$:/StoryList\" history=\"$:/HistoryList\" openLinkFromInsideRiver={{$:/config/Navigation/openLinkFromInsideRiver}} openLinkFromOutsideRiver={{$:/config/Navigation/openLinkFromOutsideRiver}} relinkOnRename={{$:/config/RelinkOnRename}}>\n\n<$dropzone enable=<<tv-enable-drag-and-drop>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageTemplate]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</$dropzone>\n\n</$navigator>\n\n</div>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/PaletteManager": {
"title": "$:/PaletteManager",
"text": "\\define lingo-base() $:/language/ControlPanel/Palette/Editor/\n\\define describePaletteColour(colour)\n<$transclude tiddler=\"$:/language/Docs/PaletteColours/$colour$\"><$text text=\"$colour$\"/></$transclude>\n\\end\n\\define edit-colour-placeholder()\n edit $(colourName)$\n\\end\n\\define colour-tooltip(showhide) $showhide$ editor for $(newColourName)$ \n\\define resolve-colour(macrocall)\n\\import $:/core/macros/utils\n\\whitespace trim\n<$wikify name=\"name\" text=\"\"\"$macrocall$\"\"\">\n<<name>>\n</$wikify>\n\\end\n\\define delete-colour-index-actions() <$action-setfield $index=<<colourName>>/>\n\\define palette-manager-colour-row-segment()\n\\whitespace trim\n<$edit-text index=<<colourName>> tag=\"input\" placeholder=<<edit-colour-placeholder>> default=\"\"/>\n<br>\n<$edit-text index=<<colourName>> type=\"color\" tag=\"input\" class=\"tc-palette-manager-colour-input\"/>\n<$list filter=\"[<currentTiddler>getindex<colourName>removeprefix[<<]removesuffix[>>]] [<currentTiddler>getindex<colourName>removeprefix[<$]removesuffix[/>]]\" variable=\"ignore\">\n<$set name=\"state\" value={{{ [[$:/state/palettemanager/]addsuffix<currentTiddler>addsuffix[/]addsuffix<colourName>] }}}>\n<$wikify name=\"newColourName\" text=\"\"\"<$macrocall $name=\"resolve-colour\" macrocall={{{ [<currentTiddler>getindex<colourName>] }}}/>\"\"\">\n<$reveal state=<<state>> type=\"nomatch\" text=\"show\">\n<$button tooltip=<<colour-tooltip show>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" set=<<state>> setTo=\"show\">{{$:/core/images/down-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$button tooltip=<<colour-tooltip hide>> aria-label=<<colour-tooltip show>> class=\"tc-btn-invisible\" actions=\"\"\"<$action-deletetiddler $tiddler=<<state>>/>\"\"\">{{$:/core/images/up-arrow}} <$text text=<<newColourName>>/></$button><br>\n</$reveal>\n<$reveal state=<<state>> type=\"match\" text=\"show\">\n<$set name=\"colourName\" value=<<newColourName>>>\n<br>\n<<palette-manager-colour-row-segment>>\n<br><br>\n</$set>\n</$reveal>\n</$wikify>\n</$set>\n</$list>\n\\end\n\\define palette-manager-colour-row()\n\\whitespace trim\n<tr>\n<td>\n<span style=\"float:right;\">\n<$button tooltip=<<lingo Delete/Hint>> aria-label=<<lingo Delete/Hint>> class=\"tc-btn-invisible\" actions=<<delete-colour-index-actions>>>\n{{$:/core/images/delete-button}}</$button>\n</span>\n''<$macrocall $name=\"describePaletteColour\" colour=<<colourName>>/>''<br/>\n<$macrocall $name=\"colourName\" $output=\"text/plain\"/>\n</td>\n<td>\n<<palette-manager-colour-row-segment>>\n</td>\n</tr>\n\\end\n\\define palette-manager-table()\n\\whitespace trim\n<table>\n<tbody>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]indexes[]]\" variable=\"colourName\">\n<$list filter=\"[<currentTiddler>indexes[]removeprefix<colourName>suffix[]]\" variable=\"ignore\" emptyMessage=\"\"\"\n<$list filter=\"[{$:/state/palettemanager/showexternal}removeprefix[yes]suffix[]]\" variable=\"ignore\">\n<<palette-manager-colour-row>>\n</$list>\n\"\"\">\n<<palette-manager-colour-row>>\n</$list>\n</$list>\n</tbody>\n</table>\n\\end\n<$set name=\"currentTiddler\" value={{$:/palette}}>\n\n<<lingo Prompt>> <$link to={{$:/palette}}><$macrocall $name=\"currentTiddler\" $output=\"text/plain\"/></$link>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\" variable=\"listItem\">\n<<lingo Prompt/Modified>>\n<$button message=\"tm-delete-tiddler\" param={{$:/palette}}><<lingo Reset/Caption>></$button>\n</$list>\n\n<$list filter=\"[all[current]is[shadow]!is[tiddler]]\" variable=\"listItem\">\n<<lingo Clone/Prompt>>\n</$list>\n\n<$button message=\"tm-new-tiddler\" param={{$:/palette}}><<lingo Clone/Caption>></$button>\n\n<$checkbox tiddler=\"$:/state/palettemanager/showexternal\" field=\"text\" checked=\"yes\" unchecked=\"no\"> <<lingo Names/External/Show>></$checkbox>\n\n<<palette-manager-table>>\n"
},
"$:/core/ui/PluginInfo": {
"title": "$:/core/ui/PluginInfo",
"text": "\\define localised-info-tiddler-title()\n$(currentTiddler)$/$(languageTitle)$/$(currentTab)$\n\\end\n\\define info-tiddler-title()\n$(currentTiddler)$/$(currentTab)$\n\\end\n\\define default-tiddler-title()\n$:/core/ui/PluginInfo/Default/$(currentTab)$\n\\end\n<$transclude tiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<localised-info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<currentTiddler>> subtiddler=<<info-tiddler-title>> mode=\"block\">\n<$transclude tiddler=<<default-tiddler-title>> mode=\"block\">\n{{$:/language/ControlPanel/Plugin/NoInfoFound/Hint}}\n</$transclude>\n</$transclude>\n</$transclude>\n</$transclude>\n"
},
"$:/core/ui/PluginInfo/Default/contents": {
"title": "$:/core/ui/PluginInfo/Default/contents",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link />\n</li>\n</$list>\n</ul>\n"
},
"$:/core/ui/PluginListItemTemplate": {
"title": "$:/core/ui/PluginListItemTemplate",
"text": "<div class=\"tc-menu-list-item\">\n<$link to={{!!title}}><$view field=\"description\"><$view field=\"title\"/></$view></$link>\n</div>"
},
"$:/core/ui/SearchResults": {
"title": "$:/core/ui/SearchResults",
"text": "<div class=\"tc-search-results\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]butfirst[]limit[1]]\" emptyMessage=\"\"\"\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\">\n<$transclude mode=\"block\"/>\n</$list>\n\"\"\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SearchResults]!has[draft.of]]\" default={{$:/config/SearchResults/Default}}/>\n\n</$list>\n\n</div>\n"
},
"$:/core/ui/SideBar/More": {
"title": "$:/core/ui/SideBar/More",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/More/Caption}}",
"text": "<div class=\"tc-more-sidebar\">\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/MoreSideBar]!has[draft.of]]\" default={{$:/config/DefaultMoreSidebarTab}} state=\"$:/state/tab/moresidebar\" class=\"tc-vertical tc-sidebar-tabs-more\" />\n</div>"
},
"$:/core/ui/SideBar/Open": {
"title": "$:/core/ui/SideBar/Open",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Open/Caption}}",
"text": "\\whitespace trim\n\\define lingo-base() $:/language/CloseAll/\n\n\\define drop-actions()\n<$action-listops $tiddler=<<tv-story-list>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define placeholder()\n<div class=\"tc-droppable-placeholder\"/>\n\\end\n\n\\define droppable-item(button)\n\\whitespace trim\n<$droppable actions=<<drop-actions>> enable=<<tv-allow-drag-and-drop>>>\n<<placeholder>>\n<div>\n$button$\n</div>\n</$droppable>\n\\end\n\n<div class=\"tc-sidebar-tab-open\">\n<$list filter=\"[list<tv-story-list>]\" history=<<tv-history-list>> storyview=\"pop\">\n<div class=\"tc-sidebar-tab-open-item\">\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=\"tc-btn-invisible tc-btn-mini\">{{$:/core/images/close-button}}</$button> <$link to={{!!title}}><$view field=\"title\"/></$link>\"\"\"/>\n</div>\n</$list>\n<$tiddler tiddler=\"\">\n<div>\n<$macrocall $name=\"droppable-item\" button=\"\"\"<$button message=\"tm-close-all-tiddlers\" class=\"tc-btn-invisible tc-btn-mini\"><<lingo Button>></$button>\"\"\"/>\n</div>\n</$tiddler>\n</div>\n"
},
"$:/core/ui/SideBar/Recent": {
"title": "$:/core/ui/SideBar/Recent",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Recent/Caption}}",
"text": "<$macrocall $name=\"timeline\" format={{$:/language/RecentChanges/DateFormat}}/>\n"
},
"$:/core/ui/SideBar/Tools": {
"title": "$:/core/ui/SideBar/Tools",
"tags": "$:/tags/SideBar",
"caption": "{{$:/language/SideBar/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/ControlPanel/\n\\define config-title()\n$:/config/PageControlButtons/Visibility/$(listItem)$\n\\end\n\n<<lingo Basics/Version/Prompt>> <<version>>\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]!has[draft.of]]\" variable=\"listItem\">\n\n<div style=\"position:relative;\" class={{{ [<listItem>encodeuricomponent[]addprefix[tc-btn-]] }}}>\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</div>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/SideBarLists": {
"title": "$:/core/ui/SideBarLists",
"text": "<$transclude tiddler=\"$:/core/ui/SideBarSegments/search\"/>\n\n<$transclude tiddler=\"$:/core/ui/SideBarSegments/tabs\"/>\n\n"
},
"$:/core/ui/SideBarSegments/page-controls": {
"title": "$:/core/ui/SideBarSegments/page-controls",
"tags": "$:/tags/SideBarSegment",
"text": "{{||$:/core/ui/PageTemplate/pagecontrols}}\n"
},
"$:/core/ui/SideBarSegments/search": {
"title": "$:/core/ui/SideBarSegments/search",
"tags": "$:/tags/SideBarSegment",
"text": "\\whitespace trim\n<div class=\"tc-sidebar-lists tc-sidebar-search\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/search\">\n<div class=\"tc-search\">\n<$edit-text tiddler=\"$:/temp/search\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\"/>\n<$reveal state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n<$button tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text={{$:/temp/search}}/>\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\"/>\n<$action-navigate $to=\"$:/AdvancedSearch\"/>\n{{$:/core/images/advanced-search-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/search\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" variable=\"listItem\">\n<$set name=\"searchTerm\" value={{{ [<searchTiddler>get[text]] }}}>\n<$set name=\"resultCount\" value=\"\"\"<$count filter=\"[!is[system]search<searchTerm>]\"/>\"\"\">\n{{$:/language/Search/Matches}}\n</$set>\n</$set>\n</$list>\n</$button>\n</$reveal>\n<$reveal state=\"$:/temp/search\" type=\"match\" text=\"\">\n<$button to=\"$:/AdvancedSearch\" tooltip={{$:/language/Buttons/AdvancedSearch/Hint}} aria-label={{$:/language/Buttons/AdvancedSearch/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/advanced-search-button}}\n</$button>\n</$reveal>\n</div>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/search\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<$list filter=\"[{$:/temp/search}minlength{$:/config/Search/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n\n{{$:/core/ui/SearchResults}}\n\n</$list>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-subtitle": {
"title": "$:/core/ui/SideBarSegments/site-subtitle",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-site-subtitle\">\n\n<$transclude tiddler=\"$:/SiteSubtitle\" mode=\"inline\"/>\n\n</div>\n"
},
"$:/core/ui/SideBarSegments/site-title": {
"title": "$:/core/ui/SideBarSegments/site-title",
"tags": "$:/tags/SideBarSegment",
"text": "<h1 class=\"tc-site-title\">\n\n<$transclude tiddler=\"$:/SiteTitle\" mode=\"inline\"/>\n\n</h1>\n"
},
"$:/core/ui/SideBarSegments/tabs": {
"title": "$:/core/ui/SideBarSegments/tabs",
"tags": "$:/tags/SideBarSegment",
"text": "<div class=\"tc-sidebar-lists tc-sidebar-tabs\">\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/SideBar]!has[draft.of]]\" default={{$:/config/DefaultSidebarTab}} state=\"$:/state/tab/sidebar\" class=\"tc-sidebar-tabs-main\"/>\n\n</div>\n"
},
"$:/TagManager": {
"title": "$:/TagManager",
"icon": "$:/core/images/tag-button",
"color": "#bbb",
"text": "\\define lingo-base() $:/language/TagManager/\n\\define iconEditorTab(type)\n\\whitespace trim\n<$link to=\"\"><<lingo Icons/None>></$link>\n<$list filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[sort[title]] +[$type$is[system]]\">\n<$link to={{!!title}}>\n<$transclude/> <$view field=\"title\"/>\n</$link>\n</$list>\n\\end\n\\define iconEditor(title)\n\\whitespace trim\n<div class=\"tc-drop-down-wrapper\">\n<$button popupTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal stateTitle={{{ [[$:/state/popup/icon/]addsuffix<__title__>] }}} type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$linkcatcher actions=\"\"\"<$action-setfield $tiddler=<<__title__>> icon=<<navigateTo>>/>\"\"\">\n<<iconEditorTab type:\"!\">>\n<hr/>\n<<iconEditorTab type:\"\">>\n</$linkcatcher>\n</div>\n</$reveal>\n</div>\n\\end\n\\define toggleButton(state)\n\\whitespace trim\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"closed\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"open\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n<$reveal stateTitle=<<__state__>> type=\"match\" text=\"open\" default=\"closed\">\n<$button setTitle=<<__state__>> setTo=\"closed\" class=\"tc-btn-invisible tc-btn-dropdown\" selectedClass=\"tc-selected\">\n{{$:/core/images/info-button}}\n</$button>\n</$reveal>\n\\end\n\\whitespace trim\n<table class=\"tc-tag-manager-table\">\n<tbody>\n<tr>\n<th><<lingo Colour/Heading>></th>\n<th class=\"tc-tag-manager-tag\"><<lingo Tag/Heading>></th>\n<th><<lingo Count/Heading>></th>\n<th><<lingo Icon/Heading>></th>\n<th><<lingo Info/Heading>></th>\n</tr>\n<$list filter=\"[tags[]!is[system]sort[title]]\">\n<tr>\n<td><$edit-text field=\"color\" tag=\"input\" type=\"color\"/></td>\n<td>{{||$:/core/ui/TagTemplate}}</td>\n<td><$count filter=\"[all[current]tagging[]]\"/></td>\n<td>\n<$macrocall $name=\"iconEditor\" title={{!!title}}/>\n</td>\n<td>\n<$macrocall $name=\"toggleButton\" state={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} /> \n</td>\n</tr>\n<tr>\n<td></td>\n<td colspan=\"4\">\n<$reveal stateTitle={{{ [[$:/state/tag-manager/]addsuffix<currentTiddler>] }}} type=\"match\" text=\"open\" default=\"\">\n<table>\n<tbody>\n<tr><td><<lingo Colour/Heading>></td><td><$edit-text field=\"color\" tag=\"input\" type=\"text\" size=\"9\"/></td></tr>\n<tr><td><<lingo Icon/Heading>></td><td><$edit-text field=\"icon\" tag=\"input\" size=\"45\"/></td></tr>\n</tbody>\n</table>\n</$reveal>\n</td>\n</tr>\n</$list>\n<tr>\n<td></td>\n<td style=\"position:relative;\">\n{{$:/core/ui/UntaggedTemplate}}\n</td>\n<td>\n<small class=\"tc-menu-list-count\"><$count filter=\"[untagged[]!is[system]] -[tags[]]\"/></small>\n</td>\n<td></td>\n<td></td>\n</tr>\n</tbody>\n</table>\n"
},
"$:/core/ui/TagTemplate": {
"title": "$:/core/ui/TagTemplate",
"text": "\\whitespace trim\n<span class=\"tc-tag-list-item\">\n<$set name=\"transclusion\" value=<<currentTiddler>>>\n<$macrocall $name=\"tag-pill-body\" tag=<<currentTiddler>> icon={{!!icon}} colour={{!!color}} palette={{$:/palette}} element-tag=\"\"\"$button\"\"\" element-attributes=\"\"\"popup=<<qualify \"$:/state/popup/tag\">> dragFilter='[all[current]tagging[]]' tag='span'\"\"\"/>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\" animate=\"yes\" class=\"tc-drop-down\">\n<$set name=\"tv-show-missing-links\" value=\"yes\">\n<$transclude tiddler=\"$:/core/ui/ListItemTemplate\"/>\n</$set>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TagDropdown]!has[draft.of]]\" variable=\"listItem\"> \n<$transclude tiddler=<<listItem>>/> \n</$list>\n<hr>\n<$macrocall $name=\"list-tagged-draggable\" tag=<<currentTiddler>>/>\n</$reveal>\n</$set>\n</span>\n"
},
"$:/core/ui/TiddlerFieldTemplate": {
"title": "$:/core/ui/TiddlerFieldTemplate",
"text": "<tr class=\"tc-view-field\">\n<td class=\"tc-view-field-name\">\n<$text text=<<listItem>>/>\n</td>\n<td class=\"tc-view-field-value\">\n<$view field=<<listItem>>/>\n</td>\n</tr>"
},
"$:/core/ui/TiddlerFields": {
"title": "$:/core/ui/TiddlerFields",
"text": "<table class=\"tc-view-field-table\">\n<tbody>\n<$list filter=\"[all[current]fields[]sort[title]] -text\" template=\"$:/core/ui/TiddlerFieldTemplate\" variable=\"listItem\"/>\n</tbody>\n</table>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/PluginInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/PluginInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/PluginInfo/\n<$list filter=\"[all[current]has[plugin-type]]\">\n\n! <<lingo Heading>>\n\n<<lingo Hint>>\n<ul>\n<$list filter=\"[all[current]plugintiddlers[]sort[title]]\" emptyMessage=<<lingo Empty/Hint>>>\n<li>\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</li>\n</$list>\n</ul>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Advanced/ShadowInfo": {
"title": "$:/core/ui/TiddlerInfo/Advanced/ShadowInfo",
"tags": "$:/tags/TiddlerInfo/Advanced",
"text": "\\define lingo-base() $:/language/TiddlerInfo/Advanced/ShadowInfo/\n<$set name=\"infoTiddler\" value=<<currentTiddler>>>\n\n''<<lingo Heading>>''\n\n<$list filter=\"[all[current]!is[shadow]]\">\n\n<<lingo NotShadow/Hint>>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]]\">\n\n<<lingo Shadow/Hint>>\n\n<$list filter=\"[all[current]shadowsource[]]\">\n\n<$set name=\"pluginTiddler\" value=<<currentTiddler>>>\n<<lingo Shadow/Source>>\n</$set>\n\n</$list>\n\n<$list filter=\"[all[current]is[shadow]is[tiddler]]\">\n\n<<lingo OverriddenShadow/Hint>>\n\n</$list>\n\n\n</$list>\n</$set>\n"
},
"$:/core/ui/TiddlerInfo/Advanced": {
"title": "$:/core/ui/TiddlerInfo/Advanced",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Advanced/Caption}}",
"text": "<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo/Advanced]!has[draft.of]]\" variable=\"listItem\">\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n"
},
"$:/core/ui/TiddlerInfo/Fields": {
"title": "$:/core/ui/TiddlerInfo/Fields",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Fields/Caption}}",
"text": "<$transclude tiddler=\"$:/core/ui/TiddlerFields\"/>\n"
},
"$:/core/ui/TiddlerInfo/List": {
"title": "$:/core/ui/TiddlerInfo/List",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/List/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[list{!!title}]\" emptyMessage=<<lingo List/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Listed": {
"title": "$:/core/ui/TiddlerInfo/Listed",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Listed/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=<<lingo Listed/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/References": {
"title": "$:/core/ui/TiddlerInfo/References",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/References/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]backlinks[]sort[title]]\" emptyMessage=<<lingo References/Empty>> template=\"$:/core/ui/ListItemTemplate\">\n</$list>"
},
"$:/core/ui/TiddlerInfo/Tagging": {
"title": "$:/core/ui/TiddlerInfo/Tagging",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tagging/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n<$list filter=\"[all[current]tagging[]]\" emptyMessage=<<lingo Tagging/Empty>> template=\"$:/core/ui/ListItemTemplate\"/>\n"
},
"$:/core/ui/TiddlerInfo/Tools": {
"title": "$:/core/ui/TiddlerInfo/Tools",
"tags": "$:/tags/TiddlerInfo",
"caption": "{{$:/language/TiddlerInfo/Tools/Caption}}",
"text": "\\define lingo-base() $:/language/TiddlerInfo/\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\">\n\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"/> <$transclude tiddler=<<listItem>>/> <i class=\"tc-muted\"><$transclude tiddler=<<listItem>> field=\"description\"/></i>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n"
},
"$:/core/ui/TiddlerInfo": {
"title": "$:/core/ui/TiddlerInfo",
"text": "<div style=\"position:relative;\">\n<div class=\"tc-tiddler-controls\" style=\"position:absolute;right:0;\">\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=\"tc-btn-invisible\">\n{{$:/core/images/close-button}}\n</$button>\n</$reveal>\n</div>\n</div>\n\n<$macrocall $name=\"tabs\" tabsList=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfo]!has[draft.of]]\" default={{$:/config/TiddlerInfo/Default}}/>"
},
"$:/core/ui/TopBar/menu": {
"title": "$:/core/ui/TopBar/menu",
"tags": "$:/tags/TopRightBar",
"text": "<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]!match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$list>\n<$list filter=\"[[$:/state/sidebar]get[text]] +[else[yes]match[no]]\" variable=\"ignore\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$list>\n"
},
"$:/core/ui/UntaggedTemplate": {
"title": "$:/core/ui/UntaggedTemplate",
"text": "\\define lingo-base() $:/language/SideBar/\n<$button popup=<<qualify \"$:/state/popup/tag\">> class=\"tc-btn-invisible tc-untagged-label tc-tag-label\">\n<<lingo Tags/Untagged/Caption>>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/tag\">> type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[untagged[]!is[system]] -[tags[]] +[sort[title]]\" template=\"$:/core/ui/ListItemTemplate\"/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/body": {
"title": "$:/core/ui/ViewTemplate/body",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" class=\"tc-tiddler-body\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$list filter=\"[all[current]!has[plugin-type]!field:hide-body[yes]]\">\n\n<$transclude>\n\n<$transclude tiddler=\"$:/language/MissingTiddler/Hint\"/>\n\n</$transclude>\n\n</$list>\n\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/classic": {
"title": "$:/core/ui/ViewTemplate/classic",
"tags": "$:/tags/ViewTemplate $:/tags/EditTemplate",
"text": "\\define lingo-base() $:/language/ClassicWarning/\n<$list filter=\"[all[current]type[text/x-tiddlywiki]]\">\n<div class=\"tc-message-box\">\n\n<<lingo Hint>>\n\n<$button set=\"!!type\" setTo=\"text/vnd.tiddlywiki\"><<lingo Upgrade/Caption>></$button>\n\n</div>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/import": {
"title": "$:/core/ui/ViewTemplate/import",
"tags": "$:/tags/ViewTemplate",
"text": "\\define lingo-base() $:/language/Import/\n\n\\define buttons()\n<$button message=\"tm-delete-tiddler\" param=<<currentTiddler>>><<lingo Listing/Cancel/Caption>></$button>\n<$button message=\"tm-perform-import\" param=<<currentTiddler>>><<lingo Listing/Import/Caption>></$button>\n<<lingo Listing/Preview>> <$select tiddler=\"$:/state/importpreviewtype\" default=\"$:/core/ui/ImportPreviews/Text\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ImportPreview]!has[draft.of]]\">\n<option value=<<currentTiddler>>>{{!!caption}}</option>\n</$list>\n</$select>\n\\end\n\n<$list filter=\"[all[current]field:plugin-type[import]]\">\n\n<div class=\"tc-import\">\n\n<<lingo Listing/Hint>>\n\n<<buttons>>\n\n{{||$:/core/ui/ImportListing}}\n\n<<buttons>>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ViewTemplate/plugin": {
"title": "$:/core/ui/ViewTemplate/plugin",
"tags": "$:/tags/ViewTemplate",
"text": "<$list filter=\"[all[current]has[plugin-type]] -[all[current]field:plugin-type[import]]\">\n<$set name=\"plugin-type\" value={{!!plugin-type}}>\n<$set name=\"default-popup-state\" value=\"yes\">\n<$set name=\"qualified-state\" value=<<qualify \"$:/state/plugin-info\">>>\n{{||$:/core/ui/Components/plugin-info}}\n</$set>\n</$set>\n</$set>\n</$list>\n"
},
"$:/core/ui/ViewTemplate/subtitle": {
"title": "$:/core/ui/ViewTemplate/subtitle",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-subtitle\">\n<$link to={{!!modifier}} />\n<$view field=\"modified\" format=\"date\" template={{$:/language/Tiddler/DateFormat}}/>\n</div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/tags": {
"title": "$:/core/ui/ViewTemplate/tags",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" tag=\"div\" retain=\"yes\" animate=\"yes\">\n<div class=\"tc-tags-wrapper\"><$list filter=\"[all[current]tags[]sort[title]]\" template=\"$:/core/ui/TagTemplate\" storyview=\"pop\"/></div>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate/title": {
"title": "$:/core/ui/ViewTemplate/title",
"tags": "$:/tags/ViewTemplate",
"text": "\\whitespace trim\n\\define title-styles()\nfill:$(foregroundColor)$;\n\\end\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<div class=\"tc-tiddler-title\">\n<div class=\"tc-titlebar\">\n<span class=\"tc-tiddler-controls\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]]\" variable=\"listItem\"><$reveal type=\"nomatch\" state=<<config-title>> text=\"hide\"><$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\"><$transclude tiddler=<<listItem>>/></$set></$reveal></$list>\n</span>\n<$set name=\"tv-wikilinks\" value={{$:/config/Tiddlers/TitleLinks}}>\n<$link>\n<$set name=\"foregroundColor\" value={{!!color}}>\n<span class=\"tc-tiddler-title-icon\" style=<<title-styles>>>\n<$transclude tiddler={{!!icon}}>\n<$transclude tiddler={{$:/config/DefaultTiddlerIcon}}/>\n</$transclude>\n</span>\n</$set>\n<$list filter=\"[all[current]removeprefix[$:/]]\">\n<h2 class=\"tc-title\" title={{$:/language/SystemTiddler/Tooltip}}>\n<span class=\"tc-system-title-prefix\">$:/</span><$text text=<<currentTiddler>>/>\n</h2>\n</$list>\n<$list filter=\"[all[current]!prefix[$:/]]\">\n<h2 class=\"tc-title\">\n<$view field=\"title\"/>\n</h2>\n</$list>\n</$link>\n</$set>\n</div>\n\n<$reveal type=\"nomatch\" text=\"\" default=\"\" state=<<tiddlerInfoState>> class=\"tc-tiddler-info tc-popup-handle\" animate=\"yes\" retain=\"yes\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TiddlerInfoSegment]!has[draft.of]] [[$:/core/ui/TiddlerInfo]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>> mode=\"block\"/></$list>\n\n</$reveal>\n</div>"
},
"$:/core/ui/ViewTemplate/unfold": {
"title": "$:/core/ui/ViewTemplate/unfold",
"tags": "$:/tags/ViewTemplate",
"text": "<$reveal tag=\"div\" type=\"nomatch\" state=\"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar\" text=\"hide\">\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=\"tc-fold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$reveal>\n<$reveal tag=\"div\" type=\"nomatch\" stateTitle=<<folded-state>> text=\"show\" default=\"show\" retain=\"yes\" animate=\"yes\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=\"tc-unfold-banner\">\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$reveal>\n</$reveal>\n"
},
"$:/core/ui/ViewTemplate": {
"title": "$:/core/ui/ViewTemplate",
"text": "\\define folded-state()\n$:/state/folded/$(currentTiddler)$\n\\end\n\\import [all[shadows+tiddlers]tag[$:/tags/Macro/View]!has[draft.of]]\n<$vars storyTiddler=<<currentTiddler>> tiddlerInfoState=<<qualify \"$:/state/popup/tiddler-info\">>><div data-tiddler-title=<<currentTiddler>> data-tags={{!!tags}} class={{{ tc-tiddler-frame tc-tiddler-view-frame [<currentTiddler>is[tiddler]then[tc-tiddler-exists]] [<currentTiddler>is[missing]!is[shadow]then[tc-tiddler-missing]] [<currentTiddler>is[shadow]then[tc-tiddler-exists tc-tiddler-shadow]] [<currentTiddler>is[shadow]is[tiddler]then[tc-tiddler-overridden-shadow]] [<currentTiddler>is[system]then[tc-tiddler-system]] [{!!class}] [<currentTiddler>tags[]encodeuricomponent[]addprefix[tc-tagged-]] +[join[ ]] }}}><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewTemplate]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n</$vars>\n"
},
"$:/core/ui/Buttons/clone": {
"title": "$:/core/ui/Buttons/clone",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/clone-button}} {{$:/language/Buttons/Clone/Caption}}",
"description": "{{$:/language/Buttons/Clone/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-new-tiddler\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/Clone/Hint}} aria-label={{$:/language/Buttons/Clone/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/clone-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Clone/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close-others": {
"title": "$:/core/ui/Buttons/close-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-others-button}} {{$:/language/Buttons/CloseOthers/Caption}}",
"description": "{{$:/language/Buttons/CloseOthers/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-other-tiddlers\" param=<<currentTiddler>> tooltip={{$:/language/Buttons/CloseOthers/Hint}} aria-label={{$:/language/Buttons/CloseOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/CloseOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/close": {
"title": "$:/core/ui/Buttons/close",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/close-button}} {{$:/language/Buttons/Close/Caption}}",
"description": "{{$:/language/Buttons/Close/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-close-tiddler\" tooltip={{$:/language/Buttons/Close/Hint}} aria-label={{$:/language/Buttons/Close/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/close-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Close/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/edit": {
"title": "$:/core/ui/Buttons/edit",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/edit-button}} {{$:/language/Buttons/Edit/Caption}}",
"description": "{{$:/language/Buttons/Edit/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-edit-tiddler\" tooltip={{$:/language/Buttons/Edit/Hint}} aria-label={{$:/language/Buttons/Edit/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/edit-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Edit/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/export-tiddler": {
"title": "$:/core/ui/Buttons/export-tiddler",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/export-button}} {{$:/language/Buttons/ExportTiddler/Caption}}",
"description": "{{$:/language/Buttons/ExportTiddler/Hint}}",
"text": "\\define makeExportFilter()\n[[$(currentTiddler)$]]\n\\end\n<$macrocall $name=\"exportButton\" exportFilter=<<makeExportFilter>> lingoBase=\"$:/language/Buttons/ExportTiddler/\" baseFilename=<<currentTiddler>>/>"
},
"$:/core/ui/Buttons/fold-bar": {
"title": "$:/core/ui/Buttons/fold-bar",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/chevron-up}} {{$:/language/Buttons/Fold/FoldBar/Caption}}",
"description": "{{$:/language/Buttons/Fold/FoldBar/Hint}}",
"text": "<!-- This dummy toolbar button is here to allow visibility of the fold-bar to be controlled as if it were a toolbar button -->"
},
"$:/core/ui/Buttons/fold-others": {
"title": "$:/core/ui/Buttons/fold-others",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-others-button}} {{$:/language/Buttons/FoldOthers/Caption}}",
"description": "{{$:/language/Buttons/FoldOthers/Hint}}",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/FoldOthers/Hint}} aria-label={{$:/language/Buttons/FoldOthers/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-other-tiddlers\" $param=<<currentTiddler>> foldedStatePrefix=\"$:/state/folded/\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-others-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/FoldOthers/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/fold": {
"title": "$:/core/ui/Buttons/fold",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/fold-button}} {{$:/language/Buttons/Fold/Caption}}",
"description": "{{$:/language/Buttons/Fold/Hint}}",
"text": "\\whitespace trim\n<$reveal type=\"nomatch\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Fold/Hint}} aria-label={{$:/language/Buttons/Fold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/fold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Fold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<folded-state>> text=\"hide\" default=\"show\">\n<$button tooltip={{$:/language/Buttons/Unfold/Hint}} aria-label={{$:/language/Buttons/Unfold/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-fold-tiddler\" $param=<<currentTiddler>> foldedState=<<folded-state>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\" variable=\"listItem\">\n{{$:/core/images/unfold-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Unfold/Caption}}/>\n</span>\n</$list>\n</$button>\n</$reveal>\n"
},
"$:/core/ui/Buttons/info": {
"title": "$:/core/ui/Buttons/info",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/info-button}} {{$:/language/Buttons/Info/Caption}}",
"description": "{{$:/language/Buttons/Info/Hint}}",
"text": "\\whitespace trim\n\\define button-content()\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/info-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/Info/Caption}}/>\n</span>\n</$list>\n\\end\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"popup\">\n<$button popup=<<tiddlerInfoState>> tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=\"$:/config/TiddlerInfo/Mode\" type=\"match\" text=\"sticky\">\n<$reveal state=<<tiddlerInfoState>> type=\"match\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"yes\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n<$reveal state=<<tiddlerInfoState>> type=\"nomatch\" text=\"\" default=\"\">\n<$button set=<<tiddlerInfoState>> setTo=\"\" tooltip={{$:/language/Buttons/Info/Hint}} aria-label={{$:/language/Buttons/Info/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$macrocall $name=\"button-content\" mode=\"inline\"/>\n</$button>\n</$reveal>\n</$reveal>"
},
"$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/core/ui/Buttons/more-tiddler-actions",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/down-arrow}} {{$:/language/Buttons/More/Caption}}",
"description": "{{$:/language/Buttons/More/Hint}}",
"text": "\\whitespace trim\n\\define config-title()\n$:/config/ViewToolbarButtons/Visibility/$(listItem)$\n\\end\n<$button popup=<<qualify \"$:/state/popup/more\">> tooltip={{$:/language/Buttons/More/Hint}} aria-label={{$:/language/Buttons/More/Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/down-arrow}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/More/Caption}}/>\n</span>\n</$list>\n</$button>\n<$reveal state=<<qualify \"$:/state/popup/more\">> type=\"popup\" position=\"belowleft\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbar]!has[draft.of]] -[[$:/core/ui/Buttons/more-tiddler-actions]]\" variable=\"listItem\">\n\n<$reveal type=\"match\" state=<<config-title>> text=\"hide\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$set>\n\n</$reveal>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>"
},
"$:/core/ui/Buttons/new-here": {
"title": "$:/core/ui/Buttons/new-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-here-button}} {{$:/language/Buttons/NewHere/Caption}}",
"description": "{{$:/language/Buttons/NewHere/Hint}}",
"text": "\\whitespace trim\n\\define newHereActions()\n<$set name=\"tags\" filter=\"[<currentTiddler>] [{$:/config/NewTiddler/Tags!!tags}]\">\n<$action-sendmessage $message=\"tm-new-tiddler\" tags=<<tags>>/>\n</$set>\n\\end\n\\define newHereButton()\n<$button actions=<<newHereActions>> tooltip={{$:/language/Buttons/NewHere/Hint}} aria-label={{$:/language/Buttons/NewHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-here-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewHere/Caption}}/>\n</span>\n</$list>\n</$button>\n\\end\n<<newHereButton>>\n"
},
"$:/core/ui/Buttons/new-journal-here": {
"title": "$:/core/ui/Buttons/new-journal-here",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/new-journal-button}} {{$:/language/Buttons/NewJournalHere/Caption}}",
"description": "{{$:/language/Buttons/NewJournalHere/Hint}}",
"text": "\\whitespace trim\n\\define journalButtonTags()\n[[$(currentTiddlerTag)$]] $(journalTags)$\n\\end\n\\define journalButton()\n<$button tooltip={{$:/language/Buttons/NewJournalHere/Hint}} aria-label={{$:/language/Buttons/NewJournalHere/Caption}} class=<<tv-config-toolbar-class>>>\n<$wikify name=\"journalTitle\" text=\"\"\"<$macrocall $name=\"now\" format=<<journalTitleTemplate>>/>\"\"\">\n<$action-sendmessage $message=\"tm-new-tiddler\" title=<<journalTitle>> tags=<<journalButtonTags>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/new-journal-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text={{$:/language/Buttons/NewJournalHere/Caption}}/>\n</span>\n</$list>\n</$wikify>\n</$button>\n\\end\n<$set name=\"journalTitleTemplate\" value={{$:/config/NewJournal/Title}}>\n<$set name=\"journalTags\" value={{$:/config/NewJournal/Tags!!tags}}>\n<$set name=\"currentTiddlerTag\" value=<<currentTiddler>>>\n<<journalButton>>\n</$set>\n</$set>\n</$set>\n"
},
"$:/core/ui/Buttons/open-window": {
"title": "$:/core/ui/Buttons/open-window",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/open-window}} {{$:/language/Buttons/OpenWindow/Caption}}",
"description": "{{$:/language/Buttons/OpenWindow/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-open-window\" tooltip={{$:/language/Buttons/OpenWindow/Hint}} aria-label={{$:/language/Buttons/OpenWindow/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/open-window}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/OpenWindow/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permalink": {
"title": "$:/core/ui/Buttons/permalink",
"tags": "$:/tags/ViewToolbar",
"caption": "{{$:/core/images/permalink-button}} {{$:/language/Buttons/Permalink/Caption}}",
"description": "{{$:/language/Buttons/Permalink/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permalink\" tooltip={{$:/language/Buttons/Permalink/Hint}} aria-label={{$:/language/Buttons/Permalink/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permalink-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permalink/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/core/ui/Buttons/permaview": {
"title": "$:/core/ui/Buttons/permaview",
"tags": "$:/tags/ViewToolbar $:/tags/PageControls",
"caption": "{{$:/core/images/permaview-button}} {{$:/language/Buttons/Permaview/Caption}}",
"description": "{{$:/language/Buttons/Permaview/Hint}}",
"text": "\\whitespace trim\n<$button message=\"tm-permaview\" tooltip={{$:/language/Buttons/Permaview/Hint}} aria-label={{$:/language/Buttons/Permaview/Caption}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/permaview-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/language/Buttons/Permaview/Caption}}/>\n</span>\n</$list>\n</$button>"
},
"$:/DefaultTiddlers": {
"title": "$:/DefaultTiddlers",
"text": "GettingStarted\n"
},
"$:/temp/advancedsearch": {
"title": "$:/temp/advancedsearch",
"text": ""
},
"$:/snippets/allfields": {
"title": "$:/snippets/allfields",
"text": "\\define renderfield(title)\n<tr class=\"tc-view-field\"><td class=\"tc-view-field-name\">''$title$'':</td><td class=\"tc-view-field-value\">//{{$:/language/Docs/Fields/$title$}}//</td></tr>\n\\end\n<table class=\"tc-view-field-table\"><tbody><$list filter=\"[fields[]sort[title]]\" variable=\"listItem\"><$macrocall $name=\"renderfield\" title=<<listItem>>/></$list>\n</tbody></table>\n"
},
"$:/config/AnimationDuration": {
"title": "$:/config/AnimationDuration",
"text": "400"
},
"$:/config/AutoFocus": {
"title": "$:/config/AutoFocus",
"text": "title"
},
"$:/config/AutoSave": {
"title": "$:/config/AutoSave",
"text": "yes"
},
"$:/config/BitmapEditor/Colour": {
"title": "$:/config/BitmapEditor/Colour",
"text": "#444"
},
"$:/config/BitmapEditor/ImageSizes": {
"title": "$:/config/BitmapEditor/ImageSizes",
"text": "[[62px 100px]] [[100px 62px]] [[124px 200px]] [[200px 124px]] [[248px 400px]] [[371px 600px]] [[400px 248px]] [[556px 900px]] [[600px 371px]] [[742px 1200px]] [[900px 556px]] [[1200px 742px]]"
},
"$:/config/BitmapEditor/LineWidth": {
"title": "$:/config/BitmapEditor/LineWidth",
"text": "3px"
},
"$:/config/BitmapEditor/LineWidths": {
"title": "$:/config/BitmapEditor/LineWidths",
"text": "0.25px 0.5px 1px 2px 3px 4px 6px 8px 10px 16px 20px 28px 40px 56px 80px"
},
"$:/config/BitmapEditor/Opacities": {
"title": "$:/config/BitmapEditor/Opacities",
"text": "0.01 0.025 0.05 0.075 0.1 0.15 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9 1.0"
},
"$:/config/BitmapEditor/Opacity": {
"title": "$:/config/BitmapEditor/Opacity",
"text": "1.0"
},
"$:/config/DefaultMoreSidebarTab": {
"title": "$:/config/DefaultMoreSidebarTab",
"text": "$:/core/ui/MoreSideBar/Tags"
},
"$:/config/DefaultSidebarTab": {
"title": "$:/config/DefaultSidebarTab",
"text": "$:/core/ui/SideBar/Open"
},
"$:/config/DownloadSaver/AutoSave": {
"title": "$:/config/DownloadSaver/AutoSave",
"text": "no"
},
"$:/config/Drafts/TypingTimeout": {
"title": "$:/config/Drafts/TypingTimeout",
"text": "400"
},
"$:/config/EditTemplateFields/Visibility/title": {
"title": "$:/config/EditTemplateFields/Visibility/title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/tags": {
"title": "$:/config/EditTemplateFields/Visibility/tags",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/text": {
"title": "$:/config/EditTemplateFields/Visibility/text",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/creator": {
"title": "$:/config/EditTemplateFields/Visibility/creator",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/created": {
"title": "$:/config/EditTemplateFields/Visibility/created",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modified": {
"title": "$:/config/EditTemplateFields/Visibility/modified",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/modifier": {
"title": "$:/config/EditTemplateFields/Visibility/modifier",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/type": {
"title": "$:/config/EditTemplateFields/Visibility/type",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.title": {
"title": "$:/config/EditTemplateFields/Visibility/draft.title",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/draft.of": {
"title": "$:/config/EditTemplateFields/Visibility/draft.of",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/revision": {
"title": "$:/config/EditTemplateFields/Visibility/revision",
"text": "hide"
},
"$:/config/EditTemplateFields/Visibility/bag": {
"title": "$:/config/EditTemplateFields/Visibility/bag",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-4",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-5",
"text": "hide"
},
"$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6": {
"title": "$:/config/EditorToolbarButtons/Visibility/$:/core/ui/EditorToolbar/heading-6",
"text": "hide"
},
"$:/config/EditorTypeMappings/image/gif": {
"title": "$:/config/EditorTypeMappings/image/gif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/webp": {
"title": "$:/config/EditorTypeMappings/image/webp",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heic": {
"title": "$:/config/EditorTypeMappings/image/heic",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/heif": {
"title": "$:/config/EditorTypeMappings/image/heif",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpeg": {
"title": "$:/config/EditorTypeMappings/image/jpeg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/jpg": {
"title": "$:/config/EditorTypeMappings/image/jpg",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/png": {
"title": "$:/config/EditorTypeMappings/image/png",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/image/x-icon": {
"title": "$:/config/EditorTypeMappings/image/x-icon",
"text": "bitmap"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "text"
},
"$:/config/Manager/Show": {
"title": "$:/config/Manager/Show",
"text": "tiddlers"
},
"$:/config/Manager/Filter": {
"title": "$:/config/Manager/Filter",
"text": ""
},
"$:/config/Manager/Order": {
"title": "$:/config/Manager/Order",
"text": "forward"
},
"$:/config/Manager/Sort": {
"title": "$:/config/Manager/Sort",
"text": "title"
},
"$:/config/Manager/System": {
"title": "$:/config/Manager/System",
"text": "system"
},
"$:/config/Manager/Tag": {
"title": "$:/config/Manager/Tag",
"text": ""
},
"$:/state/popup/manager/item/$:/Manager/ItemMain/RawText": {
"title": "$:/state/popup/manager/item/$:/Manager/ItemMain/RawText",
"text": "hide"
},
"$:/config/MissingLinks": {
"title": "$:/config/MissingLinks",
"text": "yes"
},
"$:/config/Navigation/UpdateAddressBar": {
"title": "$:/config/Navigation/UpdateAddressBar",
"text": "no"
},
"$:/config/Navigation/UpdateHistory": {
"title": "$:/config/Navigation/UpdateHistory",
"text": "no"
},
"$:/config/NewImageType": {
"title": "$:/config/NewImageType",
"text": "jpeg"
},
"$:/config/OfficialPluginLibrary": {
"title": "$:/config/OfficialPluginLibrary",
"tags": "$:/tags/PluginLibrary",
"url": "https://tiddlywiki.com/library/v5.1.22/index.html",
"caption": "{{$:/language/OfficialPluginLibrary}}",
"text": "{{$:/language/OfficialPluginLibrary/Hint}}\n"
},
"$:/config/Navigation/openLinkFromInsideRiver": {
"title": "$:/config/Navigation/openLinkFromInsideRiver",
"text": "below"
},
"$:/config/Navigation/openLinkFromOutsideRiver": {
"title": "$:/config/Navigation/openLinkFromOutsideRiver",
"text": "top"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/advanced-search",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/close-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/encryption",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/export-page",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/fold-all",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/full-screen",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/home",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/refresh",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/import",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/language",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/tag-manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/manager",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/more-page-actions",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-journal",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/new-image",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/palette",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/print",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/storyview",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/timestamp",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/theme",
"text": "hide"
},
"$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all": {
"title": "$:/config/PageControlButtons/Visibility/$:/core/ui/Buttons/unfold-all",
"text": "hide"
},
"$:/config/Performance/Instrumentation": {
"title": "$:/config/Performance/Instrumentation",
"text": "no"
},
"$:/config/RegisterPluginType/plugin": {
"title": "$:/config/RegisterPluginType/plugin",
"text": "yes"
},
"$:/config/RegisterPluginType/theme": {
"title": "$:/config/RegisterPluginType/theme",
"text": "no"
},
"$:/config/RegisterPluginType/language": {
"title": "$:/config/RegisterPluginType/language",
"text": "no"
},
"$:/config/RegisterPluginType/info": {
"title": "$:/config/RegisterPluginType/info",
"text": "no"
},
"$:/config/RegisterPluginType/import": {
"title": "$:/config/RegisterPluginType/import",
"text": "no"
},
"$:/config/SaveWikiButton/Template": {
"title": "$:/config/SaveWikiButton/Template",
"text": "$:/core/save/all"
},
"$:/config/SaverFilter": {
"title": "$:/config/SaverFilter",
"text": "[all[]] -[[$:/HistoryList]] -[[$:/StoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[[$:/UploadName]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Search/AutoFocus": {
"title": "$:/config/Search/AutoFocus",
"text": "true"
},
"$:/config/Search/MinLength": {
"title": "$:/config/Search/MinLength",
"text": "3"
},
"$:/config/SearchResults/Default": {
"title": "$:/config/SearchResults/Default",
"text": "$:/core/ui/DefaultSearchResultList"
},
"$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]": {
"title": "$:/config/Server/ExternalFilters/[all[tiddlers]!is[system]sort[title]]",
"text": "yes"
},
"$:/config/ShortcutInfo/add-field": {
"title": "$:/config/ShortcutInfo/add-field",
"text": "{{$:/language/EditTemplate/Fields/Add/Button/Hint}}"
},
"$:/config/ShortcutInfo/advanced-search": {
"title": "$:/config/ShortcutInfo/advanced-search",
"text": "{{$:/language/Buttons/AdvancedSearch/Hint}}"
},
"$:/config/ShortcutInfo/bold": {
"title": "$:/config/ShortcutInfo/bold",
"text": "{{$:/language/Buttons/Bold/Hint}}"
},
"$:/config/ShortcutInfo/cancel-edit-tiddler": {
"title": "$:/config/ShortcutInfo/cancel-edit-tiddler",
"text": "{{$:/language/Buttons/Cancel/Hint}}"
},
"$:/config/ShortcutInfo/excise": {
"title": "$:/config/ShortcutInfo/excise",
"text": "{{$:/language/Buttons/Excise/Hint}}"
},
"$:/config/ShortcutInfo/heading-1": {
"title": "$:/config/ShortcutInfo/heading-1",
"text": "{{$:/language/Buttons/Heading1/Hint}}"
},
"$:/config/ShortcutInfo/heading-2": {
"title": "$:/config/ShortcutInfo/heading-2",
"text": "{{$:/language/Buttons/Heading2/Hint}}"
},
"$:/config/ShortcutInfo/heading-3": {
"title": "$:/config/ShortcutInfo/heading-3",
"text": "{{$:/language/Buttons/Heading3/Hint}}"
},
"$:/config/ShortcutInfo/heading-4": {
"title": "$:/config/ShortcutInfo/heading-4",
"text": "{{$:/language/Buttons/Heading4/Hint}}"
},
"$:/config/ShortcutInfo/heading-5": {
"title": "$:/config/ShortcutInfo/heading-5",
"text": "{{$:/language/Buttons/Heading5/Hint}}"
},
"$:/config/ShortcutInfo/heading-6": {
"title": "$:/config/ShortcutInfo/heading-6",
"text": "{{$:/language/Buttons/Heading6/Hint}}"
},
"$:/config/ShortcutInfo/italic": {
"title": "$:/config/ShortcutInfo/italic",
"text": "{{$:/language/Buttons/Italic/Hint}}"
},
"$:/config/ShortcutInfo/link": {
"title": "$:/config/ShortcutInfo/link",
"text": "{{$:/language/Buttons/Link/Hint}}"
},
"$:/config/ShortcutInfo/list-bullet": {
"title": "$:/config/ShortcutInfo/list-bullet",
"text": "{{$:/language/Buttons/ListBullet/Hint}}"
},
"$:/config/ShortcutInfo/list-number": {
"title": "$:/config/ShortcutInfo/list-number",
"text": "{{$:/language/Buttons/ListNumber/Hint}}"
},
"$:/config/ShortcutInfo/mono-block": {
"title": "$:/config/ShortcutInfo/mono-block",
"text": "{{$:/language/Buttons/MonoBlock/Hint}}"
},
"$:/config/ShortcutInfo/mono-line": {
"title": "$:/config/ShortcutInfo/mono-line",
"text": "{{$:/language/Buttons/MonoLine/Hint}}"
},
"$:/config/ShortcutInfo/new-image": {
"title": "$:/config/ShortcutInfo/new-image",
"text": "{{$:/language/Buttons/NewImage/Hint}}"
},
"$:/config/ShortcutInfo/new-journal": {
"title": "$:/config/ShortcutInfo/new-journal",
"text": "{{$:/language/Buttons/NewJournal/Hint}}"
},
"$:/config/ShortcutInfo/new-tiddler": {
"title": "$:/config/ShortcutInfo/new-tiddler",
"text": "{{$:/language/Buttons/NewTiddler/Hint}}"
},
"$:/config/ShortcutInfo/picture": {
"title": "$:/config/ShortcutInfo/picture",
"text": "{{$:/language/Buttons/Picture/Hint}}"
},
"$:/config/ShortcutInfo/preview": {
"title": "$:/config/ShortcutInfo/preview",
"text": "{{$:/language/Buttons/Preview/Hint}}"
},
"$:/config/ShortcutInfo/quote": {
"title": "$:/config/ShortcutInfo/quote",
"text": "{{$:/language/Buttons/Quote/Hint}}"
},
"$:/config/ShortcutInfo/save-tiddler": {
"title": "$:/config/ShortcutInfo/save-tiddler",
"text": "{{$:/language/Buttons/Save/Hint}}"
},
"$:/config/ShortcutInfo/sidebar-search": {
"title": "$:/config/ShortcutInfo/sidebar-search",
"text": "{{$:/language/Buttons/SidebarSearch/Hint}}"
},
"$:/config/ShortcutInfo/stamp": {
"title": "$:/config/ShortcutInfo/stamp",
"text": "{{$:/language/Buttons/Stamp/Hint}}"
},
"$:/config/ShortcutInfo/strikethrough": {
"title": "$:/config/ShortcutInfo/strikethrough",
"text": "{{$:/language/Buttons/Strikethrough/Hint}}"
},
"$:/config/ShortcutInfo/subscript": {
"title": "$:/config/ShortcutInfo/subscript",
"text": "{{$:/language/Buttons/Subscript/Hint}}"
},
"$:/config/ShortcutInfo/superscript": {
"title": "$:/config/ShortcutInfo/superscript",
"text": "{{$:/language/Buttons/Superscript/Hint}}"
},
"$:/config/ShortcutInfo/toggle-sidebar": {
"title": "$:/config/ShortcutInfo/toggle-sidebar",
"text": "{{$:/language/Buttons/ToggleSidebar/Hint}}"
},
"$:/config/ShortcutInfo/underline": {
"title": "$:/config/ShortcutInfo/underline",
"text": "{{$:/language/Buttons/Underline/Hint}}"
},
"$:/config/SyncFilter": {
"title": "$:/config/SyncFilter",
"text": "[is[tiddler]] -[[$:/HistoryList]] -[[$:/Import]] -[[$:/isEncrypted]] -[prefix[$:/status/]] -[prefix[$:/state/]] -[prefix[$:/temp/]]"
},
"$:/config/Tags/MinLength": {
"title": "$:/config/Tags/MinLength",
"text": "0"
},
"$:/config/TextEditor/EditorHeight/Height": {
"title": "$:/config/TextEditor/EditorHeight/Height",
"text": "400px"
},
"$:/config/TextEditor/EditorHeight/Mode": {
"title": "$:/config/TextEditor/EditorHeight/Mode",
"text": "auto"
},
"$:/config/TiddlerInfo/Default": {
"title": "$:/config/TiddlerInfo/Default",
"text": "$:/core/ui/TiddlerInfo/Fields"
},
"$:/config/TiddlerInfo/Mode": {
"title": "$:/config/TiddlerInfo/Mode",
"text": "popup"
},
"$:/config/Tiddlers/TitleLinks": {
"title": "$:/config/Tiddlers/TitleLinks",
"text": "no"
},
"$:/config/Toolbar/ButtonClass": {
"title": "$:/config/Toolbar/ButtonClass",
"text": "tc-btn-invisible"
},
"$:/config/Toolbar/Icons": {
"title": "$:/config/Toolbar/Icons",
"text": "yes"
},
"$:/config/Toolbar/Text": {
"title": "$:/config/Toolbar/Text",
"text": "no"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/clone",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/close-others",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/export-tiddler",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/info",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/more-tiddler-actions",
"text": "show"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/new-journal-here",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/open-window",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permalink",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/permaview",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/delete",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-bar",
"text": "hide"
},
"$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others": {
"title": "$:/config/ViewToolbarButtons/Visibility/$:/core/ui/Buttons/fold-others",
"text": "hide"
},
"$:/config/shortcuts-mac/bold": {
"title": "$:/config/shortcuts-mac/bold",
"text": "meta-B"
},
"$:/config/shortcuts-mac/italic": {
"title": "$:/config/shortcuts-mac/italic",
"text": "meta-I"
},
"$:/config/shortcuts-mac/underline": {
"title": "$:/config/shortcuts-mac/underline",
"text": "meta-U"
},
"$:/config/shortcuts-mac/new-image": {
"title": "$:/config/shortcuts-mac/new-image",
"text": "ctrl-I"
},
"$:/config/shortcuts-mac/new-journal": {
"title": "$:/config/shortcuts-mac/new-journal",
"text": "ctrl-J"
},
"$:/config/shortcuts-mac/new-tiddler": {
"title": "$:/config/shortcuts-mac/new-tiddler",
"text": "ctrl-N"
},
"$:/config/shortcuts-not-mac/bold": {
"title": "$:/config/shortcuts-not-mac/bold",
"text": "ctrl-B"
},
"$:/config/shortcuts-not-mac/italic": {
"title": "$:/config/shortcuts-not-mac/italic",
"text": "ctrl-I"
},
"$:/config/shortcuts-not-mac/underline": {
"title": "$:/config/shortcuts-not-mac/underline",
"text": "ctrl-U"
},
"$:/config/shortcuts-not-mac/new-image": {
"title": "$:/config/shortcuts-not-mac/new-image",
"text": "alt-I"
},
"$:/config/shortcuts-not-mac/new-journal": {
"title": "$:/config/shortcuts-not-mac/new-journal",
"text": "alt-J"
},
"$:/config/shortcuts-not-mac/new-tiddler": {
"title": "$:/config/shortcuts-not-mac/new-tiddler",
"text": "alt-N"
},
"$:/config/shortcuts/add-field": {
"title": "$:/config/shortcuts/add-field",
"text": "enter"
},
"$:/config/shortcuts/advanced-search": {
"title": "$:/config/shortcuts/advanced-search",
"text": "ctrl-shift-A"
},
"$:/config/shortcuts/cancel-edit-tiddler": {
"title": "$:/config/shortcuts/cancel-edit-tiddler",
"text": "escape"
},
"$:/config/shortcuts/excise": {
"title": "$:/config/shortcuts/excise",
"text": "ctrl-E"
},
"$:/config/shortcuts/sidebar-search": {
"title": "$:/config/shortcuts/sidebar-search",
"text": "ctrl-shift-F"
},
"$:/config/shortcuts/heading-1": {
"title": "$:/config/shortcuts/heading-1",
"text": "ctrl-1"
},
"$:/config/shortcuts/heading-2": {
"title": "$:/config/shortcuts/heading-2",
"text": "ctrl-2"
},
"$:/config/shortcuts/heading-3": {
"title": "$:/config/shortcuts/heading-3",
"text": "ctrl-3"
},
"$:/config/shortcuts/heading-4": {
"title": "$:/config/shortcuts/heading-4",
"text": "ctrl-4"
},
"$:/config/shortcuts/heading-5": {
"title": "$:/config/shortcuts/heading-5",
"text": "ctrl-5"
},
"$:/config/shortcuts/heading-6": {
"title": "$:/config/shortcuts/heading-6",
"text": "ctrl-6"
},
"$:/config/shortcuts/link": {
"title": "$:/config/shortcuts/link",
"text": "ctrl-L"
},
"$:/config/shortcuts/linkify": {
"title": "$:/config/shortcuts/linkify",
"text": "alt-shift-L"
},
"$:/config/shortcuts/list-bullet": {
"title": "$:/config/shortcuts/list-bullet",
"text": "ctrl-shift-L"
},
"$:/config/shortcuts/list-number": {
"title": "$:/config/shortcuts/list-number",
"text": "ctrl-shift-N"
},
"$:/config/shortcuts/mono-block": {
"title": "$:/config/shortcuts/mono-block",
"text": "ctrl-shift-M"
},
"$:/config/shortcuts/mono-line": {
"title": "$:/config/shortcuts/mono-line",
"text": "ctrl-M"
},
"$:/config/shortcuts/picture": {
"title": "$:/config/shortcuts/picture",
"text": "ctrl-shift-I"
},
"$:/config/shortcuts/preview": {
"title": "$:/config/shortcuts/preview",
"text": "alt-P"
},
"$:/config/shortcuts/quote": {
"title": "$:/config/shortcuts/quote",
"text": "ctrl-Q"
},
"$:/config/shortcuts/save-tiddler": {
"title": "$:/config/shortcuts/save-tiddler",
"text": "ctrl+enter"
},
"$:/config/shortcuts/stamp": {
"title": "$:/config/shortcuts/stamp",
"text": "ctrl-S"
},
"$:/config/shortcuts/strikethrough": {
"title": "$:/config/shortcuts/strikethrough",
"text": "ctrl-T"
},
"$:/config/shortcuts/subscript": {
"title": "$:/config/shortcuts/subscript",
"text": "ctrl-shift-B"
},
"$:/config/shortcuts/superscript": {
"title": "$:/config/shortcuts/superscript",
"text": "ctrl-shift-P"
},
"$:/config/shortcuts/toggle-sidebar": {
"title": "$:/config/shortcuts/toggle-sidebar",
"text": "alt-shift-S"
},
"$:/config/shortcuts/transcludify": {
"title": "$:/config/shortcuts/transcludify",
"text": "alt-shift-T"
},
"$:/config/ui/EditTemplate": {
"title": "$:/config/ui/EditTemplate",
"text": "$:/core/ui/EditTemplate"
},
"$:/config/ui/ViewTemplate": {
"title": "$:/config/ui/ViewTemplate",
"text": "$:/core/ui/ViewTemplate"
},
"$:/config/WikiParserRules/Inline/wikilink": {
"title": "$:/config/WikiParserRules/Inline/wikilink",
"text": "enable"
},
"$:/snippets/currpalettepreview": {
"title": "$:/snippets/currpalettepreview",
"text": "\\define swatchStyle()\nbackground-color: $(swatchColour)$;\n\\end\n\\define swatch()\n<$set name=\"swatchColour\" value={{##$(colour)$}}\n><div class=\"tc-swatch\" style=<<swatchStyle>> title=<<colour>>/></$set>\n\\end\n<div class=\"tc-swatches-horiz\"><$list filter=\"\nforeground\nbackground\nmuted-foreground\nprimary\npage-background\ntab-background\ntiddler-info-background\n\" variable=\"colour\"><<swatch>></$list></div>"
},
"$:/snippets/download-wiki-button": {
"title": "$:/snippets/download-wiki-button",
"text": "\\define lingo-base() $:/language/ControlPanel/Tools/Download/\n<$button class=\"tc-btn-big-green\">\n<$action-sendmessage $message=\"tm-download-file\" $param=\"$:/core/save/all\" filename=\"index.html\"/>\n<<lingo Full/Caption>> {{$:/core/images/save-button}}\n</$button>"
},
"$:/language": {
"title": "$:/language",
"text": "$:/languages/en-GB"
},
"$:/snippets/languageswitcher": {
"title": "$:/snippets/languageswitcher",
"text": "\\define flag-title()\n$(languagePluginTitle)$/icon\n\\end\n\n<$linkcatcher to=\"$:/language\">\n<div class=\"tc-chooser tc-language-chooser\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[description]]\">\n<$set name=\"cls\" filter=\"[all[current]field:title{$:/language}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link>\n<span class=\"tc-image-button\">\n<$set name=\"languagePluginTitle\" value=<<currentTiddler>>>\n<$transclude subtiddler=<<flag-title>>>\n<$list filter=\"[all[current]field:title[$:/languages/en-GB]]\">\n<$transclude tiddler=\"$:/languages/en-GB/icon\"/>\n</$list>\n</$transclude>\n</$set>\n</span>\n<$view field=\"description\">\n<$view field=\"name\">\n<$view field=\"title\"/>\n</$view>\n</$view>\n</$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/macros/CSS": {
"title": "$:/core/macros/CSS",
"tags": "$:/tags/Macro",
"text": "\\define colour(name)\n<$transclude tiddler={{$:/palette}} index=\"$name$\"><$transclude tiddler=\"$:/palettes/Vanilla\" index=\"$name$\"><$transclude tiddler=\"$:/config/DefaultColourMappings/$name$\"/></$transclude></$transclude>\n\\end\n\n\\define color(name)\n<<colour $name$>>\n\\end\n\n\\define box-shadow(shadow)\n``\n -webkit-box-shadow: $shadow$;\n -moz-box-shadow: $shadow$;\n box-shadow: $shadow$;\n``\n\\end\n\n\\define filter(filter)\n``\n -webkit-filter: $filter$;\n -moz-filter: $filter$;\n filter: $filter$;\n``\n\\end\n\n\\define transition(transition)\n``\n -webkit-transition: $transition$;\n -moz-transition: $transition$;\n transition: $transition$;\n``\n\\end\n\n\\define transform-origin(origin)\n``\n -webkit-transform-origin: $origin$;\n -moz-transform-origin: $origin$;\n transform-origin: $origin$;\n``\n\\end\n\n\\define background-linear-gradient(gradient)\n``\nbackground-image: linear-gradient($gradient$);\nbackground-image: -o-linear-gradient($gradient$);\nbackground-image: -moz-linear-gradient($gradient$);\nbackground-image: -webkit-linear-gradient($gradient$);\nbackground-image: -ms-linear-gradient($gradient$);\n``\n\\end\n\n\\define column-count(columns)\n``\n-moz-column-count: $columns$;\n-webkit-column-count: $columns$;\ncolumn-count: $columns$;\n``\n\\end\n\n\\define datauri(title)\n<$macrocall $name=\"makedatauri\" type={{$title$!!type}} text={{$title$}} _canonical_uri={{$title$!!_canonical_uri}}/>\n\\end\n\n\\define if-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-no-sidebar(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">$text$</$reveal>\n\\end\n\n\\define if-background-attachment(text)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" type=\"nomatch\" text=\"\">$text$</$reveal>\n\\end\n"
},
"$:/core/macros/colour-picker": {
"title": "$:/core/macros/colour-picker",
"tags": "$:/tags/Macro",
"text": "\\define colour-picker-update-recent()\n<$action-listops\n\t$tiddler=\"$:/config/ColourPicker/Recent\"\n\t$subfilter=\"$(colour-picker-value)$ [list[$:/config/ColourPicker/Recent]remove[$(colour-picker-value)$]] +[limit[8]]\"\n/>\n\\end\n\n\\define colour-picker-inner(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(colour-picker-value)$\"\"\">\n\n$(colour-picker-update-recent)$\n\n$actions$\n\n<span style=\"display:inline-block; background-color: $(colour-picker-value)$; width: 100%; height: 100%; border-radius: 50%;\"/>\n\n</$button>\n\\end\n\n\\define colour-picker-recent-inner(actions)\n<$set name=\"colour-picker-value\" value=\"$(recentColour)$\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\\end\n\n\\define colour-picker-recent(actions)\n{{$:/language/ColourPicker/Recent}} <$list filter=\"[list[$:/config/ColourPicker/Recent]]\" variable=\"recentColour\">\n<$macrocall $name=\"colour-picker-recent-inner\" actions=\"\"\"$actions$\"\"\"/></$list>\n\\end\n\n\\define colour-picker(actions)\n<div class=\"tc-colour-chooser\">\n\n<$macrocall $name=\"colour-picker-recent\" actions=\"\"\"$actions$\"\"\"/>\n\n---\n\n<$list filter=\"LightPink Pink Crimson LavenderBlush PaleVioletRed HotPink DeepPink MediumVioletRed Orchid Thistle Plum Violet Magenta Fuchsia DarkMagenta Purple MediumOrchid DarkViolet DarkOrchid Indigo BlueViolet MediumPurple MediumSlateBlue SlateBlue DarkSlateBlue Lavender GhostWhite Blue MediumBlue MidnightBlue DarkBlue Navy RoyalBlue CornflowerBlue LightSteelBlue LightSlateGrey SlateGrey DodgerBlue AliceBlue SteelBlue LightSkyBlue SkyBlue DeepSkyBlue LightBlue PowderBlue CadetBlue Azure LightCyan PaleTurquoise Cyan Aqua DarkTurquoise DarkSlateGrey DarkCyan Teal MediumTurquoise LightSeaGreen Turquoise Aquamarine MediumAquamarine MediumSpringGreen MintCream SpringGreen MediumSeaGreen SeaGreen Honeydew LightGreen PaleGreen DarkSeaGreen LimeGreen Lime ForestGreen Green DarkGreen Chartreuse LawnGreen GreenYellow DarkOliveGreen YellowGreen OliveDrab Beige LightGoldenrodYellow Ivory LightYellow Yellow Olive DarkKhaki LemonChiffon PaleGoldenrod Khaki Gold Cornsilk Goldenrod DarkGoldenrod FloralWhite OldLace Wheat Moccasin Orange PapayaWhip BlanchedAlmond NavajoWhite AntiqueWhite Tan BurlyWood Bisque DarkOrange Linen Peru PeachPuff SandyBrown Chocolate SaddleBrown Seashell Sienna LightSalmon Coral OrangeRed DarkSalmon Tomato MistyRose Salmon Snow LightCoral RosyBrown IndianRed Red Brown FireBrick DarkRed Maroon White WhiteSmoke Gainsboro LightGrey Silver DarkGrey Grey DimGrey Black\" variable=\"colour-picker-value\">\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\n---\n\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" tag=\"input\" default=\"\" placeholder=\"\"/>\n<$edit-text tiddler=\"$:/config/ColourPicker/New\" type=\"color\" tag=\"input\"/>\n<$set name=\"colour-picker-value\" value={{$:/config/ColourPicker/New}}>\n<$macrocall $name=\"colour-picker-inner\" actions=\"\"\"$actions$\"\"\"/>\n</$set>\n\n</div>\n\n\\end\n"
},
"$:/core/macros/copy-to-clipboard": {
"title": "$:/core/macros/copy-to-clipboard",
"tags": "$:/tags/Macro",
"text": "\\define copy-to-clipboard(src,class:\"tc-btn-invisible\",style)\n<$button class=<<__class__>> style=<<__style__>> message=\"tm-copy-to-clipboard\" param=<<__src__>> tooltip={{$:/language/Buttons/CopyToClipboard/Hint}}>\n{{$:/core/images/copy-clipboard}} <$text text={{$:/language/Buttons/CopyToClipboard/Caption}}/>\n</$button>\n\\end\n\n\\define copy-to-clipboard-above-right(src,class:\"tc-btn-invisible\",style)\n<div style=\"position: relative;\">\n<div style=\"position: absolute; bottom: 0; right: 0;\">\n<$macrocall $name=\"copy-to-clipboard\" src=<<__src__>> class=<<__class__>> style=<<__style__>>/>\n</div>\n</div>\n\\end\n\n"
},
"$:/core/macros/diff": {
"title": "$:/core/macros/diff",
"tags": "$:/tags/Macro",
"text": "\\define compareTiddlerText(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle)\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>>>\n<$diff-text source=<<source>> dest=<<dest>>/>\n</$set>\n</$set>\n\\end\n\n\\define compareTiddlers(sourceTiddlerTitle,sourceSubTiddlerTitle,destTiddlerTitle,destSubTiddlerTitle,exclude)\n<table class=\"tc-diff-tiddlers\">\n<tbody>\n<$set name=\"sourceFields\" filter=\"[<__sourceTiddlerTitle__>fields[]sort[]]\">\n<$set name=\"destFields\" filter=\"[<__destSubTiddlerTitle__>subtiddlerfields<__destTiddlerTitle__>sort[]]\">\n<$list filter=\"[enlist<sourceFields>] [enlist<destFields>] -[enlist<__exclude__>] +[sort[]]\" variable=\"fieldName\">\n<tr>\n<th>\n<$text text=<<fieldName>>/> \n</th>\n<td>\n<$set name=\"source\" tiddler=<<__sourceTiddlerTitle__>> subtiddler=<<__sourceSubTiddlerTitle__>> field=<<fieldName>>>\n<$set name=\"dest\" tiddler=<<__destTiddlerTitle__>> subtiddler=<<__destSubTiddlerTitle__>> field=<<fieldName>>>\n<$diff-text source=<<source>> dest=<<dest>>>\n</$diff-text>\n</$set>\n</$set>\n</td>\n</tr>\n</$list>\n</$set>\n</$set>\n</tbody>\n</table>\n\\end\n"
},
"$:/core/macros/dumpvariables": {
"title": "$:/core/macros/dumpvariables",
"tags": "$:/tags/Macro",
"text": "\\define dumpvariables()\n<ul>\n<$list filter=\"[variables[]]\" variable=\"varname\">\n<li>\n<strong><code><$text text=<<varname>>/></code></strong>:<br/>\n<$codeblock code={{{ [<varname>getvariable[]] }}}/>\n</li>\n</$list>\n</ul>\n\\end\n"
},
"$:/core/macros/export": {
"title": "$:/core/macros/export",
"tags": "$:/tags/Macro",
"text": "\\define exportButtonFilename(baseFilename)\n$baseFilename$$(extension)$\n\\end\n\n\\define exportButton(exportFilter:\"[!is[system]sort[title]]\",lingoBase,baseFilename:\"tiddlers\")\n<span class=\"tc-popup-keep\"><$button popup=<<qualify \"$:/state/popup/export\">> tooltip={{$lingoBase$Hint}} aria-label={{$lingoBase$Caption}} class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/core/images/export-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$lingoBase$Caption}}/></span>\n</$list>\n</$button></span><$reveal state=<<qualify \"$:/state/popup/export\">> type=\"popup\" position=\"below\" animate=\"yes\">\n<div class=\"tc-drop-down\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Exporter]]\">\n<$set name=\"extension\" value={{!!extension}}>\n<$button class=\"tc-btn-invisible\">\n<$action-sendmessage $message=\"tm-download-file\" $param=<<currentTiddler>> exportFilter=\"\"\"$exportFilter$\"\"\" filename=<<exportButtonFilename \"\"\"$baseFilename$\"\"\">>/>\n<$action-deletetiddler $tiddler=<<qualify \"$:/state/popup/export\">>/>\n<$transclude field=\"description\"/>\n</$button>\n</$set>\n</$list>\n</div>\n</$reveal>\n\\end\n"
},
"$:/core/macros/image-picker": {
"title": "$:/core/macros/image-picker",
"created": "20170715180840889",
"modified": "20170715180914005",
"tags": "$:/tags/Macro",
"type": "text/vnd.tiddlywiki",
"text": "\\define image-picker-thumbnail(actions)\n<$button tag=\"a\" tooltip=\"\"\"$(imageTitle)$\"\"\">\n$actions$\n<$transclude tiddler=<<imageTitle>>/>\n</$button>\n\\end\n\n\\define image-picker-list(filter,actions)\n<$list filter=\"\"\"$filter$\"\"\" variable=\"imageTitle\">\n<$macrocall $name=\"image-picker-thumbnail\" actions=\"\"\"$actions$\"\"\"/>\n</$list>\n\\end\n\n\\define image-picker(actions,filter:\"[all[shadows+tiddlers]is[image]] -[type[application/pdf]] +[!has[draft.of]$subfilter$sort[title]]\",subfilter:\"\")\n<div class=\"tc-image-chooser\">\n<$vars state-system=<<qualify \"$:/state/image-picker/system\">>>\n<$checkbox tiddler=<<state-system>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"hide\">\n{{$:/language/SystemTiddlers/Include/Prompt}}\n</$checkbox>\n<$reveal state=<<state-system>> type=\"match\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$ +[!is[system]]\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n<$reveal state=<<state-system>> type=\"nomatch\" text=\"hide\" default=\"hide\" tag=\"div\">\n<$macrocall $name=\"image-picker-list\" filter=\"\"\"$filter$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</$reveal>\n</$vars>\n</div>\n\\end\n\n\\define image-picker-include-tagged-images(actions)\n<$macrocall $name=\"image-picker\" filter=\"[all[shadows+tiddlers]is[image]] [all[shadows+tiddlers]tag[$:/tags/Image]] -[type[application/pdf]] +[!has[draft.of]sort[title]]\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n"
},
"$:/core/macros/lingo": {
"title": "$:/core/macros/lingo",
"tags": "$:/tags/Macro",
"text": "\\define lingo-base()\n$:/language/\n\\end\n\n\\define lingo(title)\n{{$(lingo-base)$$title$}}\n\\end\n"
},
"$:/core/macros/list": {
"title": "$:/core/macros/list",
"tags": "$:/tags/Macro",
"text": "\\define list-links(filter,type:\"ul\",subtype:\"li\",class:\"\",emptyMessage)\n\\whitespace trim\n<$type$ class=\"$class$\">\n<$list filter=\"$filter$\" emptyMessage=<<__emptyMessage__>>>\n<$subtype$>\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$subtype$>\n</$list>\n</$type$>\n\\end\n\n\\define list-links-draggable-drop-actions()\n<$action-listops $tiddler=<<targetTiddler>> $field=<<targetField>> $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\\end\n\n\\define list-links-draggable(tiddler,field:\"list\",type:\"ul\",subtype:\"li\",class:\"\",itemTemplate)\n\\whitespace trim\n<span class=\"tc-links-draggable-list\">\n<$vars targetTiddler=\"\"\"$tiddler$\"\"\" targetField=\"\"\"$field$\"\"\">\n<$type$ class=\"$class$\">\n<$list filter=\"[list[$tiddler$!!$field$]]\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"\"\"$subtype$\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\"/>\n<div>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$transclude field=\"caption\">\n<$view field=\"title\"/>\n</$transclude>\n</$link>\n</$transclude>\n</div>\n</$droppable>\n</$list>\n</$type$>\n<$tiddler tiddler=\"\">\n<$droppable actions=<<list-links-draggable-drop-actions>> tag=\"div\" enable=<<tv-enable-drag-and-drop>>>\n<div class=\"tc-droppable-placeholder\">\n \n</div>\n<div style=\"height:0.5em;\"/>\n</$droppable>\n</$tiddler>\n</$vars>\n</span>\n\\end\n\n\\define list-tagged-draggable-drop-actions(tag)\n<!-- Save the current ordering of the tiddlers with this tag -->\n<$set name=\"order\" filter=\"[<__tag__>tagging[]]\">\n<!-- Remove any list-after or list-before fields from the tiddlers with this tag -->\n<$list filter=\"[<__tag__>tagging[]]\">\n<$action-deletefield $field=\"list-before\"/>\n<$action-deletefield $field=\"list-after\"/>\n</$list>\n<!-- Save the new order to the Tag Tiddler -->\n<$action-listops $tiddler=<<__tag__>> $field=\"list\" $filter=\"+[enlist<order>] +[insertbefore:currentTiddler<actionTiddler>]\"/>\n<!-- Make sure the newly added item has the right tag -->\n<!-- Removing this line makes dragging tags within the dropdown work as intended -->\n<!--<$action-listops $tiddler=<<actionTiddler>> $tags=<<__tag__>>/>-->\n<!-- Using the following 5 lines as replacement makes dragging titles from outside into the dropdown apply the tag -->\n<$list filter=\"[<actionTiddler>!contains:tags<__tag__>]\">\n<$fieldmangler tiddler=<<actionTiddler>>>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<__tag__>>/>\n</$fieldmangler>\n</$list>\n</$set>\n\\end\n\n\\define list-tagged-draggable(tag,subFilter,emptyMessage,itemTemplate,elementTag:\"div\",storyview:\"\")\n\\whitespace trim\n<span class=\"tc-tagged-draggable-list\">\n<$set name=\"tag\" value=<<__tag__>>>\n<$list filter=\"[<__tag__>tagging[]$subFilter$]\" emptyMessage=<<__emptyMessage__>> storyview=<<__storyview__>>>\n<$elementTag$ class=\"tc-menu-list-item\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$>\n<$transclude tiddler=\"\"\"$itemTemplate$\"\"\">\n<$link to={{!!title}}>\n<$view field=\"title\"/>\n</$link>\n</$transclude>\n</$elementTag$>\n</$droppable>\n</$elementTag$>\n</$list>\n<$tiddler tiddler=\"\">\n<$droppable actions=\"\"\"<$macrocall $name=\"list-tagged-draggable-drop-actions\" tag=<<__tag__>>/>\"\"\" enable=<<tv-enable-drag-and-drop>>>\n<$elementTag$ class=\"tc-droppable-placeholder\"/>\n<$elementTag$ style=\"height:0.5em;\">\n</$elementTag$>\n</$droppable>\n</$tiddler>\n</$set>\n</span>\n\\end\n"
},
"$:/core/macros/tabs": {
"title": "$:/core/macros/tabs",
"tags": "$:/tags/Macro",
"text": "\\define tabs(tabsList,default,state:\"$:/state/tab\",class,template,buttonTemplate,retain)\n<div class=\"tc-tab-set $class$\">\n<div class=\"tc-tab-buttons $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\" storyview=\"pop\"><$set name=\"save-currentTiddler\" value=<<currentTiddler>>><$tiddler tiddler=<<currentTab>>><$button set=<<qualify \"$state$\">> setTo=<<currentTab>> default=\"$default$\" selectedClass=\"tc-tab-selected\" tooltip={{!!tooltip}}>\n<$tiddler tiddler=<<save-currentTiddler>>>\n<$set name=\"tv-wikilinks\" value=\"no\">\n<$transclude tiddler=\"$buttonTemplate$\" mode=\"inline\">\n<$transclude tiddler=<<currentTab>> field=\"caption\">\n<$macrocall $name=\"currentTab\" $type=\"text/plain\" $output=\"text/plain\"/>\n</$transclude>\n</$transclude>\n</$set></$tiddler></$button></$tiddler></$set></$list>\n</div>\n<div class=\"tc-tab-divider $class$\"/>\n<div class=\"tc-tab-content $class$\">\n<$list filter=\"$tabsList$\" variable=\"currentTab\">\n\n<$reveal type=\"match\" state=<<qualify \"$state$\">> text=<<currentTab>> default=\"$default$\" retain=\"\"\"$retain$\"\"\">\n\n<$transclude tiddler=\"$template$\" mode=\"block\">\n\n<$transclude tiddler=<<currentTab>> mode=\"block\"/>\n\n</$transclude>\n\n</$reveal>\n\n</$list>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tag-picker": {
"title": "$:/core/macros/tag-picker",
"tags": "$:/tags/Macro",
"text": "\\define add-tag-actions()\n<$action-sendmessage $message=\"tm-add-tag\" $param={{{ [<newTagNameTiddler>get[text]] }}}/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n\\end\n\n\\define tag-button()\n<$button class=\"tc-btn-invisible\" tag=\"a\" tooltip={{$:/language/EditTemplate/Tags/Add/Button/Hint}}>\n<$action-sendmessage $message=\"tm-add-tag\" $param=<<tag>>/>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n<$macrocall $name=\"tag-pill\" tag=<<tag>>/>\n</$button>\n\\end\n\n\\define tag-picker-inner()\n\\whitespace trim\n<div class=\"tc-edit-add-tag\">\n<span class=\"tc-add-tag-name\">\n<$keyboard key=\"ENTER\" actions=<<add-tag-actions>>>\n<$edit-text tiddler=<<newTagNameTiddler>> tag=\"input\" default=\"\" placeholder={{$:/language/EditTemplate/Tags/Add/Placeholder}} focusPopup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-edit-texteditor tc-popup-handle\" tabindex=<<tabIndex>> focus={{{ [{$:/config/AutoFocus}match[tags]then[true]] ~[[false]] }}}/>\n</$keyboard>\n</span> <$button popup=<<qualify \"$:/state/popup/tags-auto-complete\">> class=\"tc-btn-invisible\" tooltip={{$:/language/EditTemplate/Tags/Dropdown/Hint}} aria-label={{$:/language/EditTemplate/Tags/Dropdown/Caption}}>{{$:/core/images/down-arrow}}</$button> <span class=\"tc-add-tag-button\">\n<$set name=\"tag\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$button set=\"$:/temp/NewTagName\" setTo=\"\" class=\"\">\n<<add-tag-actions>>\n<$action-deletetiddler $tiddler=<<newTagNameTiddler>>/>\n{{$:/language/EditTemplate/Tags/Add/Button}}\n</$button>\n</$set>\n</span>\n</div>\n<div class=\"tc-block-dropdown-wrapper\">\n<$reveal state=<<qualify \"$:/state/popup/tags-auto-complete\">> type=\"nomatch\" text=\"\" default=\"\">\n<div class=\"tc-block-dropdown\">\n<$set name=\"newTagName\" value={{{ [<newTagNameTiddler>get[text]] }}}>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]!is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n<hr>\n<$list filter=\"[<newTagName>minlength{$:/config/Tags/MinLength}limit[1]]\" emptyMessage=\"\"\"<div class=\"tc-search-results\">{{$:/language/Search/Search/TooShort}}</div>\"\"\" variable=\"listItem\">\n<$list filter=\"[tags[]is[system]search:title<newTagName>sort[]]\" variable=\"tag\">\n<<tag-button>>\n</$list></$list>\n</$set>\n</div>\n</$reveal>\n</div>\n\\end\n\\define tag-picker()\n\\whitespace trim\n<$list filter=\"[<newTagNameTiddler>match[]]\" emptyMessage=<<tag-picker-inner>>>\n<$set name=\"newTagNameTiddler\" value=<<qualify \"$:/temp/NewTagName\">>>\n<<tag-picker-inner>>\n</$set>\n</$list>\n\\end\n"
},
"$:/core/macros/tag": {
"title": "$:/core/macros/tag",
"tags": "$:/tags/Macro",
"text": "\\define tag-pill-styles()\nbackground-color:$(backgroundColor)$;\nfill:$(foregroundColor)$;\ncolor:$(foregroundColor)$;\n\\end\n\n\\define tag-pill-inner(tag,icon,colour,fallbackTarget,colourA,colourB,element-tag,element-attributes,actions)\n<$vars foregroundColor=<<contrastcolour target:\"\"\"$colour$\"\"\" fallbackTarget:\"\"\"$fallbackTarget$\"\"\" colourA:\"\"\"$colourA$\"\"\" colourB:\"\"\"$colourB$\"\"\">> backgroundColor=\"\"\"$colour$\"\"\">\n<$element-tag$ $element-attributes$ class=\"tc-tag-label tc-btn-invisible\" style=<<tag-pill-styles>>>\n$actions$<$transclude tiddler=\"\"\"$icon$\"\"\"/><$view tiddler=<<__tag__>> field=\"title\" format=\"text\" />\n</$element-tag$>\n</$vars>\n\\end\n\n\\define tag-pill-body(tag,icon,colour,palette,element-tag,element-attributes,actions)\n<$macrocall $name=\"tag-pill-inner\" tag=<<__tag__>> icon=\"\"\"$icon$\"\"\" colour=\"\"\"$colour$\"\"\" fallbackTarget={{$palette$##tag-background}} colourA={{$palette$##foreground}} colourB={{$palette$##background}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n\\end\n\n\\define tag-pill(tag,element-tag:\"span\",element-attributes:\"\",actions:\"\")\n<span class=\"tc-tag-list-item\">\n<$macrocall $name=\"tag-pill-body\" tag=<<__tag__>> icon={{{ [<__tag__>get[icon]] }}} colour={{{ [<__tag__>get[color]] }}} palette={{$:/palette}} element-tag=\"\"\"$element-tag$\"\"\" element-attributes=\"\"\"$element-attributes$\"\"\" actions=\"\"\"$actions$\"\"\"/>\n</span>\n\\end\n\n\\define tag(tag)\n{{$tag$||$:/core/ui/TagTemplate}}\n\\end\n"
},
"$:/core/macros/thumbnails": {
"title": "$:/core/macros/thumbnails",
"tags": "$:/tags/Macro",
"text": "\\define thumbnail(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<$link to=\"\"\"$link$\"\"\"><div class=\"tc-thumbnail-wrapper\">\n<div class=\"tc-thumbnail-image\" style=\"width:$width$px;height:$height$px;\"><$reveal type=\"nomatch\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" style=\"width:$width$px;height:$height$px;\">\n[img[$image$]]\n</$reveal><$reveal type=\"match\" text=\"\" default=\"\"\"$image$\"\"\" tag=\"div\" class=\"tc-thumbnail-background\" style=\"width:$width$px;height:$height$px;background-color:$background-color$;\"></$reveal></div><div class=\"tc-thumbnail-icon\" style=\"fill:$color$;color:$color$;\">\n$icon$\n</div><div class=\"tc-thumbnail-caption\">\n$caption$\n</div>\n</div></$link>\n\\end\n\n\\define thumbnail-right(link,icon,color,background-color,image,caption,width:\"280\",height:\"157\")\n<div class=\"tc-thumbnail-right-wrapper\"><<thumbnail \"\"\"$link$\"\"\" \"\"\"$icon$\"\"\" \"\"\"$color$\"\"\" \"\"\"$background-color$\"\"\" \"\"\"$image$\"\"\" \"\"\"$caption$\"\"\" \"\"\"$width$\"\"\" \"\"\"$height$\"\"\">></div>\n\\end\n\n\\define list-thumbnails(filter,width:\"280\",height:\"157\")\n<$list filter=\"\"\"$filter$\"\"\"><$macrocall $name=\"thumbnail\" link={{!!link}} icon={{!!icon}} color={{!!color}} background-color={{!!background-color}} image={{!!image}} caption={{!!caption}} width=\"\"\"$width$\"\"\" height=\"\"\"$height$\"\"\"/></$list>\n\\end\n"
},
"$:/core/macros/timeline": {
"title": "$:/core/macros/timeline",
"created": "20141212105914482",
"modified": "20141212110330815",
"tags": "$:/tags/Macro",
"text": "\\define timeline-title()\n\\whitespace trim\n<!-- Override this macro with a global macro \n of the same name if you need to change \n how titles are displayed on the timeline \n -->\n<$view field=\"title\"/>\n\\end\n\\define timeline(limit:\"100\",format:\"DDth MMM YYYY\",subfilter:\"\",dateField:\"modified\")\n<div class=\"tc-timeline\">\n<$list filter=\"[!is[system]$subfilter$has[$dateField$]!sort[$dateField$]limit[$limit$]eachday[$dateField$]]\">\n<div class=\"tc-menu-list-item\">\n<$view field=\"$dateField$\" format=\"date\" template=\"$format$\"/>\n<$list filter=\"[sameday:$dateField${!!$dateField$}!is[system]$subfilter$!sort[$dateField$]]\">\n<div class=\"tc-menu-list-subitem\">\n<$link to={{!!title}}><<timeline-title>></$link>\n</div>\n</$list>\n</div>\n</$list>\n</div>\n\\end\n"
},
"$:/core/macros/toc": {
"title": "$:/core/macros/toc",
"tags": "$:/tags/Macro",
"text": "\\define toc-caption()\n<$set name=\"tv-wikilinks\" value=\"no\">\n <$transclude field=\"caption\">\n <$view field=\"title\"/>\n </$transclude>\n</$set>\n\\end\n\n\\define toc-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<ol class=\"tc-toc\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$vars item=<<currentTiddler>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=\"<$link><$view field='caption'><$view field='title'/></$view></$link>\">\n <<toc-caption>>\n </$list>\n <$macrocall $name=\"toc-body\" tag=<<item>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </li>\n </$set>\n </$set>\n </$vars>\n </$list>\n</ol>\n\\end\n\n\\define toc(tag,sort:\"\",itemClassFilter:\"\")\n<$macrocall $name=\"toc-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> />\n\\end\n\n\\define toc-linked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$link>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<!-- helper function -->\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-expandable-empty-message()\n<$macrocall $name=\"toc-linked-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-expandable(tag,sort:\"\",itemClassFilter:\"\",exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" emptyMessage=<<toc-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"\"\"itemClassFilter\"\"\" exclude=<<excluded>> path=<<path>> />\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-linked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\" >\n <li class=<<toc-item-class>>>\n <$link>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n </$button>\n </$reveal>\n </$list>\n <<toc-caption>>\n </$link>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-unlinked-selective-expandable-body(tag,sort:\"\",itemClassFilter,exclude,path)\n<$qualify name=\"toc-state\" title={{{ [[$:/state/toc]addsuffix<__path__>addsuffix[-]addsuffix<currentTiddler>] }}}>\n <$set name=\"toc-item-class\" filter=<<__itemClassFilter__>> emptyValue=\"toc-item-selected\" value=\"toc-item\">\n <li class=<<toc-item-class>>>\n <$list filter=\"[all[current]tagging[]$sort$limit[1]]\" variable=\"ignore\" emptyMessage=\"<$button class='tc-btn-invisible'>{{$:/core/images/blank}}</$button> <$view field='caption'><$view field='title'/></$view>\">\n <$reveal type=\"nomatch\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"open\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/right-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$button setTitle=<<toc-state>> setTo=\"close\" class=\"tc-btn-invisible tc-popup-keep\">\n {{$:/core/images/down-arrow}}\n <<toc-caption>>\n </$button>\n </$reveal>\n </$list>\n <$reveal type=\"match\" stateTitle=<<toc-state>> text=\"open\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<currentTiddler>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<__exclude__>> path=<<__path__>>/>\n </$reveal>\n </li>\n </$set>\n</$qualify>\n\\end\n\n\\define toc-selective-expandable-empty-message()\n<$macrocall $name=\"toc-linked-selective-expandable-body\" tag=<<tag>> sort=<<sort>> itemClassFilter=<<itemClassFilter>> exclude=<<excluded>> path=<<path>>/>\n\\end\n\n\\define toc-selective-expandable(tag,sort:\"\",itemClassFilter,exclude,path)\n<$vars tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> path={{{ [<__path__>addsuffix[/]addsuffix<__tag__>] }}}>\n <$set name=\"excluded\" filter=\"\"\"[enlist<__exclude__>] [<__tag__>]\"\"\">\n <ol class=\"tc-toc toc-selective-expandable\">\n <$list filter=\"\"\"[all[shadows+tiddlers]tag<__tag__>!has[draft.of]$sort$] -[<__tag__>] -[enlist<__exclude__>]\"\"\">\n <$list filter=\"[all[current]toc-link[no]]\" variable=\"ignore\" emptyMessage=<<toc-selective-expandable-empty-message>> >\n <$macrocall $name=\"toc-unlinked-selective-expandable-body\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=<<__itemClassFilter__>> exclude=<<excluded>> path=<<path>>/>\n </$list>\n </$list>\n </ol>\n </$set>\n</$vars>\n\\end\n\n\\define toc-tabbed-external-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$tiddler tiddler={{{ [<__selectedTiddler__>get[text]] }}}>\n <div class=\"tc-tabbed-table-of-contents\">\n <$linkcatcher to=<<__selectedTiddler__>>>\n <div class=\"tc-table-of-contents\">\n <$macrocall $name=\"toc-selective-expandable\" tag=<<__tag__>> sort=<<__sort__>> itemClassFilter=\"[all[current]] -[<__selectedTiddler__>get[text]]\"/>\n </div>\n </$linkcatcher>\n <div class=\"tc-tabbed-table-of-contents-content\">\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"nomatch\" text=\"\">\n <$transclude mode=\"block\" tiddler=<<__template__>>>\n <h1><<toc-caption>></h1>\n <$transclude mode=\"block\">$missingText$</$transclude>\n </$transclude>\n </$reveal>\n <$reveal stateTitle=<<__selectedTiddler__>> type=\"match\" text=\"\">\n $unselectedText$\n </$reveal>\n </div>\n </div>\n</$tiddler>\n\\end\n\n\\define toc-tabbed-internal-nav(tag,sort:\"\",selectedTiddler:\"$:/temp/toc/selectedTiddler\",unselectedText,missingText,template:\"\")\n<$linkcatcher to=<<__selectedTiddler__>>>\n <$macrocall $name=\"toc-tabbed-external-nav\" tag=<<__tag__>> sort=<<__sort__>> selectedTiddler=<<__selectedTiddler__>> unselectedText=<<__unselectedText__>> missingText=<<__missingText__>> template=<<__template__>>/>\n</$linkcatcher>\n\\end\n\n"
},
"$:/core/macros/translink": {
"title": "$:/core/macros/translink",
"tags": "$:/tags/Macro",
"text": "\\define translink(title,mode:\"block\")\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: black; foreground; white;\">\n<$link to=\"\"\"$title$\"\"\">\n<$text text=\"\"\"$title$\"\"\"/>\n</$link>\n<div style=\"border:1px solid #ccc; padding: 0.5em; background: white; foreground; black;\">\n<$transclude tiddler=\"\"\"$title$\"\"\" mode=\"$mode$\">\n\"<$text text=\"\"\"$title$\"\"\"/>\" is missing\n</$transclude>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/tree": {
"title": "$:/core/macros/tree",
"tags": "$:/tags/Macro",
"text": "\\define leaf-link(full-title,chunk,separator: \"/\")\n<$link to=<<__full-title__>>><$text text=<<__chunk__>>/></$link>\n\\end\n\n\\define leaf-node(prefix,chunk)\n<li>\n<$list filter=\"[<__prefix__>addsuffix<__chunk__>is[shadow]] [<__prefix__>addsuffix<__chunk__>is[tiddler]]\" variable=\"full-title\">\n<$list filter=\"[<full-title>removeprefix<__prefix__>]\" variable=\"chunk\">\n<span>{{$:/core/images/file}}</span> <$macrocall $name=\"leaf-link\" full-title=<<full-title>> chunk=<<chunk>>/>\n</$list>\n</$list>\n</li>\n\\end\n\n\\define branch-node(prefix,chunk,separator: \"/\")\n<li>\n<$set name=\"reveal-state\" value={{{ [[$:/state/tree/]addsuffix<__prefix__>addsuffix<__chunk__>] }}}>\n<$reveal type=\"nomatch\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"show\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$button setTitle=<<reveal-state>> setTo=\"hide\" class=\"tc-btn-invisible\">\n{{$:/core/images/folder}} <$text text=<<__chunk__>>/>\n</$button>\n</$reveal>\n<span>(<$count filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>removeprefix<__chunk__>] -[<__prefix__>addsuffix<__chunk__>]\"/>)</span>\n<$reveal type=\"match\" stateTitle=<<reveal-state>> text=\"show\">\n<$macrocall $name=\"tree-node\" prefix={{{ [<__prefix__>addsuffix<__chunk__>] }}} separator=<<__separator__>>/>\n</$reveal>\n</$set>\n</li>\n\\end\n\n\\define tree-node(prefix,separator: \"/\")\n<ol>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]!suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"leaf-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n<$list filter=\"[all[shadows+tiddlers]removeprefix<__prefix__>splitbefore<__separator__>sort[]suffix<__separator__>]\" variable=\"chunk\">\n<$macrocall $name=\"branch-node\" prefix=<<__prefix__>> chunk=<<chunk>> separator=<<__separator__>>/>\n</$list>\n</ol>\n\\end\n\n\\define tree(prefix: \"$:/\",separator: \"/\")\n<div class=\"tc-tree\">\n<span><$text text=<<__prefix__>>/></span>\n<div>\n<$macrocall $name=\"tree-node\" prefix=<<__prefix__>> separator=<<__separator__>>/>\n</div>\n</div>\n\\end\n"
},
"$:/core/macros/utils": {
"title": "$:/core/macros/utils",
"text": "\\define colour(colour)\n$colour$\n\\end\n"
},
"$:/snippets/minifocusswitcher": {
"title": "$:/snippets/minifocusswitcher",
"text": "<$select tiddler=\"$:/config/AutoFocus\">\n<$list filter=\"title tags text type fields\">\n<option value=<<currentTiddler>>><<currentTiddler>></option>\n</$list>\n</$select>\n"
},
"$:/snippets/minilanguageswitcher": {
"title": "$:/snippets/minilanguageswitcher",
"text": "<$select tiddler=\"$:/language\">\n<$list filter=\"[[$:/languages/en-GB]] [plugin-type[language]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"description\"><$view field=\"name\"><$view field=\"title\"/></$view></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/minithemeswitcher": {
"title": "$:/snippets/minithemeswitcher",
"text": "\\define lingo-base() $:/language/ControlPanel/Theme/\n<<lingo Prompt>> <$select tiddler=\"$:/theme\">\n<$list filter=\"[plugin-type[theme]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"name\"><$view field=\"title\"/></$view></option>\n</$list>\n</$select>"
},
"$:/snippets/modules": {
"title": "$:/snippets/modules",
"text": "\\define describeModuleType(type)\n{{$:/language/Docs/ModuleTypes/$type$}}\n\\end\n<$list filter=\"[moduletypes[]]\">\n\n!! <$macrocall $name=\"currentTiddler\" $type=\"text/plain\" $output=\"text/plain\"/>\n\n<$macrocall $name=\"describeModuleType\" type=<<currentTiddler>>/>\n\n<ul><$list filter=\"[all[current]modules[]]\"><li><$link><<currentTiddler>></$link>\n</li>\n</$list>\n</ul>\n</$list>\n"
},
"$:/palette": {
"title": "$:/palette",
"text": "$:/palettes/Vanilla"
},
"$:/snippets/paletteeditor": {
"title": "$:/snippets/paletteeditor",
"text": "<$transclude tiddler=\"$:/PaletteManager\"/>\n"
},
"$:/snippets/palettepreview": {
"title": "$:/snippets/palettepreview",
"text": "<$set name=\"currentTiddler\" value={{$:/palette}}>\n{{||$:/snippets/currpalettepreview}}\n</$set>\n"
},
"$:/snippets/paletteswitcher": {
"title": "$:/snippets/paletteswitcher",
"text": "<$linkcatcher to=\"$:/palette\">\n<div class=\"tc-chooser\"><$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Palette]sort[name]]\"><$set name=\"cls\" filter=\"[all[current]prefix{$:/palette}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' - <$view field=\"description\" format=\"text\"/>{{||$:/snippets/currpalettepreview}}</$link>\n</div></$set>\n</$list>\n</div>\n</$linkcatcher>\n"
},
"$:/snippets/peek-stylesheets": {
"title": "$:/snippets/peek-stylesheets",
"text": "\\define expandable-stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<$vars state=<<qualify \"$:/state/peek-stylesheets/open/\">>>\n<$set name=\"state\" value={{{ [<state>addsuffix<currentTiddler>] }}}>\n<li>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"no\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"nomatch\" state=<<state>> text=\"yes\" tag=\"span\">\n<$button set=<<state>> setTo=\"yes\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$reveal type=\"match\" state=<<state>> text=\"yes\" tag=\"div\">\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</$reveal>\n</li>\n</$set>\n</$vars>\n</$list>\n</ol>\n\\end\n\n\\define stylesheets-list()\n<ol>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]!has[draft.of]]\">\n<li>\n<$link>\n<$view field=\"title\"/>\n</$link>\n<$set name=\"source\" tiddler=<<currentTiddler>>>\n<$wikify name=\"styles\" text=<<source>>>\n<pre>\n<code>\n<$text text=<<styles>>/>\n</code>\n</pre>\n</$wikify>\n</$set>\n</li>\n</$list>\n</ol>\n\\end\n\n<$vars modeState=<<qualify \"$:/state/peek-stylesheets/mode/\">>>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"expanded\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}} {{$:/language/ControlPanel/Stylesheets/Expand/Caption}}</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<$button set=<<modeState>> setTo=\"restored\" class=\"tc-btn-invisible\">{{$:/core/images/chevron-down}} {{$:/language/ControlPanel/Stylesheets/Restore/Caption}}</$button>\n</$reveal>\n\n<$reveal type=\"nomatch\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<expandable-stylesheets-list>>\n</$reveal>\n<$reveal type=\"match\" state=<<modeState>> text=\"expanded\" tag=\"div\">\n<<stylesheets-list>>\n</$reveal>\n\n</$vars>\n"
},
"$:/temp/search": {
"title": "$:/temp/search",
"text": ""
},
"$:/tags/AdvancedSearch": {
"title": "$:/tags/AdvancedSearch",
"list": "[[$:/core/ui/AdvancedSearch/Standard]] [[$:/core/ui/AdvancedSearch/System]] [[$:/core/ui/AdvancedSearch/Shadows]] [[$:/core/ui/AdvancedSearch/Filter]]"
},
"$:/tags/AdvancedSearch/FilterButton": {
"title": "$:/tags/AdvancedSearch/FilterButton",
"list": "$:/core/ui/AdvancedSearch/Filter/FilterButtons/dropdown $:/core/ui/AdvancedSearch/Filter/FilterButtons/clear $:/core/ui/AdvancedSearch/Filter/FilterButtons/export $:/core/ui/AdvancedSearch/Filter/FilterButtons/delete"
},
"$:/tags/ControlPanel": {
"title": "$:/tags/ControlPanel",
"list": "$:/core/ui/ControlPanel/Info $:/core/ui/ControlPanel/Appearance $:/core/ui/ControlPanel/Settings $:/core/ui/ControlPanel/Saving $:/core/ui/ControlPanel/Plugins $:/core/ui/ControlPanel/Tools $:/core/ui/ControlPanel/Internals"
},
"$:/tags/ControlPanel/Info": {
"title": "$:/tags/ControlPanel/Info",
"list": "$:/core/ui/ControlPanel/Basics $:/core/ui/ControlPanel/Advanced"
},
"$:/tags/ControlPanel/Plugins": {
"title": "$:/tags/ControlPanel/Plugins",
"list": "[[$:/core/ui/ControlPanel/Plugins/Installed]] [[$:/core/ui/ControlPanel/Plugins/Add]]"
},
"$:/tags/EditTemplate": {
"title": "$:/tags/EditTemplate",
"list": "[[$:/core/ui/EditTemplate/controls]] [[$:/core/ui/EditTemplate/title]] [[$:/core/ui/EditTemplate/tags]] [[$:/core/ui/EditTemplate/shadow]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/EditTemplate/body]] [[$:/core/ui/EditTemplate/type]] [[$:/core/ui/EditTemplate/fields]]"
},
"$:/tags/EditToolbar": {
"title": "$:/tags/EditToolbar",
"list": "[[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/cancel]] [[$:/core/ui/Buttons/save]]"
},
"$:/tags/EditorToolbar": {
"title": "$:/tags/EditorToolbar",
"list": "$:/core/ui/EditorToolbar/paint $:/core/ui/EditorToolbar/opacity $:/core/ui/EditorToolbar/line-width $:/core/ui/EditorToolbar/rotate-left $:/core/ui/EditorToolbar/clear $:/core/ui/EditorToolbar/bold $:/core/ui/EditorToolbar/italic $:/core/ui/EditorToolbar/strikethrough $:/core/ui/EditorToolbar/underline $:/core/ui/EditorToolbar/superscript $:/core/ui/EditorToolbar/subscript $:/core/ui/EditorToolbar/mono-line $:/core/ui/EditorToolbar/mono-block $:/core/ui/EditorToolbar/quote $:/core/ui/EditorToolbar/list-bullet $:/core/ui/EditorToolbar/list-number $:/core/ui/EditorToolbar/heading-1 $:/core/ui/EditorToolbar/heading-2 $:/core/ui/EditorToolbar/heading-3 $:/core/ui/EditorToolbar/heading-4 $:/core/ui/EditorToolbar/heading-5 $:/core/ui/EditorToolbar/heading-6 $:/core/ui/EditorToolbar/link $:/core/ui/EditorToolbar/excise $:/core/ui/EditorToolbar/picture $:/core/ui/EditorToolbar/stamp $:/core/ui/EditorToolbar/size $:/core/ui/EditorToolbar/editor-height $:/core/ui/EditorToolbar/more $:/core/ui/EditorToolbar/preview $:/core/ui/EditorToolbar/preview-type"
},
"$:/tags/Manager/ItemMain": {
"title": "$:/tags/Manager/ItemMain",
"list": "$:/Manager/ItemMain/WikifiedText $:/Manager/ItemMain/RawText $:/Manager/ItemMain/Fields"
},
"$:/tags/Manager/ItemSidebar": {
"title": "$:/tags/Manager/ItemSidebar",
"list": "$:/Manager/ItemSidebar/Tags $:/Manager/ItemSidebar/Colour $:/Manager/ItemSidebar/Icon $:/Manager/ItemSidebar/Tools"
},
"$:/tags/MoreSideBar": {
"title": "$:/tags/MoreSideBar",
"list": "[[$:/core/ui/MoreSideBar/All]] [[$:/core/ui/MoreSideBar/Recent]] [[$:/core/ui/MoreSideBar/Tags]] [[$:/core/ui/MoreSideBar/Missing]] [[$:/core/ui/MoreSideBar/Drafts]] [[$:/core/ui/MoreSideBar/Orphans]] [[$:/core/ui/MoreSideBar/Types]] [[$:/core/ui/MoreSideBar/System]] [[$:/core/ui/MoreSideBar/Shadows]] [[$:/core/ui/MoreSideBar/Explorer]] [[$:/core/ui/MoreSideBar/Plugins]]",
"text": ""
},
"$:/tags/PageControls": {
"title": "$:/tags/PageControls",
"list": "[[$:/core/ui/Buttons/home]] [[$:/core/ui/Buttons/close-all]] [[$:/core/ui/Buttons/fold-all]] [[$:/core/ui/Buttons/unfold-all]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/new-tiddler]] [[$:/core/ui/Buttons/new-journal]] [[$:/core/ui/Buttons/new-image]] [[$:/core/ui/Buttons/import]] [[$:/core/ui/Buttons/export-page]] [[$:/core/ui/Buttons/control-panel]] [[$:/core/ui/Buttons/advanced-search]] [[$:/core/ui/Buttons/manager]] [[$:/core/ui/Buttons/tag-manager]] [[$:/core/ui/Buttons/language]] [[$:/core/ui/Buttons/palette]] [[$:/core/ui/Buttons/theme]] [[$:/core/ui/Buttons/storyview]] [[$:/core/ui/Buttons/encryption]] [[$:/core/ui/Buttons/timestamp]] [[$:/core/ui/Buttons/full-screen]] [[$:/core/ui/Buttons/print]] [[$:/core/ui/Buttons/save-wiki]] [[$:/core/ui/Buttons/refresh]] [[$:/core/ui/Buttons/more-page-actions]]"
},
"$:/tags/PageTemplate": {
"title": "$:/tags/PageTemplate",
"list": "[[$:/core/ui/PageTemplate/topleftbar]] [[$:/core/ui/PageTemplate/toprightbar]] [[$:/core/ui/PageTemplate/sidebar]] [[$:/core/ui/PageTemplate/story]] [[$:/core/ui/PageTemplate/alerts]]",
"text": ""
},
"$:/tags/PluginLibrary": {
"title": "$:/tags/PluginLibrary",
"list": "$:/config/OfficialPluginLibrary"
},
"$:/tags/SideBar": {
"title": "$:/tags/SideBar",
"list": "[[$:/core/ui/SideBar/Open]] [[$:/core/ui/SideBar/Recent]] [[$:/core/ui/SideBar/Tools]] [[$:/core/ui/SideBar/More]]",
"text": ""
},
"$:/tags/SideBarSegment": {
"title": "$:/tags/SideBarSegment",
"list": "[[$:/core/ui/SideBarSegments/site-title]] [[$:/core/ui/SideBarSegments/site-subtitle]] [[$:/core/ui/SideBarSegments/page-controls]] [[$:/core/ui/SideBarSegments/search]] [[$:/core/ui/SideBarSegments/tabs]]"
},
"$:/tags/TiddlerInfo": {
"title": "$:/tags/TiddlerInfo",
"list": "[[$:/core/ui/TiddlerInfo/Tools]] [[$:/core/ui/TiddlerInfo/References]] [[$:/core/ui/TiddlerInfo/Tagging]] [[$:/core/ui/TiddlerInfo/List]] [[$:/core/ui/TiddlerInfo/Listed]] [[$:/core/ui/TiddlerInfo/Fields]]",
"text": ""
},
"$:/tags/TiddlerInfo/Advanced": {
"title": "$:/tags/TiddlerInfo/Advanced",
"list": "[[$:/core/ui/TiddlerInfo/Advanced/ShadowInfo]] [[$:/core/ui/TiddlerInfo/Advanced/PluginInfo]]"
},
"$:/tags/ViewTemplate": {
"title": "$:/tags/ViewTemplate",
"list": "[[$:/core/ui/ViewTemplate/title]] [[$:/core/ui/ViewTemplate/unfold]] [[$:/core/ui/ViewTemplate/subtitle]] [[$:/core/ui/ViewTemplate/tags]] [[$:/core/ui/ViewTemplate/classic]] [[$:/core/ui/ViewTemplate/body]]"
},
"$:/tags/ViewToolbar": {
"title": "$:/tags/ViewToolbar",
"list": "[[$:/core/ui/Buttons/more-tiddler-actions]] [[$:/core/ui/Buttons/info]] [[$:/core/ui/Buttons/new-here]] [[$:/core/ui/Buttons/new-journal-here]] [[$:/core/ui/Buttons/clone]] [[$:/core/ui/Buttons/export-tiddler]] [[$:/core/ui/Buttons/edit]] [[$:/core/ui/Buttons/delete]] [[$:/core/ui/Buttons/permalink]] [[$:/core/ui/Buttons/permaview]] [[$:/core/ui/Buttons/open-window]] [[$:/core/ui/Buttons/close-others]] [[$:/core/ui/Buttons/close]] [[$:/core/ui/Buttons/fold-others]] [[$:/core/ui/Buttons/fold]]"
},
"$:/snippets/themeswitcher": {
"title": "$:/snippets/themeswitcher",
"text": "<$linkcatcher to=\"$:/theme\">\n<div class=\"tc-chooser\"><$list filter=\"[plugin-type[theme]sort[title]]\"><$set name=\"cls\" filter=\"[all[current]field:title{$:/theme}] [[$:/theme]!has[text]addsuffix[s/tiddlywiki/vanilla]field:title<currentTiddler>] +[limit[1]]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>><$link to={{!!title}}>''<$view field=\"name\" format=\"text\"/>'' <$view field=\"description\" format=\"text\"/></$link></div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
},
"$:/core/wiki/title": {
"title": "$:/core/wiki/title",
"text": "{{$:/SiteTitle}} --- {{$:/SiteSubtitle}}"
},
"$:/view": {
"title": "$:/view",
"text": "classic"
},
"$:/snippets/viewswitcher": {
"title": "$:/snippets/viewswitcher",
"text": "\\define icon()\n$:/core/images/storyview-$(storyview)$\n\\end\n<$linkcatcher to=\"$:/view\">\n<div class=\"tc-chooser tc-viewswitcher\">\n<$list filter=\"[storyviews[]]\" variable=\"storyview\">\n<$set name=\"cls\" filter=\"[<storyview>prefix{$:/view}]\" value=\"tc-chooser-item tc-chosen\" emptyValue=\"tc-chooser-item\"><div class=<<cls>>>\n<$link to=<<storyview>>><$transclude tiddler=<<icon>>/><$text text=<<storyview>>/></$link>\n</div>\n</$set>\n</$list>\n</div>\n</$linkcatcher>"
}
}
}
<$reveal type="nomatch" state=<<folded-state>> text="hide" tag="div" retain="yes" animate="yes">
<div class="tc-subtitle">
<$link to={{!!modifier}}>
<$view field="modifier"/>
</$link>
</div>
</$reveal>
/* Bloc pour notes */
.note {
background: RGBA(254, 220, 87, 0.40) none repeat scroll 0% 0%;
font-family: "";
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #F1C40F;
border-left-width: 5px;
border-left-style: solid;
padding: 3px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
}
.astuce {
background: RGBA(46, 204, 113, 0.40) none repeat scroll 0% 0%;
font-family: "";
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #2ECC71;
border-left-width: 7px;
border-left-style: solid;
padding: 8px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
}
.attention {
background: RGBA(231, 76, 60, 0.40) none repeat scroll 0% 0%;
font-family: "";
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #E74C3C;
border-left-width: 7px;
border-left-style: solid;
padding: 8px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
}
.info {
background: rgba(52, 152, 219, 0.20) none repeat scroll 0% 0%;
font-family: "";
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #3498DB;
border-left-width: 10px;
border-left-style: solid;
padding: 8px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
}
.aa {
background: rgba(118,3,107, 0.2) none repeat scroll 0% 0%;
font-family: "";
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #76036B;
border-left-width: 7px;
border-left-style: solid;
padding: 8px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
}
.aac {
background: rgba(118,3,107, 0.2) none repeat scroll 0% 0%;
font-family: monospace;
font-weight: 400;
line-height: 1.5em;
text-shadow: 0px 1px 0px rgba(255, 255, 255, 0.15);
border-color: #76036B;
border-left-width: 7px;
border-left-style: solid;
padding: 20px;
margin-bottom: 20px;
overflow: hidden;
clear: both;
column-width: 120px;
}
/* taille du titre */
.tc-site-title, .tc-titlebar { font-weight: 300; font-size: 1.8em; line-height: 1.2em; color: #e66450; margin: 0; }
.tc-titlebar h2 { font-size: 1em; display: inline; }
.tc-subtitle { font-size: 0em; color: #c78e50; font-weight: 300; }
[[Saisie]]
[[Bibtex]]
[[Référentiels]]
[[Outils HAL - Liens]]
[[Communication]]
[[Options]]
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
https://git.univ-pau.fr/api/v4
{
"tiddlers": {
"Untitled": {
"title": "Untitled",
"text": "<table style=\"box-sizing: border-box; border: 1px solid rgb(187, 75, 28); width: auto; max-width: 100%; caption-side: bottom; margin-top: 1em; margin-bottom: 1em; color: rgb(81, 0, 0); font-family: "Century gothic", Georgia, Helvetica, Arial, "Lucida Grande", "DejaVu Sans", sans-serif; font-size: 14px; font-style: normal; font-variant-ligatures: normal; font-variant-caps: normal; font-weight: 400; letter-spacing: normal; orphans: 2; text-align: start; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-text-stroke-width: 0px; background-color: rgb(218, 181, 139); text-decoration-thickness: initial; text-decoration-style: initial; text-decoration-color: initial;\"><tr style=\"box-sizing: border-box;\"><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 63px;\"><br class=\"Apple-interchange-newline\">ALTER</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 142px;\">isabelle-chol</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 47px;\">7958</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 133px;\">–</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 144px;\">0000-0002-2940-8646</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 84px;\">032948204</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 271px;\">–</button></span></td></tr><tr style=\"box-sizing: border-box;\"><th style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28); background-color: rgb(254, 242, 160); font-weight: bold;\">Chort, Isabelle</th><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 63px;\">TREE</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 142px;\">isabelle-chort</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 47px;\">174668</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 133px;\">–</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 144px;\">0000-0002-8730-364X</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 84px;\">176157522</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 271px;\">–</button></span></td></tr><tr style=\"box-sizing: border-box;\"><th style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28); background-color: rgb(254, 242, 160); font-weight: bold;\">Chrostowska, Anna</th><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 63px;\">IPREM</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 142px;\">anna-chrostowska</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 47px;\">14710</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 133px;\">–</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 144px;\">0000-0003-0371-4546</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 84px;\">086739611</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 271px;\">Idref : Laporte-Chrostowska, Anna (Chimiste)</button></span></td></tr><tr style=\"box-sizing: border-box;\"><th style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28); background-color: rgb(254, 242, 160); font-weight: bold;\">Clarimont, Sylvie</th><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 63px;\">TREE</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 142px;\">sylvie-clarimont</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 47px;\">20889</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 133px;\">–</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 144px;\">0000-0002-0490-2015</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 84px;\">077367847</button></span></td><td style=\"box-sizing: border-box; padding: 0px 7px; border-top: 1px solid rgb(187, 75, 28); border-left: 1px solid rgb(187, 75, 28);\"><span class=\" tc-reveal\" style=\"box-sizing: border-box;\"><button class=\"tc-btn-invisible\" style=\"box-sizing: border-box; font-family: inherit; font-size: 14px; line-height: 1.2; margin: 0px; overflow: visible; text-transform: none; appearance: button; padding: 0px; background: none; border: none; cursor: pointer; width: 271px;\">–</button></span></td></tr><tr style=\"box-sizing: border-box;\"></table><br class=\"Apple-interchange-newline\">"
}
}
}
alert-background: #644a7d
alert-border: #644a7d
alert-highlight: <<colour primary>>
alert-muted-foreground: <<colour muted-foreground>>
background: #2A2B30
blockquote-bar: <<colour muted-foreground>>
button-background: <<colour page-background>>
button-foreground: <<colour foreground>>
button-border: <<colour tag-background>>
code-background: <<colour page-background>>
code-border: <<colour page-background>>
code-foreground: <<colour muted-foreground>>
dirty-indicator: <<colour primary>>
download-background: #644a7d
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour background>>
dropdown-tab-background-selected: <<colour background>>
dropdown-tab-background: <<colour background>>
dropzone-background: <<colour primary>>
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: <<colour tag-background>>
external-link-foreground: #f0b000
foreground: pink
message-background: #644a7d
message-border: #644a7d
message-foreground: <<colour foreground>>
modal-backdrop: <<colour page-background>>
modal-background: <<colour background>>
modal-border: <<colour background>>
modal-footer-background: <<colour background>>
modal-footer-border: <<colour background>>
modal-header-border: <<colour muted-foreground>>
muted-foreground: rgba(255,255,255,0.5)
notification-background: #644a7d
notification-border: #644a7d
page-background: #1c1d22
pre-background: <<colour page-background>>
pre-border: <<colour page-background>>
primary: #00a9c7
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: inherit
sidebar-controls-foreground: <<colour muted-foreground>>
sidebar-foreground-shadow: transparent
sidebar-foreground: <<colour foreground>>
sidebar-muted-foreground-hover: inherit
sidebar-muted-foreground: <<colour foreground>>
sidebar-tab-background-selected: <<colour page-background>>
sidebar-tab-background: transparent
sidebar-tab-border-selected: <<colour primary>>
sidebar-tab-border: transparent
sidebar-tab-divider: <<colour primary>>
sidebar-tab-foreground-selected: <<colour primary>>
sidebar-tab-foreground: <<colour muted-foreground>>
sidebar-tiddler-link-foreground-hover: inherit
sidebar-tiddler-link-foreground: <<colour muted-foreground>>
site-title-foreground: white
static-alert-foreground: <<colour foreground>>
tab-background-selected: <<colour background>>
tab-background: transparent
tab-border-selected: <<colour primary>>
tab-border: transparent
tab-divider: <<colour primary>>
tab-foreground-selected: <<colour primary>>
tab-foreground: <<colour muted-foreground>>
table-border: <<colour page-background>>
table-footer-background: rgba(0, 0, 0, 0.1)
table-header-background: rgba(0, 0, 0, 0.2)
tag-background: #8a6ca8
tag-foreground: <<colour foreground>>
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: inherit
tiddler-controls-foreground-selected: <<colour foreground>>
tiddler-controls-foreground: #6b6b6b
tiddler-editor-background: <<colour background>>
tiddler-editor-border-image: <<colour background>>
tiddler-editor-border: rgba(255,255,255,0.1)
tiddler-editor-fields-even: #3a3a3a
tiddler-editor-fields-odd: <<colour page-background>>
tiddler-info-background: <<colour background>>
tiddler-info-border: <<colour page-background>>
tiddler-info-tab-background: <<colour background>>
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: <<colour muted-foreground>>
tiddler-title-foreground: <<colour primary>>
toolbar-new-button:
toolbar-options-button:
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button:
toolbar-done-button:
untagged-background: #3a3a3a
very-muted-foreground: rgba(255,255,255,0.2)
{
"tiddlers": {
"$:/language/Buttons/AdvancedSearch/Caption": {
"title": "$:/language/Buttons/AdvancedSearch/Caption",
"text": "recherche avancée"
},
"$:/language/Buttons/AdvancedSearch/Hint": {
"title": "$:/language/Buttons/AdvancedSearch/Hint",
"text": "Recherche avancée"
},
"$:/language/Buttons/Cancel/Caption": {
"title": "$:/language/Buttons/Cancel/Caption",
"text": "annuler"
},
"$:/language/Buttons/Cancel/Hint": {
"title": "$:/language/Buttons/Cancel/Hint",
"text": "Annule l'édition de ce tiddler"
},
"$:/language/Buttons/Clone/Caption": {
"title": "$:/language/Buttons/Clone/Caption",
"text": "cloner"
},
"$:/language/Buttons/Clone/Hint": {
"title": "$:/language/Buttons/Clone/Hint",
"text": "Clone ce tiddler"
},
"$:/language/Buttons/Close/Caption": {
"title": "$:/language/Buttons/Close/Caption",
"text": "fermer"
},
"$:/language/Buttons/Close/Hint": {
"title": "$:/language/Buttons/Close/Hint",
"text": "Ferme ce tiddler"
},
"$:/language/Buttons/CloseAll/Caption": {
"title": "$:/language/Buttons/CloseAll/Caption",
"text": "fermer tout"
},
"$:/language/Buttons/CloseAll/Hint": {
"title": "$:/language/Buttons/CloseAll/Hint",
"text": "Ferme tous les tiddlers"
},
"$:/language/Buttons/CloseOthers/Caption": {
"title": "$:/language/Buttons/CloseOthers/Caption",
"text": "fermer les autres tiddlers"
},
"$:/language/Buttons/CloseOthers/Hint": {
"title": "$:/language/Buttons/CloseOthers/Hint",
"text": "Ferme les autres tiddlers"
},
"$:/language/Buttons/ControlPanel/Caption": {
"title": "$:/language/Buttons/ControlPanel/Caption",
"text": "panneau de contrôle"
},
"$:/language/Buttons/ControlPanel/Hint": {
"title": "$:/language/Buttons/ControlPanel/Hint",
"text": "Ouvre le panneau de contrôle"
},
"$:/language/Buttons/CopyToClipboard/Caption": {
"title": "$:/language/Buttons/CopyToClipboard/Caption",
"text": "copier dans le presse-papier"
},
"$:/language/Buttons/CopyToClipboard/Hint": {
"title": "$:/language/Buttons/CopyToClipboard/Hint",
"text": "Copie ce texte dans le presse-papier"
},
"$:/language/Buttons/Delete/Caption": {
"title": "$:/language/Buttons/Delete/Caption",
"text": "supprimer"
},
"$:/language/Buttons/Delete/Hint": {
"title": "$:/language/Buttons/Delete/Hint",
"text": "Supprime ce tiddler"
},
"$:/language/Buttons/Edit/Caption": {
"title": "$:/language/Buttons/Edit/Caption",
"text": "éditer"
},
"$:/language/Buttons/Edit/Hint": {
"title": "$:/language/Buttons/Edit/Hint",
"text": "Édite ce tiddler"
},
"$:/language/Buttons/Encryption/Caption": {
"title": "$:/language/Buttons/Encryption/Caption",
"text": "chiffrement"
},
"$:/language/Buttons/Encryption/Hint": {
"title": "$:/language/Buttons/Encryption/Hint",
"text": "Affecte ou résilie le mot de passe pour la sauvegarde de ce wiki"
},
"$:/language/Buttons/Encryption/ClearPassword/Caption": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Caption",
"text": "résilier le mot de passe"
},
"$:/language/Buttons/Encryption/ClearPassword/Hint": {
"title": "$:/language/Buttons/Encryption/ClearPassword/Hint",
"text": "Résilie le mot de passe et sauvegarde ce wiki sans chiffrement"
},
"$:/language/Buttons/Encryption/SetPassword/Caption": {
"title": "$:/language/Buttons/Encryption/SetPassword/Caption",
"text": "affecter un mot de passe"
},
"$:/language/Buttons/Encryption/SetPassword/Hint": {
"title": "$:/language/Buttons/Encryption/SetPassword/Hint",
"text": "Affecte un mot de passe pour sauvegarde une version chiffrée de ce wiki"
},
"$:/language/Buttons/ExportPage/Caption": {
"title": "$:/language/Buttons/ExportPage/Caption",
"text": "exporter tout"
},
"$:/language/Buttons/ExportPage/Hint": {
"title": "$:/language/Buttons/ExportPage/Hint",
"text": "Exporte tous les tiddlers"
},
"$:/language/Buttons/ExportTiddler/Caption": {
"title": "$:/language/Buttons/ExportTiddler/Caption",
"text": "exporter ce tiddler"
},
"$:/language/Buttons/ExportTiddler/Hint": {
"title": "$:/language/Buttons/ExportTiddler/Hint",
"text": "Exporte ce tiddler"
},
"$:/language/Buttons/ExportTiddlers/Caption": {
"title": "$:/language/Buttons/ExportTiddlers/Caption",
"text": "exporter ces tiddlers"
},
"$:/language/Buttons/ExportTiddlers/Hint": {
"title": "$:/language/Buttons/ExportTiddlers/Hint",
"text": "Exporte ces tiddlers"
},
"$:/language/Buttons/SidebarSearch/Hint": {
"title": "$:/language/Buttons/SidebarSearch/Hint",
"text": "Choisit le champ de recherche dans la barre latérale"
},
"$:/language/Buttons/Fold/Caption": {
"title": "$:/language/Buttons/Fold/Caption",
"text": "replier le tiddler"
},
"$:/language/Buttons/Fold/Hint": {
"title": "$:/language/Buttons/Fold/Hint",
"text": "Replie le corps du tiddler"
},
"$:/language/Buttons/Fold/FoldBar/Caption": {
"title": "$:/language/Buttons/Fold/FoldBar/Caption",
"text": "Barre de repli"
},
"$:/language/Buttons/Fold/FoldBar/Hint": {
"title": "$:/language/Buttons/Fold/FoldBar/Hint",
"text": "Barre optionnelle pour replier et déplier les tiddlers"
},
"$:/language/Buttons/Unfold/Caption": {
"title": "$:/language/Buttons/Unfold/Caption",
"text": "déplier le tiddler"
},
"$:/language/Buttons/Unfold/Hint": {
"title": "$:/language/Buttons/Unfold/Hint",
"text": "Déplie le corps de ce tiddler"
},
"$:/language/Buttons/FoldOthers/Caption": {
"title": "$:/language/Buttons/FoldOthers/Caption",
"text": "replier les autres tiddlers"
},
"$:/language/Buttons/FoldOthers/Hint": {
"title": "$:/language/Buttons/FoldOthers/Hint",
"text": "Replie le corps des autres tiddlers ouverts"
},
"$:/language/Buttons/FoldAll/Caption": {
"title": "$:/language/Buttons/FoldAll/Caption",
"text": "replier tous les tiddlers"
},
"$:/language/Buttons/FoldAll/Hint": {
"title": "$:/language/Buttons/FoldAll/Hint",
"text": "Replie le corps de tous les tiddlers ouverts"
},
"$:/language/Buttons/UnfoldAll/Caption": {
"title": "$:/language/Buttons/UnfoldAll/Caption",
"text": "déplier tous les tiddlers"
},
"$:/language/Buttons/UnfoldAll/Hint": {
"title": "$:/language/Buttons/UnfoldAll/Hint",
"text": "Déplie le corps de tous les tiddlers ouverts"
},
"$:/language/Buttons/FullScreen/Caption": {
"title": "$:/language/Buttons/FullScreen/Caption",
"text": "plein-écran"
},
"$:/language/Buttons/FullScreen/Hint": {
"title": "$:/language/Buttons/FullScreen/Hint",
"text": "Entre ou sort du mode plein-écran"
},
"$:/language/Buttons/Help/Caption": {
"title": "$:/language/Buttons/Help/Caption",
"text": "aide"
},
"$:/language/Buttons/Help/Hint": {
"title": "$:/language/Buttons/Help/Hint",
"text": "Affiche le panneau d'aide"
},
"$:/language/Buttons/Import/Caption": {
"title": "$:/language/Buttons/Import/Caption",
"text": "importer"
},
"$:/language/Buttons/Import/Hint": {
"title": "$:/language/Buttons/Import/Hint",
"text": "Importe des fichiers de nombreux types, notamment texte, image, TiddlyWiki ou JSON"
},
"$:/language/Buttons/Info/Caption": {
"title": "$:/language/Buttons/Info/Caption",
"text": "informations"
},
"$:/language/Buttons/Info/Hint": {
"title": "$:/language/Buttons/Info/Hint",
"text": "Affiche des informations sur ce tiddler"
},
"$:/language/Buttons/Home/Caption": {
"title": "$:/language/Buttons/Home/Caption",
"text": "accueil"
},
"$:/language/Buttons/Home/Hint": {
"title": "$:/language/Buttons/Home/Hint",
"text": "Ouvre les tiddlers par défaut"
},
"$:/language/Buttons/Language/Caption": {
"title": "$:/language/Buttons/Language/Caption",
"text": "langue"
},
"$:/language/Buttons/Language/Hint": {
"title": "$:/language/Buttons/Language/Hint",
"text": "Choix de la langue pour l'interface utilisateur"
},
"$:/language/Buttons/Manager/Caption": {
"title": "$:/language/Buttons/Manager/Caption",
"text": "gestionnaire de tiddlers"
},
"$:/language/Buttons/Manager/Hint": {
"title": "$:/language/Buttons/Manager/Hint",
"text": "Ouvre le gestionnaire de tiddlers"
},
"$:/language/Buttons/More/Caption": {
"title": "$:/language/Buttons/More/Caption",
"text": "plus"
},
"$:/language/Buttons/More/Hint": {
"title": "$:/language/Buttons/More/Hint",
"text": "Actions supplémentaires"
},
"$:/language/Buttons/NewHere/Caption": {
"title": "$:/language/Buttons/NewHere/Caption",
"text": "nouveau, à partir d'ici"
},
"$:/language/Buttons/NewHere/Hint": {
"title": "$:/language/Buttons/NewHere/Hint",
"text": "Crée un nouveau tiddler avec pour tag le titre du tiddler courant"
},
"$:/language/Buttons/NewJournal/Caption": {
"title": "$:/language/Buttons/NewJournal/Caption",
"text": "nouveau journal"
},
"$:/language/Buttons/NewJournal/Hint": {
"title": "$:/language/Buttons/NewJournal/Hint",
"text": "Crée un nouveau tiddler journal"
},
"$:/language/Buttons/NewJournalHere/Caption": {
"title": "$:/language/Buttons/NewJournalHere/Caption",
"text": "nouveau journal, à partir d'ici"
},
"$:/language/Buttons/NewJournalHere/Hint": {
"title": "$:/language/Buttons/NewJournalHere/Hint",
"text": "Crée un nouveau tiddler journal avec pour tag le titre du tiddler courant"
},
"$:/language/Buttons/NewImage/Caption": {
"title": "$:/language/Buttons/NewImage/Caption",
"text": "nouvelle image"
},
"$:/language/Buttons/NewImage/Hint": {
"title": "$:/language/Buttons/NewImage/Hint",
"text": "Crée une nouveau tiddler image"
},
"$:/language/Buttons/NewMarkdown/Caption": {
"title": "$:/language/Buttons/NewMarkdown/Caption",
"text": "nouveau tiddler Markdown"
},
"$:/language/Buttons/NewMarkdown/Hint": {
"title": "$:/language/Buttons/NewMarkdown/Hint",
"text": "Crée un nouveau tiddler avec la syntaxe Markdown"
},
"$:/language/Buttons/NewTiddler/Caption": {
"title": "$:/language/Buttons/NewTiddler/Caption",
"text": "nouveau tiddler"
},
"$:/language/Buttons/NewTiddler/Hint": {
"title": "$:/language/Buttons/NewTiddler/Hint",
"text": "Crée un nouveau tiddler"
},
"$:/language/Buttons/OpenWindow/Caption": {
"title": "$:/language/Buttons/OpenWindow/Caption",
"text": "ouvrir dans une nouvelle fenêtre"
},
"$:/language/Buttons/OpenWindow/Hint": {
"title": "$:/language/Buttons/OpenWindow/Hint",
"text": "Ouvre ce tiddler dans une nouvelle fenêtre"
},
"$:/language/Buttons/Palette/Caption": {
"title": "$:/language/Buttons/Palette/Caption",
"text": "palette"
},
"$:/language/Buttons/Palette/Hint": {
"title": "$:/language/Buttons/Palette/Hint",
"text": "Choisit une palette de couleur"
},
"$:/language/Buttons/Permalink/Caption": {
"title": "$:/language/Buttons/Permalink/Caption",
"text": "permalink"
},
"$:/language/Buttons/Permalink/Hint": {
"title": "$:/language/Buttons/Permalink/Hint",
"text": "Remplace l'URL dans la barre d'adresse du navigateur par un lien direct vers ce tiddler"
},
"$:/language/Buttons/Permaview/Caption": {
"title": "$:/language/Buttons/Permaview/Caption",
"text": "permaview"
},
"$:/language/Buttons/Permaview/Hint": {
"title": "$:/language/Buttons/Permaview/Hint",
"text": "Remplace l'URL dans la barre d'adresse du navigateur par un lien direct vers l'ensemble des tiddlers présents dans le déroulé"
},
"$:/language/Buttons/Print/Caption": {
"title": "$:/language/Buttons/Print/Caption",
"text": "imprimer la page"
},
"$:/language/Buttons/Print/Hint": {
"title": "$:/language/Buttons/Print/Hint",
"text": "Imprime la page courante"
},
"$:/language/Buttons/Refresh/Caption": {
"title": "$:/language/Buttons/Refresh/Caption",
"text": "rafraîchir"
},
"$:/language/Buttons/Refresh/Hint": {
"title": "$:/language/Buttons/Refresh/Hint",
"text": "Rafraîchit la totalité du wiki"
},
"$:/language/Buttons/Save/Caption": {
"title": "$:/language/Buttons/Save/Caption",
"text": "ok"
},
"$:/language/Buttons/Save/Hint": {
"title": "$:/language/Buttons/Save/Hint",
"text": "Confirme les changements apportés à ce tiddler"
},
"$:/language/Buttons/SaveWiki/Caption": {
"title": "$:/language/Buttons/SaveWiki/Caption",
"text": "enregistrer les modifications"
},
"$:/language/Buttons/SaveWiki/Hint": {
"title": "$:/language/Buttons/SaveWiki/Hint",
"text": "Enregistre les modifications"
},
"$:/language/Buttons/StoryView/Caption": {
"title": "$:/language/Buttons/StoryView/Caption",
"text": "visualisation du déroulé"
},
"$:/language/Buttons/StoryView/Hint": {
"title": "$:/language/Buttons/StoryView/Hint",
"text": "Choisit le mode de visualisation du déroulé"
},
"$:/language/Buttons/HideSideBar/Caption": {
"title": "$:/language/Buttons/HideSideBar/Caption",
"text": "cacher la barre latérale"
},
"$:/language/Buttons/HideSideBar/Hint": {
"title": "$:/language/Buttons/HideSideBar/Hint",
"text": "Cache la barre latérale"
},
"$:/language/Buttons/ShowSideBar/Caption": {
"title": "$:/language/Buttons/ShowSideBar/Caption",
"text": "afficher la barre latérale"
},
"$:/language/Buttons/ShowSideBar/Hint": {
"title": "$:/language/Buttons/ShowSideBar/Hint",
"text": "Affiche la barre latérale"
},
"$:/language/Buttons/TagManager/Caption": {
"title": "$:/language/Buttons/TagManager/Caption",
"text": "gestionnaire de tags"
},
"$:/language/Buttons/TagManager/Hint": {
"title": "$:/language/Buttons/TagManager/Hint",
"text": "Ouvre le gestionnaire de tags"
},
"$:/language/Buttons/Timestamp/Caption": {
"title": "$:/language/Buttons/Timestamp/Caption",
"text": "horodatage"
},
"$:/language/Buttons/Timestamp/Hint": {
"title": "$:/language/Buttons/Timestamp/Hint",
"text": "Décide si les modifications mettent à jour l'horodatage"
},
"$:/language/Buttons/Timestamp/On/Caption": {
"title": "$:/language/Buttons/Timestamp/On/Caption",
"text": "horodatage activé"
},
"$:/language/Buttons/Timestamp/On/Hint": {
"title": "$:/language/Buttons/Timestamp/On/Hint",
"text": "L'horodatage est mis à jour quand les tiddlers sont modifiés"
},
"$:/language/Buttons/Timestamp/Off/Caption": {
"title": "$:/language/Buttons/Timestamp/Off/Caption",
"text": "horodatage désactivé"
},
"$:/language/Buttons/Timestamp/Off/Hint": {
"title": "$:/language/Buttons/Timestamp/Off/Hint",
"text": "L'horodatage n'est pas mis à jour quand les tiddlers sont modifiés"
},
"$:/language/Buttons/Theme/Caption": {
"title": "$:/language/Buttons/Theme/Caption",
"text": "thème"
},
"$:/language/Buttons/Theme/Hint": {
"title": "$:/language/Buttons/Theme/Hint",
"text": "Choix du thème pour l'affichage"
},
"$:/language/Buttons/Bold/Caption": {
"title": "$:/language/Buttons/Bold/Caption",
"text": "gras"
},
"$:/language/Buttons/Bold/Hint": {
"title": "$:/language/Buttons/Bold/Hint",
"text": "Met la sélection en gras"
},
"$:/language/Buttons/Clear/Caption": {
"title": "$:/language/Buttons/Clear/Caption",
"text": "effacer"
},
"$:/language/Buttons/Clear/Hint": {
"title": "$:/language/Buttons/Clear/Hint",
"text": "Remplace l'image par une couleur pleine"
},
"$:/language/Buttons/EditorHeight/Caption": {
"title": "$:/language/Buttons/EditorHeight/Caption",
"text": "hauteur de l'éditeur"
},
"$:/language/Buttons/EditorHeight/Caption/Auto": {
"title": "$:/language/Buttons/EditorHeight/Caption/Auto",
"text": "Ajuste automatiquement la hauteur en fonction du contenu"
},
"$:/language/Buttons/EditorHeight/Caption/Fixed": {
"title": "$:/language/Buttons/EditorHeight/Caption/Fixed",
"text": "Hauteur fixe :"
},
"$:/language/Buttons/EditorHeight/Hint": {
"title": "$:/language/Buttons/EditorHeight/Hint",
"text": "Choisit la hauteur de l'éditeur de texte"
},
"$:/language/Buttons/Excise/Caption": {
"title": "$:/language/Buttons/Excise/Caption",
"text": "exciser"
},
"$:/language/Buttons/Excise/Caption/Excise": {
"title": "$:/language/Buttons/Excise/Caption/Excise",
"text": "Effectue une excision"
},
"$:/language/Buttons/Excise/Caption/MacroName": {
"title": "$:/language/Buttons/Excise/Caption/MacroName",
"text": "Nom de la macro :"
},
"$:/language/Buttons/Excise/Caption/NewTitle": {
"title": "$:/language/Buttons/Excise/Caption/NewTitle",
"text": "Titre du nouveau tiddler :"
},
"$:/language/Buttons/Excise/Caption/Replace": {
"title": "$:/language/Buttons/Excise/Caption/Replace",
"text": "Remplacer le texte excisé par :"
},
"$:/language/Buttons/Excise/Caption/Replace/Macro": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Macro",
"text": "macro"
},
"$:/language/Buttons/Excise/Caption/Replace/Link": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Link",
"text": "lien"
},
"$:/language/Buttons/Excise/Caption/Replace/Transclusion": {
"title": "$:/language/Buttons/Excise/Caption/Replace/Transclusion",
"text": "transclusion"
},
"$:/language/Buttons/Excise/Caption/Tag": {
"title": "$:/language/Buttons/Excise/Caption/Tag",
"text": "Utilise le titre de ce tiddler comme tag du nouveau tiddler"
},
"$:/language/Buttons/Excise/Caption/TiddlerExists": {
"title": "$:/language/Buttons/Excise/Caption/TiddlerExists",
"text": "Attention : le tiddler existe déjà"
},
"$:/language/Buttons/Excise/Hint": {
"title": "$:/language/Buttons/Excise/Hint",
"text": "Excise le texte sélectionné vers un nouveau tiddler"
},
"$:/language/Buttons/Heading1/Caption": {
"title": "$:/language/Buttons/Heading1/Caption",
"text": "en-tête 1"
},
"$:/language/Buttons/Heading1/Hint": {
"title": "$:/language/Buttons/Heading1/Hint",
"text": "Applique le formatage des en-têtes de niveau 1 aux lignes de la sélection"
},
"$:/language/Buttons/Heading2/Caption": {
"title": "$:/language/Buttons/Heading2/Caption",
"text": "en-tête 2"
},
"$:/language/Buttons/Heading2/Hint": {
"title": "$:/language/Buttons/Heading2/Hint",
"text": "Applique le formatage des en-têtes de niveau 2 aux lignes de la sélection"
},
"$:/language/Buttons/Heading3/Caption": {
"title": "$:/language/Buttons/Heading3/Caption",
"text": "en-tête 3"
},
"$:/language/Buttons/Heading3/Hint": {
"title": "$:/language/Buttons/Heading3/Hint",
"text": "Applique le formatage des en-têtes de niveau 3 aux lignes de la sélection"
},
"$:/language/Buttons/Heading4/Caption": {
"title": "$:/language/Buttons/Heading4/Caption",
"text": "en-tête 4"
},
"$:/language/Buttons/Heading4/Hint": {
"title": "$:/language/Buttons/Heading4/Hint",
"text": "Applique le formatage des en-têtes de niveau 4 aux lignes de la sélection"
},
"$:/language/Buttons/Heading5/Caption": {
"title": "$:/language/Buttons/Heading5/Caption",
"text": "en-tête 5"
},
"$:/language/Buttons/Heading5/Hint": {
"title": "$:/language/Buttons/Heading5/Hint",
"text": "Applique le formatage des en-têtes de niveau 5 aux lignes de la sélection"
},
"$:/language/Buttons/Heading6/Caption": {
"title": "$:/language/Buttons/Heading6/Caption",
"text": "en-tête 6"
},
"$:/language/Buttons/Heading6/Hint": {
"title": "$:/language/Buttons/Heading6/Hint",
"text": "Applique le formatage des en-têtes de niveau 6 aux lignes de la sélection"
},
"$:/language/Buttons/Italic/Caption": {
"title": "$:/language/Buttons/Italic/Caption",
"text": "italiques"
},
"$:/language/Buttons/Italic/Hint": {
"title": "$:/language/Buttons/Italic/Hint",
"text": "Met la sélection en italiques"
},
"$:/language/Buttons/LineWidth/Caption": {
"title": "$:/language/Buttons/LineWidth/Caption",
"text": "épaisseur du trait"
},
"$:/language/Buttons/LineWidth/Hint": {
"title": "$:/language/Buttons/LineWidth/Hint",
"text": "Choisit une épaisseur de trait pour le remplissage"
},
"$:/language/Buttons/Link/Caption": {
"title": "$:/language/Buttons/Link/Caption",
"text": "lien"
},
"$:/language/Buttons/Link/Hint": {
"title": "$:/language/Buttons/Link/Hint",
"text": "Crée un lien wikitext"
},
"$:/language/Buttons/Linkify/Caption": {
"title": "$:/language/Buttons/Linkify/Caption",
"text": "wikilien"
},
"$:/language/Buttons/Linkify/Hint": {
"title": "$:/language/Buttons/Linkify/Hint",
"text": "Encadre la sélection avec des crochets droits"
},
"$:/language/Buttons/ListBullet/Caption": {
"title": "$:/language/Buttons/ListBullet/Caption",
"text": "liste à puces"
},
"$:/language/Buttons/ListBullet/Hint": {
"title": "$:/language/Buttons/ListBullet/Hint",
"text": "Formate les lignes de la sélection comme une liste à puces"
},
"$:/language/Buttons/ListNumber/Caption": {
"title": "$:/language/Buttons/ListNumber/Caption",
"text": "liste numérotée"
},
"$:/language/Buttons/ListNumber/Hint": {
"title": "$:/language/Buttons/ListNumber/Hint",
"text": "Formate les lignes de la sélection comme une liste numérotée"
},
"$:/language/Buttons/MonoBlock/Caption": {
"title": "$:/language/Buttons/MonoBlock/Caption",
"text": "bloc de chasse constante"
},
"$:/language/Buttons/MonoBlock/Hint": {
"title": "$:/language/Buttons/MonoBlock/Hint",
"text": "Formate les lignes de la sélection en bloc de chasse constante"
},
"$:/language/Buttons/MonoLine/Caption": {
"title": "$:/language/Buttons/MonoLine/Caption",
"text": "chasse constante"
},
"$:/language/Buttons/MonoLine/Hint": {
"title": "$:/language/Buttons/MonoLine/Hint",
"text": "Formate la sélection avec une police de caractères à chasse constante"
},
"$:/language/Buttons/Opacity/Caption": {
"title": "$:/language/Buttons/Opacity/Caption",
"text": "opacité"
},
"$:/language/Buttons/Opacity/Hint": {
"title": "$:/language/Buttons/Opacity/Hint",
"text": "Choisit l'opacité du remplissage"
},
"$:/language/Buttons/Paint/Caption": {
"title": "$:/language/Buttons/Paint/Caption",
"text": "couleur de remplissage"
},
"$:/language/Buttons/Paint/Hint": {
"title": "$:/language/Buttons/Paint/Hint",
"text": "Choisit la couleur de remplissage"
},
"$:/language/Buttons/Picture/Caption": {
"title": "$:/language/Buttons/Picture/Caption",
"text": "image"
},
"$:/language/Buttons/Picture/Hint": {
"title": "$:/language/Buttons/Picture/Hint",
"text": "Insère une image"
},
"$:/language/Buttons/Preview/Caption": {
"title": "$:/language/Buttons/Preview/Caption",
"text": "prévisualisation"
},
"$:/language/Buttons/Preview/Hint": {
"title": "$:/language/Buttons/Preview/Hint",
"text": "Affiche le panneau de prévisualisation"
},
"$:/language/Buttons/PreviewType/Caption": {
"title": "$:/language/Buttons/PreviewType/Caption",
"text": "type de prévisualisation"
},
"$:/language/Buttons/PreviewType/Hint": {
"title": "$:/language/Buttons/PreviewType/Hint",
"text": "Choisit le type de prévisualisation"
},
"$:/language/Buttons/Quote/Caption": {
"title": "$:/language/Buttons/Quote/Caption",
"text": "citation"
},
"$:/language/Buttons/Quote/Hint": {
"title": "$:/language/Buttons/Quote/Hint",
"text": "Formate les lignes de la sélection comme une citation"
},
"$:/language/Buttons/RotateLeft/Caption": {
"title": "$:/language/Buttons/RotateLeft/Caption",
"text": "pivoter vers la gauche"
},
"$:/language/Buttons/RotateLeft/Hint": {
"title": "$:/language/Buttons/RotateLeft/Hint",
"text": "Fait pivoter l'image vers la gauche de 90 degrés"
},
"$:/language/Buttons/Size/Caption": {
"title": "$:/language/Buttons/Size/Caption",
"text": "taille de l'image"
},
"$:/language/Buttons/Size/Caption/Height": {
"title": "$:/language/Buttons/Size/Caption/Height",
"text": "Hauteur :"
},
"$:/language/Buttons/Size/Caption/Resize": {
"title": "$:/language/Buttons/Size/Caption/Resize",
"text": "Redimensionner l'image"
},
"$:/language/Buttons/Size/Caption/Width": {
"title": "$:/language/Buttons/Size/Caption/Width",
"text": "Largeur :"
},
"$:/language/Buttons/Size/Hint": {
"title": "$:/language/Buttons/Size/Hint",
"text": "Indique une taille pour l'image"
},
"$:/language/Buttons/Stamp/Caption": {
"title": "$:/language/Buttons/Stamp/Caption",
"text": "tampon"
},
"$:/language/Buttons/Stamp/Caption/New": {
"title": "$:/language/Buttons/Stamp/Caption/New",
"text": "Ajoutez le vôtre"
},
"$:/language/Buttons/Stamp/Hint": {
"title": "$:/language/Buttons/Stamp/Hint",
"text": "Insère un fragment de texte préconfiguré"
},
"$:/language/Buttons/Stamp/New/Title": {
"title": "$:/language/Buttons/Stamp/New/Title",
"text": "Nom tel qu'il apparaît dans le menu"
},
"$:/language/Buttons/Stamp/New/Text": {
"title": "$:/language/Buttons/Stamp/New/Text",
"text": "Texte du fragment. (N'oubliez pas d'ajouter une légende dans le champ //caption//.)"
},
"$:/language/Buttons/Strikethrough/Caption": {
"title": "$:/language/Buttons/Strikethrough/Caption",
"text": "barré"
},
"$:/language/Buttons/Strikethrough/Hint": {
"title": "$:/language/Buttons/Strikethrough/Hint",
"text": "Barre le texte sélectionné"
},
"$:/language/Buttons/Subscript/Caption": {
"title": "$:/language/Buttons/Subscript/Caption",
"text": "indice"
},
"$:/language/Buttons/Subscript/Hint": {
"title": "$:/language/Buttons/Subscript/Hint",
"text": "Met en indice le texte sélectionné"
},
"$:/language/Buttons/Superscript/Caption": {
"title": "$:/language/Buttons/Superscript/Caption",
"text": "exposant"
},
"$:/language/Buttons/Superscript/Hint": {
"title": "$:/language/Buttons/Superscript/Hint",
"text": "Met en exposant le texte sélectionné"
},
"$:/language/Buttons/ToggleSidebar/Hint": {
"title": "$:/language/Buttons/ToggleSidebar/Hint",
"text": "Bascule la visibilité de la barre latérale"
},
"$:/language/Buttons/Transcludify/Caption": {
"title": "$:/language/Buttons/Transcludify/Caption",
"text": "transclusion"
},
"$:/language/Buttons/Transcludify/Hint": {
"title": "$:/language/Buttons/Transcludify/Hint",
"text": "Encadre la sélection avec des accolades"
},
"$:/language/Buttons/Underline/Caption": {
"title": "$:/language/Buttons/Underline/Caption",
"text": "souligné"
},
"$:/language/Buttons/Underline/Hint": {
"title": "$:/language/Buttons/Underline/Hint",
"text": "Souligne le texte sélectionné"
},
"$:/language/ControlPanel/Advanced/Caption": {
"title": "$:/language/ControlPanel/Advanced/Caption",
"text": "Avancé"
},
"$:/language/ControlPanel/Advanced/Hint": {
"title": "$:/language/ControlPanel/Advanced/Hint",
"text": "Informations internes sur ce ~TiddlyWiki"
},
"$:/language/ControlPanel/Appearance/Caption": {
"title": "$:/language/ControlPanel/Appearance/Caption",
"text": "Apparence"
},
"$:/language/ControlPanel/Appearance/Hint": {
"title": "$:/language/ControlPanel/Appearance/Hint",
"text": "Personnalisation de l'apparence de votre ~TiddlyWiki."
},
"$:/language/ControlPanel/Basics/AnimDuration/Prompt": {
"title": "$:/language/ControlPanel/Basics/AnimDuration/Prompt",
"text": "Durée de l'animation"
},
"$:/language/ControlPanel/Basics/AutoFocus/Prompt": {
"title": "$:/language/ControlPanel/Basics/AutoFocus/Prompt",
"text": "Champ qui recevra le focus par défaut pour les nouveaux tiddlers"
},
"$:/language/ControlPanel/Basics/Caption": {
"title": "$:/language/ControlPanel/Basics/Caption",
"text": "Fondamentaux"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/BottomHint",
"text": "Utilisez les [[crochets doubles]] pour les titres contenant des espaces. Vous pouvez aussi décider de <$button set=\"$:/DefaultTiddlers\" setTo=\"[list[$:/StoryList]]\">Conserver le déroulé actuel</$button>"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/Prompt",
"text": "Tiddlers par défaut"
},
"$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint": {
"title": "$:/language/ControlPanel/Basics/DefaultTiddlers/TopHint",
"text": "Liste les tiddlers qui seront affichés au démarrage :"
},
"$:/language/ControlPanel/Basics/Language/Prompt": {
"title": "$:/language/ControlPanel/Basics/Language/Prompt",
"text": "Bonjour ! Langue active :"
},
"$:/language/ControlPanel/Basics/NewJournal/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Title/Prompt",
"text": "Modèle pour les titres des tiddlers journaux"
},
"$:/language/ControlPanel/Basics/NewJournal/Text/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Text/Prompt",
"text": "Texte pour les nouveaux tiddlers journaux"
},
"$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewJournal/Tags/Prompt",
"text": "Tags pour les nouveaux tiddlers journaux"
},
"$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Title/Prompt",
"text": "Modèle pour les titres des nouveaux tiddlers"
},
"$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/NewTiddler/Tags/Prompt",
"text": "Tags pour les nouveaux tiddlers"
},
"$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/OverriddenShadowTiddlers/Prompt",
"text": "Nombre de tiddlers //shadow// modifiés"
},
"$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/ShadowTiddlers/Prompt",
"text": "Nombre de tiddlers //shadow//"
},
"$:/language/ControlPanel/Basics/Subtitle/Prompt": {
"title": "$:/language/ControlPanel/Basics/Subtitle/Prompt",
"text": "Sous-titre"
},
"$:/language/ControlPanel/Basics/SystemTiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/SystemTiddlers/Prompt",
"text": "Nombre de tiddlers système :"
},
"$:/language/ControlPanel/Basics/Tags/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tags/Prompt",
"text": "Nombre de tags :"
},
"$:/language/ControlPanel/Basics/Tiddlers/Prompt": {
"title": "$:/language/ControlPanel/Basics/Tiddlers/Prompt",
"text": "Nombre de tiddlers :"
},
"$:/language/ControlPanel/Basics/Title/Prompt": {
"title": "$:/language/ControlPanel/Basics/Title/Prompt",
"text": "Titre de ce ~TiddlyWiki :"
},
"$:/language/ControlPanel/Basics/Username/Prompt": {
"title": "$:/language/ControlPanel/Basics/Username/Prompt",
"text": "Signer les modifications avec ce nom d'utilisateur :"
},
"$:/language/ControlPanel/Basics/Version/Prompt": {
"title": "$:/language/ControlPanel/Basics/Version/Prompt",
"text": "Version de ~TiddlyWiki :"
},
"$:/language/ControlPanel/EditorTypes/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Caption",
"text": "Types d'éditeur"
},
"$:/language/ControlPanel/EditorTypes/Editor/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Editor/Caption",
"text": "Éditeur"
},
"$:/language/ControlPanel/EditorTypes/Hint": {
"title": "$:/language/ControlPanel/EditorTypes/Hint",
"text": "Ces tiddlers déterminent l'éditeur à utiliser pour éditer tel ou tel type de tiddler."
},
"$:/language/ControlPanel/EditorTypes/Type/Caption": {
"title": "$:/language/ControlPanel/EditorTypes/Type/Caption",
"text": "Type"
},
"$:/language/ControlPanel/Info/Caption": {
"title": "$:/language/ControlPanel/Info/Caption",
"text": "Info"
},
"$:/language/ControlPanel/Info/Hint": {
"title": "$:/language/ControlPanel/Info/Hint",
"text": "Information sur ce TiddlyWiki"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Prompt",
"text": "Entrez le raccourci ici"
},
"$:/language/ControlPanel/KeyboardShortcuts/Add/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Add/Caption",
"text": "ajoute un raccourci"
},
"$:/language/ControlPanel/KeyboardShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Caption",
"text": "Raccourcis clavier"
},
"$:/language/ControlPanel/KeyboardShortcuts/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Hint",
"text": "Gère les définitions des raccourcis clavier"
},
"$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/NoShortcuts/Caption",
"text": "Aucun raccourci clavier défini"
},
"$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Remove/Hint",
"text": "supprime le raccourci clavier"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/All": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/All",
"text": "Toutes plates-formes"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Mac",
"text": "Plate-forme Macintosh seulement"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonMac",
"text": "Plates-formes non-Macintosh seulement"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Linux",
"text": "Plate-forme Linux seulement"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonLinux",
"text": "Plate-formes non-Linux seulement"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/Windows",
"text": "Plate-forme Windows seulement"
},
"$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows": {
"title": "$:/language/ControlPanel/KeyboardShortcuts/Platform/NonWindows",
"text": "Plates-formes non-Windows seulement"
},
"$:/language/ControlPanel/LoadedModules/Caption": {
"title": "$:/language/ControlPanel/LoadedModules/Caption",
"text": "Modules chargés"
},
"$:/language/ControlPanel/LoadedModules/Hint": {
"title": "$:/language/ControlPanel/LoadedModules/Hint",
"text": "Liste des modules chargés, liés à leurs tiddlers sources. Les italiques indiquent que les tiddlers sources n'existent pas, le plus souvent parce que le module a été créé lors du processus d'amorçage."
},
"$:/language/ControlPanel/Palette/Caption": {
"title": "$:/language/ControlPanel/Palette/Caption",
"text": "Palette"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Caption",
"text": "Cloner"
},
"$:/language/ControlPanel/Palette/Editor/Clone/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Clone/Prompt",
"text": "Il est recommandé de cloner cette palette « shadow » avant de l'éditer"
},
"$:/language/ControlPanel/Palette/Editor/Delete/Hint": {
"title": "$:/language/ControlPanel/Palette/Editor/Delete/Hint",
"text": "supprime cette entrée dans la palette courante"
},
"$:/language/ControlPanel/Palette/Editor/Names/External/Show": {
"title": "$:/language/ControlPanel/Palette/Editor/Names/External/Show",
"text": "Montre les noms de couleur qui ne font pas partie de la palette courante"
},
"$:/language/ControlPanel/Palette/Editor/Prompt/Modified": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt/Modified",
"text": "Cette palette « shadow » a été modifiée"
},
"$:/language/ControlPanel/Palette/Editor/Prompt": {
"title": "$:/language/ControlPanel/Palette/Editor/Prompt",
"text": "Édition de"
},
"$:/language/ControlPanel/Palette/Editor/Reset/Caption": {
"title": "$:/language/ControlPanel/Palette/Editor/Reset/Caption",
"text": "Réinitialiser"
},
"$:/language/ControlPanel/Palette/HideEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/HideEditor/Caption",
"text": "Masquer l'éditeur"
},
"$:/language/ControlPanel/Palette/Prompt": {
"title": "$:/language/ControlPanel/Palette/Prompt",
"text": "Palette actuelle :"
},
"$:/language/ControlPanel/Palette/ShowEditor/Caption": {
"title": "$:/language/ControlPanel/Palette/ShowEditor/Caption",
"text": "Afficher l'éditeur"
},
"$:/language/ControlPanel/Parsing/Caption": {
"title": "$:/language/ControlPanel/Parsing/Caption",
"text": "Analyse"
},
"$:/language/ControlPanel/Parsing/Hint": {
"title": "$:/language/ControlPanel/Parsing/Hint",
"text": "Ici, vous pouvez activer/désactiver globalement les règles de l'analyseur du wiki. Les changements seront effectifs après enregistrement et rechargement de votre wiki. Désactiver certaines règles peut empêcher <$text text=\"TiddlyWiki\"/> de fonctionner correctement. Pour restaurer le fonctionnement normal, utilisez le [[safe mode|https://tiddlywiki.com/#SafeMode]]."
},
"$:/language/ControlPanel/Parsing/Block/Caption": {
"title": "$:/language/ControlPanel/Parsing/Block/Caption",
"text": "Règles d'analyse Block"
},
"$:/language/ControlPanel/Parsing/Inline/Caption": {
"title": "$:/language/ControlPanel/Parsing/Inline/Caption",
"text": "Règles d'analyse Inline"
},
"$:/language/ControlPanel/Parsing/Pragma/Caption": {
"title": "$:/language/ControlPanel/Parsing/Pragma/Caption",
"text": "Règles d'analyse Pragma"
},
"$:/language/ControlPanel/Plugins/Add/Caption": {
"title": "$:/language/ControlPanel/Plugins/Add/Caption",
"text": "Ajouter des plugins"
},
"$:/language/ControlPanel/Plugins/Add/Hint": {
"title": "$:/language/ControlPanel/Plugins/Add/Hint",
"text": "Installer des plugins à partir de la bibliothèque officielle"
},
"$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/AlreadyInstalled/Hint",
"text": "Ce plugin est déjà installé dans la version <$text text=<<installedVersion>>/>"
},
"$:/language/ControlPanel/Plugins/AlsoRequires": {
"title": "$:/language/ControlPanel/Plugins/AlsoRequires",
"text": "Requiert également :"
},
"$:/language/ControlPanel/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Disable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Disable/Caption",
"text": "désactiver"
},
"$:/language/ControlPanel/Plugins/Disable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Disable/Hint",
"text": "Désactive ce plugin au prochain rechargement de la page"
},
"$:/language/ControlPanel/Plugins/Disabled/Status": {
"title": "$:/language/ControlPanel/Plugins/Disabled/Status",
"text": "(désactivé)"
},
"$:/language/ControlPanel/Plugins/Downgrade/Caption": {
"title": "$:/language/ControlPanel/Plugins/Downgrade/Caption",
"text": "version antérieure"
},
"$:/language/ControlPanel/Plugins/Empty/Hint": {
"title": "$:/language/ControlPanel/Plugins/Empty/Hint",
"text": "Aucun"
},
"$:/language/ControlPanel/Plugins/Enable/Caption": {
"title": "$:/language/ControlPanel/Plugins/Enable/Caption",
"text": "activer"
},
"$:/language/ControlPanel/Plugins/Enable/Hint": {
"title": "$:/language/ControlPanel/Plugins/Enable/Hint",
"text": "Active ce plugin au prochain rechargement de la page"
},
"$:/language/ControlPanel/Plugins/Install/Caption": {
"title": "$:/language/ControlPanel/Plugins/Install/Caption",
"text": "installer"
},
"$:/language/ControlPanel/Plugins/Installed/Hint": {
"title": "$:/language/ControlPanel/Plugins/Installed/Hint",
"text": "Plugins installés :"
},
"$:/language/ControlPanel/Plugins/Languages/Caption": {
"title": "$:/language/ControlPanel/Plugins/Languages/Caption",
"text": "Langues"
},
"$:/language/ControlPanel/Plugins/Languages/Hint": {
"title": "$:/language/ControlPanel/Plugins/Languages/Hint",
"text": "Plugins de langue"
},
"$:/language/ControlPanel/Plugins/NoInfoFound/Hint": {
"title": "$:/language/ControlPanel/Plugins/NoInfoFound/Hint",
"text": "''\"<$text text=<<currentTab>>/>\"'' non trouvé"
},
"$:/language/ControlPanel/Plugins/NotInstalled/Hint": {
"title": "$:/language/ControlPanel/Plugins/NotInstalled/Hint",
"text": "Ce plugin n'est pas installé"
},
"$:/language/ControlPanel/Plugins/OpenPluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/OpenPluginLibrary",
"text": "ouvre la bibliothèque de plugins"
},
"$:/language/ControlPanel/Plugins/ClosePluginLibrary": {
"title": "$:/language/ControlPanel/Plugins/ClosePluginLibrary",
"text": "ferme la bibliothèque des plugins"
},
"$:/language/ControlPanel/Plugins/PluginWillRequireReload": {
"title": "$:/language/ControlPanel/Plugins/PluginWillRequireReload",
"text": "(rechargement requis)"
},
"$:/language/ControlPanel/Plugins/Plugins/Caption": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Caption",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Plugins/Hint": {
"title": "$:/language/ControlPanel/Plugins/Plugins/Hint",
"text": "Plugins"
},
"$:/language/ControlPanel/Plugins/Reinstall/Caption": {
"title": "$:/language/ControlPanel/Plugins/Reinstall/Caption",
"text": "réinstalle"
},
"$:/language/ControlPanel/Plugins/Themes/Caption": {
"title": "$:/language/ControlPanel/Plugins/Themes/Caption",
"text": "Thèmes"
},
"$:/language/ControlPanel/Plugins/Themes/Hint": {
"title": "$:/language/ControlPanel/Plugins/Themes/Hint",
"text": "Plugins de thème"
},
"$:/language/ControlPanel/Plugins/Update/Caption": {
"title": "$:/language/ControlPanel/Plugins/Update/Caption",
"text": "mise à jour"
},
"$:/language/ControlPanel/Plugins/Updates/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/Caption",
"text": "Mises à jour"
},
"$:/language/ControlPanel/Plugins/Updates/Hint": {
"title": "$:/language/ControlPanel/Plugins/Updates/Hint",
"text": "Mises à jour disponibles pour les plugins installés"
},
"$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption": {
"title": "$:/language/ControlPanel/Plugins/Updates/UpdateAll/Caption",
"text": "Mettre à jour <<update-count>> plugins"
},
"$:/language/ControlPanel/Plugins/SubPluginPrompt": {
"title": "$:/language/ControlPanel/Plugins/SubPluginPrompt",
"text": "Avec <<count>> sous-plugins disponibles"
},
"$:/language/ControlPanel/Saving/Caption": {
"title": "$:/language/ControlPanel/Saving/Caption",
"text": "Sauvegarde"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Description",
"text": "Permet l'enregistrement automatique pour l'enregistreur de téléchargement"
},
"$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/AutoSave/Hint",
"text": "Active l'auto-enregistrement pour l'enregistreur de téléchargement"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Caption": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Caption",
"text": "Enregistreur de téléchargement"
},
"$:/language/ControlPanel/Saving/DownloadSaver/Hint": {
"title": "$:/language/ControlPanel/Saving/DownloadSaver/Hint",
"text": "Ces paramètres s'appliquent à l'enregistreur de téléchargement compatible HTML5"
},
"$:/language/ControlPanel/Saving/General/Caption": {
"title": "$:/language/ControlPanel/Saving/General/Caption",
"text": "Général"
},
"$:/language/ControlPanel/Saving/General/Hint": {
"title": "$:/language/ControlPanel/Saving/General/Hint",
"text": "Ces paramètres s'appliquent à tous les enregistreurs chargés"
},
"$:/language/ControlPanel/Saving/Hint": {
"title": "$:/language/ControlPanel/Saving/Hint",
"text": "Paramètres pour enregistrer l'intégralité du TiddlyWiki dans un seul fichier, selon le module d'enregistrement choisi"
},
"$:/language/ControlPanel/Saving/GitService/Branch": {
"title": "$:/language/ControlPanel/Saving/GitService/Branch",
"text": "Branche cible où doit s'effectuer l'enregistrement"
},
"$:/language/ControlPanel/Saving/GitService/CommitMessage": {
"title": "$:/language/ControlPanel/Saving/GitService/CommitMessage",
"text": "Enregistré depuis TiddlyWiki"
},
"$:/language/ControlPanel/Saving/GitService/Description": {
"title": "$:/language/ControlPanel/Saving/GitService/Description",
"text": "Ces paramètres ne sont utilisés que pour l'enregistrement sur <<service-name>>"
},
"$:/language/ControlPanel/Saving/GitService/Filename": {
"title": "$:/language/ControlPanel/Saving/GitService/Filename",
"text": "Nom du fichier cible (par ex. `index.html`)"
},
"$:/language/ControlPanel/Saving/GitService/Path": {
"title": "$:/language/ControlPanel/Saving/GitService/Path",
"text": "Chemin vers le fichier cible (par ex. `/wiki/`)"
},
"$:/language/ControlPanel/Saving/GitService/Repo": {
"title": "$:/language/ControlPanel/Saving/GitService/Repo",
"text": "//Dépôt// cible (par ex. `Jermolene/TiddlyWiki5`)"
},
"$:/language/ControlPanel/Saving/GitService/ServerURL": {
"title": "$:/language/ControlPanel/Saving/GitService/ServerURL",
"text": "URL du serveur d'API"
},
"$:/language/ControlPanel/Saving/GitService/UserName": {
"title": "$:/language/ControlPanel/Saving/GitService/UserName",
"text": "Nom d'utilisateur"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Caption",
"text": "Enregistreur ~GitHub"
},
"$:/language/ControlPanel/Saving/GitService/GitHub/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitHub/Password",
"text": "Mot de passe, jeton OAUTH, ou //personal access token// (voir [[GitHub help page|https://help.github.com/en/articles/creating-a-personal-access-token-for-the-command-line]] pour de plus amples détails)"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Caption",
"text": "Enregistreur ~GitLab"
},
"$:/language/ControlPanel/Saving/GitService/GitLab/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/GitLab/Password",
"text": "//Personal access token// pour cette API (voir [[GitLab help page|https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html]] pour de plus amples details)"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Caption": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Caption",
"text": "Enregistreur Gitea"
},
"$:/language/ControlPanel/Saving/GitService/Gitea/Password": {
"title": "$:/language/ControlPanel/Saving/GitService/Gitea/Password",
"text": "//Jeton d'accès// pour cette API (via l'interface web de Gitea : `Configuration | Applications | Générer le nouveau jeton`)"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Advanced/Heading",
"text": "Paramètres avancés"
},
"$:/language/ControlPanel/Saving/TiddlySpot/BackupDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/BackupDir",
"text": "Dossier des //sauvegardes//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Backups": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Backups",
"text": "Sauvegardes"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Caption": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Caption",
"text": "Enregistreur ~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Description": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Description",
"text": "Ces paramètres ne servent que lors de la sauvegarde vers http://tiddlyspot.com ou vers un serveur distant compatible"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Filename": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Filename",
"text": "Nom du fichier enregistré"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Heading": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Heading",
"text": "~TiddlySpot"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Hint": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Hint",
"text": "//L'URL par défaut est `http://<nom du wiki>.tiddlyspot.com/store.cgi`. Elle peut être remplacée par une adresse serveur personnalisée, comme `http://example.com/store.php`.//"
},
"$:/language/ControlPanel/Saving/TiddlySpot/Password": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/Password",
"text": "Mot de passe"
},
"$:/language/ControlPanel/Saving/TiddlySpot/ServerURL": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/ServerURL",
"text": "URL du serveur"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UploadDir": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UploadDir",
"text": "Dossier des dépôts"
},
"$:/language/ControlPanel/Saving/TiddlySpot/UserName": {
"title": "$:/language/ControlPanel/Saving/TiddlySpot/UserName",
"text": "Nom utilisé pour ce Wiki"
},
"$:/language/ControlPanel/Settings/AutoSave/Caption": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Caption",
"text": "Sauvegarde automatique"
},
"$:/language/ControlPanel/Settings/AutoSave/Disabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Disabled/Description",
"text": "Pas de sauvegarde automatique des modifications"
},
"$:/language/ControlPanel/Settings/AutoSave/Enabled/Description": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Enabled/Description",
"text": "Sauvegarde automatique des modifications"
},
"$:/language/ControlPanel/Settings/AutoSave/Hint": {
"title": "$:/language/ControlPanel/Settings/AutoSave/Hint",
"text": "Tentative de sauvegarde automatique des modifications pendant l'édition quand un enregistreur compatible est utilisé"
},
"$:/language/ControlPanel/Settings/CamelCase/Caption": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Caption",
"text": "Liens Wiki //Camel Case//"
},
"$:/language/ControlPanel/Settings/CamelCase/Hint": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Hint",
"text": "Vous pouvez désactiver globalement les liens créés à partir des expressions de type ~CamelCase. Pour que ce paramètre prenne effet, il est nécessaire de recharger le wiki"
},
"$:/language/ControlPanel/Settings/CamelCase/Description": {
"title": "$:/language/ControlPanel/Settings/CamelCase/Description",
"text": "Active les liens automatiques sur les expressions de la forme ~CamelCase"
},
"$:/language/ControlPanel/Settings/Caption": {
"title": "$:/language/ControlPanel/Settings/Caption",
"text": "Paramétrage"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Caption",
"text": "Barre d'outils de l'éditeur"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Hint",
"text": "Active ou désactive la barre d'outils de l'éditeur :"
},
"$:/language/ControlPanel/Settings/EditorToolbar/Description": {
"title": "$:/language/ControlPanel/Settings/EditorToolbar/Description",
"text": "Affiche la barre d'outils de l'éditeur"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Caption": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Caption",
"text": "Mode Panneau d'Informations du Tiddler"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Hint": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Hint",
"text": "Contrôle à quel moment le panneau d'informations du tiddler se ferme :"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Popup/Description",
"text": "Le panneau d'informations se ferme automatiquement"
},
"$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description": {
"title": "$:/language/ControlPanel/Settings/InfoPanelMode/Sticky/Description",
"text": "Le panneau d'informations du tiddler reste ouvert jusqu'à ce qu'il soit fermé explicitement"
},
"$:/language/ControlPanel/Settings/Hint": {
"title": "$:/language/ControlPanel/Settings/Hint",
"text": "Ce paramétrage vous permet de personnaliser le comportement de TiddlyWiki."
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Caption",
"text": "Barre d'adresse pendant la navigation"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Hint",
"text": "Comportement de la barre d'adresse du navigateur lorsqu'on pointe vers un tiddler :"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/No/Description",
"text": "Ne pas modifier la barre d'adresse"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permalink/Description",
"text": "Inclure uniquement le titre du tiddler cible"
},
"$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationAddressBar/Permaview/Description",
"text": "Inclure le titre du tiddler cible ainsi que le déroulé courant"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Caption",
"text": "Historique de navigation"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Hint",
"text": "Mise à jour de l'historique de navigation du navigateur lorsqu'on pointe vers un tiddler :"
},
"$:/language/ControlPanel/Settings/NavigationHistory/No/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/No/Description",
"text": "Ne pas mettre à jour l'historique"
},
"$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationHistory/Yes/Description",
"text": "Mettre à jour l'historique"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Caption",
"text": "Mode Permalink/permaview"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/Hint",
"text": "Choisit la manière de traiter l'URL permalink/permaview:"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/CopyToClipboard/Description",
"text": "Copie l'URL permalink/permaview dans le presse-papier"
},
"$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description": {
"title": "$:/language/ControlPanel/Settings/NavigationPermalinkviewMode/UpdateAddressBar/Description",
"text": "Met à jour la barre d'adresse à partir de l'URL permalink/permaview"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Caption",
"text": "Instrumentation de la performance"
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Hint",
"text": "Affiche des statistiques de performance dans la console de développement du navigateur. Nécessite de recharger la page pour prendre effet."
},
"$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description": {
"title": "$:/language/ControlPanel/Settings/PerformanceInstrumentation/Description",
"text": "Active l'instrumentation de la performance"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Caption",
"text": "Style des boutons de la barre d'outils"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Hint",
"text": "Choix du style des boutons de la barre d'outils :"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Borderless",
"text": "Sans bordure"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Boxed",
"text": "Avec une bordure"
},
"$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtonStyle/Styles/Rounded",
"text": "Arrondis"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Caption": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Caption",
"text": "Boutons de la barre d'outils"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Hint": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Hint",
"text": "Apparence par défaut des boutons sur la barre d'outils :"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Icons/Description",
"text": "Afficher l'icône"
},
"$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description": {
"title": "$:/language/ControlPanel/Settings/ToolbarButtons/Text/Description",
"text": "Afficher le texte"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Caption",
"text": "Onglet par défaut sur la barre latérale"
},
"$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultSidebarTab/Hint",
"text": "Indique l'onglet de la barre latérale qui sera affiché par défaut"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Caption",
"text": "Onglet par défaut sous le Plus de la barre latérale"
},
"$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint": {
"title": "$:/language/ControlPanel/Settings/DefaultMoreSidebarTab/Hint",
"text": "Indique quel onglet sera affiché par défaut sous le Plus de la barre latérale"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/Caption": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/Caption",
"text": "Comportement à l'ouverture du tiddler"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/InsideRiver/Hint",
"text": "Navigation depuis un emplacement //interne// au déroulé"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OutsideRiver/Hint",
"text": "Navigation depuis un emplacement //externe// au déroulé"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAbove",
"text": "Ouvrir au-dessus du tiddler courant"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenBelow",
"text": "Ouvrir en dessous du tiddler courant"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtTop",
"text": "Ouvrir tout en haut du déroulé"
},
"$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom": {
"title": "$:/language/ControlPanel/Settings/LinkToBehaviour/OpenAtBottom",
"text": "Ouvrir tout en bas du déroulé"
},
"$:/language/ControlPanel/Settings/TitleLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Caption",
"text": "Titres des tiddlers"
},
"$:/language/ControlPanel/Settings/TitleLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Hint",
"text": "Faut-il afficher les titres des tiddlers comme des liens ?"
},
"$:/language/ControlPanel/Settings/TitleLinks/No/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/No/Description",
"text": "Ne pas afficher les titres des tiddlers comme des liens"
},
"$:/language/ControlPanel/Settings/TitleLinks/Yes/Description": {
"title": "$:/language/ControlPanel/Settings/TitleLinks/Yes/Description",
"text": "Afficher les titres des tiddlers comme des liens"
},
"$:/language/ControlPanel/Settings/MissingLinks/Caption": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Caption",
"text": "Liens wiki"
},
"$:/language/ControlPanel/Settings/MissingLinks/Hint": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Hint",
"text": "Peut-on pointer vers des tiddlers qui n'existent pas encore ?"
},
"$:/language/ControlPanel/Settings/MissingLinks/Description": {
"title": "$:/language/ControlPanel/Settings/MissingLinks/Description",
"text": "Active les liens vers les tiddlers inexistants"
},
"$:/language/ControlPanel/StoryView/Caption": {
"title": "$:/language/ControlPanel/StoryView/Caption",
"text": "Vue sur le déroulé"
},
"$:/language/ControlPanel/StoryView/Prompt": {
"title": "$:/language/ControlPanel/StoryView/Prompt",
"text": "Vue courante :"
},
"$:/language/ControlPanel/Stylesheets/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Caption",
"text": "Feuilles de style"
},
"$:/language/ControlPanel/Stylesheets/Expand/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Expand/Caption",
"text": "Tout déployer"
},
"$:/language/ControlPanel/Stylesheets/Hint": {
"title": "$:/language/ControlPanel/Stylesheets/Hint",
"text": "Voici le rendu CSS courant pour les tiddlers feuilles de style tagués avec <<tag \"$:/tags/Stylesheet\">>"
},
"$:/language/ControlPanel/Stylesheets/Restore/Caption": {
"title": "$:/language/ControlPanel/Stylesheets/Restore/Caption",
"text": "Restaurer"
},
"$:/language/ControlPanel/Theme/Caption": {
"title": "$:/language/ControlPanel/Theme/Caption",
"text": "Thème"
},
"$:/language/ControlPanel/Theme/Prompt": {
"title": "$:/language/ControlPanel/Theme/Prompt",
"text": "Thème courant :"
},
"$:/language/ControlPanel/TiddlerFields/Caption": {
"title": "$:/language/ControlPanel/TiddlerFields/Caption",
"text": "Champs des tiddlers"
},
"$:/language/ControlPanel/TiddlerFields/Hint": {
"title": "$:/language/ControlPanel/TiddlerFields/Hint",
"text": "Il s'agit de la totalité des [[champs|TiddlerFields]] utilisés dans ce wiki (y compris les tiddlers système, mais non compris les tiddlers //shadow//)."
},
"$:/language/ControlPanel/Toolbars/Caption": {
"title": "$:/language/ControlPanel/Toolbars/Caption",
"text": "Barres d'outils"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Caption",
"text": "Barre d'outils du mode édition"
},
"$:/language/ControlPanel/Toolbars/EditToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditToolbar/Hint",
"text": "Choix des boutons à afficher pour les tiddlers en cours d'édition"
},
"$:/language/ControlPanel/Toolbars/Hint": {
"title": "$:/language/ControlPanel/Toolbars/Hint",
"text": "Choix des boutons à afficher dans les barres d'outils"
},
"$:/language/ControlPanel/Toolbars/PageControls/Caption": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Caption",
"text": "Barre d'outils de la page"
},
"$:/language/ControlPanel/Toolbars/PageControls/Hint": {
"title": "$:/language/ControlPanel/Toolbars/PageControls/Hint",
"text": "Choix des boutons à afficher sur la barre d'outils principale de la page"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Caption",
"text": "Barre d'outils de l'Éditeur"
},
"$:/language/ControlPanel/Toolbars/EditorToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/EditorToolbar/Hint",
"text": "Choix des boutons à afficher dans la barre d'outils de l'éditeur. À noter que la présence de certains boutons dépendra du type du tiddler édité"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Caption": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Caption",
"text": "Barre d'outils du mode visualisation"
},
"$:/language/ControlPanel/Toolbars/ViewToolbar/Hint": {
"title": "$:/language/ControlPanel/Toolbars/ViewToolbar/Hint",
"text": "Choix des boutons à afficher pour les tiddlers en mode visualisation"
},
"$:/language/ControlPanel/Tools/Download/Full/Caption": {
"title": "$:/language/ControlPanel/Tools/Download/Full/Caption",
"text": "Télécharger le wiki complet"
},
"$:/core/fr-FR/readme": {
"title": "$:/core/fr-FR/readme",
"text": "Ce plugin contient les principaux composants de TiddlyWiki, notamment :\n\n* Les modules du code JavaScript ;\n* Les icônes ;\n* Les //templates// nécessaires à l'élaboration de l'interface utilisateur de TiddlyWiki ;\n* Les traductions en anglais britannique (''en-GB'') des chaînes de caractères utilisées par le cœur de l'application et susceptibles d'être traduites dans d'autres langues.\n"
},
"$:/language/Date/DaySuffix/1": {
"title": "$:/language/Date/DaySuffix/1",
"text": "er"
},
"$:/language/Date/DaySuffix/2": {
"title": "$:/language/Date/DaySuffix/2",
"text": ""
},
"$:/language/Date/DaySuffix/3": {
"title": "$:/language/Date/DaySuffix/3",
"text": ""
},
"$:/language/Date/DaySuffix/4": {
"title": "$:/language/Date/DaySuffix/4",
"text": ""
},
"$:/language/Date/DaySuffix/5": {
"title": "$:/language/Date/DaySuffix/5",
"text": ""
},
"$:/language/Date/DaySuffix/6": {
"title": "$:/language/Date/DaySuffix/6",
"text": ""
},
"$:/language/Date/DaySuffix/7": {
"title": "$:/language/Date/DaySuffix/7",
"text": ""
},
"$:/language/Date/DaySuffix/8": {
"title": "$:/language/Date/DaySuffix/8",
"text": ""
},
"$:/language/Date/DaySuffix/9": {
"title": "$:/language/Date/DaySuffix/9",
"text": ""
},
"$:/language/Date/DaySuffix/10": {
"title": "$:/language/Date/DaySuffix/10",
"text": ""
},
"$:/language/Date/DaySuffix/11": {
"title": "$:/language/Date/DaySuffix/11",
"text": ""
},
"$:/language/Date/DaySuffix/12": {
"title": "$:/language/Date/DaySuffix/12",
"text": ""
},
"$:/language/Date/DaySuffix/13": {
"title": "$:/language/Date/DaySuffix/13",
"text": ""
},
"$:/language/Date/DaySuffix/14": {
"title": "$:/language/Date/DaySuffix/14",
"text": ""
},
"$:/language/Date/DaySuffix/15": {
"title": "$:/language/Date/DaySuffix/15",
"text": ""
},
"$:/language/Date/DaySuffix/16": {
"title": "$:/language/Date/DaySuffix/16",
"text": ""
},
"$:/language/Date/DaySuffix/17": {
"title": "$:/language/Date/DaySuffix/17",
"text": ""
},
"$:/language/Date/DaySuffix/18": {
"title": "$:/language/Date/DaySuffix/18",
"text": ""
},
"$:/language/Date/DaySuffix/19": {
"title": "$:/language/Date/DaySuffix/19",
"text": ""
},
"$:/language/Date/DaySuffix/20": {
"title": "$:/language/Date/DaySuffix/20",
"text": ""
},
"$:/language/Date/DaySuffix/21": {
"title": "$:/language/Date/DaySuffix/21",
"text": ""
},
"$:/language/Date/DaySuffix/22": {
"title": "$:/language/Date/DaySuffix/22",
"text": ""
},
"$:/language/Date/DaySuffix/23": {
"title": "$:/language/Date/DaySuffix/23",
"text": ""
},
"$:/language/Date/DaySuffix/24": {
"title": "$:/language/Date/DaySuffix/24",
"text": ""
},
"$:/language/Date/DaySuffix/25": {
"title": "$:/language/Date/DaySuffix/25",
"text": ""
},
"$:/language/Date/DaySuffix/26": {
"title": "$:/language/Date/DaySuffix/26",
"text": ""
},
"$:/language/Date/DaySuffix/27": {
"title": "$:/language/Date/DaySuffix/27",
"text": ""
},
"$:/language/Date/DaySuffix/28": {
"title": "$:/language/Date/DaySuffix/28",
"text": ""
},
"$:/language/Date/DaySuffix/29": {
"title": "$:/language/Date/DaySuffix/29",
"text": ""
},
"$:/language/Date/DaySuffix/30": {
"title": "$:/language/Date/DaySuffix/30",
"text": ""
},
"$:/language/Date/DaySuffix/31": {
"title": "$:/language/Date/DaySuffix/31",
"text": ""
},
"$:/language/Date/Long/Day/0": {
"title": "$:/language/Date/Long/Day/0",
"text": "Dimanche"
},
"$:/language/Date/Long/Day/1": {
"title": "$:/language/Date/Long/Day/1",
"text": "Lundi"
},
"$:/language/Date/Long/Day/2": {
"title": "$:/language/Date/Long/Day/2",
"text": "Mardi"
},
"$:/language/Date/Long/Day/3": {
"title": "$:/language/Date/Long/Day/3",
"text": "Mercredi"
},
"$:/language/Date/Long/Day/4": {
"title": "$:/language/Date/Long/Day/4",
"text": "Jeudi"
},
"$:/language/Date/Long/Day/5": {
"title": "$:/language/Date/Long/Day/5",
"text": "Vendredi"
},
"$:/language/Date/Long/Day/6": {
"title": "$:/language/Date/Long/Day/6",
"text": "Samedi"
},
"$:/language/Date/Long/Month/1": {
"title": "$:/language/Date/Long/Month/1",
"text": "janvier"
},
"$:/language/Date/Long/Month/2": {
"title": "$:/language/Date/Long/Month/2",
"text": "février"
},
"$:/language/Date/Long/Month/3": {
"title": "$:/language/Date/Long/Month/3",
"text": "mars"
},
"$:/language/Date/Long/Month/4": {
"title": "$:/language/Date/Long/Month/4",
"text": "avril"
},
"$:/language/Date/Long/Month/5": {
"title": "$:/language/Date/Long/Month/5",
"text": "mai"
},
"$:/language/Date/Long/Month/6": {
"title": "$:/language/Date/Long/Month/6",
"text": "juin"
},
"$:/language/Date/Long/Month/7": {
"title": "$:/language/Date/Long/Month/7",
"text": "juillet"
},
"$:/language/Date/Long/Month/8": {
"title": "$:/language/Date/Long/Month/8",
"text": "août"
},
"$:/language/Date/Long/Month/9": {
"title": "$:/language/Date/Long/Month/9",
"text": "septembre"
},
"$:/language/Date/Long/Month/10": {
"title": "$:/language/Date/Long/Month/10",
"text": "octobre"
},
"$:/language/Date/Long/Month/11": {
"title": "$:/language/Date/Long/Month/11",
"text": "novembre"
},
"$:/language/Date/Long/Month/12": {
"title": "$:/language/Date/Long/Month/12",
"text": "décembre"
},
"$:/language/Date/Period/am": {
"title": "$:/language/Date/Period/am",
"text": "am"
},
"$:/language/Date/Period/pm": {
"title": "$:/language/Date/Period/pm",
"text": "pm"
},
"$:/language/Date/Short/Day/0": {
"title": "$:/language/Date/Short/Day/0",
"text": "Di"
},
"$:/language/Date/Short/Day/1": {
"title": "$:/language/Date/Short/Day/1",
"text": "Lu"
},
"$:/language/Date/Short/Day/2": {
"title": "$:/language/Date/Short/Day/2",
"text": "Ma"
},
"$:/language/Date/Short/Day/3": {
"title": "$:/language/Date/Short/Day/3",
"text": "Me"
},
"$:/language/Date/Short/Day/4": {
"title": "$:/language/Date/Short/Day/4",
"text": "Je"
},
"$:/language/Date/Short/Day/5": {
"title": "$:/language/Date/Short/Day/5",
"text": "Ve"
},
"$:/language/Date/Short/Day/6": {
"title": "$:/language/Date/Short/Day/6",
"text": "Sa"
},
"$:/language/Date/Short/Month/1": {
"title": "$:/language/Date/Short/Month/1",
"text": "Jan"
},
"$:/language/Date/Short/Month/2": {
"title": "$:/language/Date/Short/Month/2",
"text": "Fév"
},
"$:/language/Date/Short/Month/3": {
"title": "$:/language/Date/Short/Month/3",
"text": "Mar"
},
"$:/language/Date/Short/Month/4": {
"title": "$:/language/Date/Short/Month/4",
"text": "Avr"
},
"$:/language/Date/Short/Month/5": {
"title": "$:/language/Date/Short/Month/5",
"text": "Mai"
},
"$:/language/Date/Short/Month/6": {
"title": "$:/language/Date/Short/Month/6",
"text": "Jun"
},
"$:/language/Date/Short/Month/7": {
"title": "$:/language/Date/Short/Month/7",
"text": "Jul"
},
"$:/language/Date/Short/Month/8": {
"title": "$:/language/Date/Short/Month/8",
"text": "Aoû"
},
"$:/language/Date/Short/Month/9": {
"title": "$:/language/Date/Short/Month/9",
"text": "Sep"
},
"$:/language/Date/Short/Month/10": {
"title": "$:/language/Date/Short/Month/10",
"text": "Oct"
},
"$:/language/Date/Short/Month/11": {
"title": "$:/language/Date/Short/Month/11",
"text": "Nov"
},
"$:/language/Date/Short/Month/12": {
"title": "$:/language/Date/Short/Month/12",
"text": "Déc"
},
"$:/language/RelativeDate/Future/Days": {
"title": "$:/language/RelativeDate/Future/Days",
"text": "dans <<period>> jours"
},
"$:/language/RelativeDate/Future/Hours": {
"title": "$:/language/RelativeDate/Future/Hours",
"text": "dans <<period>> heures"
},
"$:/language/RelativeDate/Future/Minutes": {
"title": "$:/language/RelativeDate/Future/Minutes",
"text": "dans <<period>> minutes"
},
"$:/language/RelativeDate/Future/Months": {
"title": "$:/language/RelativeDate/Future/Months",
"text": "dans <<period>> mois"
},
"$:/language/RelativeDate/Future/Second": {
"title": "$:/language/RelativeDate/Future/Second",
"text": "dans 1 seconde"
},
"$:/language/RelativeDate/Future/Seconds": {
"title": "$:/language/RelativeDate/Future/Seconds",
"text": "dans <<period>> secondes"
},
"$:/language/RelativeDate/Future/Years": {
"title": "$:/language/RelativeDate/Future/Years",
"text": "dans <<period>> ans"
},
"$:/language/RelativeDate/Past/Days": {
"title": "$:/language/RelativeDate/Past/Days",
"text": "il y a <<period>> jours"
},
"$:/language/RelativeDate/Past/Hours": {
"title": "$:/language/RelativeDate/Past/Hours",
"text": "il y a <<period>> heures"
},
"$:/language/RelativeDate/Past/Minutes": {
"title": "$:/language/RelativeDate/Past/Minutes",
"text": "il y a <<period>> minutes"
},
"$:/language/RelativeDate/Past/Months": {
"title": "$:/language/RelativeDate/Past/Months",
"text": "il y a <<period>> mois"
},
"$:/language/RelativeDate/Past/Second": {
"title": "$:/language/RelativeDate/Past/Second",
"text": "il y a 1 seconde"
},
"$:/language/RelativeDate/Past/Seconds": {
"title": "$:/language/RelativeDate/Past/Seconds",
"text": "il y a <<period>> secondes"
},
"$:/language/RelativeDate/Past/Years": {
"title": "$:/language/RelativeDate/Past/Years",
"text": "il y a <<period>> ans"
},
"$:/language/Docs/ModuleTypes/allfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/allfilteroperator",
"text": "Un sous-opérateur pour l'opérateur de filtre ''all''."
},
"$:/language/Docs/ModuleTypes/animation": {
"title": "$:/language/Docs/ModuleTypes/animation",
"text": "Animations pouvant être utilisées par le RevealWidget."
},
"$:/language/Docs/ModuleTypes/authenticator": {
"title": "$:/language/Docs/ModuleTypes/authenticator",
"text": "Définit comment les requêtes sont authentifiées par le serveur HTTP intégré."
},
"$:/language/Docs/ModuleTypes/bitmapeditoroperation": {
"title": "$:/language/Docs/ModuleTypes/bitmapeditoroperation",
"text": "Une opération intégrée à la barre d'outils de l'éditeur de bitmap."
},
"$:/language/Docs/ModuleTypes/command": {
"title": "$:/language/Docs/ModuleTypes/command",
"text": "Commandes qui peuvent être exécutées en mode Node.js."
},
"$:/language/Docs/ModuleTypes/config": {
"title": "$:/language/Docs/ModuleTypes/config",
"text": "Données à inclure dans `$tw.config`."
},
"$:/language/Docs/ModuleTypes/filteroperator": {
"title": "$:/language/Docs/ModuleTypes/filteroperator",
"text": "Méthodes d'opérateurs pour les filtres."
},
"$:/language/Docs/ModuleTypes/global": {
"title": "$:/language/Docs/ModuleTypes/global",
"text": "Données globales à inclure dans `$tw`."
},
"$:/language/Docs/ModuleTypes/info": {
"title": "$:/language/Docs/ModuleTypes/info",
"text": "Publie des informations système via le pseudo-plugin [[$:/temp/info-plugin]]."
},
"$:/language/Docs/ModuleTypes/isfilteroperator": {
"title": "$:/language/Docs/ModuleTypes/isfilteroperator",
"text": "Opérandes pour l'opérateur de filtre ''is''."
},
"$:/language/Docs/ModuleTypes/library": {
"title": "$:/language/Docs/ModuleTypes/library",
"text": "Module générique pour les modules ~JavaScript de portée générale."
},
"$:/language/Docs/ModuleTypes/macro": {
"title": "$:/language/Docs/ModuleTypes/macro",
"text": "Définitions de macros ~JavaScript."
},
"$:/language/Docs/ModuleTypes/parser": {
"title": "$:/language/Docs/ModuleTypes/parser",
"text": "Parseurs pour divers types de contenu."
},
"$:/language/Docs/ModuleTypes/route": {
"title": "$:/language/Docs/ModuleTypes/route",
"text": "Définit comment chaque motif d'URL est géré par le serveur HTTP intégré."
},
"$:/language/Docs/ModuleTypes/saver": {
"title": "$:/language/Docs/ModuleTypes/saver",
"text": "Les tiddlers d'enregistrement contiennent les différentes méthodes pour enregistrer des fichiers à partir du navigateur."
},
"$:/language/Docs/ModuleTypes/startup": {
"title": "$:/language/Docs/ModuleTypes/startup",
"text": "Fonctions de démarrage."
},
"$:/language/Docs/ModuleTypes/storyview": {
"title": "$:/language/Docs/ModuleTypes/storyview",
"text": "Différents points de vue sur le déroulé, qui personnalisent l'animation et le comportement des widgets de liste."
},
"$:/language/Docs/ModuleTypes/texteditoroperation": {
"title": "$:/language/Docs/ModuleTypes/texteditoroperation",
"text": "Une opération intégrée à la barre d'outils de l'éditeur de texte."
},
"$:/language/Docs/ModuleTypes/tiddlerdeserializer": {
"title": "$:/language/Docs/ModuleTypes/tiddlerdeserializer",
"text": "Convertit différents types de contenu en tiddlers."
},
"$:/language/Docs/ModuleTypes/tiddlerfield": {
"title": "$:/language/Docs/ModuleTypes/tiddlerfield",
"text": "Définit le comportement d'un champ de tiddler."
},
"$:/language/Docs/ModuleTypes/tiddlermethod": {
"title": "$:/language/Docs/ModuleTypes/tiddlermethod",
"text": "Ajoute des méthodes au prototype `$tw.Tiddler`."
},
"$:/language/Docs/ModuleTypes/upgrader": {
"title": "$:/language/Docs/ModuleTypes/upgrader",
"text": "Applique une procédure de mise à jour aux tiddlers lors de l'opération de mise à jour/importation."
},
"$:/language/Docs/ModuleTypes/utils": {
"title": "$:/language/Docs/ModuleTypes/utils",
"text": "Ajoute des méthodes dans `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/utils-node": {
"title": "$:/language/Docs/ModuleTypes/utils-node",
"text": "Ajoute des méthodes spécifiques à Node.js dans `$tw.utils`."
},
"$:/language/Docs/ModuleTypes/widget": {
"title": "$:/language/Docs/ModuleTypes/widget",
"text": "Les widgets encapsulent les méthodes de rendu et de rafraichissement du DOM."
},
"$:/language/Docs/ModuleTypes/wikimethod": {
"title": "$:/language/Docs/ModuleTypes/wikimethod",
"text": "Ajoute des méthodes à `$tw.Wiki`."
},
"$:/language/Docs/ModuleTypes/wikirule": {
"title": "$:/language/Docs/ModuleTypes/wikirule",
"text": "Règles d'analyse pour le parseur WikiText principal."
},
"$:/language/Docs/PaletteColours/alert-background": {
"title": "$:/language/Docs/PaletteColours/alert-background",
"text": "Fond pour les alertes"
},
"$:/language/Docs/PaletteColours/alert-border": {
"title": "$:/language/Docs/PaletteColours/alert-border",
"text": "Bordure pour les alertes"
},
"$:/language/Docs/PaletteColours/alert-highlight": {
"title": "$:/language/Docs/PaletteColours/alert-highlight",
"text": "Surlignage pour les alertes"
},
"$:/language/Docs/PaletteColours/alert-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/alert-muted-foreground",
"text": "Fond atténué pour les alertes"
},
"$:/language/Docs/PaletteColours/background": {
"title": "$:/language/Docs/PaletteColours/background",
"text": "Couleur de fond générale"
},
"$:/language/Docs/PaletteColours/blockquote-bar": {
"title": "$:/language/Docs/PaletteColours/blockquote-bar",
"text": "Barre de citation"
},
"$:/language/Docs/PaletteColours/button-background": {
"title": "$:/language/Docs/PaletteColours/button-background",
"text": "Fond du bouton par défaut"
},
"$:/language/Docs/PaletteColours/button-border": {
"title": "$:/language/Docs/PaletteColours/button-border",
"text": "Bordure du bouton par défaut"
},
"$:/language/Docs/PaletteColours/button-foreground": {
"title": "$:/language/Docs/PaletteColours/button-foreground",
"text": "Premier plan du bouton par défaut"
},
"$:/language/Docs/PaletteColours/code-background": {
"title": "$:/language/Docs/PaletteColours/code-background",
"text": "Fond pour le code"
},
"$:/language/Docs/PaletteColours/code-border": {
"title": "$:/language/Docs/PaletteColours/code-border",
"text": "Bordure pour le code"
},
"$:/language/Docs/PaletteColours/code-foreground": {
"title": "$:/language/Docs/PaletteColours/code-foreground",
"text": "Premier plan pour le code"
},
"$:/language/Docs/PaletteColours/dirty-indicator": {
"title": "$:/language/Docs/PaletteColours/dirty-indicator",
"text": "Indicateur de modifications non sauvegardées"
},
"$:/language/Docs/PaletteColours/download-background": {
"title": "$:/language/Docs/PaletteColours/download-background",
"text": "Fond pour le bouton de téléchargement"
},
"$:/language/Docs/PaletteColours/download-foreground": {
"title": "$:/language/Docs/PaletteColours/download-foreground",
"text": "Premier plan pour le bouton de téléchargement"
},
"$:/language/Docs/PaletteColours/dragger-background": {
"title": "$:/language/Docs/PaletteColours/dragger-background",
"text": "Fond pour le glissé-déposé"
},
"$:/language/Docs/PaletteColours/dragger-foreground": {
"title": "$:/language/Docs/PaletteColours/dragger-foreground",
"text": "Premier plan pour le glissé-déposé"
},
"$:/language/Docs/PaletteColours/dropdown-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-background",
"text": "Fond des menus déroulants"
},
"$:/language/Docs/PaletteColours/dropdown-border": {
"title": "$:/language/Docs/PaletteColours/dropdown-border",
"text": "Bordure des menus déroulants"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background-selected",
"text": "Fond pour les onglets à menu déroulant sélectionnés"
},
"$:/language/Docs/PaletteColours/dropdown-tab-background": {
"title": "$:/language/Docs/PaletteColours/dropdown-tab-background",
"text": "Fond pour les onglets à menu déroulant"
},
"$:/language/Docs/PaletteColours/dropzone-background": {
"title": "$:/language/Docs/PaletteColours/dropzone-background",
"text": "Fond de la zone « déposé »"
},
"$:/language/Docs/PaletteColours/external-link-background-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-background-hover",
"text": "Fond lors du passage de la souris sur un lien externe"
},
"$:/language/Docs/PaletteColours/external-link-background-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-background-visited",
"text": "Fond pour un lien externe déjà visité"
},
"$:/language/Docs/PaletteColours/external-link-background": {
"title": "$:/language/Docs/PaletteColours/external-link-background",
"text": "Fond pour un lien externe"
},
"$:/language/Docs/PaletteColours/external-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-hover",
"text": "Premier plan lors du passage de la souris sur un lien externe"
},
"$:/language/Docs/PaletteColours/external-link-foreground-visited": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground-visited",
"text": "Premier plan pour un lien externe déjà visité"
},
"$:/language/Docs/PaletteColours/external-link-foreground": {
"title": "$:/language/Docs/PaletteColours/external-link-foreground",
"text": "Premier plan pour un lien externe"
},
"$:/language/Docs/PaletteColours/foreground": {
"title": "$:/language/Docs/PaletteColours/foreground",
"text": "Premier plan"
},
"$:/language/Docs/PaletteColours/menubar-background": {
"title": "$:/language/Docs/PaletteColours/menubar-background",
"text": "Fond pour la barre de menu"
},
"$:/language/Docs/PaletteColours/menubar-foreground": {
"title": "$:/language/Docs/PaletteColours/menubar-foreground",
"text": "Premier plan pour la barre de menu"
},
"$:/language/Docs/PaletteColours/message-background": {
"title": "$:/language/Docs/PaletteColours/message-background",
"text": "Fond pour les messages"
},
"$:/language/Docs/PaletteColours/message-border": {
"title": "$:/language/Docs/PaletteColours/message-border",
"text": "Bordure pour les messages"
},
"$:/language/Docs/PaletteColours/message-foreground": {
"title": "$:/language/Docs/PaletteColours/message-foreground",
"text": "Premier plan pour les messages"
},
"$:/language/Docs/PaletteColours/modal-backdrop": {
"title": "$:/language/Docs/PaletteColours/modal-backdrop",
"text": "Arrière-plan pour les fenêtres modales"
},
"$:/language/Docs/PaletteColours/modal-background": {
"title": "$:/language/Docs/PaletteColours/modal-background",
"text": "Fond pour les fenêtres modales"
},
"$:/language/Docs/PaletteColours/modal-border": {
"title": "$:/language/Docs/PaletteColours/modal-border",
"text": "Bordure pour les fenêtres modales"
},
"$:/language/Docs/PaletteColours/modal-footer-background": {
"title": "$:/language/Docs/PaletteColours/modal-footer-background",
"text": "Fond pour les pieds de page des fenêtres modales"
},
"$:/language/Docs/PaletteColours/modal-footer-border": {
"title": "$:/language/Docs/PaletteColours/modal-footer-border",
"text": "Bordure pour les pieds de page des fenêtres modales"
},
"$:/language/Docs/PaletteColours/modal-header-border": {
"title": "$:/language/Docs/PaletteColours/modal-header-border",
"text": "Bordure pour les en-tête des fenêtres modales"
},
"$:/language/Docs/PaletteColours/muted-foreground": {
"title": "$:/language/Docs/PaletteColours/muted-foreground",
"text": "Premier plan atténué"
},
"$:/language/Docs/PaletteColours/notification-background": {
"title": "$:/language/Docs/PaletteColours/notification-background",
"text": "Fond pour les notifications"
},
"$:/language/Docs/PaletteColours/notification-border": {
"title": "$:/language/Docs/PaletteColours/notification-border",
"text": "Bordure pour les notifications"
},
"$:/language/Docs/PaletteColours/page-background": {
"title": "$:/language/Docs/PaletteColours/page-background",
"text": "Fond de page"
},
"$:/language/Docs/PaletteColours/pre-background": {
"title": "$:/language/Docs/PaletteColours/pre-background",
"text": "Fond pour le code préformaté"
},
"$:/language/Docs/PaletteColours/pre-border": {
"title": "$:/language/Docs/PaletteColours/pre-border",
"text": "Bordure pour le code préformaté"
},
"$:/language/Docs/PaletteColours/primary": {
"title": "$:/language/Docs/PaletteColours/primary",
"text": "Couleur principale"
},
"$:/language/Docs/PaletteColours/select-tag-background": {
"title": "$:/language/Docs/PaletteColours/select-tag-background",
"text": "Arrière-plan de l'élément `<select>`"
},
"$:/language/Docs/PaletteColours/select-tag-foreground": {
"title": "$:/language/Docs/PaletteColours/select-tag-foreground",
"text": "Texte de l'élément `<select>`"
},
"$:/language/Docs/PaletteColours/sidebar-button-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-button-foreground",
"text": "Premier plan des boutons de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground-hover",
"text": "Premier plan au passage de la souris sur les boutons de commande de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-controls-foreground",
"text": "Premier plan sur les boutons de commande de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-foreground-shadow": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground-shadow",
"text": "Ombre du premier plan de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-foreground",
"text": "Premier plan de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground-hover",
"text": "Premier plan atténué au passage de la souris sur la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-muted-foreground",
"text": "Premier plan atténué de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background-selected",
"text": "Fond pour les onglets sélectionnés de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-background": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-background",
"text": "Fond pour les onglets de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border-selected",
"text": "Bordure pour les onglets sélectionnés de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-border": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-border",
"text": "Bordure pour les onglets de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-divider": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-divider",
"text": "Séparateur d'onglets pour la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground-selected",
"text": "Premier plan pour les onglets sélectionnés de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tab-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tab-foreground",
"text": "Premier plan pour les onglets de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground-hover",
"text": "Premier plan au passage de la souris sur le lien d'un tiddler de la barre latérale"
},
"$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/sidebar-tiddler-link-foreground",
"text": "Premier plan du lien d'un tiddler de la barre latérale"
},
"$:/language/Docs/PaletteColours/site-title-foreground": {
"title": "$:/language/Docs/PaletteColours/site-title-foreground",
"text": "Premier plan pour le titre du wiki (SiteTitle)"
},
"$:/language/Docs/PaletteColours/static-alert-foreground": {
"title": "$:/language/Docs/PaletteColours/static-alert-foreground",
"text": "Premier plan pour les alertes statiques"
},
"$:/language/Docs/PaletteColours/tab-background-selected": {
"title": "$:/language/Docs/PaletteColours/tab-background-selected",
"text": "Fond pour les onglets sélectionnés"
},
"$:/language/Docs/PaletteColours/tab-background": {
"title": "$:/language/Docs/PaletteColours/tab-background",
"text": "Fond pour les onglets"
},
"$:/language/Docs/PaletteColours/tab-border-selected": {
"title": "$:/language/Docs/PaletteColours/tab-border-selected",
"text": "Bordure pour les onglets sélectionnés"
},
"$:/language/Docs/PaletteColours/tab-border": {
"title": "$:/language/Docs/PaletteColours/tab-border",
"text": "Bordure pour les onglets"
},
"$:/language/Docs/PaletteColours/tab-divider": {
"title": "$:/language/Docs/PaletteColours/tab-divider",
"text": "Séparateur d'onglets"
},
"$:/language/Docs/PaletteColours/tab-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tab-foreground-selected",
"text": "Premier plan pour les onglets sélectionnés"
},
"$:/language/Docs/PaletteColours/tab-foreground": {
"title": "$:/language/Docs/PaletteColours/tab-foreground",
"text": "Premier plan pour les onglets"
},
"$:/language/Docs/PaletteColours/table-border": {
"title": "$:/language/Docs/PaletteColours/table-border",
"text": "Bordure des tableaux"
},
"$:/language/Docs/PaletteColours/table-footer-background": {
"title": "$:/language/Docs/PaletteColours/table-footer-background",
"text": "Fond pour les bas de tableau"
},
"$:/language/Docs/PaletteColours/table-header-background": {
"title": "$:/language/Docs/PaletteColours/table-header-background",
"text": "Fond pour les en-têtes de tableau"
},
"$:/language/Docs/PaletteColours/tag-background": {
"title": "$:/language/Docs/PaletteColours/tag-background",
"text": "Fond pour les tags"
},
"$:/language/Docs/PaletteColours/tag-foreground": {
"title": "$:/language/Docs/PaletteColours/tag-foreground",
"text": "Premier plan pour les tags"
},
"$:/language/Docs/PaletteColours/tiddler-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-background",
"text": "Fond pour les tiddlers"
},
"$:/language/Docs/PaletteColours/tiddler-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-border",
"text": "Bordure pour les tiddlers"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-hover",
"text": "Premier plan au passage de la souris sur les boutons de commande d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground-selected",
"text": "Premier plan pour le bouton de commande sélectionné d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-controls-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-controls-foreground",
"text": "Premier plan pour les boutons de commande d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-editor-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-background",
"text": "Fond pour l'éditeur de tiddlers"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border-image": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border-image",
"text": "Image de bordure pour l'éditeur de tiddlers"
},
"$:/language/Docs/PaletteColours/tiddler-editor-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-border",
"text": "Bordure de l'éditeur de tiddlers"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-even": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-even",
"text": "Fond de l'éditeur de tiddlers pour les champs pairs"
},
"$:/language/Docs/PaletteColours/tiddler-editor-fields-odd": {
"title": "$:/language/Docs/PaletteColours/tiddler-editor-fields-odd",
"text": "Fond de l'éditeur de tiddlers pour les champs impairs"
},
"$:/language/Docs/PaletteColours/tiddler-info-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-background",
"text": "Fond du panneau d'information d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-info-border": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-border",
"text": "Bordure du panneau d'information d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-info-tab-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-info-tab-background",
"text": "Fond pour les onglets du panneau d'information d'un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-link-background": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-background",
"text": "Fond pour les liens vers un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-link-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-link-foreground",
"text": "Premier plan pour les liens vers un tiddler"
},
"$:/language/Docs/PaletteColours/tiddler-subtitle-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-subtitle-foreground",
"text": "Premier plan du sous-titre du wiki"
},
"$:/language/Docs/PaletteColours/tiddler-title-foreground": {
"title": "$:/language/Docs/PaletteColours/tiddler-title-foreground",
"text": "Premier plan du titre du wiki"
},
"$:/language/Docs/PaletteColours/toolbar-new-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-new-button",
"text": "Premier plan pour le bouton 'Nouveau tiddler' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-options-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-options-button",
"text": "Premier plan pour le bouton 'Options' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-save-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-save-button",
"text": "Premier plan pour le bouton 'Enregistrer' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-info-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-info-button",
"text": "Premier plan pour le bouton 'Info' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-edit-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-edit-button",
"text": "Premier plan pour le bouton 'Éditer' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-close-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-close-button",
"text": "Premier plan pour le bouton 'Fermer' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-delete-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-delete-button",
"text": "Premier plan pour le bouton 'Supprimer' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-cancel-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-cancel-button",
"text": "Premier plan pour le bouton 'Annuler' de la barre latérale"
},
"$:/language/Docs/PaletteColours/toolbar-done-button": {
"title": "$:/language/Docs/PaletteColours/toolbar-done-button",
"text": "Premier plan pour le bouton 'Terminé' de la barre latérale"
},
"$:/language/Docs/PaletteColours/untagged-background": {
"title": "$:/language/Docs/PaletteColours/untagged-background",
"text": "Fond pour la pastille « sans-étiquette »"
},
"$:/language/Docs/PaletteColours/very-muted-foreground": {
"title": "$:/language/Docs/PaletteColours/very-muted-foreground",
"text": "Premier plan très atténué"
},
"$:/language/EditTemplate/Body/External/Hint": {
"title": "$:/language/EditTemplate/Body/External/Hint",
"text": "Ce tiddler affiche du contenu situé en dehors du fichier TiddlyWiki principal. Vous pouvez éditer les tags et les champs mais pas directement le contenu lui-même"
},
"$:/language/EditTemplate/Body/Placeholder": {
"title": "$:/language/EditTemplate/Body/Placeholder",
"text": "Entrez le texte ici"
},
"$:/language/EditTemplate/Body/Preview/Type/Output": {
"title": "$:/language/EditTemplate/Body/Preview/Type/Output",
"text": "sortie"
},
"$:/language/EditTemplate/Field/Remove/Caption": {
"title": "$:/language/EditTemplate/Field/Remove/Caption",
"text": "supprimer le champ"
},
"$:/language/EditTemplate/Field/Remove/Hint": {
"title": "$:/language/EditTemplate/Field/Remove/Hint",
"text": "Supprime le champ"
},
"$:/language/EditTemplate/Field/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Field/Dropdown/Caption",
"text": "liste des champs"
},
"$:/language/EditTemplate/Field/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Field/Dropdown/Hint",
"text": "Montre la liste des champs"
},
"$:/language/EditTemplate/Fields/Add/Button": {
"title": "$:/language/EditTemplate/Fields/Add/Button",
"text": "ajouter"
},
"$:/language/EditTemplate/Fields/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Fields/Add/Button/Hint",
"text": "Ajoute le nouveau champ au tiddler"
},
"$:/language/EditTemplate/Fields/Add/Name/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Name/Placeholder",
"text": "nom du champ"
},
"$:/language/EditTemplate/Fields/Add/Prompt": {
"title": "$:/language/EditTemplate/Fields/Add/Prompt",
"text": "Ajouter un nouveau champ :"
},
"$:/language/EditTemplate/Fields/Add/Value/Placeholder": {
"title": "$:/language/EditTemplate/Fields/Add/Value/Placeholder",
"text": "valeur du champ"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/System": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/System",
"text": "Champs système"
},
"$:/language/EditTemplate/Fields/Add/Dropdown/User": {
"title": "$:/language/EditTemplate/Fields/Add/Dropdown/User",
"text": "Champs utilisateur"
},
"$:/language/EditTemplate/Shadow/OverriddenWarning": {
"title": "$:/language/EditTemplate/Shadow/OverriddenWarning",
"text": "Ce tiddler est une version modifiée d'un tiddler « shadow ». Pour revenir à la version par défaut du plugin <<pluginLink>>, il vous suffit de supprimer ce tiddler."
},
"$:/language/EditTemplate/Shadow/Warning": {
"title": "$:/language/EditTemplate/Shadow/Warning",
"text": "Ceci est un tiddler « shadow ». Toute modification supplantera la version issue du plugin <<pluginLink>>"
},
"$:/language/EditTemplate/Tags/Add/Button": {
"title": "$:/language/EditTemplate/Tags/Add/Button",
"text": "ajouter"
},
"$:/language/EditTemplate/Tags/Add/Button/Hint": {
"title": "$:/language/EditTemplate/Tags/Add/Button/Hint",
"text": "ajoute un tag"
},
"$:/language/EditTemplate/Tags/Add/Placeholder": {
"title": "$:/language/EditTemplate/Tags/Add/Placeholder",
"text": "nom du tag"
},
"$:/language/EditTemplate/Tags/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Caption",
"text": "liste des tags"
},
"$:/language/EditTemplate/Tags/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Tags/Dropdown/Hint",
"text": "Montre la liste des tags"
},
"$:/language/EditTemplate/Title/BadCharacterWarning": {
"title": "$:/language/EditTemplate/Title/BadCharacterWarning",
"text": "Attention : il est préférable d'éviter l'usage des caractères <<bad-chars>> dans les titres des tiddlers"
},
"$:/language/EditTemplate/Title/Exists/Prompt": {
"title": "$:/language/EditTemplate/Title/Exists/Prompt",
"text": "Le tiddler cible existe déjà"
},
"$:/language/EditTemplate/Title/Relink/Prompt": {
"title": "$:/language/EditTemplate/Title/Relink/Prompt",
"text": "Changer ''<$text text=<<fromTitle>>/>'' en ''<$text text=<<toTitle>>/>'' dans les //tags// et les champs //list// des autres tiddlers"
},
"$:/language/EditTemplate/Title/References/Prompt": {
"title": "$:/language/EditTemplate/Title/References/Prompt",
"text": "Les références suivantes à ce tiddler ne seront pas mises à jour automatiquement :"
},
"$:/language/EditTemplate/Type/Dropdown/Caption": {
"title": "$:/language/EditTemplate/Type/Dropdown/Caption",
"text": "liste des types de contenu"
},
"$:/language/EditTemplate/Type/Dropdown/Hint": {
"title": "$:/language/EditTemplate/Type/Dropdown/Hint",
"text": "Montre la liste des types de contenu"
},
"$:/language/EditTemplate/Type/Delete/Caption": {
"title": "$:/language/EditTemplate/Type/Delete/Caption",
"text": "supprimer le type de contenu"
},
"$:/language/EditTemplate/Type/Delete/Hint": {
"title": "$:/language/EditTemplate/Type/Delete/Hint",
"text": "Supprime le type de contenu"
},
"$:/language/EditTemplate/Type/Placeholder": {
"title": "$:/language/EditTemplate/Type/Placeholder",
"text": "type du contenu"
},
"$:/language/EditTemplate/Type/Prompt": {
"title": "$:/language/EditTemplate/Type/Prompt",
"text": "Type :"
},
"$:/language/Exporters/StaticRiver": {
"title": "$:/language/Exporters/StaticRiver",
"text": "HTML Statique"
},
"$:/language/Exporters/JsonFile": {
"title": "$:/language/Exporters/JsonFile",
"text": "Fichier JSON"
},
"$:/language/Exporters/CsvFile": {
"title": "$:/language/Exporters/CsvFile",
"text": "Fichier CSV"
},
"$:/language/Exporters/TidFile": {
"title": "$:/language/Exporters/TidFile",
"text": "Fichier \".tid\""
},
"$:/language/Docs/Fields/_canonical_uri": {
"title": "$:/language/Docs/Fields/_canonical_uri",
"text": "L'URI complet vers le contenu externe d'un tiddler image"
},
"$:/language/Docs/Fields/bag": {
"title": "$:/language/Docs/Fields/bag",
"text": "Nom du <q>bag</q> d'où provient le tiddler"
},
"$:/language/Docs/Fields/caption": {
"title": "$:/language/Docs/Fields/caption",
"text": "Texte à afficher sur un onglet ou un bouton"
},
"$:/language/Docs/Fields/color": {
"title": "$:/language/Docs/Fields/color",
"text": "Couleur CSS associée au tiddler"
},
"$:/language/Docs/Fields/component": {
"title": "$:/language/Docs/Fields/component",
"text": "Nom du composant responsable pour un [[tiddler d'alerte|AlertMechanism]]"
},
"$:/language/Docs/Fields/current-tiddler": {
"title": "$:/language/Docs/Fields/current-tiddler",
"text": "Sert à cacher le tiddler situé au début de l'[[historique|HistoryMechanism]]"
},
"$:/language/Docs/Fields/created": {
"title": "$:/language/Docs/Fields/created",
"text": "Date de création du tiddler"
},
"$:/language/Docs/Fields/creator": {
"title": "$:/language/Docs/Fields/creator",
"text": "Nom de l'utilisateur qui a créé le tiddler"
},
"$:/language/Docs/Fields/dependents": {
"title": "$:/language/Docs/Fields/dependents",
"text": "Quand le tiddler est un plugin, énumère les titres des plugins dépendants"
},
"$:/language/Docs/Fields/description": {
"title": "$:/language/Docs/Fields/description",
"text": "Texte de description d'un plugin, ou d'une boîte de dialogue"
},
"$:/language/Docs/Fields/draft.of": {
"title": "$:/language/Docs/Fields/draft.of",
"text": "Pour les tiddlers en cours d'édition, contient le titre du tiddler initial"
},
"$:/language/Docs/Fields/draft.title": {
"title": "$:/language/Docs/Fields/draft.title",
"text": "Pour les tiddlers en cours d'édition, contient le nouveau titre prévu pour le tiddler"
},
"$:/language/Docs/Fields/footer": {
"title": "$:/language/Docs/Fields/footer",
"text": "Texte de bas de page dans le cas d'un wizard"
},
"$:/language/Docs/Fields/icon": {
"title": "$:/language/Docs/Fields/icon",
"text": "Titre du tiddler contenant l'icone associée à un tiddler"
},
"$:/language/Docs/Fields/library": {
"title": "$:/language/Docs/Fields/library",
"text": "Avec une valeur à <q>yes</q>, indique qu'un tiddler doit être sauvegardé comme bibliothèque JavaScript"
},
"$:/language/Docs/Fields/list": {
"title": "$:/language/Docs/Fields/list",
"text": "Liste ordonnée de titres de tiddlers associée à un tiddler"
},
"$:/language/Docs/Fields/list-before": {
"title": "$:/language/Docs/Fields/list-before",
"text": "Si présent, contient le titre du tiddler avant lequel ce tiddler doit être ajouté dans la liste ordonnée des titres de tiddlers. Si ce champ est présent mais vide, le titre doit être ajouté au début de la liste."
},
"$:/language/Docs/Fields/list-after": {
"title": "$:/language/Docs/Fields/list-after",
"text": "Si présent, contient le titre du tiddler après lequel ce tiddler doit être ajouté dans la liste ordonnée des titres de tiddlers."
},
"$:/language/Docs/Fields/modified": {
"title": "$:/language/Docs/Fields/modified",
"text": "Date et heure à laquelle le tiddler a été modifié pour la dernière fois"
},
"$:/language/Docs/Fields/modifier": {
"title": "$:/language/Docs/Fields/modifier",
"text": "Titre du tiddler associé à l'utilisateur qui a modifié ce tiddler pour la dernière fois"
},
"$:/language/Docs/Fields/name": {
"title": "$:/language/Docs/Fields/name",
"text": "Dans le cas d'un tiddler provenant d'un plugin, le nom de la personne associée à ce tiddler"
},
"$:/language/Docs/Fields/plugin-priority": {
"title": "$:/language/Docs/Fields/plugin-priority",
"text": "Dans le cas d'un tiddler provenant d'un plugin, un nombre indiquant la priorité de ce tiddler"
},
"$:/language/Docs/Fields/plugin-type": {
"title": "$:/language/Docs/Fields/plugin-type",
"text": "Dans le cas d'un tiddler provenant d'un plugin, le type du plugin"
},
"$:/language/Docs/Fields/revision": {
"title": "$:/language/Docs/Fields/revision",
"text": "Numéro de révision du tiddler présent sur le serveur"
},
"$:/language/Docs/Fields/released": {
"title": "$:/language/Docs/Fields/released",
"text": "Date de version d'un TiddlyWiki"
},
"$:/language/Docs/Fields/source": {
"title": "$:/language/Docs/Fields/source",
"text": "URL source associée à ce tiddler"
},
"$:/language/Docs/Fields/subtitle": {
"title": "$:/language/Docs/Fields/subtitle",
"text": "Texte du sous-titre pour un wizard"
},
"$:/language/Docs/Fields/tags": {
"title": "$:/language/Docs/Fields/tags",
"text": "Liste des tags associés à un tiddler"
},
"$:/language/Docs/Fields/text": {
"title": "$:/language/Docs/Fields/text",
"text": "Texte du corps de ce tiddler"
},
"$:/language/Docs/Fields/throttle.refresh": {
"title": "$:/language/Docs/Fields/throttle.refresh",
"text": "Si présent, ralentit les rafraîchissements de ce tiddler"
},
"$:/language/Docs/Fields/title": {
"title": "$:/language/Docs/Fields/title",
"text": "Nom unique du tiddler"
},
"$:/language/Docs/Fields/toc-link": {
"title": "$:/language/Docs/Fields/toc-link",
"text": "Une valeur à ''no'' supprime le lien vers le tiddler dans l'arborescences des tables des matières"
},
"$:/language/Docs/Fields/type": {
"title": "$:/language/Docs/Fields/type",
"text": "Type de contenu du tiddler"
},
"$:/language/Docs/Fields/version": {
"title": "$:/language/Docs/Fields/version",
"text": "S'il s'agit d'un plugin, l'information de version"
},
"$:/language/Docs/Fields/_is_skinny": {
"title": "$:/language/Docs/Fields/_is_skinny",
"text": "Si présent, indique que le champ //text// du tiddler doit être chargé depuis le serveur"
},
"$:/language/Filters/AllTiddlers": {
"title": "$:/language/Filters/AllTiddlers",
"text": "Tous les tiddlers sauf les tiddlers système"
},
"$:/language/Filters/RecentSystemTiddlers": {
"title": "$:/language/Filters/RecentSystemTiddlers",
"text": "Les tiddlers modifiés récemment, y compris les tiddlers système"
},
"$:/language/Filters/RecentTiddlers": {
"title": "$:/language/Filters/RecentTiddlers",
"text": "Les tiddlers modifiés récemment"
},
"$:/language/Filters/AllTags": {
"title": "$:/language/Filters/AllTags",
"text": "Tous les tags sauf les tags système"
},
"$:/language/Filters/Missing": {
"title": "$:/language/Filters/Missing",
"text": "Les tiddlers manquants"
},
"$:/language/Filters/Drafts": {
"title": "$:/language/Filters/Drafts",
"text": "Les tiddlers en cours d'édition"
},
"$:/language/Filters/Orphans": {
"title": "$:/language/Filters/Orphans",
"text": "Les tiddlers orphelins"
},
"$:/language/Filters/SystemTiddlers": {
"title": "$:/language/Filters/SystemTiddlers",
"text": "Les tiddlers système"
},
"$:/language/Filters/ShadowTiddlers": {
"title": "$:/language/Filters/ShadowTiddlers",
"text": "Les tiddlers shadow"
},
"$:/language/Filters/StoryList": {
"title": "$:/language/Filters/StoryList",
"text": "Les tiddlers du déroulé, hormis $:/AdvancedSearch"
},
"$:/language/Filters/OverriddenShadowTiddlers": {
"title": "$:/language/Filters/OverriddenShadowTiddlers",
"text": "Les tiddlers shadow modifiés"
},
"$:/language/Filters/SystemTags": {
"title": "$:/language/Filters/SystemTags",
"text": "Les tags système"
},
"$:/language/Filters/TypedTiddlers": {
"title": "$:/language/Filters/TypedTiddlers",
"text": "Tiddlers ayant un contenu non wiki-text"
},
"GettingStarted": {
"title": "GettingStarted",
"text": "\\define lingo-base() $:/language/ControlPanel/Basics/\nBienvenue sur ~TiddlyWiki et parmi la communauté ~TiddlyWiki.\n\nAvant de confier à TiddlyWiki des informations importantes, commencez par vérifier que vos modifications peuvent être sauvegardées\ncorrectement — reportez-vous aux [[instructions détaillées|https://tiddlywiki.com/languages/fr-FR/index.html#Saving]] sur https://tiddlywiki.com/.\n\n!! Personnalisez ce ~TiddlyWiki\n\n<div class=\"tc-control-panel\">\n\n|<$link to=\"$:/SiteTitle\"><<lingo Title/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteTitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/SiteSubtitle\"><<lingo Subtitle/Prompt>></$link> |<$edit-text tiddler=\"$:/SiteSubtitle\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/DefaultTiddlers\"><<lingo DefaultTiddlers/Prompt>></$link> |<<lingo DefaultTiddlers/TopHint>><br> <$edit-text tag=\"textarea\" tiddler=\"$:/DefaultTiddlers\"/><br>//<<lingo DefaultTiddlers/BottomHint>>// |\n</div>\n\nRendez-vous dans le [[panneau de contrôle|$:/ControlPanel]] pour plus d'options.\n"
},
"$:/language/Help/build": {
"title": "$:/language/Help/build",
"description": "Lance automatiquement les commandes configurées",
"text": "Compile le wiki courant à partir des cibles spécifiées. Si aucune cible n'est spécifiée, toutes les cibles seront compilées.\n\n```\n--build <cible> [<cible> ...]\n```\n\nLes cibles de compilation sont définies dans le fichier `tiddlywiki.info` du [[dossier associé au wiki|TiddlyWikiFolders]].\n\n"
},
"$:/language/Help/clearpassword": {
"title": "$:/language/Help/clearpassword",
"description": "Efface un mot de passe pour les prochaines opérations de chiffrement",
"text": "Efface le mot de passe pour les prochaines opérations de chiffrement\n\n```\n--clearpassword\n```\n"
},
"$:/language/Help/default": {
"title": "$:/language/Help/default",
"text": "\\define commandTitle()\n$:/language/Help/$(command)$\n\\end\n```\nusage: tiddlywiki [<dossierwiki>] [--<commande> [<arguments>...]...]\n```\n\nListe des commandes disponibles :\n\n<ul>\n<$list filter=\"[commands[]sort[title]]\" variable=\"command\">\n<li><$link to=<<commandTitle>>><$macrocall $name=\"command\" $type=\"text/plain\" $output=\"text/plain\"/></$link> : <$transclude tiddler=<<commandTitle>> field=\"description\"/></li>\n</$list>\n</ul>\n\nPour obtenir de l'aide sur une commande précise :\n\n```\ntiddlywiki --help <commande>\n```\n"
},
"$:/language/Help/deletetiddlers": {
"title": "$:/language/Help/deletetiddlers",
"description": "Supprime un groupe de tiddlers",
"text": "<<.from-version \"5.1.20\">> Supprime un groupe de tiddlers identifiés par un filtre.\n\n```\n--deletetiddlers <filtre>\n```\n"
},
"$:/language/Help/editions": {
"title": "$:/language/Help/editions",
"description": "Liste les éditions TiddlyWiki disponibles",
"text": "Liste les noms et descriptions des éditions disponibles. La commande `--init` permet de créer un nouveau wiki à partir d'une édition particulière.\n\n```\n--editions\n```\n"
},
"$:/language/Help/fetch": {
"title": "$:/language/Help/fetch",
"description": "Télécharge des tiddlers depuis un wiki à partir de leurs URL",
"text": "Télécharge un ou plusieurs fichiers via HTTP/HTTPS, puis importe les tiddlers correspondant à un filtre, en transformant optionnellement les titres des tiddlers importés.\n\n```\n--fetch file <url> <filtre-import> <filtre-de-transformation>\n--fetch files <filtre-urls> <filtre-import> <filtre-de-transformation>\n```\n\nAvec la variante \"file\", un seul fichier est téléchargé et le premier paramètre est l'URL du fichier à lire.\n\nAvec la variante \"files\", plusieurs fichiers sont téléchargés et le premier paramètre est un filtre produisant une liste d'URLs pour les fichiers à lire. Par exemple, étant donné un ensemble de tiddlers tagués \"remote-server\" et disposant d'un champ \"url\", le filtre `[tag[remote-server]get[url]]` permet de récupérer toutes les URLs disponibles.\n\nLe paramètre `<filtre-import>` spécifie un filtre qui détermine quels tiddlers seront importés. Lorsqu'il n'est pas indiqué, il prend comme valeur par défaut `[all[tiddlers]]`.\n\nLe paramètre `<filtre de transformation>` spécifie un filtre optionnel qui transforme les titres des tiddlers importés. Par exemple, `[addprefix[$:/myimports/]]` permettrait d'ajouter le préfixe `$:/myimports/` à chaque titre.\n\nOn obtient des informations concernant la progression de l'importation en faisant précéder la commande `--fetch` de la commande `--verbose`.\n\nIl faut noter que TiddlyWiki ne téléchargera pas une version plus ancienne d'un plugin déjà chargé.\n\nL'exemple ci-dessous récupère tous les tiddlers non-système de https://tiddlywiki.com et les enregistre dans un fichier JSON :\n\n```\ntiddlywiki --verbose --fetch file \"https://tiddlywiki.com/\" \"[!is[system]]\" \"\" --rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[!is[system]]\"\n```\n\n"
},
"$:/language/Help/help": {
"title": "$:/language/Help/help",
"description": "Affiche de l'aide sur les commandes TiddlyWiki",
"text": "Affiche un texte d'aide sur une commande particulière :\n\n```\n--help [<commande>]\n```\n\nSi aucun nom de commande n'est fourni, affiche la liste de toutes les commandes disponibles.\n"
},
"$:/language/Help/import": {
"title": "$:/language/Help/import",
"description": "Importe des tiddlers depuis un fichier",
"text": "Importe des tiddlers depuis des fichiers locaux TiddlyWiki (`.html`), `.tiddler`, `.tid`, `.json` ou autres. Le désérialiseur doit être spécifié explicitement, à la différence de la commande `load` qui déduit le désérialiseur à utiliser à partir de l'extension du fichier.\n\n```\n--import <chemin-du-fichier> <désérialiseur> [<titre>] [<encodage>]\n```\n\nLes principaux désérialiseurs présents par défaut sont :\n\n* application/javascript\n* application/json\n* application/x-tiddler\n* application/x-tiddler-html-div\n* application/x-tiddlers\n* text/html\n* text/plain\n\nS'il n'est pas spécifié, le titre du tiddler importé a pour valeur le nom du fichier.\n\nL'encodage par défaut est \"utf8\", mais peut valoir \"base64\" en cas d'importation des fichiers binaires.\n\nÀ noter que TiddlyWiki refusera d'importer pas une version plus ancienne d'un plugin déjà chargé.\n"
},
"$:/language/Help/init": {
"title": "$:/language/Help/init",
"description": "Initialise un nouveau dossier wiki",
"text": "Initialise un [[dossier wiki (WikiFolder)|WikiFolders]] vide en copiant l'une des éditions présentes dans le répertoire //editions//.\n\n```\n--init <édition> [<édition> ...]\n```\n\nPar exemple :\n\n```\ntiddlywiki ./MonDossierWiki --init empty\n```\n\nNote :\n\n* Le répertoire correspondant au dossier wiki est créé si nécessaire\n* L'édition par défaut est ''empty''\n* La commande //init// échoue si le dossier wiki n'est pas vide\n* La commande //init// supprime les éventuelles définitions `includeWikis` du fichier `tiddlywiki.info` de l'édition spécifiée\n* Lorsque plusieurs éditions sont spécifiées, chaque édition écrase les fichiers qu'elle a en commun avec les précédentes (par conséquent, le fichier `tiddlywiki.info` proviendra de la dernière édition spécifiée)\n* `--editions` renvoie une liste des éditions disponibles\n"
},
"$:/language/Help/listen": {
"title": "$:/language/Help/listen",
"description": "Fournit à TiddlyWiki une interface serveur HTTP",
"text": "Sert un wiki via HTTP.\n\nLa commande //listen// utilise des [[paramètres de commande nommés|NamedCommandParameters]] :\n\n```\n--listen [<nom>=<valeur>]...\n```\n\nTous les paramètres sont optionnels avec des valeurs par défaut sûres, et peuvent être spécifiés dans n'importe quel ordre. Les paramètres reconnus sont les suivants :\n\n* ''host'' - nom ou adresse de machine hôte à laquelle sera attaché le service (par défaut \"127.0.0.1\", autrement dit \"localhost\")\n* ''path-prefix'' - préfixe optionnel pour les noms de chemin\n* ''port'' - numéro de port sur lequel écouter ; une valeur non numérique est interprétée comme un nom de variable d'environnement dont sera extrait le numéro de port (par défaut à \"8080\")\n* ''credentials'' - chemin vers le fichier CSV d'autorisations (relativement au dossier du wiki)\n* ''anon-username'' - nom d'utilisateur qui servira à signer les modifications si l'utilisateur est anonyme\n* ''username'' - nom d'utilisateur optionnel pour l'authentification basique\n* ''password'' - mot de passe optionnel pour l'authentification basique\n* ''authenticated-user-header'' - nom d'en-tête optionnel à utiliser pour les authentifications de confiance\n* ''readers'' - liste de personnes de confiance autorisées à lire ce wiki, séparées par des virgules \n* ''writers'' - liste de personnes de confiance autorisées à modifier ce wiki, séparées par des virgules\n* ''csrf-disable'' - donner la valeur \"yes\" pour désactiver les vérifications CSRF (vaut \"no\" par défaut)\n* ''root-tiddler'' - le tiddler à servir à la racine (par défaut \"$:/core/save/all\")\n* ''root-render-type'' - le type de contenu avec lequel le tiddler racine doit être rendu (par défaut \"text/plain\")\n* ''root-serve-type'' - le type de contenu avec lequel le tiddler racine doit être servi (par défaut \"text/html\")\n* ''tls-cert'' - nom de chemin du fichier de certificat TLS (relativement au dossier du wiki)\n* ''tls-key'' - nom de chemin du fichier de clé TLS (relativement au dossier du wiki)\n* ''debug-level'' - niveau de débogage optionnel ; mettre à \"debug\" pour voir le détail des requêtes (par défaut à \"none\")\n* ''gzip'' - donner la valeur \"yes\" pour activer la compression gzip pour certaines interactions http (par défaut à \"no\")\n\nPour plus d'informations sur la manière de donner accès à votre instance de serveur à l'ensemble de votre réseau local, ainsi que sur les risques éventuels en matière de sécurité, voir le tiddler [[WebServer sur tiddlywiki.com|https://tiddlywiki.com/#WebServer]].\n\n"
},
"$:/language/Help/load": {
"title": "$:/language/Help/load",
"description": "Charge des tiddlers à partir d'un fichier",
"text": "Charge des tiddlers à partir de fichiers ~TiddlyWikiClassic 2.x.x\n(`.html`), `.tiddler`, `.tid`, `.json` ou d'autres types de\nfichiers. Le traitement appliqué aux fichiers entrants est déterminé par l'extension du fichier. Utilisez plutôt la commande `import` si vous devez spécifier explicitement le désérialiseur et l'encodage.\n\n\n```\n--load <chemindufichier> [noerror]\n--load <chemindurépertoire> [noerror]\n```\n\nPar défaut, la commande //load// provoque une erreur si aucun tiddler n'est trouvé. L'erreur peut être supprimée en spécifiant le paramètre optionnel \"noerror\".\n\nPour charger des tiddlers à partir d'un fichier ~TiddlyWiki chiffré, vous devrez d'abord spécifier le mot de passe à l'aide de la [[commande password|PasswordCommand]]. Par exemple :\n\n```\ntiddlywiki ./MonWiki --password pa55w0rd --load mon_wiki_secret.html\n```\n\nÀ noter : TiddlyWiki refusera de charger une version plus ancienne d'un plugin déjà chargé."
},
"$:/language/Help/makelibrary": {
"title": "$:/language/Help/makelibrary",
"description": "Construit le plugin bibliothèque requis par la procédure de mise à jour",
"text": "Construit le tiddler `$:/UpgradeLibrary` pour la procédure de mise à jour.\n\nLa bibliothèque de mise à jour est formatée comme un tiddler de plugin ordinaire avec le type `library`. Elle contient un exemplaire de chacun des packs de plugins, thèmes et languages disponibles dans le répertoire de TiddlyWiki5.\n\nCette commande est prévue pour un usage interne ; elle n'a d'intérêt que pour les utilisateurs qui construisent une variante de la procédure de mise à jour.\n\n```\n--makelibrary <titre>\n```\n\nL'argument //titre// a pour valeur par défaut `$:/UpgradeLibrary`.\n"
},
"$:/language/Help/notfound": {
"title": "$:/language/Help/notfound",
"text": "Il n'existe pas d'aide sur le sujet."
},
"$:/language/Help/output": {
"title": "$:/language/Help/output",
"description": "Change le répertoire de départ pour la sortie des prochaines commandes",
"text": "Change le répertoire de départ pour la sortie des prochaines commandes. Par défaut, le répertoire de sortie est le sous-répertoire `output` du répertoire de l'édition courante.\n\n```\n--output <nom de chemin>\n```\n\nSi le chemin spécifié est relatif, il est calculé relativement au répertoire de sortie courant. Par exemple, `--output .` indique le répertoire courant comme répertoire de sortie.\n"
},
"$:/language/Help/password": {
"title": "$:/language/Help/password",
"description": "Fournit un mot de passe pour les prochaines opérations de chiffrement",
"text": "Fournit un mot de passe pour les prochaines opérations de chiffrement.\n\n```\n--password <motdepasse>\n```\n\n''Note'' : Cette commande n'est pas appropriée pour servir un TiddlyWiki protégé par mot de passe. Pour cela, utilisez plutôt l'option //password// de la [[commande Server|ServerCommand]].\n"
},
"$:/language/Help/render": {
"title": "$:/language/Help/render",
"description": "Exécute le contenu de tiddlers individuels vers des fichiers",
"text": "Exécute le contenu des tiddlers individuels identifiés par un filtre et enregistre le résultat vers les fichiers spécifiés.\n\nOptionellement, on peut spécifier le titre d'un tiddler modèle (template). Dans ce cas, au lieu d'exécuter directement le contenu de chaque tiddler, le modèle est exécuté après avoir donné pour valeur à la variable \"currentTiddler\" le titre du tiddler dont le contenu est en cours d'exécution.\n\nOn peut spécifier le nom et la valeur d'une variable supplémentaire.\n\n```\n--render <filtre-sur-les-tiddlers> [<filtre-des-noms-de-fichier>] [<type-de-rendu>] [<modèle>] [<nom>] [<valeur>]\n```\n\n* ''filtre-sur-les-tiddlers'': Un filtre qui indentifie les tiddlers dont le contenu doit être exécuté\n* ''filtre-des-noms-de-fichier'': filtre optionnel pour transformer les titres de tiddlers en chemin de fichiers. À défaut, le filtre utilisé est `[is[tiddler]addsuffix[.html]]`, qui utilise le titre inchangé du tiddler comme nom de fichier\n* ''modèle'': Modèle optionnel via lequel chaque tiddler doit être rendu\n* ''type-de-rendu'': Type de rendu optionnel : la valeur `text/html` (par défaut) retourne le text HTML complet et `text/plain` se contente de retourner le contenu sous forme texte (autrement dit ignore les balises HTML et autres caractères non imprimables)\n* ''nom'': Nom de la variable optionnelle\n* ''valeur'': Valeur de la variable optionnelle\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du réepertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent.\n\nNotes :\n\n* Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés\n* Les répertoires absents dans le chemin de fichier sont créés automatiquement.\n* Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : `--render \"[[Motovun Jack.jpg]]\"`\n* Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple `[encodeuricomponent[]addprefix[static/]]` applique un encodage d'URI à chaque titre, puis ajoute le préfixe `static/`\n* La commande `--render` remplace de manière plus souple les deux commandes `--rendertiddler` et `--rendertiddlers`, qui sont du même coup obsolètes. \n\nExemples :\n\n* `--render \"[!is[system]]\" \"[encodeuricomponent[]addprefix[tiddlers/]addsuffix[.html]]\"` -- enregistre le contenu exécuté de tous les tiddlers non-système vers des fichiers du sous-répertoire \"tiddlers\" nommés par encodage URL des titres et ajout d'une extension html.\n\n"
},
"$:/language/Help/rendertiddler": {
"title": "$:/language/Help/rendertiddler",
"description": "Exécute le contenu d'un tiddler pour le type spécifié",
"text": "Enregistre vers le chemin indiqué le résultat de l'exécution d'un tiddler pour le type de contenu (ContentType) spécifié — par défaut `text/html`.\n\nUn tiddler modèle (template) peut être indiqué optionnellement. Dans ce cas, le tiddler modèle est exécuté après initialisation de la variable \"currentTiddler\" avec le tiddler dont le titre est donné en premier paramètre de la commande.\n\nLe nom et la valeur d'une variable supplémentaire peuvent être spécifiés optionnellement.\n\n```\n--rendertiddler <titre> <chemindufichier> [<type>] [<modèle>] [<nom>] [<valeur>]\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nLes répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement.\n\nPar exemple, la commande ci-dessous enregistre tous les tiddlers correspondant au filtre `[tag[done]]` vers un fichier JSON de nom `output.json`, en faisant appel au template prédéfini `$:/core/templates/exporters/JsonFile`.\n\n```\n--rendertiddler \"$:/core/templates/exporters/JsonFile\" output.json text/plain \"\" exportFilter \"[tag[done]]\"\n```\n"
},
"$:/language/Help/rendertiddlers": {
"title": "$:/language/Help/rendertiddlers",
"description": "Exécute le contenu d'un ensemble de tiddlers sélectionnés par un filtre, pour le type de contenu (ContentType) spécifié",
"text": "Enregistre vers le chemin indiqué et avec l'extension indiquée — par défaut `.html`, le résultat de l'exécution d'un ensemble de tiddlers (sélectionnés par un filtre). Le résultat de l'exécution est rendu selon le type de contenu (ContentType) spécifié — par défaut `text/html` :\n\n```\n--rendertiddlers <filtre> <modèle> <chemindurépertoire> [<type>] [<extension>] [\"noclean\"]\n```\n\nPar exemple :\n\n```\n--rendertiddlers [!is[system]] $:/core/templates/static.tiddler.html ./static text/plain\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nTous les fichiers du répertoire cible sont supprimés, sauf si le drapeau ''noclean'' est spécifié. Le répertoire cible est créé récursivement s'il n'existe pas."
},
"$:/language/Help/save": {
"title": "$:/language/Help/save",
"description": "Enregistre des tiddlers individuels tels quels vers des fichiers",
"text": "Enregistre des tiddlers individuels identifiés par un filtre, soit tels quels, soit dans un format binaire dans les fichiers spécifiés.\n\n```\n--save <filtre-des-tiddlers> <filtre-des-noms-de-fichiers>\n```\n\n* ''filtre-des-tiddlers'': Un filtre identifiant les tiddlers à enregistrer\n* ''filtre-des-noms-de-fichiers'': Filtre optionnel pour transformer les titres de tiddlers en chemins de fichiers. À défaut, le filtre utilisé est `[is[tiddler]]`, qui utilise le titre inchangé du tiddler comme nom de fichier\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du réepertoire de l'édition. La commande `--output` peut servir à diriger les sorties vers un répertoire différent.\n\nNotes :\n\n* Les éventuels fichiers présents dans le répertoire de sortie ne sont pas supprimmés\n* Les répertoires absents dans le chemin de fichier sont créés automatiquement.\n* Lorsqu'un tiddler contient des espaces dans le titre, prendre garde à utiliser aussi bien les guillemets nécessaires au shell et les doubles crochets droits propres à TiddlyWiki : `--render \"[[Motovun Jack.jpg]]\"`\n* Le filtre des noms de fichier est évalué après avoir initialisé l'élément d'entrée avec le titre du tiddler en cours d'exécution, permettant ainsi d'utiliser le titre comme base de calcul pour le nom de fichier. Par exemple `[encodeuricomponent[]addprefix[static/]]` applique un encodage d'URI à chaque titre, puis ajoute le préfixe `static/`\n* La commande `--save` remplace de manière plus souple les deux commandes `--savetiddler` et `--savetiddlers`, qui sont du même coup obsolètes. \n\nExemples :\n\n* `--save \"[!is[system]is[image]]\" \"[encodeuricomponent[]addprefix[tiddlers/]]\"` -- enregistre tous les tiddlers images non-système comme des fichiers du sous-répertoire \"tiddlers\" nommés après encodage URL des titres.\n"
},
"$:/language/Help/savetiddler": {
"title": "$:/language/Help/savetiddler",
"description": "Enregistre un tiddler dans un fichier sous sa forme brute",
"text": "Enregistre un tiddler texte ou binaire dans le fichier spécifié, sous sa forme brute. \n\n```\n--savetiddler <titre> <chemindufichier>\n```\n\nPar défaut, le nom de fichier est résolu relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à rediriger la sortie vers un répertoire différent.\n\nLes répertoires présents dans le chemin du fichier et qui n'existent pas encore sont créés automatiquement. "
},
"$:/language/Help/savetiddlers": {
"title": "$:/language/Help/savetiddlers",
"description": "Enregistre un groupe de tiddlers vers un répertoire",
"text": "Enregistre un groupe de tiddlers vers le chemin spécifié, sous leur forme brute, texte ou binaire. \n\n```\n--savetiddlers <filtre> <chemin-de-répertoire> [\"noclean\"]\n```\n\nPar défaut, le répertoire de sortie est calculé relativement au sous-répertoire `output` du répertoire de l'édition. La commande `--output` peut servir à diriger la sortie vers un répertoire différent.\n\nLes fichiers présents dans le répertoire de sortie sont supprimés avant que soient enregistrés les fichiers des tiddlers spécifiés par le filtre. Pour empêcher cette suppression, ajouter le drapeau ''noclean''.\n\nLes éventuels répertoires manquants dans le chemin spécifié sont créés automatiquement.\n"
},
"$:/language/Help/savewikifolder": {
"title": "$:/language/Help/savewikifolder",
"description": "Enregistre un wiki dans un nouveau dossier wiki",
"text": "<<.from-version \"5.1.20\">> Enregistre le wiki courant sous la forme d'un dossier wiki, comprenant les tiddlers, les plugins et les informations de configuration :\n\n```\n--savewikifolder <chemindudossierwiki> [<filtre>]\n```\n\n* Le dossier wiki cible doit être vide ou inexistant\n* Le filtre spécifie les tiddlers à inclure. Il est optionnel et vaut par défaut `[all[tiddlers]]`\n* Les plugins appartenant à la bibliothèque officielle de plugins sont remplacés par des références à ces plugins dans le fichier `tiddlywiki.info`\n* Les plugins sur mesure sont déballés dans leur propre dossier\n\nOn utilise typiquement cette commande avec la commande `--load` pour convertir un fichier TiddlyWiki HTML en un dossier wiki :\n\n```\ntiddlywiki --load ./monwiki.html --savewikifolder ./mondossierwiki\n```\n"
},
"$:/language/Help/server": {
"title": "$:/language/Help/server",
"description": "Fournit une interface serveur HTTP à TiddlyWiki (déprécié en faveur de la nouvelle commande listen)",
"text": "Ancienne commande pour servir un wiki sur HTTP.\n\n```\n--server <port> <tiddler-racine> <type-du-rendu> <type-du-service> <nom-d-utilisateur> <mot-de-passe> <machine> <préfixe-des-chemins> <niveau-débogage>\n```\n\nLes arguments sont :\n\n* ''port'' - numéro de port sur lequel servir le contenu ; une valeur non-numérique sera interprétée comme un nom de variable d'environnement du système dont la valeur est le numéro de port (défaut : \"8080\")\n* ''tiddler-racine'' - le titre du tiddler à afficher à la racine de l'URL (défaut : \"$:/core/save/all\") \n* ''type-du-rendu'' - le type avec lequel le contenu du tiddler racine doit être rendu (`text/plain` par défaut)\n* ''type-du-service'' - le type avec lequel le contenu du tiddler racine doit être servi (`text/html` par défaut)\n* ''nom-d-utilisateur'' - le nom d'utilisateur qui servira par défaut à signer les modifications\n* ''mot-de-passe'' - mot de passe optionnel permettant une authentification basique\n* ''machine'' - nom de machine optionnel d'où le contenu doit être servi (\"127.0.0.1\" par défaut, autrement dit \"localhost\")\n* ''préfixe-des-chemins'' - préfixe optionnel pour les chemins de fichiers\n* ''niveau-débogage'' - optional debug level; set to \"debug\" to view request details (defaults to \"none\")\n\nSi le mot de passe est spécifié en argument, le navigateur demandera à l'utilisateur d'entrer le nom d'utilisateur et le mot de passe. On notera que le mot de passe est transmis en clair, et que cette implémentation ne convient donc pas pour un usage général.\n\nPar exemple :\n\n```\n--server 8080 $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e\n```\n\nLe nom d'utilisateur et le mot de passe peuvent être spécifiés sous forme de chaînes vides si vous avez besoin d'indiquer le nom de machine ou le préfixe des chemins sans pour autant demander un mot de passe :\n\n```\n--server 8080 $:/core/save/all text/plain text/html \"\" \"\" 192.168.0.245\n```\n\nSi vous voulez faire tourner plusieurs serveurs TiddlyWiki en même temps sur la même machine, vous devrez leur assigner chacun un port différent. Il peut être utile d'utiliser une variable d'environnement pour passer le numéro de port au process Node.js. L'exemple suivant utilise une variable d'environnement appelée \"MY_PORT_NUMBER\" :\n\n```\n--server MY_PORT_NUMBER $:/core/save/all text/plain text/html MonNomUtilisateur m0tdepa55e\n```\n"
},
"$:/language/Help/setfield": {
"title": "$:/language/Help/setfield",
"description": "Prépare des tiddlers externes for use",
"text": "//Notez que cette commande est expérimentale et peut changer ou être remplacée avant d'être finalisée//\n\nInitialise le champ spécifié d'un groupe de tiddlers avec le résultat de la wikification d'un tiddler template, la variable `currentTiddler` prenant tour à tour la valeur de chaque tiddler.\n\n```\n--setfield <filtre> <nom-du-champ> <titre-du-template> <type-de-rendu>\n```\n\nLes paramètres sont les suivants :\n\n* ''filtre'' - filtre identifiant les tiddlers cibles\n* ''nom-du-champ'' - le champ à modifier (\"text\" par défaut)\n* ''titre-du-template'' - le tiddler à wikifier dans le champ spécifié. Si manquant ou blanc, le champ spécifié est supprimé\n* ''type-de-rendu'' - le type de texte à utiliser pour le rendu (\"text/plain\" par défaut ; \"text/html\" peut servir à inclure des éléments HTML)\n"
},
"$:/language/Help/unpackplugin": {
"title": "$:/language/Help/unpackplugin",
"description": "Déballe les tiddlers contenus dans un plugin",
"text": "Extrait les tiddlers utiles d'un plugin, en les créant sous forme de tiddlers ordinaires :\n\n```\n--unpackplugin <titre>\n```\n"
},
"$:/language/Help/verbose": {
"title": "$:/language/Help/verbose",
"description": "Bascule en mode verbeux",
"text": "Bascule les informations en mode verbeux, pratique pour le débogage.\n\n```\n--verbose\n```\n"
},
"$:/language/Help/version": {
"title": "$:/language/Help/version",
"description": "Affiche le numéro de version de TiddlyWiki",
"text": "Affiche le numéro de version de TiddlyWiki.\n\n```\n--version\n```\n"
},
"$:/language/Import/Imported/Hint": {
"title": "$:/language/Import/Imported/Hint",
"text": "Les tiddlers suivants ont été importés :"
},
"$:/language/Import/Listing/Cancel/Caption": {
"title": "$:/language/Import/Listing/Cancel/Caption",
"text": "Annuler"
},
"$:/language/Import/Listing/Hint": {
"title": "$:/language/Import/Listing/Hint",
"text": "Les tiddlers suivants sont prêts pour l'importation :"
},
"$:/language/Import/Listing/Import/Caption": {
"title": "$:/language/Import/Listing/Import/Caption",
"text": "Importer"
},
"$:/language/Import/Listing/Select/Caption": {
"title": "$:/language/Import/Listing/Select/Caption",
"text": "Sélectionner"
},
"$:/language/Import/Listing/Status/Caption": {
"title": "$:/language/Import/Listing/Status/Caption",
"text": "Statut"
},
"$:/language/Import/Listing/Title/Caption": {
"title": "$:/language/Import/Listing/Title/Caption",
"text": "Titre"
},
"$:/language/Import/Listing/Preview": {
"title": "$:/language/Import/Listing/Preview",
"text": "Prévisualisation :"
},
"$:/language/Import/Listing/Preview/Text": {
"title": "$:/language/Import/Listing/Preview/Text",
"text": "Texte"
},
"$:/language/Import/Listing/Preview/TextRaw": {
"title": "$:/language/Import/Listing/Preview/TextRaw",
"text": "Texte (brut)"
},
"$:/language/Import/Listing/Preview/Fields": {
"title": "$:/language/Import/Listing/Preview/Fields",
"text": "Champs"
},
"$:/language/Import/Listing/Preview/Diff": {
"title": "$:/language/Import/Listing/Preview/Diff",
"text": "Diff"
},
"$:/language/Import/Listing/Preview/DiffFields": {
"title": "$:/language/Import/Listing/Preview/DiffFields",
"text": "Diff (champs)"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Incompatible",
"text": "Plugin bloqué : incompatible ou obsolète"
},
"$:/language/Import/Upgrader/Plugins/Suppressed/Version": {
"title": "$:/language/Import/Upgrader/Plugins/Suppressed/Version",
"text": "Plugin bloqué (la version <<incoming>> en cours d'importation est plus ancienne que la version <<existing>> actuelle)"
},
"$:/language/Import/Upgrader/Plugins/Upgraded": {
"title": "$:/language/Import/Upgrader/Plugins/Upgraded",
"text": "Plugin mis à jour depuis <<incoming>> vers <<upgraded>>"
},
"$:/language/Import/Upgrader/State/Suppressed": {
"title": "$:/language/Import/Upgrader/State/Suppressed",
"text": "Tiddler d'état temporaire bloqué"
},
"$:/language/Import/Upgrader/System/Suppressed": {
"title": "$:/language/Import/Upgrader/System/Suppressed",
"text": "Tiddler système bloqué"
},
"$:/language/Import/Upgrader/System/Warning": {
"title": "$:/language/Import/Upgrader/System/Warning",
"text": "Tiddler du module //core//"
},
"$:/language/Import/Upgrader/System/Alert": {
"title": "$:/language/Import/Upgrader/System/Alert",
"text": "Vous êtes sur le point d'importer un tiddler qui écrasera un tiddler du module //core//. Ceci est déconseillé car cela peut rendre le système instable"
},
"$:/language/Import/Upgrader/ThemeTweaks/Created": {
"title": "$:/language/Import/Upgrader/ThemeTweaks/Created",
"text": "Thème modifié à partir de <$text text=<<from>>/>"
},
"$:/language/AboveStory/ClassicPlugin/Warning": {
"title": "$:/language/AboveStory/ClassicPlugin/Warning",
"text": "On dirait que vous essayez de charger un plugin conçu pour ~TiddlyWiki Classic. Merci de noter que [[ces plugins ne fonctionnent pas avec TiddlyWiki version 5.x.x|https://tiddlywiki.com/#TiddlyWikiClassic]]. Plugins ~TiddlyWiki Classic détectés :"
},
"$:/language/BinaryWarning/Prompt": {
"title": "$:/language/BinaryWarning/Prompt",
"text": "Ce tiddler contient des données binaires"
},
"$:/language/ClassicWarning/Hint": {
"title": "$:/language/ClassicWarning/Hint",
"text": "Ce tiddler est écrit au format TiddlyWiki Classic, qui n'est pas entièrement compatible avec TiddlyWiki version 5. Pour en savoir plus, rendez-vous à l'adresse https://tiddlywiki.com/static/Upgrading.html."
},
"$:/language/ClassicWarning/Upgrade/Caption": {
"title": "$:/language/ClassicWarning/Upgrade/Caption",
"text": "mettre à jour"
},
"$:/language/CloseAll/Button": {
"title": "$:/language/CloseAll/Button",
"text": "tout fermer"
},
"$:/language/ColourPicker/Recent": {
"title": "$:/language/ColourPicker/Recent",
"text": "Récent :"
},
"$:/language/ConfirmCancelTiddler": {
"title": "$:/language/ConfirmCancelTiddler",
"text": "Souhaitez-vous annuler les modifications apportées au tiddler « <$text text=<<title>>/> » ?"
},
"$:/language/ConfirmDeleteTiddler": {
"title": "$:/language/ConfirmDeleteTiddler",
"text": "Souhaitez-vous supprimer le tiddler « <$text text=<<title>>/> » ?"
},
"$:/language/ConfirmOverwriteTiddler": {
"title": "$:/language/ConfirmOverwriteTiddler",
"text": "Souhaitez-vous supplanter le tiddler « <$text text=<<title>>/> » ?"
},
"$:/language/ConfirmEditShadowTiddler": {
"title": "$:/language/ConfirmEditShadowTiddler",
"text": "Vous êtes sur le point d'éditer un ShadowTiddler. Toute modification supplantera la version par défaut du système, rendant les prochaines mises à jour non-triviales. Êtes-vous sûr(e) de vouloir éditer \"<$text text=<<title>>/>\"?"
},
"$:/language/Count": {
"title": "$:/language/Count",
"text": "total"
},
"$:/language/DefaultNewTiddlerTitle": {
"title": "$:/language/DefaultNewTiddlerTitle",
"text": "Nouveau tiddler"
},
"$:/language/Diffs/CountMessage": {
"title": "$:/language/Diffs/CountMessage",
"text": "<<diff-count>> différences"
},
"$:/language/DropMessage": {
"title": "$:/language/DropMessage",
"text": "Déposer ici (ou appuyer sur « escape » pour annuler)"
},
"$:/language/Encryption/Cancel": {
"title": "$:/language/Encryption/Cancel",
"text": "Annuler"
},
"$:/language/Encryption/ConfirmClearPassword": {
"title": "$:/language/Encryption/ConfirmClearPassword",
"text": "Souhaitez-vous supprimer ce mot de passe ? Si oui, ce wiki ne sera plus chiffré lors de la sauvegarde"
},
"$:/language/Encryption/PromptSetPassword": {
"title": "$:/language/Encryption/PromptSetPassword",
"text": "Choisir un nouveau mot de passe pour ce TiddlyWiki"
},
"$:/language/Encryption/Username": {
"title": "$:/language/Encryption/Username",
"text": "Nom d'utilisateur"
},
"$:/language/Encryption/Password": {
"title": "$:/language/Encryption/Password",
"text": "Mot de passe"
},
"$:/language/Encryption/RepeatPassword": {
"title": "$:/language/Encryption/RepeatPassword",
"text": "Répéter le mot de passe"
},
"$:/language/Encryption/PasswordNoMatch": {
"title": "$:/language/Encryption/PasswordNoMatch",
"text": "Les mots de passe ne correspondent pas"
},
"$:/language/Encryption/SetPassword": {
"title": "$:/language/Encryption/SetPassword",
"text": "Définir ce mot de passe"
},
"$:/language/Error/Caption": {
"title": "$:/language/Error/Caption",
"text": "Erreur"
},
"$:/language/Error/EditConflict": {
"title": "$:/language/Error/EditConflict",
"text": "Le fichier a changé sur le serveur"
},
"$:/language/Error/Filter": {
"title": "$:/language/Error/Filter",
"text": "Erreur de filtre"
},
"$:/language/Error/FilterSyntax": {
"title": "$:/language/Error/FilterSyntax",
"text": "Erreur de syntaxe dans l'expression du filtre"
},
"$:/language/Error/IsFilterOperator": {
"title": "$:/language/Error/IsFilterOperator",
"text": "Erreur de filtre : Opérande inconnu pour l'opérateur de filtre 'is'"
},
"$:/language/Error/LoadingPluginLibrary": {
"title": "$:/language/Error/LoadingPluginLibrary",
"text": "Erreur lors du chargement de la bibliothèque de plugins"
},
"$:/language/Error/NetworkErrorAlert": {
"title": "$:/language/Error/NetworkErrorAlert",
"text": "`<h2>''Erreur Réseau''</h2>Il semble que la connexion au serveur soit perdue. Cela peut indiquer un problème avec votre connexion réseau. Essayez de rétablir la connectivité du réseau avant de continuer.<br><br>''Toute modification non enregistrée sera automatiquement synchronisée lorsque la connectivité sera rétablie''.`"
},
"$:/language/Error/RecursiveTransclusion": {
"title": "$:/language/Error/RecursiveTransclusion",
"text": "Erreur dans le widget //transclude// : transclusion récursive"
},
"$:/language/Error/RetrievingSkinny": {
"title": "$:/language/Error/RetrievingSkinny",
"text": "Erreur pendant la récupération de la liste des tiddlers partiels"
},
"$:/language/Error/SavingToTWEdit": {
"title": "$:/language/Error/SavingToTWEdit",
"text": "Erreur lors de l'enregistrement vers TWEdit"
},
"$:/language/Error/WhileSaving": {
"title": "$:/language/Error/WhileSaving",
"text": "Erreur lors de l'enregistrement"
},
"$:/language/Error/XMLHttpRequest": {
"title": "$:/language/Error/XMLHttpRequest",
"text": "Code d'erreur XMLHttpRequest"
},
"$:/language/InternalJavaScriptError/Title": {
"title": "$:/language/InternalJavaScriptError/Title",
"text": "Erreur interne JavaScript"
},
"$:/language/InternalJavaScriptError/Hint": {
"title": "$:/language/InternalJavaScriptError/Hint",
"text": "C'est assez embarrassant. Il est recommandé de rafraîchir l'affichage de votre navigateur"
},
"$:/language/InvalidFieldName": {
"title": "$:/language/InvalidFieldName",
"text": "Caractères illicites dans le nom du champ « <$text text=<<fieldName>>/> ». Les champs ne peuvent contenir que des lettres minuscules non accentuées et les caractères souligné (`_`), tiret (`-`) et point (`.`)"
},
"$:/language/LazyLoadingWarning": {
"title": "$:/language/LazyLoadingWarning",
"text": "<p>Tentative de chargement d'un contenu externe ''<$text text={{!!_canonical_uri}}/>''</p><p>Si ce message ne disparaît pas, il est possible que vous deviez ajuster le type de contenu du tiddler en fonction du type de votre contenu externe, ou vous utilisez peut-être un navigateur qui n'accepte pas les contenus externes dans cette configuration. Voir https://tiddlywiki.com/#ExternalText</p>"
},
"$:/language/LoginToTiddlySpace": {
"title": "$:/language/LoginToTiddlySpace",
"text": "Identification sur TiddlySpace"
},
"$:/language/Manager/Controls/FilterByTag/None": {
"title": "$:/language/Manager/Controls/FilterByTag/None",
"text": "(aucun)"
},
"$:/language/Manager/Controls/FilterByTag/Prompt": {
"title": "$:/language/Manager/Controls/FilterByTag/Prompt",
"text": "Filtrer par tag :"
},
"$:/language/Manager/Controls/Order/Prompt": {
"title": "$:/language/Manager/Controls/Order/Prompt",
"text": "Ordre inverse"
},
"$:/language/Manager/Controls/Search/Placeholder": {
"title": "$:/language/Manager/Controls/Search/Placeholder",
"text": "Recherche"
},
"$:/language/Manager/Controls/Search/Prompt": {
"title": "$:/language/Manager/Controls/Search/Prompt",
"text": "Rechercher :"
},
"$:/language/Manager/Controls/Show/Option/Tags": {
"title": "$:/language/Manager/Controls/Show/Option/Tags",
"text": "tags"
},
"$:/language/Manager/Controls/Show/Option/Tiddlers": {
"title": "$:/language/Manager/Controls/Show/Option/Tiddlers",
"text": "tiddlers"
},
"$:/language/Manager/Controls/Show/Prompt": {
"title": "$:/language/Manager/Controls/Show/Prompt",
"text": "Afficher :"
},
"$:/language/Manager/Controls/Sort/Prompt": {
"title": "$:/language/Manager/Controls/Sort/Prompt",
"text": "Trier par :"
},
"$:/language/Manager/Item/Colour": {
"title": "$:/language/Manager/Item/Colour",
"text": "Couleur"
},
"$:/language/Manager/Item/Fields": {
"title": "$:/language/Manager/Item/Fields",
"text": "Champs"
},
"$:/language/Manager/Item/Icon/None": {
"title": "$:/language/Manager/Item/Icon/None",
"text": "(aucune)"
},
"$:/language/Manager/Item/Icon": {
"title": "$:/language/Manager/Item/Icon",
"text": "Icône"
},
"$:/language/Manager/Item/RawText": {
"title": "$:/language/Manager/Item/RawText",
"text": "Texte brut"
},
"$:/language/Manager/Item/Tags": {
"title": "$:/language/Manager/Item/Tags",
"text": "Tags"
},
"$:/language/Manager/Item/Tools": {
"title": "$:/language/Manager/Item/Tools",
"text": "Outils"
},
"$:/language/Manager/Item/WikifiedText": {
"title": "$:/language/Manager/Item/WikifiedText",
"text": "Texte wikifié"
},
"$:/language/MissingTiddler/Hint": {
"title": "$:/language/MissingTiddler/Hint",
"text": "Le tiddler « <$text text=<<currentTiddler>>/> » est manquant -- cliquez sur {{||$:/core/ui/Buttons/edit}} pour le créer"
},
"$:/language/No": {
"title": "$:/language/No",
"text": "Non"
},
"$:/language/OfficialPluginLibrary": {
"title": "$:/language/OfficialPluginLibrary",
"text": "Bibliothèque officielle des plugins ~TiddlyWiki"
},
"$:/language/OfficialPluginLibrary/Hint": {
"title": "$:/language/OfficialPluginLibrary/Hint",
"text": "La bibliothèque officielle des plugins ~TiddlyWiki sur tiddlywiki.com. Plugins, thèmes et packs pour les différentes langues sont maintenus par l'équipe responsable du noyau."
},
"$:/language/PluginReloadWarning": {
"title": "$:/language/PluginReloadWarning",
"text": "Merci d'enregistrer {{$:/core/ui/Buttons/save-wiki}} et de recharger {{$:/core/ui/Buttons/refresh}} pour que les changements apportés aux plugins ~JavaScript prennent effet"
},
"$:/language/RecentChanges/DateFormat": {
"title": "$:/language/RecentChanges/DateFormat",
"text": "DD MMM YYYY"
},
"$:/language/SystemTiddler/Tooltip": {
"title": "$:/language/SystemTiddler/Tooltip",
"text": "Ceci est un tiddler système"
},
"$:/language/SystemTiddlers/Include/Prompt": {
"title": "$:/language/SystemTiddlers/Include/Prompt",
"text": "Inclure les tiddlers système"
},
"$:/language/TagManager/Colour/Heading": {
"title": "$:/language/TagManager/Colour/Heading",
"text": "Couleur"
},
"$:/language/TagManager/Count/Heading": {
"title": "$:/language/TagManager/Count/Heading",
"text": "Total"
},
"$:/language/TagManager/Icon/Heading": {
"title": "$:/language/TagManager/Icon/Heading",
"text": "Icône"
},
"$:/language/TagManager/Icons/None": {
"title": "$:/language/TagManager/Icons/None",
"text": "Aucune"
},
"$:/language/TagManager/Info/Heading": {
"title": "$:/language/TagManager/Info/Heading",
"text": "Info"
},
"$:/language/TagManager/Tag/Heading": {
"title": "$:/language/TagManager/Tag/Heading",
"text": "Tag"
},
"$:/language/Tiddler/DateFormat": {
"title": "$:/language/Tiddler/DateFormat",
"text": "DD MMM YYYY à hhh0mm"
},
"$:/language/UnsavedChangesWarning": {
"title": "$:/language/UnsavedChangesWarning",
"text": "Vos dernières modifications n'ont pas été sauvegardées dans votre TiddlyWiki"
},
"$:/language/Yes": {
"title": "$:/language/Yes",
"text": "Oui"
},
"$:/language/Modals/Download": {
"title": "$:/language/Modals/Download",
"type": "text/vnd.tiddlywiki",
"subtitle": "Télécharger vos modifications",
"footer": "<$button message=\"tm-close-tiddler\">Fermer</$button>",
"help": "https://tiddlywiki.com/static/DownloadingChanges.html",
"text": "Votre navigateur ne supporte que l'enregistrement manuel.\n\nPour enregistrer les modifications de votre wiki, faites un clic droit sur le lien de téléchargement ci-dessous et choisissez \"Enregistrer...\" ou \"Télécharger...\", puis choisissez le répertoire et le nom de fichier.\n\n//Il est possible d'accélérer un peu les choses en cliquant sur le lien tout en appuyant sur la touche contrôle (sous Windows) ou la touche option/alt (sous MacOS X). On ne vous demandera pas un nom de fichier ou de répertoire, mais votre navigateur proposera probablement un nom difficile à identifier — il vous faudra sans doute le renommer pour lui ajouter une extension .html avant qu'il soit effectivement utilisable.//\n\nSur les smartphones qui n'autorisent pas le téléchargement de fichiers, vous pouvez ajouter le lien à vos favoris/signets, puis synchroniser vos signets vers un ordinateur de bureau, d'où le wiki pourra être enregistré normalement.\n"
},
"$:/language/Modals/SaveInstructions": {
"title": "$:/language/Modals/SaveInstructions",
"type": "text/vnd.tiddlywiki",
"subtitle": "Enregistrez votre travail",
"footer": "<$button message=\"tm-close-tiddler\">Fermer</$button>",
"help": "https://tiddlywiki.com/static/SavingChanges.html",
"text": "Les modifications effectuées dans ce wiki doivent être sauvegardées sous forme de fichier ~TiddlyWiki HTML.\n\n!!! Navigateurs de bureau\n\n# Sélectionnez ''Enregistrer sous'' depuis le menu ''Fichier''\n# Choisissez un nom de fichier et un dossier\n#* Certains navigateurs demandent aussi de spécifier explicitement le format d'enregistrement, à savoir ''Page Web, HTML uniquement'' ou quelque chose d'approchant\n# Fermez cet onglet\n\n!!! Navigateurs sur smartphone\n\n# Créez un favori/signet pour cette page\n#* Si vous utilisez iCloud ou Google Sync, le signet sera automatiquement synchronisé avec le navigateur de votre ordinateur de bureau, d'où vous pourrez l'ouvrir et enregistrer le fichier comme indiqué ci-dessus\n# Fermez cet onglet\n\n//Si vous ouvrez à nouveau le signet dans Safari pour mobile, vous verrez ce message une nouvelle fois. Si vous voulez continuer et utiliser le fichier, cliquez simplement sur le bouton ''Fermer'' ci-dessous//\n"
},
"$:/config/NewJournal/Title": {
"title": "$:/config/NewJournal/Title",
"text": "DD MMM YYYY"
},
"$:/config/NewJournal/Tags": {
"title": "$:/config/NewJournal/Tags",
"tags": "Journal"
},
"$:/language/Notifications/Save/Done": {
"title": "$:/language/Notifications/Save/Done",
"text": "Wiki enregistré"
},
"$:/language/Notifications/Save/Starting": {
"title": "$:/language/Notifications/Save/Starting",
"text": "Enregistrement du wiki en cours"
},
"$:/language/Notifications/CopiedToClipboard/Succeeded": {
"title": "$:/language/Notifications/CopiedToClipboard/Succeeded",
"text": "Copié dans le presse-papier !"
},
"$:/language/Notifications/CopiedToClipboard/Failed": {
"title": "$:/language/Notifications/CopiedToClipboard/Failed",
"text": "La copie dans le presse-papier a échoué !"
},
"$:/language/Search/DefaultResults/Caption": {
"title": "$:/language/Search/DefaultResults/Caption",
"text": "Liste"
},
"$:/language/Search/Filter/Caption": {
"title": "$:/language/Search/Filter/Caption",
"text": "Filtrer"
},
"$:/language/Search/Filter/Hint": {
"title": "$:/language/Search/Filter/Hint",
"text": "Recherche via une combinaison de [[filtres|https://tiddlywiki.com/static/Filters.html]]"
},
"$:/language/Search/Filter/Matches": {
"title": "$:/language/Search/Filter/Matches",
"text": "//<small><<resultCount>> correspondances</small>//"
},
"$:/language/Search/Matches": {
"title": "$:/language/Search/Matches",
"text": "//<small><<resultCount>> correspondances</small>//"
},
"$:/language/Search/Matches/All": {
"title": "$:/language/Search/Matches/All",
"text": "Toutes les correspondances :"
},
"$:/language/Search/Matches/Title": {
"title": "$:/language/Search/Matches/Title",
"text": "Correspondances sur les titres :"
},
"$:/language/Search/Search": {
"title": "$:/language/Search/Search",
"text": "Recherche"
},
"$:/language/Search/Search/TooShort": {
"title": "$:/language/Search/Search/TooShort",
"text": "Texte de recherche trop court"
},
"$:/language/Search/Shadows/Caption": {
"title": "$:/language/Search/Shadows/Caption",
"text": "Shadows"
},
"$:/language/Search/Shadows/Hint": {
"title": "$:/language/Search/Shadows/Hint",
"text": "Recherche parmi les tiddlers //shadow//"
},
"$:/language/Search/Shadows/Matches": {
"title": "$:/language/Search/Shadows/Matches",
"text": "//<small><<resultCount>> correspondances</small>//"
},
"$:/language/Search/Standard/Caption": {
"title": "$:/language/Search/Standard/Caption",
"text": "Standard"
},
"$:/language/Search/Standard/Hint": {
"title": "$:/language/Search/Standard/Hint",
"text": "Recherche parmi les tiddlers standard"
},
"$:/language/Search/Standard/Matches": {
"title": "$:/language/Search/Standard/Matches",
"text": "//<small><<resultCount>> correspondances</small>//"
},
"$:/language/Search/System/Caption": {
"title": "$:/language/Search/System/Caption",
"text": "Système"
},
"$:/language/Search/System/Hint": {
"title": "$:/language/Search/System/Hint",
"text": "Recherche parmi les tiddlers //système//"
},
"$:/language/Search/System/Matches": {
"title": "$:/language/Search/System/Matches",
"text": "//<small><<resultCount>> correspondances</small>//"
},
"$:/language/SideBar/All/Caption": {
"title": "$:/language/SideBar/All/Caption",
"text": "Tout"
},
"$:/language/SideBar/Contents/Caption": {
"title": "$:/language/SideBar/Contents/Caption",
"text": "Sommaire"
},
"$:/language/SideBar/Drafts/Caption": {
"title": "$:/language/SideBar/Drafts/Caption",
"text": "Brouillons"
},
"$:/language/SideBar/Explorer/Caption": {
"title": "$:/language/SideBar/Explorer/Caption",
"text": "Explorateur"
},
"$:/language/SideBar/Missing/Caption": {
"title": "$:/language/SideBar/Missing/Caption",
"text": "Manquants"
},
"$:/language/SideBar/More/Caption": {
"title": "$:/language/SideBar/More/Caption",
"text": "Plus"
},
"$:/language/SideBar/Open/Caption": {
"title": "$:/language/SideBar/Open/Caption",
"text": "Ouverts"
},
"$:/language/SideBar/Orphans/Caption": {
"title": "$:/language/SideBar/Orphans/Caption",
"text": "Orphelins"
},
"$:/language/SideBar/Recent/Caption": {
"title": "$:/language/SideBar/Recent/Caption",
"text": "Récents"
},
"$:/language/SideBar/Shadows/Caption": {
"title": "$:/language/SideBar/Shadows/Caption",
"text": "Shadows"
},
"$:/language/SideBar/System/Caption": {
"title": "$:/language/SideBar/System/Caption",
"text": "Système"
},
"$:/language/SideBar/Tags/Caption": {
"title": "$:/language/SideBar/Tags/Caption",
"text": "Tags"
},
"$:/language/SideBar/Tags/Untagged/Caption": {
"title": "$:/language/SideBar/Tags/Untagged/Caption",
"text": "sans tag"
},
"$:/language/SideBar/Tools/Caption": {
"title": "$:/language/SideBar/Tools/Caption",
"text": "Outils"
},
"$:/language/SideBar/Types/Caption": {
"title": "$:/language/SideBar/Types/Caption",
"text": "Types"
},
"$:/SiteSubtitle": {
"title": "$:/SiteSubtitle",
"text": "un carnet de notes web personnel et non linéaire"
},
"$:/SiteTitle": {
"title": "$:/SiteTitle",
"text": "Mon ~TiddlyWiki"
},
"$:/language/Snippets/ListByTag": {
"title": "$:/language/Snippets/ListByTag",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Liste de tiddlers par tag",
"text": "<<list-links \"[tag[task]sort[title]]\">>\n"
},
"$:/language/Snippets/MacroDefinition": {
"title": "$:/language/Snippets/MacroDefinition",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Définition de macro",
"text": "\\define Nomdemacro(param1:\"valeur par défaut\",param2)\nTexte de la macro\n\\end\n"
},
"$:/language/Snippets/Table4x3": {
"title": "$:/language/Snippets/Table4x3",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Tableau avec 4 colonnes par trois lignes",
"text": "|! |!Alpha |!Beta |!Gamma |!Delta |\n|!Un | | | | |\n|!Deux | | | | |\n|!Trois | | | | |\n"
},
"$:/language/Snippets/TableOfContents": {
"title": "$:/language/Snippets/TableOfContents",
"tags": "$:/tags/TextEditor/Snippet",
"caption": "Table des matières",
"text": "<div class=\"tc-table-of-contents\">\n\n<<toc-selective-expandable 'TableOfContents'>>\n\n</div>"
},
"$:/language/ThemeTweaks/ThemeTweaks": {
"title": "$:/language/ThemeTweaks/ThemeTweaks",
"text": "Réglages du thème"
},
"$:/language/ThemeTweaks/ThemeTweaks/Hint": {
"title": "$:/language/ThemeTweaks/ThemeTweaks/Hint",
"text": "Vous pouvez ajuster certains aspects du thème ''Vanilla''."
},
"$:/language/ThemeTweaks/Options": {
"title": "$:/language/ThemeTweaks/Options",
"text": "Options"
},
"$:/language/ThemeTweaks/Options/SidebarLayout": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout",
"text": "Agencement de la barre latérale"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fixed-Fluid",
"text": "Déroulé fixe, barre latérale extensible"
},
"$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed": {
"title": "$:/language/ThemeTweaks/Options/SidebarLayout/Fluid-Fixed",
"text": "Déroulé extensible, barre latérale fixe"
},
"$:/language/ThemeTweaks/Options/StickyTitles": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles",
"text": "Titres accrochés"
},
"$:/language/ThemeTweaks/Options/StickyTitles/Hint": {
"title": "$:/language/ThemeTweaks/Options/StickyTitles/Hint",
"text": "Lorsqu'on fait défiler le déroulé, les titres des tiddlers s'accrochent en haut de la fenêtre du navigateur tant que le contenu de leur tiddler est visible. Attention : ne fonctionne pas du tout avec Chrome, et peut causer quelques problèmes de mise en page dans Firefox"
},
"$:/language/ThemeTweaks/Options/CodeWrapping": {
"title": "$:/language/ThemeTweaks/Options/CodeWrapping",
"text": "Enroule les lignes trop longues à l'intérieur des blocs de code"
},
"$:/language/ThemeTweaks/Settings": {
"title": "$:/language/ThemeTweaks/Settings",
"text": "Réglages"
},
"$:/language/ThemeTweaks/Settings/FontFamily": {
"title": "$:/language/ThemeTweaks/Settings/FontFamily",
"text": "Famille de polices"
},
"$:/language/ThemeTweaks/Settings/CodeFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/CodeFontFamily",
"text": "Famille de polices pour le code"
},
"$:/language/ThemeTweaks/Settings/EditorFontFamily": {
"title": "$:/language/ThemeTweaks/Settings/EditorFontFamily",
"text": "Famille de polices pour l'éditeur"
},
"$:/language/ThemeTweaks/Settings/BackgroundImage": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImage",
"text": "Image de fond de page"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment",
"text": "Arrimage de l'image de fond de page"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Scroll",
"text": "Défile avec les tiddlers"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageAttachment/Fixed",
"text": "Arrimée à la fenêtre"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize",
"text": "Taille de l'image de fond de page"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Auto",
"text": "Auto"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Cover",
"text": "Élargie"
},
"$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain": {
"title": "$:/language/ThemeTweaks/Settings/BackgroundImageSize/Contain",
"text": "Contenue"
},
"$:/language/ThemeTweaks/Metrics": {
"title": "$:/language/ThemeTweaks/Metrics",
"text": "Tailles"
},
"$:/language/ThemeTweaks/Metrics/FontSize": {
"title": "$:/language/ThemeTweaks/Metrics/FontSize",
"text": "Taille police"
},
"$:/language/ThemeTweaks/Metrics/LineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/LineHeight",
"text": "Hauteur ligne"
},
"$:/language/ThemeTweaks/Metrics/BodyFontSize": {
"title": "$:/language/ThemeTweaks/Metrics/BodyFontSize",
"text": "Taille de la police dans le corps des tiddlers"
},
"$:/language/ThemeTweaks/Metrics/BodyLineHeight": {
"title": "$:/language/ThemeTweaks/Metrics/BodyLineHeight",
"text": "Hauteur de ligne dans le corps des tiddlers"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft",
"text": "Gauche du déroulé"
},
"$:/language/ThemeTweaks/Metrics/StoryLeft/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryLeft/Hint",
"text": "marge gauche entre le déroulé principal<br>(zone des tiddlers) et le bord gauche de la page"
},
"$:/language/ThemeTweaks/Metrics/StoryTop": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop",
"text": "Haut du déroulé"
},
"$:/language/ThemeTweaks/Metrics/StoryTop/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryTop/Hint",
"text": "marge supérieure entre le déroulé pincipal<br>et le bord supérieur de la page"
},
"$:/language/ThemeTweaks/Metrics/StoryRight": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight",
"text": "Droite du déroulé"
},
"$:/language/ThemeTweaks/Metrics/StoryRight/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryRight/Hint",
"text": "marge de gauche entre la barre latérale<br>et le bord gauche de la page"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth",
"text": "Largeur du déroulé"
},
"$:/language/ThemeTweaks/Metrics/StoryWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/StoryWidth/Hint",
"text": "largeur hors tout du déroulé"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth",
"text": "Largeur des tiddlers"
},
"$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/TiddlerWidth/Hint",
"text": "largeur des tiddlers dans le déroulé"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint",
"text": "Décroché de la barre latérale"
},
"$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarBreakpoint/Hint",
"text": "largeur minimum de la page à partir de laquelle déroulé principal et barre latérale apparaissent côte à côte"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth",
"text": "Largeur de la barre latérale"
},
"$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint": {
"title": "$:/language/ThemeTweaks/Metrics/SidebarWidth/Hint",
"text": "largeur de la barre latérale dans l'agencement //déroulé extensible—barre latérale fixe//"
},
"$:/language/TiddlerInfo/Advanced/Caption": {
"title": "$:/language/TiddlerInfo/Advanced/Caption",
"text": "Avancé"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Empty/Hint",
"text": "aucune information"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Heading",
"text": "Détails sur le plugin"
},
"$:/language/TiddlerInfo/Advanced/PluginInfo/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/PluginInfo/Hint",
"text": "Ce plugin contient les tiddlers <q>shadow</q> suivants :"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Heading",
"text": "Statut <q>shadow</q>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/NotShadow/Hint",
"text": "Le tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> n'est pas un tiddler <q>shadow</q>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Hint",
"text": "Le tiddler <$link to=<<infoTiddler>>><$text text=<<infoTiddler>>/></$link> est un tiddler <q>shadow</q>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/Shadow/Source",
"text": "Il est défini dans le plugin <$link to=<<pluginTiddler>>><$text text=<<pluginTiddler>>/></$link>"
},
"$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint": {
"title": "$:/language/TiddlerInfo/Advanced/ShadowInfo/OverriddenShadow/Hint",
"text": "Il est modifié par un tiddler normal"
},
"$:/language/TiddlerInfo/Fields/Caption": {
"title": "$:/language/TiddlerInfo/Fields/Caption",
"text": "Champs"
},
"$:/language/TiddlerInfo/List/Caption": {
"title": "$:/language/TiddlerInfo/List/Caption",
"text": "Liste"
},
"$:/language/TiddlerInfo/List/Empty": {
"title": "$:/language/TiddlerInfo/List/Empty",
"text": "Ce tiddler ne contient pas de champ //list//"
},
"$:/language/TiddlerInfo/Listed/Caption": {
"title": "$:/language/TiddlerInfo/Listed/Caption",
"text": "Listé"
},
"$:/language/TiddlerInfo/Listed/Empty": {
"title": "$:/language/TiddlerInfo/Listed/Empty",
"text": "Ce tiddler ne figure dans le champ //list// d'aucun autre tiddler"
},
"$:/language/TiddlerInfo/References/Caption": {
"title": "$:/language/TiddlerInfo/References/Caption",
"text": "Références"
},
"$:/language/TiddlerInfo/References/Empty": {
"title": "$:/language/TiddlerInfo/References/Empty",
"text": "Aucun tiddler ne comporte de lien vers celui-ci"
},
"$:/language/TiddlerInfo/Tagging/Caption": {
"title": "$:/language/TiddlerInfo/Tagging/Caption",
"text": "Étiquetage"
},
"$:/language/TiddlerInfo/Tagging/Empty": {
"title": "$:/language/TiddlerInfo/Tagging/Empty",
"text": "Le titre de ce tiddler ne sert de tag à aucun tiddler"
},
"$:/language/TiddlerInfo/Tools/Caption": {
"title": "$:/language/TiddlerInfo/Tools/Caption",
"text": "Outils"
},
"$:/language/Docs/Types/application/javascript": {
"title": "$:/language/Docs/Types/application/javascript",
"description": "Code JavaScript",
"name": "application/javascript",
"group": "Développeur",
"group-sort": "2"
},
"$:/language/Docs/Types/application/json": {
"title": "$:/language/Docs/Types/application/json",
"description": "Données au format JSON",
"name": "application/json",
"group": "Développeur",
"group-sort": "2"
},
"$:/language/Docs/Types/application/x-tiddler-dictionary": {
"title": "$:/language/Docs/Types/application/x-tiddler-dictionary",
"description": "Dictionnaire de données",
"name": "application/x-tiddler-dictionary",
"group": "Développeur",
"group-sort": "2"
},
"$:/language/Docs/Types/image/gif": {
"title": "$:/language/Docs/Types/image/gif",
"description": "Image au format GIF",
"name": "image/gif",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/jpeg": {
"title": "$:/language/Docs/Types/image/jpeg",
"description": "Image au format JPEG",
"name": "image/jpeg",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/png": {
"title": "$:/language/Docs/Types/image/png",
"description": "Image au format PNG",
"name": "image/png",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/svg+xml": {
"title": "$:/language/Docs/Types/image/svg+xml",
"description": "Image au format SVG",
"name": "image/svg+xml",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/image/x-icon": {
"title": "$:/language/Docs/Types/image/x-icon",
"description": "Fichier icone au format ICO",
"name": "image/x-icon",
"group": "Image",
"group-sort": "1"
},
"$:/language/Docs/Types/text/css": {
"title": "$:/language/Docs/Types/text/css",
"description": "Feuille de style CSS statique",
"name": "text/css",
"group": "Développeur",
"group-sort": "2"
},
"$:/language/Docs/Types/text/html": {
"title": "$:/language/Docs/Types/text/html",
"description": "Marquage HTML",
"name": "text/html",
"group": "Texte",
"group-sort": "0"
},
"$:/language/Docs/Types/text/plain": {
"title": "$:/language/Docs/Types/text/plain",
"description": "Format texte",
"name": "text/plain",
"group": "Texte",
"group-sort": "0"
},
"$:/language/Docs/Types/text/vnd.tiddlywiki": {
"title": "$:/language/Docs/Types/text/vnd.tiddlywiki",
"description": "TiddlyWiki version 5",
"name": "text/vnd.tiddlywiki",
"group": "Texte",
"group-sort": "0"
},
"$:/language/Docs/Types/text/x-tiddlywiki": {
"title": "$:/language/Docs/Types/text/x-tiddlywiki",
"description": "TiddlyWiki Classic",
"name": "text/x-tiddlywiki",
"group": "Texte",
"group-sort": "0"
},
"$:/languages/fr-FR/icon": {
"title": "$:/languages/fr-FR/icon",
"type": "image/svg+xml",
"text": "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"900\" height=\"600\"><rect width=\"900\" height=\"600\" fill=\"#ED2939\"/><rect width=\"600\" height=\"600\" fill=\"#fff\"/><rect width=\"300\" height=\"600\" fill=\"#002395\"/></svg>\n"
}
}
}
alert-background: #ffe476
alert-border: #b99e2f
alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #dab58b
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #ecd9c4
code-border: #ffffb9
code-foreground: #a60000
dirty-indicator: #ff0000
download-background: #34c734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #e9d3ba
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #aa0000
external-link-foreground: #8c0000
foreground: #510000
message-background: #ecf2ff
message-border: #cfd6e6
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #0cb440
modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #bbb
notification-background: #ffffdd
notification-border: #999999
page-background: #0d3d48
pre-background: #ffffff
pre-border: #cccccc
primary: #0d3d48
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #9b9b9b
sidebar-foreground-shadow: #0d3d48
sidebar-foreground: #debd98
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #ffa928
sidebar-tab-background: #debd98
sidebar-tab-border-selected: #999
sidebar-tab-border: #000000
sidebar-tab-divider: #999
sidebar-tab-foreground-selected: #000000
sidebar-tab-foreground: #000000
sidebar-tiddler-link-foreground-hover: #ffff00
sidebar-tiddler-link-foreground: #d1d0d2
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: #efdecb
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
table-border: #bb4b1c
table-footer-background: #a8a8a8
table-header-background: #fef2a0
tag-background: #c78e50
tag-foreground: #ffffff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #e15b5b
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #f3e6bc
tiddler-editor-background: #f7cfc4
tiddler-editor-border-image: #ffffff
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #c78e50
tiddler-title-foreground: #e66450
toolbar-new-button: #87e377
toolbar-options-button: #ffff00
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button: #000000
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
alert-background: #ffe476
alert-border: #b99e2f
alert-highlight: #881122
alert-muted-foreground: #b99e2f
background: #debd98
blockquote-bar: <<colour muted-foreground>>
button-background:
button-foreground:
button-border:
code-background: #c2dc92
code-border: #ffffb9
code-foreground: #dd1144
dirty-indicator: #ff0000
download-background: #34c734
download-foreground: <<colour background>>
dragger-background: <<colour foreground>>
dragger-foreground: <<colour background>>
dropdown-background: <<colour background>>
dropdown-border: <<colour muted-foreground>>
dropdown-tab-background-selected: #fff
dropdown-tab-background: #e9d3ba
dropzone-background: rgba(0,200,0,0.7)
external-link-background-hover: inherit
external-link-background-visited: inherit
external-link-background: inherit
external-link-foreground-hover: inherit
external-link-foreground-visited: #0000aa
external-link-foreground: #0000ee
foreground: #510000
message-background: #ecf2ff
message-border: #cfd6e6
message-foreground: #547599
modal-backdrop: <<colour foreground>>
modal-background: <<colour background>>
modal-border: #0cb440
modal-footer-background: #f5f5f5
modal-footer-border: #dddddd
modal-header-border: #eeeeee
muted-foreground: #bbb
notification-background: #ffffdd
notification-border: #999999
page-background: #187c87
pre-background: #f5f5f5
pre-border: #cccccc
primary: #36508b
sidebar-button-foreground: <<colour foreground>>
sidebar-controls-foreground-hover: #000000
sidebar-controls-foreground: #c2c1c2
sidebar-foreground-shadow: #187c87
sidebar-foreground: #debd98
sidebar-muted-foreground-hover: #444444
sidebar-muted-foreground: #c0c0c0
sidebar-tab-background-selected: #ffa928
sidebar-tab-background: #debd98
sidebar-tab-border-selected: #999
sidebar-tab-border: #000000
sidebar-tab-divider: #999
sidebar-tab-foreground-selected: #000000
sidebar-tab-foreground: #000000
sidebar-tiddler-link-foreground-hover: #ffff00
sidebar-tiddler-link-foreground: #d1d0d2
site-title-foreground: <<colour tiddler-title-foreground>>
static-alert-foreground: #aaaaaa
tab-background-selected: #efdecb
tab-background: #d8d8d8
tab-border-selected: #d8d8d8
tab-border: #cccccc
tab-divider: #d8d8d8
tab-foreground-selected: <<colour tab-foreground>>
tab-foreground: #666666
table-border: #bb4b1c
table-footer-background: #a8a8a8
table-header-background: #fef2a0
tag-background: #d5ad34
tag-foreground: #ffffff
tiddler-background: <<colour background>>
tiddler-border: <<colour background>>
tiddler-controls-foreground-hover: #888888
tiddler-controls-foreground-selected: #444444
tiddler-controls-foreground: #cccccc
tiddler-editor-background: #f7cfc4
tiddler-editor-border-image: #ffffff
tiddler-editor-border: #cccccc
tiddler-editor-fields-even: #e0e8e0
tiddler-editor-fields-odd: #f0f4f0
tiddler-info-background: #f8f8f8
tiddler-info-border: #dddddd
tiddler-info-tab-background: #f8f8f8
tiddler-link-background: <<colour background>>
tiddler-link-foreground: <<colour primary>>
tiddler-subtitle-foreground: #76567c
tiddler-title-foreground: #d9331c
toolbar-new-button: #87e377
toolbar-options-button: #ffff00
toolbar-save-button:
toolbar-info-button:
toolbar-edit-button:
toolbar-close-button:
toolbar-delete-button:
toolbar-cancel-button: #000000
toolbar-done-button:
untagged-background: #999999
very-muted-foreground: #888888
{"tiddlers":{"$:/plugins/eucaly/flexwidth/config":{"created":"20140905143837494","creator":"EucalyJ","flex-width":"+","modified":"20141004030331552","modifier":"EucalyJ","sidebar-width":"30em","tags":"$:/_flexwidth $:/_macros","title":"$:/plugins/eucaly/flexwidth/config","type":"text/vnd.tiddlywiki","text":""},"$:/plugins/eucaly/flexwidth/history":{"caption":"History","created":"20140902083720188","creator":"EucalyJ","lastupdate":"20141004","modified":"20141004030143956","modifier":"EucalyJ","tags":"$:/_flexwidth $:/_readme","title":"$:/plugins/eucaly/flexwidth/history","type":"text/vnd.tiddlywiki","text":"!!!History\n* 20141004 / ''0.0.4''\n** add CSS rule for sidebarbreakpoint\n* 20140913 / ''0.0.3'' ( 4.9K / 2.5K ) -- for 5.0.17-beta ~\n** stylesheet tagged with {{$:/tags/Stylesheet||$:/core/ui/TagTemplate}}\n** Change ButtonWidget `title` attribute to `tooltip`\n* 20140909 / ''0.0.2'' ( 4.7K / 2.4K )\n** More width option: 15em\n** Update button icon with Unicode char -- http://unicode-search.net/\n* 20140906 / ''0.0.1'' ( 4.4K / 2.4K )\n* 20140905 -- working draft, the previous adoption was posted at [[TiddlyWiki Forum|https://groups.google.com/d/msg/tiddlywiki/yJPSGQflIqM/Y_8jGARq4gQJ]]\n"},"$:/plugins/eucaly/flexwidth/readme":{"caption":"~FlexWidth","created":"20140910024048905","creator":"EucalyJ","lastupdate":"20140909","modified":"20140910024711568","modifier":"EucalyJ","tags":"$:/_readme $:/_flexwidth","title":"$:/plugins/eucaly/flexwidth/readme","type":"text/vnd.tiddlywiki","text":"!![[FlexWidth Plugin|$:/plugins/eucaly/flexwidth/readme]]\n<hr>\n\nThis ''FlexWidth'' plugin provides a handy machenism to ''flexibly tweak sidebar width'' for [[TiddlyWiki 5|http://tiddlywiki.com/]]. \n\n!!!Features\n\n# Add extra buttons next to system ~TopRightBar Icon, such as - `▼` `◀` {{$:/core/ui/TopBar/menu}}\n# `◀` / `▶` to toggle between default and custom sidebar width.\n# `▼` to select different sidebar width.\n<p>** Inspired by [[TW5 tristate Sidebar|http://tw5tristate.tiddlyspot.com/]] </p>\n\n!!!Install\n* Drag&Drop package -- [[$:/plugins/eucaly/flexwidth]] (with documentation)"},"$:/plugins/eucaly/flexwidth/stylesheet":{"created":"20140904154049029","creator":"EucalyJ","list-after":"$:/themes/tiddlywiki/vanilla/base","modified":"20141004024850657","modifier":"EucalyJ","sidebar-width":"30em","tags":"$:/tags/Stylesheet $:/_flexwidth $:/_macros","title":"$:/plugins/eucaly/flexwidth/stylesheet","type":"text/vnd.tiddlywiki","text":"\\define if-fluid(text)\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$reveal state=\"$:/plugins/eucaly/flexwidth/config!!sidebar-width\" type=\"nomatch\" text=\"default\" default=\"default\">\n<$reveal state=\"$:/plugins/eucaly/flexwidth/config!!flex-width\" type=\"match\" text=\"+\">$text$</$reveal>\n</$reveal>\n\\end\n\n<<if-fluid \"\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n.tc-story-river {\n width: calc(100% - {{$:/plugins/eucaly/flexwidth/config!!sidebar-width}});\n}\n\n.tc-tiddler-frame {\n width: 100%;\n}\n\n.tc-sidebar-scrollable {\n float: right;\n width: {{$:/plugins/eucaly/flexwidth/config!!sidebar-width}};\n left: auto;\n padding: 71px 0 0 0;\n}\n}\n\">>"},"$:/plugins/eucaly/flexwidth/TopBarMenu":{"created":"20140904152757311","creator":"EucalyJ","list-before":"$:/core/ui/TopBar/menu","modified":"20140913000355649","modifier":"EucalyJ","tags":"$:/tags/TopRightBar $:/_UI $:/_flexwidth $:/_macros","title":"$:/plugins/eucaly/flexwidth/TopBarMenu","type":"text/vnd.tiddlywiki","text":"<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$reveal state=\"$:/plugins/eucaly/flexwidth/config!!flex-width\" type=\"match\" text=\"-\">\n<$button set=\"$:/plugins/eucaly/flexwidth/config!!flex-width\" setTo=\"+\" tooltip=\"Custom width\" class=\"tc-btn-invisible\">▶</$button><!--[+]-->\n\n</$reveal>\n<$reveal state=\"$:/plugins/eucaly/flexwidth/config!!flex-width\" type=\"match\" text=\"+\" default=\"+\">\n<$button popup=\"$:/flexwidth-PopupState\" tooltip=\"Select width\" class=\"tc-btn-invisible\">▼</$button><!--[v]-->\n<$reveal type=\"popup\" state=\"$:/flexwidth-PopupState\" position=\"below\">\n<!--div class=\"tc-drop-down\"-->\n<div class=\"tc-popup tc-tiddler-info\">\n\n!!!Sidebar width <br/>\n<$list filter=\"15em 20em 25em 30em 35em 40em default\" variable=\"sel-w\">\n <$radio tiddler=\"$:/plugins/eucaly/flexwidth/config\" field=\"sidebar-width\" value=<<sel-w>>> <<sel-w>></$radio><br/>\n</$list>\n<br/><$link to=\"$:/plugins/eucaly/flexwidth/readme\" tooltip=\"ReadMe\">[?] ~FlexWidth</$link><!--[?]-->\n</div>\n</$reveal>\n<$button set=\"$:/plugins/eucaly/flexwidth/config!!flex-width\" setTo=\"-\" tooltip=\"Default width\" class=\"tc-btn-invisible\">◀</$button><!--[--]-->\n</$reveal>\n</$reveal>\n"}}}
{
"tiddlers": {
"$:/plugins/gt6796c/rocklib/widget-tools.js": {
"type": "application/javascript",
"title": "$:/plugins/gt6796c/rocklib/widget-tools.js",
"module-type": "library",
"text": "/*\\\n title: $:/plugins/gt6796c/rocklib/widget-tools.js\n type: application/javascript\n*/\n\n(function() {\n\n\"use strict\";\n\n function Rocklib()\n {\n this.uniqueID = 1;\n this.hue = .2;\n };\n\n // tries to un-parse the wikitext. of dubious value\n Rocklib.prototype.getScriptBody = function(src,attr)\n {\n var scriptBody= src.getAttribute(attr, src.parseTreeNode.text || \"\");\n\n if (src.parseTreeNode.text) {\n scriptBody = src.parseTreeNode.text;\n }\n else if (src.parseTreeNode.children)\n {\n var kids = src.parseTreeNode.children;\n for (var k in kids)\n {\n var kk = kids[k];\n switch(kk.type)\n {\n // no wikiparsing found\n case \"text\":\n scriptBody += kk.text; break;\n // internal link, make it a permalink reference\n case \"link\":\n scriptBody += \"#\" + kk.children[0].text; break;\n // -- gets interpreted as an HTML element, we don't want that\n case \"entity\":\n switch(kk.entity)\n {\n case \"–\":\n scriptBody+=\"--\"; break;\n };\n break;\n // just re-write it back out\n case \"element\":\n switch (kk.tag)\n {\n case \"a\":\n scriptBody+=kk.children[0].text;\n }\n };\n }\n }\n\n return scriptBody;\n };\n\n /**\n * Runs through lots of ways to get options. It can pull them from a named data Tiddler, from the fields of the\n * Tiddler, and from the attributes of the widget specified by 'tag'. Any value pulled is treated as JSON first\n * and then as straight text.\n * @param src\n * @param tag\n * @param options\n * @returns {*}\n */\n Rocklib.prototype.getOptions = function(src, tag, options)\n {\n try {\n // try to set options from fields on tiddler first\n // [tag-xxx]\n var tt = src.getVariable('currentTiddler');\n if (tt) {\n var t = src.wiki.getTiddler(tt);\n if (t)\n {\n // this looks for fields that start with our tag\n // and then maps a.x to aX since something is\n // unCamelCasing the vars\n for (var f in t.fields) {\n var fi = f.indexOf(tag);\n if (fi != 0) continue;\n var k = f.substring(tag.length + 1);\n var cap = k.indexOf(\".\");\n while (cap > -1) {\n if (k.length < cap+2) break;\n k = k.substring(0, cap) + k.charAt(cap + 1).toUpperCase() + k.substring(cap + 2);\n cap = k.indexOf(\".\");\n }\n var v = t.fields[f];\n // try as JSON\n try {\n options[k] = JSON.parse(v);\n }\n // last attempt is just a string\n catch (ex) {\n options[k] = v;\n }\n }\n }\n }\n // treat any attributes as JSON representations of options\n // for the object\n for (var att in src.attributes) {\n\n var attval = src.getAttribute(att);\n // allow for data from named tiddlers\n if ($tw.wiki.tiddlerExists(attval))\n {\n var data = $tw.wiki.getTiddlerData(attval);\n options[att] = data;\n }\n else {\n // try as JSON\n try { options[att] = JSON.parse(attval); }\n // last attempt is just a string\n catch (ex) { options[att] = attval; }\n }\n }\n }\n catch (ex) { console.error(ex); }\n\n return options;\n\n };\n\n /**\n * Retrieves a canvas to work with based on the calling functions need of a \"div\" or \"canvas\" element\n * @param src\n * @param tag\n * @param type\n * @returns {Element}\n */\n Rocklib.prototype.getCanvas = function(src, tag, type) {\n type = typeof(type) === \"undefined\" ? \"div\" : type;\n\n var height = src.getAttribute(\"height\");\n var width = src.getAttribute(\"width\");\n\n var canvas = src.document.createElement(type);\n var style = \"\";\n if (type === \"canvas\") {\n if (width) canvas.width = width;\n if (height) canvas.height = height;\n }\n else {\n if (height) style += \" height:\" + height;\n if (width) style += \" width:\" + width;\n if (style) canvas.setAttribute(\"style\", style);\n }\n canvas.setAttribute(\"id\", tag+\"_\" + this.uniqueID);\n\n this.uniqueID++;\n return canvas;\n };\n\n /**\n * based on http://martin.ankerl.com/2009/12/09/how-to-create-random-colors-programmatically/\n * @param s\n * @param v\n * @returns {string}\n */\n Rocklib.prototype.nextColor = function(s, v)\n {\n var golden_ratio_conjugate = 0.618033988749895\n this.hue += golden_ratio_conjugate;\n this.hue %= 1;\n var rgb = this.hsv_to_rgb(this.hue, s, v);\n return \"#\" + rgb.r.toString(16) + rgb.g.toString(16) + rgb.b.toString(16);\n };\n\n\n /**\n * Taken from http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately\n */\n /* accepts parameters\n * r Object = {r:x, g:y, b:z}\n * OR\n * r, g, b\n */\n\n Rocklib.prototype.rgb_to_hsv = function (r, g, b) {\n if (arguments.length === 1) {\n g = r.g, b = r.b, r = r.r;\n }\n var max = Math.max(r, g, b), min = Math.min(r, g, b),\n d = max - min,\n h,\n s = (max === 0 ? 0 : d / max),\n v = max / 255;\n\n switch (max) {\n case min: h = 0; break;\n case r: h = (g - b) + d * (g < b ? 6: 0); h /= 6 * d; break;\n case g: h = (b - r) + d * 2; h /= 6 * d; break;\n case b: h = (r - g) + d * 4; h /= 6 * d; break;\n }\n\n return {\n h: h,\n s: s,\n v: v\n };\n };\n\n /**\n * Taken from http://stackoverflow.com/questions/17242144/javascript-convert-hsb-hsv-color-to-rgb-accurately\n */\n /* accepts parameters\n * h Object = {h:x, s:y, v:z}\n * OR\n * h, s, v\n */\n Rocklib.prototype.hsv_to_rgb = function(h, s, v) {\n var r, g, b, i, f, p, q, t;\n if (arguments.length === 1) {\n s = h.s, v = h.v, h = h.h;\n }\n i = Math.floor(h * 6);\n f = h * 6 - i;\n p = v * (1 - s);\n q = v * (1 - f * s);\n t = v * (1 - (1 - f) * s);\n switch (i % 6) {\n case 0: r = v, g = t, b = p; break;\n case 1: r = q, g = v, b = p; break;\n case 2: r = p, g = v, b = t; break;\n case 3: r = p, g = q, b = v; break;\n case 4: r = t, g = p, b = v; break;\n case 5: r = v, g = p, b = q; break;\n }\n return {\n r: Math.round(r * 255),\n g: Math.round(g * 255),\n b: Math.round(b * 255)\n };\n };\n\n exports.rocklib = Rocklib;\n\n})();\n\n"
},
"$:/plugins/gt6796c/rocklib/license": {
"title": "$:/plugins/gt6796c/rocklib/license",
"text": "The MIT License (MIT)\n\nCopyright (c) 2016 Nathaniel Jones\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n"
},
"$:/plugins/gt6796c/rocklib/readme": {
"title": "$:/plugins/gt6796c/rocklib/readme",
"text": "\nThis plugin packages [[rocklib|https://github.com/gt6796c/rocklib]] for use by other plugins. It does not provide any end-user visible features.\n\nNo user-visible elements.\n\nprovides the following functions:\n\n;getScriptBody(src, att)\n: attempts to pull the text out of ``src`` element's body or the specified attribute ``att``\n\n;getOptions(src,tag,options)\n: in the case of a widget, adds all of ``src`` element's attributes into the ``options`` object\n: in the case of a Tiddler, adds all of the fields that begin with ``tag`` into the ``options`` object (minus the ``tag-`` prefix)\n: All options are first treated as Data Tiddler Names, then JSON, and finally as plain text\n\n;getCanvas(src,tag,type)\n: creates a uniquely-named \"canvas\" which may be of type ``type``. Supported types are ``div`` and ``canvas``\n: The height and width attributes from the ``src`` element will be applied to the canvas\n\n;nextColor(s,v)\n: returns a random-ish color string from the same palette as specified byt the ``s`` saturation and ``h`` hue.\n: The color is in the form of ``#rrggbb``\n\n;rgb_to_hsv(r,g,b)\n: returns array of [hue, saturation, value]\n: r can be array of [r,g,b] or individual parameters can be used\n\n;hsv_to_rgb(h,s,v)\n: returns array of [red, green, blue]\n: h can be array of [h,s,v] or individual parameters can be used\n"
}
}
}
/* details and summary colours */
details {
background-color: <<colour background>>;
color: <<colour foreground>>;
}
details summary {
background-color: <<colour dropdown-tab-background>>;
}
details.notification summary {
background-color: <<colour notification-background>>;
/* TW leaves color undefined/uses foreground */
}
details.warning summary {
background-color: #ffbbaf;
color: #000;
}
details.success summary {
background-color: #88edc5;
color: #000;
}
details.bleuet summary {
background-color: #ccddff;
color: <<colour foreground>>;
}
/* details and summary */
details {
transition: height 1s ease;
padding: 0 0.5em 0 0.66em;
margin-top: 0.66em;
margin-bottom: 0.66em;
}
details + details {
margin-top: -0.46em;
}
details[open] {
padding-bottom: 1em;
}
details:not([open]) {
cursor: pointer;
}
details > summary {
display: list-item;
margin: 0 -0.5em 0 -0.66em;
padding: 0.2em 0.5em 0.2em 0.66em;
padding-left: 1.76em; /* adjust for indentation */
text-indent: -1.1em;
cursor: pointer;
}
details[open] > summary {
margin-bottom: 1em;
}
details[open] > *:first-child:not(summary) {
margin-top: 1em;
}
/*\
title: $:/plugins/telmiger/details/details.js
type: application/javascript
module-type: widget
Details widget v 0.8
Will output an HTML 5 <details> section including a <summary>
```
<details>
<summary>This sums it up</summary>
All the details follow here.
</details>
```
|Parameter |Description |h
|summary |Optional text to display as summary. Wins over field (see below). |
|open |Optional initial state, set to "open" to show details on load. Defaults to "". |
|state |An optional TextReference containing the state. Wins over open. |
|field |Optionally, the summary is taken from the field with this name in a given tiddler. Defaults to "title". |
|tiddler |Optional title of a tiddler to watch, connected to field. Defaults to current tiddler. |
|class |Optional CSS classes to be assigned to the details tag. |
\*/
(function(){
/*jslint node: true, browser: true */
/*global $tw: false */
"use strict";
var Widget = require("$:/core/modules/widgets/widget.js").widget;
var DetailsWidget = function(parseTreeNode,options) {
this.initialise(parseTreeNode,options);
};
/*
Inherit from the base widget class
*/
DetailsWidget.prototype = new Widget();
/*
Render this widget into the DOM
*/
DetailsWidget.prototype.render = function(parent,nextSibling) {
// Save the parent dom node
this.parentDomNode = parent;
// Compute attributes
this.computeAttributes();
// Execute logic
this.execute();
// Create elements
this.detailsDomNode = this.document.createElement("details");
if(this.detailsClass !== "") {
// this.detailsClass += " ";
// this.detailsClass += "tc-details";
this.detailsDomNode.setAttribute("class",this.detailsClass);
}
if(this.detailsOpen == "open") {
this.detailsDomNode.setAttribute("open","open");
}
if(this.detailsSummary !== "") {
this.summaryDomNode = this.document.createElement("summary");
// this.summaryDomNode.setAttribute("class","tc-summary");
this.detailsDomNode.appendChild(this.summaryDomNode);
this.summaryDomNode.appendChild(this.document.createTextNode(this.detailsSummary));
}
// register an event listener
/* Maybe this can be reactivated later, see below.
if(this.detailsStateTitle) {
$tw.utils.addEventListeners(this.detailsDomNode,[
{name: "toggle", handlerObject: this, handlerMethod: "handleToggleEvent"},
]);
}
*/
// As iOS mobile browsers lack support of toggle events on details
// we emulate the toggle event using click
if(this.detailsStateTitle && this.summaryDomNode) {
$tw.utils.addEventListeners(this.summaryDomNode,[
{name: "click", handlerObject: this, handlerMethod: "handleToggleEvent"},
]);
} else {
if(this.detailsStateTitle) {
$tw.utils.addEventListeners(this.detailsDomNode,[
{name: "click", handlerObject: this, handlerMethod: "handleToggleEvent"},
]);
}
}
// Insert the details into the DOM and render any children
this.parentDomNode.insertBefore(this.detailsDomNode,nextSibling);
this.renderChildren(this.detailsDomNode,null);
this.domNodes.push(this.detailsDomNode);
};
/*
Retrieve the value of the summary
*/
DetailsWidget.prototype.getSummary = function() {
var summary = "";
if(this.summaryTitle === "Tiddler not found" && this.summaryField === "") {
// nothing defined: leave empty
summary = "";
} else {
// tiddler defined? use defined field or title
if(this.myTiddler) {
if(this.summaryField === "title" || this.summaryField === "") {
summary = this.summaryTitle;
} else {
if(this.summaryField === "text") {
// getTiddlerText() triggers lazy loading of skinny tiddlers
summary = this.wiki.getTiddlerText(this.summaryTitle);
} else {
summary = this.myTiddler.fields[this.summaryField];
}
}
} else {
if(this.summaryField !== "" && this.summaryField !== "text") {
// try defined field in current tiddler
var tiddler = this.wiki.getTiddler(this.getVariable("currentTiddler"));
summary = tiddler.fields[this.summaryField];
} else {
summary = "";
}
}
}
return summary;
};
/*
Retrieve the value of the state text reference
*/
DetailsWidget.prototype.getStateFromReference = function() {
var state = this.detailsStateTitle ? this.wiki.getTextReference(this.detailsStateTitle,"",this.getVariable("currentTiddler")) : "";
return state;
};
/*
Check all open signals, state fields/tiddlers get priority
*/
DetailsWidget.prototype.getOpenState = function() {
var result = "";
if((this.detailsOpenDefault !== "" && this.detailsOpenDefault !== "no")
|| this.detailsState === "open") {
result = "open";
}
if(this.detailsStateTitle !=="" && this.detailsState !== "open") {
result = "";
}
return result;
};
/*
Update the state text reference after click event
*/
DetailsWidget.prototype.updateState = function(openState) {
var fieldValue = "false";
var currentTiddler = this.getVariable("currentTiddler");
// get the title for the (existing/new) tiddler
var tr = $tw.utils.parseTextReference(this.detailsStateTitle);
var tidTitle = tr.title || currentTiddler;
// is it an existing state tiddler?
var isStateTiddler = (tr.title === this.detailsStateTitle);
var hasStateTiddler = this.wiki.tiddlerExists(tr.title);
var currentStateTiddler = (tr.title === currentTiddler);
if(isStateTiddler || hasStateTiddler || (currentStateTiddler && tr.field !== "text")) {
// Set the state field (but never overwrite the current tiddler’s text field
this.wiki.setText(tidTitle,tr.field,tr.index,openState);
} else {
if(!hasStateTiddler && tidTitle !== currentTiddler) {
this.createTiddler(tidTitle);
this.wiki.setText(tidTitle,tr.field,tr.index,openState);
} else {
console.log ("Something went wrong in updateState");
}
}
};
/*
Create a tiddler with a title only
*/
DetailsWidget.prototype.createTiddler = function(tidTitle) {
this.wiki.addTiddler(new $tw.Tiddler(
this.wiki.getCreationFields(),
this.wiki.getModificationFields(),
{
title: tidTitle,
tags: []
}
));
};
/*
Set openState according to click
*/
DetailsWidget.prototype.handleToggleEvent = function(event) {
// check if an open attribute is present
var newState = this.detailsDomNode.open ? "" : "open";
// update only, if the node has a new state
if(newState !== this.detailsState) {
this.updateState(newState);
}
};
/*
Compute the internal state of the widget
*/
DetailsWidget.prototype.execute = function() {
// Get the parameters from the attributes
var tryTiddler = this.getAttribute("tiddler");
this.myTiddler = this.wiki.getTiddler(tryTiddler);
this.summaryTitle = this.myTiddler ? tryTiddler : "Tiddler not found";
this.summaryField = this.getAttribute("field","");
this.detailsSummary = this.getAttribute("summary") || this.getSummary();
this.detailsStateTitle = this.getAttribute("state","");
this.detailsState = this.getStateFromReference();
this.detailsOpenDefault = this.getAttribute("open","");
this.detailsOpen = this.getOpenState();
this.detailsClass = this.getAttribute("class","");
// Construct the child widgets
this.makeChildWidgets();
};
/*
Selectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering
*/
DetailsWidget.prototype.refresh = function(changedTiddlers) {
var changedAttributes = this.computeAttributes();
if(changedAttributes.tiddler || changedAttributes.field || changedAttributes.summary || changedAttributes.state || changedAttributes.open || changedAttributes["class"]) {
this.refreshSelf();
return true;
} else {
var refreshed = false;
var testState = this.getStateFromReference();
if(testState !== this.detailsState) {
// state change
this.refreshSelf();
refreshed = true;
}
return this.refreshChildren(changedTiddlers) || refreshed;
}
};
exports.details = DetailsWidget;
})();
{"tiddlers":{"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Brands.css":{"title":"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Brands.css","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* autoimported retrieved from 'fontawesome-free-5.8.2-web' */\n@font-face {\n font-family: 'Font Awesome 5 Brands';\n font-style: normal;\n font-weight: normal;\n src: url('data:application/font-woff;charset=utf-8;base64,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') format('woff');\n}\n\n.fab {\n font-family: 'Font Awesome 5 Brands';\n font-style: normal;\n font-weight: normal;\n}\n"},"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Regular.css":{"title":"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Regular.css","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* autoimported retrieved from 'fontawesome-free-5.8.2-web' */\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 400;\n src: url('data:application/font-woff;charset=utf-8;base64,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') format('woff');\n}\n\n.far {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 400;\n}\n"},"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Solid.css":{"title":"$:/plugins/TheDiveO/FontAwesome/fonts/Font Awesome 5 Free Solid.css","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* autoimported retrieved from 'fontawesome-free-5.8.2-web' */\n@font-face {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 900;\n src: url('data:application/font-woff;charset=utf-8;base64,d09GRgABAAAAAXgAAA0AAAAC2DgBSbrhAAAAAAAAAAAAAAAAAAAAAAAAAABGRlRNAAABMAAAABoAAAAcik7xNkdERUYAAAFMAAAAHgAAAB4AKgOxT1MvMgAAAWwAAABPAAAAYEOD5ZxjbWFwAAABvAAABkEAAAsSQPJJQmdhc3AAAAgAAAAACAAAAAj//wADZ2x5ZgAACAgAAUXOAAJ7NFjMBploZWFkAAFN2AAAADUAAAA2FNfDKWhoZWEAAU4QAAAAIAAAACQEQwXsaG10eAABTjAAAAO5AAAOrDgHAsxsb2NhAAFR7AAACYUAAA6wBDEq0G1heHAAAVt0AAAAHwAAACAEDQDsbmFtZQABW5QAAAIPAAAFJUe2Lstwb3N0AAFdpAAAGlkAAC1tHQ2Q6HicY2BgYGQAghsJmjlg+nvyIyj9HABKwgf8AAAAAQAAAAwAAAAWAAAAAgABAAMDqgACAAQAAAACAAAAAHicY2Bh/MHcwsDKwMDow5jGwMDgDqW/MkgytDAwMDGwMjPAAKMAAwIEpLmmMDR8YPhhx3jg/wEGPcYzDCENQDVghVaMS4GUAgMjAHg3Dj0AeJzt1mtwlsUVB/AngRjJnrPnVcSA0hSwddRWwGIFvHAZUBAkhaY6wZgIiKl4aSnScguVQBAogmAEhAZIwi2ARK4REnMhJmQoJgIqlxAS7iCXsrvPPrsvEUifvrzDSGfaj/aL/5ndmTOzH86Z+c2cdRynmXPjtHUi/NuJAb+KCNXNWwjHiRwf6Ti3O+NFpIgSXLQUrUQb0VbEiR6ir4gXSSJF/EGkiSniXTFLzBHzxQLxkVgmckS+2CxqxD5RL46Jk+KC0OK6ZJLLO2RbGSc7yI7yEflr+bjsIfvKZ+RAGS+HyhT5qpwmZ8pMuUAukovlUpkvN8otskjuljXykKyV9fKMvCiNvK4iVLRiqrWKUw+rx1R39ayKV8nqTTVOTVSz1Rz1gVqglqhlaqXKUwVqhypSxapc1aj9qk6dVmfVeXVJKWXUFXXdjXLBjXMfcLu5SW6yO8wd4U51V7ml7k630t3tVrv73KPuMfe0e8ltdK+5Tfo2HdCP6sf04/pJ3VP31n3007qfHqjj9WCdoBN1sn5Zj9Cp+i09Ro/VE/Q7eqqeoWfrufpDvUgv0xv0Fl2oS3SZLtcVukZ/pY/oBn3Sa+HN95Z6ud4ab5O31dvuFXuV3h6vxtvvHfRqvTqvwTvunfLOehe8f3rXTMC0NG3MT01709l0NU+a3qav6WcGmN+YIeZ5k2hSzAiTat4wb5k/mrHmL2aCSTPvmAwzyyw0fzc5Zo1ZazaYT02RKTFlpsJ8afaZr8w35qA5bOrNSXPGnDOXjDKN5qp1LFhuW9lYG2c72AdtJ/uU7WX72H52kE2wL9gk+7IdZd+wb9vJNt1m2Jn2PfuhXWizbLbNtavteptvC2yhLbZlttxW2n/YGrvX7re19oy9aC9bZT1r7XfB6GAgeGfw7mDr4EPBTsEeTU2OIxzRXESLgC8vNiSvvegt+ovBvrxhYrQvb1pYXqYvL0tkixVioygTe8UBX94JcVYIEZSORBmQrX157eTPZGfZRXaVT8levrwBcpAcLJPkMDlVTpfzw/Ky5Hpf3ma5XZbJ6pC8OnlMnvflBZWjmqsYFavuUe1VF9VN9VKD1BBf3p/UhJC8eSF5S1W2WqO2heXtVFVqrzpyU55UXkhepNsiJK+rmxiWl+7LK/mf8rr48rr/F3kv+fKG+/Je06N9eeP0ZJ2uM3x5c/Q8vTAsb7suDsur9uUd0PX6hG70Yr1Mb7m30lvnbfEKvEKv1Kvyqr29YXn135N39XvyOvrynrhFXoIvL9mXN9KMuilvvJnky0s3M3x5H5nssLyCsLzPb5F31JwIybtoxL/lmSbLfHl3heU9YDvaJ26R96JNCckbY9PsFDvNvuvLywzJW+7LW2nX2g12m93hyyv15VXY3faLkLyD9tQt8qKC5Mtr5ct78Ia8QLNAZCAi4FATXaer9B1dIUuaXJIk6DJdpPN0jk7TCTpODVRHR6iWDtMXtIeqaBdVUjmVUBEV0g7aTptpE22kTyifNtDHtI7WUh6topW0gnIph6ZTBqXRJJpIE2gcvU6j6DUaScMomX5HCfRbGkLx9DT1pT7Um3rSo9SFHqFf0i/o59SB2tGdxAn5NX6VN/Ig11xxyS/zk/w4P8YbeB0/xA/yL3kV38UreDkv5cW8iH/Kt/JNPJsv4rP463wU/z1P5f35/Zxz5DE8mjfnEWhQo8Bv8SgewVr8GvfgWszD1bgKV2Au5mA2LscsXIKLcRFm4jx8H+fibPwbzsQZOB2nYjpOwcmYhpNwIo7FVByOyZiEL+JQTMTB+BwOwP74DHbG+7ADtsd2GIc/wbZ4L96DbbA1xmJLvAMD6I+GgDEYjVEQhDNwChqgFg5DNVRBBZRBCXwGhVAA22ArbIZ8WA/rIA/WwGrIhRzIhuWwFLJgCcyFOTALMmAaTIHx8Gd4G8bAaEiFV2EkvAIjYDikQBIMhUR4HhLgORgIz0JP6AHdoRv8CjrBQ3A/3AttIBbuAoIYuB2ioBlrZFeYyy6wb9k5dpadYvXsKDvEDrBv2NdsP9vH9rDdrIrtYpWsgu1kZayUlbBCtol9zNaxPLaarWK5bDH7gM1n77O57K9sInvzxhb+MT/mh0/Ebc5NfhH+t8+J/M8HP3BD/4f8C1uFaMYAAAAAAAAB//8AAnicrL0JgBxHeSjc1Vf1NT090z3Tc+3sHDvH3rM7OzOrazVaXSvJxwokWwZHXtuyJWzFyAfYGGNW4IA4ArJNjAnXEggYfkP0CIchENaO83ACOCbhSiBE5OVw8pIX/Q9eYggeva+quufalWw/Iu1UV1VX111ffd9X3/cVh87/4vwqL6NVzuU4hCPV6WjEGUW52kx9E6qVivVqdjqK/v17syFXOae4odnvWSEXfcUNobd8b9UNKUrIXf2eNTLCwT/EcZAXh57kUhAIOXKuOFOvTrs1KdL2h2YahXqU52YXZ2fLwdB53xNFTSuBVloryUKhXhC/tO+fmQfJLj4s2RwPeX8N8l7l4lyW4wpRJ4jk3CQqbkFynuRN6o2hgOJ0faaYkx30c4xT2MFH8OzCFXff/ejdY5aGf3HTvn037ZMgOoXhjWaNwYu7r1iYxXgfeQXVPv/8+bO8gD7GhSGQRl4p9UY9Oogacwg9PSmPPq4ltMdH5cnhm4uOU7wZnSzfM/qUpj01ek85r5Ycp6RCXwTPf5mfQo9zMcinPj3Ik7zcqDyJsFzciqBntyIkqGV12wOOYd4UFzKhN785lBHiN5mG8wD6TDh8X5QvmkcfsF11xw4tZj9w1CzyUdLPpC9WEfznMJfkuCHWfAdPRweQI+ezOegUMnzR6QaK0BYXG5ennNaKk7q8Ecpfkl+ljb358saIk0o5I43LLYvkq7LM0TI3yW3idnMv567hbubu5N7MvRvaAB0MQzqKajMwPQZQ1ntC59dCpLSIswlNb0FZ7+mnY6H1/dIF0rgv4lv0rGaammKUjdYqOIofQk0StQxO3x+yjKeM9t+JdRIsm1rrjGY6huGQn6mhxU6o9U2a6HiX++SSYSwZn6PuO9e85TgRxuks9OcKF+QGoU+3Qi9W2SBBM+gg5XuDVYH0ZCeuJvlj6Y0tKq+ShhJnl+/RYt4THFRux6IVU1shnh6n9Vw7FOvE0rFv1zXDVbh57mXcddxt3Ju4BzjOjnSqSKriOibqDkcafdXOOybfkwD3tRP3fVDoayfuCxf60v+Wqd1A6g7OF7Au30j84GQ60RkRK5If/7QXSRvtp0Bvbsd2nNa36AfUQacWiY84v4BCmI/1GfVJqix63lPeE5zH2u+7Ilc63mPt92S5yWvmyOWw6rhGX4/395fd15+298z686TLD/Cg5va97+q/Lu8b2t3weTqDkn6PeL6/18xY58Wz7d75VLtJ6JFOQ1vNjh890k7yWCeW7Rkcgva/kXOg1aXizFYCLFGDOADSAPp+5hMYF3BEOXFOiYAHt/4SR9WP4ygeUkicMgTe1l8pJJ/z57kguhbdyuUhL9ffIjCF4DME5vbl/tMjqhrVEuqRI2pCi6rk2RNevUC8H4Yyhfa+lORq3BaoBNk+6Ra6BWAjdDpso/CbHoClb+P1tixSlSLds6LTqGLMGhn4eY8/WbOFHcGPLJ5YXDyBuK5kxmzr+/072hHsPE0SLnbVUecK3LhXR1a3F1enRwz4u3hdoB4XqwPP4fNfR89BHYa5DXRnhRmez01A58whurlGZWwKESdana7XZoqlCbQVzSHcuwwi6HRl9v6j22/bnpjIqBHJEkVsxUPadbt2Xj+UwaJoSZFrTC1D5hc46O25m7ccvX/+th3Dl8y5sqSmlLBkDORKkZ3XX7e7tDsmhZWUKv2AJD/HVqTExQCHOQb17KxHrtEPvfrCBX9vZHthtfEC4R9gVcUV4iy2fajS9p5Zx7ei4lXyBGdJxUvEC86qiltn6dcZGt9apoFlFsjQALyn27p1/nF0Dn2N28ztIPgTljHgIjKG4ZZL0IxiiTxLgJoUZ2AdNgDjGUT1Rm2mUXehtVGXPN1oEMGXPor1j6oQKsrKaDKnNupaLjmiysWQoI4Iwgh9o46QNw2180aWfzw/OTk/eZ+o1YaxGHeNKY03DF6bMty4iIdrqhQPDYXi9LUUW/NaE+P5/PgkyQPadP48wM5tADvTpE10aXfg5gTZouTOOBVgZgfJLIfZnvM9NQ8i1Hz4imKiIj6m4hNYBU+T9CB40Y9EIS5KkvA/IfJ/CqIsxgXxeTMXeAWWZiWMxnj+4Y9hVZOX4D2MjKyp+GNTkEwYlIQneP4JQRokXz2j63v3SBhL72ColnL+KVgTjwEeB9h3GHA4giZLUajTZBt/ct/39P33P30/mtIAaVWbRsWQ0GP3k7hvYbWk4Ym3w+KURQKLzv8nZLoT8Lcc3cFhlKHtpZkiZGSiCIYF3rChndiJQmPrtRKgy9ARNAB9Aanc6TlA+ukHcgQ7aVTlt+Bw6EldxTtELOlPhsL4nYp9nSAJafhdZyufFgG+lmWM4FnGDWi+rMoT8APfuDVwnQwR4nUDFmraLnSg6NozY5KiSGP4jKRIFVlR5Ap4KK60SmFUhBvlqoB/cjbFlcDxcXACSesUbrRRXDc6vZUkkT1YVfeeP4Dd5VBAUx+WLflhVQscMtE0bGAVssgfnAqOBKce1Mx7DMswrEuoi1ZN7ZE4pIfkcdisWqdOkLTgTAWDU+ZNJI33R/Bv6Ocm9HMUZh70chfaDUCLJ7usK+GqW21US/ysAqh3xkkpN4kBCyNDd+XWdw6+PnMi8/qD3zSCJwkKfjJofFjS5IAyutxsLjNaCp9/ikfQH5sp7t0DbypVdwI2F5kCy0adgmtYx6bAACpEpJFbmpkCH/oZmW5PEQfdED1Y2nP06J7UDkcUJTEniObw+ISz/fb5B24c3LPNgRFGq17iSQlLmYmjDxxNhAVIKclCIBbSAJLe+IA77L4MSdijQ+iYjXAHoJakQLrTdVWVVRQz2DdTm0O0bgKpNgXoUGtCQpRcZ4p+1YP1ldIIfQnqYniVuhEasPFIAMCBhENvewWp81c3HDFpGFlve0XllkGxO3nkCvT7UFOjq0WXz6rQSnTl7dCK1u+1Q9Whl/UlhDHAXbiZC7tBCeblVm4fbBJZD5BnGWDnvLkn9z0bXXRM5AJ+9ExriUwBBNRZqvXpnOv2/j3XTbWwvwykpt8Qig4do+n2dLkfprvxgS63m2YkLeEK/bRijWz9QM3VyAICMHjazz/lxK6696rFkc0jZ1POKgmDs7D1qqu2LiykR0bSC2SuKnQePA49BHMVdnPIGxN8Ip/DEX/fg+GvuzD2Dow5lIUOV3YG0+amrUPHEnMzpmYBbpmLAR4gZncfQ7+WweHwT0PqcN49TPHKN4UGYlmE0hGe1zQjT3kNbGymKOQkrQmiHrLE9drSgzlPogkE7x/6zkOaYvLbxik+G5vM3vqhW7OTLDC+jTcVIJ8euqmihEQ8vtXUgCrM8ZffeuvlfI4Gto5jMaRUbmI8j18iDt3HhQBi1el0mCQzmlXi+3o6rV/FCAr0Ot2wWmcsQ7/K1E4D9kvG5BfoJP02v97X0F0OrJ0J2IfrM4ARzfXk951IPB5RHFVSIxFwHHRXb/62MVwZNiQ5ZEvGhCHZIaA1KJx9GmDXZ6HMEjfHLa5XbqFT7hzPkLE5QAghChAEEgebK41zo/iiVUTzm3fs2Kw4uqhmJxMbplRRd8rjw6oNO4FqDwSDA7Yqao4yfG1/W/r66p2le991b0mWLEeKbtlb2nQsKzmW9MTSy+OypKi2bAyNTYwNGbIdkuR4fZ2GU/oW5v8KYMMY8OAgZ8NKyEMfjHLcFlSNlCLVWqMayTdq+QiqsXABwhDMQ5D8z5fgt7rcXF4Fp0UclMksZZpLzUwG/s6SmGZzFX7wkvqXM0urmeVMJsNZbd5Kd/lJWIusDpMAWxqw623luKlQ9Vf6H1bVsDqkJsNJlfxLhJNh8k8NJ0lEGC23ln+VXzfcD3Fx0nt0uRGSwd+pPfiXcr7pmN8xzW+aZXjcV06lyqknv+mkIFCGSHg8kyKRbTpq2ctzuJfDx5azj3ZKQLGUYLZNIkanoP/tl0DLe4IWw0+TqM8kEn88RarwY79AhxT/AC31dyDiM8m9ySdJdThvbfgwMg8jMgu1ADjmuB062gf6UmR93pRdbGTpvoxWVUFQAeV4rDw7W0YLgFGsyt+R23/PC0LrfwRsO3DIwPqMrugA/yBdszxrarc4suzIu6h7nstk7ITNeKuI9A8QKZH23lOCrQBwi9UmeoYC7MoJvx10fMjcqpB2tCFgG3vyFnu1RrMiCIRQy0YKNRqfj4g+jr+aLAAJYgdaqwEbKJFC0g4gO6BOqM3zUCmIWUVFxzQdE3GFJKDKS6RRQH2cSBZWAjakC7R+c2npLMRUVhZMkpKONYPdCcBURxiv2O/eTQjgC4HYgz14HWMgT/McNJLufYcMMRDW7g3GZOOQkzq168iuXUeKMwszMwuo0jpLd1TomKxqKiEzm/oeeb3rA+T1DJ2/DBaMctPtvbCzc5TyuNofZ9MpaJeqQCMBtksJs1PEcRNvT8baoeRJ0VgwxJP/eP2wzAtSRsWUCANn//6OH71G11vveM89IfhH574C9bkL6pPjxgAKcAVKHeOu4kP5zrZGXwJ4InRyqZi3AWUnGDtEoKlscbqULD9Jyslmifvl6XRmKPWVS+OpuOmOW3Zu4OB+55v6bGlsu66wymyFtFg1jNmhwerJWwcTQwHc+jM5FxnInST7WxTqNgJ1y1A6GNYkqdVWsqvaBN3cyvZXGi98C2u8zAc+rKgI84HyXE5SROJbYRHDcxkDZwLkh5qSKjFva9Xjaf8lvx19ghvndsOelO0egHxozXiE8l0cMsklhE6EkQoepZCnlbQQ7fM8Vhs54jlNnFyDxqjobxcVRa9UdEVZ1PUuP1rxSOxKa7Vr1JoVj+yWFrFz1sGLhuF7gBb9+fm/Rl+Hflqv/pE19a911x+RetN0ZBsm9SaED8GXLLTi1f/Orvrf6dX/s50KeJ5OzZc7FV/26936/3qa2fEzmPEjWBMf6+JVd1FaBNpIfTzFfp5jqRenrCKY/ec5yoMAt3UWnrQxLaiJRaNpkDpeuveUyYM4b/U9uHXO84DzVMfLXbDO3QwjqZ8vun6d2+QKAjhFGSrgtM50Ktla6viXvPc99f1ap2bnuQtUeJ362rXeTsUvUN9CX3iFdS7rwNPr17czBuAeb9f4bevXeLmni9erc6ivzv285Req8wXmQXeVu/0vrcqEn34O9pbTvfz0/n7ur/MF5skFzyP6w1AFROvcWvEb1Q62/XQ9Ni/koEva7fxkp0ErHS+a6SRfWdcL4yUBHOodr70XHLHOqVL/qug/ffFAEmw73SP0THshdI/X2U7sQcNYwo7z0obwKl1fAri0SsESJ62Zfxduz4uegQUP3gKA7W7Pmc46udD6aX3j/6VJr+5pUhf/KEjwZ+9ktY1fSj49VkOLFKlj2MyPrVw+eAtabkcAelPUQ855zgnp+z7EcGiPxiD8ihzHDaP1+RQ4WysVg4j8etkPH53IZieyx9DyIUU5NasoC6wYViRayJLX/3jCf+mf+X+N4qUux7kTco0dIZgESX80tiWR0wPCiZUTQkDPJbbEcKKePzRUi+biocUTJxZD8Vy0NnQor/XyQgMcV6cn2nKuQdDQvELZnUcvOX78kqsoM7R5/OHjPk9jCT0ONEMW1nhaoHIGtZk5vlGfFuinJAgoZMSJfsuqj2WPPnA0O16z8LhLUaRJ1VTn0admrqnvKe49dmxvcWH28Ey01YToSYo+Tcx7tMkqjNcqZwDGCvgZ0L1BHmjerXy9QckUtmlPu8KMv1C6qQWKG4Wy6MFXYPzDq2VdRtoP8Sd1fQhjiBnSM8Z9YlkK+vwWlFZkuSxI/4Ca6NfJJxqCb67+IbaMjJGn3+QNo/VZSSjLsvIh+gmMYVAqixSVgjFpnv8rGJOPcxEYkxA7fWr4s4qe/RA28pPBQiH4JHgc9IhhnPl8IOy0lp1w4HO/Z7Bx/QXMpbcQblGtk0dPRn5uRtl4NFh4lOT3KPyR43R0zDAe/iBkeR9xWquQ7wfeTJz3GozvQfPWyaxp0GM5mmmp228YxirJsuk9P6GltRU/s5XugDcPH0OPo6cgT0I7Ykmm/e+iR2Kx1oo7VY38k1k3nzGTKbSSjpu+HMVPALZ8hMIWzm2LMrDVUuic2NCo03ShEAd5T+IMdjPjKv5gpByvTozOCK5d5d0cNrTS9sG3/f3DKGHWGtzlRz/r66C/9PoENbs6iAb6xhPoLcpqxQQIYpYdPQMZZGeVPLd2RNEdrYe7h5Tm2x7S3jnXlb+fNeF0LndPOvSe1iFv1qH2rCNnOv8BffYntM+S0PY+HLRAsXpCrgKUXwWqdJmQmwjc1onBeOSMOWKeicQHm00STZzqBnfVslbdDXQ8kuf/HhXQ+8lZM8vGE8rxOA0z+Sewg6MY4fe/H5woBJ5Qvv0Epj6IIu8wJOnPq0DPUAktRMV62OkyGlgns99bL7Nu2JfvOgciXOK2lA3lMnhch+q0dyZ0yrjamIWf9/DOhd7cFWVc3Zu/3cnfzRKmBfQuZM3yuwMpAFie8/N5NztgvmD9Sg1ybMT2EXkQRhuavRW6E3rAq99t8/OKUlbUbdtUeCg9Ia+QR9Z754XWnpFxHh9A6C06ip6jmd33mGFEDf2hXTo8jGM6KtF6tH7jMV13dRJPHscMRnP7+ZLzpnbOOEfb0ZjjqSicjE2+zeChzFCfue8VubR3VFYBp9UDTiA0EAyFQw70WWIwsZApJpPFpFeFlzVVnMBqIKDZph7QNCNtiwAl1bBVTIxsfi5J0nJcb72ChJ/u9/aQV6zbNSvIjPBmhj8j1Fw8noubADsBKpB/h/zRzMfJq7+PGUcMIwZvYwbX3tsIr6jMLXKHCDcE8htFJo89IYEJVPLkGOZQwxNlSCMXQ8iLhxReWhPhKvseUtC0kRmvXwm0SuPqZRMAS3bdoKchpN+wiwW+MLZVGzaMYW3rGET0BOyEbSfOgmfisiru+cgLfH6dj1jgdeRTu69PA90rQJxAGNXFNGog2eu/Ty2dmkGo2Lofnq3zRa/vIkt6sXV+JgUPhGY4JmsC638V1v+Av/596RICTtrIqZtGiHfJ2qeLHbsACu5Cg1Sc5id3YSQwIIA9uHA7lVu4nYIYCrP/HvY0WobtCa34LNatqA0WSxPoD/uLaP2EHpsMQhHoDRctQwJ4+wewBw50y9+wbWYStaUWyDHdBbL5UFfZUaW3bJr/30D+K7Sf2jI5bJsfRO3tlohWfvACBfztRfrP76cf8Qj9LjmN9aoOc1FwALKXqISJ0CDMFPScopwxUlM7pt2AGNHzlfT0JYszKQPxUN7DWiB4COnxkeaoYSrxg2Nj88NxFS0GA5pPB7O93AJcc5rbzqgQdtzpCfwUZjyKyRP+qbn+WagnBlTFjsdp8ASCIqZ2j2EcINtrxrhHM8FzwHiP4cX+SzsKXexlO+oC9fRYvV6RUKNCd53IGg31iCvBcLhO5yiWtgd9zi+tdbZdZxom1SACmCwWce23Me8Dg+zzB/wULJtu3CjfxYFtc2/a7M6OYMYK2dJP24FMwD7d8Z7rj2BeKld2GqDaOYJ7Ffo5UzQvhjuwDKjD5pINNMW/wpd1yoclZ4qTiPIXCeqByaIgi8+TTxqEHWgOMQaoJ8UENNWPVUmyJUd5h4BMvaibSHiH4kCMpL7rXZ1XWMe9726TbDWnSvKB39FNU/+dA7IEQVu67LJ2PHzS/WLNfjHQ2cd4b78ouWR3qDWYUIe3aR2gW9MrFMDDFCw1JexvlN+jG9HqKV0/JWPs0d+MVy8D7JzgNpAZVa1VYd8pSvCAXrX7z5KLVAQh6pLDfnLCn60SIQATMeEuQpTBPpFZhUFA3CrtecYcsQNj2sxQeiKZnEgPzWitv7sinw3rYd39m5DrhoxQJr68YtsrMGyoaQeo6NQiDF1kaCYzNJSZGXKcWhKSh8ixOR4qUFnurwLdxs6l6WYuE+69CTtWY0706oKLbI7VG6TT0u99zewrkzVbisd0Sc00979hNynnk6/hTywuTl4ek2z0hfnL3vwlVZ4ojE0YuhY3IpNzlRxQjAdMefHE5LDSPqt5klKlTpssZQfjTMBtQiQi5T/IT03lb/3QrQ09XUgki3ZiwJYjCS2HHklNj01fOkmOnC/bYBihg8liIRnKJFK5kS2FoObT+oSHEAI8eZzRPESUYoKIOQI0nY5iKkhHpkGD7XdQA1Z4qc5vEYSRh1+5+dVXpIjnCw//dPOBA3cdOLC5PDt7+QbRsJyUavwZtvDiteOX1+jz2n87sJkmOgcpNpQChppyLENsn92dpHR4lfBnCtMNlxz/k5rUG26al3zZq5InckVO7iiG5dJq4xKpKhEUcWn1yLypwMxBzUBgZrjwyodHBMF0XyWUmugaWXAkRRKf/33PsxyuNSI0RaAS2WMe2BypW3t4wLRKs1JFGNauXYTqJwb2F7bkN0J6KS4L6Oue53o9xN7HNoc3DAxuPmCbGyQJWjVbQsEgxY/OPwf40QK0TQfMgWoe0JnesIHcX3+N8RsDyVQrk0oGzpmzptu/1JRYpRJDK0CVfqFvsaHzLY/PMELpRQIMsQd48r6nVGSHrVUAPDz1obPp+fn0ba+S1HlF5aeOjkoEkUaZDCKotDR6dAohSRbnVelViCtNlx5TAvjRjbKhHD+uGPLGRwVFFpTHoK1K+/xTBSouC7NqA7eT28+9mpw4Zj3itXCBk8/SS4ynQD1b64Hx1Q60X/WkW5rdEvrLFwwQTlmrmXIq7MCDuhayWueAqP4BTcEE9O+4gB+Rb4F6Z0KYzKXz+ocUr7CBat7UpsTJ9jSJGi49oSl4mybQP6UsGyUa0WAN81GpGtFHWdTTmyRxV62WSeut6w3j1TQAI/UjUXo1bJLw2JTWF2nCqwDZWdQNqyzu27ihbBn6USAriP9fRPD8i0iiFr00HJs7DE47Hn4Li42twTm+AYvuoe889NBNs9Vtl/Ai4DuhlLwBrdz96N12VeAlHJmKbth7hU8P/AXk8yjgD4P0hCLfwww2UaFHTitCjkojMtEIoLJn7REkC4Mk+tjDkH3wWDAiyOgqLD1s0ACJReiyO15/x+UQJ+HpzdMYjWFpMRiJBBcFWTAkbNDAPVgaUxfu2LTpjt3SFBHPmhmfgT8ifwa4JbcJcMudpM02xS3JZs32aIrI/v9ryW20ZR2yvC8vhgeT3Z3t6RRp/bO1eW1fNyugWYXzv+TfgO6DNbS9nzqo5T1ZxmnKS6O4tuThF1tQLyHhIcuR6jT/2hsg9xswIAARXP6Kqlgw7D/TzDIEddw61xPEvWmPHSFS2Q55MfoFbOlpU/vxKHnrRLsDuDuZp8s1D7BgAlpACBnKyIz6W1m+7RO6JsggIXwwb4l264cyCugmL2eyE9nQn4fATe2iKitHlQCvorcZpvCgnQnr8WDezWbdmGXFyDMTQldSYTBdGQ/rTD+A8bRDbSmGjqiA64k9UI7bSpOs4jZvvOnx2XdQfniGjAPsj1kCQwExobwkE9A7lg89n+W37MHZYOuEaWLiQadNs3UAsA51J8kcoNEH7gnYMYM4szCNXwsDlCJwg2N4Upv3zs4pDkCJfeco1b5w9gXeu/3tJZQSupTIzxaJs7Hta315nci/picWFYJeEaCoSG8hsdT5h7azq+38d89p0uR2AFEMq/VMj45KCnYFoudwKTvj7mZpulTamgH4vERcsh0GGe+qGvYESuoe7R0liEjdw8HkiFOhJxDeUGJVvkOWUVNW8fMCn367LD9CBTgOUAGOrAm1I3VLFHs5pxkVa0RoZknei1VhXB6SW89RwZC3U8GQGRVDX5hqMYHbMkyPexIoFF5inwTpnCJvJQgLRWR98WKeO7onZMWwXjC1MpUQxr+jTu6v7Dl6hooVIWvPUSGplGE1kul+mYZ/J5mq7J88KlHBJKLzc/4X5/+QfxP6I9hTtnO/wd3PfYv7LtG+9AXwS1CXItlA6h1J/I78PUxWN0qqCtiSL8Zfis4BZgCIlNsl2A+eEpF27BLt75HsB487neZ7hfvnADkmKHIa1aX/ggrxnCJpYVORFE22dCSKSLdkDYJmWJMUy7ro20S4qAbgdzQXwmo2EErH0oZSLKr6YGwgFMhoOJSV5WxY0TJGeCCe1tViUcSyAMnY25z8+pAYzVei1AV06FevCkKmKmADq6YR1MO2FjSCqmxgUQ0KQlAV5YCsQpRmh/UgELzwRlBNYc408g78PhPS7EQ5qIUiek6BwcLIVHJ6JKQFS0lbC2UG4X2yFNSsiJZTA/BekhUxpzuWbhVTkGCwFq3ko1KIuh/vq0jAVLEhtytC3gT8isCbnooQPjvBF+ZhTdtEApLrwhdgfAlJNG3D6LZjPcKByB4B3nDF5uroBEEkhEiwePejP4PdXZQmRqubm8diYfP630QbFtD8fYfjcUAuRCc3XJ0/3Lov54haPF4f42+9XFfD+6eqjN4Onv8yysA+Qw4pQm3dWL6OMh112G0qWm0t7FBd5/6jZlGI3BfunD2ehG/HCK3Oe0u3LTZID/+AVs/3Hv+OIjQSL7qmdgrFeI2PoVOaWSkaI5RpZRF35J+NzHhcM4/xfEUUKzx/zNSGNodfa2pUgQCcrjPBKcCSt/l7E5n92JP2Abjo8TAmeLKO2gwNVhEp6sK6ijiFWl7GsKR4ABdzlbnBQiVZMFo/MArJimgOkShTO8Zq1vqo7eqk0Cavu3aeKKzOzo7n8Ex0IZ0gzN5EeoHXijGcG5+d9eBP+WRAGR63XNcaH1YCibaco6drMck1CJZXyHtcF5+FSWFgo0fXIsLURrasp2+BymsULp729S1OZd1FN3uqV9+i2atuofjaFgpBApQ+fYvzvzz/FZhtT3J5cvrKpRHAp6gpF4ngMQ+0bnFOjkIPUthFqEknzbvT1WnCU/xBTlUVHvNaaX7Xxk3jo4Hg6JqYL8lY0PHMTSYSJIHnDVE7jL6cGw0GRsc3bdw1X9IgtaKqa2Ku5/UALOGbZgQsicgYO0zx8F96OvAu4zlwFN+Dbh0k/HMCTesu+le7dW7VFmOSfcIypja9MrnZxBXFRp8Q7dXWOfuYrVSwuTl59cZpPXQiLHlnlf5Z4sTa00SbrM5JlMsTzaaIMwiguFT0AhE32n3YOHHXp4xtiNfENJIL+X2DEhaEXQA1erfS1vKn7jIAkOwSoHGD+/IFGaVFjUfbPN4doRMf54oX1iRo76Bke+9XKHjDKyhvdzQ9MAKEHo0E58bmK67aSheglR4ZTR9t8zNhyq94NCmV1s5687LRRVviLj+KZL1lxjeZ8s2qccqAv2VjwYA/nnseikWAKlpnzkDhh3rUxAkdmPJpob9Bj6OPUD37KY7zpVBdjys+gTxJmSrRa1gTJywXasVi7btUhU++84CsaviOj72XBb9xmgSv+ODtuzaRRIVXY02VD9wp07f4Y3eQ4OlvsKCw+7YPsr5oy42koe8n1p6PlrI53GAaSIOofVTlr1W/N1jbK62MFby2rZR0bbBKD0xup27nsHuzfD9VTbpfXqKHMezPPz9nMHCMm+G4IQdTnU6qSgbzjhE1JUottBFbyvuB6YEB1Ocj0y7fzFiWrh6cP5gSE7CP7XOUOJ9LFgrJVYhTdctqZg/cfPOB/7M3/D4tinfULGs0Z+VDtY2WVUguJQu1HTiqve9JlEhsX9rOeTw/geJW5LxB9o0utClDtsW0D2vBoYYdPFoPnCDRu8DoGxOaEtgaFh1zzhJS6vi4mhKsOdMRw1sDijbR/1ZLdr1d7QqamCTGpp84qY33vp2c7MoqqXXkeE5yJQ86k7kVlTH5AxpmhGpMUT2WBlGehQ6FXQdcqU/60YfSPJcMHwmgsGaYopVPAJWc3x1WjNTgTnASKU1SfyucbC11trcUhbzPhRKB0WC4oMQywSEBBdRHBwOBcXtgNGYEEuG2IYIvMyjdXe8iV+fmiAYf0RepEpFlJkOP/do3JhD5Yzu01Ccd60/Z8d9SJQ3qZyg7B8EJ785Dzcsl2TS0MAocCSeT6IN+jc0ErQUaChix0QF7PBAYfBRQKGFoKK8UwsHRQCIUTjgdQwnfoS0k/L3znly919eUm12PuvQvkqKC2MzcQYmwVgnLJ+qCa/dX2ltjp/xOyw8NCUCOXKzP0Gp7XORSmQ2LpEkvNC6ML+nX2+trt0a42zU2I6iRBsDVaPVLJiJ/dG0W7Q6DhlbdBw5Xv6R+s1/6yPSd5RcAnPl2S0pVyioCqEG1Oqh2LmxhRLWzPoOO0pOJH17yRZLfFy9hvIr7MPwRXsUsPc9AC5RnsMDYH78Bb36Dsj/WlOmf/DZcuisRjAZ3yvLLft9Fi/TOhF90mb4sW6nRxqDc3vJI+cpFM73qojVa27f+KZCLa4wpPQBzt6dfSdneadCFCvUOhS5YKtGpegqdgzIleq4eB1p6FPbJBrWDkJ+jEKhRhRHOF/JFoB0KMoZYchiA8/WZEnbcPAxFVXarJkxFt96AZ6EadScQWjyjVzZWPi18WRC+jOaPB/O1l7f+ecg8Hn05ullVbxOE54XbyLNM072Hvml9mKZDmR0HDjxJdbJWrp629r1y+urqvg9l4F92LttM58DNvhGS7CXx95IUHNMl/xovoT/mUtwQwdwIrAK6OUeYcUTnjWwKQbZLcL5uzC9VJ5leLH7XrhXs7wbCA8m9Q1iQ9uo79kmB1mamFfPyoT2pgXDgu3ahZn+vsH8g6ah8QNq3Q98rCa13MYUYjydA5JY/7vGPGtwCdxVAoxeQU+4PD3nz224LJZIaw5gH+d7wM77VgG4LAn3+zYRhMfCbC0FVnVTVoKq4TUUNKWp/BNq8rrxyl/cA44zsXrBUtaLAl2p0q6pa6iMsK8VSFBIRUmD//k/A9SWAaxbFcoOIyhpCK8lOgp61DP1LCWNR+5JOdLbT+pdavwgGlFnFePpLetrD2Rivyma6fQV2SElxpKq3ABvrnD0QRT/UXB2wW0v2wCqV8j9tD7S4AXtxwF6xB5rLJyoQMWCfJqcD34foRXugQiIqmQyTB/ka5SdtanN8fTUPX9yBHHD0kljVrhMCT00ELV0Oq+tyaF71hgHjcowvNwZuqFoBY/3oaNtr6DSFEehN0RPt25tZhv7BHha5EWYaV/dgsdhrS2oUAelar46gC1uYgq0Fd9C7u2eKxZki+m36yCSKdmBecDKOnXjg6vn5q+fzle1Mlnh7Rc3uyn4/XZbmA3Yx0UycLdJP6N+uYiITsN2RrG7Pk8+u214ZINjoQGW7ZQWsjXk7AFn7a5b0eYFoZXv8ctbXjDVl+pCW0N81KsVeZ73NGFtzPlQkySNR9oJ8j3aPje0Yu/eqsSK2EVIFHIigSGRzZHskIkmAL0fV6E0Xe6mRzxEevxceV90LCRUtmVCxGdkUiUK6zRFJFJWwEdGsMxd/rdIsPHkJOm4pn9dBib+ZemPGO26np6YOnxiYSO6rtU5vPlAfOTw/tjcSGyjP/rU0VE/X9h3YPLk3KAnzh8eGrNlymMK9nwEe8U1qv6bQPt3cimq9xz5ksuJqiekoYfT5aHmk9fRIOfoaanfrGWp86wuPVuSmPJbfsyf/1ffSHYU6733VZYq2sqIpbG2iP4Y2lCiEI/g5XSk42jEQ1yh1GaJxG3XCWvSVEX0eMop+XFVju2J3xDE1H4flbFbG5VkI4Pgd8EJVW+/t0Cr26sdVJR6/PR4K0zQom0X0u3AIIuOKuosma/2rR9kI7XNQopcNne/Tm4wJH3KiVZsAkh6tRZfCEGgAappai1qTWci6j1DeDQs+8jpiGARTrgw6oZmtH7hZdMg3yUVi9gC+uIQZLAG683GinegyiVLXn7Z1CsPJVKWCljPeBKbTnMXnRkfR2Ldzh7PZ7BejzWgERd9tELHH06qq4C8Gg2Y5+OeJ6kL8URr76Pi94fE3jn8/l8tdk/0Dl4hvRh/U9aihPwjplS9bI8Fg8HswoxJnDCOqG2fGvXEkvAiiq1umfI5uZkQWyDpvpOwZZliEHQzU0GfNNpPBcMz31YmNvxVREMW/N4xnDQQ0UetnPgvCbL2rQBIgQ4QUxjHD+BVkqgWqp7+K7vP215e8s74YTaUX3Ae5Lv0kTLU0CNWxG/BSD1+T26cj3j7+Emu5RDfaMj1pYH+nL6CM1OVHd9CUK/SD+9hWrbxwUwBned7bawcA4zvG3cWd4h6GniVyZY08PQdgiqK+4BmxK4lniL5qPkffNhjM6oiN5mr0WKE6TSVcyfd8rX2kTpIEfctRpeJL7RvBCCLEI6zIihrBimEEDWO7gRJxVZIURVFlMxFOxmKoZBg7DFGCpYqDFlFgFWXZEJWAYWw05JAZjMccS3kx3TpjlDUeelJWFEc2DhhQ5AcjA0HIUpExVmzHsWIBwVB1/QFNlQWFsCUVHEA8iYI0jmgb4QTRDHvhwSDz+3swFp+g/MFLALZme5uPq6SjxQ5YT6O2MFIpz0S20kIf3w7wJXSuY0dK/fHrNT06MDQSnbtaxeMSFisD+eHLTgYObI8MF5KWiidkLZdOFQZWOtqnVnQgUky7plKv2NSoEh+NDsRzr41ltzRlM5yw0iQhH3DcWDTRZadkmlgwavQIA3bEBKvTc2jdFzCVsr1YytndBwdkTZPfTpyBS2K5cIoU+DYaLO9qda3jzZft+XSn4p++PDSUfLQrXNmV3dwJdsvGdaw5rOXMAgpIbEpI3rP7xPrMysoKWiZOH+91aWnF//Nk8Bi/3ocZgNfak2grkCNBxJ5Y8v3Mah7BORtk38CNEj5rZTIW/FaStVoSfmin57kONsr3qAntoKqi4/DcdGX1CrRE01rWEk2STH7ee/6HliCp1YPwhNTqE1dUr/TOEhj/hOzpm7ukOamAQJ65HW2oAWa2YQD5u7r/bNRK+Qh/gsrewPa8DD+LdknTSY055hGzNUbhFLqaPpaPjC3RgSAGFsiPpUw5FUjqHD+R6gDBzxlHiF0EmfKnlin/1KF2ZIukJ9eMWBXmfg3WRd5nREk1WAoweE6Up+YNnl8lrtUsJJOF5r9Rg2ZoCbzNAlpmlhLsAGoG7NaZZGGlkDxHkI3FY5D8bDNZoLaduCvRBtjKdHaK7st0DyI+oKknZUs+qWqIi4MXfHF21oW5JfhGpfpN2Q4VgbKtVuejpd5vyFxZRVfRckIdQmTVT4W2dX/snanBN59k3zDlHYZ5+J9s7a5jN73F1sDa3gzlQ1n49c57mPX9cx5xxKDEecrLCJx/DlXRKU8/rMsEWMEXxIWZPfy/gLi5E4ibO3UDBYEy8sMraXhAbPpVxBTNnVSOFbE8uRXSru4cu3Npf0jTc2fRDK0DPR1r97fb9cHZ9gd8W/5jECgqrksLkKqZRt20CDBLbNRxboLPe6eBHmzGMs6ZPPp3AbMOwkL2dbxrRiOaGrbChiW89s8V10yiu2dUpqipTr0BJU0XIUCcvkl68JuiwMcP8WE1IEvYUA3h4A26GrmqjA2bvLYNXHxlRNU9/Okp9HNYrzDzG12S4XOomiYcyBw7ovIldWXfFMZ3noKcK0b+2vrR0+j+o9fs1tScok7PE4Nio3vj10kYn8XSU4ZxWWkU3f+t+5sqvFfGjj5wtJTFUoXJa3Eevdbotu9CLHPiXs0AYqOztEYWilIDRI7uHsXGLsZyeb+sqrerSXWCPeT9ZYnqCOA3MBkt6VYS/jn83oAx0SKQyCdJSAyf0Ad8IpNXtnKPlwI+wYyeX0U7qL1pMqexINNJwExeMAslgE6UTROfwaZhChN3YkNGGQQo/GkIjqBMzGg9Y4SNJxQDn5M1ydbf1D57Xab2JWvcTu7gWuuSjUiesSbWbm9Vn1ORr7l9X2X7wlS4nUKrhYob/NMy8dG48p8G3cpqZaH9Hi22vUv+M2AvVjYG3WYn3HSDGyuVymInpuNwTJ6AyYuNU5k3qnkhE0s9lQlMLcDlWESxQdWI6BlhGkmE5GOcaSJIH6XzrsY3kaEkao24aMAMVxTdDIbVwbIjGGK8MZNUDBR599VArF397tZ3gyHLmszGRxTJiLuSqGP1E4qGU4H8KAYcy9ANTZFKOYxHh8wU1pTr79bCpNZh7e67TPNN2cmBWCCmGoau4i77PxHAaKn9HzvSVgqFuce6Pyf79o3catu6mXdATsaObm/L1Mzv/vDe8H7NPOVmRyg3cOWYZ2j0lHkboQXnMVKeZXamMxlCML6OMgT/+SlKEVaoseAikITz2D+P/BrVdw5QG82cS3hbzCILrBRhhmHTAE4qkfzMFBHlaItXMXGrpRUppIXmQmpYWjqyb+/RsUJwJVgYO8NUnYnWs1wsakrCNBMKyux+1dE989OjFYQqo9MPEFXpCaY1zXXTyAQnOdixQi77mtsUv2xDwEaEyv8z2641GOdpqBuJhERUbZBavCRQ01MjpCcCJc9++XO0W/60vjdht37bTjQrITc7kY2GDT21ERAJlBoyBxV4KnalYlNPJjCUYmbOn6c9/2H+stq4nUjY41P7lP3SgE3kDOwB6WW8oGkITUhjA2MmLyJsKbyQzMTj6ZTIKxYmZmtGBsakznknh54AzHQvgQqEFMHe7KXHcXWm1UROHZmywxZPUYQnqqYUDU/zNJosAx+9QF8Lp0OZo3t2H+Ube3Rlq2bxAq+rgxvKpdlBTYdaAQjZquh7Gny6OjAxn0VoyDFVGBC0GBoIF8K37rz+mh36VRverwZ4A760IAf59eXZjaW7ZR4CsiaiAB9Q37/hkJGcSGwZvTVcTBQWVZIH122nXIWZ5RIpd7ctbihEqjWXqoERIzwdc+/L9Mh+dXmVCU63lqjucyXj0eAn0HIms3iec1JoKdX6Cuxb4PX47KvocZg3EtmBopBd1WlEGYOFCBA3mM25ehtG8BGHHB/+Yqa4/F41bLaW1aCiIj4YchZmAQYUNmadUJAnuNitmhGw4a2hISEY2z628Qo9QtZ6BI/NF8e2x4ICOTf7ucdHI7yLkkdhMPjJcNa8TfiwMDJ2lgq9wRsi1bNKLHOhU7V9+2qZ2TI0LlEsRltc1oA+F/iFoCgllOZs+VnNhFlXnkWZ5eJMsbWciWHkDqj0aBS310yS2pJkNvZfDQg+kVfYxERRO8LwpPer00K+IzYPe3FbkN4l8VV6tt553xGyr5WqbWVh+k23IjFabTWJfftDVOTmEDFyz8TgP+cLxjdnumXstYTsyAlZZo8xxzEQAKYFyuMytdbDKMPSNX3J/AMHjCVPooI6P2t/TB9tmsanG/ZBPxx66ZRD4yIa0tGXSFWsKrNKBX7e4wMvnsb4Uddnyuy5DsXRoQ8DVEunwO0hK6uj5VC94OqSyKld++iufVbZJYJVry1l6BLMnCVr0LKIAgRtmUUMLzFFCKbI4HszyFukrZX1Vufp/vTUy3XznicZ3sYTA2kOVLBay+N8CR7VWqkGBBL8b1RdiK3R927V5TNLS8uV2GvKkcjtVmV7TlcqzWZF0XPbK9btkUj5NbHK2Ug0YlnvMYyPLeo7LUEZUQRrp774McN4j9Wlz0hOFycobu1b+4z08Bwh0mWG0Bp1mR0oM/PPXX50IjuZiOz3ObJEpq4JrWyoX6Tg9EoGVJcmsydjJW2ISQSeplJ03z6J1cfi4s5u+zae0yObVe21Zkfqhenw5duj2R7D9mjOFH19F0YMnWjrsHSps6joRCdFaoeKFxfblWh7e+qyDm17MZsCPdzTZp9lgR5i7Ze9BgZ4LsYNok+iawFvGvEtK1CEPY3aphVwDybPsP3S2VMMT19akgRBIgoUp/CXMG7HMo2Lb59iqDmkMgKiS98naVovmuH8Xj0egXo4lLpZa/g/6jR6yA6m5jEddc/2FbmmGqKqqsLv9ZW4Xj0AYRW8fe45tA3oR1aXtbcR1KdL3Uoe2KTWaYszjf/2AqXQqkD86kXrLAqCSGL76jK8zi0LpAJuD+3l3Y/w7hfR3heqB4sDGAJjw/0TnSMXmCGZdSbDekPv5fUsHef1R3ntcK4zdPS+iEPQL+WO/lDfCK0zFCizJm/PHgDk1WR5rdvD63Tm0tqsOjJ1xDJs59YdQnuwdUxNZPq7IgplQzyF+qsW3Y+9kyeLWmpGz7SaFLJAqEJRaLPCdjDYATKts237D8x+U5aeAPaf8XpH5jaUxOCZQMqEDbWYaHGJoor/zQlsMcPoiRbHuBNNwHpUbAF+lLCwqkdCQYBcZ6gtq9aPGIen2x51cD2uUfukrwsmfZSe5dH2tE1WtTLemR3Lr9mXX/vGhXZ+tK+ojtD1F8uOwVG6d6fIfRVrbIS2wwS0X+wl43stO6nD8+yOokRxbcwqDaecc/OHqcxUMdFcG9NfJ7Sm2HrHrOvaOnW9JHXqFL7oid/2xRCQf9H60Jg2XtvFnx70z3fbuujeaZav+5PxQ75tE+/JeU9U6TrG+hfqtlZpVIRxgOdZ3L+z0MdYiJ19/Qv7lMQ82MUCRvPM0jDqkpNqS4N5tj+YXBejh5hcE2vPcJfFkD6JWrc+47E5JpAJSHl0+n6W10E6u36fuh8VZVUT87fkRU2VxfF3egW5XeK07xV1LPHSyAg4WBfra+pQuEgdqKpNDstpAm7WKf/tOCxJ4+8cl3EI529Zp/SvK6Kl1Os4JOARbm37Bztl+1KO7jTBIZxq3asHK/XzTHTYslYty1ut3YV9OpNZ9tcXkWXOANxZongKve8BeVqreSYAUHVfBHbvl4/Ozh8+PL998urJ7cSzZMwA2TFjeA82QY6z2bJ0+L7DlQo4n+tKYczM0vkx49ujDnTJWifblv+v5K4Heu313Fu5B7kPr7Wv133nWeMl+qVfIX3hAml4qyPtnWpdzSiypYs8WmdexEug9p4lp/VedI+JwLW3qnX/HXjR8TA//DsFMGD9M4Q6tNPIjUyg0kXvF+DdKLldoDqNazKO1AvElUu1YilSZDGNSN2NRN1aFDwNiKnVf6pOB+Hvbyx6G8Gr4p3bCMxYECEpu/tYovJ3uXIeXVrK54vGXDFvNyZS5ay+tZgvFDIjScTzIWEH/L7m3VqQi/bcWmC6ZkA38v9jQQjuCrx9d0hekNUdvLNDl3ajyK6QuEvALLggxnY58m7Rv9tmmdoXG+rWIe7CcqRe2f8I4pmFHPzbv81QjScwuhNQgmd8buI61sf+0Lsqidx9JJz/xfmv8m9Bf8TpMOcBa5VKxM4BFIUFudSWHyQC8lEssXDJi8PI3WKIpwSDuOIbFPW0pp1WlVFVfeUrgXRJtb2j9FUzLBjoe4YAj9aIcYeqvFVV36qoE6qyuKiok23fBH3j4bA/gvX4u1yCcD5tOgmoZQ3CUq4XS56cHfZF7QCfjkw5UXojUOnUGSNVvWwuW8nrETG14UDKOKPcRY0B/bqi68qvExtAxADQy8XI8K7JsYNxxTRe8TLtQDCgPYyjA555IOswjul6DB+2mFEgIqv4VV5Ff0JlUerQSya9XQImZr2BvpqaNL6mZNLumXhSc9FXjEnYokKmnAifKYzrvv7aKo/R1+l5SJ8NnFoIVxnzud8WTiTUAPqaSXWiCLsHsUw35Qdvf9bX+vLCf7GJWkLbxGTImehR8kEIIaUT0/r7B5c2UcNpm37a1g+jsuVEsnwXdxnVj8XEFBrVb6MSGNTOJmrUJpBn8pMuLmJ5szHB0yjfYpkvCxT2Dactp2MoEhjPpKYtTXJTk/OTZsKKD8JzMB7bEIulsY5CiSCEW9+nFLlL3f9g1HklMaKMJCxb5iVFUtTheHZyMhsejEpP4ZEk8SdH8Gld5gVdDcSkaCYMcZOU1dl6G32ghsf4FKj8IAIY4zLLxtQuLBMgZKJUTKzK9cx7dpn6nKFSV7ZMDJrQ9ejSc/eKqo4TqcFxasRuPDKyOTKuKFZ5vei/hTXY2s0WKgKKaUSBRFfdC4lUmmjzCPn2R+X1olsfweQbutghD4fSvjBmd9P71aaoFkPEMbvFOeaIolzNM75DlGEmAFvwt/U/nb8lUSgkgHDQzMCgbSejY3F7wAnKtjKqCPLWXRvL5Y1ltPqKZmYq6UR0mUwbLZpLGnowEoymAnYIkmUh+Stb7xjeMDy8oY3jcwTHJ3KmXKPae6LVp0Dh18VxHMUwlBOKQZ8Pg1PfPDKyeSR22lAqJOo73hMc9MgIecfuN1vlzlAc1O1oann3aUYEb1GdoVeHHTM1Ap9NbV4zp9jx/W4tGCTEUwBWdgfP3sTd2IVnY7dTZZgGJdkzhs+a1Ch1WgezxyVnAVWp/QFRHZmT6AAw0SffOhJZUYhKl6Vqm6LkOadKEzzQ72OSSi07JzbUqIzMTlUsi7wgDIsqGiIRj5g8CkTiiUggEAibaiAdUM2pwdKmRDCfFRFH2UaXHKAPZUGUZXGBmfx/+aUsbhsWJGmbp/Bv6kqkkIiGgkGsmWFDiaiBaGpiZGjAch2jp0+u/9X6BPX2ifBf3iWxfD6+XoesvNgOaS37PTIwmXaj9tru8PZnDn2Ei8COBPszFWCD7dgXvCEbdAF6p4H+97tOG0brA465ZJqIM8vmitn6o3sWb9vxmXcRq2hLEAPREFueesPidl+vmfIA9pF9wRN4oysX9rOcyVMA661lcjpCxJ6Isb6KG4XYmncOKJNXc/xWVMFydbrO43DSGEg4U6FQGEFXatnM0GDcHMonQwMhxwEc0g43T2RKqUR+KJIfGcnpesgeVqc/bA+EkvmheD4fMERB5GUrEKpE4gNGIhwedFXHQaIooks1fVqddhNpKKESDoUF0dBFcefNg21af4neP7mZypqTKUFngXf2jde5IIEdqPnGZNwotSZT/QERpZmFOXDltlky3lR4a3bblSqG+TI/tQEGd2m2vEJ49SvlYyquzF+v5uhL6uTUV+2gQnMj1ctE+dLZCpHjInc3fIl/K+zDBdjtOIlA/pKH7Hi3qRGE0613VSi4hvqmFaYIaMOFBvF3G6qjGc//Pn38/mw5MZaQEjqthXNJd9Vn5MHJJDanw5amBeKGir5OH28fL8/CNyum5cQSjBs/UlzubQoeTowNwA5WkvlcN08lQCXEstNdPJVClz66ZwuwfS9pNAKA1PAsLq0Sg30pp+Id/1QgijNav6R0hGiMGcaQkyIEE/lRM8fs7J+WO8s127Iv5HbFfKRHpBAQ7hHelJgBtnqjSDUXqzON9oWSnyX3AT6ilYNJW6f3Pg0Pimk5JodxQJUEO6yI6c16Np3KKRu1kwwd+DhSpDskBaV4KymGY4MWlab+j2xNSfKCrAVsQ1WwrV4STE6NJy0+7O397D5xRG1tTfvW4SLkVEHO9xjioSqKhEtM7J8SQxftyv4c79hs6ddJsBlGtYRWVVX3mGYKU1LCOFa8YaGa0U7RG9zQp7PTC0dKxwJxaUowtWOuqlYhfdTUZOl6zdqyHfMfpve2cX16XKmOjlyhrTHWpSLnqca1HiJsREtRbrgBcA3Fxqc8rbgr3srCN97I3r8VO/35d2z5+tphXepwHlvkpjXZe1T9i8jf132z29l2qb4pF8rlqgsVvKZ/uuwBe93SpebmqbetU4Bv7nBtz7XnMz8PeCE952/kPBpHZmZt/Vt9KebLbuPpgl8Rahe38wVh65d8w/sBRZZ2KMoOSVby5ssqdAkNbSiXG0OpGWrbqvIyM99Jk7He9al3WYijrJSlIIsOlqbkP4SFKWnTg+UNCM2WBqc1CUtlCf+hPFXyU+258so9KNOrq+3p7E+/aK19/wo9UvkLavCfYBcVXkSR/+EKMeBInIvxltaxENTFW3r04ePHHz7+ZioOciPTMmKzsPWT4+TVN6mwx2uoAhHlayvcXTBPFK8cbojNlI18L8sRLVAE8g6KYbb+lD5+TN2uP5pf7PxT3CPtevu13syz6vLeRJ/v/xYpawvguu20Mg7jpgvzwN3pOrUqQMaBGhogzNzemB7NB3ae/bSIpde8XML65oOi/nYI/Ld7IXDjA6LeL3jJWKRYevlrJCzmdfHgZh1Lb/gsCzxwo96z5iJdMGMOpgksOjo/Gh6wOC7DvzNGLOabnX6jYBiGcDM2zWdMs/esNLmOtGiXTfKeNvmWyXvr/pxnobzXPsbg2hs6S/32wk93naX+pM9qeM/9mtc9RmMf2kXTHNN9HUOvrBQ58ewvTQgicncuFWoiJpdyrFCqztxd8BdOyQIWNpwSxYZ0NE3IOeITXdx7w+fEqQ2QTIZks6KaBopRlBoipHLaMknb0B8DjdWkNqRg9QKK2GX72FcyxDNUrLPRe0EFwWcwvWsslOVnT+sD41srEUN01MHR1PiuvZMD+mllFUCSZBiy5nf+61RJSUdEqYqaKHhKN6wFzS1tKhsBHLt8eGSuGFUXLEMH4Ppt2JmRyGP5Kr/RYSkY9e6pEHpgQZrj5hCbWv55gVSfQEF6QEj6rvEDxq/ezWbaa0Vsqqd1aV52DHh8i7KykUQnnaBYkjAv6acNR4ZH3/xIrD2jl6gyFTOR23MU3/rAPYpyD8Dif1fkngP4FRpPjYT25d09E6jFTDrp6Claz7Ae6eRsdaK7Mu7Lt9/emk3nNF19lXW+71sqXe3weU9nEbH/tNPTwyNCbL48cLEtGUxxnjRPMGJfGphSeLLr+9ICmVOoofJ6evDSE3ZawkYE8VF4ZKOvXognRYlHhqBHQuU56+1A2Mm89iDPv4X5blNig8VI1DVyY7qgXLELSynDiWIpbTQXJSRiYUznxXJelQc021XllGpnogGZ9+pP7MLUPZv1DL2lYrOeaWsiWxr1am6KbR0kqnVbRbD5tn4A2GzKMFKXb2lMqngAq+mkGjJ1LB4wjAOvx9IS0TpjePB8Y3cea0OKbIuKFjAVIuv0xqqEfZs/aARwyW2ALVDrRLhtiSNHBQBh5VGoPUP4LqVit5zXNFUsh0qSyRcBSufbY+OWsXGISeEUZV7OaVrQng+EIkdzE6K4bYpf+8pQvx84MJ4tebfIpyVTAqpHCwWiclqbyU3t7o9XLaGrD2eIvj6x40Y7iJqR8wh6//DQt/Vf9PADmOAERM/sUaVNhlGTLtnwXllWXi4JvwtbzYHBkvRhw3jAGT4IswCVDbQUDEF/ze7i3yEHhfcJUk3CmSTEJLE0Tvn9xO72WXQL1GWjp/ftVYagVgNtE+ttI+U1/1ICzx4uX2W8hWswFhY3GsYh57hhHIe9gTycQ4axcVHAeJsiNJK8EWwIClox5IeMjFFIgkOlWTJGsgDOQ7KBb10o5G/FXHttE9mnYYI3NfKd6sg99cl3E1fR9gWNxfy/Xf0Rw/gIhm5iVBNgecZHm/v3f+DSoXI5v0xE5wD3o+dQGWNcwn9mXL68/4cPDedzZc7X127SdXoZ9zLuFdwR7hgZLV9jDrOByvtPr1d6ewdVG91Pv3elRp7csjkHEzTvksSlvIzdRh4W/BTpz7zLz2zFsPMdHOG1DSo/2mDPYVgeu5Q5w6iEofwRjQ/9usOrYxrv3GLy2gSsbLtitO4yirqMEBLSyn75TQle4A1eOGmUDEFAiE/j/RhxpPVfVNUvkh/tgLKxX1LVK65gP2k/RDxUr08asZOZjKobhv7Gel2PGdF3ZzIeTsvujCXwca1Ori+NfZZIXGutMwQlfWplWdbwdRjNambrMcoRf0Yz75aXIc6TS/TyHIAxr1E7NmtytrtO2bptG3dF1xrrlt40HjH6/pbWq1DrnYTFaVxC3QPEMfw6iuefP/+X6FMwJ4qAN76cu4Jxibqw962oUp/qVR8IogpQB103ZLYlfAtRk++aQ57KpourJXS/IMFyfpOEhe38BlFRxHup92Nd10eyqzHLiNhOG1J5dVTh1SEZ8xsEpawIRRNHBFkYIMRNVBSuEbBE/RFRWBI2+RdXIsrTa62uCLIoqKmUqsmPKMq15L4X0taz0NZPcI7fVpsCp7Z0ByO20IvrgMYF23pzpzXeJaBT6zf+wIWbit4PjWmtUnXJJmlc65YLNv6Ha9sqkXH1bDgPAUzeQWzINnD/eMHGu0b1tc+qT6Qv3CeWUvyDntGD9o53XXF3TsW0Cau4537CZc+p9Y6Zg4Y6koonfI/687bvrW0f57XxLNVT7Wqj3fCI5e5BbfyKbZT62/jTF99GtI81sj2WqZfSxs76TEMLt5E5y85J1z33gC1Dxj7Ltq1+1ZAnUINQ4YSJCwjW9LpLF9UcRR0VpUEJJ8jM+nXixLVSYTBTmR6JhjRBE4yYaeecXwsR3QDdQOiP1izeyyKqMgyT843e/ARno/oPieHK2EgTi1raENWAEMoiK2JJqiaI/cvWb/Nf03X6X9jmQhcfpT01/l/a3Prgr9rov/Mb7U+Jtuwc8mTOdqzV5GoreDgUcSZmjzwrbpiCIYKYFn0rbkQXPs1TtaFF4qSZ/aBDGXRDPG8jRQzImiEb2kh2QKgs5ENAnzs1y9RNR4/Eg2c9xSJwmLIMel18K4ad3A5NhJxhMxE2TT5jYel7khC5NBgc2ygFh9a0YRfHhXpXUa3uyRqR2paIIVPasmmKR1BpC8B34Y9ol1P+WMQxea8F4JRZXXgH6mmmBi0AqKH8QkWIxIdiCmmNHBAVZOfjN6BMMB4hpli9hkzT5ree3TgWDJRHQwJUHFsZJAX0cMIcdqBVdtrN463x+FBQIniadH6V+096/jfU4VHY0b5bZRgnN0o0QN0bqPmJLwqmMUuZWbOGKVT4gKIXCroS4NEqNT/R+iMjTEflWNhYxXoo5Nnb8s82e8pra+Wtvckm2thJyzvhpEzNMrWmZlqamXKgNK+km1MOtP8U0w/TTjmpUKjrjBozmbo294XJUcuevKpnOHfGN2jIhE8JyPAExdjBCbpC0w5nhaB2pCJGpckjmiVmD5MoMagfmZT8qOsJl20fylDF5Zh0kZQsytKOfI3y3/Yx2jIJONSz0DcxAPhUq4cZAcRUBwyqBdMfJXe+dudDN8VcRcCTjQd+TVGk2Nze5s7X7LrpIZG3pMTh+uHXhfmgnB5xe+w6ETugBY6rtm+k6LYC2n/TT8a/JHCFUHLHDNR12QyRgA3Y9k8ohgXJGIkUsD27QmRNbKXUMRtPoqJKelrOe0herm0ezDc1TMgSwo2meDYVFyB8YQ5Wfn6G55xAw9yi2gmtXq4aMaNarmsJW91iNgKOHZidpG/+gcZNzgbs1l9cPX/2w4GwlRnYTOIamZ8Zxs8yDZJs80DGCgdMe9MEfUPjJjbZyJ6fmFjLj1jDnaIadkzt4PQ6HI3MhbgU/ecTwS6ZRE8a0eMCLtBjdo8DeIqesLd5VTzMZaYjyi5eLE5Sc5ZUnIQYiiQmHDqHysRHZ3LJNb1ebkRd/y6hBjpnCqK8zUjIc+80wnwmPBiO55EZt6Q3kdF8nXSfEhI3FGTjC4nIlbU9R7dMi1J8cH5iZKs8l5IDQlZWjbdY+k/EcDqE0FDcGgjzWbpBZHT8epsXU43JjUf3NK4idrmrgxPzjWGfd3KS0aow4yLUPKR3nSbMh1rb03VtKpkMbQ+zfY/uABj++hsWjSlZVRvUAYL1JDzfSp1d12FpFUtHThiP65D5sMYbad+z0zCqA8yfTvueD1+6IGJfdpnQrFVqjyFKhOWysAWZItEdplwJQsLXmAs1iVRr02nBzUfd7DSerhepuCW/f3JyZmfrb7H6dHl+dKSRs5wUsaKXcqxcY2R0vvw07IPpnbWgYQSVc9GZaEyTlfxQPrq8XEg2Y+WYBb9msrC8HIVYRdZOlMtKU+nlnxaorcA+LjCxSj89ByR9gxDQWcLnjkoyNsXchFAiol5RmMv1WjeD+E0opAS1oBJCe8tMCr6MYtE9yFKtIPyH+D1RpvDTyxf7B5Ns/mYtEydgN55RQzVkyKooqrKBaqF3Mck4UmcL6nwO6kxkcTfQm+YJVKBcJ0pse1J5Qrft72qDdK33m6Y25zYhdE6JEeo4pkjPIhE9K8U0U2lVFFObbZJ/Q0ZryRhCTUsh2nOKJfGHEDrEt74B24aiQAvOrZJ/hkPlEOiiPInu4/LULjS9+ZaY/6fms3xrCfTyKaKV0CiQzcGl4lsNN8rfEg63/sl1n7R5y0wgVZlVVJQwLRSqhMPIdV3tfvPEygnz/iwqyTn5oKJsNl0tZGm3Y8PAt2tWWE1EguzNf4zdSsz23jpG+0tqy/dKMMo7uMu4G4gWTH4rihb80Q6to40kYwAFQV52o67MLuIk650wZ2Hg67BtFwggC5GZ0pDTiFoUrjLmGrM0hR/Wi7oiob+gkm3PIs5oGha5DPM2FTA+rBIjlppObPMrsh4OWQ7xaIFARteN58/AFIm1ntXMTYiXRVcV1M3wcymNp2ZU4TvFYjayzOYXat5lMQPllhGJaroqiyKGjFRV1kwd62bAAAdy1/L540DPr8L4AvqjDg4CyfdJchN4R26erANmDeAG7hYmvdWtvSD1rg8mTBMR1miU9YbdF3jfYOJY+UjTu/8OtkRquoQZMPlpQJ1QVzt0zxp9tF7Hgt8z5F62jvmTDATO+tlCZoHWB9ehmF63TtydROvyNJlHnTupfH7MFm4P9NO1MMX8BdXe29AF7ppyO3FMqhx8jQtwcLr96HMGU5QlCvqts90CyjP0eUf/PVTsL0PWJqJK/K1Z9B4ad5y6KyzBCuEvP9oVz9z2Oe0yxSuJ3oF3rEitFobaOGVbRrSDbtxFjxm/YavX2AErYFvUvYZgBlfceIWGXkEPHhcheLj1f8iYnDhBR0Y/TFCIK69UKW3+n7BvSOh3uTD0dZnKvHP1LvkjmW3AxSgxvE9vPozCEygXoqDtEvMh5GI9Hk8Akk2wPeGvLrl6rpiLX2KHL43ninNxy4maaVdSnLEPTY6HnVhwMC6r/yvqWCNjjiK56XfFnPD4pKOKoUjs7PZriol0PJ5OFK+5aWZcEvR4KDGuDRjFbQ1ZDGYi2UFpfGZAG0+E4npWbmwrGo2slQxh7z46IjtObNKSu1Prnvo9o6CZoj6OuI2a0KjhfwuFnjFDyWci0WcSIfMnAFqJRaYvy/Jlciz4k3TgmK4fC6R/EozJ1gJ/2WV86+8W3zLv6738EMr5KJSRpVaZJqHPqG0TvyzslUdwAUbKwl5dw5ESKbwkgK9Rwq7kPdE/uc4Ryzp2zLKOOO617pFA4IibO3jnjTfeGD54EFx0BX38dzV+S1SbVpSZGUWZ1qK3xNWh43G1KElFNX4c7Rna+W40PIyKrS/uK13+/lJpZJf3JDKvvzz/Vdo3KW6WWh9hJER0k3fTZ65zjXXUbdCjS0/81SMomOwoEeSgZrGZ3LVn3pQCYULLf4kPq+WqFrYJz3uoroarw6qg3wJ76j3qkBqW9ZyGw6mbUiNlNSzEeV2+RRfU8qeDsfHkkk9pL9lhLYk1SPllLSDH91tZIo60Lbc/IUXgG4z3BIMDmhyVtYHx8fm4HNBuwZiPCxEp8QG3NpqqdNH8WWtMwxFZ48Tzrf9L3ZvAOXKV96J1aju1qbSr1GpJraUl9d7qVkvq2bo1Patn7bHHM2Mb2423GS+Y9oJtTIC2wVz7smTMFkMSaAghhnCD8SNgHALNGpObZQJcQsJyJ/eRXCc3j2sDl+sQrHnn+06VVOrpGezkvd/7vZlW1alT26mzfOc73/L/2CATyQprp+3CItAR4iqy0Kugs27Ld1K4QveidjXnJB7oqkQh7i7QU7pZnJPcSIt5L75lPJaVNhPyM9BySXosEUIKe07AXSgR0yWV1frWsBrvz4VXCpuscPv74IWt9Nkrdt8mMaCaKpUKaTYNH7IjEVt3QoxvN9UA42jUpB7NVJORBtJtJNyNSLKaiepJVR8J9keMcm4kMj0dCIc/SUSJDZZ8hD0oHQk5uqxKIunBfID4JWjnUuJmbheogQZfOfvhCZyOH75bFR2gTvIXiXTO/8W5dCJBR/tNxKAx+0dp+zdRl1sniTAx5O9YEglgxl/IRac6GB3uftpwpFR1ivLl/QUep7XQ/xXUA1+9Q9HsJz0DF7DF/yJ5iPVr9FGHFVuH+6m7yD244bCv0IIYsggvIvcbVvCRrKzrS7ouZx8JWsbiQNDSD2eCqmrcLqmqKt1uqGowc1i3ggO7zf7klBYMalPJfvPKlHmVHTBfI4mi9BozYF9lpjzdtuff2IeenEhEuVGja1GoQt0mck7cS5G1N1297eRWvnn6TXvI9B6+I/dOZEdj+RhuX3cyOzqaPTn1anfv4krAnKEKlhATyqw99wuH2dieYPz9dIwCL9WgjaYtR2s9fASoGxlbxZF5HIC85hYCGCe0Um56mKZRtdL4jCiKqmrHrVrgsDygWpoqfbir1rDFjG0pUjwhqrYTyZQtze4bnAsPpmOGETpMQcORVEuja9QJDzVSQTGWPGZmjKCuEGJ1lR4PG/YnIoOTYdvUDMb55exyyJiLSdGCHvweNdQV2v4gDZFu/XI9zVZYpW+goylQNV5GvSpFthIGK2t2cJJinGQCuUZGrCZIcWNVzSaDJMS0qGcMtiVR0ehjjGBJNEq6lCREjkt62RDLhA2wwxtpcM4Jxo3p4F26fpfWf62hq4/r+vWWc0LXH5ep/BZXl+P/jhlYC22gxUK7hCCZ8b6AU2vOGHPGd+Pyb5UpLVKpVJLYjspb3eOCFI7KPGdDVdhPVEvdRXaqAfXqa1hym5YfZLtrvuOW2O8fQoWQUIBSNzl6Sr3TY+j5zYHcJ+snHXaU0U35ywE7GOj/FnaQpr/w9aH8EVGRRAqCXhKznFDU0j4V7g9v+yj2hAd6lGXfyo+JkiI+A4u5TaJqhvt6yqkJKVbOcRiFbkXR8waCFyzFqVdcQ6E4WeH187Cvn99SSacrmdUhTT85pGlDZDdWS7WnD4fQpOrby+yCU3BR1a9X1NgIHWFrtcOwWnNrS5zu+NQ0mufVHCwfKduI7hqnjgAb/Bcvxmvuj6rktViPHwwH9Wh/VL/XV5+ncq2VXN/0gBwRjUSu+y+qkON8ZH2WBqgZCpk08Jf+qsWr2ivlvuOG77bcK5O9utI8o7vbQH58fv+FuTHore+cRKOJjqozEB2O8RBNvuPeqzMX0JkGFTTTGFSCeUNPMu7aTLGV3GGjX9X7+00jaQ63NtSh3vawpqqD1qw1qKqzZkrV41tiJlt90+jtBtulD6XNlKKPvOaDnb4t9fSZGX+P2ahHB8l5iyz2hXWv46z6v2IpazYRcAc3TTPr9p1kT5EB4b5Zdi+yjXKTx3dVespVE/YISxftzbSJxiZ8yyNBgU0s62vVGiN6M5BdhexYPOZw49lO7CiKW5gINhoAd8WIODQkkhhhnMR2UdzOWIw6kcmcnMbt53kW8V+24Sh5Ps6mTDI4yC4Q44RsE2VxG5mSv0UAv4vvTmIe6b2QzXJdGWRAiAv9yH13ZJGlcgVmPJcVqUBM6SYFXrbCEuzQlVF+NJaaT4ffi2LxXCrWCqdfhTk/xrQru+zDgw+hHPw7vtP8UpR103N/wsryaZzjXXtglFRWIL4i8pQ+5LNyneQi1pGbF+7ccfJRcvMRMxrZfOC2x247sDlC3mfZUvyhYzvu3HH65LG3xCXbCkeU0HXzB2677cD8dSEl4uJMnPsjVhtfExIdn8NJLnmMNspUYVN5k3w/0CfuFePG61tG7nlJk9t/d4stBsgf03CwvWhayszBgBk+QkoKlV4cU7Ne/JA/If/C6rTkeu4XC26M+w4WJO2EqQWDQsbF4Ls7HCFGTXrh0ZMndmpEM9UonW5B0S9hxEszH6V6jE7vvf7koBrTtqOD7bAmqqTy5+9s0ji7nChDrB6mazSm00dNjU7vaj+tSWrtYU692F2srj0Z3H70SOSgSev0isXzXUnCxfXa4XiPK1qcPKfTUqnjk1H+s3InvWE2WaZ62ycaWfFJREhrg3we5/AseYKVPefznurquztre3R9J4+5Tpw5RoBxu3DNtTvIKibbj+MgOsH3p6558zU9+pEiow23+iy8z9dEdVpsvc8p4/k9pXvnmuaFNVrdaN3PoSL4CfxahCJa5HXhS7cRZJAsdq85g8kz3SSvOe7f4kuuvqxsz68WeW+OZ+IGKnYDC0CMAYxvydEGaAI8e8gSRgYQb0oVwHWokLpJxAgBkGCZK3hgGq04S8RbholXs0SCZfXoW+ob4D8VaIVNd00+jMDGz6EgTAENRtPh2IzrEaBOJ0I7RXFnKOHk8xN5N+FAJjvM9xii/nNwmNp0OAgnHMoTLIvinT4ZYxeXYx55Dw656o+8AEv8eQLAXYWZWhnEAQU2nam4uA9yvWICGGi0QlD8wXvBPeCpmX5Kw5H7P3H//cfGh8M0RlMzBy0raVnVZHJCi+hhLaxdDpuwHt7i7tsfLKcQw3wWfHlOzQC8UHh4/Nj97DGRMKX9M1YyuRUekhzVI+wO9gvjsyJ97HbYr6XK7N7ZIW58IfXEQRoRfJGQKk221oGdSptsx6Y9NtUlmpV5xmHDSer6i7wyNR8uVObs/fvtuUoxNJ8qa5eXsnNz2dLlWvmF7KFDWdd95IXE5qNSIzowMjIQbUhHNycWZgrmwUgsFjloFmbkV8zOvgJwJFj9K+TP2Rw1zlbau4QjwtXCzcJrhAeEtwvvE35X+BTjmRD5FF2PwGtqZqpZpk4VoT3dHIcbP4I+Kf5y08q/4/oL3avs/OxndxraqGJK0nFTXVpSzeOSZCqj0sXgJf4dKBPkxM6pqZ1GYJdGinKAbC0Wt5KAXCTaLkXR/uRioBMQ+fEl5gt+THddyDI+axvGdnUReacTCrJXxQ4tnJNLWcnpksY6LO1LHKUXwd9rcbK6hNZF7dVoYCmHeLkkEIkEyAMk6sQIZuSWWBduMyrKLl1ukdNV0EXfG4iuroLIY2xwy3BpPDWwaXjP2BhkrK7q9r06havOCaurvXwrZTMAIL+5Hj1+iwTKvmOii5tfaxa57z4Roqkoqr9DlzRbzUuQki63AL+limLiZU5hc5tPmNdfb57YnOMEF8+hHNTFSokx3hT8i+aEfWgBtF5vAXUiToMAu+kTyed96coF8ptdv5AaRMplxHLIyeMcORQK/cyyHrMscgp3s/4D9teGI1DaPBNL5x1QAWpsEn1Ce+EFzULdP/9b6j1wBfIS+vk+QD4pRNi3jXlRhirlHIp2wXQn4bkrlNxTBfdUY1p8naIUTPP29nduN82Cohz/0Y/OoREIMfHE/OPzPP9ZUpJtyLnhBsiw5SObNrX/Ca1CXgs224bRaBgGO6Ec8OOIerHmDwvXAo7o+bEH/n0aovXnwx11LNfAEgyIxTo22y66Qed7Niu/MrP9t7AlLE3c2FuZKGEPbB/sXPNQJ/W6jfI+CinYEOUmSMKG47xyn94it5vp8ertossSji7rwDw4VXKKHIN2TnQQmNYmvW68j5a2sUExuxcQZ4lO2m/4Lz8BNFrbSvxeqrwSzvY48C5PBTj8rHlsM6LPEsMi0sMfQYTaoD3996X+cDbcg4WG2LtkvW+ea7tNpLyElgZl8kQnZAW9T6fBO4OMvLwYJytxko7+PJomvvAb0UAg2j5ILmv/p2gq1Wu/MeuzJnJdEyhGCHFdJ0AHUJ+pTKg4x2fRUtxdPL1KEvskSyJKwE6YxcpQYTAlm1KCLUwk04zEUoG5Swd3DOdmw+466k9lWZYKMlvSKbqmVnP50aQsykVJUmQiaVRX5Uu3DS+Uk6FeG5PNIFEgrpXghFjxTEBY6Vw7djXhuLAWnJ/i8MuUs3pRboHP45gIt7xj34FgyLGlwEhsbObIppEIscYtW0xKipXK3XIIFiuNcS3CVryyvm3fyUcfPRIvRcLOYIw89Ws3zB8latAKJzZNLRxLWGHrtYEQkaYH9h1jq5aMIlFLj6tD4FN6ZnggmhjOReOuvQvYbpmwOmR8BkicGatRnxF8KJh+3MXaG1beEO0fn83lyOOz6YMBxs8xjujDfBc4mL4Lzudys+P9ZGl2ES6IsVPsAtyxCwQXK4fzfFGgWE2nyiuwXIcgBM0GViiEYuW8xRxtNn7vBNm9udUSrYBtSqacIrckcvblixOG1dKJpsVildJ8NvLWfVScbZ3YIeqg5N5JNqcT0f4PvlKqR2O6HbKcSHFgtj/kyiqgPxeFGUad9oGeqVRgrK+nRCyoLsS93zwCY/JNAyoc/lhGjWBr16GT1jZMkjWrMllJVpLOkBlgKSsdC6ERBcLhsnw8O1kJmJVkm02mOSMRubNn1+LyrEXGc+O/dOzMEs8CZbadTpTK8fV7wbO7EFx8sI4HEiO7wB6FS9AP83WMK0zY7NROIhNTl03xyvbKcSkgX45gyTBLtf/srCwpnz/1qEKUO3EuP/fLc18Q86zfaKwFi7iGoRhOqYlCVow3rTjQzSmGBGO9Pi6GqEGsbab5wR/q9KxBr1hp/8NvKUTdun/ptCTdeyU1V0162WbD/MB2apxlI27l/b+lBOVRQh5ZesXbLaJrvm+KrfMRrnctjqdd537X6rCrG8T4jHwhWAUjO1j/naZ61swtGSnjkgl0o9wJyUtyphVqudSJrxHbZwC0+J6Qxa7W9X0T6Gy5i6X25TCsoxtbGHgMk9VJxkWLG+XLZQ8PLwrbUUTiWVlcXl5cg80KGib+LwDunpqaIivLq8vs761orXhOYJvmO5tee3rP73l6Bzuy+0x+t/esNgeaFxQ27s4xXmGFUdatwn7G6Z/ksSNsgq6YENJilPhoGI9/DGo11Kj1gKU0FForU3S8AgMepG/zpEiBvnGqRjv2c6qTJSKp7ydkf31m/3DwGA3MmLvG6vsPsIVDdsqwqUmPU/3OYA0t3QP0UKL9reSovC85pB+xbW1c0/OTk1/dt5IcVF8sTE/mDWNcktSAGpDGY4SMEeFgvb6PPX1mtpx8qznS2N+Y2a9VbUM1KeMZk4hHYb5e21dO3JNK9FmXiJMLk0v3DeWqS2K1kJ8U97In6eyJe5IDA2NuDAygTzOsng6ABwDpkTLE1xs6bDtP8ADXCx31I2ddPNako4VEaCzNtlTUQa7hNhDlKJcPfv7B9ptQ5VglAkzT52BLQhy2sIXWyx81g7muIpLx7quYXS1MTBSq7ee4GtINq8E2y934gR3aUAEbivPs21QeRxqsmiZA5ppooC/nhfL9sXM+PrCtlVXlsCj1Xbp9/rKULMXkz2XnWgOKHCGQ17q0X5KiMgD0txHoFOD5zvY7pUI8KatZSeqTZiYmG0palvtV5QL5PpkGYo2i8sZnktRjIr7OXMnTDzfwW1/IO8sYxN42Hp9dxNRTVF+cfdyw8WDZyeuUJJ28GzrtMcNmJzFZZXThu7OLYJOF8NaMecdYZ1C2L2CskZpwHKIhORhDKeHFEWkWIQnhugGhTPKHPGNEGbmGSvHi4OpoHPsv7e+pJGDaoprLJxM5QiLfDBeT8QGiBvTdu6EXnVQMyvjARyxbmpTvruI48IDT3eRKLmL2BYtOPpfoC4eSAAc4EDdjQZUcRymooivjEfNM9DEeyw3v8yU9H0Tve3f/27/XNbNzPdFf9ue9dtRKWqMdcIqX+l0rWy1rqwdK4dkAwzp1K3hMlLKea0ixUEHmln2F6q1Pp8FmsTFPeiP11jxhcymOIqs6ed7eNgblPdE0q9mVWLGfNk/A8dhcYLelhUeigRaiybQC0ZGwZrUfuUcxlHv2F4axpFtS+WB/eAuXSRd2B4qK/bZAlMPoRQNvs5Vi4JMnyqJYPtHRKa6RL7MZssH402Oe3UQ30gn6XJbr3OYSGICEF5CWcV0x7kHdnCROk+1mmnX48ni1loiDBRX74gZYyrMdWckUebiTUrZPNrTNkdZuu58mjLRtp40E7bd3tyJbNEN6Npec/o8j08l96tjM9AQw2LIdi6miLdJMQtXeFtlW5JFPBuciWzV7IB+IxgJTBV1RbEptRdELU2CBnh+wtX9iNHttLTf0pCSZqmoymqBJajisqvGgonL9WGeO28vG3qs4bUuoFS5htUUn4U1x6NTiNNFhmLed0zvDNX1UxGkovVNdqdE7w4HfwByb5Gb2kwNs8hkPRFMWIUHjKJvnGmzi2zudiFqh3Cy02uyugffHFlD0bNNEmZrjkHtpLt5+D5/w6LBC2YRHnmezk6ZNuVMdYzoLA6NE2D/TOMCmui2VeHB4PGkERxoHG7W9IlFjfbZh2EM5HJhWeURDcXyTnumPJ639hM15BwrT4hElIGvskZc6uUJVFEc9HxuY7yC2eAt7TEfbm3DittiNjNMoexGYfTGWvSHimf2R5e2H3/vt9x7ermn5Wvr+T9y/raYdRLkCm4XSMStcDluxNJvqAqzH32NNpDF0xYSly44SjJogSg71U0f+FgoY/j4aYDOLpqVjS4HoEhfpIAbOWVEkHxICYIdYcmrI8NWaELknygZfsdJB2ynyELXodeKQVuJVn1GDymeuyW6SY/KfDcr5e9MsMbVZicuDN+XlQal8O+jQby//2djTqvr03jfqOgmUbh5q6vp1D+rGsaGbS+LQUDpTqXR8GXJsHspDOVyssI0cwl0gSo8XJLn5qUHLGmRcNuym5o/ed/Qsd0sI1Q6ZM24+mHKah2pbjx7t99wUOC9IIE5gkmtrXI63J0pxGSRZLp9xtxVUwkcS7A1Ht44UF8OKqn2GwwquWIcZxQwvFkfYG+47mjgSVoLtNSyGt+7PsX6xBf0hLv5tTYxZjeMIwyc1mh3sDnrhr67JUllhfPqQIcphZ7cTlkVjSKVEKctSjdfHc+dXx45RScpNKpoRDcZiwaihKZM5WRwt8Crq2qhOcRxyX/1ctHUuVHHrW2pdJa51KpGVNA2Qw5aFO2y4jeqUcS7CImAGv7SyiZw354C23HmDSxccF2XVaawv+bc3KHmulkmEYrqW1vVolBUKiq2GY1Fdy7AldKh49KV9FR3aUhgphmIauw0fpGqH4W1RnhMLJXo/2af7gzFy/OWMEuUCl4GtfUftyw64p+ZFxlTelz+QiptOAaBYC44Zr0xvPTp/0TH3ff8JGksNJFlmMtc3cHRr7ZDgp58Qs/OQ16rnBQ73tY+7dvUuAbEe+6KYS2cnSLFamALay1etRy1qSOEpbwBXocrfy1vp0wp1z20tzVfkfJZlxksJKSjlM3gdtKNCpXDVG+JT0Da8Vo5QpXuusGVQChIRqiVRimfzUgSu7MjuEe+xzGbVxfXfx/iD9Y3Byy1P/6oR5zmgijPeF26drvQ2jvu57Vffd3Rd476600873zDQl8O2GUgN4He2oIXOa9e3dcci+xbgFUYxLk5HdOBwV2a39WAFzD8JZbPrKIRCWdeP2Lqe1jU7Ak1UWaiMFCNBHAx22E9sWXXDiGNXwxi0I9gkW9n1iYit6Zi1nlacJXnyVWEMLH2aXBTa9BwjvBiMHRdkH8hbwnOr/PkIK9FIdigGlmexJHs9BIFSVS3Jc4YqULTJ74ywrnXfSEZPIVBbMsgvs/vwMKV/a9KdfaDOquTvyaIwBDjXiEjMF8K8cVXqqjMTTq2L49hwvPKQ7+v6rBJMAiHRM95bga4kg8pPsSzPeAW0rNhQ1is/O4DSn57s0ng+74YxAiaiI2IRPAritRCjCezpSAs+xdsBxjqoXvgY93qD92059m3cd9CLY+DKoPndb4MiHyUhvOvVMCLvg3t1X5xZB7UeXI99XLiWlc6Hgg4N5EVG6ERI+HeeJ2fbrY57TA0dkw/h9sTLzCc5ZMlwc4IHZOEBH19WdpdmrKCMdRSxq1+CnYaHJknXaxgYO8FDpHGpXKubbP89irrKzcPcPOFwM1w8UHxu/WU8WUU52K2HmyMgdxhpHg6FumX9Dxj3roj+ER4B6MGQx7mWXrSMh8YtyzHNiQnTdCxrvOeo/f6NSnpmo0vdo7kNisvlgMD7UdCiNjz8Tb9NkWdS4xN2AHPzV27vn1jgNSd0lTBndcqJzpGFCcQPQAWvGyf+zGm2zJd8OiCw0uBWJGz9AxUw73sZXaeD88xWydqhmXlZUttnVEmenzl0eGpt+lDVj/7/vgmwCCFL54TKpmnJNKXpTRXC0ps+6dkk2g0wIpkQOvaGXnlgrO25eJl6Pct6j70yDl6srC/YBnezN+xnukkOTtj+kRu74yJl724mfHFfPNkx90WkPMYRa8E8GM82e6Ap4j6/cYjIKObaOXI2lwuxxRGKDFm/EtywSkskt9ZqraRjIRQseFGFllZW/t9433J77f/x9xUv8r7Q2Yu97t/yPudi73ti5cKvE3ve9RLedOGv2vAdgmsv9gWyk/EBcYj13RE6sJUA9HAHon5P3DIrqXSKBqT6cS3hUMKYj3sfpraUEBX6wBW6YZE/sHSt/T3N4fjdBHys9uLMiZE6PR6t6Ym7GEdqix1JV5dvm6HcS2ROBFsSB3ZgoUGVo8BjHQWuwsmORyIT2QSkea6kSqIkS90T5G0KrS6ziXl5iiCPIUXCkYiISS+f3TQEJvbeKY9W83l2TJjlY94tegEJn2cCFHaL6/lg8muUrgdlHJ17XXE++FKejaF5D7pLxjBNeJplIQwWaVlHbWMvprizpXtZq5v+NJrtPPuwtdewZzq4n4iPNipczXi4bgnrG5Yw3v2aZnzDL6v74zKisX3n5pY6o6qplMp2JNdNr+G2fRZzHkZkD9bvTuHhCr/CdzEmW6vdnL3YT9lNe/HQj9+AuGYlIKQ9GA7orgblRHP3F7wwlfQ6sORfQZtzHray/ULzOnAJ6MYuBpuR/PkaiXAtvs6A3NU5oAbhjJeoTqKZYket4Eb9heQZDAuNOjDOl8SFJOOqmxAtoIRsfhXEXSjfTKCVdIXWFG4qzU/Nyb5ztUp0PQMQLnfFh14wbuheKg0T0OMZ2VQ0sDUQS2WMlb2nyVOFLcU6y1QUUzMV98Qzp/eGurYTT5Q1hIk43Xeo7zQkHtTKy7A0IpqzdaacSg3VNyV0sno6xFZsPNcw4qGE6Z0JnW4/5zP9rYSGuZ0Ut48aDrX/xpPfc3nJCPD0nn1HDCOprAMsmcHwKV6cNjQXJTgX7qzXd2KTPsGPis0BHsJ027FtZA2F1ztujURu3YFJ79iaPTyO6XZry+WXb/HbiUFZGi+rNBPg7Bht1Isx5+JlUgLTW6cDT5tnzJdSspXBsbFBImQLhez5dfWri8V5dhvQNYsxcupCZQJEoh8c23aGrFysMLg5ffmWLd684JXlpZdEvXgZXsL7vXf/V4wvMc8jjXOPYvxS17Ld9WSuuZFveaJ2fmKmQf4qEA9oVU016XNs6lvOZWLRtLZ+Q5btROChWOTuSFSipmobNG7fkBldiKUzsSp9GHYDVdhO5jCNkyc596KLKz7rKycvIyvgHESs4At8XiZIZcV15STvM6KG0i/1h75uOOrrWTKv51hWOKmxrRYyVc0JsYMkaZkR871O/I5Q3NI+YeejSmDsn1lWMvzJ77Kdaoa0v/5UKJkMP3E8nHTjFgvkI4CMkWDvqxd5+MzOvjIhooYGN1yNw+OXfNcJ5wCzPIdU8MyTVkiStcHoF/r0TGBZs8L2w7KyGNYLjuawH+M07V1KrC8QCdH9A5ZCW0rMeM5OSDnitSWfo8qMQKJDjg+wruECD3f6kBMFk/oVc9my32XYpf5f0yJSQjKMfwB7R3LISKq/E8xts+keymaZ/pKl1fRQ3mH9JqC3X3TSd6OPyJookS+jJweiy3ZbBay84GvrlTIEa2LNU0MLEtAV1prgtx8EOAHyV7mIPCjJKaUv9DdR+yGLJPLWtoooaQEtlJaLRlWOhMxYUJwJVuVMLiyPmQMyuV5Lh95nmiN24IpgNPAGM58k5qbF39dCAV1k17/vL9mtoho0/+7LobCWCf3BA7g+lN0+tCaMC1NCHeNtxrvl5Z0ozHX+tfq6PeyUYrzWdH/sOTkpYZ+JWSu8HzluI7m/c4KmncC/M0uK/LAdDj3B+xGJQYM/MwTboSRsYfPKJfjnYfzyMgqDLqCkq7AEc/h5DocwsEEByX8oOFim51TbklpUsQb201BpUNsFqxss17NOeBELoxjKciCj930hOhgMRZ7kvY/3xLDLCz/AeOE+5MzYaKPxDZb8NZLAiqsX3d48KRYTblyeZtQHlwu6BKKADR5VLqdKQ6GA1yveTQINk+jEpFlJn9bFgQgRRXbYUClhDbpdl0ZDRNdGJX27ScgSYyNHFfo8MKPPU2XUav95wHyoUYhdTunljWzyIUBjGTK1N9Zz8Tdq5job/SDQ1hLGEp9OeFGbouVKA/XV/mjZ3NeVZNJZJ25/D60K5VFSvmWPHgzqjmGnxqidtO3nM7OWG91h9bCYnL7CNtAMZO9lgaTg1z/3xteN98TX7USdx/i6GA71f6ApdhttPVb/F+SIobbgRdflgRaiuZ7out01fYZxp3tQTuUDCe6JwMI+VOmJ16JcOPhlnXx6fYiW9oFuAJe91laWCWp33JFcb8SWQSvXDefytu517E8Q1pW5+TLL7DPYvngZ2euesi5etDXPBPvfWY+9yP+Umz9wG5uLlzFQ1fW0plerKE2u9hxdtOSrG93hHgnnfc+Wl/k9FV8YAwC+veg3XMFeecsEyr4v1bVfv3i5l9K6dsukxkqrHdW0d+jduQvWg33ob7gOhyjhopuR71l9jN+puiKYt1p9JK3ZNo9GzdciXz3BMnZ2vx/0njqi+gjNxHQzjvplz5S+OT2DZrvTjIouh7PhhGzJiTSKhk9bVrmRHHqTJP12XlHy5G9RRqwlG2XLcuU95/4F4yqusdXTIGoo0bcmf548tDbtSLCMQsrYXW9wm0ZcCZJ/taxR3W6/Eb7gceTq32frz3GhJ9KV9httfRQvel+L3GqaYzraiLl+ae1NyyBXJQ5m6mNwPpdz6+CHjCf4kGAINqzywjMAwx0GmUMz7ISjbEJmdW2z2Rgmhbf9R81eW/u4qlM4IPtUyxBn2yvzkqFVyUqrvUK+yKZmtf1RPEFWsN3+GNd7cR+VQ91mh7atQYju069XA0uQIGvlVPtsqnyNTOlRdphLldfRasfvZbveN2C9zI8bij+LNl7c0KubdI3CP7va8a3sbHrtv6kv0sqMsuEbyInu3ec9t2uvs4Z6DG5D0HWW5pM0+M8jfosn8+/oNpaWJvPts/nJJba8XFspz5TfiyL4J11hfvs5XCyGcmBcmmMVVn6nX0wvu3zfh9kc1xAWQHNZws5GbRHeP9kV0XuMl8dEMJ7GF3qn6UtXfGmxBeG6xUDcar870i+lUJCw41YtlZC1xX9e1ORESrt1B4gIeJmW+e4s3z3LWMbPmlHTiXwWlx3vMuVQynzVq8xUSDbfZT+9gWS1u/HszM+SLzHasAOpMnyZFxXCg9fu4GwXXbDtZifhWvD7IOnBMKpIyedE47CzX9GIRozFILdXsK8LEWOYJYL72Yb+yiuedq53iGGs6MqQcczQlUtxA0fnZT0JUk0F+buv+mKYj3el/54eyItX7vWTKMQvc/kq0vjAKxYWXrHwChQ8P+hLn8rZttZ+lFoF2wbX4bMLcPIaFE9/1ZcmH0lZjIKmLHLGEJQeHgnKw2rYCyPlBS/yIiU1PD3WHLhwqAWAVgCDM4DSVNGYDOBOsozvZwueeoMc+wT4V7a/gQPocbRh/stsPJ6NX6pSyaR7D+ylpkTVekZXDVG1A1JENuSIFLBV0VD1DDkNTp6f+DAOtivQBnpnHO4/SKwAFcNhkQZM0ZInt0eT1FZUFZQKqqrYNBndPinjuPhjXFeDrXU/GxmCgo6OjSbYyFWcBIYzjLhfiIbuZQQoAFyCOIaPA5RNbv+4jfckh/yaKCri6zXlDeT5ecVM9imD8mAqNZh6tSpqNEZvIqJMBhbkZJ+lNEJgybWNstmPzhP5LyR6ht38lfdbfYZpnSBbU3DjV7SYym59QJRFUrntDy1LTwbe87YYLOLNaw8z4qJ07HxVRsOzjFvagxiHgMzSBN08AKKsDzRT4WAualb0YRfOkeYMB5PyiNvv6CldFMXHE32T9tc821/CpvT2/9ok6oOatAlh6DO6pM1okp6RVemzyfHsJgRAmaj/VTarGkaqLzl13bVdcV36Z49r2uMIPJ/N6go9mh11qPK4QmfYGuxnrP8/QL7OaGSNjefLBMFBaDdAGuSOqMWK6jSnEW/CzYkmYhhKtoxwHmDl2AQkD18GXXf8ytb4xLxhtTSSky1CZnO5WUIsOUe0lqLQR3VdMll/kdk/1l/Ma8fHNUPRtVJJ0xWj3N+vGSpryhjVVGNL6/d/v2VoQ4ohSUdM9corVfOIJBnKkEQ+FCqEFMKeoNEQu1SVybHG2xqGrmra+N3jmqbqzeKJIjumWmohpVGVzROWq/db7Yw3z1d6j6dl9lYnaidemUcNevcdTNwL5F/o+hW0xhvChYSC1nzfwnTUl0Oi52X5L+J/38P8NTwgd+FTfxMP3v5ysi7rxI5TXdkx4OlBhMe9wpJwA+vprgnjtGfGwUhimccd5iMTLXjrM3Ninbu940XeV3u1yGXDM2BXANgVcxJiACu00vxuKAlWAGzLJqupd54MxuPB+XErFLISWac/sfuG3ezUZfjFr8KtKLAMcqRlGpKo6ZZy5CbSfl9hsfB5uAdmatiz0fvRk5f0j6ZiUX18nt2QTfSVouW+6d27p+H8JQ/hd78Kt38JOSIhO1+dkOOmostE7H/bMekP2UNRbvGLc18X30KeFqaF7cLdwoNsDixTCBFZRKePYoXTrXkR5StgqAeuOkDeIMkBsWm5413XbNTKpURQRHRFINrcvQfB4VWsHLZuaRbAPgbNa2sOPI0WqFpMIEgHq2dSzOW3JWnIZhyoOZq6Zge1pTEtuHnY2K0lbFGLBQpDZoQQxaJOfHzUoIoSLxmJYMwI6QmDhsNked3Veqz3at3/gvQr4AWfwzspPCZOpJBVC/T1BZy0npcV9Yqgnt935SY2LSRoOOooom3SgE7EgBFX4oZBt7NWNcIaIygzIa33yoDVc6XS++A97Bb2vmAwxmVI/4p+9l/DPrpTOPJv7Z+lRAfx0CFop+CuB15SdySf1/XjbLmlacd1rf0Ntux6t2xIsNNeXi/8TY09B1Zix3UdnqO9W5bZWu7dumuD/UXXBn0esD6cjszivEQTEhUu8kt05ZsQla6B0j8V4LVjUzFAMmIfSr385nkJ5E3jV4UDc2+wwmHzje9nW+v9r7ciJGR9bMCQ7aT+a3bQWgyFbrVCl5SopOtJLRBgDf6/A9sir4vHZ1iW4dBD8jWaZOgOvVY5iAntJCFhJzJohdWwZYXYxgzjJsEYBkm90oi83YqKUTn04wl2O7slbBYNTSRhoxpOWFcG7R3sRVQyrpdeayQpe8n98nU88VDZCrPSIa/6wrkvMF78y4yv2+ViYnvm5RVJpVFgQNjIc8CfwnU7gI/GELWev1XD8YZqo54AUGBKp46PKiATjam/jEW+EAknEsP3hgKvv2NrMNg9VR8aueI9DxcWZ1PJ6Eg50mfGrEifrUS+a6bMo6ObtRhb1EkauVEPtJ8Xpc2/H44+OXRTMtk9tdc4/keV2uying7E+iJW1OqLpLb1ebT5RbRX6RNywhDOWWABymbpeBnwn9BCOw50ZKZZZxTGqQEcTn0z4SyswjV/HoerwCoEEYVgA79iHdgrQAbMMqaL/B8BvSnL70xZhhJQFgMFwwhcpwe+stQKRIcxIO+La0vRgM5j837EYH1A6zeUnD5gRcL12FWRph44emlCjMW2sOet6M0vK9I9SdNS5EuIIZpW3iRXai0AjcRHDBPhbCDawjRb6ZgWe6BctmQjFFfDl55t6vtjWyG4e39Hv/kltpaGGM4dros1ZhVV6eIUeGDQMmv3KijeEUq8jJBXoHSUp+ck0E7WZyqiwBmuyPCvpW1H0xw7/WvDkQWZFvfAMQ2FAxFxT5HKuigN7hYTthOPxR07Ie4elEQ0LCA0aeeujOumqcevzNnJBVXur7FD1dRtUuuXVVsUZSk1LYaNgKoGjLA4nZJkUfTLhoD/2AmRvjr2nd3IY36O0rUt6Niy4SqZrQEAhdTjJsmnQX2OPy6v5HLKmPUdjKRaraSV6EhUiQxEAvqn9QDJgcq9xcVJnO3kEqYchlf9k2iyoGnB/lBUM03BH6MMOCeQGu5AhJl1OubE+SX0Sw9+JRozr9o28LGx9/eUO13BYp/VTmvr/nrB3pd8xS8kofTbAFFd2+vbCuvjUvoi1Hr2S+J0c4JA0PoCD4rII9SS9N6Zmb0zn3pykz2Tk+T4UFyWcjO2K5SYmoGz7e/v7M8TSkm+349PGPQs487zFIQ3QgUxAqRepP7IYldbj6pt3CQ2qiUUWXeWEzk+VFfOqxmB40zwdtXZrDqALTsvXOrqjAEiqiZ1onCULoC97U97fZQDWDYQNNbtqdC4L7KSVcUWb2OydH5rvhe/5z+Jhva0xhamhbjGvkuz+yLQzCFw+V4m1TYoTX55XrvyL/woDVhatE/TzBifR9cIyMgiuOYRonG0t67iBMohIiS0F1c9qYtNkf67rIWHIpE4m9tfJ/V9EC9lKT8pihDWVSNgsaZB5FZRjJfi2xmLDWqCHFn6z6Vqff+BenXwPw/NzrZPTeZVi9EGXdbJD6BdfkAYmWOkwqTxUmIRQPVLkX8EvcM/RnxlDgoFKPP6ojTP+4S4dN4HQO2veeXJdQsf2rjoJD/Z4sX4GBTjY5Gq/wOG2mcvUv5J4f/rMt8MZb75/19lHubIx//WMlM2C27prlhfVllLjV0vpaBX4SIz/nIKGOrxUwHfoe3CJYxTv0J4pXCzcIfwWuEB4RHhUeF9GMcYcTEYnW3iAilcDHPYj4SDYTZiqicB8xDyvdV5b5zv6d7s8y/f+PaOgE1dtydv+QCNUYvSPjEZTeQmWpdtaQ6nNicw02VacHsct7+B22mksUu+HP819/rSfHsJbh3flsx+gLIXxGj28IA1kWv/BZnecllJMyOYuxef7/i2nBfDP9+x/4rmxle7ab7t0f/s7rExvwBMuN/mHFrL4f5TKAJymzJDXL/8HEqdzwm4y3Fjzcn8SHKQrZ4sTbtWh21IDuiRQJSbEeVGMzm8DC/OZUb5I07nJwtGCm7Sr8Vbw5PRYDSA8SO68n+TzV/Q1wRFLSAcwzQ4TaP/XAXd7gEHCNKwAGAjA9bmaoS72KhldOVlM4HE0WQccNd1I2x7Eg1iqvtUaq/Yr1FUm8rKxPFtmy4lYlWRqa0qmS3DpbooKk+/afespBKZlMYi+dFG+pKTI4MSO1SlTbu+hmNq2HH6LnfGxpzLP6nIRlBTR+e2XS6KRzZtH1O1oCErmaHhTaJYL40S6U1XL9zWL8pyfyx5aCJTH8tFTu4dP5QUpWifLIv9ty1cncEh7dpJev4T5/EZSp2Da/mRBshpgM7q5aAwcIVPLygsgSfH+qhb/qcspWPIseW4rW3XlyvsamPCHNOkzIFNAC9xPX4iZyNqwJZXJ/NnuCyzB95gp/Uj65fkNGScyU8C0/pun9Szalkzng+JZwPpx816o/DrXjm6ik0n7rpU1WvTPvPdl3xcqsWLPm+smebLPIZ6P+sZQqsRdWSEbS60b2cvelqNsLrpsHzpQ5aqqlVVvekCe4v9VEgvXTiBfeDcL9jY+jqrz99Dn2Yc5571tBjvwBt1CAT1wI7q3TASng8Ix5oFcQMXmjU6fiEgd2CJLBkQ6xjhrjHQVeE2+WzAlrj8diiF57TZWcs6LixUkJCnVEkKUTuviqoaVC0Sna8riqkE5Jih5qgeYylLURrzUdFk51VC8zYNaXYhRVVRJibd3WrtpiaRRZWmCrbGHyUpclDWVPawhixbphlD9XBMtmVLltmziAXPElV4Fg1s+KyTUkDpD9BYSjVFWaTqnsFDdbbCNhUlytEgoryYjUODe1TKbrfUVIwG+gNalGJRqRgtlaLsziB7Ao1qAXwalEqGWEbe8yyr53lK3X0ee8bFnoc2ZV8UdfINIQb6dAgVUOk0ZxmIIzk7FKsOniitaY5e0/S/jgcGpx4hqyOPTA0G4n+tazXd0dZKJwarsa5N7Cpbr49AjLIoktlOxAb0yG1MO/HEdHNOrDdcl2eWiE4QbhHvDtfmmVApFyBBo2UESSA+EA6JYyJrdSJLkKAsKY69dqwQHdmEEb5mTXbuU9eyG60fG8Gg8WMtM5IqXBsMvUMUzT1bSCikvUUU3xFqf6t47MBCmds0hAxG70Af9y/kc2DDR7yYOG7gUgCqaJSpug4gmQg77tzx6Mlr9xj6kKZV53e/kpAbdy1UR0wr9BbDzpqDe8hTC3ftOPloS2NX0JHrdu25npCxETNrG28JWebgLp8fDsQ9zHPpldNZdXFk6W1oKEwvkF5HnTt4cjkPIoaEdB+D4u3c6K49IHMhsth+glEQEjuLiCwX2HysF36uV6efxgjvuG7mLci9PxsdB6umgprgBMDNuT7uYCXuOmY3yF1TC5uvskVjk0pJ+JErr9876NVX+69hOzK1UN5Z1dddQLaM75nVdeX4XbsGvfp/bdYcGc9vKvVkQ1lDrM4/w+q8gD6YHlSDz6MAaH3C9Q4X/f5P4OnwxP2fuP/G/WnLus+y0rNj/Wj/kyGFJ9D7whqyTh+7//5jB19jFbiJU0Ef7EfjIDZvXPcYRJp+zPLGyC9Znb2ZtfwUK4dnvdHhsIDyIUKrZ0vK3Rk8qUCcPP+4meXxRLPm47T9jHUU2HSYw2F9cdT65OPsm5dsY8mwl1jNPU5jH7dmh9aGZlmpooG1QLRTjp+hnrMfypH3qsHDi3Td5aH9Kkjz1xXTIavdV2IRjlPqK1nnZUP85d9gfG5vwTjOOvSfz0G0VdLTXxj9qZQBAgs0KBjWBWX7RLhhT6dnjFQXdt1IyCt3z1c1bUg39lx78tF3kqe6XWFkjJDr9+y6boSy01rr0b94VPDhVFVRp3DAQ+5A7oR1CC5md9FNQHLI/eSpb+uJjHgQDxUhXsqeeclXUsWRbPt0dqSYyoxk7UQ5FcpPBnV1aFZVU+WEnR1p/1+o2VohivyErBBt6+zWEuYclof62aSf7R+SE8XsSDSTKk/m++Li7FAwXE5loiPZ4lWowrpPplSO53JLXJ0nd2Q6nP+a4TYpPa4ftVIvAxb3onvSeN4NjkHJWUY7VoClCE3myRPeAWHb9hqaM+wkSyc07WFG+XJcJiogc7bopdOxnWgesVRddq/jepz2uS9g7NUA2usM4VqwgzKXiFWwiXm82wYCGQXFepFN8XXykwlde7WuT9hD9lb7R5hu/+J+KyImXhEz3m+w3+CglWuR6Qldf7XGrmOXDaUx3f5FQoxY9+fc605VWzlrkNu4eOWhrMYE4vA3I8tRQbyT4kr7n+60QiRA/t62N61sYm8n17O8AAlZd5JhdgiZtu9ZX2K0PO8iyeIz6ABqAlWghYhA4X4v+Yn3xD+6/LKvFe6cZK9RmoXHnJsQTO9eM0/u8Z4/dJRd0VTYSyfvLDyWuMk0HdO6x+K8euDcfxV+ytqckeImt9ApeJHEgU48PsGGyDE26o6x4TBhzVo3ZdkhO8qSCcuCuV84yOagGt7PA37N8IhfecQ9fIv/8sfWPwzWCuz+L7H72dRfQrqVJSqnE2j5WCOb2RMUSVLYM9rftKxn8RmKZSmdh7jfcZZ9x4egHFFuRzTtRQdno6t+Yv2rScorGTy1s25B36otnjVWAVE/eqbupjfZeDAgHHilg1/AqA94tizDHH3rrUBElnE+h3T2QvmnXsI1/nyfr04cYx8KveFHUI7DWtMn+e/IW7vob4vlmTIbc59Bk6+96qdV9sdm8c6KDkz/0jNoEXZDTFVjqsDbm/XTGiBbEj7NdGAIfI1fI/d71fuzToIk/G3Q0yBeG36RteGX4NlNf1es9zRo/DsXfMzu81/aazMIRguuuIbGu4Bnrj21i/L+rj2aqt6laXepqrbHalkupvub7w4qkKsE77bW2yKy53re6Ygfx21wETCO9RVy8rwHzG74pvXP7FhUguMhKyirDtU1+n7feY90tQm/6pkNV4TVrPOYfACU61qQaxs+4IoNvl7s4JLEAQ+Uh/rrMP3ukJAaPSihNY43V8yH84yFF1usY/+UNZxD6c+gq68Y9sfMbEeiMMTaNUSN9guM2SSPr0DX/xllF8foT2EwtM9ZgdATXk/Nskvba6cN6vEkXsyF4gYxF4oFv7E3x/PribBwAgZa7iu6PqDpX8kBg+gPqjCYhXPagA7ncIS67/wp4wfezupjVBDCdTdQRnd8sBIovrgb3aFiG+RU1lykdJGRoscMm4vA2o95eSQZMuwqK9Ei+/ZF9saq/Q6UbfXkdfxdVxCXEXjCrOjjR2a4U5XjsiG8y3dhDiGarpjKTPTvr7dPbz3aGLlmYWxfPJkZmn0r1cztaJq73dToLab5A2Wwka3vP7p1cl9QkRauGRsMzQ5FbqYxRIlYjsE1L6ssPb3QdenYuCy/wUtwS6dIG5flUIxf5Zaoa6cE/VVio8Bk87WDSLFOsVJ08s1ijRbjNZDaSXlJLVTmSY1RefIPV964q7qr/U+7VhZ33Xjj64hC9pDkI2zVvON1N36PHUE00NXV3C9FSRTOtb8sigu/PCdKguv79kWyC3GJgDv35lQvViSsUtnXk82ntJh2yrBCraOKBNArXzXsVsiaXda0ZTNDQvKsEmSd4alMx59uF6OPfbjO7qBuos1s2KWRDtkMj7ONrwLgjKQcZY8z4C1kr5mBIEtBZVYmoYy5DFwVcevlS7B2FXqi43CBbG39CrE+Q25+/ZUIbzeazYxUu3G22Zi7Yh5MII3F7Mhodk86htpkttnd8sblF3HOAhs6wZlQXQscWwHkGpfz/URyW6pgBqTl1WUpYBZS25I0FUP4jEbxxGA9UegLA8xuuK+QqA+eKBrP+TFkWP0sIU/uaSI5BtL6QEA81KI7ayc4DWjUVH4ejL5dr5p1+xgAEh/fPtuxSp/dfhwB/xamNh3V6SmMF3W5aV7u/YjAeunC9XoBr8JNQb95J0pZRmqHZPXgLOvEq7NDq7D20kJazv152BTse1ook3R6PJJcYuahDzfD6FUfxtndQy9Ix67H1cBp6xmL/fWqdtvcKekKMmtZbOnnxWkAW5GMMM4oOmhzdwqXuOjVHf93L+YIdxDDKEG9UQVqrNvUwd3WK5tSL6hxtjyOJciSprU0LQRgBJooB1VqayQEK78XMSx0qFXq7y+1nsVaJMss2SqtaqigbRIJrSIMWTtx1h9Guv1Ef2m11H9OQFvp69gTzrb6S8hPA8b/A+RP2FqBVWap0XR42UEog5YsLuC/QxoeuhTQImIFo4uvfU9UTipRNguQDyqi3MH4D5BXZsJbbVrVoqeiN+6g5txxltCq1H5EDigpyyBfR3T/9o8HS9NmeDmiJOXo6kq3LVfcthx9eRYQfg3+x3+13n4jhT3I6L7P5qffBdTCKK6Qs7KrvpgjE3LFnZK0J6z0zOKB6Wy1aMZlnY2e7ESjkLae0Ij4mBEILhK9b3hhbOzyPs22BqbLmWhAISeCAeMxmuBjMHTu8+Q59K9hYxyDKNgSVSsTUn1mTkICJc0xJpp80w5lJ7ZtSkciIwdbFUmhurrGqFRk//XiE+Q2JRmcv+uyHcOmpoV3XPvgHtU0NCouynJ7d+nDt+3riaHqHxud+vSNDZbHTrGpn5zuEqvfwcFxxmqDr9neXzU8fPYOASHLaOWEsMDRqVELROG9oCkqYXjfBIbRazamJogHVtbwwOcaE2KlrILwOR5zaiAY6OK3eb4DH/vxxyp6pL0zolcIGGFEA7qui0QKfRcLvYPjUDuEyFQ2ItK2vqJ+u+4cMMIwLBR1gp9f/di9h3YEgzsO3Xsze0YgqqaJJJqB9lmfJW9dMTRVlHT9KbHUFw4Gw5noG4NgLvvDHrxqwD6XUC8iRPPx/CD7wg6uCpa97tkbFSq9EET1FdJqr5HT6Rg33YAaZnXMunLsgOcED77vJLd2N1vvc62Ql0DEVsQo8mFUUFgdDF4ECYpsRV+wUH0/b9L99WbxQHEVXcHu3l9H+shOhkIdXtHVfW0wKmENfiEXwR592IEdO3R9SNcXFnDXc9SrJmv/cKNr3COffVGO9bIxsEZ0OMpfRaXlmSbGKmRjCCMXsu8vV0qNCk3QpspONMlyNL/3hhv25mKZcLrRSIcy0dzeZ/bmoplQutHsD7fP9fUNJOI/7+vLxhNHKwO7dw9U7Hx65x/s7M8Hy1l2WLbz/XBYiBw8aOzYcZptF8AxT+uUSxYMVlcQWRFKyOosqtJKwwEcQkeBYMIK69FQPoirW2LZaskBZEIHSPC3xZFD9ZsnNpHL5tsfPtQ8aJCtEx+Yka9778SseNk8uQay2l/FrKfhUvKZg81DY386sfs6eaZwaETc9RsTH5i/TBxbl0H+B1zm6XS79lmO30LLG10NF7/NO+YWWrfioOGSMBfonS+nKph1JWY94bN71xj9+VfWH/PCDmG/cK1wl/AQW7VW3OWqq6lzXTU9Gz2QF5Qr6z05PRCZIIk5xUbFcT3OnERn5p33HlXcIK9ShNv8AugDBUlTawlVzagJ9lMTNVWTCg8xepGWHXmG/dIS6bPeHSCTWd3S7yPyn8nElv9A/rmk/kiVEuqTqpMKvyGcUtXT6o+vVY2s6qhplf05atZQr72KiLtleWCA/3aLJDw3U99WzGZVXX8dEYuyXBSJGZTloCiNqOqIJNpw91dO1monVS5IEDu8DcSEEqITntoO5qSEQzEiKaOiiU5oKsCHiEIcDRAK5afjr7OCTrgaSgatwdx9omiLinhHJpN5KpPJ189a7e8ysj5kkTvleABc5ANxuW/TfewaxkfcMV8rD2mbN2tD5fIrDrZfhYHowH++Q2P4GiEoRFkP6kdv8Arr6ZNCjfFFWxhnBD5tEEX7MuG4cBVr++uFk8KtwqtZH7hXeJ3wRpCkxYv5Yr0Gmt4S24chDT6jbkSTKPukIvthEDA3SC9xj/Ee9pPYPXjM8vPuPYDNhefYr8J+8J4Ky2uyayn7Oew6yn5rrRZptVptodUSBYh5ck5gZJjt1/A/JltEgOQKJuDfCuTDbd5+zc3myRWe5JlwyQo+tuW9Al5G4OlkhR+s8Hecc5P4mhW3ML4n8eciz/avrE98Ge0xJgRBiXdbW5oGli1/sdFFVnk0r1OWFkhQ+Vj7uWM0GV+dVtVpdVCFXRpCBVpkNpQM/PSn0ULVzWa7aoc/WxVKHLm4FIflOyiOQTcdRJkkMpA49GCuh94adWO7QCk9zEqy1F5LxjaZoYQhWUTNsMWhtJVS3Ratdy8ux3jQMbZ2t0LW2bOTiYqRUfoC06ZiTqqiRUi/pH3AoHpalq3l9prFy7xowfWCp3+qsvkYYlcJ+eKc7NWHC74JA8atk1higPgKSLQzoh4LBXKWNZRITe2eSiWGLCuXDY6yMr1gWSLNlFol9jpjuK84NVXsGzbYwZYTwSwvBedjVfb+X7j+eazVFK+J2Hs8D20F4ezZSpqvFByurpuZExGgepor7uJcKUM+7bbadyfz+ckckYdUcnP77M1EHTLURMK2JQILhmFNsnfakjasUGLGnLja4mUSBYQlvD8mU1FqnyOMxaFyTDXKwViC3SZqw8MaVXJ9ZUPoaWOItwjU2qOZta7jdycFITCdfKPp0WNffzwyLoMFNFX2KrSKqjt5HHAdcosQGe+s1xP/cURW7rOssTFwvePb+xR55HW3335pC9A7/9FXr568xGHtehmjiN21ns/yo1FTOobevTCTlZ7rN0ahRGCmqmEnNS1pG2ILd1U38zF3v9LNYkmyxLg09NQ/pVU19oAVvgN0KcxdY+fR8/fxx7v+/JD2z8UqxmI+AlILp8LW26RcAWeKCusVjk1olHrs1fq9j92aZNeu22P8k/8WIL/dqGXbM3wfCT928rvsd1MmrSqWomQcNvWYbPZJZBTc46Fy0bPkzTP13ya21r6K77/+6keDf8N+5GjavdzJKIq3txQ13fvshO+qzlkPN3MVZaZF1gNnwbu1WcOmUjvzOuL9lGK2SIvuiKaoP0yorObYziYVNCrgOSy1xFbEIdSQ4p607NRg4vvj9fs/cf+n7WiCZmLa3oRiOgHNsaMtPGYJDFsDRv9s/4P++ljZTl/dPHb//Q9GbUeLZWhi0tECjiEnYgf5ccwXA4oKEUHYSrgcuQJexNxD6r3ffi/7a37jG022ewEX8vZQNjt0O4g3sI//McbdgxVbHbBeYW0IZjgIdBQkYCvCergblXdOjALDBLY5FQ7FxFbrwnEpEMyE+h9q1GV6raTKW/sy/UfSRC9MTOyYsBKZDxjWswVJVrcc65MsufBswPjvr5KDQ4MjgXhYFJ3cskxJYp+TiD0MgqN8OJOwyPaA8alRxSLWq5oKkUef1Dv6II8fYHQunBeFNvv+luj5WYk6O2egP6hQKjM2mAfogBjpTtkvDp8gTc/jkzxXvaPw7dn5J+cnkz9RzeHM4BVqWK2r9GQxo8fJHFbaY7nYJLtmfvKBRxKRTEpJD56k7JqwekUxc6TwEQw5znjQcy9ifPE/ZmWICGlhiHFSjCI32YiaIDC2EhXwIQTGvAwRYNCrMOG4voNzEOCWRyNvRLNiPE3iYAfcKP/38WPBYF4PL+2MD85d2xfcs6v4zWaVNEvV2szMmw9cNjxkZXe/c86ePHzPWzNXlzP7+4w/re4fGRsnauXPM8szwcnonjtz04ez188fOV0e+HO1v/FgxVan33r5ECHG1HA8NRoZOX5prK8QD06Sd4R3Xgsh4u1db4I611BuCuv6zWx07BMuFa4UrhNuEe70pJProJ9ck2vXj+BC6fWr8MQFjtfnk3elohx7LBnk0GNJRt61kObf/rXPQvaS89J+m1myGA08kYjdEYrHOEBZ/nkYhY9p2lOwf0rTHnOP9wba/6fP6PcRX3rYZwbMzYMFLp9wsVB15Fo9H2Uh7EU5r3cjiwNykfe56rrP7xynlpZSZbEFOsCl9lki7O6iV9i3+9IABtJeK6eIUE6tpcq43Ge/Z/Hspbi93ZfusfPUsd8KpOrw6LgO42UbU0AEaN7TF5A2+Z9vNyO29L3/yWhDX+h6zwWLULqmBY38Gn0sGDn7HKyv/Xj5MWFYmPPZJXsSgnjTqZf8B56Em250pVjtWC8t5nLtM25isSMC9k6t6hTRm9lmKR5fanVSmGj1nu3WAWDnZHikjPPj4bozO+M/UH97AcgnvxxiMR1bjaXXVnLaLJunAUced6Tlt4hFkX01l8u94LtEm/XhKxqoRe9GoongDMTI2trlt9768VtvGTvaWFoiawd/d/M199xzzebfbb+9PjJ7882zIy4fs4d9V4ZxWZMgv8CIm2y8VvBpLiwho0JgBO4hmShN8JYCT0JxtD9UyQxuLbyJqiDUnRhviYEMZLRfAEeD4qXbg/0hK0Ktd1eu7o9P/ZERfM8Eu+zsxMLcWD4Wn/r1Zfi85fHNVyd0azjcI3uNo3T7/LpGvrmjK++R+CSafukraMwb2O1fiVZZXfwk1Kr3aM6T2N//FiN8dKGTXFlKtzzAi9aF7cJBsD/fuGTryVdn75Y4+hI85NZ/xcd9Q5j/PYjbUxs4yp33ae3HfCOab5/EbfsDKK8/5du6MYnFFRc/pYYRbfazdXNHiufFNVLQnbiZaNShb6gJmLm4oS7jFdkqF+atwfPItXvvejvz/40k97fQ7679kQhVLDOSbB7bt3WXkpu0005AphGaMqabZ2enjBRp+gjbpzi1xoCVL+IoX0NCuwf99J7rZy2vGrG+gVyiryglAjZr2n5TUbPRq66KZlVlwEf0VLzxG12jR7RjAh/tL5EvCVtZu+9hLS/E56QmOJ26IXzyXgAfW6ZsNQcRV7I8fFaB1UTetY6MNprFRDOfcGoNKV+uFFXJzi2Mjy/k2JrJoDlbFEUyyzZ2jhpENLIjB6fGCm8MyLn+kU1hvCTI1kvtZ9xL/m4wvZL+vfYvdOv71otE0QLfsybikzsvyWQu2TkZp6atGYZmmzQyNL+p1ZfIWGI4OnjlbIqdUS32kSbpiyWTp0KhUPtMCKSrMO4+h7Hp4qyHb2O0gJtrO03GKGVFbnVdRv4Oo2BWyv4AdU40gRgGnYiNbCogqjyX35bfJgFwx1ZRVT/ktNn2v5Cd45lRRRt7xRWo8HXoDePp76iW2P4smpF9fFXWKIldH7s+ToioSH9ILbEeHqamtGdsVlPGss0iiWPrJNrfIYN72CMfdxHiu5iAMeTWO6ZwfOLAwdoJo+6BCfCgezwFN3Q/it2AU8jpavW02yF0epnEXiZ9HbeXuUECl6i+olMisF0ux1LnBJxE8HoYiZrW3ZNl90T7tI/WaUIKMXwx3jwbThR0ST20JXoxGMHXAjY0bSJgNBfTP9NaN6kcB0hp+oBhg1aZLf3OsNR3/TOK5o9fPYkosL5CIG7jNOsONR6a1Q0a1tE1QhEdr/Qk1ynJ7qJoiJsSV8IX83RMVN7OXseK+D4sNUJfY5ke3y3Ld46xMQj7IZmRo2cN+2Yst+Czd9QxklnNzy2BHTX6rXbqBKlpp75K3no7zOZSNqOukNY5YV0FIcmtkmWINwyJtXard8p1rU6wtTy+pQ8lUNuES4QbhTuE11+MMyAXoPvOBfKbF+EiLjSHiDkI2PviWTDXXkFT3HMCN03mf6v+g5CaUmPs5+5O+8+RpWigjZ2eLAeiPHZJ+xN46m24vduX/ozvKWqq/X3fKaFHF1TswYDjX9bzJTX8Qr4wJcus3pfYz92RNcz/b89p2okTmsZ3nm1vC2Nk9wsTHL14XRswnqzjc93rrUzVRA1EtbyR/I7pp9d2o/I20+ugLIuG9tsrGMmld6ZdWlpFTe7TAcrdkgM0QFaXIAyfzz88jvzjrl/F1UQv0vYX4xM4t7O3t2drT8DfhVie9g97Ovkznu+87KOlEAW5hfT0fEbcKcbPtzrxoiG4QNpKvRjPsx92qOVWCy19VnjoFD5l87QIPgrtj62SldU1ZNY5OYVEqzsp+5Pwj5f1++JORht4TGmObghvxnI4Lt/aBLdABIrOEhfMCi0RFlYZMf/nb1I6ec9RraB+5TK9qNBvqXSSrCKrCpsPcEY1+y2qFPXL7pmkzaNsQ79J1YIf6zwP9lPRer5LNV1K1LMvNtfxPxiiHOIW36dp97m/M13gcSK02oha22Jt4/3WuqK/9TYLfSCvIeveEe34mjQvQik5Hjx/reaVav1c4nt1O0eWsGxf612edOIafYmNeow581Ii71RctdgAdwer8eDd3D9JdHlHcaO4PKy7PKxpb1fE2LQck9M3Qfb9CUwfwGF8dmHC19F4vJ7nWH9cYTUpD12v600274zB/pyA41joGQPcu/ka31cgy1DkPcwblLzw69JcDL2F1LsoH4jg47FK3r5ZrxTjPHhTdXZxdgUkS6wXIKXj2zb7zXKb+7GYfYPdHuPBdDg64coNY0tYFyC+g98KN8fx//HFJLs1dtuyL7bOp60bfHZ3HM+viPqzQ8KVPVZFNQnB1V3hZ1ciH5PW9TYY8sR3re9Sx/c48T4g79rA8ATbDQ5k2BZrwHVCWHqCaKksnNrKNifwWhdOguj9x6eympYtL8SipTlNmzPbzzOqQvV0rBVLMypDFiKb8nDFWN/I9gV2wdiP+a2CeO6X5z4vyuSrwgBIHaJNh/YGseqRXVeabpArHuxKQvsjkdshOX/aevgz/eXWAgqod1C5PzWL0uXmON+/yIXK45eobAZSwg+H+X7TOJc+k/D2h/8wrdAdeNlCq9zfP4vi6OYE7pX3cFn1+D6F3afC/QrsZ8e5SJyvT9bEN7NvMREldwJpnxvbqd5gK604yA0nxAprFaFD+KhLCxs33HeVTlSpfUZSdDLJNldtzTZH0ooiiQNHkRAyurj7W0gc2SERDm5mDL20+Xr2OxgfnMpIKrkVaSGQxt1IH+GQ21VC2Qj5Cnp/gG1tEaPezZP6eeoBbz9HyA+K6fYNV9CYTa8Yn8bamPbt4bNrE/0HySfyl6ZfvILaMXrFjRM1rMDp8/ZpFXWVL577S/Ij8mk2//a5KMLQ3uD313VPbVYo+aEC1Wv+PDs6OdCvZn9i4rG2+/C7iaq6pwZzl2afZ4UpKMqPdx1+t+DqCnDcRBFbF7TOQrTHx8wlFIwTWU+XyQWu24vDHqI0VhnX250qyQn/iRXOICF+7XNLS+0VXxSTdef89MxEqf52d2y7mjLFl/by602WBlbFHfKuuRA4aYRnmiWwYH2BUSY2rhi/5t8TjfxNVlvUonb7QTvKElkS0mJ+ho79rfHdW61c+2Oa9gJMcexp5HjOukOW18cLnd6Aa1LdQKAVb3aoFDpZzcYEUSkHR26vwDaVuuMDd6RuePM117z5mtWw4xQcsyAqliWRFXYJXkhaqfJ47fAddxyujZ8TroFLNydDYJQQtA6rrOupPe3NcYVqwPl7UBMJtyTR9e18XhicfLhS9/MGvfze+XuVu4LW4lyW0sNV/CNKQT6L2zPdzoIclcdjicKS9vApTTsF4h62YzMmHjJyyaaBFkwFsRY/0fJDVvxGt0+1fcwXTPzPcAtY0FH6DGJz+CjA8WEJzAAdTPvcD8UHyYdZzyuAXK/EVpNxhLED//FtxEFDPCfRTPC8ZsPJNwaQXk2QJvk4VR+xjb8Jhr5r2I+oNG23WvZzsqp93VJf8QtLefGfFOsXr1Ctr2uqvCZWnjTDUkOWG1LYfLIiOrfe6ixTW5yVzcdyxDBI7jFTnhVt6vqpcZuyGEb1HnPXKIw2gPshBtcodwOwrt/DmuSW2dr2A2w6EWk4rW66C42P3uXbktX7P3F/tCaJCo1PJTbtO3bPOpxPsFLq2sAGwTOyOdNUvDI0G82y3wqWg9nFY7Slk13lIXi7Iktj5iZxc48B7M2XLN3y3k1nUulfGtGaIc+MbjrdY/l6af3+Y3s3C4IvVmIYNe3Qt1yPQTRszZfwdRshhXSWt4gitVpO5WaHSGtoFvUMZDVVzum0xfrNCu5y7DwsnKKBs6ky8CjlVGupnBqMvhYNrtHs+rXRwVQ5GoCVUy/OBBV2C6e6csgKGm+iITAWhlUP4L91nBIA5aM82Skh6CwrYM4FMgt263lRqRIOjjT21TimGk0XXfkf+grJ6Lxl0LIRUkOyEk3q1KQGy43NWYZawVwiR5OGasma/HOMLoEr5lx2dJ51ttsMozWWzSHU8tfIYCqeV6MSyOfYfYZkkzA1DBra+ISsKe3nWWXA49im0sf5uL4Kjqcvsnr5iqAjBo9AQPAIoKROs8abik1wZZzgymABw9WdEF/I67skd6geztGoaIwtL+euWTi43bBunVBU7XQifHlKjsvZ1x+aTHHxal9oy1RJU41ds/tbqwvXzGryXhoSB0PhI6e2NXVj1wlla35yydVwcV3sdmEFYgqWcDyvc1oHT3BQpGNjgZ2xWLeI9RuRRPs3oQ80J3Mjq8GoKMasQ3B8jxO+Wv+/eXsTOEmO8k60Io+IvCuzsqqyrq6uo6uq767u6qrquXpq7lvTmtENgxpJ6D5GEgIhBLQ1GCSBjAysJLDBDTZeyQYjBAuYs7mNbd7TA4wxNva8XbDBNljrNYfXVs2LLyKzKqu7ZyTv7u9J03lEZlZGREZ88Z3/L3WvlldfYzF1WzXjWUaUvs46HOithF20L2Ig/1d6iJeLHDuCLtUvqhLIvc0TM96OhK4nt3tZMXUbtlDuhSv21btSB5NxOWkYSTmePJi6Cx88X1X9uhbpeF6MvIJ2FWhSATXPn0Zch46ZZg1AspkmuT/zqhw3g2FN0yXOO0+zhMFmCU5KEIc8FtIQs+hgdbAi44KK53TXQP0rMrsgF1X8XzWkvc1JdD+MVRU3J4Zrj1uuiFSLHIaC0wn7CjWJ6nLaSVWEGHRETFBFgz4uCQpBUdFy9U2vPDXYL4pBBr8h0KAS6EfaXiAt1qp+fiyWHgt0kC1uTw6S9/gKdubqxdH3MXdHbM5/Y0tGJW80RJHcpFE6e5VkyaamVBUxmUG/lnG1m4goGm8kamaLkkmK9IJmypZ01feOlSaoGGIY6ptN53sw9955K5ZNVW8ApP5vuub3HPPNcJmcnigd0wBtv6GrpoxvfacZ8fnNzwpn6HisgN6kZ8tNcMGRpW/gyCjgcuUjPLB5wshTYHrz0fWTno+z5Jp2NfPQDXqGLGGiLw3vGt8+jibhsOh9kjIz0aIduwEuowiTzSkRylS30+tv0TN4uj7i1u6DSPOFCpzmvOIVwNa8PqYmNLgpxK+vMf0BWDAIT8nm928b8va16YKIE2WP6XmCrAtzXrs8X8sjSpA0oj4kABKh6QoPqURD0vSescXcKwmqn774ZRefriPyytziziuAvD2BhRXmMr8i4Cc0MrJr0tp76wPCyonbbz+xIjxw694EwyiS/f7k/FaGzpvbIes0XweCSE43sF3uFJJRAYBBywBF02Jx2DBKytDnTIwDYwYp0bbMCLCeUk4jOSz0pqBf4sksmJvyHu/kYvZ1bHeRrBsYJ5WsMKaR5B6NTgoFiaaNNNGccAh2G1hf1XEjRogzYYoask0RGTFB25MkLskPZUdM3WbmaFs3y9l8njz/wzEhK6fSuoyWQ0J597SRloX4Pnf6ukL66CnFJELcemk8Onsg4ZpFCSGpaLqJA7PR+EutuGAbp46mC0sF04gmaiWNQ0dqpVoiapiFj027+wxdS7McPBCXxvSlYNe7KqTRCJGZcu9oWmjybx6k2GQ60210ooHqGgBlk16QZaNWIvMBTvNstcyt8bNmjC39nAFwh+zRdEkUnLSFMcIaEYSoPqFfsXWF2EOTBTdl3sTWm1UvhRaWFnT5LBPpY+bFfeXNxVatnqmmLc/AcSyrsuG0Dwmlo8k8Z1o/AUA5wFsgFMT9fxJ9EX0hokDkNeUwOUfJl6WaOI1YvhaezpJbueg6Wi0RfM/xl1ixvaqIPk0EdV/M/FfTILIwibXSLcMannRIonR8XipeVZQeuOJ628jRQaEkcc6wkRstZ7OqeMjAySQ2DuU6XvXybTgW6+uUIsyXeppZV+ELACPSavu2FZ66qod4HUWM9e+5rEp+KWDr9JZyFpPW/fts4m8ZqwBnU1O0B+upFGMeOLB6915WoheaHG4dlEzFYXpA950CPJRayuWAZY0wtvRDvMCoXpYaPcgZ1XAMRoZ5Pva1elQqqzTiEEqwKHZOnWFSwik6bTuvvNSeiI7NbUPLZ04xJfCjZ051LltRd8xkxvNOyEYAvtt9zWUvfG5jBnS3WUxwm2/3UfYenpKGZ+1EVC7m4opvwgjd0V07e3Zj7EEJvB8CH7mYz+HTNahVY0BxdMjDQkqqFmIusVWCSyzeoM065SMaIFIZTlyLV0QUxZpe/SyJyfLUW6e0tFa+ncdkoyzrc1vFikonP07FVAUDaIVkK62WETfGB31LCZN6+xaTPsPKBwYJgjC/yjSciIl93dOnzpz51Jk9X+GBeVyX+SnWflp85tTLdne4Q5rIMCxAhk1y/rHdt/fOBfZeXEVMaUzlIJnpjSoO8y9hr52bFUQsHUsvpo+JRJbQHKUg3yU6Oooiu6endgndVyuCKSjoKvchRtIOfkpSsBB/qX0qARkv/pDowlaBoNd3T0/v3jl1q6BMK8LL0F7T7XZ8e67c6wuOMsn1yJvab31RKYyl3DNGB5OkkmjUquWAWgm3ucCczOyeEX5HmCmOplKjxRnXRKumW6UzxQ4LcPWXTshYZMffcjOXEVVRQKmiKLAvFGaKaIlNO/f5kEz3jfqEfLYXg9KX7/Ise6SPshYon/zkn22emItUmpytE+5jEp35TPctFSbTXfQv8VzhdrvkGM9/H91uOmD70ZhUpz6Mijkm1+3IxZ9JPXREd+LnImYM2T/r/lDj+bGZz36FfvN8JOLxxCalph9kuxMIIbN6M47zu46nPKt4zuh8R7YlIp3Fqi135m3PURTHu8e4vP2MjCWFPNO+3LhnoH0ejNpBeZWlDU2wJFgNz+dW/aYFwuqbjWNz2y9xi8m1+i+7D8Rzx7UBWfWmmR2XbM/Wq0ZjLRfX2se5rprZqvOUjrZ838O+jYrnJ+0nF7YoIam1BzJCl7BHuQVEl3mPpwwdiLJnv9NO9rKEVOeYeXueoWlZsaV6arqSpxwxP1teimUWRuujC7n4o/HcQWMEsnmPvLWxLxdfouyN6S7Fc/sa9dNRtrxdbqmFs4wLnmha6ZGEf9icuCLFiDBlzK5kP2AY/wkfbWjxHDfB0qY3juJhH9iLLYh9GflX/Xi7iQtH3IXyInAn3cTNR47cfKTaPs4NhMfbTvloGV2iqI8o6sXMcWrqJlVZOwK33XK8PQ6a+fH2cdteURR6ywlFzarq1I2KGtIvEhY322AZNoMsYxNhC3gtnvTCtQIXosA7CH2MxQQ+q1U1Q9O2a8+NlrsfCCrm6GZsgtX4LAsS3G1oLU07qtmTR1N+vYTqQVZZvz4P0PpwL6ZXgRczAwqdYdwOgISCTMXBQqmc3GY5A0DB0gaB2WMCGWMGAccsoBxBPd1E3BvsWzra6PqXgFQM2AMHuSTXaiWFazIy0lISlZjiuFjEcScjS54m4LQkpekVT5IzwZW0LKU0JGekhxnZ/H3W2EOCEe1/HYeSVVHSDAUhxdAkI2c4mqrIR6IiLqQlIWqRPAZwcpwnVlSQ0gUsQpaLC12tM5r7StZx3W9pMlH83kQIC2aGSJIkk7RZGzZkSfTXz8/73xr0ZjPhUefRVw18Xq/twWpCBx9AJXHkA3/cbRu7SEEESd2fBK1bfPjAQzsUHaE0IeMH5QqJE3/0TR9T9B2a7tfs1x868DBBuvL/0hvGD0pVQiKBnwhfP30s9tYFZkNopjCedx5oQ41f+ykzDpfre7iJfU9dLe4vIomtrPXp3bn4R9Bodkjyxr01HtG+pz4Ek2Oovse2C2yZvWL3dDxH+dHalokox8UKfGy+FLEBP6/CKU9Qp7Yn+sCY0FG9Ja4GeOYE8s34OGkA/4x2to7wKXukdfU3Letz8fjnLGvZol1l7Tb0KEAnjksyZbCNNwjHWhpUTWsdE65GS2JGnJakaSkterkhyHk3lLObgKi+KGFJlRcVwyTbwvYC8K1o+EhLg/O23p+38gboBi60l337O+qo3b/rDWFL4dMYRYC0nWUKM7BpAFu66kSDuWzV+ad3TWYBp5s6LL31OpzV+3bmXqz+Oh/iBr7A1+fmVubs+xubUcFQTvj6RvoXimu3mWfoxq9Zm29Xm3Peosiz0tIlCLdLOAHAC2jf/AH+rgPzr1ibmJgdIqmhsgtfY3KPkbvBdFdd87fko/P8hfNH5eu/1hgaaoza2ZhOK9Mcyy/7oIwsDxvrgxjzJm8DlxSE8iMe1kUgjj/4UiSe3IRy1bFweyyWGyk5ut5cit2t63pxm7T8l6xnCu1JVQtRICQj9BESG+nMVJOUOCTuvihGpiTpH6MXba06rK/u3ntbWQqICI68II/A0EAp7yNTPqQtg4lnHYvwDrG8UGweqVe7Px9qDKPh7vsD3ifgEu4qtIZpx+w2/6CwpYL/GnzM+2PYYVlaOyxnjI9WFXgvkrlFND/N5axaaZqDXjOPai8+jNb3lCe8WtVeSle9l8Ri1vFs7KVYJ0THmmV9p7ytdKQJmyO5rVEv1F1O4iR94JRKn8kep0N3H9FNHVtx64rStnLzCNvcMZrb6vodhsO0AmjsUIi+rh9l7VqDBPS00AyIQrNeKCwXCpx03ipc1OQDqXmR8PkHFxYejAT5Ph5gGGqwPl4T+dXIO/7PrJFBXb1e5iZCxSjmN45JiXiUjPSEOrpENloNtmbWy5ivme0GhMP0fTH/NxbQ7qeYfLQ6vXvXqd10VUGKqjmGZyLhenwunts7oxbLgiwgCdPlFJU1WE11G/08PyrvBlmgk7nlf39dZXLY/t3T4E2U9hCSZSNdQl/UNI2vF0iGXHmxAl1f1Q/aW8uUGLK0rSF9AdA3Zllej9Ldy2LJeStSXrcv1nr+WERu1MpoNVvhuCyVLLdWHVSU98beqihvjN2lKDc55yLqDcz/4lmne/HF+v5OJcsi0ArZCo+5R4+EHJE6yyyOobOyEozZ77N8uA6VqnuZhlkqNJbFh7ACOpi4tOYlhbwVd8y3HpfpLDr2WhJVjr/VdOLWu9EqilndPzBiSk0UVBndqkozM5LafaeiSjUlZqATVgypgd/K5/w5DnmCj0RuitwKFnjIlcRV4mAbwuUaS6fJtcr+FZZAimV/by8ilqSNlkLut7iPagsJD1sN4vpw2KhMOOJ124WoN44gTBq1xw1RUUSjpKiCogiqcrURlTxJVcualM1Ielml5Rk4wCoSknLUoG3CZf016x478YAo4zw2xNnHZkWDHsniA7qTL+Wd08t1FNEzrYxuKonJhGI+lZw/NaFE1S33b1GjGLaUCI29pOXRjuyEb7yu+1VsUFFcxq96FZbpgYHRVjvu5B36L/7BV7JvFsT6jZ0v0q/y4sP7nlA3ieqzxkJRfYrAovr+0FSf4aF8LSzILJSv78Ntwhrh8nwRYIqkR+tt6hBpv9zxHPSc43WWQj4S9hpa6a6ie0HD3X0QDfhFsPB1nmOjx9vMMwzDwCmNpTxgep5AIgn8h6s1AARoOMUEh1F5dmYXw2/aNSOJidGEyJlD7pb5MzV/dKXTXR0u5uLLu2fcXM6d2Q30gbOGSBlKdL+cGKIEpoMKc7HpxFBfloN6TdF1vMP1HQEHVYa1vLlRG9aTchMyhMEnQBMS6Ema6Fl7udKqLNunQzoyXxm2qiu3UR6I6UJOf12N/XQZ0pYs/zSm7m2sV6s1/kJ1xJk1lfyKkriOqGv9fJI8//dwZJTh60aayYIfYhoJOEMIH6erOi+tNCEE1RIC2VAGyyW9tAPhHXe+9070tvfeSXfdSP7GrdWDi3EoWt1ZtNLl7qdYilv0G0b99kZ7gv7HXTYYcf1mOqunnHkoGduppyZUO6q/g8GNqSVPrkzE8hfCG/HoxwTwq35QIS/neCNXvGz38TufYN/2ZBhu5IbdLyvceXyZfc+QfvQz7PtxqywdOYRDojOxu1QuTSD/uAw5wufbfoqNnl6qMLqwfGzHmKQnDWkSCQKqVfnxy18THTLQK2eKtfRhHs23WsnaS7teETutS4qk33sj3+0gjhNVUSVRnCkcDOL4hBCfTPn44rqZFPF9HuhiwVGX57jE0drZU0QTljiOngl2H1Ac/Sm4eojywe7KQVlkDh/SQT2LT8ToUewEzhgHpZDLCGj20Be+gJiDiKZNUL7pbdEkzJZk9G2U/k9oWtyPuWJ1tSMpf1RBttKlkC2N5QteRLWe8aHH1M0z8RKvU/6tD8cKyoUlH4LtwZiqiaxbk5b14eho9MN89yFW9msbIrB4CYr4+G3TD8Vmk59klz7Uf5ju/p6V/Rrb3hXa8hLOg/n4l6FI0PMhZL1gEOwKTODuGmwbIReTu0Nb1/dKCe5DnWylu8oV/mx7d2j7IV+DKW9Szxddyxeq3bdeXL2+NVCjQezQTXKhxDZ56zs2ece5iP+LZNNvsfOF23m+9r5Quze2/gJ9cCy0/daGkoBXHKz/RuS684yfjTUMj5jB+qxuGCSB3SL07hd888Y3fuu87+LNDb3Dz+fXz5vuSxvrqBrPw8MzXK0wxxy2XWapdH7ItpdStpbxtlSS7tNIZnkpbvDYCziRwPLC9Qec5zjN43W5oS1E8h5J5POJ7t2rfYw29g7Q/5Qi4723TCCAHYIfF4FlDr+znRx43aPLp+O5H0XT3adZNLOlvYlRIt/nszMU734EfV6K290iL7pNj4k/Cc+ZSJ324RLvwfWyxIYMQKv9bkOhLny0321roR4MfH9kykuWGKJgFDUoz9iwBBAh6WdqM46SJRqh/5LoWzWteOYapfaOa7IH9m1N7ga3XyTpnv5RPDRGitOTV1+M3lG7YcukUpvNDCsS3g0ev0g0kvozzVeO49LUZNFluoVzfnwYZCMD7BJuJfUaPl9Xa03zqDVmy2NuNvwSB7pdFGl15nryK/r81rG8Y777mhZEVF31asFx1Oz+XNmg7SxXC3G3fBwudJ/NVHPNg1fU8eTWyZN8Rbg6nrTLVp5cdpNrEvX1qUkXJxIZLa2mM1Frd7YOpZXM7Kmj2yvSUKWyh68DYkjO60C+0PUrNM/6W2NoqOAkUnQGuT/mRAJXa/4KSMAFnzHFXabhQt93Z4rZiuco3bPVzGqmqowAXHg8V5UkQ7Kk31wNjdpL3ezfFCZEcXIo53in0TKwVWvzIyxr1/vE4cRilSfF+V2Q+kQ/Nu/JyB66Rp/q2+hKvrwU8s/hmX1YsnlwywDOpwEbP4er7xcDTi+QZIz4BptKk+Xt5cnthEVhT70yvVsUR0Rx93SlvkeY0vaM2JjKEFS2sWJRW6qNjW1rH25vGxurSXY0ZlEBSBYwtkf2aN1PSeVyZSSfqMTzqDVSKZcllI9XEvknFWX/zJ4dk7Xa5I49M/sV5b9UKyb8IuT8kTBRnXcbmYzxbkclWOJphwTZrFS7/33MNCuJoaxXMc0xNzvEbW3Pn3se/Qo6AysT7w8i9xIi8SRJHro9ppPuN4y0bGHV+MvvmSq25LTxUyVRorz222jZkJHG119Py4botWDNe5bO348yzijiTovsl2R4Q/8F6wlhm2gyEgw5a6Jpz+t+y8rKhmyaT3+BRfswSCB0iajoJs4bhnwv8WyP3CsbRt5MSXvPhiONwG68JvwK81+YZJgNpRmxyhPRNNYHftFhyqdYLdGYFtwkx94MbqESZN3WLlstIFUZVeSJZxlB477uT58645qrryPl+c/IuEg5f3Zpv+npHfPuzq2KgbeG48DOnDLdz9w/PF/unpMtKc/Dg3VfnvKxNpxIjmHvh7x7eW47MgdDjbmTFucWRZ4jOon+fP+11+6/eD/9x/ffn6H/xYvxCXTUSMYsMpGn52j5ZW982fHjbHO206ECdaaKDTuuZap9ORPmxh9QGZPN6wqowsBPCTNdWM/TBurUd7tBjCJxRz9OlGgNhUTca2IidAxB0KTDhnH0qMN99ywhlWIHk/O5kXpGvWT/niVtet+rKWnRZBVLNzre3/7ckJSH0KyubmN+OQi3YH84feX82N5qThPc+vSOI5QgSFiVtf98raMyWv48OuOPYT+4v8KVjpVeJq7b/FHb/QYdzKgRDOar/EH7tnWDeWAMJ8EW3ma+Zb0fDFAENoxhz0PTpj9wnzZNepC19vYH8N/3R62RkvfulVImDObdg3Fycs/XOUXHQyEyQuWKCIJM8kkvUWwuQliTH6qVgCCmhv8nN4uJkBi+6V5YIYYix6znV6xYzHJNAUCPlzmI37KwAv5JK6E/tENQDUuJpuVrr5XT+bRcZhaOFfbf2vJyFmsazm7c+np00Nc0I5fSJiVDavTm5pjYXoPKb60gsJ35TW4KtM2SJ7Y9Oi6F+0Dp7uvejY+GwbLHJuWMzoZb/GgYXnte2z5GrDk7pjFtPPoa2z08FcbLLlh2PJXhaoXx6sog1jYZG90iISrUCaVAr3eW0pr3MZ+JSTqDtjJ/SmAsWSYpQD2HXZPnFAWArcacnJgDn30x6U2jcsCBy00LIJSaVXBSvM1Vo4qMJ2YXf764s8lgePnx87/Uk7YhjGTzJVTJ/BMDMkfL8bw07GXyqIAeVpLdL9FnBXMxqSTRDitGj67boViuLnT/XhczIw7TBVyyVcy64t/OamKqHMgpvXa8UP0jIQeVzavZ/Ttes02r013zEaeC/lthMfNBpPqBSGQ2nOt5wB8iHFFOr3FfeJZPsl/e9/YXVjgaOFrz01TTjQJY+Ep3RUF1Rek+6wcfgyvg8wCR0GFo4N8P6Lb6BubOfkUIgQR1uJ+fP1f9+kcjRyKXR66N3LFRrnDp1w57+vOYvWrNdzYYjBJgPAaLEgAH6nCy8nWJy3mjaQcIy33Q80dVWycxa0olco5gLBlEsRxa51h6k8LneFesKksK/IPgTUSbtxrmprvfVQxbjaZkU9RkRRIlncg6gn5AmdgmxYVQLKcP2AI0+g/RVyktaFAaXSY9VaAfzthTFrZ7a7OfVtG/E61ec+RDUKFfnFTNtKk12nDywJFvsEp6JzQonE/Rs+eWGZN/MyUIqrmHHW8s4f66vzj3KcrL/kkIMyfitvI+ECIGByMeiH0+sJxA4vnTpbddWs0uVUedaGZ45salMTN6+wyTsBobw2w+be94w0XZaqeU2yaT8aXX7Tl8W/fbTPC5jW2n2PbkelkyyuWwjeOq1ZsU/iRp83jkZhiafA2I23JgJGZG6XUQ0mfpfPShp+or9OUd4Ano+1bQr/Ty0nMjdV7g0ixgRfu6rDZw8itMUq38JWwq+zWt+1MtoyU1DcXoHlVY8V/ye/6MltDL9GoGLmsD9vERliVsnX1cBDjbhFcitRDyyfqbuOjHNp2zZzsj7qFlv4ALiPxysKelhUKnfrrgl7j9C9xWjVaYbzxHzghsRD4Gn79hH8GPA2cb58XgJl2vxGJKtSVrcottquvOIYx68B/6LFa1bkFT8dSUKPI/WoLOhku6f7QJUlJYTwl5wGCczzLsHEpjGS1K+EhuGxBBoHdFylQEw93zmYzgvB10f5POKYiYerY4wyMUZ4qnAfm6Ey1B+OKTnVX/6EdMAl9j0jgqzBS7zzHVuF2c8cE71gqFez249W2FQnA4yz7JGpNVviGcofxYm+cE7clh54vS3QDumfSE+zHRu1E9g5cwNvZtl4hJpO0LOQlyKOfa9Jzut7dzbM/O6fVt++j9KE033b+lT71ZT5PaK4hExfzrh2fYvj58PRYViWw4r9H7I5EB3+EDkNWMhEAFNo2lbPQ9aWvtRoCDsG6/+l6BRVwBmIH/h+7loV0C/q2xkPlzdey3sIDY+lAIW0XZ48J7Qz+wEOH6kUiHygMdX8s7qGE6T23W7wWmcOkyz5l6+KX+HwA3sBrRzRUcL2XgL9DTsBzzMwwBez0ew/nDUOn+ySvO9/sFNtx4d6yvVShuFvgR0K3u8meKj3k41M9eQo/bYPPre2Q6g4r9PqYPfdMSUdGNDB7AVt5vrXBIJmtViSsNziqdBm3N0lm65K4BGwJLaEdRRjua030L90hH9zjaLbL8b8xkRH+z+xzYK0LjS2U6Zo+UAbCz3SSgcIz2yPRaZ3nxJLH1k2vJxYnkPXpeb+o6LV05qdvk5OInkhOLtJQW5vWev86XGP0vAlV2udN/QvDpRsXPVw7RT02WP5Uh/DGucVooN8EFgylJC2fpXyGLJg9df/DY1Hx5amtuIurWv3ns4NxFMwt1NzqR2zpVbqACqEC7P6Sbtbnp6m5HkwTTXtFVo4DSzu7q8GSiYKj6im0KUkgXNR6ZAy+1GPfeZQi/EFy2DryHJzPyc6hviI/1xoccUUWCRMSL/JFwEe1aVXQm597EXDP+ljuwr505VdrVSujubpHIYjBpdLLb1QtXzZ/6LDPzVX10jkHbI+AyzkQO05HMkahojQLLHmXtWJh422s0vRYX7vtuwbW5pBdn8XI18P+hX5YzkXm0rJLk8quI2uJoRJEdc92fjdx5f6GRG7nz+I65+8/AqClPpsoSEkTBJkiI6XbOEWXRwfT40Q5Rl1XUZqBF3e+MIH1ux/E7KRW+A/Yj97NwmLXhFJIEAetRK22LmO6pbPcvtF2vZDlZGpwaM20F/wdfH6JVKGPqiXNtZjal1AMkN+42Q0XYpHAVXScImRzKX5Gn/4amMKGrxy41ht4ZU6HWKpAx5kCsqqaDVmx0aPQqjIrsP4SvGr0xGu3+E0LiV+issdSviAhJ111HxwXkCRfexGzzWRbb2Wz0lrZGosJBJ4LqOQ0/fgN1AhwZ9G9azH1+zY3pl6oOesxRK1yJ01k9x2gZiqz+s10q2SuW1c0jG6ag2ouJ4DEnPK/JoJqpvF5VsB5f0O4rlkLJkDkKjH/c8S/RzVL/8On+YSQ85njOATfydORjEKtIam34Rw96qOqteR/zGhwmwhjY/fQk69OVnCd9yXp87fPhbb/Aeb8ubbohn5mamnrvFP/vZj7EPy0IQz4I9nTJYYAbTrBjMCROacoHy/Z3U/w22Rm8u+ijk/wf/LUnaDV/Qv/20r//Qv/QnWxivV3E4v//lXmRv9ag9QyNXchJcazvz+GvauEjFvAZcurwapQnhCwRPTSpnrweHKFfqNy1JdhOq2aD+WM1TPWhlbUVHowevufHqnnS7sfb2ydN+hCzgi+paqfzrM2jzfu3UP6w6/vRV3ybDtPf49AcC+nuITNyW3g1lsQtoilvUaJ88keVLdigRRL+UnTn0Z1RtCya+C4sizlJVbuMn1FVKSfKtNAUlxOZTCLwh/ks2sN8ILeCtBDEfVISzWoRRHRaiMd3UvpDGEglI5TtRUxpPZ0sbchTAss1s478gHkGThuqkTY8T5WdKV1KimbGE2OSvt1TohlDJjiVUjC2S1KCOKplkfKCoX4jroxasrpNy7jqnOYHbH4Ep+mdupF29s3p9pWmh03zcNTYnS5t1yXd0uEtVsGiSx4WRDReGnrXvDZZMtTtqpvR5tRQTF2OZ8UelESLgZkKogB7CJvf4HZFZig9Hc8BZhIjZH7CqU4ufi4Sz3Erai5OGDCIbwUM+8GMRFqR4yE/GB88ZSuapcvL/DT7zgRDQBgV2xfBgkYslBchXhLcL6YF6GpYeho94BXuM/MgfZmAkCFCsNcS0QVA85Ty2pM4hvHwNQVBAJsKERP7r8GUgcaKtERo9xj0Nvqk5nvYXA4Dgy6QEpYllBIwZgea+iREzVWrIv1A9AVS+v2CTiSM6C060WURnrLUng8ti3ctAYJMMSTYClxrG9aBOsUNPmY8jJWuHUyMZ2uILUTY7HieCfW+GcJmIZhPh8BRQC/WQ5JVe768EuNYkiw6geOmRyqY0IlTrtaStbzglRfpCCbllletNZIMIF6oeXHmwhjUzB8XiQDW0G3y0YEWlSlDqNUEY+oySVPoHIiW6LkyNaXUhKMoSqDwF5ogaFG9+6mxdnsM7c/wCJNCl3LHMeu52cTQWGFsKJGXY+VEflwYGpt9PDE7NpYfJ1DyWFRW5w1NtQ2LPtwZa2eqPGbkTzqxXAzwVJ4/9zl0Bn0lEo9MRu6NnKHrIzAmzJ+QAHcAEBVJTwZ3TBYHD1cBSZhyuY0W3AdjDFdr03Sh40Cz4IIJ9uIW/5+55jFFtZcXPe7bydJuEwtX+RgEXu7lyXzMmafcWGVe1cRpwxSxKqGiqKnzFeyI804sn6RcqSpQ9s00Dms5Q02pRk4TJUkSiKiKSYzlKKXrlJ5HZYyTaUXQnGRCSySdqJpIYgkpoha6LmoiEWX5yfZF7fREpnZpQltRRFwVLOW0JsHov1KxhCqVXle0BAKPYyRp8AzGhO4kUUQC/R97CdV2kkkt4dHXJGnzFKTzt9iyTJJRyaJv9RJaMunYasKjzCYSkSR/fYkOv8xkhtvCe3guAwjavndUQ75ApjShw/wyHsm4j6vq424G5RcXDSNp6IuLLFn5wBlagXyO2Yr7mJbRHnO7m93jn63T59ao9HcMbMXr7BCAXeLR0U8/d9kSfRsdpMZZp5AK4inKdBzQiQNL4iJy19912gdOoSIibjlz+pbxJdGIuho0MV4gld5lIeIXLY1v0eecFr6UFOK9q6C1DTBYFg5aRm1n/XhajWqYClXJ2I/6F5HNStLH6ztrhnUwluw+17/o+/N/DX0hMgs+eDJT/c+32s2Q5s03mya9XqJLDlbGEhfWMCmCQFhOoOm/qsYy85N2D9beTsRqqmHoujHPtupENhP7qwqEcldSy53iZGP+yvS7KTHCGtu823Do/fRGej9s1YnpZmOy+HyyVkuaH//4IKakyqhVpK/7F5scBMjHqqANCHJiItrSLmU7CjA2OrQ76Hj6Y+4ZseaaZ5kITgXWChtmncox30Gxz1vPM1+/E5GXRq5bj52xCUCB//aBgKNKoq8YDDTM0MlclSsE9o6efxiH17AMHPJnMV2FlT7wmQe6a9yKsYOtrKtsTD3Ktqd996iOpS1p1u/qUe4Iw7euucqK66Xp6VJ9gWkNuzwp3anQeKIjJPDN4fgbAu2Dl7AoFZD8ykmgcDBSagmuHOECIQRhlMrcj70N6H7ci5QuH/V58EtncD9SIp5YFBh4P6DCkCRlF9Xth1TVkEUCSZgqYJcbrUAeJkq6DFU9tF1VC5O5CV1UiYD00sliMalIMUlSE7ZZPFnSkcAe1CdyU1fIrjycdFQiIyPbUZROTkcyUZ3kML3gqMXLyjqVbQHNfCwjoubpUZMQ2Z6u7y+KKDOmCUjGql6+rMjXaZajJULnRpz5rfVV4DyXPLRHrlV7J3xilNC/EtL9LomTJwkZpbs7nsNx0v3BacOYkk25/YRkylOG8awEaEpxuJPeGKd3ktPPEfL204Y+Jcvtx2V5Sjee5aZhiJFm/IIHtFMeiJKGSACWFx3go5gXQS8fKCNZaNTxlOcUz1l4SjccdLtj6E+tbb/kku2j5RE3PsoItDkfPexHUb/uKSOfN556HXr2knsvSYwAh5FJTjRDuXvSzGMhjxLFTcnEBoy5wonbu53bT9i+NY5SBY4KwNgQtEN//SWXvF53+0bXbijCjWNJfkrA6Ku+zQZQ4GljLcEHaeN/LE8Yw8wYhqQulP5K57HeoC5xR2TX0/bVxo85E0bbTAqGYI0oRRtKxvNQ0P1IyJ7zUbb9wnhtn+a58ohLDDFhto2J2FFNHx7aFy0pUIaHoeizbj816jv6PpCsDTLlP8osAnnbC7SB8hGNePK8LTiH3TLevAXVcXS4ebj7FxuqvzZevVD15+lTd25a976uMcXysA/QPoaDwT0EkdNIlDfDxeCUbJQ5O6wCpT0L29F+4TLbsgJ0cBkEM3Sw+8ll0Lz0rjC7hu8zE6V0v0Z7cSfLAXHDJjlXB2K6e1Q34b2I43Zz0MAmh34rbHZFtnJWof9+xA2fnc12oyphI51ugtvRMhc8oXEAhA5oDcrB9ZC4/j8OLQOb17D7BmSkIp2Fu/oyEh32i4hBlU5DpsFa1QIMAZxHPUfNNgOfDF8C5moRccnoiSHiyCSXk6nQo0lD/hkljcq1TL35LXqCo0r4Ajv2RaJF/ypl5TGS+/dK+ENMN/qe3oO9C+yYr+efY+NLYWtspAJB6jNCqw1wSTWgp9OUyLU5ahyE9LX7zv+Y1OqlemmWsIRmLZj4wUxBX28TZJFWe/JE9uhLZ+fnDrSoYCaTA0VPFDHlq634XoMSN2O+XG8Iwp5yact1w4qZw9Lfswlz4/JWRRG9q53Xj+0ouK/1kISlrffnStgUbcVMxF6V5LAIyStHzCteabRnTBKVzI+tmzd70Jco1drL6CU4w/lOOTg4YOB/7IDRyjmv3crTqzKXF0AWYc0e52Gg6I/bOyE94Nb9dLN/K9htn3r1aO19esbERve5ax8Z3lL5bS1DCDYuRzK69pFH0IFYa/h9U2U2cu+LiXfA/g4xdh9b6MtT72sekZcJ9jL4ZzPFaDZBXk6f1TO4ObN7JuCNOwzDPBkpRMYhH8QAijnl2Jkzg9ei8g8IOFTkaTerzEdyruUxLwjaCi/51E+fov++oUQzC3v3b0ts3z6MSwnArn9doVOgQ2SmurW4dyETpcNn9UhzDSKO15onh7KTWjXpVTU7LcbTRtx8xBRFM1Ot3kYSuWiyqk1mh9LhPGtFeoJ9914qevnYvu0gYgwLEXXq5ost+x2v2HpkeGdhS9+zV5Dkub0vOX7ZJFp73e3NdHJ2VhGlLT2/3o9OlxqXL0ynYnIkyMMXxO+ORS4BmcHdkB6DJDa3C7ugMCfc77cHiscMm97cLEPHYy52sIS7QfqKs+E8GoH/Bvv3BSoWTlgWlbpjImDXqcSwPEl3RB1pkiJaopGdgdJD6zJbQLaNg4zQ8O25CI5BviOnpaiWalvDcxpSoxinwCvM8zNehPlvh1Lh+mbtdlvVAdQSBn3X3rwpRxVF38WW+l26oizLlvyhTerZ/QCJM6/hpThZlmV0gleH24QOMNrhMctEAt4wjFjcLwYuvAkY7p4MdUyE68hUlYAkmkAr8L5ryKcNY5nEOx3Kkf1QJU/3akhr+zQl4PvpC68hX6Y3QY07UNv7ifpgUEN6sKKSyPrcZA2eyZcviZXNMqlwtSkHEOQWRVo7+zR41aPn1qVQWaGtZ7VcgUHAzRSfGMyh8iDrRr+WSNGC3G7+NxMjRiTP5vFuKs1EIDPwprW68AAOL7Dr1ssmKqyh9MbULwNDFkX43pcS6Wat03l8YzKY8PD03R2e7XGRA/MQctVAHujbLpivJtye8KELuKw+C/YfdNfaLM3NQFsfjaWVqPri3LM2S4jDW38FYwi6P0KZmBYzxQEfLAA63sQ1K8WxPaTQfIWI+qObzlhQu7Sa632LGpvYaxi7F8ftYKYNzOZ9hp4vFivZJZ+Vd7fldSrH6/k83eiw03mKja/zObduln+F3lKMVbMVX6dZ35ZnagAqkMAeHm8XKDl6jM3FIA59F20bRKXuA51xG9zxN5npJFE9D9EFPqg15wbtAYNZmUPCgHj3PRw3VsK0YAWfh9wmgdg+xdu1/Nt7378PoGJye3MkoaR0czREKGbecALJ62mtoEUxGmUN+4f37/3tf1US7OEXTXPngICwSBK/ycw5bFOaG1Da5R7tXZ/1iH2NVUZrlwPK+wtOcwWGsRNhcdnVMG7FfB+0nvab264RD1jTGcDTICDj/3VuKXdPLnf1ZUwPd9kJAKuY/e1t29RYVt12sSULf0dL/jpH71miNzEtHb1J7f64DjdlY+q2E6Ycwpbq0DpokRKTSgJUGvpBX1yFhAiogQogc75gvVZOlUEvZHdSb3hxNcTMNoXQFyMm5f52RV4auT3y6ywyLMH0JtV2qzZPR2oCFCCQ25WeVgElPsnBPSntaVUhLYKXpAwK4neAcoXKtXHK9wZFlEMsAYYBZX1lDjhHu4ABDecFyPNLh7xUrhJIPE1ZoTpbhujPeHN54edxSxiWY1FdyAvexCIykGSpqiHoqOSl8ygqOK4uWAhtOxQVACZHl9llDdEx+tDR2xBGlq6ZVC5HF2+J2aoj62oKxbClabTDdE3SQDEo2XHZyJeqo4krtm9BRMdIM9GBI7cOL7bqf2xpd90eS6g33aIto+3jx45IqoIEWztw0CugQuLYUVWXbG3/obHtGdNVytOL20V+Q3vLzlllK7rlMCHNpkKraGsLW9rHkSRocUeQ78tNalZUrXmaIyBBVi5T4rqoOrmkraLtW06ksI6jWuL6g4eRPTTOdCtdKld2qFyZ4nauvBAHyQPYVpZ5g0HFJfvRDuhA/eWd0dHOy+uLp6tXqHEhnRbi2uXV0291o1FVVomIlsfajUyjPbZ9fDfRtdtv13Sye3z7J4M4BqZXHIz5ZpGrQex5NYggDND7fdHfm4P1KN7oRXBexFSYz7Ctw8S4pfHt4+PbP2fbK7b9AByO/zIUH/x/MVltjJcXCjeymyPrcSeH/VxFg+8G2Enkp6ei8ymoQ9+u5maeVE0k78i7oyURmers/Fg4LH2cnfy5aKjZkjnkqoYYfTAQlgTmw4GZfitLvwFJNDZTcZGiV0Q//85CoM/6ju146DOec7j7YB2l0Ju+s8ZVWGvfscfHcZ3LYEG7bg6hVsKP0rnD1/MoCAzBokcXAAY3GOd4dPyyfw3EHg6dRicYA/ENfNT9+DC2frDrTd4t6AmVxKwrt6k4rciKiC1DJVdhmf6vEVWfwbTARLFoNlnw0oDf6EQVUwcsbCS4okoURTYlmYiCKEmuKEtiVPU78wBRt55QE4QuPjKSREMiKv1VFRuiLYgE6wk7a3kFlQy5TtSI2/RXkpKYlmSdPhHHUUqaREMUFMnPaR/00dUMw7jnLdKcZ10An93XTvEmwtoSFHA4b7BwCy0OzsMwepLM/A1GNeg0SsoSvNvo/+DvxNGP4/QWv6MOW3QdNPdISWxbOlGGRYE2RxCxLAlRJGiCpNLqgqEVa7KuDxlGVEkdKKRVRUNRJzZsq7pJqalDe04Wrx4SEiaWXEmKBeqJP7Nck75AyBMsElXUkKTQ1g8jgRINIfzDSNBVVTKGD1RNQ6WDWHVUt2Cq+rCWlWcEi0jidUpUnxnHopzHFs4qA/23APxnz2rd9uU4Okj4agQa2UTcYyMk6fcjv8h61mP9zVlSzqT0RiAfhPyRRrv3FehjvP9+4lCCLMiiQomm2BgePnmPuEhkV1QET9IwHRwyxrJM1KdlQ5CwSLtJlASEBZmOgpQg1jAMIdoTSVHUFVPGUSKrQd/R7hQl5SJNwoIqVrV7TkYd+stImmJmZv7L16eIZFDJXKLipmDKiJJeW8CaKBgyRvQH6a/Bum2G+spifvjgoTzW81HeGzkS6r9mmfIxDd9G0groEC1tMw+Uwf2A13JgTEnw3nl01DUVxXQLjN406/X6af+Po98ujyqgDlH8Bv8CThfgmf/ELp8dHV0Y/Hcj15Eqo26F3jq6AcOj2m+FtC6uPQ56KoDqrTHcXn/4XxrS1C5fSejAm3liBmsYEb9OXigS/yetGlDPqEA/bW3g3YlIGfwJgndX2DwEQ3aVma/DZ7FN67EQRSiKEzLffWDgbGLTitnJYimhqhu23WcHajm4xgAm3pZ+PUdKmDARGIY1yF2D59NSqLK4V9eXVMuCIWpG1VRFEwnfccOnSNGtaLpXY7owBRVGY3kiyk4y6cgiyY+Fz4xkzCDdH/kVpytVzZcx/wj9En0horPcz7sA8SNS8pNXgBZyrs25T46YQsds9T/QHuh89FejuXFBEcbrqs4W1BsOLyozR/8D7eNfpJNzvbYotj13u1hv3AC9NBazitNKr5FYCjeZng02ebNvlabcwNbQrAQcUT9xCdMz48GPU/H9b0DYAj1zss0/11WyZe9XhLjk2FZKEoiVuWnw61i2JUtWTCWClLJsR4oLwXwcjuakmKDsj2YF0TEVQTK7/xb6Ru+QclF6Qsm46QhiNkrfElnXhiSdF7OhlY2tPEyenQeNuMehtIH64k2HWgbjJcUixaKIFel/FIvEUpZY0RWbjbApSgTrclQZHZVULIix0VElKtd5Yfe58OjCzL6I2NjyKAe4PXIY0O8ZwleboephhhPGlZgtuoAmqbzAK0iqi4IHIOA1XvvqjEC7nAmz0Cb6mQTwjAIlKAN9nWuhd1NirNvW+JDldH+VH4/lLQe9oZgai7/myQNEFtJe6PjNHqL8CpVM52UUP4XigockIrOCvyqlPTkmebdM0oU0sb2DlmT5oG3lx+hPf6d3iDSZHHjyNfGxdMEZFkLHoy/BmuAJcSTPa8Jz9AevkomEWMFy6eUjBCmTt3h0+Y7mBr5jITIN8RS9scgNGUw/wb4m5E6gy+W6EekXC4N38097tSyKGTp35OFhSUE4I4pyOUp5guj+wS9b610o95+QCV11fTKIVDFdpkuk4whYKqdFFckFSSp0/yX0vb8clMqDd7Nx8EfCr9A2wjhoRfZHLgM/g3bo28vQZMAjaFGZEBKyzDLwaMZUwWhg0NLIg1m5jvxMo3XkCA90z/X9gSCcZF9NQ1g+eJeRQkLh7gfvLiAhZdBxoZvaI1fvvHUfNvV47sggbfrS4GlyoO/WesPBYW85AC8UT9Cf37J37xb66yfo2BCEU2/Y+ooddJ+75vzUKv9Pg7SZ4f2yscEj+o74UQGYUAYg3EiAdtwsEoBshWQ2THKeFugjDcaXUb5qUaCf9cqD6jjuNQSPqwev/I3QQi0iiB+QqlnTc7QY0hMiEiwqc+pROihuOP76bDw+nR0J6juSnY7Hs68/fsPloaX83QIVWzvZiu6kzJ0qZUAVQhSiC+vati1yEGKqK+evrXDBZnuctvnDv9ZuVX3uu4Uq523EI5t2wHcCUkhpIFBCU+WU8NB5WoJuvUBX7OpRSkohB+gkX3c/78/7CsPaehntlb6EfKHmrkuR4AWf2zt/B/qy9Ic3bfTahlQK+oPMKmqefwgoTOL+3AVavzSYc0GtM0vpI+cfEhvyQ8xukh9ifdsJ7Rnm/UyXhcEMEZ/e2Kofw4S9EqYv5ShmnhjIEUGwqoSr+3KYhK1WDWtURmO+UpECWmP2eYiH2Bk5TuXJSHt9RP+FzxuV/+D93I+uh9a87oib2s97edXfn2ezduHLfiw76vRiQPw2r/f4817gfH2bXuj+5QtUijsWXOhyqNGbH0Kg3oXvCHSw3D8cMFU74S/N4IB43oZwpqZWg1Ipr+ckx/RpqN+wFgvatTkC6NlshW5tKPn6N98pMmPCfZctLC+wI3GVBYnSOwDcpJqBLQ/xjTx+E8OjOn3ZffRmfnjTAI7RMF1dI+3E4JDy1nkxhSrKC0GmbM43B52zW3SA2EwzbLpPs7rC2b/Q+jYrH4fYhUI8d72Tvu+D9/FaP3ca0G3r2Yr7HtcMjtHy4zf9bqXJwAfTzu8Il91332XcEyqod5HyhyLt5Wwkkmh7JMgMXGuDoyZDQKlBrOvePeX02IfKdnKisdwwBbQaFaK/99TX7Am7sH9PGdnlD407xKTXJmRsf5AWf+2p34vCzA1ihiMMdxQyxR6InKTj+JbI3SyDHzAdzCjm9XBqN5ati3ZiqjRyHiiD8x0HyJzovXJ2giCN2JbQO7p9k7IPQh92GWbbRMK5w08uvbzZrvtpFoqOrNHkyCLRN93Rcb8Kv0UHn3nykwwpYeM/1GFB7X6fdRgm6g7mNXwb7a8zgFWNyk4vlm998g4eVhoOFJM34l0MnNfW5wcZvLXhNWBUVjYY7wbPhTqPrOG+dc/1Q20EcLXrfl2Rq7KybrPSP2z0yhtrLIfPZvejFR/SlhuMfPC3vjPfVO/uV/SOXtI7eiL04tGFhVdscnOAv7Hm5wjKR9qRvZGLYZTu6GXyDiX4llvDEJvaCif9Buf9Hf0M4Xk0zEIsZ9BcKAxjBqHPQHbvUZbou/vfRlJ3Xvn4ylXo/2Y5we18ApKCf0JxbfyqK2F7D0KXgd3MMXPKq5Dup/bOBbm+34Wzb6SdVvSzg6dnamYvPThdaB+GP0s7rVmm+vDGdZ4hVfT08QErM1/jLkLA1jGTV9zfJ9uLwoBynvOsT5bLTimBRewkEo4sw5aeDI/pYSU9500/nLSspOZaCJkiUdN0jOgCUTOKQkUoIfv7XGs/qM9pDshlyVZzQOq4UF1RG+4Wyr3bPV7r/0c0hDKTK1Szat54ntrvEg0USxtucJ/fjiMDosMfXrA9n6D3xoux4OZIT+fz77RtMZYR7Vjk5UHOUJbmkSfybFFBLBECpq2WgcOqDn4goddopg0JGt2XzkTfpoJ+RpzYSU30RBIznJwkKvbw73sz80yN4+hK4hLPWWXf6olyWXOzNq02dIOE+r1ha3pNV6m4z9g6E2KdotOxopwU1JOGZwuCa6uCHNUv4ZrRG6YnxYpQzr2h/9UVy1Q276YvUpYvyBKmxQ1V2TBOPYjEO5/e02NCJ8SLgXPrJmrPhfbFQNS7/0w0RC5u+x+ShISl5w+2iK6T1sF1+qnpyPawbics+fp9G1K9QYncqwhQRr8uNm11T4Itu0Yq9v5QCdO3EVpICUm/knb7Yr+erbBOMVaMr1Mqxoqv5lU/+L+ql9q0zufVS9GhtlktnQtopv4gqOAG/V8RbJOb9i/M2t4H3qyCBpcrDJVOHcHNmPHKVexjfm3T6jUVFbNRpipGXEvl2Fd/Q6heYawGN7IrchR0sb3sWokKW3DBdNjjwAcTsvGjASdl5rqcKPsQEwnAp2TyQQG4YAiaYD64J0XKn4lfZduTPgD5MgTUreXiy/FcfXmFZYE5S+8/C1IHW+4UBXhAcNzl+17SP8gPiApnEeQij9frdT9vEfASOu3vst/fEFzDgnEgTjQB4ERQZabBT9SaSa/SYssaJDBz/vHGw3fJlnzXr72aWA9LCpaM7mS0mFnLFNEMVomsyW9Fa4fnF9+E8ZsW53+tnkz/eKcAouv/VGOPOKOVn3c+Xhn9uCAq+H9iQxMWUCHo76BeLh0HE4APEq5ZT4/y4mt4WymdLqX/64uq58vScPOhF1VbgeUO5LrUAs+pCXMfYvQi3Jun5qNP8WCNlx1ZOVK6a8awkdxGb2tmP7ByjXu5oXu6fpNeNCqJ7HvhhraMbGPmLrS3eQTuiF+uwx03GsZIIsvjCtcE0R+PDLHfhYQijDWuQExGlbLmDdyzqG6qiTy7c+YOrGp3xDR0qabiO2Z27tNif/z2G254+w3IlGUyn6IzNDVPZLmqIgPPzGADqWiHNvFbimPbjvJbE9rd9uoN8EBLNpEyQ8iMQp+szFOZI52mwtN8ZNDOy5Cp13MUyU2Yho9uZA7cTeJ1gUY0Nsbr9qYcDnkuDJQn/LddUaWvhhBboXSW+S68qXceWLwBOqgawwKPvY19p1A4PVBQzfT9pL7G8oCOb4JX6xbdFg8SIesYZsSExS5P1eAMn4sMI+WYrh+jjJ68HxhQuglh0b6k+xW0zVCOGsZR5XthBpX7ffMxMQG+DGUW6pRHJKBJcWaI8xN5tKd7uRMa6OfXPf6nqqESR2ZZqu09rbhMKeVZSijleGsPR4w4c+27iKSM8Ayj21+eyBaIYZBCNvHy7X7ITChmIwreYgPZKSCXYggIdUCxwL0fW00GCMfEcQicK2QrC6OrPQVCJbsKOoJeHGKhku2MLhT6cFoFyOSyLrYYMPPBegY4yPsBd60NHtpJr+pRtrBhoRplqiCeu9VuYHd9OEcAekaFnR4YFRXZqw/044pJFMKK834wcQzCi29m4ftMoEP9iMRtLK74KQg9RnYvrJiM5/PjN/rRxNcPjc0ixDEK6LNUvOz6yQ2XWVTxWxKzY0EfE/SndC7l/Ry+QGV47BUz9AN4BmoxAf34JdcW5ehH5FNsvNJxfUreJqPZ8qnkyNeu+UDx2kui9PwUjHgYzKfkj0SRVMtfMvqJa/qxBEDbcmBbBg0ApW3yupe5i1Lfb/Ghx1cmpJTZ/VH0MU1nKRDkx6KnBKJoOrrDsrasbLFGLdScWHncSsunoo/JTAGha49FUUrW6Rq8m16HuywWvxTQ1hhDA2ixzKx+EBzxM5tzsBDgDOI1DzHnqZ5zYA/447brVPUqNauWFjGm3KWwONmdvnOavmrK+vKd3T+/RbcFF/2A33PdmycXGdzF4p9eR0+vUulTMn2KPhSDh+gzo3n6kCvY+i0Gv+MVb5pcZGgXi/1+W0FfpPNgeiM1YBivLGBMqPn7JIMBrFWqtTCM+pBpKjVFzF1fN5VdqnjdNRO5IXO0OtE9a+l9mvDPuvkKVaVMs7In9zuKLjqiupbVh/Kzum5cBK42bI1aEx5C76P1md2kPjzEBZanWs+hiEWVE8BphsDRUKV2HZNFZVRSpIM3vgdLyi5JwtJfXjsxMZ1Ke5Pd71v2A9F+3W45iWNSXBBG5q8hMakoiCfmkqI4WxtJvpPwfvoL9Ga0yrCVINcWj+/l62WtvA6Ii6UOYYCNpJLgoYZo6iLmPXnRRcwr8qKVAG3+0dGF+sglvLT7FR5f6t/jP7HCtAUoQtSF0ZGWfAkvfgbiXAZ50SzLqXq4Z+MJYmlKQQwN6P57QlWgAO+FPw0Wc9ejXW06q6evm6bb9q6Pb8yYvIVBcnyVrCum/CyYeHbfWfwY1P0rrvsV2H+seOfuGw6sS6X8dabVf1QcUPWr2Jcxg/UYIpmnN0pPmK2X4LuR6IUBcsSLMl1N5wbEqB/4TgQ86u+PsSvLU/ttuz3gQfL9novAO9n5h1ii58IALusQiy0DrcOWPmo6W7HLfNuDevDkRrMcRCyDF07Q2bVGrSzco9PFYWFpARJ6s+hj9HtJq3tiefko69Vnl/+R7etvX9r9E9O5w3Qhngr+AC3QdJ23LXefZlAm315efs4/gHjkf2U4AmcgEjTQMJchrSALQGaByFWeIgpz5JVWXogiENrzKA5hb4259qIg3EE0ylBaY6VRbU95wkvLx96kma4tX0PS1lZsijHFbOe2Vl1z/MjhhJuQkCjoerKl7duBgL2XiIyceErKp3MLO96s5q2fWwmlJok4a6oVRy43hm480KKrSNFRYp6ekmuZdXIVxDBuGfCrGJBSsde3a3GjzkYVyekNAqpb/leW3LtMt1NvbUD5JtqR/euk07F3QaLvcbppfZCWDSpDlEiQUzUeGY1MUn5iPrJAJe7OIG4JV/g3Gwk3xpyNWf4Cd1EAhkMmjZrYLpOdqEw8OjLadCNCzren/WWZErH6ytfbalR9/ouW20aqpaBvGrHuZ7W3al/Sb3Yf0JadBz+oP/ZJ7QZn/13uzQFgAP0IhQL6QPezAp3Arimi3YpBorPLy+cip0+vLi+vnn6UHQex3GeFXeh36Go9CSMHsj1BD0+LzXmWljnptdqLogzKbQboAd4VwoKCo7Whkz86OVSLYsWu7dybm/C8idzenbXuL91MppjZrygH0qVMGkWUaGXbzvTFF6d3bqtEFTk6kq0tLNSyI1H5jiEv7d6xg5Add7iZJB3D/3LuzymP+J8hHwXT4GMfvggGLfenbHE3G+ZGib5bwaXFnCCLB/OtdGF/tWHnzFg1MVY7WExMp4+qNhn+d2NPbDiaWyxlvFGXRNX54S2Z1PzQFhELyZlMtLgjq3OerIdPV/QzmO+KHAIdKkRAMPqeR/6YXJedtJdhJtDT4/P5K/v7syuMZfwfvhfdArfHLYwOc/jD97DyR9j22CbpXZZhteAouebCKJPK6Y+cizAwROSwC41Qwhf+L8jEE/DAX6NSAZUEvGYxIW6wUbDEuhA2wJBbCFeoF9BaByoL/N/C6B7D8dS9U0MTWI4mHKPT6aDIwihHUxhdcAw0OucmJrcq8sRQITc+ohlOEK8/RPs5x3AD4AtDqj8GIsvIE6zvAp3uQntGdIbpl0fPu2b05rQYtxRy5gxRrLiYvjlquu/YpY6qu9In7krrjeT1roTiQtW64e3RpLR3r5SMvv0Gqyom3hiLvfHXL7Yl74bul4zWXenBuB/QJ2xjmLbrYrfDkBWBDCKfB9G2FowOFlHCk8nZIQAvpstAdhjF9uk6V46gAktHFYb3YgXfDSHXPrfEwb6WLpQPLfBFX5/RKOyDvofZ5c9s9Dx/jq3DD/fic3mu9nO0fwwqv476dK2fe2YR7RSAfZ1vNR1gqGsOW/wcf4qEIDyY/yn6GyZufBvJ6FM7VfXb6AhlSJ/YcpyOoxUlqt7MvAsW6Ojh8MNIRJ9+F73jzxAWkHJE06a6YPQYBUxj1epezZwHfo/ezRI2BPkibqS9cUnkpZCdoNbmcmw+oBtArehyQT8Y3fezHgcgjSFrZ5tb7tbvG0F61M8Rda9uL43OXucmlZJ7HcGxO7OeVtfSQ/ZQWqujJ9k33FqtvpL928q/acWNOrYTdQ+v21e6s2y+P0Tka2x9y5CWlErVpJREkrkkJFTV89QCG0IF9h87jFmQrID/LbP57uORAX8yD778lf+VFlZKLKivNbBuMdaxsWkpMBPNMme6/wPtXUlpls2QuWhTAHshdGxbWmrtgu0tqCb+AYwF/hrGMS8Pnv9QNtXlSCSUcyEFOq+BnAstBrYiJuKkMt+WgeoMJk/4NF0lprDdmiyi7vtc5MztPnTDQIqEX1/sJJPzV7cOVbHujFa/NXXjBt313IvTXSeB686zKCzwP3sh5fVHThyTkaxKYw+MER3JL8KrcmVxCuuy4DiiqU0xzJqf0bn9J+jrHK0UnOhgfeV2PrBMwRlY+Zghm6F4QeUhvLHF5C30mWgljxVTERyNGKpQkpI5OmxFO+EItBTn6fo+VyqUr6OMomoOaag+VppDy4uzo3tObinpJtbIW8xYzHyLZpp6acvJPaNzO0oNRXU7kihbCiXjZV1p+PGLD6Avs1jhIZAJXZbz1aPivQcufSD7tekfRFXQrnPXr2BUsL6bUEb/jQdqh7LDxeUJU5tOZctbdwqWcn1WkYb6kHA/ObR9F2qLNl7YJnpX7dCPXi05b3/JtycfOKioYuXU4Xz3sb68+EfJZwawRWdoT7ZZpt/LuT4ppDoCsaCvQgop1huBUj3RoKtvo+lQOlmkf/5qwxefBDOVN1juhgjkDmdqpTVfuTRwulzorlB+b6XgAyLxHeqc53Z+yiYZPFcoLPcfgl2wTstsnR5hFj7o2bYLrGy1l2+bcM/KPn7MUKq7nBoih0RH344ZvhnertBR8kW20AjpsbE0GjEs2x5doNeiDjaUTB8XAt6JKvSdeeD+vIFAJ4CH9D1nEqCJSIiUdf6u4ynPKp4zOt+RbSqznMWqLXfm7yLPEB+z5x7j8vYzMpYU8kz7cuMetErXUfHcv9P3vJF9uzZHnOn1dngENRk/wjZ9XA24NdAJu+VEA71WNayHuYaUDabTD1uG+rJZXSN3YSqa4buIps9expVkZ8++QUsU+uk3Cgnt5a76eh3UUHFdf73qrjF1Wvc1BdYf/37u8+jLDAuxyXOk8VTfIM6VfJSpagCyR1n0Vg0uBkWNYRDq0NW1dFIhijEysctmUFn2rokRg5Yk07XU+Eg6PTI+bHm2GxUEyWUHSMZoJykPz0xMHKhv1RRF21o/MDExM1wmkg62fL1iYhlZsREX9lHX9iLquX+kffptWleIXRmlPdtiWImXgW9iJQkhj3QholWDIEtK7WiF5SSEW9QwrSuAeBBMp3WJQDuEOXoFE4jshBZB2zzWNpKstUDA5zhbAZON3tPOD10+cv/I5UP5dv+wewupSCKVTCdFiBsbJiSpP16I2bGYPcd3y6I4VCwOse0KvaqLUkVJEjIMaVzpo+/k+EBHmvPaZZdp84C84R/9voHicVUrPxaP62ZZe1MFE4K7H2C7e8vlhG0n2HaUXlTjcfSbZVOnD/THOuph9hwHPEnfN4NB5M1TIbdYshhGh58yvjXPE8mxaefF8xKVHRfl5mKQFES4nBA3OZlP1RQsYKKR7k9lBcsStFuppfKTSZffYA8lZH4HiskQooQwv/4noi1qIwklP5nzkAPBdYJIJE02BC83mVcSI1rvBtOL+ndgyZBs5N8Q4NUghv2aAg1/xJd9CM+FV/Ub4SUrc7y5hOUZh3RSLcTT8i5ik+y/X4/GjAfRdsVSovr9+2QN473oQZbP979Lys+JIpUxiup/Y9hIUYih/I0eRaQEUXs/V6SxEIboXOTGns8hF2F8DG7azTwkGIwM8ww2h20a9bnZRYHZIdhtNf8b0NHGBCJuxqNfQfTonYwiMDqYfDZbScUwlhLOeN6rEiLnx1EyO6pkPaGSFSQng96QTaLxvExI1cuPOwkJY8PVK1nVsXRVELIVwcsqo2itkj3s5mnX2hJd6a1/yI+zxwhRR9PTnhNLj6qEZCtWwuw+y47Ze8bz/2DR2yWbLv9RzzycrciKEVUqWfZczPFgPaWD7ixaod+lGTkYuZJJ14C705Nzir0jNuh2CosiUNthVCFF+uXAzEC2Cn7CNQj3TRb90F/aA3lxK0KfiHmcxJyLcErjxYw4TmQLzkppixHv/kUcReJy2lqx0lsEE+uYiCWL5eBCFwGHp3o2hGhi8x9JMV5PxVp9eL5WLFWPF0luLpqNadXCXGZuznScDyNBxFK0SFtL6A/kYranSlgUEJMLOCYbyHhHNiBhhYGbe0dhCa8Cxz3AfJ5Mwc/qMIfO8tQSrHo8eQHbnov4jnARhQH1Kf4OdcLQVhy6im8fDBCtevcqoxH5XPfcp4U3oi9S6fz6yH2RByPvpnINpYPE14AwqOSeIgSSNDJ9COhKBAvJnKnDBPM7awzLtQoB/2wDIbpCK0Bn9WNRmX6/UgW9D6UweRFgCKsyrC8zLDgTpPQqnRU4L3lJuPg2QxbKsi5EBe0iLMq7VDInEXxMQwQZ0gQmO+g1XRYLeqqCfmRKlFxYgmTGh03KFv5SET1zOEFJhSUIsmwoQ6oWK8jYiBIl6jj2ax0rYZkiEW1Cuq8jpqbQtYlyEQalW0RGYgolMBLV5GsxUT1c+OCtuTEJCYpoyKYAdyPpv03b7tCG+gzWdYGIExYZec+MY0jiPJFtWZE8M78HqqjgBCbzshxzpvOGhFITBBuEMqgIyUVJtRKJTDNvxNzrADCRSvi6iES6ZNAZaI2lW4Qk5KKgKxPTx5WURSc6XX9ExG4Nctr58tqIrzXcHtJADKqT2UxEnO8ZRlJftCbbUK2nYIYk5HQ0+RplOrSyiToput8xh5TbuvczXfK9x6q//bvHrvwYOwE9zRIlDb5WmTItVBC5L5a0tAcDdfJyoGLuY0qAzfRioKgbbMf+MgS05AIZTyn3zlOehrA/uXSZkAEXqd3yY3qT28AHoDHXDudDFUBBMpyeKw3VWE7USnY1W1FG5uMmlcmGqfhHOSdAQOn+QCJkq0F/Ya+O6AIhbwOTGxHDac3pLjOu3FucFsXpfJplTAVj6Nr8SM50BMHRX6WMZwq+Nwufqsuy3pAV9RaZnJQVuYf1scawcQexPkBXHWAW9ZO0AZZRG8A+zmoZ7SzfvRbjS0XttOkqBWVZE/+8f4XufoLxRaIkt1xzSVE6LVkSI+Gc17VelvUrIstM6mcLVtlf15qcS2fZWuFKvUySlH2dk5Neo1aa5d7b7TKd0r7qKHB1GPGZW8Ev7yGYM2fiSuybMbotFHqHlSyqKUoNdc9GlWeriBVUn1WiTzNO9tWcn11j/G+BnaAOZ4YBZKQQ/sVWZVe0EN2lKlGGQxtVrmE3PhR6duCHBv2ewH8dMtTso33Rx+Jl9rp2tYd3wvQA8npOn/s5tF2n6AO4i/Qocm6rYWxl6DwjI4DVc2lwoPMLlMSq1Uw3kqmq5J/i5g4rhr7YjeTiaDWe63RXPrVN17fB3ewp5j/DD3R+4d10zILrBh3WesKJotPdp5nysPtXKHKOxRGcO3fus8y2bNG2AbZNMLrYaKvxQcfHnAd2Zm99gWEYP5YN+cd0p+uRc2xHT7a9z0gZ798anG59P5yiSZzDNwvCzbCjlA8PyXR3szyEM4dk+dC7eTFcZecDeF5F5hkf+Jv1F9QNWlU5lMKZ5ZSl/EOTsVGVXh6heJl5VLAsHnBgqGSUTtoRBppPJyUoU4EVP37nbPddCpX/lBUWucKVQKHDFYajT+K5Izcf6dx5/FC7oPRygfXzzM5RSWUXy2o2BGk2/VFR8yM1GuE8uSHAZyiXm7WEzHB1mNeO8CoJC3+mmt2fmO5+PUqHqCg+vLDQz7i5JWrNddfq6GdJTZ9Ij6RRgS4Y/x91bx4nx1HfDXf1UdX39ExPd8997Owce2h3dmfn0D1aHZYlWVpZwrKFkdeXMPhajI2NA3jMYcytBGIMBNgkhJAHEhTgCZAQ2ISQA5LgPCEJSd4H9JAQeD4hweR5Q8gDHj31q+qZnZVWxuTJ+8cr7XRXV1cfVV3H7/z+YpL0l7przZpizLxJjWgoWV/He62T5J7d6q4X6FOOsyuIJZMjeH51RsGtt2abI3RVBpYqC9UWgwohI1v0+VRpMtc/l5sspbKTOdsvp53ibERXah2M02Xfzk0ek2vp3ORkLl2T/VJu0s2my7PFpCd2apFoOZ11J3OldZwhzMZdAFjT5Uv8RgaILWWuc4ROi0GKwb4t3fSZwchh9PXPuq52k17Rb9Lc3uCk22Bn7yw4qw79Kwg8pgX6BsOzGsS2nV3vV+SSUM35kLzLiVluksxC334VS1JBsvDjrG89ji16JOHHHx/JpuSkNDxxn2wpHTrvHnsvfI/3HqOzcYcyPkePjuRLlN5cPxPqkfh8lGW+/FcJzxNuFV4iPLJJzMIRQyvul7BudBX8f3AOyIROrd+FLQ+gw1b4DEue0whdbYszRfrHkpdl9C69BK3Ru7GIiojes3+Ox96hU9g7YBOHw5ew/t8JisW3XU83wfVXyHv5JtdCP9M3ac9Twu3CS4VHhbddFpGtETRH69t+zkfeJvdZb8X2cz6CFi6n+wLYhXWHLTts0WFLDk5BOfge5fTyoHGHzT5MDNsd2pvjsNc65wvMjWrQkkFnY2p49g3lNPvqhXR5qTA4k0lAKgGlh6nI8CzDRbz4DOVBIIYMFmp0hjzItCsvZnwIqewCd3pQA3O5McBqAWY5KFoIk+XU417gMyPTaqXpt9p+GSwNbHFG3M3sDQj2WkxiNYMov9FqYy4HajFPCMrptPwvq4UYstMvkA9UrBSRSjccwgU5FnvhA+PjKaeQzPmUpL7thkdF4hhORkSxaUtC7zcpA1wgJ27ec6xFCnLWe8/j/ITkFjLpEwf0mdeMSV+jpHh4EYpOf2nKiDu5YEti3igV0Pi+yse9qr4VywGSFW8OoSk9bouSG1WIRiI4T7yM9YmJg0Vjz/LEx72clPxVfkKJprH7VGS6mgkma8ewYsRt+lCHnlRH9Y1gpbMLrPxQ3JaI14gzBIIxEIw0G831zZBwhgIevkSpNwS56lGOKW50o3lXO3DjAS1X7mbG4Y8F+us6WfcdbKyO/iHBTMSjllzxymk8vXXrtDZfqOhzefhxzW2cnqhcYKVvG9kOZd5QD8CkeT0dfxeEb4/om7gdRon5t2yEug4rlOecQBkMHNjUDFdhEtpUjQRXrwwMkivrUU5bgwgLrfawffwgDI7rD+MMVoeelf/JN+a6rqhdracqe/1Ff++RvX6UrdMaOe9aL6G81olDEC3htY3jqA7riEYUumNm0bLOreEMPTxWZAWufbYCj7APtspsQP4TbnSBZcczzlguNzaWG3ijLVuurd/hWt3lbv8CLGY/4c0vK7DEussC2KCo8mUFaeInvBMfP5xfbjOczsMjfW5zL4Yrdz2vUR3op+UNH3ZeXLxxUdzHtvMhJbnKP+vddfis77vmL/gI2sG/C399ZWZxcUYxBnseHs9ye9Cqj9NWXaN89NrIAAx5llA2JdL1DeIGHmZWsgMjkfbloY1BkkN7sI04d0xJ+0YAAFCDtafCQLApx8xWs/fFYu9gWvXHWeDjZdh+SdXElmiTlEJZ6ZaoqVFTUg+okvlZRmmaJhB9EUuBg/PNpsNR8ejVF5j5QgEiI1vqe1hvfI9qGZ5nOIysHZcnd0xirIV2Jagb2lVchoc/EvhjqE5hBro+A8NGDAd02dYLur0MyS3lQ3cdKu+fTuVihuessRNPwoknWXJ7c8+xY3ua28+P5RJb42ax5uSGeKBrzAcSojUJ5c0jMXHX0vX4bAO30FFs5mGUprVLIjD1n9JInUeQZgKCQfKf+n8HMZlOXxZz6WX0PPe4Hr2q/0c8BtM6D0sY1k0D3ntAPwcjckhmbTJGis2N8kvYVFjsObB2HgInN9AnHjp58qGTT1Hi2tT1HXq3PdN/IOsuZd1VN7vkZrVP9l5P3P5/d7NrGrlwEgovmnpL14/oawV6vu5ms249686h5ULhQiIxWcm658JY7+bwncFyfb9wXHiB8CLhAUqVvUV4l/BLwq8/N4nr5rLXK8WLDv6TyrhXKCPeods8ioGt19iw6PKtrZ8D1FezZl7y17s8a5NSG7IgdEP/B0wYTB/H/YH59iB07g99hZW6a2T7ictyTl6W0//OyEFo380xCOKUcuO2CCUWkZTOkLtEYBYVwKPiyM7bRQ7sXGFGIOEIsMUAXIC5EpZBO/sMSISDWUM8xxd3GnuOqKISyeKtKBFkJTERnccaZWsVFUdlxECraPtFEqYYnsIbz6DVhz/ysNtQJUl25/2th677hFhORJNKBBFVlGlJU9JE5vERQ7GMs+mZEG9hkdY1JhyDqBfCSF05Xzwv8W/N0KxFVmcmU31OcNaKzyzUmMao6jO4gypw3vTlr9vRmJpRRd+uPPyRswy7GlQRWzSIc/nsmNbotO1TrnFmqrGje0ciZt/6FrT1IFp87ZlkkrZGkJ9oLJ6BIBgOSsVUUBFZkk7XxgGEtcPPXIps/eZ8IOvJZGtafMkxXY8tzTeEQexobu+2maXbJVFJsghxY3RmojiSDNEvuLnhyMl1Pg10f6foTHArnQvupbPBK4XXCG8APm1gO1alRBkz6hwDsiwIrSTaQJaFwlOaHPBgrXVPCpocWEwAaRaKwPygCoegJKaFS2zLM+BH/KFdOL0ckwbbsif46LtE10lUHbcUpPiyrRiz25FGcrRHbp81FFv2ZcUaV6PDUvKVC/2eHLGmcjeUc1NW5C4PdyXtCPbmNGkvy59nOuRtI2fNLpz++n/waZcXeoTec87D7Jm5Mn3oEfaw17PsB5nG+dz6yYMynA3tayB+E8hNt8Ac0d4o5CqR5qjEa6wCAsVhaNMArN9Js+hV2RhjRXcpjfmczIM1++eHcq/z4Z5uDix4f8YJkj9D2RiljJZjjp2JH0UEZexAVQM7Q5NH4xn72+tCsKVBQrsv8s6/AGrkL975XTuhH/j0pw/oCdvSp+MZpCBPMwzNo4lMfNoYickUZZEv5jdQANuZgGijk9tT67TSapdy40zpsAbaAmaSyWmg7oeGLyNseEbzys8YJSn400bJjsuee5Dd/iA8Zpi8/B02noekwOI9fya0R88wtDyYzwKm/duJBkjBA6uJAObCypWA/bmCl02FPNz2Rmj/X9997Xa15Cw5n4xEPXTBi0Ze/tozZ1575vym4P2aYxDIFiVF3Ijqn3JeuPf4Vkczdpjxn/tipFqNvPEM3OhnNpnbmOzWdDSeLyqyOHJG2CCPvp3OPi8foUCbJfjvNej/0Qi+Dfq/5LH/l/MMGxRUm+yHm6rXCO+5LjVCDEZkiVlY8fjUYTpkGB2ur+qO/OiXpH8/4NJfbhRJe0OPaKu95eXeKicReJplrzD2bWXEdHhku8JARlbOM93VJ7lsbaR95oTdIK8vczRnDmHcXq9zSBddlm7MyxAXYEYEfXAODfgV9Iykne18rHNWk1Svmygk9Lg+3Ha9/v+q101Tic7zHQ/L9xZMLO2eHTvu0SyC3aecRMJ5TNd/Dfa/puuPwf6pXoFWxhtn2x0D2/WhX/E8xA4qh/bjsyiIrxuRN9tkbGhLznHK29y12Y+I1TZE/ybVgAQEYoBX0dOWYt5yWLOtu2RDVfG+fVhVDfkuUTR19fAtpmLdM6nEzTNjckoeO2PGlcnZ8dlmfIvjbIk3Z8cXxGJR/FeUxs0TekJKvEQ1yA03EEN9ScLTTzRxGjl3WFGy407LunMHiVp3vLKWVOezjUZ2Xk3WzNbkZIuZZrBYggVaL0q/lBtgdlIC/086IhfajSoTsPng68Rc3rx4DgXtEIV9IayiuzDvuVBFrgdiAKzQMCBvqzDoe4aAzwR1pAFn0YVa8bHjBF/zSL62XUZodsK/TlZUXdK3YYQnUluyYlrR5fgkIZNxWVdypmPkhxlIVJS0WG6qOJ6kxbfRy1RFfl4wMYuU5YPXy6f2b/diVnTi7A7JVpOpq6aUiFJuZxdKeE9M1nBRo9OTVsSa7KGCqvYveCxTtGimKMp0fMf2kGa5sCug101dlUqqtrjz7ASlelKX8HlvAmShK/F52GOySMJ6B0N744ZzANG9A80B3vYYN42AFmHec9WAxbhlBrt0s8AMXkqkujDmkSrHCozn2VdgkOZkYELUBokT3O7KjOMXlDJW6LwlJrSdR3dqCVGSRVEqKx4lGGlrRgp6wkm6IoDn0f9aTJJiGhgW2IqqmKIiqpCjIgkhZIhu0knohUhaUejVf3dF3jNmI1RQsCR6lbm5iicCaDrtaciO+aKIcaoQjcRybtSP5+WShpAkRiSEKYVO30HUV2T5Xg3Jki3TPCkCeYgU5Xzcj7q5WCRaSGEsiv1/4JwslxF+jsUdiTBM0p3CYbA1gsgz5QpRWBgKgN5rBZQDx3zyAVUbTJ0hnvxuJogLj3Ko0W7RVQeMkDkgOKA+jRyJk37/34Kg/2+W9h27YE/bNorZxr/ovv4vht3D8hKG3zksL9MWFpfxebwkY/idw8s0QX/oLhLMLRGyNKdHpWOKcrcsX/tNIyq1RLElRY1vjoEplo8oy0F34ha6E1P0SJJRSow6WPSRIkcxLaGMRzE9xY5SokLX4/9F28KgbXGP8DLhVczbhXCkHEqpMusxZnktNqveUHrV5GZ/YIoWhLgMbOwGbPTTFbkJvRW6HJdbgoyTqQGZtNNrw6peZdM5gb5NSedqPIDOjNFqZ97R803VWMrOKrqNDSKrRJ5wwPZ+AlkasJ/KbHbJUDuenpzdYdBVI1kpXjNNy6XyuSSW1e3biawkc/mUKuHpI2OVpCRrz0urloWzvaxi2ySNXpV76e7q+E4dT8aLyNaJgSVM6YGcFgNmIablMpoJ0WWL8Ums70kk9/foSqfrtdnaAb8VHydaNNLI5xoRQyPNJtGMSCOXb0SiGhmPt/wDtJgMeP73F+LRSsV0x8Zcs1KJxjeu/1EWr5j1uqFSh/c7SgI0w98gOO52dIk9QAN9X+eqZv0fFVP5UneZ/ofomyAN4J55YYTO22SjDImyIZ8Wxc+uwj9uMLI8EqhTGbGfAc/GnRBpaBsKTRGL3L6QYQTaIhljOpXqjAjeGOuYj02Q/zWZF1LJKzOPI46SRonKN01OFUILs25hzXJJMD0hjmkkGkcT0wGBaMnQ9GvSeBJCRxa6/QvL3Dj8QqpS8OuPwdnH6v6qa7k4Vsz5moOyYzHFoQweUyU8liwWLLfX7S4XWITH5cqI/AfwPbK0XvO0XgeFE8IZyvvdL3wstLscdY3aPNVoDaLTjASq+Q8nlQ1My+Y23SNcjr9BjtY6xyQ+Pba9MJJ+JR0hqlp46XPeiRznplNb492FGXyfX6uFzi4WDzW/Bjy1Rs6dY+7gl2wLrqUWTHOGDZv/cOrPz4Wu5t31Dtnt1Hiu5bK3O+8O4kXx75kQ9gJ6kBdtRDnnVy6yCYWF4aNtPHRwCFWoJcZH2CJPjSD6NaSczD9ym/s7inv7785ev39KVaf2X8+jLqfcboKShU4avNqZBqonqX7UpsRfAXX70N/+JJPf25lq6npzqrM3v4N5iXG8zYPeOFElveId5MfcgayLlJhXjBUKmbo+sKOBeeELgi3cIbyWzgtcrhDa0Yz5YSdhMzF4PPqhOJjHmvBDVFx2JshJDQ66wQwOtvNYhGNsnl4ABxmRTtSUKhCZOYkt0wsVQKbOSS30Il+SfEJgK6nk2u3by+mqqyNDKs0anpfTk9kJP3a4OblnPGrISDKc4lwBDISKmuzImsZUulFL11NYqXX8ckrRorMRnVKcMUmJeGXfyfueRa/EriHblJNDr6HP4U+kO6m3feK28QXaTphUsCRPRbTbInSez+aLzcP5+lyAFSzKcS9vVxYqSC2okUwtYxASlyO4okvBuFcd15Pvxpo+Tid0UyOUF7MiWDSjqqxGFGvQzqAz/iXhV4X/Kgjj4IJXAXprRmKm/OBh7vPWBH+AYcD4FpPhgPEpkGagNIaQ2LsAkhh8j9rMWnuG+fZXQiN4+o1okeoMGnpm0Ol9GP8U+BORebOHDyQsZCpm+ODtXZIYGrkNjd1e6Kok5vp5zwwcXZEkKVOkIxBWxKCWtBXLsRQ7WQsgwy1oxYwkydiLGKaX992YBABMuktZWtV3IUis6AZOylRtFpOcp0gwmYwmS+VW2XDT29KuQVMlmjMZUF5YNVMOD2oOqURMhGCxrq+qUfstzOCt/29sdwd9R5VEPM2OW4aFA6PUoUtpZkvZRcgtb8mAI2XJCLAViSYVxYsQVVN0lUBQE1VRIiSVtRUp6tiWR0s6EdMrLkTHxHISbApcp6yqZceFdLIsjkUXip5lgx4IdlFJsbMpElEUVUJVjvkyMMIbxWuwhRhDnxyJKFSpekGLNInf9lptCeQKQRj5AJ0/tefR4Ks3VF7aqLxran8teDT0aHvh3hcaH3zhxGP3XTX2ovu0MbRbbRydnp144WCNBxwjTYgzLVMuBMptKgsAHsgiLfPAjcPZaTdqhuM9i8S7VUpZrPQFRVPuptwzesoBS8Rlp64dMYwj2nEpqt1Gp+Yj2NTEWTpP/7sW+2dmHbr8zzEt+1JbO2yalFl8aaiXZLaYA4zjZ7XwGVidPNsxOsekQauwXVmfsZc3TaLVQVG0HM/0z/cgvzfE82Gb7mAjbPq+5Q3cku8pjY34qMGPOUZrP8ErOINyz6FuQ4wa9GqmFwPFaeiES6okxIiClZsZfDE7dhYfGFACUJoB2t6UKN3jeqmnokEQvXFLIR6bi1Vqieo2s+hJ1vVmMYSr/XJ2zz3uXDAWlOJXFW8synJuZlaXkkXjoC6N4uRMQFRQgS8VYCY4sM2GrlVv7EJcrj00u1LCNWU2tHjm5MYgqlELYInn54BfRVLKna18XJYdx9JOOw8gktRNTK6BsE/oYd9xZPnjlVm6ONJj+xqCTT1J0AMOEuhiV92tzyLPWKaMS+54NnHeUDBJGa8OUtcwaZH1NhIsGx6a1XdXGQQVEyJdkwpebaQwwfr5RPb40B+e89JzwlHhuity0xFxjLG/jflGO5hvzLPIEiWIrlgN9c+t5kKpPsan6W1ojmYtlCpX5IffbiQpcxsDNyXk+4ju5BhlMZMGkrfP7ts367kKodNNp1MFA3qM4w9cict9yJdlMZqUTVNORkVZ9sW9e5f3ElHBnaMdZJP+WziHKg31FElhHBDJ1y23d6IRxNLGfCDzSNOgWW9zDsvjQLnci4IHIobAVLAG7QLBIDNf5QF2mbs5iGvQvxOSIXFyG+kcvO7hhz/y8LSjk/7Fh05WF6s7Tn7YjiVjqkPneZWYlB0lGYVoW+yY6ZqX5ir0JhlC76M70/Q2D193sEO0kzuqeysnH9qvJCKxFFcKGQoxZElWFV2yaLYZty7NHmIgDNuhzr0gn0NLtEYgDoMBwlYOPXstX7Jrai8lQfYe0sEoAZvPVpWfm8qPH5OkY+P5JpggAP/I3pfFwQPezhHSQhnk7W0bXKlBJwdSPsrRNQdADAFuD7kLiZ4YDFhgpP+q5vteqpCcsWLR3KlVgEsXsbrGXV/Xct5L6bktcO4NuTMTUTcZFA/6e86vXgA3JNF2uD9S/+nzT6V2Rk7x0+t4WhBvOc3bMjQ9X4eKGsTbDIZo8JLNwsetcyR55NJ+JG6nlPsMg3qamWF4UCNHEpAJn78FF5x87PppODju6tueJ8aML2xWPDz6pq3Xdbv/Bi+e+QBLRl+M9hrW8L1F5ue7lS7l/POGZBYTm9UHtiUQY/NKYB0InaSs+tTMi5944sUz06YkWkQ89YpXnBLJLxJJbluIyKK0bx8QSshqyxI5MiaZ0lhMw4bsPPGVJxzFMtErfu0V6EfIlFtHaKnxcYSVIy3ZRMZ+jPdDG6vQB9Bf0nfNCgWhQmfkabqKzUNfKLMVgSkRB++1nct8G4A1WQpIFQB2JNIgQZs0qkG71G5U0RNNw/fu7BiTRudOzzeaGw8Xa/FCc6XZXOkEM5+Kx2u1+FuCmXO1+NoN7viZWOzMuHvDMIWK7euvvx7ZlU6xeL74CN2t81R/xHjkKngmsFeK0o7ZLkIH5fAZlKeCrAoBzP9SFEiVoMqcYVhM3hKfc+l0w2z66Yc4IJtypUfE+0ivQpP/0DOXt+SC3LLZix90XVGSqkmEUbIqSeLGwx8qylT/6W+AS+83kDOlKJ89q0f6jy1nq4pcSbwAPRzRzzrfzudFpSaKNUUcpgRjyB/qgkXHoEvXihrDwr9FuF24k9F7A75PadPmblTbtKWrUpzDTtEVpAoERrRYxR6TnsYBDpcHjeTrRgiQALUuzbF6o9BbAFZNidAbluimERDKmNCVDL0pFj0THbs3GntXNPamHOVfUhUHLdU6/QtVUUqnJUXDnQw2DJzpmPiyHPTTRFuc6Z+vdQx2H7tQ2FUoAEEDCpv4H+VyC5lELvfiXK7/tURFRuU0Wkl7ndpF4V9AAjUD1l54RtdnjI2H/b/TyMxip1ZACtzi1U36b1Q2xbECBCD+vFEZxYhGvriJbp6lKP8EiAEQyQ89lFtK0dloxAIpBNflOXSWSi3l1OXVZYCsXKYc8zq8/dN8y4UBHD+gC/8Yr9wPebiusE84yH23I5vC4gxTVbYgNhlT3WSTMaOFPKaG8Mr0hZVisyi+XEVIbbOHro5s25B9Q1vTHkxjiXzyk0TC6Qc1rd1fW7sogARglrIwcnzUa5Jv47KqK3PdmByX57sOduTrrpPprjtPM2LdC136x+e3H4oEvU6IClsAXZPR5yOTrnKFaRog/P4KwnLfcBZm2bNoaYtpBgbMqkZgmls2HKGXG6bTP++Yxg3MVGh5s0Lh0aXY4NlRbPABfk+FixVg3h1Bj+Jc0z8yBZq61OnUllZWaH8/MQrp8y2mKLu7s9RZWV3pLH1qgEnLePMupWMBi3cfSCBDqydSumRfjBYJ85MCs+Q28y7lZrQBXbwuFZUOXhg9rqrvi71ZVV8bu09VXxTtX0C9aH9FMauUXD0gHlCTRtVUUoq5JZ3eYiro+YCECkCq5XSISAQhKrqDH1ru9r9nkQSW1Gu+fJTSPgli7TaRcuiQgsyVcpqbKqfLywOHejykYQnlPuu0fgwNaMAzBJvTs5iRaEN1PJ2ECA5hOzdEdocY8BUShGRsbBCMI2A88OolRO1HF2cLjOEpfF4iV11F+7Ok3nKLSnfkwIHh0f/mlOyD7Baow3jpb11G1uYqqYJrQXe33ELqUVXK5STVVqWpKbYLjyYnJfW7QN+G9xnB9/wDulKWLvPY3I7c0Y4eQW6ZNEYRNJPfbWpW0tInJnS605rf7f/P+789wnkeOmRprmZ1Omx3qP8bq6vC0KZklY60NtcwIxCXrYeUIcO5jn2DCiczaNYuidmWMMuSgcH1sGuV5KA4GYAKADC16KfXyPlUhQHC1jpuo5H5cJd2926ENeUNvEEFv5KOyH/KxJzLruWApx4L/5NyO7XrslVbXu4+Bn4Rj3WXRqUZIsMG+T0Wb7k9gvzGyUmA+irRH0aUCtpkumauToD+uFI/3Ow2D9dr9Xq9ho4qrjM6QztxrKsBenGgom6vB75svd5M8IWnnvpC0P9RJM0tRfk2HSkwrEH+PRcZnbZj4PnFmnGh1V7gvp5+wD2+IPwCJhUIsgCiyUo1dAXNgbMB7ezoVH5ytvh0rTOeRZ1aetqKpVKVv8BEbp6MlmmOGyW6+JJj0RgWldLE3TeJM/nibKeWn9Mpg1brpINYJRWtUo5ijzLugCySEGKZSysSsqT4gYkDzw91MRwbMcfjkGz0VVuoLGx4ZVz2A8wR/tYV2kOdPYLaML9nfg24mcwgcXd2vFPr03oslNHizFjLdmKpCupfG/Ei2hHNkrInVPVEVrK06yeUmDJxPc3KRS3NLt64mJkrJSf07appZasP63N56AmVloRkCc0sjud02llk31EjbnLD5cM73iDiuFVcvHGmNJcOxvdRtmpWEHTAAmY+aopg0/5ToDRfXdhG6b7DgPLRDqrQP3AIrUsqrQZEUqpKXBrtk6A0qDGMkVmpwubeOJGAhMUsdlQbyG9KXJHqnXc9RTlejLAsXrNHEqU/JvJ9x0XxnYom77z7JvrCN71SlDE64iyJIpHeKYqg9/08qJ4feDHlj59K3nbbbf/zs74qd2j+L0gimvmWiP1FWRHRDXNIFm+RNOVdH1LVD2UROy89nH6bTETxFlFG/b/A4imIEL349Z+TVf8L58+z7/3bdP79EovTCHaGDG85lLMPfCuBWIC6s1DYlSb6oCz//u/L8gcLhU/IauFJ1XlalX/PUZ8soGtFXXzwQbq5PR7/GUlRfr/ivkDR9Qt3K4p0/wVdV17gVkZ1fr/IbJ62j9o3giif0f95NJhSlEawCf0SypDpwKB0EV1bepQ7bapRmbS57PXp//IEm89XuR/WOMw8CGRV6fL4zBOGqqZ11a6z+eOG1t+sD96/pB2LzTiMrvoRHQ+vZvzrXkAcbENfhw9MFyDGsihsePIBAha68LkHY4HxhsxYh4UMm4WX94M2GOS2Y6amPRCdjD0U+Tp9leejRwolUTpY71uqbl/1vM+c3tLYIcs7dkmy8k+OfhhLESmq5m0t03UMW7INV1mjlM4DtmiempqciJP9i86O0myX1khyokkpd1Pr7iT9DMl5Wbdu1XSVZFRdC8pmEv+aGUXIDe1LP8dscmYYphiLrAq+YcCRBUw/B/CzVWZ022CWZqyK9NOgLzfE/MFUDuWylIe8rhbR5NJ8LFDH/JiToeSUH6nttidm3OwB9NbG1VEtmbu+qE/YvmEmSzF/TA1iSVpO1iK1647ttgMru26bzmUFBToCu8KSsCysCD3hnPBu4ReFj9DWZzhKLCBbuwWoYhxqdIoHrKfDUPoxgeZcdgOQ/YDbGu1iY5wKbvGwX6UqC4nD83aB3uzH3K9KGcEoQ7uqtto84YK1HSQeNRQFidbNCmBfuJKNUZRgqSxTPlUuS5jku+dDPKnRza9ShkTVjBMQj30SW9K/WiJSFHps03sgnUwqEj7BiijjkoUnr97kHqu6qQM5ZsbpthcHmdQzxLJsm77KzBSW5cdFC99hGHdgS1T7F9Zlvb31JMqYKlY10pBtPJ6QFPKXtm1Z9FDGUzNE/0Vsyw2i0SLmaaJIiW9tepN/FsX+36jqMzGz/01VRWkz9sxIzCtm2wz0/THhDuEldNUGgm6D64HEzBoHYnZu8z+QugRcildh8jt+irGo3PCdXtJohy4CDC9x6DBAKs02Iwtol75g64/bev88sAp/uLwe3gReX1WnY0nbFw1TVc1hCoKvjSu2Mk73jvNy0sM6QR3d7n8K7oGeoqlvOyoLlAcWlEw8HjiO6SKR0IyR5EOq6rWrilJtezSVT6XynyA67pGRtjHoGszHgADemSFJ4wVMMuYVmxD3CxqmzTdsKWZN0GARQNuDFgsvrDKrVn4P5RKr4cYlx0ioq/z1e445flFIl1W1wMAcDcNMe2mMJFukyxKOJQq+apXAy38lVSlEIxz/sX8+pDnDzsANLwrS2xkLe320ao53u+ly86hkmjilxWqaKMmSKspaOh1DKjQhndR345XQFHldQzEwSmZryKdpO32e0ioQ02qdS6xwOIUxvoMFDLrTpWFBfvPa++MkaepThjFBv+iEYUzpZpLE7yKMs3k752/WxJcc7z9Np+iYZtRNc0ZRZkyzbmgxVTWQuvSyr22IISKy+Ndcnljl8sSQQcXcmpfZwBPGkoE9H/MbK/sgOzzNxH5Gdjw1556efe3slpSWpW3d/8GcTP45tlCOCxeVvkGLgZudmdFosZS7ZZaWG8+ahqHOycrFeHkh9s+Eji9nxDeJY85WhVnhbuEh4TV0Nn2P8CHh48JnhT8S/pK2WmOeEcmlcM+k4SP7wOMHxfB88T9qpcEmzBGrEXk9WR5jizlL22g9P1hP2mh+/cDfNLmhNB2FhQ79wf4g/S0DikQfUqLzXCw8NJKK2ybGiWc+xvdIJQaGhP0Uz6jpbIeNvfz4Z/hu/pKzqKA+RMf6Jj86Yi418ODcg+VyK3bXoscFx8BpXa/ahjNMFQidnMPM+uXnVZNsctEmKVpQ2BBLFJCNLo/iQClc0NESNrmUdqNZuui2SR5BiptMc8Oq8865e0k+8pmOjK97yul2C4Vur1BwHPobqWXhfztj2p2/ouuW+cUCLdItrLEigBcB8o7PhXNfWjgEuruAxQYpjVVnxDbYxHNfdOCKAq61HYjcQBg0x4UFXLwFKr4BFAitRiXk/4+XFpJS1JBl1VSiokG6MpZQSt1WJET8VugmULd0P45mYVif0lBaKcQT0dmSRm5k/qCJNzZvNywkms6fYIIchFX5lvyYKhp4agB79LQWLNHrUydA4nHiOt2S5TvjyegsuKWFHqXr+L/ctzwE19tMVEcpsRGcjgZ4y4XjiltV7BKH7s77o+kIoLAUBgtx4+EG268sXd22dUe3o5F4KaWSfKrHee7leD56o+Xy78NGxVVBcBWrxOKZiTlY12wcSUeliLa0UU4B9qKHhRP03T0WEgtXZkWv7o2A0w10vmydZniczTbeQEF5tCK8MoRHERpUpKvoStFIUB6ci2UeS6RETV00paQop/Ioyr7Twnh2avVw8yFZQXKMYO0qXqWXXgNRtCxFMyrkLNpS/BjU5omg+yLVNG8jqmnsy06IkmS5HH5hfAEVm4ex7Bp05R+CFAEWMeiGfofOnwu0jhDmj1Ws2gYrdDbXURpkMMfzbbsMM/y6S1bhb5GE6Mio3fGOHXeUf5bSVTL6vml4hvlNw/imqVOSGAlmzrydE13X/A4SP020dvcND3av1sinRXTQMBOm8UVd/yJLfEPXTy/ASz/O6PcLCPrPabrSlNaFNMzilHkbDyBUOMlMqfnhBD2SanFjhjC6BBj6wrszeyh2Q7Ry29hj8Mg/zhJTO6lhU3VJnIiqmS0fc0tZLR1MwulnKZWZt3mhpzh1kKZJE2v0bEKNYz1hBM4MF4Zvfj6VCE9zu7Dv0Y/zs6hHv0uRRaSaH+Crhot+icWhauF5gCIFhFJ5mEJ7/urQfD69O5vfXUmZVTNZ6R672Q3uO3TsTFHTirBBc+vJ3t1XnzqYszqVaLTSeXxpeTrz/1I6YWLkx9f8NfFROhZiEIVM4aq44hgT4LTBfDWCgnZD/ClF1txn1lRHpr21oI/p6bOV7vMiqqaSqE4I3aO1SOTI+yvdUbs+kEGcAIzi8katw3DNLW6SNwzIuwkEEqhzyo1mSQqxi0U6TdzRGSD4WJ3+UyMHdzCyLXGQGaLC5iBKUOKu1+t1l9Ha8qeIVlsPk1UbTbPhuTHjoW6/N9RX/HtYP5j7jo7w/yQYVqc6InfErEf7vJYAlTvovNtFOt7wSEzOEqWuxGUIdBDc2M7AQr50+Ge7sL8QLq6udVeurpBcbWWp865INI5SrrWVTRxOJKlc86B9FnQvhVpn/h4mgjy3xHYQkSPllrOTucqMuLRyvUpz2VxxKmZvz7RHsCtBlpINdWt8MQKLNUqgAIJuc0Gh/Ehl7O1/8/YnvvIEWlpdMa7+6tVG/1Nb37d128+h3rW7btl+4sT2W3bFZouWNTlpWcXTQZAc+E6sMprOA1/zoWWND8LvgWVNOWwlsFZn3DEsnSiEWGL+YDMojBhHefdxtqD9qZnSVatwDbTNXpRlyJ05K17YZZtKniQUxTSlzPO8iF6OWGZNTzmSUS1PXzUZT6Fltpr9eyaCvSxtnh79pSeOjmu5yFlflBLWqXlrxj+lSHpOlby0msvQua/WXJcBcd1kCqKAjegiGfDriPYxKA51is1QjSjkgtyWUHFYAMRBrhUcagL7jyQqslLNopWUD+q/AtfvhbG/0O8yv9pQ3q0MkKkuB6QawlCt2yxiMgx2d0lMWPRJLEu2ZCm/9VuKRRMyfutbL8t5e6Fy8qGTlQIWDfVVqi5yuGKuTlEoS5+hV5w+TUtmKPu/f/9lOW+PbhsD4fPYtmhKj0T0d27gQFg8oRBDn05OCgPPD5guSDwRIuWL18BuZwiL398Ku8GYvAr9ruAK94K9rTsgofI83gdthJLCV7tSMDLlrIc/XF/4FyA0ThidcjuqhnGL8mKjvUuah7h4jSGuXwSES+HKE3quR8RStVJ9Z5rSZaKJHYzFRBzEIOjNmmXZWn12p8Lml0Ni+9q2eIillZ2zdc22LG1Bjx7dr5OmZtmWNr9zXBdJJDOeiRBRH985z3KbRN9/NKq/NCFi7MgquH9I6RSIaxDggCrKUfpIhT76YA3j1K/amqpZB29WtaMwg1z9YM6q7dxZs7MPMuHLUU29+aBFi9jH7ISsLbHSR+IL2AkikcDBC/Ej7OySJifsjxzEpqgghOWjikJIS0thzHCb+qGvQYbR4IAtyrR9bhEMtAFPiCO57yI8IOlGVvbSfesSvWQPZWLpCDD0Qf9bqi5JALcriaiD2LR39WXbDzHU5lBDueZuOzTxkeRcKuVbqpayXCNi2upHllYujKhgRv/+amV1ZWX1HA8rvwEnI0J50AeEh9dxMgZvyNGeI4CIQjjdC6MsPnA534AENHQ534AFxOwvBvF+GMnPHc4BQFoYALA2qiUPfefgwsLBhaMMauUOujA0kunt48cpzawQBeM8iWHFjljatGZFbAXHSB5jeobQrjcoYkcy8ddpMVvunM3JEcXXVKt/L4sJcvaeiTtXFuABOxgUC4q5VsPSGmYdX/l2lz/RMt8ez6iW+prazDhWEroe9WthnKA/W17meKJcb4rp7BkXkkJBqDE8WlJiwtpS2+dDEjwGlRZl4cDj2xurhMtDdWjOxMm/aoMuSsg7fW2kW0vf+MLFZOvFh8Ufif2nbeeW3lI9nkECCMesyZe0j9EJ1pktHpgkpSMl9Il949NL896fHG5KliU1HyTS1+qTOyfWMvvoPL3cO9aejGf8VHF22XFC/EaIddYL+/nA8pbRp5x6Y6Jyrur1L4X8WeaUSRDFaWublVYLLiNTbmeGoyjc9VwL/A+0qLkzm90Z9bjPzNOsN5bDPglrz1+LOvoAbbc9wvMFoT3P0SIqYaxbZqfO4bM3hIEA8EswnhwbiKF3iTlmXEWZURIipw1uwP0Nqu8tb5XxtqlSE4u6WjBlEugRFYlx860wezAC66gZF0U3EhDZLCiqjBT6lBrWtm2pt/ZZZDY/ddCWdHVMl+0MfIX7jeza7Pj0nukxYui+HtPMyAjxTAdn4OuKJierUaOWnrmqcLKdm8H6VJV2qAT9KpXUMNbnH1AuOw/Sf5B6Ex+vo+FSFrvNl452laAfMtO0a5xI5n1u0z3tuu/LHC0dYaKo/o8ePv0wepClj5SO0gL0fJMWiDjX8CCJZ2gBYV3PzOeBLUDTDuapwWxQBWKGeRNghtsBgQcW2hUeesBvQT+h7VuilDxtf1JaB9BcV0mSbWhuPgRN+wzbUW5WjZlRRTXnTYKjZkylGeMJepQsvb9Tm8Kal/N20J+Gp2qdclZcnCk07US5OCsiVFseQYGKwjVRSwoCyYrxG7B7vWepY+oe/adZnVp+Xjf0mcViJjtb1MgQf22R2Wx2hP3CtcJNwl2XalbBpxUYe14T1gYVEHnQZXAQNYXhtYvE5yQdU1A8xwN0JlueLV4UirPldKc2l3Vi2emvK7I0tV9SsCi5WdeZkk5usyxFVFJ5vzz/MVsdpx1IttWyZD3/uR18TZnOFmdni9lpurzVOjW1nEaq3ETILSXJlLttSUS6GGnmUjM5+7dVu6uKdENXoR+XHOk3gCS5HeJlMk5gFEB1w/dXIE4QGviXtcMj5p85cszO0rZZZeCaa5d9+f6nRFPEY/TDj32QpSzfig/SNNf2ENgvXPrBv4+xNx/1slnPaXgsDfqt4QGcsJIF5nPL1nyol0VH4QSlRfcLt9IxMUq070KjR63KhqPxZznXftYW+pgpSV34crSlu9LdG44+vuEIvWXD4YkNR9uv0HTHsYVXVJFSritY+gnT/7JJmwJ9xO2gfodyCvuFJeEFwouFB4FGveIoyiHFB2Atf45cyTyhPjY3BlpPShdgEhpbYOU/Mr76g/E1nuHjyx3z+49KBKPtqiEmryLkqiSl9g+XZEcuHaZZmlguZK5OZW5Jx7xKKuak0L7/jCEXzTVFHIuJSnzD04YvkPICOZVZyplJN5Oq6Jkf/STjUGG23K9HXxDm6Bi8VXiFcC7UcFRnSNUrVkko6YPux4zQWGuzAMTA1AdK6HQQuiPEebj4ZrX9E+YrzeJlMlLxlZqVtjRJpT1TlhWpv9qq6Fbe1SKqcRgpqmRKmkKmJiVdNOXI8e9U9nr9z4pICnQRI8OXRNGhV8XjkiL3fqLs/h+i5REzg89ZWkyzZUsBLClZOnpXSYP4FrciWt4sUYqPvgKSo5OR4+OFiIglT6J/WHQCSRZ1XZSlwPkJcv+J+50yIDIW15T7S1p0TZ8TnkdHye2U3n45jy8cHdpvgX6wTecBG81Q0rq5C/ltlmMj+GphTqXq+cGl2TkIQMEcnmfQpfCmw7DEQ/cCCP7N7c6md1UaO2NzJ3bvOdWYOralDIewr8ycnKb7GZN+m2axdXCQN3d0Zq62pxYt5BfGJ/xfH2EuOHvCpTGUIaa8idVndqXoKav/d05i3FM9yY3qyf300dc5iV0xjWi6qkZ30uP7ZbGIRCe/f5D5pG8ZEcvwtKibtx1FVmrsKbOapevWVrZlaSxjWRz4X4DNxOeHsUYBgZxwB0ViS7BIAyHDInX4QTxoiZexZCH6yj9qtpQtQOQU2UhVt3hI3PoL920VxX0/Q2wRn77IcLY5B8YrjT4nWfrNpymTahNvpruLXoG23vcLW5G4eETGRIwW+mcY/vYDTBRwzUCOjYd+7JrQFHZS+uMG4SzED22EY8cdSoy8YOBSC1Ys9UrTCw/E0NFhoENpNxs8euR6UJ7diGF9eaXyaGdb4/otZvi5zbW9CeJadEzSvmHR96tAZKUtNzDy6vwaMw20YginbE/OUzK+0AVIM24dfR40EwhiPtve8Z2W04GwklpnCqHbWWp1OVVxt3BqbV+hH0ZLi5m5IPKer1vu2npHeXroo7bG7AWvYYhDXGy8m4XUa7LwijSrHdrrgfR4EOgCVO8jlOcmoO1ogRD5evphCQq203HviPo+mo69Ij81W8yplmUlHYxT/j4nKTn14uxUXq+kANBdwwDonqqsmPhJrOGbaa97SNfwnnuZKZ/t+37SG/Odh8TZYn5GdKKpyhDjvZKKDmRqF+i3/iUhR7lBwJJqDRwteRDIamWD+iVo+c96duPFYxvOIvPEW0+wj3PvibNPssR77jr1apZYnNt6kiVuOpprFgahItl+Cr0fH37DcTZxPX7d6wzrsdtZ+rH7f+20ef91LP3GxlEZX9Nh6Tccuu8UDurZge+7a7HUm0tbQzuSrzEdmiaMUdrwpNADbVQxVMDQFWdWhAXERswXgy0gzPvtJ8gOQmhiFltgM+0cXY38UL0tFp65cGbxwuKZ/jlJlNMWUpGVlkUpriAsJxJ0wlI+8BOf+ATREhNBfoLHLFpjW5GpqQgSut3FM2emKSsnJyUpKSMixtOyLFqWKMvp+E+YTz9eN6jGRXmuMLUyXFnI+ZXQjmNEL8F9Ua8aiS97BROpS7XJ1dBJaUiRMmHPWDW0Y173PWXWHiJTS3JrkqUdJ0/u2Dk1tbO2L5ZIAXLvjvKZ8tI65NzyenJ9c/7kQye3bJkcMxdvXCwUhrFHBnwo1GIP8xDdII8iI9AuMOOJbJSHvsl0cWuPMBhcLIweGpGZ9Qr0qQX6xJ9enC3QOamwbMfoLsa8Q9dYyLSDbJaWPlibh2rNTXyQVqj/6tliLbEGPP5aolY8qiQjkI4klT+H2vz/9N1d/u7SUN+dZ3zcpT0H1g5mt1XkdktNUowu8HjrnsJt+4c2/VwS9AxTSXV9XUff0XW/0O8pmolB2tP/c0IOqeRRVU2q6k0TKumFATTBo4aHE+l2URdTwsO13qiSw6r6iEpSqnpmghmowbtepPPoo8K0cH3IZ7BJoFQJo/PaiAyi/LWZOUK4hZCw7UsL4/+csuI8VhWiTI1P3DVF/6ITHtFVXEwYKT17fVan2xsyRlpPFjcUK03/X5RKdJGGARJc9lP0n2GJEKpeQ3JME7UABSrfqu6bN5Tz5f+7Ytx39Bm6Rr+G9XVfKFPKRRi4cEjAU3B9L8TMaXNJ8UDR1WJyLOKVmhWw9GTm2KAM/x9MQvu6rK5YhhU366o2s/OBGU2tmwDLoOjZ5NtdxaYz7Wo+mLAVt2BPVG+pTtiowASv/a9WraKuOl0jbWxtNLbSXddR9aJVLXw/U9AzUSOfN6IZvZBRtGw6ndVGZF6fp3WY58jWblCEj+sPI1qHwQj5gKUdwB/KJiiBAStZYyC+LoSE9k/fe1GoT5lFxNSz9R2pMfqCcvFAUaZ7Jx3dgXqVVD900OG+NuijH20tj+n4Rm6Dc7iDpzLAOpqWplkmpGJFX+4c7qYq/XPsilRoAs3i2v2GuEjroAueUBBeKNwLXkjgqUD5ZVKRZlA1jCPR5hEl6NiotIHvA0Nam0eqixPMw4JWAXCFduoZCO+FedBThlPjh9BsHAqrxYDwhuYgqJDMxLXqdVUtnvnZ8rRkmKaNm/hPF3DENAxpejx2ZysumbIdmVqeT01F4oTsbCXj8WRrF8ZeZCo1vzwVsWVT9FqJvD5BE+TAfLFdIJQdnNDzf8YFhku6k4xGk47e/3R6aVZS9k4mk5N7FWl2KR37h8JOTBRHS6WvvyWlychGZiGSTEYKJk0qauqW69MpNaoQvLNg42x695yCSTzWOFjsjMVo5ZV6N53FbxuJzfYJ5sddEBaYXTkT8BG8wX6O+29X+XQAEUQ5UT2DBhE5N+SN8cyPbNtnaTsm9r+YeQzT56m2Fo3WH/4oZp8ev/FmrOnkxMv4oXJiK4Cg/Hfjtp0TOzT71L4fgL3PD2Dm1mO2hJ150/4f+KMPE0qH3vwmBUYvXWfxy07Q2YJsu1ZRiFwg+giunyYkwQPHixZDS9720E+L40+U1wG8NsETHyBTdNftmSG6Vr+bidcHRk3gioOc/tP0Jb8yNHr+I1qgHs+MehpuwBvc9L0aRf5e9Pi5vxfiJMmFH/NmQ/yMzd6MMDxMk8UInhC2sMgcECNBQHRiU/jM1mqXdzHsHDa1hQpSgJNkgMiB1K4SiBIJvzZHT6Yn4sB1/EtqotX/gKrG9ALBJrrZxESLaWpapdsiIUamPD1z7L2m4zl2/MP5nfkP5XfkP0x/x21ti26OE2knEjG6beuDxS/LTstM4f9GUoYjR+VI20gRJ5jrELRLIjv7vxmrxpL0l45V3fer9oylvct24mDLInDMz8+GctvJIYoeXbw5DCNYcbjMNHuWxZbxOeItdHQ0OTMWxKpntxqGosw9psZkWe41ZEsxzXb6xGtz+xL564vqmFzJOqjk3zJDOditJh378tyijDVNR2ReUQyjU3CdiJOtyGNq8fp8Yh/gXTM5Iow7oEAOC88XbqKz2SPCm4T3CB8GaRasxeIQeg7AxteNaUYNXwNySbcm62gwrEdVSxszqo1mKdiIwtIINt7CGwXB/7GQMxcREDsQzRSlUcx8HhsJSGDj4V/NqPjH6yRwYUgP14ek8dvW1mrD7MJ62a+q51X6lxiJZrae3K8ozycG0EzPV5RVMzIySrsRMzu8+VUjMNDryScLI/DQ3eHDe4wce2h48akRrGZYPz/N+pBHv1gXME5CxeUsGiqCAR01RMEOxbscSBWXyCC03sjEStA6zxvKheGSP9TtnJG/VbGUpKLcWjRM58JlOc6tipI0zFvzRs7WVxzT6PcHqSKcokVvXb3kmJbtXp71OLutabLbrsCDkDhIDR8Zrr0cI18VTMGhcxjMEaVqgwVmK3uldiMoNZUxbmZBhjTFZuGB19Xl1SIR6zenbjXlBNL6X31V6tupV/UvqBpKyOatKfQ5aH+62jI7/rUw/gzkxWVRkFGhZy6rZo/9M9Vls8dFPKujaMbcR5yxW8y2Aej+n6fciyZkKCW3WzgK8cUpjVZqNkq0EsosM9Odx3N1MBUBN8hhnVh0jNJmtSiP8DEQaxxmyyolS5i3ZGMe/WI2ufO2174qhYq0oS0xgeCf5xEj6FcHlf375tyfbawhKS+cee2ZfQu1vCsmTVtSqruVtN+oZNH1yTyt8kF9l7lMpxDkuthI51kLFA63D7Y21DxbXM7tecEL9lTunh2v+X8e250mZPaEUqy51TnuexXaijVGbN+Yk+rIb7OIOCF69QCpusv+My69zv4uMCQBJLBUL/w3yB6gDtQFYT0u1O/SdXGXsH+Avt22JfCZKQ18cEKPYwYQALZQ7YE90NAyCtQmgNdCL+FCxVKUO95OSaEfbqhcCYVkpQb4yNOv6rdDX9dG63tGzCLarwCLls1RmlSzC6aoYAebYjzObIAU0SxgS9ZkEeeycW0ivrZquRfWQMq3FkEoQlNxuVZoFylVV5N/1PQSpqlJX9JMM+E15b5kOJ5xIRpxLZAp+pplWVqQp7fH9DGtFr09po/JB/T2lmLJfizb/+hyz3V7tDQqUMaxBynTzEwfPjydMax6RDNUSVINLVIXBYmudb8tvobSyIATumegF2GWZCBXnEXchp0wHGiwE2a2ZZcYmYFfiA/6doCQFR+RyC+oErYiftVEtd1GPG7sriGz6kcsLKm/QCScc/xqOe6fwoFx331GgE/58XLVd3L997g3jf/hyvhNNpH2ymokj7U70Ez18GFKN96h4XyEZkvEMbF2NnWq9oSuyvW6rOpP1E6lzmqUYBCuqnZnZrpVWMNh7Ip0/onSGRh6KpHY+kjpTYlOu0oxKKILEVfsiLFMpP9dJxOVOqIbQe/pvzGPtqJV3+6/x0nadtJBt9t+d03YiKNwq/BS4ac3oM5x98MBgHkb5EPMRgwzzPNw9eM2yiHGOT3YaOIKBBMrxpDjGCzAdtQaH1wZQkS6u8AImn4KQC7hF9HLWVnaS0Oku7UHTiBJzErg7eXJREqLYo2S9YpGfF3WRUWCpQvnDY2UZUJJYUXSJSI7sDM1rSCTuNH/3TCDaFLqlc1TSUtVYprlTpnRgmlM+THficfpiA0h9E484IsyOKHR6UROicgSsa7GZZIkmuoqjgoKKNlQsE4UTcGyJumwoaSAphbl/E/rWNJk+jwiJ/tfkDpblKheNkjKSiV8O2romMu+hWU69xSYBOky+d2lx6MOHujCenp13aWjtwEAThQKF9eEC6GMUAiGeifueeZecry86X3qlz6Op9m0efGHF3+L0XCggRFCNFCwXiGY8VAEz4iMxeQilDZf4oMBFw3BnPfpKa3to6Qdt11RSpbuPmmUkpVIoGA7eXisRQtoaa3/vzhX+Aaa3qdprbHDiQiWE5FKsmScvLuUlESXXp9EfktP6bRA/1eGscIg7unX6bj5gJBglG9oV9Piw50E1XaVErzob8bl4ldwRPlKUR6Xxm6pZJfP1ZfHKjePoZeVX1T7W0X529qLylKJZE51z/W6d6RJidEEFy9+htmvct+uLsR3HEhG5geoIwPbYByE7cIcXBnLDez1LtSAxgEGvdXgsHaM/wYmnTvHVqpj1Va10tyBQgRV1rL0Jh9grcK9WGo8jRKSSmktw6QdUSKkPa+5gSgSxQ8GWVsXVOfviCr7rjbfpntNkUwD2boWd9SFrYRILCNAAr8t3JXrcn55Z4NYSCRS3Aw8bCElqxj6tnlFJSKR40YiTiycl7U3W2RuGyAEKcginm/GZSnuTjXA+UJX8oNMiQx9VzCdq2dZVFp/4EHMVFkz8K2AsfZCI1+IJywy4DiSE4coF6hP7BnNajj6jJ/IzppIk0xZirTHJlQ39h3LdcqL9S/qol33yhnyMDM1vD8eqWlW1yokZVEyFSVbEdG1Ts61ju++5XnbY4dlvZWR/WK8wwwHoQ/9KPTPTtEDiXZxiZG8gw2bgClTgi6eQjZanBFNcQw20+N0c0p2HbQWcdG7+9MYo7s+gvHrvoDxZ16pKCgWSQWAyxXqilYpJWDQnhRneNB1ocM0KGB1RLwSeCcGJbqs+x5ZqHKNoeuFwSKbdNXnsMGtEGkDdfvfq77qUOTLyzm0uLL7o73F3Kr8AdfqFeaj2w5si873PiD3LPcHS5019L5Xbd+/2tu7812pm1Z7O/d27RhbanvZUinbuygsx+xl91c7teVl8JW6+H3Kx38efZG+Z+7yOYtZwhShVwOB0kJMlcAdsdDtNSV6sP+lut29/3Yr50UL6+7J3xhrxk89te32dHdbLxkXhFEbNVeohfK6SnVo08fGEO0UbcgbhKIaZAZclTGi+lC4CaD3iBwrYaSTqC3Kfp6n7oE8WZVH894POg2nU1urdSiZsgJCGAfNJN3SHDHsvJ+fpjs4UlQlPAQxPRjhrFnuKgwZLje9SNfX76G3Uo4hJYwxtNWFKhcjQ7gNwuYBLiv15wcTRZlOybs4IYI9dLByXLLxdEvWyGePSxJuv6KNJel4fIvEhmb/23Rxak1jWzpeWZtO9LAkF5Y7RN/Xwxag21i4ZxbY8I3rpLNckCXcS0yHNCdf+01m888jqw7ez4fgsyXiz7eHr9iucl8e9lp++K4DGGA8QPTp5CalCF4gSCHKrzvjziR95bGDY/SV9xIdkQUckSZzv8yW9I88edddT971YSbdXCu5e7EoTy7Sy1q6vpeSl44jW/jlOlmcpITgXrf0A7Yqo/xd7LKhjb0Ca5z4mnAOnqBU33Xrc7Ac7l0fb4zXBYYxPjhqb1CR045CBlFVL0UQo8XfvVABZOfTbLdbiphtJthrmxFxBicSnUQC9/tDF+tXmHETAIn1JR1gjJNuooO6FXYt++v/wIzdASK+O2Lmp33JcST/V0aX2HPI9szHdftxKPM4BMNMiw7HiP4cW3NDHLQh6iQsu8xzgoutGZ3fBsRGWHmH3PWQKy/TTBcsSukifDNdV5f0mORJEeXOGIqlKfEv4thdlBSvnq7px8MSdT2jz+p6vf+9/VfvX716/9WfpLk3a9pxvXa6Sqn3u2JYpHxDmt7hTiVC7xbTjocl6jq9MqPXt9Ir+39KL+X+Yz+4+KkQQ3MLjHDe2yjNwEhxjkXNQtFJz1Xm+tv3Y5FsffwWt0BJrwcyIrNkEDF5dqHr2fuxI+fdmx/fSkTlgTSrRcoV0a4fL29dj01sMco8eQmGcRuw5hrhD3UBjvyikKr0CvUe/Y/WKql+DzJRt7e6zP7x9WD9nglKu5WESTpCm4LAaLVgcPc2uy/MbFmR+XXzxzB/76pXbAJ0HGXwKqm1Hn/she4qB+BcZYkuEi4KXXqI6Dv0+mvwImtdyOj2unCeJQHbrtB1gd759yFGWILOyvOAyjPQecbmw6h/FW6KsVBsMV0Do7ZA79NmzlFgkjMoQ9f7sY2OwpQsQ69gE9uErWXiA5FW//sgf7Sr9j4zMPYp1k5McjdqKVerA5v6JynPvRahnTb9ZkfjouchHjC2f6NG4hlmfMNkkra9zwjMffKnNJVe7ab0/0YvmHNP0CvjNzDv4KPxTiw6wPDjut1xkPMM/LtiPsP2rJa5LouOqnbokUMZaPDqBLGX7wHzmBdzzI8JGE5K0FTR77FqxWySKsej/Yc0rLna788cDpQ7a5akzz2ejJP+u1OyJEolw9t1bbZOogumZibNbTFMCi+ddROhh1f/9XacpNQvyW4MK2f3Hw7yzZpZsg8dMOIE3RzIskgnaCORL5hZv5HCyYSGsxqt3dZE1Bysq11Wtxk65o6O1C707OJfx61XmpWhexqTF4CAobVA2usObERqsM/aYAwcd3NDt7Gavi9uT+b6BZi9plqiKuk17qc2bbnx1AHd/k5y4MZWxXghscuM+VNfThbB2W1nxFSGtf2ArecmbebVjPSh25pr+erH7PjY8aFTmyz2f/jamG49/3zo9XYk9Ot+DaWrmLSu7If4QAP3AYZaAgRluRn2yJwU5MRBaDmfu4APxEAzSLw9K4rTuWd+xOwhKAmgQVxY3XzmC9B7PLcylk9okdmdBS9VYTruTq271p1s3RxUslUmSLUNQyW6ZVr6g+CfpzlBPpqdDiopCN6wXOvU6/UFYz+nHfrD+KMt4VRoOziIy0mpHh6D9DlgrwyciqsDqTUrGfBohDTd+LG3GIYqFWVK/0czeGtvE0AWEHPrciwm67SilBlnqEd0X9+kbBi2VBIV4s1B2NInNkCzRI0wqYJetVSizX2Hqu7ryHJnn7p5SWGIvSkyHS9E1N2IeB5hjkwM5JwP4gojUwPaf0MEZCbBpi0BxKvo55mepDRGqhz/mASVdjiK3ZOLC0niyfZpx9ZclWhRNxLpv73oyCTmyiRSoYuhaR0qTUZdLYu1RBKndie9ew1Z1R3jXTtikeeJ+L8oYtjFf2N3rurmzkbwGF1T4Aaq8jqzqIFpZESxMbECOdmsRT2MY9uMlKGaC57qnFDTurVlS9xJKhk69+m6MLDNFtHvMOzG24S7hPuFR4TXM11WBMX9OOhx2RILAQnDqFt1OpxFzg03KX8VCm/mvKA1DAYBIUHrC+uiHWBSx0P2K3aJ8elgzwSKPDj1IAtdFBX8eiQXVa1UdrxbY1axMi2j18vghSeZOAPR01nsPsvvLHV8C6L40eMMtsT+BWZ5OXGZj5sDnr+qnOWGmTVsSm2kyKLljG2ZOZ40VW9vbfe0Y5lt2ktkG2SXWVlRRI3MIBREzHQRiPaxlBkJEJqBcZ0Faecku3n/W2zXHtkeCzQoJDt4nlt1ksvwXZ4vLINXycDM9Ep7JRiBCy/5Q9t5SvqPSJmZ4KzRDIk3P5S8IS9oVF0GccoRNe9hfO2Zy7aIjCuKr1hKeWLKWJy5KMwsOlmXMjOZ+LmCeUzpTpTpSV9RxoN+r/vwvm3A6VxkDmYHGfN7+V9pcMXkNjdIAp/k13La8+MZyiVlP2laDXfb5OChfuFsAZ1Y7q72e9xzJ8TaYFgJLvN3mqfVAWqbAcOX6G+hUYY8WjFIo/tN881mh/5MdIdp9p+k+wI9/nuT/nXMHv3Rv6F+Gb5DObQGLnmjHsI85Ff7Uh2i4q3HsB7iZa44hdmaT/n2NceV/dpsgSkUEFAj/b9W6yr9a91/7bX3X4vOvddx50+mroqkUpGrUifnXee964q1BFOnPcVZFYanIiroC5RGnKXvt2eEcgfmqlRtB3TM+UGVTjiVdhgOYWi2jwmoa4OQfhrKPv7VMJp63nggqhp37lru9u6M16MLlnktmkxfXSaScsjYd1ixRC2edpNu/h3EfIXbLLtPPsC+5YKRM5oGvbgev7PXXd51p6FGW9K1O6fScU205cP7jEOKRMYPpWOGm782X/gpt9x03/U1LhTB4VwL/X6gN9+5PuPOw4yzCS4RxJUEnqTcQiwOV6MJWlxxwD5uYdzgZyVM/v48LKB9Blpw/v8RRVMSCUYXcP+zy0hY7i0v3xqi3rLmtUxxx42uxSMrW+6J7SY2UU/s/zInqVFhyC+u2xvbrP9t1Fy5Q82VyDVX+xYOvuY3X3PT1Vsn0/q4S6fgbTeSdCZ2uDOF3lJ/89RNr3/9Ta3Vfc1thf4fpG6oasbeB9RCreZ29nP56MUQmwVs10Cfw74j2NnUQSIaWulQhprYCrHFMvvQ4FBnywMYDVpMBjTDXQot/LeWn7CtZmlcQ/p4W9yfkaWYUyg1cmnKYlpaOTfj+pVyCjAsAnSEFUJof4bSj+W9tWEZ0/SjgRmjxbAWFIrxaLO0YsVMIseLJaCwPBQcMtTxRDWTN3Qda+VMjOipcsVzY27xq4MSkVirOhsJz8uKYbiGy4sUfQ3HixtsPnxmc3XFGJMwCMOB2AhNDrn+vTR25VCQT6kdOhA7arj7pytFtnjrSCG107/A41igIR2cYIg/ItOWDd6LR6tChT33HqyVsl6k/3jEiyQc7efRWn5+ezaRv8giwiFBi8SNXXcK6/Hif17QBHp75hjD7gU9rFhuNeqiQPszGAlM3/BTfQEFqrnKfGbRqvLo6b8mwiD+0x66fju0xxxcR7rhA4jSaUpztG0YLTdstzYPRjuCvcLD0pZb88EA/QZQtpCMtm9sut9SZE8hRP6mYirfBO2JT5dkwMIZoOAw/Jt9G9rxHQrBSkKRvyjTP5rARPkGECGDdgC6tb6BZuWonPSNnq0SQ1JTFWUgNNHyxlddj3cvUcJx29XX3bPhrQbyEY6hVeZ4moNldiABobNoRAxzRABbZ1o+DHpU9EO+cv1XRQkoxyi2t9zjph86y1e8s2ni3rOlben7dCy6SxrCtEig0MLs9L9BYZI+y+9w9qE0FP4pKKwtucxnZT2OvAEtsz71vO2WF8yvrK7Mo7UH3tEGTPL2OwZ6Yd6WBkOxm2UoGUJ54FHIBJuXIIQBMgHiLtSX4hEMsFlGI2ZDNMZKqr+aqmgknUpE8q964lX5SCK1i9FTbxjZcp4606NLG4gJ6Pq2upCYX1ycTyysMFJogm2D0NkFgVwOXaB9uUvfGJw+YRVmxA4gw3lxGOe7KPvIPRvm/09l1xLjNhGGM37N+BE/sB2H3TxsN2k26iPNhjgKFGlZVCE1q1W1LYiWbnfbngoneqpUDpGqhQuiBy68pOYABySQVogDnBAgoZ6qvVGJHvYIJ24cLeafcRNnFVUgWeNHnNHI8/pm/u//fi6n1Z3dUPgtVqEDoMPaC7Xf3U6xrhvqsi3KRJPrxNYohkHesu0XWzLBYkN37l2kL7pmXbfOq55kbRDyMf1FkRWkGDgk5KFXQVXvN0JC3QLavUKkVVX083HIXVDebTKvhcFM2gsYf0dtcYfp2nq/zXYn2v11O2eNW1t76Xppi+vHbZWufz4fk4lpntB58xeKFV8pjAqvM41vACpo6heLoAYxVBy3o00P8JAEntaABXfLjkTmjqaluljj0l8I/SWptHGq6USLzahjamhXiyrRiqQWZSMIW4pUfpp6C56l7+mu4Bw4PVd/ML1CX8umZWMz0miuZicyY5qrapq35KImG5LSCoPy09Rd8OwH3e3RnASWZ3aV2Sh/QhPaTnxQ6kGzts3JCmz9IbYiDGqEfCc+5ZHc0aU7l9A3N1HhpuTYDuK73BVCgAhPSPrdo0dY13N+EhD1pg24awDIEgA2E1bszSHQphNlobxEeiUfxS8ZA+xPkh+VUJgWaHmAk5iOwUhLO1QBOtTfXvFl8zl0SObGqP10H+iKlfQJ7L7tzvqT7jsWlDdri1bhedoae4tiomWMtmxt7/c4KQ3WAuxxtJogtpfHtxZ3GSnlgPuQTLgmA5diQNm2IEi7Lx1PDzjBzGZUsw94REiaZHY6zv3qQnTtYBp4kMKSgHkx4NaxPiMfJ1yrhuulK2j0TtMdvX1/I4iioNptVMteWe/f86tKcnnUWKlVfE8QA1Ac1Qzpx1b82lo7Oh15x06snjpplo+761WnNNyMA+NEVaBjPn2z2BhMdWsFRNuNk6mOJoWCC/EOYafotNCikw2YCWUWPAUUSBY7ST648tkNHSk6GUpb97ctCjF6b74/EtM9UVA0dJuBzFdZejfTYFF3Pr1MLF2wtz+6IAyxobyLzu+9cQvRSUHYYDhzj6V3p5gzz32tg6UzECORD4gDCEszJTDSioTJGw+OtrsBXwv2fTT2UcX9x62cw0QfslFlqBN8hc5Ef+CpjOYdFVu3Lay66GL6rbu09Cvx+Xjkk2uy/NVsRALOzqLyzbi5/6t8IRrz7vnWfymdjS6k+7Qj/Pzs0uXjqy2zGXAT+jCrVFAfo+smj8dVhU+qxK3BM+AkzjzEgjlv9eBFrAo1QxuPNaMmSFjeal5rnqTzuA0TOz+tdNY7VjKKy+n35XiU7ExULIlnG/V298yZbrveOCtKEpHC8HHuP3JpOwRGfzgRNpNyHJeTTWGH4wDuf3OKNmTG75rR6nIMM9+Z0Z4zmxR68onl7/rWh/yDWXN3oW+hq19YPvt49Exx65e5238Bd7jl+gAAeJxjYGRgYPTc9TDlxmG5eH6brwzcTAwgcON78iMo/fz/m/9bmKYyngVyORiYGIA6AOBtEOsAAAB4nGNgZGBgPPD/AAMDU8P/N0ByKgNQBBkwrwYAkRIGNXichVfZbRsxEJ3dwLF+DAswkAjwz5bCUvyZMlhKvlPFlpAS1EAAI8jhQxIznHu4AiJgsMslOdebN6RmkN83gBna+wz9Se+XucD9tOo4y/SUxrdzhQM+97inj3dzaSeaKzKv+1aZ7+9dKq9JdiqPaS7sw/FuKvCJ17c3+haE1/F3sas6duQv2ylJ55pt93nU8YJ2HruIr9eE9bqOmy6jXtH9YHtKu2jMMz3bK0pzH1oTHayvwgeNxZ6WJ8QL9xJONc63cxezX/zJaxBb8PxojqJMz6YLa0KwFGwco/Z7jDXnk+2M2NLeArddYIXPoNgVuFNJtea5ojx1LAfMei4Y9+RfkgNJYX1YewcSGSsetHbMs+RDZfZc7ziejgPFewo115+HHhvKPukrwp+qNcyYb2pM42UsdsAxjHXH+p6HeDXOBeugkC8PxjXBHO1eujBO/M5j8R/gRrFBebzK4ep5I/5Xx8A5HOqHa5NrvLaTrvmfiL3bkKc97r2PfAtzzv2Aq9VI5rDvXbpvgSfVdGb+uL6mnJ0W8VWfxwFvnTvKc8l8iPUavwW+UL80favvv5IrMByLj1HOs+Yy2Ev9k/xqb7rP+sHqdklP/6a2avvtvON+weuxt5k/oU4FF+r/g2wwSd/4fJq+OgfkGfl163F3fFhQ953Fqu/qG1C/GbiXc6ycn3r/LnQ2cr6fQn/q9VXNj33uuWIr9hGg80xjO02Mc4/lo/Hq2eJN9ah8tW+qR/3UWqihdrVGRr+Krx33Op+tdrCGxW4NflXJNebA/aSzie0stu4idXKhs9B7n+XH9GlOF+wfsb8PEr/7O/uRzoRyfX+2m7l49WyLtkLuOXc9puB/CTkPfm38B7xzrAEzm3ceTxBisRyjfOn8i3c3tm+19Ry4Wx278Y7FdmKvdlt2H1A8IdTJMI41mLjYzzOr/fYeubCRl8QTw2ezboV8Xi8Z62v6Nue4+tc5pfMhL7kXWV22qQ66eo2m+wHiovsOwu++vkX8eQ/y4E/gzanXPGJ17r0W5UesYTtbQo2ZnxHPGMNR/eaaSvwGOV/W/C1hmGsr/09YQk+B9mvDtVhDNXCpDjxife8Wz3d8Tzrk3hDq2c8X7E+K+THcp6uc6bCtT9urNqgWpIfX9jNiZOcO+St9rpC0TZ9RKaFmypC3Aqkvb3ArwlVaa/8JtFdc4h2efZA+KvjSmafcAVj4Dpb+Z5zZh/Y3nku4f5H513BPfPMYjCtmL947zEaML+Ui1dQS9ixj/sae+w/57nDBAAAAeJxl13ucV+MWBvC19ymKdI8kjEr3q6YMplS6STJITZpqSqbpnhqZaiQpQkhC6CgkIcopiooQhZHSRQhJiBM6dBQ6zvn6+8znsz77t993vc96nmet/du/ifi/v55iaURSWeSKVRFphYi/5UWUKRdRdlrEcX9FacTxHcT+iHKFEeXllz8QccK6iBNLhP0KsyJOyhTzIypmR1SqLeRU7izWRFRxvorcKociqlqvBqe6/OrO1VCzBh41dkScXCQOR5wyI6JmhrB/aveIWvjUUu+0URG1rdfeGnG6OGNRxJnOnIlDhhoZ8jPknVVPwKtTU9ivs1kci6hLW915Aod6cOvNEQcjzs4Sap5NY31n68OtfzSigf2GbGpovZGcRgsiGrtvnC82RjSx2QSPpsVid0Qz3jTbENEcx+Z7Ilr0FvS35EMra61mR5xDb2v+tMYpU34mvm3oayO3Lb5t1W7r7Ln4ZeGShcd5NFzgmq0f2fLb4dKOT+0XR1yYI/jXgZ8dnO0Iu+OyiE760Am3i+jtrNdd8O6CS1cedt0b0U29bjh0l3ex+hfzrge9PZy5RO1L9KqnWpfC7uVsL+cuqy7g5aiVs0Lw8fJxEVfAuBJWb+ev8vkqvProRx/e9sW9L4y+NOXSm2s9F0aus/3o7adWP7Wuht/ffX94edYG8GkAHQNpHdQ0Ir+MsJcvd7DcITy/Rj+H8mgo3dfy+FrcC1wLzMMwMz1M3wrNWqHZLtT/4XCH4ziCnhHOj8B5pJoj1Rnl3CjYo2kcbY7HuI6RM9b+OPfXifE4jadlAo0TzHORnCK418OZiMtE1xusFZuLSXhPonPy0IgpuE/BqUSNEn28EYcb1Zqqd1P5eJMzN/FjGn3TzNHNzt+s9nTaplubDvcWnt9itmaoO0PuTFgzzeNMeLfq623ub8Nllj7ebtZu58kd+ncnz++kf7b7u8zf3fDu0fs5vLiXjrm8mAv/PnzvkzPP3jwa78fpfs/QAy0Fvx9U/0H38/XzIfwewuVhHj+CzwLn/k7To/x5VM5CuAvpWyQew+9x+E/IfcIzsxjXJ83xEnhLzMRT+rNU/tN4Pq3uM7g+a0ae5csyc7lMb56T8xyM52Evp3O5+V2h1y94Dlc6t9LeKusv0v2i8y/xcLXnebX6a/TgZb152dlXaFtL51pr63Bdp956NdZ7Pl6l6zX7G/R7A4zXzfAbvHqT/o3iLX18297btG7izSa6N9OwGY936HpX/ntqlqpVqg/v82OL/C2826LOB3RvhbEN32169KG9D83ndjW3O78D1g7YO83KTmu75O3i8Ue4fqTfu83Kx85/TNMnsD/1nH9qJvfwag8fP7P3GY2f4/CF/nzBt7007ZX/JU774O3D8Str+/m0/6+r/K/N2df8+sbaN2p9w9tv5R/Qk+94850a38v9p/uD7n8QP5rLn9wf4vu/ePUzfr/getj9v3H7VS+O8OgIj47ieZQfv+nn7zj+QfcfnoVjfPlTzT/V+++BSCJLjBMHI0mzIynTUBRHUta17KJIjiuM5PjqYkEk5eqJpZGUry0ORXLCnEhOzBCjxP5IKtivMFQsE/ZPcqaisxXhV9wcSSW5lYqEz5VheEclVZqKFZFUVbtqaSTVXKvBrQaveo6wV2OawO/kdZGc0lPIq5kp4J9aIZJaZcRs4cxp8Gtbq70qktPVOCNP4JKBQwaMs+ZFUgenOlsjqYt3vQ6RnK1O/crCtYFXcgPnGtDeEFYjWhrnCnhNYDWB1VTtpjQ0s968eyQtXFvCaYVHK3nndBZ7I2kNP3O+OBpJG1zbwm97LJJzSyLxOCRZdJ7XO5Lz5V/AB++aJBu/duq3k9Oen+13RHIhHO+YpKNeddwQiXdM0ml3JBfh0pnuzjC76EtXe93cd4fXfU8kPfTwkprCXk999F5JLm0pcO/l2gv2ZXBz1MnhcQ68y2FdMSOSK3nUm2dXlRPO98GzD37eK0lfObmLI/EeSfrBuJof/fHJmyXsDcRvoBqD1Bjkmu/MYDUG2x9iBobo3zV6PzRfHI7EOyQp4F0BDgV6OMz9MDUL8S90ZjivhtM2gicjeTbS3I6iZ7T63hnJGNzG6NNY+WP1eBxO1/F7PA3jfZ6AdxFfrsfnenkTnZsI/wa8inEttj/J/WT7k+maop9T5JWYtRKe3EjDVHM9lac3ud6s5nSzMJ3mW3g6Q+9mwpzJy1vxnWX+ZsG5XdyB2x2437kxktmud5mXu+i/m8Z7eHuP9Tnq3Gs25vJoLv/ukzePvnnwvQuSB/j0AJ8ehD3f54f052HXR2A9Yn8BvgtoeFS9hXgspGURLxbx8zFrj/N0sflezLcn8V+C3xJ1n9KDpTx9Wk+ewedZZ5bBfY4nz4vlOC3n5wqz/ALt/1B/pTlfCX+V+5doW20mV/u8BtbL8l7BZS3f17pf5/x6mOvpedUMv2r/NX14Tf4Gs7WBptd917xO8xvW3qTnTV5vxPstfN9S5228NnkeNunHZvXese57P3kXznu0vmceSmkopf991y1mcYvefwBrK1+30bPNs/6hOtvp3I6L7/tkJ4475e/i+S77voqT3bz8WF8/we1T5/ao+xlun6v9hXN7af0S7j5n9uHwFZ77re2397XZ8X2efEvvAfjf8e173wU/mI0fYPwI+yfeHOL9Ifk/w/8Fv8N8Oaz+r7COWDsC9yidv4nfzecf8I/R/B++/wn/v/sjTXqLg5GmGyItMyfSsqMiPW5HpOVKIy2fJTZGekJRpCfWE0v9ezE70pOKI604LdJKLcXWSCvPirRKpoBXdUWk1Q5FWn1+pDUKxbFITx4X6Sk5kdbMF7BPtVfL2Vp7Iz3Nvf8F0tO7C+fOUPfMvEjPcl9naKR11auXIdSuL7cBjIY9I21UTuDd2H6TGZE2rS7Ua+Zc89qiJNIW8lrg33Kx2BPpObmRtsYzE982HcTmSNuKc7MjzbLuN3p6vjMX0JeNd/sFkXo1px1WRdpRXqdFkV7EI7/D0y5wu/Kgm7PdDkR6Md960NTjcKQ9cbi0puBFL58vayr463d2eoW4Uq3e1nvT2kdeH7r7do40F2Y/Pvej5+qGwrW/tTzYeXIH4DWAZwPpGYR/Pg/yj0Y6WM4QmobQeA0NQ/l3rd4VwCqQX8ib4WKEnJFrIh1VWeA2Gv8x8sbAGyvGwRxHn++81G/ldDxu42kfr68TaC/iTZHzfiunE/GbuDvSG3Dz8yMtXhbpJPuT9GTyukinZP4P4J9i+AAAAHicY2BkYGBezfCSQYEBBJiAmBEIGRgcwHwGAC43Af0AeJytkkFu00AYhZ/tpFJTITVFDQpCYljQJlLjVA6hbRZIVUUW7FArxA65iZtYTTKWPW3UZRc9BmKNWHEADsCCBYfgAJwAnqd/oUG0Aimx4vlm5vd777cHwAPnFRxc/u7jqbCDKi6EXRTxQdjDQ3wXLqDqPBcu4rFzVbOAivNDuIQNNxFewj33i/Ay7np3hMsoeg3hFVS9gfAqa94LV1jzme5OYZGzJzZJzg4CvBR26fZO2MMzfBQuIHDKwkW8cN4IL2DD+Spcwmu3IrwE330rvIw195twGSXvkfAKAq8lvIo171y4wppP2INGgjOkiDHAEAYKNfRQ59jl3sSu7GKKCBnnY47Y08lZGg+GRtV6ddXVE6N2p1Gmx9y76SGFtpVMyflsn+sjmvb5yDUB1VbdNIrUvh7F3LpWJSv/r9/gjo9t/oNbvBptf9sP5p2/Rc8dOm+RNu2rvVn/lPeU89hWdKzjVe46pYIdf6u1qWozdqdRmsV60lE2fv13/ln19q/kjT+Ti1I7j92Q2Ac8CXmkXOIQ65RRlNEc8+CJPTMnFAkpqijVs6aK+5GtCDnrczRcz82OWWPYCA6GkZpGh+uZGuvMqEQnJ6MwVXFPT1QWGRVO+spoPTqODavz42holfFtNHkdSW/hTG++tR+z3Jgk6zSbR+wqvOzK7+nxv37Tv33H+ZzA207IXLP9BA2G61IAeJxtWgWY5MbR3e7q4ZmFO7MTJ7EdjhLHSRy2w3GYGTVSz0g3olNLOzeX2OHEsR2wAw4zMzMzMzMzM+d/1a3ZnXX++77TVLWklrq66tWr0q7JNfvvv+9fO3bt//lHr8RBrEkhBQklWqItOqIreqIvBmIoRmJdbIhNsSX2if3iCHGkOEocLY4Rx4rjxPHiEuKS4gRxKXFpcRlxojhJnCwuKy4nLi+uIK4oriSuLK4iPHFVcTVxiri6OFVcQ1xTXEucJq4triOuK64nri9uIG4oThdniBuJG4ubiJuKm4mbi1uIW4ozxa3ErcVtxG3F7cTtxR3EHcWdxJ3FXcRdxd3W1td+uzYSdxf3EPcU9xL3FvcR9xX3E/cXDxAPFL4Yi0CEQouJmIpIxOKAmIlEpCITuSjEQVEKIypRi20xF4fEQhwWDxIPFmeJs8VDxEPFw8TDxSPEI8WjxKPFY8Q54rHiXHGeOF88TjxePEE8UVwgLhRPEk8WTxFPFReJp4mni2eIZ4pniWeL54jniueJ54sXiBeKF4kXi5eIl4qXiZeLV4hXileJV4vXiNeK14nXizeIN4o3iTeLt4i3ireJt4t3iHeKd4l3i/eI94r3ifeLD4gPig+JD4uPiI+Kj4mPi0+IT4pPiU+Lz4jPis+Jz4svrJ0ovii+JL4sviK+Kr4mvi6+Ib4pviW+Lb4jviu+J74vfiB+KH4kfix+In4qfiZ+Ln4hfil+JX4tfiN+K34nfi/+IP4o/iT+LP4i/ir+Jv4u/iH+Kf4l/i3+I/4r2Q2kJKlkS7ZlR3ZlT/blQA7lSK7LDbkpt+Q+uV8eIY+UR8mj5THyWHmcPF5eQl5SniAvJS8tLyNPlCfJk+Vl5eXk5eUV5BXXzpFXkleWV5GevKq8mjxFXl2eKq8hrymvJU9bO2/tJHlteR15XXk9eX15A3lDebo8Q95I3ljeRN5U3kzeXN5C3lKeKW8lby1vI28rbydvL+8g7yjvJO8s7yLvKu8m7y7vIe8p7yXvLe8j7yvvJ+8vHyAfKH05loEMpZYTOZWRjOUBOZOJTGUmc1nIg7KUZu38tXNlJWu5LefykFzIw/JB8sHyLHm2fIh8qHyYfPhaVz5CPlI+Sj5aPkaeIx8rz5XnyfPl4+Tj5RPkE+UF8kL5JPlk+RT5VHmRfJp8unyGfKZ8lny2fI58rnyefL58gXyhfJF8sXyJfKl8mXy5fIV8pXyVfLV8jXytfJ18vXyDfKN8k3yzfIt8q3ybfLt8h3ynfJd8t3yPfK98n3y//ID8oPyQ/LD8iPyo/Jj8uPyE/KT8lPy0/Iz8rPyc/Lz8gvyi/JL8svyK/Kr8mvy6/Ib8pvyW/Lb8jvyu/J78vvyB/KH8kfyx/In8qfyZ/Ln8hfyl/JX8tfyN/K38nfy9/IP8o/yT/LP8i/yr/Jv8u/yH/Kf8l/y3/I/8L62RIElEilrUpg51qUd9GtCQRrROG7RJW7SP9tMRdCQdRUfTMXQsHUfH0yXoknQCXYouTZehE+kkOpkuS5ejy9MV6Ip0JboyXYU8uipdjU6hq9OpdA26Jl2LTqNr03XounQ9uj7dgG5Ip9MZdKO1t9GN6SZ0U7oZ3ZxuQbekM+lWdOu1C+k2dFu6Hd2e7kB3pDvRnekudFe6G92d7kH3pHvRvek+dF+6H92fHkAPJJ/GFFBImiY0pYhiOkAzSiiljHIq6CCVZKiimrZpTodoQYfpQfRgOovOpofQQ+lh9HB6BD2SHkWPpsfQOfRYOpfOo/PpcfR4egI9kS6gC+lJ9GR6Cj2VLqKn0dPpGfRMehY9m55Dz6Xn0fPpBfRCehG9mF5CL6WX0cvpFfRKehW9ml5Dr6XX0evpDfRGehO9md5Cb6W30dvpHfROehe9m95D76X30fvpA/RB+hB9mD5CH6WP0cfpE/RJ+hR9mj5Dn6XP0efpC/RF+hJ9mb5CX6Wv0dfpG/RN+hZ9m75D36Xv0ffpB/RD+hH9mH5CP6Wf0c/pF/RL+hX9mn5Dv6Xf0e/pD/RH+hP9mf5Cf6W/0d/pH/RP+hf9m/5D/1VrSiipSCnVUm3VUV3VU301UEM1UutqQ22qLbVP7VdHqCPVUepodYw6Vh2njleXUJdUJ6hLqUury6gT1UnqZHVZdTl1eXUFdUV1JXVldRXlqauqq6lT1NXVqeoa6prqWuo0dW11HXVddT11fXWDtW+rG6rT1Rlr+9SN1I3VTdRN1c3UzdUt1C3VmepW6tbqNuq26nbq9uoO6o7qTurO6i7qrupu6u7qHuqe6l7q3uo+6r7qfur+6gHqgcpXYxWoUGk1UVMVqVgdUDOVqFRlKleFOqhKZVSlarWt5uqQWqjD6kHqweosdbZ6iHqoeph6uHqEeqR6lHq0eow6Rz1WnavOU+erx6nHqyeoJ6oL1IXqSerJ6inqqeoi9TT1dPUM9czRNPGN8VK/rOIsbqW1iYO20X4ZRK0IP5UylV+q2uhSTeIk7VaRl/jlVMsq6rAcm6oVRDqYtao41Wbg7vWKpDbDRk7jrDa9Ip/r0ssnk7aJp5mfUJBjlXmqW0GSBzNV5n7YDfN5lkBoxdk4P6RKHebKLLKgy8/x/KRS9tpJ4k/7eL2wiPJMm/52ntSp5skHjcgT9Rq5LtoHyyAPdWfs21+q/KnCf6PGeT7r8gEGmLWKMs6qduCnuvTVJM8qnE/Cdlz5SRwMKn2o8iIdT6Oqb+V5HFZRH+emmZfoSTV0YqCzSpcDp5R8+cjJB2pTxZOF4rV08roKcWE7zvintR2HOm/FqT/V/dQveENmumz7Id+ksDeV0mFcjUylC2/sB7O5X4ajiQ+rLLXuUlBF4i9ahY9Nw+7lRWeSlzw+tJcvFTtTo7T0AR1UQ+zjdpm7xYyWil3BgPfTC+IySPTQ7udSsbu+VKwjNMrGwVpjvZjB6YM4m+SN3A/K3JjIj0tDYz/r+2WZz+1jB060D+06uS6a87ynLdxV6rY+VPhZ2A3ytCi1Mfv0oSDxU3/lcWoaT+At2p/Ab0tNeqF7+O8Z+Ht0xOr1VRn72TTRLZgtwxr8RGehX7K3tUs8JU87eE7Km4XtyXTVX5qmLnZMxu/WKXU11xqbFOVFEWdTL0AAtSfwIfiD+/HyQme9AIvgjSuHztk83FnmNNMLhagw3eZ5psfB50V+MulVUZ2OK+xwG1cW0aJdFzZQEp3mWcvGwdAePXOwZhPVGYfKICjZb/hNQiqNoSiEo9RJEuVlNgg0wn4SB36lNyMs1StyeJqz/sbKgHWIFb0uVs/y2rfcFjnb2+v37RlxU+4Zqou9N9ntnSb5WLfnpc4AQJVvZqYN2EE89cZlrCeBb7TzBsP702JcMgiobMYoUoctIIOZUVBXMGSx6BV+oTF5XCjjb+u2M42C4U3HIkqduN88QWSV8UxXUZnX06hXIyxLzKvxEmP4BnY+DlpVWQezPgyuF944TpI+zKqdAbpOhLM6wTqzE+3a4UMAo8wok5dVjw/OZ6xUF12dbesEzqHw5Lw1xdsmjD5Vx8SVBiJ0sf2lThIfgY3Q7SU8KTZy3GEbeGk4wGgV5Qbr1l1TxxXbSo1xSzsAMGrdxcmCsaznp7jRzwLdTnU4i6vBhCfDLAc0IE/rshs1XuTi3slbNkrw1vV4Z4tXR5otXh3iLV7VecV9N+KC3YpNsFuZg725A8YJtZkBwNqJX/CP3QpEYQ7b6/7BOq+aeZzo7Iw1Zhmg03lVy6S4tjWBx2SU6qgzRcAVyDSItXGOoFjnXOJZ4NIIlS7MAHzzE8WJolfqIlnA05J1BJODC+t9CgBWDPgSbwyMCCION3ihYpAbrKDLwNTwQBOUcYFdr8dOaiPmsWvDoj58GGstYh0A9mOelEN4c1d0eNVdgtIWY5mH5AN0qWMTYZ0lolxX+5dAtBKBR1xszNpn62KDdXHxW9nybV5TXvYdiHCoWdAwQNA+PCouTGy8aFfc7gNbdn3GX+zNFe5Ekx6c0gcOLsctpjcKYy083Gy52HGD9p029ozUxb49ul1cT9dl7jG/6Bc5AsmKgzBH2JRuuMR2aCt2F/wCbox9047NczfGXEd3+cBr37BB6idF5Ns3Ga3odbHptBQPdDG9vjqAELBqBiZSxoFbyZ6RunDgbiANGsnuwQRxj0TGBzJ1ptI8zzrMqOJtTeN6utdEvOP9MK+WKXYeaZ0EnGOBFUgxvKyRKfwAS43qqkKGXmLOckvqDDOXAJzF+rT0w7rJpwAfoMW0BjehiX8InhAnIRwQvA8CFT7CoR6Dx+FgkASDBZ5PeDlwrEOxqkpgT+gjeOHzzqZFOOlZYZ6XYd9KiBmdbLizzBRtanGnLCsaus1wq3fjfh3GuRMtfXJT2rhN4gm7RDYdNk6d5VUQDWw68Gye70TA/bxcdJhG4sKeSTBHCa/uOXfEvm/uSN4yc+TpuD2pKyAzVdWiP46zPACWIgkBKae9TM+NfYiaI68iFSR8Fs/pMxC7YEYWwXHAZCRElONivBfn0XFZm2g0jssqCjmC/BmIkmUKeLTfkAZgRTPI2alf5VNGSwB8bylmnXHstmBcI4yS3OiQN5E3EwsdADVmOrH+0AvslMD4jcA9Z8mzlIniYmBTi9HgEBWyHpZh50WmwZZWMLqe92yRMNY+KKxGqMNbkVvh2EFdLgZYaWammnPpxorMFh3ay5vEMOC7GrnvTvCIG8bT8pkercje9h4tame6Bm733ewJCCFKmBKu3LML4PX1rWTJKo11yHsQZ20A8txfDMd+hdsX3gQQd9RSARMAUvC2QzU71zAZ21gqzdnRUtdpUS1GCHyjHTdCKo09mAIBP8zHTLK9KQhGsd4odWZVWDQOZgv2UlsOZRpT2gztGYb+jSivS1epMSOs1nd1fp/RrgoL9Ha0niVpnCD6jq6xZzoeZ4LY4KXMwGpJfBip0F1kClw/3KV3sKtTNKBDVtujHYLMdl3f0SzS76rW1Luqhf4uih2UMwg6LnGQp3v8y45oCNKgob3WPWz5siwduIpZZpQdcj32pxsrikEW7ESILBR2mw2S+YnnBwH8oTVGtIRbFjE8sAqbhREPDWV2hWIHqRykTh8P0wEcMIMtbzVHjWcWkFJzkm9B23dpwlviomcNhVqEE7MKUXWM9pzvJ4ir7djgkXZTACxw6R385aJg6Ich1zIel6M7CvN2F4Zu+d04xFrDqe7EoT25WYEEpCijmb+xAx+3OrDXifdcy46zf3WguWprdcw6dBtWBiKDNqPmL/IQxLLamMOeWFMKhE/jw3pHjzOrrzc6FgHY0D3LaIDdRc9k+RycC8tHzGYmTtjj8qzbaKbLBJhdoGdx0nIPbgHYIXaEuQ8oH1rzoojm4YFV4sxeyz0DFgiztm3qMMw1AjzIjuqsw9QD8n4E2rTBPMZ4xr2Lj1kedbExx6MuNog874pSb7c86XHlYVnmcHfQi1aV7SN3p1jhX/87yi9y1P+M2lfZ/z/D9mWwf+CxnCYsgTtm70jDGjjUkHrhk1Or7LNllLfsw9gs6IZcvWltONXpeqLhu/Y6O4dT68Iu23JG9un13VYGn1hf4bVQ+47IuzM7NZXd0FXuW4AsITCrliXjfSQmndj36Lt6wN6PyjhqfNaeiZkUW3+wwcOv2HikTYgj5iKA2MTjw4ZDjx19OM7niUOVJOHuljFDe8QLMuIMGoV3tu/kmeUaTsxsi8gpIEdZc/nBWuusGS657xSC6jEtGE3yfPfhvWmeTKw0iJjaL7wCRWfvYB2HKORBYpqd41gfWgt4iJwsNhtAsQRVzc5E+K/LaaxNd2z9Mg5pnB9q4b82WzvltIcaEICGarMuuYotTI0MurHjug6613d1xsReGPvTDIY0FGZ+ixn2YmSPHmIbfCB0fK2Ze3NVsS6COoYbenE4XFallmjvKGaRgmMNGpDjcyNOjmY5Sbvg1VWtAh5j9nMTaAnp2BYmt0f/P2PWNQrgkA5rnB0xx7HZgxtjHZPmvIsds2DiqDvOu8xgBQ/VduwnLT6Y3hybEHGmb89tT7B1yCv9RRfWdXC+TGag5Ga0VBwBDPIaFWOYZ36lVZhva5duo9zS6n2rimf51eaeodqELZtEbCoHBdAJr2JU+CWiADiK5R4aFjovmA4DHBb9Ip5OEV5+NmuX8XicZy3Qjkp3jdYhe7qyhZCtlb0517EVqMLItjs8Dnv2bqel+TaTSEu43XL6uEF7lnCsL4PNnWlUpmmZX1eOg1l3akQGChegQT51ZI27VUMrTeChvEirNPWIdhfxfW4KyzqciDR9wG8oq8UIN+xAxNE/f9oIsZvI8HM748Tyxh4nXrt3G2NuRnOa8yrOfC3oecq0O5nZGNi3KyL4YHTuN0Q1N80DcCYztEUs+F0Ym4B7BfMWHzIF39U9PngT0ItGAl3rWgmY5wQTH+pbweZvN1bNc1SyeekALOxZmd+2rQEIielMQMIjbtOX+bQ79YE9dVp07L5oM5yihHCMwM/2rSqevb0PJ4qDvOBO2yyex0C6MuwxlbYXbexI7vJ2qlMUT0fsBXRn640VLJ/723r/xXQL8G7M+sLGimyxAYHuntJBkGswa/yWHJp9buYhjJDTNxDGlkEzEJV+ymWnRrDDrxHrrRIYVq7bI7Y4RZmmw02nRnkZH84xSdKc3+YmKEOKQQoB5gA19DwsmUCiVsrB5PmzgGmZGRB30KAEx1LLURt7tN1irov8lMujnGnKRCedCjMiGtsVXLKsOnO4De5uzx16IeuCDHNRizKk5VcwX8vnhnyPe/m2WB+O9eGYV1GjoEH9ibLb1okdFHc2v4GLZj7yUtNdcUVUN0CEVGCz60EO6oM0AFBwrUC8vh64H+wJMIB30Kb+MJ5a7LW5FEYtolYYHz682AxLf1LZfrbrzaiwrNMRH1COaKCPnw0a77NI3dThGdJ20GhLQjFoin1O6oOmumfZpYs4287h6/tXFc+1b7Zca2AF1NftiP2YVAHO3WyOpXD7JuF2ABgKrsYpAHpp9xGnYLwJSpdIh33bF7RRtLXnQ5glDLYX7fkT5vvrjeLYv+k3qon9zrQEywy0wm/W5YN1YiugLk43diTPzGGkgdUtrBsnI6HjxbZWZAaVEg+xI9WOaEfdPRUcodb7VuTm1s3VIYZy9yYs8ZsUK/4/svrS/dd3v6fxAmxfxOhqECG5Ja4/3IkQmVU9buFXJ60DXB6qGQrJHh/caq3ET3NLbCV+PY369mgvGDrRvWwzzpcPk3o65UqKGxG7n8DCXQppWUDbsckWaICf9FKNSVFjzTZZKuEo7KV6AcoDUKk55aIaL/kjSoFCBNWj67TwlSjN2ZfZ+XpcEExQbi9saZDF42FTMViEGNmGEfP6eNtPNpwWaoAS+91w1Sc7BhQ5KBdd/uXtGjS9Nm/bz3o7vtpk2rFFi5ybkwghnRAivmPgwaB5PVOUtgnEMOOnxWjnU5DrTDUN/uWiu6Zm/zaY2tZHnMs6Zh6DdpQj+8uWQUmU9Plj4rITFZfcCwH9RK5uvi/wWwXRaBvgigTjyOa6ozgelwmYZ30349t492PO1hoRlSF9+EXhqJbyqzxlyNIDm1oBjqFNptiDTuC+sPEnEq9pn3A3CsZz/W7u14Z6k1tdU1t/V7YbibQIpGfJDAFLcywpWUzzbOA+EdjuH+SFpQx5Xbiuuv0o0smxobCnghUK1LRgOGZorZpPPG4YtoBlVdS3R4sJIyCazZMpf4gCHfInkzjwbDSMlnQoAwSWDTkqUHbUhQQAwSej1jgGFI8A1DAXp8841Srg7uouN2Ro21h+7mv0lv06OgyxdABL5M9Kf9+eVoHHn5+HzQdFy4CWXxe5JTOa1FlmazOerDPNixoJEowxNX478hczcP0DoFnrB0A8uB6cR0yiWzPfH/vtGXNKnxu+IYdaL0US8cZ1MuvgFfPSj9ppDqfQMk/X+UuUP/H5+2ls0pbtEG0iPJjKTLi3ywQb5kbe4YMXKfbpER8stWX22jqIt8tGzZ8KNAZptOU3l5ZBNjMby04/3JVdZ8vuHRPjgCOQY325m6EPftozi8yf5sBBeDhevI9jHHtT7Gh7O4Zx/eUfC6RMhfFK3gL+PWrooGex0JHCEJ7bDxCF7FNZSHitlm2t911tzJ35nhNNnTm+Fp56SscJp1GYT9vwVvjpOmdN2+2zybcT1shMeeba4oHZRqoC60SEgOK1piiHKmwZB3EX1qpnMZYR+fynB9ywa0cxs4kWlzE5QLk0qCRs8zH0ufHRicrFdhb7iv23a79HIPRGmQaXLGeYhKM/59jrlPAZJiZAMmzBpuU6nvVDjl/TRlkWspsjhlBX20Zix6b3vHRsHeQbwBYOt0tbsVlurLjkHliwcAXYemMuRJWtu3etx0vOGmuyuL+xpu08cYnjby/WdyxsL+mG4KCAi6prP+HV8G4u0vBC/MXNFn3AtR6i3WOKBoro81+VzPulLsCRuImnwOamm5VOcYcFZo+z3cbqQJLPu9v8dXGh/dac0UCN/fFixAdbXIF/wkviPPJ5S9Q4yae7f0MQwt13lLnWM3hRFlpY122+O69w3iB36Sm3Gsv9yz9pWGkjcaOg4JOjpeDxZ8CuZsKFzWzxnzqA4Vs8BgvE6ps/60Fkm5leNEyGP44Vum+zPn88MPt3xV0WPEVm8cuhzd7emBvs2SCylf1Ycylp3Yw3JOzEQRygMGjFmD9vpzE8KeukNSI7r3oo2GIbvaMdqenPWX6c9gyMidxV6fUdieulqGNc0d81cWqFjpn5lXXOWcx1rvvxgEYh/7FSwrmJTAowz/K5dTxbxkNJ/azLv0ipc6A7Qq3tPJhzXmIUPDjt2k+q/McE4Nx5NrQB33QZBmPOWUiWiOM2W9awC4MfBssrlti905cIyhrpl/R02ov4OzuYd+kq+jQOw4QLP+aiCGfUjgjlNmwFeOgxUgRcPqw3mayZsFXAv0pUPvyhiA07KMDJffdOI9cibZqsW3s02+xwhXGNHRvY0stB6P8BwE21TQAAAA==') format('woff');\n}\n\n.fa, .fas {\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 900;\n}\n"},"$:/plugins/TheDiveO/FontAwesome/history":{"title":"$:/plugins/TheDiveO/FontAwesome/history","created":"20140901110931199","modified":"20190509195707164","type":"text/vnd.tiddlywiki","text":"* ''1.2.18'' -- updates to Font Awesome 5.8.2.\n\n* ''1.2.17'' -- updates to Font Awesome 5.8.1, adding several new categories, such as \"alert\", \"beverage\", \"energy\", et cetera. However, most of these new categories simply rehash existing icons, so there are only few really new icons to be found in this release.\n\n* ''1.2.16'' -- updates to Font Awesome 5.7.2.\n\n* ''1.2.15'' -- updates to Font Awesome 5.6.3. This adds new categories, such as \"autumn\", \"holliday\" and \"halloween\" with new icons, as well as updating existing categories with additional icons.\n\n* ''1.2.14''\n** updates to Font Awesome Free 5.3.1.\n** fixes crash in `--update` command when glyph in icons.json lacks a search terms property.\n\n* ''1.2.13''\n** switches to fetching the most recent Font Awesome Free download URL via GitHub API; this way, we can get rid of the (fine!) Puppeteer package and a truckload of update overhead.\n** npm package maintenance update: move development dependencies out of the general dependencies.\n\n* ''1.2.12'' -- updates to Font Awesome Free 5.2.0. This adds new category packs for \"automotive\", \"medical\", \"education\", and \"maps\".\n\n* ''1.2.11'' -- updates to Font Awesome Free 5.1.11.\n\n* ''1.2.10'' (1.2.9)\n** updates to Font Awesome 5.1.0, which brings new categories \"design\", \"emoji\" and \"travel\", and their icons -- as well as some updates and icon additions.\n** updates the update mechanism to work with the new 5.1.x packaging.\n\n* ''1.2.8'' -- updates to Font Awesome Free 5.0.13. This brings three new catogies: animals, buildings, and mathematics.\n\n* ''1.2.7'' -- updates to Font Awesome Free 5.0.12 -- they really do rapid updates, do they?! Glad that updating this plugin is automated...\n\n* ''1.2.6'' -- updates to Font Awesome Free 5.0.11.\n\n* ''1.2.5'' -- updates to Font Awesome Free 5.0.10.\n\n* ''1.2.4''\n** adds unicode code point info to the cheatsheet.\n\n* ''1.2.3''\n** makes TW5FontAwesome plugin available as npm package `tw5-fontawesome`.\n** adds ~ThirdFlow plugin as npm dependency `tw5-thirdflow`.\n\n* ''1.2.2''\n** updates to Font Awesome Free 5.0.9.\n** adds new categories //Charity//, //Chat//, and //Moving//.\n** adds new \"Font Awesome 5\" tab to the [[Control Panel|$:/ControlPanel]] that allows customizing the plugin: enable/disable internal and external link styling.\n\n* ''1.2.1''\n** adds missing category information.\n** adds automated update of category information from the Font Awesome 5 web site, as part of the normal update process:\n*** `npm run update` updates only if there is a newer version of Font Awesome 5 Free available from https://fontawesome.com/\n*** `npm run forceupdate` updates unconditionally.\n\n* ''1.2.0''\n** updates to Font Awesome Free 5.0.8.\n** adds category filtering to the cheatsheet.\n** adds Font Awesome 5 category meta data.\n** brings a new (fully) automatic update and release mechanism:\n*** use `$ npm run update-fontawesome` to update the development files to the newest Font Awesome version that is available online.\n*** use `$ npm run release` to create the plugin release file(s).\n** upgrades to most recent version of the [[ThirdFlow|http://thediveo.github.io/ThirdFlow/]] plugin: this comes with a new automated release mechanism.\n** refactors development command `--update-fontawesome` to directly download the most recent Font Awesome 5 Free package .zip from https://fontawesome.com. The only optional parameter to this command is `force` which forces re-updating, even if the font currently installed in the dev wiki is the same version as the one downloaded.\n** upgrades ThirdFlow plugin and now uses the new automated release file generation mechanism.\n\n* ''1.1.2''\n** fixes ~TiddlyWiki-internal links to system tiddlers not showing the gear symbol in the tiddler editor preview pane.\n\n* ''1.1.1''\n** upgrades to Font Awesome 5.0.4.\n** adds update/import command to ~FontAwesome 5 demo ~TiddlyWiki to update ~~from a Font Awesome zip package~~ [//online//]. Use `--update-fontawesome` when running the plugin development ~TiddlyWiki under Node.js.\n*** The `--update-fontawesome` command ~~expects the (path and) name of a Font Awesome zip package from which it will then update itself~~ [//has no parameters, or alternatively a single parameter `force`//]. ~~There is no need to unpack the zip package.~~ For instance:<div><strike>\n\n```bash\n$ tiddlywiki editions/develop --verbose --update-fontawesome ~/Downloads/fontawesome-free-5.0.2-zip --server 8080 $:/core/save/all text/plain text/html\n```\n\n</strike></div>\n*** If for some reason you need to re-update from the same Font Awesome zip package, specify an additional `force` parameter after the zip package file name parameter. For instance:<div><strike>\n\n```bash\n$ tiddlywiki editions/develop --verbose --update-fontawesome ~/Downloads/fontawesome-free-5.0.2-zip force --server 8080 $:/core/save/all text/plain text/html\n```\n</strike></div>\n* ''1.1.0''\n** upgrades to Font Awesome 5.0.2.\n** upgrades user macros to allow to specify the Font Awesome font family: `fas` (//Font Awesome Solid//), `far` (//Font Awesome Regular//), and `fab` (//Font Awesome Brands//).\n** upgrades stylesheets to new Font Awesome font mess, introduces [[$:/plugins/TheDiveO/FontAwesome/macros/css settings]] shorthand macros to avoid lengthy CSS properties assignments in CSS rules using Font Awesome.\n* ''1.0.7''\n** fix overly greedy image URL adornments, so that they don't apply to TW5-internal images. Now, an internal [[tree.jpeg]] doesn't get adornment, while [[http://thediveo.github.io/TW5FontAwesome/fa-flag.png]] still does, so the type of document can be glanced quickly.\n** small visual improvement to `fa-lbadge` which adds a small right margin to the badge, so that the adjacent text doesn't seem to visually collide with the badge anymore.\n* ''1.0.6''\n** link adornments for image URLs (`.jpg`/`.jpeg`, `.png`, `.gif`, `.tif`/`.tiff`)\n* ''1.0.5''\n** maintenance: upgrade ThirdFlow plugin to 1.1.11.\n* ''1.0.4''\n** improved display of link adornments by removing the link underlining from the adornments.\n** fixed CSS class name bug in `fa-lbox` macro. Also added new `fa-lbadge` macro. Added documentation.\n** oh, the magic of the `list-after` field, when applied to CSS tiddlers, avoids overuse of CSS `!important` declarations.\n\n* ''1.0.3''\n** fixed CSS to ensure that our embedded Font Awesome font always takes precendence over any system-installed Font Awesome font. This ensures a consistent user experience, especially when the local Font Awesome would be an older version.\n\n* ''1.0.2''\n** fixes base64 encoding of the embedded Font Awesome woff.\n** updated documentation with a warning about system-installed fonts taking precedence.\n** updated instructions on how to update the embedded font yourself.\n\n* ''1.0.1''\n** incorporates recent Font Awesome 4.7.0.\n** CSS updated to 4.7.0 too.\n** development version contains updated Third Flow plugin.\n\n* ''1.0.0''\n** never released.\n\n* ''0.9.2-beta''\n** stable beta release with Font Awesome 4.2.0.\n\n* ''v0.0.1-beta1''\n** initial plugin release.\n"},"$:/plugins/TheDiveO/FontAwesome/icon":{"title":"$:/plugins/TheDiveO/FontAwesome/icon","created":"20140901103643546","modified":"20140901123044951","tags":"$:/tags/Image","type":"text/vnd.tiddlywiki","text":"<svg width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\">\n <path \n d=\"m 13.75,0 -11.71875,6.875 0,13.75 11.71875,6.875 11.71875,-6.875 0,-13.75 L 13.75,0 z M 6.28125,5.78125 c 0.3579097,1.42e-5 0.6530496,0.1218163 0.90625,0.375 0.2531946,0.2532114 0.4062468,0.5796012 0.40625,0.9375 -3.2e-6,0.4864625 -0.2240993,0.8370553 -0.65625,1.09375 l 0,12.84375 c -2.6e-6,0.08791 -0.029668,0.15448 -0.09375,0.21875 -0.064087,0.06427 -0.1620941,0.09375 -0.25,0.09375 l -0.625,0 c -0.08791,-1e-6 -0.1859173,-0.02948 -0.25,-0.09375 C 5.6546643,21.18573 5.6249987,21.119157 5.625,21.03125 l 0,-12.84375 C 5.1924761,7.9308053 4.9999994,7.5802125 5,7.09375 4.9999994,6.7358512 5.1216167,6.4094614 5.375,6.15625 5.6283811,5.9030663 5.9233364,5.7812642 6.28125,5.78125 z m 6.6875,1.3125 c 0.722833,1.29e-5 1.403139,0.085316 2.03125,0.28125 0.628089,0.1959592 1.367727,0.4764702 2.21875,0.875 0.256694,0.1281803 0.53739,0.2187616 0.875,0.21875 0.364546,1.16e-5 0.758471,-0.076903 1.1875,-0.21875 0.428999,-0.1418231 0.811026,-0.2931062 1.125,-0.46875 0.313942,-0.1756193 0.594637,-0.3581524 0.875,-0.5 0.28033,-0.1418222 0.474573,-0.1874871 0.5625,-0.1875 0.175429,1.29e-5 0.340379,0.059159 0.46875,0.1875 0.128335,0.1283659 0.187481,0.2616962 0.1875,0.4375 l 0,7.75 c -1.9e-5,0.168803 -0.04062,0.283957 -0.125,0.375 -0.08442,0.09105 -0.223803,0.186697 -0.40625,0.28125 -1.45198,0.78379 -2.709891,1.187503 -3.75,1.1875 -0.412222,3e-6 -0.828017,-0.07008 -1.25,-0.21875 -0.422009,-0.148665 -0.782943,-0.324365 -1.09375,-0.5 -0.310829,-0.175628 -0.686986,-0.351512 -1.15625,-0.5 C 14.249466,15.94527 13.743089,15.875004 13.25,15.875 c -1.296838,4e-6 -2.850298,0.514176 -4.6875,1.5 -0.1148759,0.06095 -0.2359002,0.09375 -0.34375,0.09375 -0.1758202,3e-6 -0.3091502,-0.09039 -0.4375,-0.21875 -0.1283567,-0.12835 -0.1875032,-0.26205 -0.1875,-0.4375 l 0,-7.53125 c -3.2e-6,-0.2164353 0.1030684,-0.4073566 0.3125,-0.5625 0.1418315,-0.094545 0.3893527,-0.2417266 0.78125,-0.4375 1.593792,-0.8107376 3.03169,-1.1874871 4.28125,-1.1875 z m 4.4375,1.9375 c -0.342706,0.1226406 -0.355438,0.656233 -0.5,1.375 -0.223336,-0.06073 -0.456025,-0.114193 -0.6875,-0.125 -0.319018,-0.021 -0.822172,0.073 -1.1875,0.0625 -0.365324,-0.0105 -1.089266,-0.319558 -1.6875,-0.25 -0.240525,0.02958 -0.495457,0.05507 -0.71875,0.15625 -0.136605,0.0619 -0.307097,0.253524 -0.40625,0.28125 -0.999033,0.2793 -2.6450261,0.290617 -2.3125,-1.21875 0.02589,-0.1159319 0.051471,-0.2239389 0,-0.25 -0.06413,-0.032479 -0.11842,0.018948 -0.15625,0.09375 -0.5817319,1.263211 0.450231,2.090082 1.625,2.09375 0.368882,-0.02847 0.188339,-0.02825 0.53125,-0.09375 l 0,0.0625 c -0.02423,0.418425 0.151498,0.773091 0.5,1 -0.159883,0.455791 -0.470574,0.831401 -0.6875,1.25 0.08154,0.520418 0.625493,1.213538 0.84375,1.3125 0.19213,0.08713 0.590499,0.108967 0.6875,-0.03125 0.03464,-0.06594 0.03819,-0.208665 0,-0.28125 0.164063,0.181767 0.379948,0.409467 0.59375,0.53125 0.128025,0.06105 0.26257,0.120068 0.40625,0.125 l 0.15625,-0.03125 c 0.09128,-0.01967 0.220122,-0.01257 0.28125,-0.09375 0.06906,-0.117457 0.0042,-0.445257 -0.28125,-0.46875 -0.285459,-0.02351 -0.487565,-0.141306 -0.75,-0.53125 -0.216207,-0.376982 0.06825,-0.879067 0.15625,-1.25 0.451569,0.07267 0.885787,0.123856 1.34375,0.125 0.198682,-0.0101 0.397908,-0.02487 0.59375,-0.0625 0.06247,0.159574 0.248509,0.592654 0.25,0.71875 0.0042,0.355223 -0.119979,0.738597 -0.0625,1.09375 0.03593,0.104625 -0.01675,0.27314 0.1875,0.28125 0.122159,0.0062 0.03564,0.02295 0.21875,0.03125 l 0.1875,0 c 0.201842,0.338685 0.353672,0.332318 0.75,0.34375 L 17.375,15.25 c 0.06687,-0.02489 0.146577,-0.02959 0.1875,-0.09375 0.133768,-0.194285 -0.220263,-0.284732 -0.34375,-0.5 -0.123507,-0.215248 -0.635898,-1.387969 -0.25,-1.71875 0.385924,-0.330776 0.809257,-0.471475 0.96875,-0.78125 0.06907,-0.139714 0.138021,-0.279525 0.15625,-0.4375 0.09397,0.07799 0.154815,0.152169 0.28125,0.15625 0.334451,0.02101 0.632038,-0.392722 0.78125,-0.78125 0.07973,-0.238471 0.140218,-0.485838 0.125,-0.71875 -0.04092,-0.4488514 0.01685,-0.9204038 0.375,-1.21875 C 19.302812,9.334652 18.96272,9.5357952 18.5625,9.59375 18.341438,9.5266203 18.109109,9.4905105 17.875,9.5 17.760279,9.3505649 17.607384,9.0636657 17.40625,9.03125 z m -4.75,4.34375 c -0.01157,0.166727 -0.02255,0.305428 0.03125,0.46875 0.163898,0.134904 0.380252,0.35428 0.53125,0.5 -0.082,-0.02263 -0.235596,-0.0612 -0.3125,-0.03125 L 12.84375,14.28125 12.8125,14.25 c -0.108862,-0.1172 -0.395316,-0.310466 -0.34375,-0.5 0.04127,-0.131581 0.125136,-0.250383 0.1875,-0.375 z\" transform=\"scale(4.6545455,4.6545455)\"\n/>\n </g>\n</svg>"},"$:/plugins/TheDiveO/FontAwesome/license":{"title":"$:/plugins/TheDiveO/FontAwesome/license","created":"20140901105404058","modified":"20170223103858754","type":"text/vnd.tiddlywiki","text":"This plugin is licensed as follows:\n\n* Font Awesome font license: [[SIL OFL 1.1|http://scripts.sil.org/OFL]].\n* Font Awesome CSS and LESS files licenses: [[MIT License|http://opensource.org/licenses/mit-license.html]].\n* everything else in this plugin is (c) by TheDiveO and licensed under the [[MIT License|http://opensource.org/licenses/mit-license.html]]."},"$:/plugins/TheDiveO/FontAwesome/macros/css settings":{"title":"$:/plugins/TheDiveO/FontAwesome/macros/css settings","created":"20171230210524160","modified":"20171230211107336","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define fa-plugin-font-solid()\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 900; \n\\end\n\n\\define fa-plugin-font-regular()\n font-family: 'Font Awesome 5 Free';\n font-style: normal;\n font-weight: 400; \n\\end\n\n\\define fa-plugin-font-brands()\n font-family: 'Font Awesome 5 Brands';\n font-style: normal;\n font-weight: normal; \n\\end\n"},"$:/plugins/TheDiveO/FontAwesome/macros/fa/doc":{"title":"$:/plugins/TheDiveO/FontAwesome/macros/fa/doc","created":"20140831145557569","modified":"20171230205047837","type":"text/vnd.tiddlywiki","text":"Convenience macros to typeset symbols from Font Awesome.\n\n;`fa-lbox` //glyph//:\"fa-flag\" //fam//:\"fas\"\n: typesets the Font Awesome glyp (defaults to `fa-flag` glyph) in a gray box, and pulls it to the left.\n: As Font Awesome 5.0 has broken up the single 4.x font into multiple fonts, this macro now sports a second optional parameter for setting the font family. Allowed values are `fas` (for //Font Awesome Solid//), `far` (for //Font Awesome Regular//), and finally `fab` (for //Font Awesome Brands//).\n\n;`fa-lbadge` //glyph//:\"fa-flag\"\n: typesets the Font Awesome glyph (defaults to `fa-flag` glyph) in inverse, on a round badge. Also pulls the badge with the icon to the left.\n: As Font Awesome 5.0 has broken up the single 4.x font into multiple fonts, this macro now sports a second optional parameter for setting the font family. Allowed values are `fas` (for //Font Awesome Solid//), `far` (for //Font Awesome Regular//), and finally `fab` (for //Font Awesome Brands//).\n\n;`fa-clear`\n: convenience macro that inserts an empty HTML `div` element with styling `clear:both`. Use this before multiple `fa-lbox` and `fa-lbadge` macros to avoid them piling up from left to right."},"$:/plugins/TheDiveO/FontAwesome/macros/fa":{"title":"$:/plugins/TheDiveO/FontAwesome/macros/fa","created":"20140831145445334","modified":"20171230204202514","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define fa-lbox(glyph:\"fa-flag\",fam:\"fas\")\n<i class=\"$fam$ fa-2x pull-left fa-border $glyph$\"></i>\n\\end\n\n\\define fa-lbadge(glyph:\"fa-flag\",fam:\"fas\")\n<span class=\"fa-stack fa-lg fa-pull-left\" style=\"margin-right: .3em;\"><i class=\"fas fa-circle fa-stack-2x\"></i><i class=\"$fam$ fa-stack-1x fa-inverse $glyph$\"></i></span>\n\\end\n\n\\define fa-clear()\n<div style=\"clear:both;\"/>\n\\end\n"},"$:/plugins/TheDiveO/FontAwesome/macros/global-macros":{"title":"$:/plugins/TheDiveO/FontAwesome/macros/global-macros","created":"20180328184036630","modified":"20180328191101221","tags":"$:/tags/Macro","type":"text/vnd.tiddlywiki","text":"\\define fa5-cfgpath(cfg) $:/config/fa5/$cfg$\n\n\\define fa5-cfgfilterexpr() [<cfg>get[text]] [[yes]] +[first[]prefix[yes]]"},"$:/plugins/TheDiveO/FontAwesome/readme":{"title":"$:/plugins/TheDiveO/FontAwesome/readme","created":"20140901105307611","modified":"20180112190527729","type":"text/vnd.tiddlywiki","text":"This plugin adds support for Font Awesome to your ~TiddlyWiki 5. It embeds the [[Font Awesome|http://fontawesome.io/]] within this plugin, so you don't need to install this font in your operating system. You may, but the //embedded// Font Awesome will take precedence to ensure a consistent user experience.\n\nTo install this plugin in your own ~TiddlyWiki(s), simply drop this [[FontAwesome plugin|$:/plugins/TheDiveO/FontAwesome]] onto your own ~TiddlyWiki(s): this will then import it."},"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/FontAwesome":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/FontAwesome","created":"20170227162302202","list-after":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks","modified":"20180328191153542","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-wk-extlinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\na[href^=\"http://fontawesome.io/\"].tc-tiddlylink-external:before,\na[href^=\"http://fontawesome.com/\"].tc-tiddlylink-external:before,\na[href^=\"https://fontawesome.io/\"].tc-tiddlylink-external:before,\na[href^=\"https://fontawesome.com/\"].tc-tiddlylink-external:before {\n <<fa-plugin-font-brands>>\n content: '\\f425\\202f' !important;\n display: inline-block;\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/GitHub":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/GitHub","created":"20170223102202986","list-after":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks","modified":"20180328191203844","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-wk-extlinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\na[href^=\"http://\"][href*=\"github.com\"]:before {\n <<fa-plugin-font-brands>>\n font-size: 90%;\n content: '\\f09b\\202f';\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/Wikipedia":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/Wikipedia","created":"20170223100306336","modified":"20180328191215033","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-wk-extlinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\na[href^=\"http://\"][href*=\".wikipedia.org\"]:before {\n <<fa-plugin-font-brands>>\n font-size: 90%;\n content: '[\\f266]\\202f';\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/doctypes":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks/doctypes","created":"20170301201914393","list-after":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks","modified":"20180328191142557","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-extdoclinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\na[href$=\".pdf\"].tc-tiddlylink-external:before {\n <<fa-plugin-font-regular>>\n content: '\\f1c1\\202f';\n display: inline-block;\n}\n\na[href$=\".gz\"].tc-tiddlylink-external:before, \na[href$=\".zip\"].tc-tiddlylink-external:before,\na[href$=\".7z\"].tc-tiddlylink-external:before {\n <<fa-plugin-font-regular>>\n content: '\\f1c6\\202f';\n display: inline-block;\n}\n\na[href$=\".jpg\"].tc-tiddlylink-external:before,\na[href$=\".jpeg\"].tc-tiddlylink-external:before,\na[href$=\".png\"].tc-tiddlylink-external:before,\na[href$=\".gif\"].tc-tiddlylink-external:before,\na[href$=\".tif\"].tc-tiddlylink-external:before,\na[href$=\".tiff\"].tc-tiddlylink-external:before {\n <<fa-plugin-font-regular>>\n content: '\\f1c5\\202f';\n display: inline-block;\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/styles/extlinks":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/extlinks","created":"20170223100043117","modified":"20180328191133975","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-extlinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\na[href^=\"http://\"]:before {\n <<fa-plugin-font-solid>>\n font-size: 80%;\n content: '\\f35d\\202f';\n display: inline-block;\n}\n\na[href^=\"https://\"]:before {\n <<fa-plugin-font-solid>>\n font-size: 80%;\n content: '\\f023\\202f';\n display: inline-block;\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/styles/fontawesome 5.css":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/fontawesome 5.css","tags":"$:/tags/Stylesheet","type":"text/css","text":"/* autoimported from 'fontawesome-free-5.8.2-web' */\n/*!\n * Font Awesome Free 5.8.2 by @fontawesome - https://fontawesome.com\n * License - https://fontawesome.com/license/free (Icons: CC BY 4.0, Fonts: SIL OFL 1.1, Code: MIT License)\n */\n.fa,\n.fas,\n.far,\n.fal,\n.fab {\n -moz-osx-font-smoothing: grayscale;\n -webkit-font-smoothing: antialiased;\n display: inline-block;\n font-style: normal;\n font-variant: normal;\n text-rendering: auto;\n line-height: 1; }\n\n.fa-lg {\n font-size: 1.33333em;\n line-height: 0.75em;\n vertical-align: -.0667em; }\n\n.fa-xs {\n font-size: .75em; }\n\n.fa-sm {\n font-size: .875em; }\n\n.fa-1x {\n font-size: 1em; }\n\n.fa-2x {\n font-size: 2em; }\n\n.fa-3x {\n font-size: 3em; }\n\n.fa-4x {\n font-size: 4em; }\n\n.fa-5x {\n font-size: 5em; }\n\n.fa-6x {\n font-size: 6em; }\n\n.fa-7x {\n font-size: 7em; }\n\n.fa-8x {\n font-size: 8em; }\n\n.fa-9x {\n font-size: 9em; }\n\n.fa-10x {\n font-size: 10em; }\n\n.fa-fw {\n text-align: center;\n width: 1.25em; }\n\n.fa-ul {\n list-style-type: none;\n margin-left: 2.5em;\n padding-left: 0; }\n .fa-ul > li {\n position: relative; }\n\n.fa-li {\n left: -2em;\n position: absolute;\n text-align: center;\n width: 2em;\n line-height: inherit; }\n\n.fa-border {\n border: solid 0.08em #eee;\n border-radius: .1em;\n padding: .2em .25em .15em; }\n\n.fa-pull-left {\n float: left; }\n\n.fa-pull-right {\n float: right; }\n\n.fa.fa-pull-left,\n.fas.fa-pull-left,\n.far.fa-pull-left,\n.fal.fa-pull-left,\n.fab.fa-pull-left {\n margin-right: .3em; }\n\n.fa.fa-pull-right,\n.fas.fa-pull-right,\n.far.fa-pull-right,\n.fal.fa-pull-right,\n.fab.fa-pull-right {\n margin-left: .3em; }\n\n.fa-spin {\n -webkit-animation: fa-spin 2s infinite linear;\n animation: fa-spin 2s infinite linear; }\n\n.fa-pulse {\n -webkit-animation: fa-spin 1s infinite steps(8);\n animation: fa-spin 1s infinite steps(8); }\n\n@-webkit-keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n@keyframes fa-spin {\n 0% {\n -webkit-transform: rotate(0deg);\n transform: rotate(0deg); }\n 100% {\n -webkit-transform: rotate(360deg);\n transform: rotate(360deg); } }\n\n.fa-rotate-90 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=1)\";\n -webkit-transform: rotate(90deg);\n transform: rotate(90deg); }\n\n.fa-rotate-180 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2)\";\n -webkit-transform: rotate(180deg);\n transform: rotate(180deg); }\n\n.fa-rotate-270 {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=3)\";\n -webkit-transform: rotate(270deg);\n transform: rotate(270deg); }\n\n.fa-flip-horizontal {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)\";\n -webkit-transform: scale(-1, 1);\n transform: scale(-1, 1); }\n\n.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(1, -1);\n transform: scale(1, -1); }\n\n.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {\n -ms-filter: \"progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)\";\n -webkit-transform: scale(-1, -1);\n transform: scale(-1, -1); }\n\n:root .fa-rotate-90,\n:root .fa-rotate-180,\n:root .fa-rotate-270,\n:root .fa-flip-horizontal,\n:root .fa-flip-vertical,\n:root .fa-flip-both {\n -webkit-filter: none;\n filter: none; }\n\n.fa-stack {\n display: inline-block;\n height: 2em;\n line-height: 2em;\n position: relative;\n vertical-align: middle;\n width: 2.5em; }\n\n.fa-stack-1x,\n.fa-stack-2x {\n left: 0;\n position: absolute;\n text-align: center;\n width: 100%; }\n\n.fa-stack-1x {\n line-height: inherit; }\n\n.fa-stack-2x {\n font-size: 2em; }\n\n.fa-inverse {\n color: #fff; }\n\n/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen\nreaders do not read off random characters that represent icons */\n.fa-500px:before {\n content: \"\\f26e\"; }\n\n.fa-accessible-icon:before {\n content: \"\\f368\"; }\n\n.fa-accusoft:before {\n content: \"\\f369\"; }\n\n.fa-acquisitions-incorporated:before {\n content: \"\\f6af\"; }\n\n.fa-ad:before {\n content: \"\\f641\"; }\n\n.fa-address-book:before {\n content: \"\\f2b9\"; }\n\n.fa-address-card:before {\n content: \"\\f2bb\"; }\n\n.fa-adjust:before {\n content: \"\\f042\"; }\n\n.fa-adn:before {\n content: \"\\f170\"; }\n\n.fa-adobe:before {\n content: \"\\f778\"; }\n\n.fa-adversal:before {\n content: \"\\f36a\"; }\n\n.fa-affiliatetheme:before {\n content: \"\\f36b\"; }\n\n.fa-air-freshener:before {\n content: \"\\f5d0\"; }\n\n.fa-airbnb:before {\n content: \"\\f834\"; }\n\n.fa-algolia:before {\n content: \"\\f36c\"; }\n\n.fa-align-center:before {\n content: \"\\f037\"; }\n\n.fa-align-justify:before {\n content: \"\\f039\"; }\n\n.fa-align-left:before {\n content: \"\\f036\"; }\n\n.fa-align-right:before {\n content: \"\\f038\"; }\n\n.fa-alipay:before {\n content: \"\\f642\"; }\n\n.fa-allergies:before {\n content: \"\\f461\"; }\n\n.fa-amazon:before {\n content: \"\\f270\"; }\n\n.fa-amazon-pay:before {\n content: \"\\f42c\"; }\n\n.fa-ambulance:before {\n content: \"\\f0f9\"; }\n\n.fa-american-sign-language-interpreting:before {\n content: \"\\f2a3\"; }\n\n.fa-amilia:before {\n content: \"\\f36d\"; }\n\n.fa-anchor:before {\n content: \"\\f13d\"; }\n\n.fa-android:before {\n content: \"\\f17b\"; }\n\n.fa-angellist:before {\n content: \"\\f209\"; }\n\n.fa-angle-double-down:before {\n content: \"\\f103\"; }\n\n.fa-angle-double-left:before {\n content: \"\\f100\"; }\n\n.fa-angle-double-right:before {\n content: \"\\f101\"; }\n\n.fa-angle-double-up:before {\n content: \"\\f102\"; }\n\n.fa-angle-down:before {\n content: \"\\f107\"; }\n\n.fa-angle-left:before {\n content: \"\\f104\"; }\n\n.fa-angle-right:before {\n content: \"\\f105\"; }\n\n.fa-angle-up:before {\n content: \"\\f106\"; }\n\n.fa-angry:before {\n content: \"\\f556\"; }\n\n.fa-angrycreative:before {\n content: \"\\f36e\"; }\n\n.fa-angular:before {\n content: \"\\f420\"; }\n\n.fa-ankh:before {\n content: \"\\f644\"; }\n\n.fa-app-store:before {\n content: \"\\f36f\"; }\n\n.fa-app-store-ios:before {\n content: \"\\f370\"; }\n\n.fa-apper:before {\n content: \"\\f371\"; }\n\n.fa-apple:before {\n content: \"\\f179\"; }\n\n.fa-apple-alt:before {\n content: \"\\f5d1\"; }\n\n.fa-apple-pay:before {\n content: \"\\f415\"; }\n\n.fa-archive:before {\n content: \"\\f187\"; }\n\n.fa-archway:before {\n content: \"\\f557\"; }\n\n.fa-arrow-alt-circle-down:before {\n content: \"\\f358\"; }\n\n.fa-arrow-alt-circle-left:before {\n content: \"\\f359\"; }\n\n.fa-arrow-alt-circle-right:before {\n content: \"\\f35a\"; }\n\n.fa-arrow-alt-circle-up:before {\n content: \"\\f35b\"; }\n\n.fa-arrow-circle-down:before {\n content: \"\\f0ab\"; }\n\n.fa-arrow-circle-left:before {\n content: \"\\f0a8\"; }\n\n.fa-arrow-circle-right:before {\n content: \"\\f0a9\"; }\n\n.fa-arrow-circle-up:before {\n content: \"\\f0aa\"; }\n\n.fa-arrow-down:before {\n content: \"\\f063\"; }\n\n.fa-arrow-left:before {\n content: \"\\f060\"; }\n\n.fa-arrow-right:before {\n content: \"\\f061\"; }\n\n.fa-arrow-up:before {\n content: \"\\f062\"; }\n\n.fa-arrows-alt:before {\n content: \"\\f0b2\"; }\n\n.fa-arrows-alt-h:before {\n content: \"\\f337\"; }\n\n.fa-arrows-alt-v:before {\n content: \"\\f338\"; }\n\n.fa-artstation:before {\n content: \"\\f77a\"; }\n\n.fa-assistive-listening-systems:before {\n content: \"\\f2a2\"; }\n\n.fa-asterisk:before {\n content: \"\\f069\"; }\n\n.fa-asymmetrik:before {\n content: \"\\f372\"; }\n\n.fa-at:before {\n content: \"\\f1fa\"; }\n\n.fa-atlas:before {\n content: \"\\f558\"; }\n\n.fa-atlassian:before {\n content: \"\\f77b\"; }\n\n.fa-atom:before {\n content: \"\\f5d2\"; }\n\n.fa-audible:before {\n content: \"\\f373\"; }\n\n.fa-audio-description:before {\n content: \"\\f29e\"; }\n\n.fa-autoprefixer:before {\n content: \"\\f41c\"; }\n\n.fa-avianex:before {\n content: \"\\f374\"; }\n\n.fa-aviato:before {\n content: \"\\f421\"; }\n\n.fa-award:before {\n content: \"\\f559\"; }\n\n.fa-aws:before {\n content: \"\\f375\"; }\n\n.fa-baby:before {\n content: \"\\f77c\"; }\n\n.fa-baby-carriage:before {\n content: \"\\f77d\"; }\n\n.fa-backspace:before {\n content: \"\\f55a\"; }\n\n.fa-backward:before {\n content: \"\\f04a\"; }\n\n.fa-bacon:before {\n content: \"\\f7e5\"; }\n\n.fa-balance-scale:before {\n content: \"\\f24e\"; }\n\n.fa-ban:before {\n content: \"\\f05e\"; }\n\n.fa-band-aid:before {\n content: \"\\f462\"; }\n\n.fa-bandcamp:before {\n content: \"\\f2d5\"; }\n\n.fa-barcode:before {\n content: \"\\f02a\"; }\n\n.fa-bars:before {\n content: \"\\f0c9\"; }\n\n.fa-baseball-ball:before {\n content: \"\\f433\"; }\n\n.fa-basketball-ball:before {\n content: \"\\f434\"; }\n\n.fa-bath:before {\n content: \"\\f2cd\"; }\n\n.fa-battery-empty:before {\n content: \"\\f244\"; }\n\n.fa-battery-full:before {\n content: \"\\f240\"; }\n\n.fa-battery-half:before {\n content: \"\\f242\"; }\n\n.fa-battery-quarter:before {\n content: \"\\f243\"; }\n\n.fa-battery-three-quarters:before {\n content: \"\\f241\"; }\n\n.fa-battle-net:before {\n content: \"\\f835\"; }\n\n.fa-bed:before {\n content: \"\\f236\"; }\n\n.fa-beer:before {\n content: \"\\f0fc\"; }\n\n.fa-behance:before {\n content: \"\\f1b4\"; }\n\n.fa-behance-square:before {\n content: \"\\f1b5\"; }\n\n.fa-bell:before {\n content: \"\\f0f3\"; }\n\n.fa-bell-slash:before {\n content: \"\\f1f6\"; }\n\n.fa-bezier-curve:before {\n content: \"\\f55b\"; }\n\n.fa-bible:before {\n content: \"\\f647\"; }\n\n.fa-bicycle:before {\n content: \"\\f206\"; }\n\n.fa-bimobject:before {\n content: \"\\f378\"; }\n\n.fa-binoculars:before {\n content: \"\\f1e5\"; }\n\n.fa-biohazard:before {\n content: \"\\f780\"; }\n\n.fa-birthday-cake:before {\n content: \"\\f1fd\"; }\n\n.fa-bitbucket:before {\n content: \"\\f171\"; }\n\n.fa-bitcoin:before {\n content: \"\\f379\"; }\n\n.fa-bity:before {\n content: \"\\f37a\"; }\n\n.fa-black-tie:before {\n content: \"\\f27e\"; }\n\n.fa-blackberry:before {\n content: \"\\f37b\"; }\n\n.fa-blender:before {\n content: \"\\f517\"; }\n\n.fa-blender-phone:before {\n content: \"\\f6b6\"; }\n\n.fa-blind:before {\n content: \"\\f29d\"; }\n\n.fa-blog:before {\n content: \"\\f781\"; }\n\n.fa-blogger:before {\n content: \"\\f37c\"; }\n\n.fa-blogger-b:before {\n content: \"\\f37d\"; }\n\n.fa-bluetooth:before {\n content: \"\\f293\"; }\n\n.fa-bluetooth-b:before {\n content: \"\\f294\"; }\n\n.fa-bold:before {\n content: \"\\f032\"; }\n\n.fa-bolt:before {\n content: \"\\f0e7\"; }\n\n.fa-bomb:before {\n content: \"\\f1e2\"; }\n\n.fa-bone:before {\n content: \"\\f5d7\"; }\n\n.fa-bong:before {\n content: \"\\f55c\"; }\n\n.fa-book:before {\n content: \"\\f02d\"; }\n\n.fa-book-dead:before {\n content: \"\\f6b7\"; }\n\n.fa-book-medical:before {\n content: \"\\f7e6\"; }\n\n.fa-book-open:before {\n content: \"\\f518\"; }\n\n.fa-book-reader:before {\n content: \"\\f5da\"; }\n\n.fa-bookmark:before {\n content: \"\\f02e\"; }\n\n.fa-bootstrap:before {\n content: \"\\f836\"; }\n\n.fa-bowling-ball:before {\n content: \"\\f436\"; }\n\n.fa-box:before {\n content: \"\\f466\"; }\n\n.fa-box-open:before {\n content: \"\\f49e\"; }\n\n.fa-boxes:before {\n content: \"\\f468\"; }\n\n.fa-braille:before {\n content: \"\\f2a1\"; }\n\n.fa-brain:before {\n content: \"\\f5dc\"; }\n\n.fa-bread-slice:before {\n content: \"\\f7ec\"; }\n\n.fa-briefcase:before {\n content: \"\\f0b1\"; }\n\n.fa-briefcase-medical:before {\n content: \"\\f469\"; }\n\n.fa-broadcast-tower:before {\n content: \"\\f519\"; }\n\n.fa-broom:before {\n content: \"\\f51a\"; }\n\n.fa-brush:before {\n content: \"\\f55d\"; }\n\n.fa-btc:before {\n content: \"\\f15a\"; }\n\n.fa-buffer:before {\n content: \"\\f837\"; }\n\n.fa-bug:before {\n content: \"\\f188\"; }\n\n.fa-building:before {\n content: \"\\f1ad\"; }\n\n.fa-bullhorn:before {\n content: \"\\f0a1\"; }\n\n.fa-bullseye:before {\n content: \"\\f140\"; }\n\n.fa-burn:before {\n content: \"\\f46a\"; }\n\n.fa-buromobelexperte:before {\n content: \"\\f37f\"; }\n\n.fa-bus:before {\n content: \"\\f207\"; }\n\n.fa-bus-alt:before {\n content: \"\\f55e\"; }\n\n.fa-business-time:before {\n content: \"\\f64a\"; }\n\n.fa-buysellads:before {\n content: \"\\f20d\"; }\n\n.fa-calculator:before {\n content: \"\\f1ec\"; }\n\n.fa-calendar:before {\n content: \"\\f133\"; }\n\n.fa-calendar-alt:before {\n content: \"\\f073\"; }\n\n.fa-calendar-check:before {\n content: \"\\f274\"; }\n\n.fa-calendar-day:before {\n content: \"\\f783\"; }\n\n.fa-calendar-minus:before {\n content: \"\\f272\"; }\n\n.fa-calendar-plus:before {\n content: \"\\f271\"; }\n\n.fa-calendar-times:before {\n content: \"\\f273\"; }\n\n.fa-calendar-week:before {\n content: \"\\f784\"; }\n\n.fa-camera:before {\n content: \"\\f030\"; }\n\n.fa-camera-retro:before {\n content: \"\\f083\"; }\n\n.fa-campground:before {\n content: \"\\f6bb\"; }\n\n.fa-canadian-maple-leaf:before {\n content: \"\\f785\"; }\n\n.fa-candy-cane:before {\n content: \"\\f786\"; }\n\n.fa-cannabis:before {\n content: \"\\f55f\"; }\n\n.fa-capsules:before {\n content: \"\\f46b\"; }\n\n.fa-car:before {\n content: \"\\f1b9\"; }\n\n.fa-car-alt:before {\n content: \"\\f5de\"; }\n\n.fa-car-battery:before {\n content: \"\\f5df\"; }\n\n.fa-car-crash:before {\n content: \"\\f5e1\"; }\n\n.fa-car-side:before {\n content: \"\\f5e4\"; }\n\n.fa-caret-down:before {\n content: \"\\f0d7\"; }\n\n.fa-caret-left:before {\n content: \"\\f0d9\"; }\n\n.fa-caret-right:before {\n content: \"\\f0da\"; }\n\n.fa-caret-square-down:before {\n content: \"\\f150\"; }\n\n.fa-caret-square-left:before {\n content: \"\\f191\"; }\n\n.fa-caret-square-right:before {\n content: \"\\f152\"; }\n\n.fa-caret-square-up:before {\n content: \"\\f151\"; }\n\n.fa-caret-up:before {\n content: \"\\f0d8\"; }\n\n.fa-carrot:before {\n content: \"\\f787\"; }\n\n.fa-cart-arrow-down:before {\n content: \"\\f218\"; }\n\n.fa-cart-plus:before {\n content: \"\\f217\"; }\n\n.fa-cash-register:before {\n content: \"\\f788\"; }\n\n.fa-cat:before {\n content: \"\\f6be\"; }\n\n.fa-cc-amazon-pay:before {\n content: \"\\f42d\"; }\n\n.fa-cc-amex:before {\n content: \"\\f1f3\"; }\n\n.fa-cc-apple-pay:before {\n content: \"\\f416\"; }\n\n.fa-cc-diners-club:before {\n content: \"\\f24c\"; }\n\n.fa-cc-discover:before {\n content: \"\\f1f2\"; }\n\n.fa-cc-jcb:before {\n content: \"\\f24b\"; }\n\n.fa-cc-mastercard:before {\n content: \"\\f1f1\"; }\n\n.fa-cc-paypal:before {\n content: \"\\f1f4\"; }\n\n.fa-cc-stripe:before {\n content: \"\\f1f5\"; }\n\n.fa-cc-visa:before {\n content: \"\\f1f0\"; }\n\n.fa-centercode:before {\n content: \"\\f380\"; }\n\n.fa-centos:before {\n content: \"\\f789\"; }\n\n.fa-certificate:before {\n content: \"\\f0a3\"; }\n\n.fa-chair:before {\n content: \"\\f6c0\"; }\n\n.fa-chalkboard:before {\n content: \"\\f51b\"; }\n\n.fa-chalkboard-teacher:before {\n content: \"\\f51c\"; }\n\n.fa-charging-station:before {\n content: \"\\f5e7\"; }\n\n.fa-chart-area:before {\n content: \"\\f1fe\"; }\n\n.fa-chart-bar:before {\n content: \"\\f080\"; }\n\n.fa-chart-line:before {\n content: \"\\f201\"; }\n\n.fa-chart-pie:before {\n content: \"\\f200\"; }\n\n.fa-check:before {\n content: \"\\f00c\"; }\n\n.fa-check-circle:before {\n content: \"\\f058\"; }\n\n.fa-check-double:before {\n content: \"\\f560\"; }\n\n.fa-check-square:before {\n content: \"\\f14a\"; }\n\n.fa-cheese:before {\n content: \"\\f7ef\"; }\n\n.fa-chess:before {\n content: \"\\f439\"; }\n\n.fa-chess-bishop:before {\n content: \"\\f43a\"; }\n\n.fa-chess-board:before {\n content: \"\\f43c\"; }\n\n.fa-chess-king:before {\n content: \"\\f43f\"; }\n\n.fa-chess-knight:before {\n content: \"\\f441\"; }\n\n.fa-chess-pawn:before {\n content: \"\\f443\"; }\n\n.fa-chess-queen:before {\n content: \"\\f445\"; }\n\n.fa-chess-rook:before {\n content: \"\\f447\"; }\n\n.fa-chevron-circle-down:before {\n content: \"\\f13a\"; }\n\n.fa-chevron-circle-left:before {\n content: \"\\f137\"; }\n\n.fa-chevron-circle-right:before {\n content: \"\\f138\"; }\n\n.fa-chevron-circle-up:before {\n content: \"\\f139\"; }\n\n.fa-chevron-down:before {\n content: \"\\f078\"; }\n\n.fa-chevron-left:before {\n content: \"\\f053\"; }\n\n.fa-chevron-right:before {\n content: \"\\f054\"; }\n\n.fa-chevron-up:before {\n content: \"\\f077\"; }\n\n.fa-child:before {\n content: \"\\f1ae\"; }\n\n.fa-chrome:before {\n content: \"\\f268\"; }\n\n.fa-chromecast:before {\n content: \"\\f838\"; }\n\n.fa-church:before {\n content: \"\\f51d\"; }\n\n.fa-circle:before {\n content: \"\\f111\"; }\n\n.fa-circle-notch:before {\n content: \"\\f1ce\"; }\n\n.fa-city:before {\n content: \"\\f64f\"; }\n\n.fa-clinic-medical:before {\n content: \"\\f7f2\"; }\n\n.fa-clipboard:before {\n content: \"\\f328\"; }\n\n.fa-clipboard-check:before {\n content: \"\\f46c\"; }\n\n.fa-clipboard-list:before {\n content: \"\\f46d\"; }\n\n.fa-clock:before {\n content: \"\\f017\"; }\n\n.fa-clone:before {\n content: \"\\f24d\"; }\n\n.fa-closed-captioning:before {\n content: \"\\f20a\"; }\n\n.fa-cloud:before {\n content: \"\\f0c2\"; }\n\n.fa-cloud-download-alt:before {\n content: \"\\f381\"; }\n\n.fa-cloud-meatball:before {\n content: \"\\f73b\"; }\n\n.fa-cloud-moon:before {\n content: \"\\f6c3\"; }\n\n.fa-cloud-moon-rain:before {\n content: \"\\f73c\"; }\n\n.fa-cloud-rain:before {\n content: \"\\f73d\"; }\n\n.fa-cloud-showers-heavy:before {\n content: \"\\f740\"; }\n\n.fa-cloud-sun:before {\n content: \"\\f6c4\"; }\n\n.fa-cloud-sun-rain:before {\n content: \"\\f743\"; }\n\n.fa-cloud-upload-alt:before {\n content: \"\\f382\"; }\n\n.fa-cloudscale:before {\n content: \"\\f383\"; }\n\n.fa-cloudsmith:before {\n content: \"\\f384\"; }\n\n.fa-cloudversify:before {\n content: \"\\f385\"; }\n\n.fa-cocktail:before {\n content: \"\\f561\"; }\n\n.fa-code:before {\n content: \"\\f121\"; }\n\n.fa-code-branch:before {\n content: \"\\f126\"; }\n\n.fa-codepen:before {\n content: \"\\f1cb\"; }\n\n.fa-codiepie:before {\n content: \"\\f284\"; }\n\n.fa-coffee:before {\n content: \"\\f0f4\"; }\n\n.fa-cog:before {\n content: \"\\f013\"; }\n\n.fa-cogs:before {\n content: \"\\f085\"; }\n\n.fa-coins:before {\n content: \"\\f51e\"; }\n\n.fa-columns:before {\n content: \"\\f0db\"; }\n\n.fa-comment:before {\n content: \"\\f075\"; }\n\n.fa-comment-alt:before {\n content: \"\\f27a\"; }\n\n.fa-comment-dollar:before {\n content: \"\\f651\"; }\n\n.fa-comment-dots:before {\n content: \"\\f4ad\"; }\n\n.fa-comment-medical:before {\n content: \"\\f7f5\"; }\n\n.fa-comment-slash:before {\n content: \"\\f4b3\"; }\n\n.fa-comments:before {\n content: \"\\f086\"; }\n\n.fa-comments-dollar:before {\n content: \"\\f653\"; }\n\n.fa-compact-disc:before {\n content: \"\\f51f\"; }\n\n.fa-compass:before {\n content: \"\\f14e\"; }\n\n.fa-compress:before {\n content: \"\\f066\"; }\n\n.fa-compress-arrows-alt:before {\n content: \"\\f78c\"; }\n\n.fa-concierge-bell:before {\n content: \"\\f562\"; }\n\n.fa-confluence:before {\n content: \"\\f78d\"; }\n\n.fa-connectdevelop:before {\n content: \"\\f20e\"; }\n\n.fa-contao:before {\n content: \"\\f26d\"; }\n\n.fa-cookie:before {\n content: \"\\f563\"; }\n\n.fa-cookie-bite:before {\n content: \"\\f564\"; }\n\n.fa-copy:before {\n content: \"\\f0c5\"; }\n\n.fa-copyright:before {\n content: \"\\f1f9\"; }\n\n.fa-couch:before {\n content: \"\\f4b8\"; }\n\n.fa-cpanel:before {\n content: \"\\f388\"; }\n\n.fa-creative-commons:before {\n content: \"\\f25e\"; }\n\n.fa-creative-commons-by:before {\n content: \"\\f4e7\"; }\n\n.fa-creative-commons-nc:before {\n content: \"\\f4e8\"; }\n\n.fa-creative-commons-nc-eu:before {\n content: \"\\f4e9\"; }\n\n.fa-creative-commons-nc-jp:before {\n content: \"\\f4ea\"; }\n\n.fa-creative-commons-nd:before {\n content: \"\\f4eb\"; }\n\n.fa-creative-commons-pd:before {\n content: \"\\f4ec\"; }\n\n.fa-creative-commons-pd-alt:before {\n content: \"\\f4ed\"; }\n\n.fa-creative-commons-remix:before {\n content: \"\\f4ee\"; }\n\n.fa-creative-commons-sa:before {\n content: \"\\f4ef\"; }\n\n.fa-creative-commons-sampling:before {\n content: \"\\f4f0\"; }\n\n.fa-creative-commons-sampling-plus:before {\n content: \"\\f4f1\"; }\n\n.fa-creative-commons-share:before {\n content: \"\\f4f2\"; }\n\n.fa-creative-commons-zero:before {\n content: \"\\f4f3\"; }\n\n.fa-credit-card:before {\n content: \"\\f09d\"; }\n\n.fa-critical-role:before {\n content: \"\\f6c9\"; }\n\n.fa-crop:before {\n content: \"\\f125\"; }\n\n.fa-crop-alt:before {\n content: \"\\f565\"; }\n\n.fa-cross:before {\n content: \"\\f654\"; }\n\n.fa-crosshairs:before {\n content: \"\\f05b\"; }\n\n.fa-crow:before {\n content: \"\\f520\"; }\n\n.fa-crown:before {\n content: \"\\f521\"; }\n\n.fa-crutch:before {\n content: \"\\f7f7\"; }\n\n.fa-css3:before {\n content: \"\\f13c\"; }\n\n.fa-css3-alt:before {\n content: \"\\f38b\"; }\n\n.fa-cube:before {\n content: \"\\f1b2\"; }\n\n.fa-cubes:before {\n content: \"\\f1b3\"; }\n\n.fa-cut:before {\n content: \"\\f0c4\"; }\n\n.fa-cuttlefish:before {\n content: \"\\f38c\"; }\n\n.fa-d-and-d:before {\n content: \"\\f38d\"; }\n\n.fa-d-and-d-beyond:before {\n content: \"\\f6ca\"; }\n\n.fa-dashcube:before {\n content: \"\\f210\"; }\n\n.fa-database:before {\n content: \"\\f1c0\"; }\n\n.fa-deaf:before {\n content: \"\\f2a4\"; }\n\n.fa-delicious:before {\n content: \"\\f1a5\"; }\n\n.fa-democrat:before {\n content: \"\\f747\"; }\n\n.fa-deploydog:before {\n content: \"\\f38e\"; }\n\n.fa-deskpro:before {\n content: \"\\f38f\"; }\n\n.fa-desktop:before {\n content: \"\\f108\"; }\n\n.fa-dev:before {\n content: \"\\f6cc\"; }\n\n.fa-deviantart:before {\n content: \"\\f1bd\"; }\n\n.fa-dharmachakra:before {\n content: \"\\f655\"; }\n\n.fa-dhl:before {\n content: \"\\f790\"; }\n\n.fa-diagnoses:before {\n content: \"\\f470\"; }\n\n.fa-diaspora:before {\n content: \"\\f791\"; }\n\n.fa-dice:before {\n content: \"\\f522\"; }\n\n.fa-dice-d20:before {\n content: \"\\f6cf\"; }\n\n.fa-dice-d6:before {\n content: \"\\f6d1\"; }\n\n.fa-dice-five:before {\n content: \"\\f523\"; }\n\n.fa-dice-four:before {\n content: \"\\f524\"; }\n\n.fa-dice-one:before {\n content: \"\\f525\"; }\n\n.fa-dice-six:before {\n content: \"\\f526\"; }\n\n.fa-dice-three:before {\n content: \"\\f527\"; }\n\n.fa-dice-two:before {\n content: \"\\f528\"; }\n\n.fa-digg:before {\n content: \"\\f1a6\"; }\n\n.fa-digital-ocean:before {\n content: \"\\f391\"; }\n\n.fa-digital-tachograph:before {\n content: \"\\f566\"; }\n\n.fa-directions:before {\n content: \"\\f5eb\"; }\n\n.fa-discord:before {\n content: \"\\f392\"; }\n\n.fa-discourse:before {\n content: \"\\f393\"; }\n\n.fa-divide:before {\n content: \"\\f529\"; }\n\n.fa-dizzy:before {\n content: \"\\f567\"; }\n\n.fa-dna:before {\n content: \"\\f471\"; }\n\n.fa-dochub:before {\n content: \"\\f394\"; }\n\n.fa-docker:before {\n content: \"\\f395\"; }\n\n.fa-dog:before {\n content: \"\\f6d3\"; }\n\n.fa-dollar-sign:before {\n content: \"\\f155\"; }\n\n.fa-dolly:before {\n content: \"\\f472\"; }\n\n.fa-dolly-flatbed:before {\n content: \"\\f474\"; }\n\n.fa-donate:before {\n content: \"\\f4b9\"; }\n\n.fa-door-closed:before {\n content: \"\\f52a\"; }\n\n.fa-door-open:before {\n content: \"\\f52b\"; }\n\n.fa-dot-circle:before {\n content: \"\\f192\"; }\n\n.fa-dove:before {\n content: \"\\f4ba\"; }\n\n.fa-download:before {\n content: \"\\f019\"; }\n\n.fa-draft2digital:before {\n content: \"\\f396\"; }\n\n.fa-drafting-compass:before {\n content: \"\\f568\"; }\n\n.fa-dragon:before {\n content: \"\\f6d5\"; }\n\n.fa-draw-polygon:before {\n content: \"\\f5ee\"; }\n\n.fa-dribbble:before {\n content: \"\\f17d\"; }\n\n.fa-dribbble-square:before {\n content: \"\\f397\"; }\n\n.fa-dropbox:before {\n content: \"\\f16b\"; }\n\n.fa-drum:before {\n content: \"\\f569\"; }\n\n.fa-drum-steelpan:before {\n content: \"\\f56a\"; }\n\n.fa-drumstick-bite:before {\n content: \"\\f6d7\"; }\n\n.fa-drupal:before {\n content: \"\\f1a9\"; }\n\n.fa-dumbbell:before {\n content: \"\\f44b\"; }\n\n.fa-dumpster:before {\n content: \"\\f793\"; }\n\n.fa-dumpster-fire:before {\n content: \"\\f794\"; }\n\n.fa-dungeon:before {\n content: \"\\f6d9\"; }\n\n.fa-dyalog:before {\n content: \"\\f399\"; }\n\n.fa-earlybirds:before {\n content: \"\\f39a\"; }\n\n.fa-ebay:before {\n content: \"\\f4f4\"; }\n\n.fa-edge:before {\n content: \"\\f282\"; }\n\n.fa-edit:before {\n content: \"\\f044\"; }\n\n.fa-egg:before {\n content: \"\\f7fb\"; }\n\n.fa-eject:before {\n content: \"\\f052\"; }\n\n.fa-elementor:before {\n content: \"\\f430\"; }\n\n.fa-ellipsis-h:before {\n content: \"\\f141\"; }\n\n.fa-ellipsis-v:before {\n content: \"\\f142\"; }\n\n.fa-ello:before {\n content: \"\\f5f1\"; }\n\n.fa-ember:before {\n content: \"\\f423\"; }\n\n.fa-empire:before {\n content: \"\\f1d1\"; }\n\n.fa-envelope:before {\n content: \"\\f0e0\"; }\n\n.fa-envelope-open:before {\n content: \"\\f2b6\"; }\n\n.fa-envelope-open-text:before {\n content: \"\\f658\"; }\n\n.fa-envelope-square:before {\n content: \"\\f199\"; }\n\n.fa-envira:before {\n content: \"\\f299\"; }\n\n.fa-equals:before {\n content: \"\\f52c\"; }\n\n.fa-eraser:before {\n content: \"\\f12d\"; }\n\n.fa-erlang:before {\n content: \"\\f39d\"; }\n\n.fa-ethereum:before {\n content: \"\\f42e\"; }\n\n.fa-ethernet:before {\n content: \"\\f796\"; }\n\n.fa-etsy:before {\n content: \"\\f2d7\"; }\n\n.fa-euro-sign:before {\n content: \"\\f153\"; }\n\n.fa-evernote:before {\n content: \"\\f839\"; }\n\n.fa-exchange-alt:before {\n content: \"\\f362\"; }\n\n.fa-exclamation:before {\n content: \"\\f12a\"; }\n\n.fa-exclamation-circle:before {\n content: \"\\f06a\"; }\n\n.fa-exclamation-triangle:before {\n content: \"\\f071\"; }\n\n.fa-expand:before {\n content: \"\\f065\"; }\n\n.fa-expand-arrows-alt:before {\n content: \"\\f31e\"; }\n\n.fa-expeditedssl:before {\n content: \"\\f23e\"; }\n\n.fa-external-link-alt:before {\n content: \"\\f35d\"; }\n\n.fa-external-link-square-alt:before {\n content: \"\\f360\"; }\n\n.fa-eye:before {\n content: \"\\f06e\"; }\n\n.fa-eye-dropper:before {\n content: \"\\f1fb\"; }\n\n.fa-eye-slash:before {\n content: \"\\f070\"; }\n\n.fa-facebook:before {\n content: \"\\f09a\"; }\n\n.fa-facebook-f:before {\n content: \"\\f39e\"; }\n\n.fa-facebook-messenger:before {\n content: \"\\f39f\"; }\n\n.fa-facebook-square:before {\n content: \"\\f082\"; }\n\n.fa-fantasy-flight-games:before {\n content: \"\\f6dc\"; }\n\n.fa-fast-backward:before {\n content: \"\\f049\"; }\n\n.fa-fast-forward:before {\n content: \"\\f050\"; }\n\n.fa-fax:before {\n content: \"\\f1ac\"; }\n\n.fa-feather:before {\n content: \"\\f52d\"; }\n\n.fa-feather-alt:before {\n content: \"\\f56b\"; }\n\n.fa-fedex:before {\n content: \"\\f797\"; }\n\n.fa-fedora:before {\n content: \"\\f798\"; }\n\n.fa-female:before {\n content: \"\\f182\"; }\n\n.fa-fighter-jet:before {\n content: \"\\f0fb\"; }\n\n.fa-figma:before {\n content: \"\\f799\"; }\n\n.fa-file:before {\n content: \"\\f15b\"; }\n\n.fa-file-alt:before {\n content: \"\\f15c\"; }\n\n.fa-file-archive:before {\n content: \"\\f1c6\"; }\n\n.fa-file-audio:before {\n content: \"\\f1c7\"; }\n\n.fa-file-code:before {\n content: \"\\f1c9\"; }\n\n.fa-file-contract:before {\n content: \"\\f56c\"; }\n\n.fa-file-csv:before {\n content: \"\\f6dd\"; }\n\n.fa-file-download:before {\n content: \"\\f56d\"; }\n\n.fa-file-excel:before {\n content: \"\\f1c3\"; }\n\n.fa-file-export:before {\n content: \"\\f56e\"; }\n\n.fa-file-image:before {\n content: \"\\f1c5\"; }\n\n.fa-file-import:before {\n content: \"\\f56f\"; }\n\n.fa-file-invoice:before {\n content: \"\\f570\"; }\n\n.fa-file-invoice-dollar:before {\n content: \"\\f571\"; }\n\n.fa-file-medical:before {\n content: \"\\f477\"; }\n\n.fa-file-medical-alt:before {\n content: \"\\f478\"; }\n\n.fa-file-pdf:before {\n content: \"\\f1c1\"; }\n\n.fa-file-powerpoint:before {\n content: \"\\f1c4\"; }\n\n.fa-file-prescription:before {\n content: \"\\f572\"; }\n\n.fa-file-signature:before {\n content: \"\\f573\"; }\n\n.fa-file-upload:before {\n content: \"\\f574\"; }\n\n.fa-file-video:before {\n content: \"\\f1c8\"; }\n\n.fa-file-word:before {\n content: \"\\f1c2\"; }\n\n.fa-fill:before {\n content: \"\\f575\"; }\n\n.fa-fill-drip:before {\n content: \"\\f576\"; }\n\n.fa-film:before {\n content: \"\\f008\"; }\n\n.fa-filter:before {\n content: \"\\f0b0\"; }\n\n.fa-fingerprint:before {\n content: \"\\f577\"; }\n\n.fa-fire:before {\n content: \"\\f06d\"; }\n\n.fa-fire-alt:before {\n content: \"\\f7e4\"; }\n\n.fa-fire-extinguisher:before {\n content: \"\\f134\"; }\n\n.fa-firefox:before {\n content: \"\\f269\"; }\n\n.fa-first-aid:before {\n content: \"\\f479\"; }\n\n.fa-first-order:before {\n content: \"\\f2b0\"; }\n\n.fa-first-order-alt:before {\n content: \"\\f50a\"; }\n\n.fa-firstdraft:before {\n content: \"\\f3a1\"; }\n\n.fa-fish:before {\n content: \"\\f578\"; }\n\n.fa-fist-raised:before {\n content: \"\\f6de\"; }\n\n.fa-flag:before {\n content: \"\\f024\"; }\n\n.fa-flag-checkered:before {\n content: \"\\f11e\"; }\n\n.fa-flag-usa:before {\n content: \"\\f74d\"; }\n\n.fa-flask:before {\n content: \"\\f0c3\"; }\n\n.fa-flickr:before {\n content: \"\\f16e\"; }\n\n.fa-flipboard:before {\n content: \"\\f44d\"; }\n\n.fa-flushed:before {\n content: \"\\f579\"; }\n\n.fa-fly:before {\n content: \"\\f417\"; }\n\n.fa-folder:before {\n content: \"\\f07b\"; }\n\n.fa-folder-minus:before {\n content: \"\\f65d\"; }\n\n.fa-folder-open:before {\n content: \"\\f07c\"; }\n\n.fa-folder-plus:before {\n content: \"\\f65e\"; }\n\n.fa-font:before {\n content: \"\\f031\"; }\n\n.fa-font-awesome:before {\n content: \"\\f2b4\"; }\n\n.fa-font-awesome-alt:before {\n content: \"\\f35c\"; }\n\n.fa-font-awesome-flag:before {\n content: \"\\f425\"; }\n\n.fa-font-awesome-logo-full:before {\n content: \"\\f4e6\"; }\n\n.fa-fonticons:before {\n content: \"\\f280\"; }\n\n.fa-fonticons-fi:before {\n content: \"\\f3a2\"; }\n\n.fa-football-ball:before {\n content: \"\\f44e\"; }\n\n.fa-fort-awesome:before {\n content: \"\\f286\"; }\n\n.fa-fort-awesome-alt:before {\n content: \"\\f3a3\"; }\n\n.fa-forumbee:before {\n content: \"\\f211\"; }\n\n.fa-forward:before {\n content: \"\\f04e\"; }\n\n.fa-foursquare:before {\n content: \"\\f180\"; }\n\n.fa-free-code-camp:before {\n content: \"\\f2c5\"; }\n\n.fa-freebsd:before {\n content: \"\\f3a4\"; }\n\n.fa-frog:before {\n content: \"\\f52e\"; }\n\n.fa-frown:before {\n content: \"\\f119\"; }\n\n.fa-frown-open:before {\n content: \"\\f57a\"; }\n\n.fa-fulcrum:before {\n content: \"\\f50b\"; }\n\n.fa-funnel-dollar:before {\n content: \"\\f662\"; }\n\n.fa-futbol:before {\n content: \"\\f1e3\"; }\n\n.fa-galactic-republic:before {\n content: \"\\f50c\"; }\n\n.fa-galactic-senate:before {\n content: \"\\f50d\"; }\n\n.fa-gamepad:before {\n content: \"\\f11b\"; }\n\n.fa-gas-pump:before {\n content: \"\\f52f\"; }\n\n.fa-gavel:before {\n content: \"\\f0e3\"; }\n\n.fa-gem:before {\n content: \"\\f3a5\"; }\n\n.fa-genderless:before {\n content: \"\\f22d\"; }\n\n.fa-get-pocket:before {\n content: \"\\f265\"; }\n\n.fa-gg:before {\n content: \"\\f260\"; }\n\n.fa-gg-circle:before {\n content: \"\\f261\"; }\n\n.fa-ghost:before {\n content: \"\\f6e2\"; }\n\n.fa-gift:before {\n content: \"\\f06b\"; }\n\n.fa-gifts:before {\n content: \"\\f79c\"; }\n\n.fa-git:before {\n content: \"\\f1d3\"; }\n\n.fa-git-alt:before {\n content: \"\\f841\"; }\n\n.fa-git-square:before {\n content: \"\\f1d2\"; }\n\n.fa-github:before {\n content: \"\\f09b\"; }\n\n.fa-github-alt:before {\n content: \"\\f113\"; }\n\n.fa-github-square:before {\n content: \"\\f092\"; }\n\n.fa-gitkraken:before {\n content: \"\\f3a6\"; }\n\n.fa-gitlab:before {\n content: \"\\f296\"; }\n\n.fa-gitter:before {\n content: \"\\f426\"; }\n\n.fa-glass-cheers:before {\n content: \"\\f79f\"; }\n\n.fa-glass-martini:before {\n content: \"\\f000\"; }\n\n.fa-glass-martini-alt:before {\n content: \"\\f57b\"; }\n\n.fa-glass-whiskey:before {\n content: \"\\f7a0\"; }\n\n.fa-glasses:before {\n content: \"\\f530\"; }\n\n.fa-glide:before {\n content: \"\\f2a5\"; }\n\n.fa-glide-g:before {\n content: \"\\f2a6\"; }\n\n.fa-globe:before {\n content: \"\\f0ac\"; }\n\n.fa-globe-africa:before {\n content: \"\\f57c\"; }\n\n.fa-globe-americas:before {\n content: \"\\f57d\"; }\n\n.fa-globe-asia:before {\n content: \"\\f57e\"; }\n\n.fa-globe-europe:before {\n content: \"\\f7a2\"; }\n\n.fa-gofore:before {\n content: \"\\f3a7\"; }\n\n.fa-golf-ball:before {\n content: \"\\f450\"; }\n\n.fa-goodreads:before {\n content: \"\\f3a8\"; }\n\n.fa-goodreads-g:before {\n content: \"\\f3a9\"; }\n\n.fa-google:before {\n content: \"\\f1a0\"; }\n\n.fa-google-drive:before {\n content: \"\\f3aa\"; }\n\n.fa-google-play:before {\n content: \"\\f3ab\"; }\n\n.fa-google-plus:before {\n content: \"\\f2b3\"; }\n\n.fa-google-plus-g:before {\n content: \"\\f0d5\"; }\n\n.fa-google-plus-square:before {\n content: \"\\f0d4\"; }\n\n.fa-google-wallet:before {\n content: \"\\f1ee\"; }\n\n.fa-gopuram:before {\n content: \"\\f664\"; }\n\n.fa-graduation-cap:before {\n content: \"\\f19d\"; }\n\n.fa-gratipay:before {\n content: \"\\f184\"; }\n\n.fa-grav:before {\n content: \"\\f2d6\"; }\n\n.fa-greater-than:before {\n content: \"\\f531\"; }\n\n.fa-greater-than-equal:before {\n content: \"\\f532\"; }\n\n.fa-grimace:before {\n content: \"\\f57f\"; }\n\n.fa-grin:before {\n content: \"\\f580\"; }\n\n.fa-grin-alt:before {\n content: \"\\f581\"; }\n\n.fa-grin-beam:before {\n content: \"\\f582\"; }\n\n.fa-grin-beam-sweat:before {\n content: \"\\f583\"; }\n\n.fa-grin-hearts:before {\n content: \"\\f584\"; }\n\n.fa-grin-squint:before {\n content: \"\\f585\"; }\n\n.fa-grin-squint-tears:before {\n content: \"\\f586\"; }\n\n.fa-grin-stars:before {\n content: \"\\f587\"; }\n\n.fa-grin-tears:before {\n content: \"\\f588\"; }\n\n.fa-grin-tongue:before {\n content: \"\\f589\"; }\n\n.fa-grin-tongue-squint:before {\n content: \"\\f58a\"; }\n\n.fa-grin-tongue-wink:before {\n content: \"\\f58b\"; }\n\n.fa-grin-wink:before {\n content: \"\\f58c\"; }\n\n.fa-grip-horizontal:before {\n content: \"\\f58d\"; }\n\n.fa-grip-lines:before {\n content: \"\\f7a4\"; }\n\n.fa-grip-lines-vertical:before {\n content: \"\\f7a5\"; }\n\n.fa-grip-vertical:before {\n content: \"\\f58e\"; }\n\n.fa-gripfire:before {\n content: \"\\f3ac\"; }\n\n.fa-grunt:before {\n content: \"\\f3ad\"; }\n\n.fa-guitar:before {\n content: \"\\f7a6\"; }\n\n.fa-gulp:before {\n content: \"\\f3ae\"; }\n\n.fa-h-square:before {\n content: \"\\f0fd\"; }\n\n.fa-hacker-news:before {\n content: \"\\f1d4\"; }\n\n.fa-hacker-news-square:before {\n content: \"\\f3af\"; }\n\n.fa-hackerrank:before {\n content: \"\\f5f7\"; }\n\n.fa-hamburger:before {\n content: \"\\f805\"; }\n\n.fa-hammer:before {\n content: \"\\f6e3\"; }\n\n.fa-hamsa:before {\n content: \"\\f665\"; }\n\n.fa-hand-holding:before {\n content: \"\\f4bd\"; }\n\n.fa-hand-holding-heart:before {\n content: \"\\f4be\"; }\n\n.fa-hand-holding-usd:before {\n content: \"\\f4c0\"; }\n\n.fa-hand-lizard:before {\n content: \"\\f258\"; }\n\n.fa-hand-middle-finger:before {\n content: \"\\f806\"; }\n\n.fa-hand-paper:before {\n content: \"\\f256\"; }\n\n.fa-hand-peace:before {\n content: \"\\f25b\"; }\n\n.fa-hand-point-down:before {\n content: \"\\f0a7\"; }\n\n.fa-hand-point-left:before {\n content: \"\\f0a5\"; }\n\n.fa-hand-point-right:before {\n content: \"\\f0a4\"; }\n\n.fa-hand-point-up:before {\n content: \"\\f0a6\"; }\n\n.fa-hand-pointer:before {\n content: \"\\f25a\"; }\n\n.fa-hand-rock:before {\n content: \"\\f255\"; }\n\n.fa-hand-scissors:before {\n content: \"\\f257\"; }\n\n.fa-hand-spock:before {\n content: \"\\f259\"; }\n\n.fa-hands:before {\n content: \"\\f4c2\"; }\n\n.fa-hands-helping:before {\n content: \"\\f4c4\"; }\n\n.fa-handshake:before {\n content: \"\\f2b5\"; }\n\n.fa-hanukiah:before {\n content: \"\\f6e6\"; }\n\n.fa-hard-hat:before {\n content: \"\\f807\"; }\n\n.fa-hashtag:before {\n content: \"\\f292\"; }\n\n.fa-hat-wizard:before {\n content: \"\\f6e8\"; }\n\n.fa-haykal:before {\n content: \"\\f666\"; }\n\n.fa-hdd:before {\n content: \"\\f0a0\"; }\n\n.fa-heading:before {\n content: \"\\f1dc\"; }\n\n.fa-headphones:before {\n content: \"\\f025\"; }\n\n.fa-headphones-alt:before {\n content: \"\\f58f\"; }\n\n.fa-headset:before {\n content: \"\\f590\"; }\n\n.fa-heart:before {\n content: \"\\f004\"; }\n\n.fa-heart-broken:before {\n content: \"\\f7a9\"; }\n\n.fa-heartbeat:before {\n content: \"\\f21e\"; }\n\n.fa-helicopter:before {\n content: \"\\f533\"; }\n\n.fa-highlighter:before {\n content: \"\\f591\"; }\n\n.fa-hiking:before {\n content: \"\\f6ec\"; }\n\n.fa-hippo:before {\n content: \"\\f6ed\"; }\n\n.fa-hips:before {\n content: \"\\f452\"; }\n\n.fa-hire-a-helper:before {\n content: \"\\f3b0\"; }\n\n.fa-history:before {\n content: \"\\f1da\"; }\n\n.fa-hockey-puck:before {\n content: \"\\f453\"; }\n\n.fa-holly-berry:before {\n content: \"\\f7aa\"; }\n\n.fa-home:before {\n content: \"\\f015\"; }\n\n.fa-hooli:before {\n content: \"\\f427\"; }\n\n.fa-hornbill:before {\n content: \"\\f592\"; }\n\n.fa-horse:before {\n content: \"\\f6f0\"; }\n\n.fa-horse-head:before {\n content: \"\\f7ab\"; }\n\n.fa-hospital:before {\n content: \"\\f0f8\"; }\n\n.fa-hospital-alt:before {\n content: \"\\f47d\"; }\n\n.fa-hospital-symbol:before {\n content: \"\\f47e\"; }\n\n.fa-hot-tub:before {\n content: \"\\f593\"; }\n\n.fa-hotdog:before {\n content: \"\\f80f\"; }\n\n.fa-hotel:before {\n content: \"\\f594\"; }\n\n.fa-hotjar:before {\n content: \"\\f3b1\"; }\n\n.fa-hourglass:before {\n content: \"\\f254\"; }\n\n.fa-hourglass-end:before {\n content: \"\\f253\"; }\n\n.fa-hourglass-half:before {\n content: \"\\f252\"; }\n\n.fa-hourglass-start:before {\n content: \"\\f251\"; }\n\n.fa-house-damage:before {\n content: \"\\f6f1\"; }\n\n.fa-houzz:before {\n content: \"\\f27c\"; }\n\n.fa-hryvnia:before {\n content: \"\\f6f2\"; }\n\n.fa-html5:before {\n content: \"\\f13b\"; }\n\n.fa-hubspot:before {\n content: \"\\f3b2\"; }\n\n.fa-i-cursor:before {\n content: \"\\f246\"; }\n\n.fa-ice-cream:before {\n content: \"\\f810\"; }\n\n.fa-icicles:before {\n content: \"\\f7ad\"; }\n\n.fa-id-badge:before {\n content: \"\\f2c1\"; }\n\n.fa-id-card:before {\n content: \"\\f2c2\"; }\n\n.fa-id-card-alt:before {\n content: \"\\f47f\"; }\n\n.fa-igloo:before {\n content: \"\\f7ae\"; }\n\n.fa-image:before {\n content: \"\\f03e\"; }\n\n.fa-images:before {\n content: \"\\f302\"; }\n\n.fa-imdb:before {\n content: \"\\f2d8\"; }\n\n.fa-inbox:before {\n content: \"\\f01c\"; }\n\n.fa-indent:before {\n content: \"\\f03c\"; }\n\n.fa-industry:before {\n content: \"\\f275\"; }\n\n.fa-infinity:before {\n content: \"\\f534\"; }\n\n.fa-info:before {\n content: \"\\f129\"; }\n\n.fa-info-circle:before {\n content: \"\\f05a\"; }\n\n.fa-instagram:before {\n content: \"\\f16d\"; }\n\n.fa-intercom:before {\n content: \"\\f7af\"; }\n\n.fa-internet-explorer:before {\n content: \"\\f26b\"; }\n\n.fa-invision:before {\n content: \"\\f7b0\"; }\n\n.fa-ioxhost:before {\n content: \"\\f208\"; }\n\n.fa-italic:before {\n content: \"\\f033\"; }\n\n.fa-itch-io:before {\n content: \"\\f83a\"; }\n\n.fa-itunes:before {\n content: \"\\f3b4\"; }\n\n.fa-itunes-note:before {\n content: \"\\f3b5\"; }\n\n.fa-java:before {\n content: \"\\f4e4\"; }\n\n.fa-jedi:before {\n content: \"\\f669\"; }\n\n.fa-jedi-order:before {\n content: \"\\f50e\"; }\n\n.fa-jenkins:before {\n content: \"\\f3b6\"; }\n\n.fa-jira:before {\n content: \"\\f7b1\"; }\n\n.fa-joget:before {\n content: \"\\f3b7\"; }\n\n.fa-joint:before {\n content: \"\\f595\"; }\n\n.fa-joomla:before {\n content: \"\\f1aa\"; }\n\n.fa-journal-whills:before {\n content: \"\\f66a\"; }\n\n.fa-js:before {\n content: \"\\f3b8\"; }\n\n.fa-js-square:before {\n content: \"\\f3b9\"; }\n\n.fa-jsfiddle:before {\n content: \"\\f1cc\"; }\n\n.fa-kaaba:before {\n content: \"\\f66b\"; }\n\n.fa-kaggle:before {\n content: \"\\f5fa\"; }\n\n.fa-key:before {\n content: \"\\f084\"; }\n\n.fa-keybase:before {\n content: \"\\f4f5\"; }\n\n.fa-keyboard:before {\n content: \"\\f11c\"; }\n\n.fa-keycdn:before {\n content: \"\\f3ba\"; }\n\n.fa-khanda:before {\n content: \"\\f66d\"; }\n\n.fa-kickstarter:before {\n content: \"\\f3bb\"; }\n\n.fa-kickstarter-k:before {\n content: \"\\f3bc\"; }\n\n.fa-kiss:before {\n content: \"\\f596\"; }\n\n.fa-kiss-beam:before {\n content: \"\\f597\"; }\n\n.fa-kiss-wink-heart:before {\n content: \"\\f598\"; }\n\n.fa-kiwi-bird:before {\n content: \"\\f535\"; }\n\n.fa-korvue:before {\n content: \"\\f42f\"; }\n\n.fa-landmark:before {\n content: \"\\f66f\"; }\n\n.fa-language:before {\n content: \"\\f1ab\"; }\n\n.fa-laptop:before {\n content: \"\\f109\"; }\n\n.fa-laptop-code:before {\n content: \"\\f5fc\"; }\n\n.fa-laptop-medical:before {\n content: \"\\f812\"; }\n\n.fa-laravel:before {\n content: \"\\f3bd\"; }\n\n.fa-lastfm:before {\n content: \"\\f202\"; }\n\n.fa-lastfm-square:before {\n content: \"\\f203\"; }\n\n.fa-laugh:before {\n content: \"\\f599\"; }\n\n.fa-laugh-beam:before {\n content: \"\\f59a\"; }\n\n.fa-laugh-squint:before {\n content: \"\\f59b\"; }\n\n.fa-laugh-wink:before {\n content: \"\\f59c\"; }\n\n.fa-layer-group:before {\n content: \"\\f5fd\"; }\n\n.fa-leaf:before {\n content: \"\\f06c\"; }\n\n.fa-leanpub:before {\n content: \"\\f212\"; }\n\n.fa-lemon:before {\n content: \"\\f094\"; }\n\n.fa-less:before {\n content: \"\\f41d\"; }\n\n.fa-less-than:before {\n content: \"\\f536\"; }\n\n.fa-less-than-equal:before {\n content: \"\\f537\"; }\n\n.fa-level-down-alt:before {\n content: \"\\f3be\"; }\n\n.fa-level-up-alt:before {\n content: \"\\f3bf\"; }\n\n.fa-life-ring:before {\n content: \"\\f1cd\"; }\n\n.fa-lightbulb:before {\n content: \"\\f0eb\"; }\n\n.fa-line:before {\n content: \"\\f3c0\"; }\n\n.fa-link:before {\n content: \"\\f0c1\"; }\n\n.fa-linkedin:before {\n content: \"\\f08c\"; }\n\n.fa-linkedin-in:before {\n content: \"\\f0e1\"; }\n\n.fa-linode:before {\n content: \"\\f2b8\"; }\n\n.fa-linux:before {\n content: \"\\f17c\"; }\n\n.fa-lira-sign:before {\n content: \"\\f195\"; }\n\n.fa-list:before {\n content: \"\\f03a\"; }\n\n.fa-list-alt:before {\n content: \"\\f022\"; }\n\n.fa-list-ol:before {\n content: \"\\f0cb\"; }\n\n.fa-list-ul:before {\n content: \"\\f0ca\"; }\n\n.fa-location-arrow:before {\n content: \"\\f124\"; }\n\n.fa-lock:before {\n content: \"\\f023\"; }\n\n.fa-lock-open:before {\n content: \"\\f3c1\"; }\n\n.fa-long-arrow-alt-down:before {\n content: \"\\f309\"; }\n\n.fa-long-arrow-alt-left:before {\n content: \"\\f30a\"; }\n\n.fa-long-arrow-alt-right:before {\n content: \"\\f30b\"; }\n\n.fa-long-arrow-alt-up:before {\n content: \"\\f30c\"; }\n\n.fa-low-vision:before {\n content: \"\\f2a8\"; }\n\n.fa-luggage-cart:before {\n content: \"\\f59d\"; }\n\n.fa-lyft:before {\n content: \"\\f3c3\"; }\n\n.fa-magento:before {\n content: \"\\f3c4\"; }\n\n.fa-magic:before {\n content: \"\\f0d0\"; }\n\n.fa-magnet:before {\n content: \"\\f076\"; }\n\n.fa-mail-bulk:before {\n content: \"\\f674\"; }\n\n.fa-mailchimp:before {\n content: \"\\f59e\"; }\n\n.fa-male:before {\n content: \"\\f183\"; }\n\n.fa-mandalorian:before {\n content: \"\\f50f\"; }\n\n.fa-map:before {\n content: \"\\f279\"; }\n\n.fa-map-marked:before {\n content: \"\\f59f\"; }\n\n.fa-map-marked-alt:before {\n content: \"\\f5a0\"; }\n\n.fa-map-marker:before {\n content: \"\\f041\"; }\n\n.fa-map-marker-alt:before {\n content: \"\\f3c5\"; }\n\n.fa-map-pin:before {\n content: \"\\f276\"; }\n\n.fa-map-signs:before {\n content: \"\\f277\"; }\n\n.fa-markdown:before {\n content: \"\\f60f\"; }\n\n.fa-marker:before {\n content: \"\\f5a1\"; }\n\n.fa-mars:before {\n content: \"\\f222\"; }\n\n.fa-mars-double:before {\n content: \"\\f227\"; }\n\n.fa-mars-stroke:before {\n content: \"\\f229\"; }\n\n.fa-mars-stroke-h:before {\n content: \"\\f22b\"; }\n\n.fa-mars-stroke-v:before {\n content: \"\\f22a\"; }\n\n.fa-mask:before {\n content: \"\\f6fa\"; }\n\n.fa-mastodon:before {\n content: \"\\f4f6\"; }\n\n.fa-maxcdn:before {\n content: \"\\f136\"; }\n\n.fa-medal:before {\n content: \"\\f5a2\"; }\n\n.fa-medapps:before {\n content: \"\\f3c6\"; }\n\n.fa-medium:before {\n content: \"\\f23a\"; }\n\n.fa-medium-m:before {\n content: \"\\f3c7\"; }\n\n.fa-medkit:before {\n content: \"\\f0fa\"; }\n\n.fa-medrt:before {\n content: \"\\f3c8\"; }\n\n.fa-meetup:before {\n content: \"\\f2e0\"; }\n\n.fa-megaport:before {\n content: \"\\f5a3\"; }\n\n.fa-meh:before {\n content: \"\\f11a\"; }\n\n.fa-meh-blank:before {\n content: \"\\f5a4\"; }\n\n.fa-meh-rolling-eyes:before {\n content: \"\\f5a5\"; }\n\n.fa-memory:before {\n content: \"\\f538\"; }\n\n.fa-mendeley:before {\n content: \"\\f7b3\"; }\n\n.fa-menorah:before {\n content: \"\\f676\"; }\n\n.fa-mercury:before {\n content: \"\\f223\"; }\n\n.fa-meteor:before {\n content: \"\\f753\"; }\n\n.fa-microchip:before {\n content: \"\\f2db\"; }\n\n.fa-microphone:before {\n content: \"\\f130\"; }\n\n.fa-microphone-alt:before {\n content: \"\\f3c9\"; }\n\n.fa-microphone-alt-slash:before {\n content: \"\\f539\"; }\n\n.fa-microphone-slash:before {\n content: \"\\f131\"; }\n\n.fa-microscope:before {\n content: \"\\f610\"; }\n\n.fa-microsoft:before {\n content: \"\\f3ca\"; }\n\n.fa-minus:before {\n content: \"\\f068\"; }\n\n.fa-minus-circle:before {\n content: \"\\f056\"; }\n\n.fa-minus-square:before {\n content: \"\\f146\"; }\n\n.fa-mitten:before {\n content: \"\\f7b5\"; }\n\n.fa-mix:before {\n content: \"\\f3cb\"; }\n\n.fa-mixcloud:before {\n content: \"\\f289\"; }\n\n.fa-mizuni:before {\n content: \"\\f3cc\"; }\n\n.fa-mobile:before {\n content: \"\\f10b\"; }\n\n.fa-mobile-alt:before {\n content: \"\\f3cd\"; }\n\n.fa-modx:before {\n content: \"\\f285\"; }\n\n.fa-monero:before {\n content: \"\\f3d0\"; }\n\n.fa-money-bill:before {\n content: \"\\f0d6\"; }\n\n.fa-money-bill-alt:before {\n content: \"\\f3d1\"; }\n\n.fa-money-bill-wave:before {\n content: \"\\f53a\"; }\n\n.fa-money-bill-wave-alt:before {\n content: \"\\f53b\"; }\n\n.fa-money-check:before {\n content: \"\\f53c\"; }\n\n.fa-money-check-alt:before {\n content: \"\\f53d\"; }\n\n.fa-monument:before {\n content: \"\\f5a6\"; }\n\n.fa-moon:before {\n content: \"\\f186\"; }\n\n.fa-mortar-pestle:before {\n content: \"\\f5a7\"; }\n\n.fa-mosque:before {\n content: \"\\f678\"; }\n\n.fa-motorcycle:before {\n content: \"\\f21c\"; }\n\n.fa-mountain:before {\n content: \"\\f6fc\"; }\n\n.fa-mouse-pointer:before {\n content: \"\\f245\"; }\n\n.fa-mug-hot:before {\n content: \"\\f7b6\"; }\n\n.fa-music:before {\n content: \"\\f001\"; }\n\n.fa-napster:before {\n content: \"\\f3d2\"; }\n\n.fa-neos:before {\n content: \"\\f612\"; }\n\n.fa-network-wired:before {\n content: \"\\f6ff\"; }\n\n.fa-neuter:before {\n content: \"\\f22c\"; }\n\n.fa-newspaper:before {\n content: \"\\f1ea\"; }\n\n.fa-nimblr:before {\n content: \"\\f5a8\"; }\n\n.fa-nintendo-switch:before {\n content: \"\\f418\"; }\n\n.fa-node:before {\n content: \"\\f419\"; }\n\n.fa-node-js:before {\n content: \"\\f3d3\"; }\n\n.fa-not-equal:before {\n content: \"\\f53e\"; }\n\n.fa-notes-medical:before {\n content: \"\\f481\"; }\n\n.fa-npm:before {\n content: \"\\f3d4\"; }\n\n.fa-ns8:before {\n content: \"\\f3d5\"; }\n\n.fa-nutritionix:before {\n content: \"\\f3d6\"; }\n\n.fa-object-group:before {\n content: \"\\f247\"; }\n\n.fa-object-ungroup:before {\n content: \"\\f248\"; }\n\n.fa-odnoklassniki:before {\n content: \"\\f263\"; }\n\n.fa-odnoklassniki-square:before {\n content: \"\\f264\"; }\n\n.fa-oil-can:before {\n content: \"\\f613\"; }\n\n.fa-old-republic:before {\n content: \"\\f510\"; }\n\n.fa-om:before {\n content: \"\\f679\"; }\n\n.fa-opencart:before {\n content: \"\\f23d\"; }\n\n.fa-openid:before {\n content: \"\\f19b\"; }\n\n.fa-opera:before {\n content: \"\\f26a\"; }\n\n.fa-optin-monster:before {\n content: \"\\f23c\"; }\n\n.fa-osi:before {\n content: \"\\f41a\"; }\n\n.fa-otter:before {\n content: \"\\f700\"; }\n\n.fa-outdent:before {\n content: \"\\f03b\"; }\n\n.fa-page4:before {\n content: \"\\f3d7\"; }\n\n.fa-pagelines:before {\n content: \"\\f18c\"; }\n\n.fa-pager:before {\n content: \"\\f815\"; }\n\n.fa-paint-brush:before {\n content: \"\\f1fc\"; }\n\n.fa-paint-roller:before {\n content: \"\\f5aa\"; }\n\n.fa-palette:before {\n content: \"\\f53f\"; }\n\n.fa-palfed:before {\n content: \"\\f3d8\"; }\n\n.fa-pallet:before {\n content: \"\\f482\"; }\n\n.fa-paper-plane:before {\n content: \"\\f1d8\"; }\n\n.fa-paperclip:before {\n content: \"\\f0c6\"; }\n\n.fa-parachute-box:before {\n content: \"\\f4cd\"; }\n\n.fa-paragraph:before {\n content: \"\\f1dd\"; }\n\n.fa-parking:before {\n content: \"\\f540\"; }\n\n.fa-passport:before {\n content: \"\\f5ab\"; }\n\n.fa-pastafarianism:before {\n content: \"\\f67b\"; }\n\n.fa-paste:before {\n content: \"\\f0ea\"; }\n\n.fa-patreon:before {\n content: \"\\f3d9\"; }\n\n.fa-pause:before {\n content: \"\\f04c\"; }\n\n.fa-pause-circle:before {\n content: \"\\f28b\"; }\n\n.fa-paw:before {\n content: \"\\f1b0\"; }\n\n.fa-paypal:before {\n content: \"\\f1ed\"; }\n\n.fa-peace:before {\n content: \"\\f67c\"; }\n\n.fa-pen:before {\n content: \"\\f304\"; }\n\n.fa-pen-alt:before {\n content: \"\\f305\"; }\n\n.fa-pen-fancy:before {\n content: \"\\f5ac\"; }\n\n.fa-pen-nib:before {\n content: \"\\f5ad\"; }\n\n.fa-pen-square:before {\n content: \"\\f14b\"; }\n\n.fa-pencil-alt:before {\n content: \"\\f303\"; }\n\n.fa-pencil-ruler:before {\n content: \"\\f5ae\"; }\n\n.fa-penny-arcade:before {\n content: \"\\f704\"; }\n\n.fa-people-carry:before {\n content: \"\\f4ce\"; }\n\n.fa-pepper-hot:before {\n content: \"\\f816\"; }\n\n.fa-percent:before {\n content: \"\\f295\"; }\n\n.fa-percentage:before {\n content: \"\\f541\"; }\n\n.fa-periscope:before {\n content: \"\\f3da\"; }\n\n.fa-person-booth:before {\n content: \"\\f756\"; }\n\n.fa-phabricator:before {\n content: \"\\f3db\"; }\n\n.fa-phoenix-framework:before {\n content: \"\\f3dc\"; }\n\n.fa-phoenix-squadron:before {\n content: \"\\f511\"; }\n\n.fa-phone:before {\n content: \"\\f095\"; }\n\n.fa-phone-slash:before {\n content: \"\\f3dd\"; }\n\n.fa-phone-square:before {\n content: \"\\f098\"; }\n\n.fa-phone-volume:before {\n content: \"\\f2a0\"; }\n\n.fa-php:before {\n content: \"\\f457\"; }\n\n.fa-pied-piper:before {\n content: \"\\f2ae\"; }\n\n.fa-pied-piper-alt:before {\n content: \"\\f1a8\"; }\n\n.fa-pied-piper-hat:before {\n content: \"\\f4e5\"; }\n\n.fa-pied-piper-pp:before {\n content: \"\\f1a7\"; }\n\n.fa-piggy-bank:before {\n content: \"\\f4d3\"; }\n\n.fa-pills:before {\n content: \"\\f484\"; }\n\n.fa-pinterest:before {\n content: \"\\f0d2\"; }\n\n.fa-pinterest-p:before {\n content: \"\\f231\"; }\n\n.fa-pinterest-square:before {\n content: \"\\f0d3\"; }\n\n.fa-pizza-slice:before {\n content: \"\\f818\"; }\n\n.fa-place-of-worship:before {\n content: \"\\f67f\"; }\n\n.fa-plane:before {\n content: \"\\f072\"; }\n\n.fa-plane-arrival:before {\n content: \"\\f5af\"; }\n\n.fa-plane-departure:before {\n content: \"\\f5b0\"; }\n\n.fa-play:before {\n content: \"\\f04b\"; }\n\n.fa-play-circle:before {\n content: \"\\f144\"; }\n\n.fa-playstation:before {\n content: \"\\f3df\"; }\n\n.fa-plug:before {\n content: \"\\f1e6\"; }\n\n.fa-plus:before {\n content: \"\\f067\"; }\n\n.fa-plus-circle:before {\n content: \"\\f055\"; }\n\n.fa-plus-square:before {\n content: \"\\f0fe\"; }\n\n.fa-podcast:before {\n content: \"\\f2ce\"; }\n\n.fa-poll:before {\n content: \"\\f681\"; }\n\n.fa-poll-h:before {\n content: \"\\f682\"; }\n\n.fa-poo:before {\n content: \"\\f2fe\"; }\n\n.fa-poo-storm:before {\n content: \"\\f75a\"; }\n\n.fa-poop:before {\n content: \"\\f619\"; }\n\n.fa-portrait:before {\n content: \"\\f3e0\"; }\n\n.fa-pound-sign:before {\n content: \"\\f154\"; }\n\n.fa-power-off:before {\n content: \"\\f011\"; }\n\n.fa-pray:before {\n content: \"\\f683\"; }\n\n.fa-praying-hands:before {\n content: \"\\f684\"; }\n\n.fa-prescription:before {\n content: \"\\f5b1\"; }\n\n.fa-prescription-bottle:before {\n content: \"\\f485\"; }\n\n.fa-prescription-bottle-alt:before {\n content: \"\\f486\"; }\n\n.fa-print:before {\n content: \"\\f02f\"; }\n\n.fa-procedures:before {\n content: \"\\f487\"; }\n\n.fa-product-hunt:before {\n content: \"\\f288\"; }\n\n.fa-project-diagram:before {\n content: \"\\f542\"; }\n\n.fa-pushed:before {\n content: \"\\f3e1\"; }\n\n.fa-puzzle-piece:before {\n content: \"\\f12e\"; }\n\n.fa-python:before {\n content: \"\\f3e2\"; }\n\n.fa-qq:before {\n content: \"\\f1d6\"; }\n\n.fa-qrcode:before {\n content: \"\\f029\"; }\n\n.fa-question:before {\n content: \"\\f128\"; }\n\n.fa-question-circle:before {\n content: \"\\f059\"; }\n\n.fa-quidditch:before {\n content: \"\\f458\"; }\n\n.fa-quinscape:before {\n content: \"\\f459\"; }\n\n.fa-quora:before {\n content: \"\\f2c4\"; }\n\n.fa-quote-left:before {\n content: \"\\f10d\"; }\n\n.fa-quote-right:before {\n content: \"\\f10e\"; }\n\n.fa-quran:before {\n content: \"\\f687\"; }\n\n.fa-r-project:before {\n content: \"\\f4f7\"; }\n\n.fa-radiation:before {\n content: \"\\f7b9\"; }\n\n.fa-radiation-alt:before {\n content: \"\\f7ba\"; }\n\n.fa-rainbow:before {\n content: \"\\f75b\"; }\n\n.fa-random:before {\n content: \"\\f074\"; }\n\n.fa-raspberry-pi:before {\n content: \"\\f7bb\"; }\n\n.fa-ravelry:before {\n content: \"\\f2d9\"; }\n\n.fa-react:before {\n content: \"\\f41b\"; }\n\n.fa-reacteurope:before {\n content: \"\\f75d\"; }\n\n.fa-readme:before {\n content: \"\\f4d5\"; }\n\n.fa-rebel:before {\n content: \"\\f1d0\"; }\n\n.fa-receipt:before {\n content: \"\\f543\"; }\n\n.fa-recycle:before {\n content: \"\\f1b8\"; }\n\n.fa-red-river:before {\n content: \"\\f3e3\"; }\n\n.fa-reddit:before {\n content: \"\\f1a1\"; }\n\n.fa-reddit-alien:before {\n content: \"\\f281\"; }\n\n.fa-reddit-square:before {\n content: \"\\f1a2\"; }\n\n.fa-redhat:before {\n content: \"\\f7bc\"; }\n\n.fa-redo:before {\n content: \"\\f01e\"; }\n\n.fa-redo-alt:before {\n content: \"\\f2f9\"; }\n\n.fa-registered:before {\n content: \"\\f25d\"; }\n\n.fa-renren:before {\n content: \"\\f18b\"; }\n\n.fa-reply:before {\n content: \"\\f3e5\"; }\n\n.fa-reply-all:before {\n content: \"\\f122\"; }\n\n.fa-replyd:before {\n content: \"\\f3e6\"; }\n\n.fa-republican:before {\n content: \"\\f75e\"; }\n\n.fa-researchgate:before {\n content: \"\\f4f8\"; }\n\n.fa-resolving:before {\n content: \"\\f3e7\"; }\n\n.fa-restroom:before {\n content: \"\\f7bd\"; }\n\n.fa-retweet:before {\n content: \"\\f079\"; }\n\n.fa-rev:before {\n content: \"\\f5b2\"; }\n\n.fa-ribbon:before {\n content: \"\\f4d6\"; }\n\n.fa-ring:before {\n content: \"\\f70b\"; }\n\n.fa-road:before {\n content: \"\\f018\"; }\n\n.fa-robot:before {\n content: \"\\f544\"; }\n\n.fa-rocket:before {\n content: \"\\f135\"; }\n\n.fa-rocketchat:before {\n content: \"\\f3e8\"; }\n\n.fa-rockrms:before {\n content: \"\\f3e9\"; }\n\n.fa-route:before {\n content: \"\\f4d7\"; }\n\n.fa-rss:before {\n content: \"\\f09e\"; }\n\n.fa-rss-square:before {\n content: \"\\f143\"; }\n\n.fa-ruble-sign:before {\n content: \"\\f158\"; }\n\n.fa-ruler:before {\n content: \"\\f545\"; }\n\n.fa-ruler-combined:before {\n content: \"\\f546\"; }\n\n.fa-ruler-horizontal:before {\n content: \"\\f547\"; }\n\n.fa-ruler-vertical:before {\n content: \"\\f548\"; }\n\n.fa-running:before {\n content: \"\\f70c\"; }\n\n.fa-rupee-sign:before {\n content: \"\\f156\"; }\n\n.fa-sad-cry:before {\n content: \"\\f5b3\"; }\n\n.fa-sad-tear:before {\n content: \"\\f5b4\"; }\n\n.fa-safari:before {\n content: \"\\f267\"; }\n\n.fa-salesforce:before {\n content: \"\\f83b\"; }\n\n.fa-sass:before {\n content: \"\\f41e\"; }\n\n.fa-satellite:before {\n content: \"\\f7bf\"; }\n\n.fa-satellite-dish:before {\n content: \"\\f7c0\"; }\n\n.fa-save:before {\n content: \"\\f0c7\"; }\n\n.fa-schlix:before {\n content: \"\\f3ea\"; }\n\n.fa-school:before {\n content: \"\\f549\"; }\n\n.fa-screwdriver:before {\n content: \"\\f54a\"; }\n\n.fa-scribd:before {\n content: \"\\f28a\"; }\n\n.fa-scroll:before {\n content: \"\\f70e\"; }\n\n.fa-sd-card:before {\n content: \"\\f7c2\"; }\n\n.fa-search:before {\n content: \"\\f002\"; }\n\n.fa-search-dollar:before {\n content: \"\\f688\"; }\n\n.fa-search-location:before {\n content: \"\\f689\"; }\n\n.fa-search-minus:before {\n content: \"\\f010\"; }\n\n.fa-search-plus:before {\n content: \"\\f00e\"; }\n\n.fa-searchengin:before {\n content: \"\\f3eb\"; }\n\n.fa-seedling:before {\n content: \"\\f4d8\"; }\n\n.fa-sellcast:before {\n content: \"\\f2da\"; }\n\n.fa-sellsy:before {\n content: \"\\f213\"; }\n\n.fa-server:before {\n content: \"\\f233\"; }\n\n.fa-servicestack:before {\n content: \"\\f3ec\"; }\n\n.fa-shapes:before {\n content: \"\\f61f\"; }\n\n.fa-share:before {\n content: \"\\f064\"; }\n\n.fa-share-alt:before {\n content: \"\\f1e0\"; }\n\n.fa-share-alt-square:before {\n content: \"\\f1e1\"; }\n\n.fa-share-square:before {\n content: \"\\f14d\"; }\n\n.fa-shekel-sign:before {\n content: \"\\f20b\"; }\n\n.fa-shield-alt:before {\n content: \"\\f3ed\"; }\n\n.fa-ship:before {\n content: \"\\f21a\"; }\n\n.fa-shipping-fast:before {\n content: \"\\f48b\"; }\n\n.fa-shirtsinbulk:before {\n content: \"\\f214\"; }\n\n.fa-shoe-prints:before {\n content: \"\\f54b\"; }\n\n.fa-shopping-bag:before {\n content: \"\\f290\"; }\n\n.fa-shopping-basket:before {\n content: \"\\f291\"; }\n\n.fa-shopping-cart:before {\n content: \"\\f07a\"; }\n\n.fa-shopware:before {\n content: \"\\f5b5\"; }\n\n.fa-shower:before {\n content: \"\\f2cc\"; }\n\n.fa-shuttle-van:before {\n content: \"\\f5b6\"; }\n\n.fa-sign:before {\n content: \"\\f4d9\"; }\n\n.fa-sign-in-alt:before {\n content: \"\\f2f6\"; }\n\n.fa-sign-language:before {\n content: \"\\f2a7\"; }\n\n.fa-sign-out-alt:before {\n content: \"\\f2f5\"; }\n\n.fa-signal:before {\n content: \"\\f012\"; }\n\n.fa-signature:before {\n content: \"\\f5b7\"; }\n\n.fa-sim-card:before {\n content: \"\\f7c4\"; }\n\n.fa-simplybuilt:before {\n content: \"\\f215\"; }\n\n.fa-sistrix:before {\n content: \"\\f3ee\"; }\n\n.fa-sitemap:before {\n content: \"\\f0e8\"; }\n\n.fa-sith:before {\n content: \"\\f512\"; }\n\n.fa-skating:before {\n content: \"\\f7c5\"; }\n\n.fa-sketch:before {\n content: \"\\f7c6\"; }\n\n.fa-skiing:before {\n content: \"\\f7c9\"; }\n\n.fa-skiing-nordic:before {\n content: \"\\f7ca\"; }\n\n.fa-skull:before {\n content: \"\\f54c\"; }\n\n.fa-skull-crossbones:before {\n content: \"\\f714\"; }\n\n.fa-skyatlas:before {\n content: \"\\f216\"; }\n\n.fa-skype:before {\n content: \"\\f17e\"; }\n\n.fa-slack:before {\n content: \"\\f198\"; }\n\n.fa-slack-hash:before {\n content: \"\\f3ef\"; }\n\n.fa-slash:before {\n content: \"\\f715\"; }\n\n.fa-sleigh:before {\n content: \"\\f7cc\"; }\n\n.fa-sliders-h:before {\n content: \"\\f1de\"; }\n\n.fa-slideshare:before {\n content: \"\\f1e7\"; }\n\n.fa-smile:before {\n content: \"\\f118\"; }\n\n.fa-smile-beam:before {\n content: \"\\f5b8\"; }\n\n.fa-smile-wink:before {\n content: \"\\f4da\"; }\n\n.fa-smog:before {\n content: \"\\f75f\"; }\n\n.fa-smoking:before {\n content: \"\\f48d\"; }\n\n.fa-smoking-ban:before {\n content: \"\\f54d\"; }\n\n.fa-sms:before {\n content: \"\\f7cd\"; }\n\n.fa-snapchat:before {\n content: \"\\f2ab\"; }\n\n.fa-snapchat-ghost:before {\n content: \"\\f2ac\"; }\n\n.fa-snapchat-square:before {\n content: \"\\f2ad\"; }\n\n.fa-snowboarding:before {\n content: \"\\f7ce\"; }\n\n.fa-snowflake:before {\n content: \"\\f2dc\"; }\n\n.fa-snowman:before {\n content: \"\\f7d0\"; }\n\n.fa-snowplow:before {\n content: \"\\f7d2\"; }\n\n.fa-socks:before {\n content: \"\\f696\"; }\n\n.fa-solar-panel:before {\n content: \"\\f5ba\"; }\n\n.fa-sort:before {\n content: \"\\f0dc\"; }\n\n.fa-sort-alpha-down:before {\n content: \"\\f15d\"; }\n\n.fa-sort-alpha-up:before {\n content: \"\\f15e\"; }\n\n.fa-sort-amount-down:before {\n content: \"\\f160\"; }\n\n.fa-sort-amount-up:before {\n content: \"\\f161\"; }\n\n.fa-sort-down:before {\n content: \"\\f0dd\"; }\n\n.fa-sort-numeric-down:before {\n content: \"\\f162\"; }\n\n.fa-sort-numeric-up:before {\n content: \"\\f163\"; }\n\n.fa-sort-up:before {\n content: \"\\f0de\"; }\n\n.fa-soundcloud:before {\n content: \"\\f1be\"; }\n\n.fa-sourcetree:before {\n content: \"\\f7d3\"; }\n\n.fa-spa:before {\n content: \"\\f5bb\"; }\n\n.fa-space-shuttle:before {\n content: \"\\f197\"; }\n\n.fa-speakap:before {\n content: \"\\f3f3\"; }\n\n.fa-speaker-deck:before {\n content: \"\\f83c\"; }\n\n.fa-spider:before {\n content: \"\\f717\"; }\n\n.fa-spinner:before {\n content: \"\\f110\"; }\n\n.fa-splotch:before {\n content: \"\\f5bc\"; }\n\n.fa-spotify:before {\n content: \"\\f1bc\"; }\n\n.fa-spray-can:before {\n content: \"\\f5bd\"; }\n\n.fa-square:before {\n content: \"\\f0c8\"; }\n\n.fa-square-full:before {\n content: \"\\f45c\"; }\n\n.fa-square-root-alt:before {\n content: \"\\f698\"; }\n\n.fa-squarespace:before {\n content: \"\\f5be\"; }\n\n.fa-stack-exchange:before {\n content: \"\\f18d\"; }\n\n.fa-stack-overflow:before {\n content: \"\\f16c\"; }\n\n.fa-stackpath:before {\n content: \"\\f842\"; }\n\n.fa-stamp:before {\n content: \"\\f5bf\"; }\n\n.fa-star:before {\n content: \"\\f005\"; }\n\n.fa-star-and-crescent:before {\n content: \"\\f699\"; }\n\n.fa-star-half:before {\n content: \"\\f089\"; }\n\n.fa-star-half-alt:before {\n content: \"\\f5c0\"; }\n\n.fa-star-of-david:before {\n content: \"\\f69a\"; }\n\n.fa-star-of-life:before {\n content: \"\\f621\"; }\n\n.fa-staylinked:before {\n content: \"\\f3f5\"; }\n\n.fa-steam:before {\n content: \"\\f1b6\"; }\n\n.fa-steam-square:before {\n content: \"\\f1b7\"; }\n\n.fa-steam-symbol:before {\n content: \"\\f3f6\"; }\n\n.fa-step-backward:before {\n content: \"\\f048\"; }\n\n.fa-step-forward:before {\n content: \"\\f051\"; }\n\n.fa-stethoscope:before {\n content: \"\\f0f1\"; }\n\n.fa-sticker-mule:before {\n content: \"\\f3f7\"; }\n\n.fa-sticky-note:before {\n content: \"\\f249\"; }\n\n.fa-stop:before {\n content: \"\\f04d\"; }\n\n.fa-stop-circle:before {\n content: \"\\f28d\"; }\n\n.fa-stopwatch:before {\n content: \"\\f2f2\"; }\n\n.fa-store:before {\n content: \"\\f54e\"; }\n\n.fa-store-alt:before {\n content: \"\\f54f\"; }\n\n.fa-strava:before {\n content: \"\\f428\"; }\n\n.fa-stream:before {\n content: \"\\f550\"; }\n\n.fa-street-view:before {\n content: \"\\f21d\"; }\n\n.fa-strikethrough:before {\n content: \"\\f0cc\"; }\n\n.fa-stripe:before {\n content: \"\\f429\"; }\n\n.fa-stripe-s:before {\n content: \"\\f42a\"; }\n\n.fa-stroopwafel:before {\n content: \"\\f551\"; }\n\n.fa-studiovinari:before {\n content: \"\\f3f8\"; }\n\n.fa-stumbleupon:before {\n content: \"\\f1a4\"; }\n\n.fa-stumbleupon-circle:before {\n content: \"\\f1a3\"; }\n\n.fa-subscript:before {\n content: \"\\f12c\"; }\n\n.fa-subway:before {\n content: \"\\f239\"; }\n\n.fa-suitcase:before {\n content: \"\\f0f2\"; }\n\n.fa-suitcase-rolling:before {\n content: \"\\f5c1\"; }\n\n.fa-sun:before {\n content: \"\\f185\"; }\n\n.fa-superpowers:before {\n content: \"\\f2dd\"; }\n\n.fa-superscript:before {\n content: \"\\f12b\"; }\n\n.fa-supple:before {\n content: \"\\f3f9\"; }\n\n.fa-surprise:before {\n content: \"\\f5c2\"; }\n\n.fa-suse:before {\n content: \"\\f7d6\"; }\n\n.fa-swatchbook:before {\n content: \"\\f5c3\"; }\n\n.fa-swimmer:before {\n content: \"\\f5c4\"; }\n\n.fa-swimming-pool:before {\n content: \"\\f5c5\"; }\n\n.fa-symfony:before {\n content: \"\\f83d\"; }\n\n.fa-synagogue:before {\n content: \"\\f69b\"; }\n\n.fa-sync:before {\n content: \"\\f021\"; }\n\n.fa-sync-alt:before {\n content: \"\\f2f1\"; }\n\n.fa-syringe:before {\n content: \"\\f48e\"; }\n\n.fa-table:before {\n content: \"\\f0ce\"; }\n\n.fa-table-tennis:before {\n content: \"\\f45d\"; }\n\n.fa-tablet:before {\n content: \"\\f10a\"; }\n\n.fa-tablet-alt:before {\n content: \"\\f3fa\"; }\n\n.fa-tablets:before {\n content: \"\\f490\"; }\n\n.fa-tachometer-alt:before {\n content: \"\\f3fd\"; }\n\n.fa-tag:before {\n content: \"\\f02b\"; }\n\n.fa-tags:before {\n content: \"\\f02c\"; }\n\n.fa-tape:before {\n content: \"\\f4db\"; }\n\n.fa-tasks:before {\n content: \"\\f0ae\"; }\n\n.fa-taxi:before {\n content: \"\\f1ba\"; }\n\n.fa-teamspeak:before {\n content: \"\\f4f9\"; }\n\n.fa-teeth:before {\n content: \"\\f62e\"; }\n\n.fa-teeth-open:before {\n content: \"\\f62f\"; }\n\n.fa-telegram:before {\n content: \"\\f2c6\"; }\n\n.fa-telegram-plane:before {\n content: \"\\f3fe\"; }\n\n.fa-temperature-high:before {\n content: \"\\f769\"; }\n\n.fa-temperature-low:before {\n content: \"\\f76b\"; }\n\n.fa-tencent-weibo:before {\n content: \"\\f1d5\"; }\n\n.fa-tenge:before {\n content: \"\\f7d7\"; }\n\n.fa-terminal:before {\n content: \"\\f120\"; }\n\n.fa-text-height:before {\n content: \"\\f034\"; }\n\n.fa-text-width:before {\n content: \"\\f035\"; }\n\n.fa-th:before {\n content: \"\\f00a\"; }\n\n.fa-th-large:before {\n content: \"\\f009\"; }\n\n.fa-th-list:before {\n content: \"\\f00b\"; }\n\n.fa-the-red-yeti:before {\n content: \"\\f69d\"; }\n\n.fa-theater-masks:before {\n content: \"\\f630\"; }\n\n.fa-themeco:before {\n content: \"\\f5c6\"; }\n\n.fa-themeisle:before {\n content: \"\\f2b2\"; }\n\n.fa-thermometer:before {\n content: \"\\f491\"; }\n\n.fa-thermometer-empty:before {\n content: \"\\f2cb\"; }\n\n.fa-thermometer-full:before {\n content: \"\\f2c7\"; }\n\n.fa-thermometer-half:before {\n content: \"\\f2c9\"; }\n\n.fa-thermometer-quarter:before {\n content: \"\\f2ca\"; }\n\n.fa-thermometer-three-quarters:before {\n content: \"\\f2c8\"; }\n\n.fa-think-peaks:before {\n content: \"\\f731\"; }\n\n.fa-thumbs-down:before {\n content: \"\\f165\"; }\n\n.fa-thumbs-up:before {\n content: \"\\f164\"; }\n\n.fa-thumbtack:before {\n content: \"\\f08d\"; }\n\n.fa-ticket-alt:before {\n content: \"\\f3ff\"; }\n\n.fa-times:before {\n content: \"\\f00d\"; }\n\n.fa-times-circle:before {\n content: \"\\f057\"; }\n\n.fa-tint:before {\n content: \"\\f043\"; }\n\n.fa-tint-slash:before {\n content: \"\\f5c7\"; }\n\n.fa-tired:before {\n content: \"\\f5c8\"; }\n\n.fa-toggle-off:before {\n content: \"\\f204\"; }\n\n.fa-toggle-on:before {\n content: \"\\f205\"; }\n\n.fa-toilet:before {\n content: \"\\f7d8\"; }\n\n.fa-toilet-paper:before {\n content: \"\\f71e\"; }\n\n.fa-toolbox:before {\n content: \"\\f552\"; }\n\n.fa-tools:before {\n content: \"\\f7d9\"; }\n\n.fa-tooth:before {\n content: \"\\f5c9\"; }\n\n.fa-torah:before {\n content: \"\\f6a0\"; }\n\n.fa-torii-gate:before {\n content: \"\\f6a1\"; }\n\n.fa-tractor:before {\n content: \"\\f722\"; }\n\n.fa-trade-federation:before {\n content: \"\\f513\"; }\n\n.fa-trademark:before {\n content: \"\\f25c\"; }\n\n.fa-traffic-light:before {\n content: \"\\f637\"; }\n\n.fa-train:before {\n content: \"\\f238\"; }\n\n.fa-tram:before {\n content: \"\\f7da\"; }\n\n.fa-transgender:before {\n content: \"\\f224\"; }\n\n.fa-transgender-alt:before {\n content: \"\\f225\"; }\n\n.fa-trash:before {\n content: \"\\f1f8\"; }\n\n.fa-trash-alt:before {\n content: \"\\f2ed\"; }\n\n.fa-trash-restore:before {\n content: \"\\f829\"; }\n\n.fa-trash-restore-alt:before {\n content: \"\\f82a\"; }\n\n.fa-tree:before {\n content: \"\\f1bb\"; }\n\n.fa-trello:before {\n content: \"\\f181\"; }\n\n.fa-tripadvisor:before {\n content: \"\\f262\"; }\n\n.fa-trophy:before {\n content: \"\\f091\"; }\n\n.fa-truck:before {\n content: \"\\f0d1\"; }\n\n.fa-truck-loading:before {\n content: \"\\f4de\"; }\n\n.fa-truck-monster:before {\n content: \"\\f63b\"; }\n\n.fa-truck-moving:before {\n content: \"\\f4df\"; }\n\n.fa-truck-pickup:before {\n content: \"\\f63c\"; }\n\n.fa-tshirt:before {\n content: \"\\f553\"; }\n\n.fa-tty:before {\n content: \"\\f1e4\"; }\n\n.fa-tumblr:before {\n content: \"\\f173\"; }\n\n.fa-tumblr-square:before {\n content: \"\\f174\"; }\n\n.fa-tv:before {\n content: \"\\f26c\"; }\n\n.fa-twitch:before {\n content: \"\\f1e8\"; }\n\n.fa-twitter:before {\n content: \"\\f099\"; }\n\n.fa-twitter-square:before {\n content: \"\\f081\"; }\n\n.fa-typo3:before {\n content: \"\\f42b\"; }\n\n.fa-uber:before {\n content: \"\\f402\"; }\n\n.fa-ubuntu:before {\n content: \"\\f7df\"; }\n\n.fa-uikit:before {\n content: \"\\f403\"; }\n\n.fa-umbrella:before {\n content: \"\\f0e9\"; }\n\n.fa-umbrella-beach:before {\n content: \"\\f5ca\"; }\n\n.fa-underline:before {\n content: \"\\f0cd\"; }\n\n.fa-undo:before {\n content: \"\\f0e2\"; }\n\n.fa-undo-alt:before {\n content: \"\\f2ea\"; }\n\n.fa-uniregistry:before {\n content: \"\\f404\"; }\n\n.fa-universal-access:before {\n content: \"\\f29a\"; }\n\n.fa-university:before {\n content: \"\\f19c\"; }\n\n.fa-unlink:before {\n content: \"\\f127\"; }\n\n.fa-unlock:before {\n content: \"\\f09c\"; }\n\n.fa-unlock-alt:before {\n content: \"\\f13e\"; }\n\n.fa-untappd:before {\n content: \"\\f405\"; }\n\n.fa-upload:before {\n content: \"\\f093\"; }\n\n.fa-ups:before {\n content: \"\\f7e0\"; }\n\n.fa-usb:before {\n content: \"\\f287\"; }\n\n.fa-user:before {\n content: \"\\f007\"; }\n\n.fa-user-alt:before {\n content: \"\\f406\"; }\n\n.fa-user-alt-slash:before {\n content: \"\\f4fa\"; }\n\n.fa-user-astronaut:before {\n content: \"\\f4fb\"; }\n\n.fa-user-check:before {\n content: \"\\f4fc\"; }\n\n.fa-user-circle:before {\n content: \"\\f2bd\"; }\n\n.fa-user-clock:before {\n content: \"\\f4fd\"; }\n\n.fa-user-cog:before {\n content: \"\\f4fe\"; }\n\n.fa-user-edit:before {\n content: \"\\f4ff\"; }\n\n.fa-user-friends:before {\n content: \"\\f500\"; }\n\n.fa-user-graduate:before {\n content: \"\\f501\"; }\n\n.fa-user-injured:before {\n content: \"\\f728\"; }\n\n.fa-user-lock:before {\n content: \"\\f502\"; }\n\n.fa-user-md:before {\n content: \"\\f0f0\"; }\n\n.fa-user-minus:before {\n content: \"\\f503\"; }\n\n.fa-user-ninja:before {\n content: \"\\f504\"; }\n\n.fa-user-nurse:before {\n content: \"\\f82f\"; }\n\n.fa-user-plus:before {\n content: \"\\f234\"; }\n\n.fa-user-secret:before {\n content: \"\\f21b\"; }\n\n.fa-user-shield:before {\n content: \"\\f505\"; }\n\n.fa-user-slash:before {\n content: \"\\f506\"; }\n\n.fa-user-tag:before {\n content: \"\\f507\"; }\n\n.fa-user-tie:before {\n content: \"\\f508\"; }\n\n.fa-user-times:before {\n content: \"\\f235\"; }\n\n.fa-users:before {\n content: \"\\f0c0\"; }\n\n.fa-users-cog:before {\n content: \"\\f509\"; }\n\n.fa-usps:before {\n content: \"\\f7e1\"; }\n\n.fa-ussunnah:before {\n content: \"\\f407\"; }\n\n.fa-utensil-spoon:before {\n content: \"\\f2e5\"; }\n\n.fa-utensils:before {\n content: \"\\f2e7\"; }\n\n.fa-vaadin:before {\n content: \"\\f408\"; }\n\n.fa-vector-square:before {\n content: \"\\f5cb\"; }\n\n.fa-venus:before {\n content: \"\\f221\"; }\n\n.fa-venus-double:before {\n content: \"\\f226\"; }\n\n.fa-venus-mars:before {\n content: \"\\f228\"; }\n\n.fa-viacoin:before {\n content: \"\\f237\"; }\n\n.fa-viadeo:before {\n content: \"\\f2a9\"; }\n\n.fa-viadeo-square:before {\n content: \"\\f2aa\"; }\n\n.fa-vial:before {\n content: \"\\f492\"; }\n\n.fa-vials:before {\n content: \"\\f493\"; }\n\n.fa-viber:before {\n content: \"\\f409\"; }\n\n.fa-video:before {\n content: \"\\f03d\"; }\n\n.fa-video-slash:before {\n content: \"\\f4e2\"; }\n\n.fa-vihara:before {\n content: \"\\f6a7\"; }\n\n.fa-vimeo:before {\n content: \"\\f40a\"; }\n\n.fa-vimeo-square:before {\n content: \"\\f194\"; }\n\n.fa-vimeo-v:before {\n content: \"\\f27d\"; }\n\n.fa-vine:before {\n content: \"\\f1ca\"; }\n\n.fa-vk:before {\n content: \"\\f189\"; }\n\n.fa-vnv:before {\n content: \"\\f40b\"; }\n\n.fa-volleyball-ball:before {\n content: \"\\f45f\"; }\n\n.fa-volume-down:before {\n content: \"\\f027\"; }\n\n.fa-volume-mute:before {\n content: \"\\f6a9\"; }\n\n.fa-volume-off:before {\n content: \"\\f026\"; }\n\n.fa-volume-up:before {\n content: \"\\f028\"; }\n\n.fa-vote-yea:before {\n content: \"\\f772\"; }\n\n.fa-vr-cardboard:before {\n content: \"\\f729\"; }\n\n.fa-vuejs:before {\n content: \"\\f41f\"; }\n\n.fa-walking:before {\n content: \"\\f554\"; }\n\n.fa-wallet:before {\n content: \"\\f555\"; }\n\n.fa-warehouse:before {\n content: \"\\f494\"; }\n\n.fa-water:before {\n content: \"\\f773\"; }\n\n.fa-wave-square:before {\n content: \"\\f83e\"; }\n\n.fa-waze:before {\n content: \"\\f83f\"; }\n\n.fa-weebly:before {\n content: \"\\f5cc\"; }\n\n.fa-weibo:before {\n content: \"\\f18a\"; }\n\n.fa-weight:before {\n content: \"\\f496\"; }\n\n.fa-weight-hanging:before {\n content: \"\\f5cd\"; }\n\n.fa-weixin:before {\n content: \"\\f1d7\"; }\n\n.fa-whatsapp:before {\n content: \"\\f232\"; }\n\n.fa-whatsapp-square:before {\n content: \"\\f40c\"; }\n\n.fa-wheelchair:before {\n content: \"\\f193\"; }\n\n.fa-whmcs:before {\n content: \"\\f40d\"; }\n\n.fa-wifi:before {\n content: \"\\f1eb\"; }\n\n.fa-wikipedia-w:before {\n content: \"\\f266\"; }\n\n.fa-wind:before {\n content: \"\\f72e\"; }\n\n.fa-window-close:before {\n content: \"\\f410\"; }\n\n.fa-window-maximize:before {\n content: \"\\f2d0\"; }\n\n.fa-window-minimize:before {\n content: \"\\f2d1\"; }\n\n.fa-window-restore:before {\n content: \"\\f2d2\"; }\n\n.fa-windows:before {\n content: \"\\f17a\"; }\n\n.fa-wine-bottle:before {\n content: \"\\f72f\"; }\n\n.fa-wine-glass:before {\n content: \"\\f4e3\"; }\n\n.fa-wine-glass-alt:before {\n content: \"\\f5ce\"; }\n\n.fa-wix:before {\n content: \"\\f5cf\"; }\n\n.fa-wizards-of-the-coast:before {\n content: \"\\f730\"; }\n\n.fa-wolf-pack-battalion:before {\n content: \"\\f514\"; }\n\n.fa-won-sign:before {\n content: \"\\f159\"; }\n\n.fa-wordpress:before {\n content: \"\\f19a\"; }\n\n.fa-wordpress-simple:before {\n content: \"\\f411\"; }\n\n.fa-wpbeginner:before {\n content: \"\\f297\"; }\n\n.fa-wpexplorer:before {\n content: \"\\f2de\"; }\n\n.fa-wpforms:before {\n content: \"\\f298\"; }\n\n.fa-wpressr:before {\n content: \"\\f3e4\"; }\n\n.fa-wrench:before {\n content: \"\\f0ad\"; }\n\n.fa-x-ray:before {\n content: \"\\f497\"; }\n\n.fa-xbox:before {\n content: \"\\f412\"; }\n\n.fa-xing:before {\n content: \"\\f168\"; }\n\n.fa-xing-square:before {\n content: \"\\f169\"; }\n\n.fa-y-combinator:before {\n content: \"\\f23b\"; }\n\n.fa-yahoo:before {\n content: \"\\f19e\"; }\n\n.fa-yammer:before {\n content: \"\\f840\"; }\n\n.fa-yandex:before {\n content: \"\\f413\"; }\n\n.fa-yandex-international:before {\n content: \"\\f414\"; }\n\n.fa-yarn:before {\n content: \"\\f7e3\"; }\n\n.fa-yelp:before {\n content: \"\\f1e9\"; }\n\n.fa-yen-sign:before {\n content: \"\\f157\"; }\n\n.fa-yin-yang:before {\n content: \"\\f6ad\"; }\n\n.fa-yoast:before {\n content: \"\\f2b1\"; }\n\n.fa-youtube:before {\n content: \"\\f167\"; }\n\n.fa-youtube-square:before {\n content: \"\\f431\"; }\n\n.fa-zhihu:before {\n content: \"\\f63f\"; }\n\n.sr-only {\n border: 0;\n clip: rect(0, 0, 0, 0);\n height: 1px;\n margin: -1px;\n overflow: hidden;\n padding: 0;\n position: absolute;\n width: 1px; }\n\n.sr-only-focusable:active, .sr-only-focusable:focus {\n clip: auto;\n height: auto;\n margin: 0;\n overflow: visible;\n position: static;\n width: auto; }\n"},"$:/plugins/TheDiveO/FontAwesome/styles/tiddlylinks/system":{"title":"$:/plugins/TheDiveO/FontAwesome/styles/tiddlylinks/system","created":"20171230212437805","modified":"20180328191223958","tags":"$:/tags/Stylesheet","type":"text/vnd.tiddlywiki","text":"\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline html\n\n<$set name=\"cfg\" value=<<fa5-cfgpath \"decorate-syslinks\">> >\n<$list filter=<<fa5-cfgfilterexpr>> >\n\n/* system tiddler titles starting with $:/... */\n.tc-tiddler-body a.tc-tiddlylink[href^=\"#%24%3A%2F\"]:before,\n.tc-tiddler-preview-preview a.tc-tiddlylink[href^=\"#%24%3A%2F\"]:before {\n <<fa-plugin-font-solid>>\n font-size: 80%;\n content: '\\f013\\202f';\n display: inline-block;\n}\n\n</$list>\n</$set>"},"$:/plugins/TheDiveO/FontAwesome/ui/ControlPanel/FontAwesome":{"title":"$:/plugins/TheDiveO/FontAwesome/ui/ControlPanel/FontAwesome","caption":"Font Awesome","created":"20180328182555066","modified":"20180328190604063","tags":"$:/tags/ControlPanel","type":"text/vnd.tiddlywiki","text":"Customize the Font Awesome 5 plugin.\n\n<$checkbox tiddler=<<fa5-cfgpath \"decorate-syslinks\">> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\" > decorate system links: [[$:/ControlPanel]]</$checkbox>\n\n<$checkbox tiddler=<<fa5-cfgpath \"decorate-extlinks\">> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\" > decorate external links: [[TiddlyWiki|http://tiddlywiki.com]] [[Wikipedia|https://en.wikipedia.org/wiki/TiddlyWiki]]</$checkbox>\n\n<$checkbox tiddler=<<fa5-cfgpath \"decorate-extdoclinks\">> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\" > decorate external document links: https://example.org/document.pdf</$checkbox>\n\n<$checkbox tiddler=<<fa5-cfgpath \"decorate-wk-extlinks\">> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\" > decorate external well-known links: http://github.com http://en.wikipedia.org</$checkbox>"}}}
/*!
* Font Awesome 4.7.0 by @davegandy - http://fontawesome.io - @fontawesome
* License - http://fontawesome.io/license (Font: SIL OFL 1.1, CSS: MIT License)
*/
/* FONT PATH
* -------------------------- */
@font-face {
font-family: 'FontAwesome';
src: url(data:application/font-woff;base64,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) format("woff"); font-weight: normal;
font-style: normal;
}
.fa {
display: inline-block;
font: normal normal normal 14px/1 FontAwesome;
font-size: inherit;
text-rendering: auto;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
/* makes the font 33% larger relative to the icon container */
.fa-lg {
font-size: 1.33333333em;
line-height: 0.75em;
vertical-align: -15%;
}
.fa-2x {
font-size: 2em;
}
.fa-3x {
font-size: 3em;
}
.fa-4x {
font-size: 4em;
}
.fa-5x {
font-size: 5em;
}
.fa-fw {
width: 1.28571429em;
text-align: center;
}
.fa-ul {
padding-left: 0;
margin-left: 2.14285714em;
list-style-type: none;
}
.fa-ul > li {
position: relative;
}
.fa-li {
position: absolute;
left: -2.14285714em;
width: 2.14285714em;
top: 0.14285714em;
text-align: center;
}
.fa-li.fa-lg {
left: -1.85714286em;
}
.fa-border {
padding: .2em .25em .15em;
border: solid 0.08em #eeeeee;
border-radius: .1em;
}
.fa-pull-left {
float: left;
}
.fa-pull-right {
float: right;
}
.fa.fa-pull-left {
margin-right: .3em;
}
.fa.fa-pull-right {
margin-left: .3em;
}
/* Deprecated as of 4.4.0 */
.pull-right {
float: right;
}
.pull-left {
float: left;
}
.fa.pull-left {
margin-right: .3em;
}
.fa.pull-right {
margin-left: .3em;
}
.fa-spin {
-webkit-animation: fa-spin 2s infinite linear;
animation: fa-spin 2s infinite linear;
}
.fa-pulse {
-webkit-animation: fa-spin 1s infinite steps(8);
animation: fa-spin 1s infinite steps(8);
}
@-webkit-keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
@keyframes fa-spin {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(359deg);
transform: rotate(359deg);
}
}
.fa-rotate-90 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
-webkit-transform: rotate(90deg);
-ms-transform: rotate(90deg);
transform: rotate(90deg);
}
.fa-rotate-180 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
-webkit-transform: rotate(180deg);
-ms-transform: rotate(180deg);
transform: rotate(180deg);
}
.fa-rotate-270 {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
-webkit-transform: rotate(270deg);
-ms-transform: rotate(270deg);
transform: rotate(270deg);
}
.fa-flip-horizontal {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
-webkit-transform: scale(-1, 1);
-ms-transform: scale(-1, 1);
transform: scale(-1, 1);
}
.fa-flip-vertical {
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
-webkit-transform: scale(1, -1);
-ms-transform: scale(1, -1);
transform: scale(1, -1);
}
:root .fa-rotate-90,
:root .fa-rotate-180,
:root .fa-rotate-270,
:root .fa-flip-horizontal,
:root .fa-flip-vertical {
filter: none;
}
.fa-stack {
position: relative;
display: inline-block;
width: 2em;
height: 2em;
line-height: 2em;
vertical-align: middle;
}
.fa-stack-1x,
.fa-stack-2x {
position: absolute;
left: 0;
width: 100%;
text-align: center;
}
.fa-stack-1x {
line-height: inherit;
}
.fa-stack-2x {
font-size: 2em;
}
.fa-inverse {
color: #ffffff;
}
/* Font Awesome uses the Unicode Private Use Area (PUA) to ensure screen
readers do not read off random characters that represent icons */
.fa-glass:before {
content: "\f000";
}
.fa-music:before {
content: "\f001";
}
.fa-search:before {
content: "\f002";
}
.fa-envelope-o:before {
content: "\f003";
}
.fa-heart:before {
content: "\f004";
}
.fa-star:before {
content: "\f005";
}
.fa-star-o:before {
content: "\f006";
}
.fa-user:before {
content: "\f007";
}
.fa-film:before {
content: "\f008";
}
.fa-th-large:before {
content: "\f009";
}
.fa-th:before {
content: "\f00a";
}
.fa-th-list:before {
content: "\f00b";
}
.fa-check:before {
content: "\f00c";
}
.fa-remove:before,
.fa-close:before,
.fa-times:before {
content: "\f00d";
}
.fa-search-plus:before {
content: "\f00e";
}
.fa-search-minus:before {
content: "\f010";
}
.fa-power-off:before {
content: "\f011";
}
.fa-signal:before {
content: "\f012";
}
.fa-gear:before,
.fa-cog:before {
content: "\f013";
}
.fa-trash-o:before {
content: "\f014";
}
.fa-home:before {
content: "\f015";
}
.fa-file-o:before {
content: "\f016";
}
.fa-clock-o:before {
content: "\f017";
}
.fa-road:before {
content: "\f018";
}
.fa-download:before {
content: "\f019";
}
.fa-arrow-circle-o-down:before {
content: "\f01a";
}
.fa-arrow-circle-o-up:before {
content: "\f01b";
}
.fa-inbox:before {
content: "\f01c";
}
.fa-play-circle-o:before {
content: "\f01d";
}
.fa-rotate-right:before,
.fa-repeat:before {
content: "\f01e";
}
.fa-refresh:before {
content: "\f021";
}
.fa-list-alt:before {
content: "\f022";
}
.fa-lock:before {
content: "\f023";
}
.fa-flag:before {
content: "\f024";
}
.fa-headphones:before {
content: "\f025";
}
.fa-volume-off:before {
content: "\f026";
}
.fa-volume-down:before {
content: "\f027";
}
.fa-volume-up:before {
content: "\f028";
}
.fa-qrcode:before {
content: "\f029";
}
.fa-barcode:before {
content: "\f02a";
}
.fa-tag:before {
content: "\f02b";
}
.fa-tags:before {
content: "\f02c";
}
.fa-book:before {
content: "\f02d";
}
.fa-bookmark:before {
content: "\f02e";
}
.fa-print:before {
content: "\f02f";
}
.fa-camera:before {
content: "\f030";
}
.fa-font:before {
content: "\f031";
}
.fa-bold:before {
content: "\f032";
}
.fa-italic:before {
content: "\f033";
}
.fa-text-height:before {
content: "\f034";
}
.fa-text-width:before {
content: "\f035";
}
.fa-align-left:before {
content: "\f036";
}
.fa-align-center:before {
content: "\f037";
}
.fa-align-right:before {
content: "\f038";
}
.fa-align-justify:before {
content: "\f039";
}
.fa-list:before {
content: "\f03a";
}
.fa-dedent:before,
.fa-outdent:before {
content: "\f03b";
}
.fa-indent:before {
content: "\f03c";
}
.fa-video-camera:before {
content: "\f03d";
}
.fa-photo:before,
.fa-image:before,
.fa-picture-o:before {
content: "\f03e";
}
.fa-pencil:before {
content: "\f040";
}
.fa-map-marker:before {
content: "\f041";
}
.fa-adjust:before {
content: "\f042";
}
.fa-tint:before {
content: "\f043";
}
.fa-edit:before,
.fa-pencil-square-o:before {
content: "\f044";
}
.fa-share-square-o:before {
content: "\f045";
}
.fa-check-square-o:before {
content: "\f046";
}
.fa-arrows:before {
content: "\f047";
}
.fa-step-backward:before {
content: "\f048";
}
.fa-fast-backward:before {
content: "\f049";
}
.fa-backward:before {
content: "\f04a";
}
.fa-play:before {
content: "\f04b";
}
.fa-pause:before {
content: "\f04c";
}
.fa-stop:before {
content: "\f04d";
}
.fa-forward:before {
content: "\f04e";
}
.fa-fast-forward:before {
content: "\f050";
}
.fa-step-forward:before {
content: "\f051";
}
.fa-eject:before {
content: "\f052";
}
.fa-chevron-left:before {
content: "\f053";
}
.fa-chevron-right:before {
content: "\f054";
}
.fa-plus-circle:before {
content: "\f055";
}
.fa-minus-circle:before {
content: "\f056";
}
.fa-times-circle:before {
content: "\f057";
}
.fa-check-circle:before {
content: "\f058";
}
.fa-question-circle:before {
content: "\f059";
}
.fa-info-circle:before {
content: "\f05a";
}
.fa-crosshairs:before {
content: "\f05b";
}
.fa-times-circle-o:before {
content: "\f05c";
}
.fa-check-circle-o:before {
content: "\f05d";
}
.fa-ban:before {
content: "\f05e";
}
.fa-arrow-left:before {
content: "\f060";
}
.fa-arrow-right:before {
content: "\f061";
}
.fa-arrow-up:before {
content: "\f062";
}
.fa-arrow-down:before {
content: "\f063";
}
.fa-mail-forward:before,
.fa-share:before {
content: "\f064";
}
.fa-expand:before {
content: "\f065";
}
.fa-compress:before {
content: "\f066";
}
.fa-plus:before {
content: "\f067";
}
.fa-minus:before {
content: "\f068";
}
.fa-asterisk:before {
content: "\f069";
}
.fa-exclamation-circle:before {
content: "\f06a";
}
.fa-gift:before {
content: "\f06b";
}
.fa-leaf:before {
content: "\f06c";
}
.fa-fire:before {
content: "\f06d";
}
.fa-eye:before {
content: "\f06e";
}
.fa-eye-slash:before {
content: "\f070";
}
.fa-warning:before,
.fa-exclamation-triangle:before {
content: "\f071";
}
.fa-plane:before {
content: "\f072";
}
.fa-calendar:before {
content: "\f073";
}
.fa-random:before {
content: "\f074";
}
.fa-comment:before {
content: "\f075";
}
.fa-magnet:before {
content: "\f076";
}
.fa-chevron-up:before {
content: "\f077";
}
.fa-chevron-down:before {
content: "\f078";
}
.fa-retweet:before {
content: "\f079";
}
.fa-shopping-cart:before {
content: "\f07a";
}
.fa-folder:before {
content: "\f07b";
}
.fa-folder-open:before {
content: "\f07c";
}
.fa-arrows-v:before {
content: "\f07d";
}
.fa-arrows-h:before {
content: "\f07e";
}
.fa-bar-chart-o:before,
.fa-bar-chart:before {
content: "\f080";
}
.fa-twitter-square:before {
content: "\f081";
}
.fa-facebook-square:before {
content: "\f082";
}
.fa-camera-retro:before {
content: "\f083";
}
.fa-key:before {
content: "\f084";
}
.fa-gears:before,
.fa-cogs:before {
content: "\f085";
}
.fa-comments:before {
content: "\f086";
}
.fa-thumbs-o-up:before {
content: "\f087";
}
.fa-thumbs-o-down:before {
content: "\f088";
}
.fa-star-half:before {
content: "\f089";
}
.fa-heart-o:before {
content: "\f08a";
}
.fa-sign-out:before {
content: "\f08b";
}
.fa-linkedin-square:before {
content: "\f08c";
}
.fa-thumb-tack:before {
content: "\f08d";
}
.fa-external-link:before {
content: "\f08e";
}
.fa-sign-in:before {
content: "\f090";
}
.fa-trophy:before {
content: "\f091";
}
.fa-github-square:before {
content: "\f092";
}
.fa-upload:before {
content: "\f093";
}
.fa-lemon-o:before {
content: "\f094";
}
.fa-phone:before {
content: "\f095";
}
.fa-square-o:before {
content: "\f096";
}
.fa-bookmark-o:before {
content: "\f097";
}
.fa-phone-square:before {
content: "\f098";
}
.fa-twitter:before {
content: "\f099";
}
.fa-facebook-f:before,
.fa-facebook:before {
content: "\f09a";
}
.fa-github:before {
content: "\f09b";
}
.fa-unlock:before {
content: "\f09c";
}
.fa-credit-card:before {
content: "\f09d";
}
.fa-feed:before,
.fa-rss:before {
content: "\f09e";
}
.fa-hdd-o:before {
content: "\f0a0";
}
.fa-bullhorn:before {
content: "\f0a1";
}
.fa-bell:before {
content: "\f0f3";
}
.fa-certificate:before {
content: "\f0a3";
}
.fa-hand-o-right:before {
content: "\f0a4";
}
.fa-hand-o-left:before {
content: "\f0a5";
}
.fa-hand-o-up:before {
content: "\f0a6";
}
.fa-hand-o-down:before {
content: "\f0a7";
}
.fa-arrow-circle-left:before {
content: "\f0a8";
}
.fa-arrow-circle-right:before {
content: "\f0a9";
}
.fa-arrow-circle-up:before {
content: "\f0aa";
}
.fa-arrow-circle-down:before {
content: "\f0ab";
}
.fa-globe:before {
content: "\f0ac";
}
.fa-wrench:before {
content: "\f0ad";
}
.fa-tasks:before {
content: "\f0ae";
}
.fa-filter:before {
content: "\f0b0";
}
.fa-briefcase:before {
content: "\f0b1";
}
.fa-arrows-alt:before {
content: "\f0b2";
}
.fa-group:before,
.fa-users:before {
content: "\f0c0";
}
.fa-chain:before,
.fa-link:before {
content: "\f0c1";
}
.fa-cloud:before {
content: "\f0c2";
}
.fa-flask:before {
content: "\f0c3";
}
.fa-cut:before,
.fa-scissors:before {
content: "\f0c4";
}
.fa-copy:before,
.fa-files-o:before {
content: "\f0c5";
}
.fa-paperclip:before {
content: "\f0c6";
}
.fa-save:before,
.fa-floppy-o:before {
content: "\f0c7";
}
.fa-square:before {
content: "\f0c8";
}
.fa-navicon:before,
.fa-reorder:before,
.fa-bars:before {
content: "\f0c9";
}
.fa-list-ul:before {
content: "\f0ca";
}
.fa-list-ol:before {
content: "\f0cb";
}
.fa-strikethrough:before {
content: "\f0cc";
}
.fa-underline:before {
content: "\f0cd";
}
.fa-table:before {
content: "\f0ce";
}
.fa-magic:before {
content: "\f0d0";
}
.fa-truck:before {
content: "\f0d1";
}
.fa-pinterest:before {
content: "\f0d2";
}
.fa-pinterest-square:before {
content: "\f0d3";
}
.fa-google-plus-square:before {
content: "\f0d4";
}
.fa-google-plus:before {
content: "\f0d5";
}
.fa-money:before {
content: "\f0d6";
}
.fa-caret-down:before {
content: "\f0d7";
}
.fa-caret-up:before {
content: "\f0d8";
}
.fa-caret-left:before {
content: "\f0d9";
}
.fa-caret-right:before {
content: "\f0da";
}
.fa-columns:before {
content: "\f0db";
}
.fa-unsorted:before,
.fa-sort:before {
content: "\f0dc";
}
.fa-sort-down:before,
.fa-sort-desc:before {
content: "\f0dd";
}
.fa-sort-up:before,
.fa-sort-asc:before {
content: "\f0de";
}
.fa-envelope:before {
content: "\f0e0";
}
.fa-linkedin:before {
content: "\f0e1";
}
.fa-rotate-left:before,
.fa-undo:before {
content: "\f0e2";
}
.fa-legal:before,
.fa-gavel:before {
content: "\f0e3";
}
.fa-dashboard:before,
.fa-tachometer:before {
content: "\f0e4";
}
.fa-comment-o:before {
content: "\f0e5";
}
.fa-comments-o:before {
content: "\f0e6";
}
.fa-flash:before,
.fa-bolt:before {
content: "\f0e7";
}
.fa-sitemap:before {
content: "\f0e8";
}
.fa-umbrella:before {
content: "\f0e9";
}
.fa-paste:before,
.fa-clipboard:before {
content: "\f0ea";
}
.fa-lightbulb-o:before {
content: "\f0eb";
}
.fa-exchange:before {
content: "\f0ec";
}
.fa-cloud-download:before {
content: "\f0ed";
}
.fa-cloud-upload:before {
content: "\f0ee";
}
.fa-user-md:before {
content: "\f0f0";
}
.fa-stethoscope:before {
content: "\f0f1";
}
.fa-suitcase:before {
content: "\f0f2";
}
.fa-bell-o:before {
content: "\f0a2";
}
.fa-coffee:before {
content: "\f0f4";
}
.fa-cutlery:before {
content: "\f0f5";
}
.fa-file-text-o:before {
content: "\f0f6";
}
.fa-building-o:before {
content: "\f0f7";
}
.fa-hospital-o:before {
content: "\f0f8";
}
.fa-ambulance:before {
content: "\f0f9";
}
.fa-medkit:before {
content: "\f0fa";
}
.fa-fighter-jet:before {
content: "\f0fb";
}
.fa-beer:before {
content: "\f0fc";
}
.fa-h-square:before {
content: "\f0fd";
}
.fa-plus-square:before {
content: "\f0fe";
}
.fa-angle-double-left:before {
content: "\f100";
}
.fa-angle-double-right:before {
content: "\f101";
}
.fa-angle-double-up:before {
content: "\f102";
}
.fa-angle-double-down:before {
content: "\f103";
}
.fa-angle-left:before {
content: "\f104";
}
.fa-angle-right:before {
content: "\f105";
}
.fa-angle-up:before {
content: "\f106";
}
.fa-angle-down:before {
content: "\f107";
}
.fa-desktop:before {
content: "\f108";
}
.fa-laptop:before {
content: "\f109";
}
.fa-tablet:before {
content: "\f10a";
}
.fa-mobile-phone:before,
.fa-mobile:before {
content: "\f10b";
}
.fa-circle-o:before {
content: "\f10c";
}
.fa-quote-left:before {
content: "\f10d";
}
.fa-quote-right:before {
content: "\f10e";
}
.fa-spinner:before {
content: "\f110";
}
.fa-circle:before {
content: "\f111";
}
.fa-mail-reply:before,
.fa-reply:before {
content: "\f112";
}
.fa-github-alt:before {
content: "\f113";
}
.fa-folder-o:before {
content: "\f114";
}
.fa-folder-open-o:before {
content: "\f115";
}
.fa-smile-o:before {
content: "\f118";
}
.fa-frown-o:before {
content: "\f119";
}
.fa-meh-o:before {
content: "\f11a";
}
.fa-gamepad:before {
content: "\f11b";
}
.fa-keyboard-o:before {
content: "\f11c";
}
.fa-flag-o:before {
content: "\f11d";
}
.fa-flag-checkered:before {
content: "\f11e";
}
.fa-terminal:before {
content: "\f120";
}
.fa-code:before {
content: "\f121";
}
.fa-mail-reply-all:before,
.fa-reply-all:before {
content: "\f122";
}
.fa-star-half-empty:before,
.fa-star-half-full:before,
.fa-star-half-o:before {
content: "\f123";
}
.fa-location-arrow:before {
content: "\f124";
}
.fa-crop:before {
content: "\f125";
}
.fa-code-fork:before {
content: "\f126";
}
.fa-unlink:before,
.fa-chain-broken:before {
content: "\f127";
}
.fa-question:before {
content: "\f128";
}
.fa-info:before {
content: "\f129";
}
.fa-exclamation:before {
content: "\f12a";
}
.fa-superscript:before {
content: "\f12b";
}
.fa-subscript:before {
content: "\f12c";
}
.fa-eraser:before {
content: "\f12d";
}
.fa-puzzle-piece:before {
content: "\f12e";
}
.fa-microphone:before {
content: "\f130";
}
.fa-microphone-slash:before {
content: "\f131";
}
.fa-shield:before {
content: "\f132";
}
.fa-calendar-o:before {
content: "\f133";
}
.fa-fire-extinguisher:before {
content: "\f134";
}
.fa-rocket:before {
content: "\f135";
}
.fa-maxcdn:before {
content: "\f136";
}
.fa-chevron-circle-left:before {
content: "\f137";
}
.fa-chevron-circle-right:before {
content: "\f138";
}
.fa-chevron-circle-up:before {
content: "\f139";
}
.fa-chevron-circle-down:before {
content: "\f13a";
}
.fa-html5:before {
content: "\f13b";
}
.fa-css3:before {
content: "\f13c";
}
.fa-anchor:before {
content: "\f13d";
}
.fa-unlock-alt:before {
content: "\f13e";
}
.fa-bullseye:before {
content: "\f140";
}
.fa-ellipsis-h:before {
content: "\f141";
}
.fa-ellipsis-v:before {
content: "\f142";
}
.fa-rss-square:before {
content: "\f143";
}
.fa-play-circle:before {
content: "\f144";
}
.fa-ticket:before {
content: "\f145";
}
.fa-minus-square:before {
content: "\f146";
}
.fa-minus-square-o:before {
content: "\f147";
}
.fa-level-up:before {
content: "\f148";
}
.fa-level-down:before {
content: "\f149";
}
.fa-check-square:before {
content: "\f14a";
}
.fa-pencil-square:before {
content: "\f14b";
}
.fa-external-link-square:before {
content: "\f14c";
}
.fa-share-square:before {
content: "\f14d";
}
.fa-compass:before {
content: "\f14e";
}
.fa-toggle-down:before,
.fa-caret-square-o-down:before {
content: "\f150";
}
.fa-toggle-up:before,
.fa-caret-square-o-up:before {
content: "\f151";
}
.fa-toggle-right:before,
.fa-caret-square-o-right:before {
content: "\f152";
}
.fa-euro:before,
.fa-eur:before {
content: "\f153";
}
.fa-gbp:before {
content: "\f154";
}
.fa-dollar:before,
.fa-usd:before {
content: "\f155";
}
.fa-rupee:before,
.fa-inr:before {
content: "\f156";
}
.fa-cny:before,
.fa-rmb:before,
.fa-yen:before,
.fa-jpy:before {
content: "\f157";
}
.fa-ruble:before,
.fa-rouble:before,
.fa-rub:before {
content: "\f158";
}
.fa-won:before,
.fa-krw:before {
content: "\f159";
}
.fa-bitcoin:before,
.fa-btc:before {
content: "\f15a";
}
.fa-file:before {
content: "\f15b";
}
.fa-file-text:before {
content: "\f15c";
}
.fa-sort-alpha-asc:before {
content: "\f15d";
}
.fa-sort-alpha-desc:before {
content: "\f15e";
}
.fa-sort-amount-asc:before {
content: "\f160";
}
.fa-sort-amount-desc:before {
content: "\f161";
}
.fa-sort-numeric-asc:before {
content: "\f162";
}
.fa-sort-numeric-desc:before {
content: "\f163";
}
.fa-thumbs-up:before {
content: "\f164";
}
.fa-thumbs-down:before {
content: "\f165";
}
.fa-youtube-square:before {
content: "\f166";
}
.fa-youtube:before {
content: "\f167";
}
.fa-xing:before {
content: "\f168";
}
.fa-xing-square:before {
content: "\f169";
}
.fa-youtube-play:before {
content: "\f16a";
}
.fa-dropbox:before {
content: "\f16b";
}
.fa-stack-overflow:before {
content: "\f16c";
}
.fa-instagram:before {
content: "\f16d";
}
.fa-flickr:before {
content: "\f16e";
}
.fa-adn:before {
content: "\f170";
}
.fa-bitbucket:before {
content: "\f171";
}
.fa-bitbucket-square:before {
content: "\f172";
}
.fa-tumblr:before {
content: "\f173";
}
.fa-tumblr-square:before {
content: "\f174";
}
.fa-long-arrow-down:before {
content: "\f175";
}
.fa-long-arrow-up:before {
content: "\f176";
}
.fa-long-arrow-left:before {
content: "\f177";
}
.fa-long-arrow-right:before {
content: "\f178";
}
.fa-apple:before {
content: "\f179";
}
.fa-windows:before {
content: "\f17a";
}
.fa-android:before {
content: "\f17b";
}
.fa-linux:before {
content: "\f17c";
}
.fa-dribbble:before {
content: "\f17d";
}
.fa-skype:before {
content: "\f17e";
}
.fa-foursquare:before {
content: "\f180";
}
.fa-trello:before {
content: "\f181";
}
.fa-female:before {
content: "\f182";
}
.fa-male:before {
content: "\f183";
}
.fa-gittip:before,
.fa-gratipay:before {
content: "\f184";
}
.fa-sun-o:before {
content: "\f185";
}
.fa-moon-o:before {
content: "\f186";
}
.fa-archive:before {
content: "\f187";
}
.fa-bug:before {
content: "\f188";
}
.fa-vk:before {
content: "\f189";
}
.fa-weibo:before {
content: "\f18a";
}
.fa-renren:before {
content: "\f18b";
}
.fa-pagelines:before {
content: "\f18c";
}
.fa-stack-exchange:before {
content: "\f18d";
}
.fa-arrow-circle-o-right:before {
content: "\f18e";
}
.fa-arrow-circle-o-left:before {
content: "\f190";
}
.fa-toggle-left:before,
.fa-caret-square-o-left:before {
content: "\f191";
}
.fa-dot-circle-o:before {
content: "\f192";
}
.fa-wheelchair:before {
content: "\f193";
}
.fa-vimeo-square:before {
content: "\f194";
}
.fa-turkish-lira:before,
.fa-try:before {
content: "\f195";
}
.fa-plus-square-o:before {
content: "\f196";
}
.fa-space-shuttle:before {
content: "\f197";
}
.fa-slack:before {
content: "\f198";
}
.fa-envelope-square:before {
content: "\f199";
}
.fa-wordpress:before {
content: "\f19a";
}
.fa-openid:before {
content: "\f19b";
}
.fa-institution:before,
.fa-bank:before,
.fa-university:before {
content: "\f19c";
}
.fa-mortar-board:before,
.fa-graduation-cap:before {
content: "\f19d";
}
.fa-yahoo:before {
content: "\f19e";
}
.fa-google:before {
content: "\f1a0";
}
.fa-reddit:before {
content: "\f1a1";
}
.fa-reddit-square:before {
content: "\f1a2";
}
.fa-stumbleupon-circle:before {
content: "\f1a3";
}
.fa-stumbleupon:before {
content: "\f1a4";
}
.fa-delicious:before {
content: "\f1a5";
}
.fa-digg:before {
content: "\f1a6";
}
.fa-pied-piper-pp:before {
content: "\f1a7";
}
.fa-pied-piper-alt:before {
content: "\f1a8";
}
.fa-drupal:before {
content: "\f1a9";
}
.fa-joomla:before {
content: "\f1aa";
}
.fa-language:before {
content: "\f1ab";
}
.fa-fax:before {
content: "\f1ac";
}
.fa-building:before {
content: "\f1ad";
}
.fa-child:before {
content: "\f1ae";
}
.fa-paw:before {
content: "\f1b0";
}
.fa-spoon:before {
content: "\f1b1";
}
.fa-cube:before {
content: "\f1b2";
}
.fa-cubes:before {
content: "\f1b3";
}
.fa-behance:before {
content: "\f1b4";
}
.fa-behance-square:before {
content: "\f1b5";
}
.fa-steam:before {
content: "\f1b6";
}
.fa-steam-square:before {
content: "\f1b7";
}
.fa-recycle:before {
content: "\f1b8";
}
.fa-automobile:before,
.fa-car:before {
content: "\f1b9";
}
.fa-cab:before,
.fa-taxi:before {
content: "\f1ba";
}
.fa-tree:before {
content: "\f1bb";
}
.fa-spotify:before {
content: "\f1bc";
}
.fa-deviantart:before {
content: "\f1bd";
}
.fa-soundcloud:before {
content: "\f1be";
}
.fa-database:before {
content: "\f1c0";
}
.fa-file-pdf-o:before {
content: "\f1c1";
}
.fa-file-word-o:before {
content: "\f1c2";
}
.fa-file-excel-o:before {
content: "\f1c3";
}
.fa-file-powerpoint-o:before {
content: "\f1c4";
}
.fa-file-photo-o:before,
.fa-file-picture-o:before,
.fa-file-image-o:before {
content: "\f1c5";
}
.fa-file-zip-o:before,
.fa-file-archive-o:before {
content: "\f1c6";
}
.fa-file-sound-o:before,
.fa-file-audio-o:before {
content: "\f1c7";
}
.fa-file-movie-o:before,
.fa-file-video-o:before {
content: "\f1c8";
}
.fa-file-code-o:before {
content: "\f1c9";
}
.fa-vine:before {
content: "\f1ca";
}
.fa-codepen:before {
content: "\f1cb";
}
.fa-jsfiddle:before {
content: "\f1cc";
}
.fa-life-bouy:before,
.fa-life-buoy:before,
.fa-life-saver:before,
.fa-support:before,
.fa-life-ring:before {
content: "\f1cd";
}
.fa-circle-o-notch:before {
content: "\f1ce";
}
.fa-ra:before,
.fa-resistance:before,
.fa-rebel:before {
content: "\f1d0";
}
.fa-ge:before,
.fa-empire:before {
content: "\f1d1";
}
.fa-git-square:before {
content: "\f1d2";
}
.fa-git:before {
content: "\f1d3";
}
.fa-y-combinator-square:before,
.fa-yc-square:before,
.fa-hacker-news:before {
content: "\f1d4";
}
.fa-tencent-weibo:before {
content: "\f1d5";
}
.fa-qq:before {
content: "\f1d6";
}
.fa-wechat:before,
.fa-weixin:before {
content: "\f1d7";
}
.fa-send:before,
.fa-paper-plane:before {
content: "\f1d8";
}
.fa-send-o:before,
.fa-paper-plane-o:before {
content: "\f1d9";
}
.fa-history:before {
content: "\f1da";
}
.fa-circle-thin:before {
content: "\f1db";
}
.fa-header:before {
content: "\f1dc";
}
.fa-paragraph:before {
content: "\f1dd";
}
.fa-sliders:before {
content: "\f1de";
}
.fa-share-alt:before {
content: "\f1e0";
}
.fa-share-alt-square:before {
content: "\f1e1";
}
.fa-bomb:before {
content: "\f1e2";
}
.fa-soccer-ball-o:before,
.fa-futbol-o:before {
content: "\f1e3";
}
.fa-tty:before {
content: "\f1e4";
}
.fa-binoculars:before {
content: "\f1e5";
}
.fa-plug:before {
content: "\f1e6";
}
.fa-slideshare:before {
content: "\f1e7";
}
.fa-twitch:before {
content: "\f1e8";
}
.fa-yelp:before {
content: "\f1e9";
}
.fa-newspaper-o:before {
content: "\f1ea";
}
.fa-wifi:before {
content: "\f1eb";
}
.fa-calculator:before {
content: "\f1ec";
}
.fa-paypal:before {
content: "\f1ed";
}
.fa-google-wallet:before {
content: "\f1ee";
}
.fa-cc-visa:before {
content: "\f1f0";
}
.fa-cc-mastercard:before {
content: "\f1f1";
}
.fa-cc-discover:before {
content: "\f1f2";
}
.fa-cc-amex:before {
content: "\f1f3";
}
.fa-cc-paypal:before {
content: "\f1f4";
}
.fa-cc-stripe:before {
content: "\f1f5";
}
.fa-bell-slash:before {
content: "\f1f6";
}
.fa-bell-slash-o:before {
content: "\f1f7";
}
.fa-trash:before {
content: "\f1f8";
}
.fa-copyright:before {
content: "\f1f9";
}
.fa-at:before {
content: "\f1fa";
}
.fa-eyedropper:before {
content: "\f1fb";
}
.fa-paint-brush:before {
content: "\f1fc";
}
.fa-birthday-cake:before {
content: "\f1fd";
}
.fa-area-chart:before {
content: "\f1fe";
}
.fa-pie-chart:before {
content: "\f200";
}
.fa-line-chart:before {
content: "\f201";
}
.fa-lastfm:before {
content: "\f202";
}
.fa-lastfm-square:before {
content: "\f203";
}
.fa-toggle-off:before {
content: "\f204";
}
.fa-toggle-on:before {
content: "\f205";
}
.fa-bicycle:before {
content: "\f206";
}
.fa-bus:before {
content: "\f207";
}
.fa-ioxhost:before {
content: "\f208";
}
.fa-angellist:before {
content: "\f209";
}
.fa-cc:before {
content: "\f20a";
}
.fa-shekel:before,
.fa-sheqel:before,
.fa-ils:before {
content: "\f20b";
}
.fa-meanpath:before {
content: "\f20c";
}
.fa-buysellads:before {
content: "\f20d";
}
.fa-connectdevelop:before {
content: "\f20e";
}
.fa-dashcube:before {
content: "\f210";
}
.fa-forumbee:before {
content: "\f211";
}
.fa-leanpub:before {
content: "\f212";
}
.fa-sellsy:before {
content: "\f213";
}
.fa-shirtsinbulk:before {
content: "\f214";
}
.fa-simplybuilt:before {
content: "\f215";
}
.fa-skyatlas:before {
content: "\f216";
}
.fa-cart-plus:before {
content: "\f217";
}
.fa-cart-arrow-down:before {
content: "\f218";
}
.fa-diamond:before {
content: "\f219";
}
.fa-ship:before {
content: "\f21a";
}
.fa-user-secret:before {
content: "\f21b";
}
.fa-motorcycle:before {
content: "\f21c";
}
.fa-street-view:before {
content: "\f21d";
}
.fa-heartbeat:before {
content: "\f21e";
}
.fa-venus:before {
content: "\f221";
}
.fa-mars:before {
content: "\f222";
}
.fa-mercury:before {
content: "\f223";
}
.fa-intersex:before,
.fa-transgender:before {
content: "\f224";
}
.fa-transgender-alt:before {
content: "\f225";
}
.fa-venus-double:before {
content: "\f226";
}
.fa-mars-double:before {
content: "\f227";
}
.fa-venus-mars:before {
content: "\f228";
}
.fa-mars-stroke:before {
content: "\f229";
}
.fa-mars-stroke-v:before {
content: "\f22a";
}
.fa-mars-stroke-h:before {
content: "\f22b";
}
.fa-neuter:before {
content: "\f22c";
}
.fa-genderless:before {
content: "\f22d";
}
.fa-facebook-official:before {
content: "\f230";
}
.fa-pinterest-p:before {
content: "\f231";
}
.fa-whatsapp:before {
content: "\f232";
}
.fa-server:before {
content: "\f233";
}
.fa-user-plus:before {
content: "\f234";
}
.fa-user-times:before {
content: "\f235";
}
.fa-hotel:before,
.fa-bed:before {
content: "\f236";
}
.fa-viacoin:before {
content: "\f237";
}
.fa-train:before {
content: "\f238";
}
.fa-subway:before {
content: "\f239";
}
.fa-medium:before {
content: "\f23a";
}
.fa-yc:before,
.fa-y-combinator:before {
content: "\f23b";
}
.fa-optin-monster:before {
content: "\f23c";
}
.fa-opencart:before {
content: "\f23d";
}
.fa-expeditedssl:before {
content: "\f23e";
}
.fa-battery-4:before,
.fa-battery:before,
.fa-battery-full:before {
content: "\f240";
}
.fa-battery-3:before,
.fa-battery-three-quarters:before {
content: "\f241";
}
.fa-battery-2:before,
.fa-battery-half:before {
content: "\f242";
}
.fa-battery-1:before,
.fa-battery-quarter:before {
content: "\f243";
}
.fa-battery-0:before,
.fa-battery-empty:before {
content: "\f244";
}
.fa-mouse-pointer:before {
content: "\f245";
}
.fa-i-cursor:before {
content: "\f246";
}
.fa-object-group:before {
content: "\f247";
}
.fa-object-ungroup:before {
content: "\f248";
}
.fa-sticky-note:before {
content: "\f249";
}
.fa-sticky-note-o:before {
content: "\f24a";
}
.fa-cc-jcb:before {
content: "\f24b";
}
.fa-cc-diners-club:before {
content: "\f24c";
}
.fa-clone:before {
content: "\f24d";
}
.fa-balance-scale:before {
content: "\f24e";
}
.fa-hourglass-o:before {
content: "\f250";
}
.fa-hourglass-1:before,
.fa-hourglass-start:before {
content: "\f251";
}
.fa-hourglass-2:before,
.fa-hourglass-half:before {
content: "\f252";
}
.fa-hourglass-3:before,
.fa-hourglass-end:before {
content: "\f253";
}
.fa-hourglass:before {
content: "\f254";
}
.fa-hand-grab-o:before,
.fa-hand-rock-o:before {
content: "\f255";
}
.fa-hand-stop-o:before,
.fa-hand-paper-o:before {
content: "\f256";
}
.fa-hand-scissors-o:before {
content: "\f257";
}
.fa-hand-lizard-o:before {
content: "\f258";
}
.fa-hand-spock-o:before {
content: "\f259";
}
.fa-hand-pointer-o:before {
content: "\f25a";
}
.fa-hand-peace-o:before {
content: "\f25b";
}
.fa-trademark:before {
content: "\f25c";
}
.fa-registered:before {
content: "\f25d";
}
.fa-creative-commons:before {
content: "\f25e";
}
.fa-gg:before {
content: "\f260";
}
.fa-gg-circle:before {
content: "\f261";
}
.fa-tripadvisor:before {
content: "\f262";
}
.fa-odnoklassniki:before {
content: "\f263";
}
.fa-odnoklassniki-square:before {
content: "\f264";
}
.fa-get-pocket:before {
content: "\f265";
}
.fa-wikipedia-w:before {
content: "\f266";
}
.fa-safari:before {
content: "\f267";
}
.fa-chrome:before {
content: "\f268";
}
.fa-firefox:before {
content: "\f269";
}
.fa-opera:before {
content: "\f26a";
}
.fa-internet-explorer:before {
content: "\f26b";
}
.fa-tv:before,
.fa-television:before {
content: "\f26c";
}
.fa-contao:before {
content: "\f26d";
}
.fa-500px:before {
content: "\f26e";
}
.fa-amazon:before {
content: "\f270";
}
.fa-calendar-plus-o:before {
content: "\f271";
}
.fa-calendar-minus-o:before {
content: "\f272";
}
.fa-calendar-times-o:before {
content: "\f273";
}
.fa-calendar-check-o:before {
content: "\f274";
}
.fa-industry:before {
content: "\f275";
}
.fa-map-pin:before {
content: "\f276";
}
.fa-map-signs:before {
content: "\f277";
}
.fa-map-o:before {
content: "\f278";
}
.fa-map:before {
content: "\f279";
}
.fa-commenting:before {
content: "\f27a";
}
.fa-commenting-o:before {
content: "\f27b";
}
.fa-houzz:before {
content: "\f27c";
}
.fa-vimeo:before {
content: "\f27d";
}
.fa-black-tie:before {
content: "\f27e";
}
.fa-fonticons:before {
content: "\f280";
}
.fa-reddit-alien:before {
content: "\f281";
}
.fa-edge:before {
content: "\f282";
}
.fa-credit-card-alt:before {
content: "\f283";
}
.fa-codiepie:before {
content: "\f284";
}
.fa-modx:before {
content: "\f285";
}
.fa-fort-awesome:before {
content: "\f286";
}
.fa-usb:before {
content: "\f287";
}
.fa-product-hunt:before {
content: "\f288";
}
.fa-mixcloud:before {
content: "\f289";
}
.fa-scribd:before {
content: "\f28a";
}
.fa-pause-circle:before {
content: "\f28b";
}
.fa-pause-circle-o:before {
content: "\f28c";
}
.fa-stop-circle:before {
content: "\f28d";
}
.fa-stop-circle-o:before {
content: "\f28e";
}
.fa-shopping-bag:before {
content: "\f290";
}
.fa-shopping-basket:before {
content: "\f291";
}
.fa-hashtag:before {
content: "\f292";
}
.fa-bluetooth:before {
content: "\f293";
}
.fa-bluetooth-b:before {
content: "\f294";
}
.fa-percent:before {
content: "\f295";
}
.fa-gitlab:before {
content: "\f296";
}
.fa-wpbeginner:before {
content: "\f297";
}
.fa-wpforms:before {
content: "\f298";
}
.fa-envira:before {
content: "\f299";
}
.fa-universal-access:before {
content: "\f29a";
}
.fa-wheelchair-alt:before {
content: "\f29b";
}
.fa-question-circle-o:before {
content: "\f29c";
}
.fa-blind:before {
content: "\f29d";
}
.fa-audio-description:before {
content: "\f29e";
}
.fa-volume-control-phone:before {
content: "\f2a0";
}
.fa-braille:before {
content: "\f2a1";
}
.fa-assistive-listening-systems:before {
content: "\f2a2";
}
.fa-asl-interpreting:before,
.fa-american-sign-language-interpreting:before {
content: "\f2a3";
}
.fa-deafness:before,
.fa-hard-of-hearing:before,
.fa-deaf:before {
content: "\f2a4";
}
.fa-glide:before {
content: "\f2a5";
}
.fa-glide-g:before {
content: "\f2a6";
}
.fa-signing:before,
.fa-sign-language:before {
content: "\f2a7";
}
.fa-low-vision:before {
content: "\f2a8";
}
.fa-viadeo:before {
content: "\f2a9";
}
.fa-viadeo-square:before {
content: "\f2aa";
}
.fa-snapchat:before {
content: "\f2ab";
}
.fa-snapchat-ghost:before {
content: "\f2ac";
}
.fa-snapchat-square:before {
content: "\f2ad";
}
.fa-pied-piper:before {
content: "\f2ae";
}
.fa-first-order:before {
content: "\f2b0";
}
.fa-yoast:before {
content: "\f2b1";
}
.fa-themeisle:before {
content: "\f2b2";
}
.fa-google-plus-circle:before,
.fa-google-plus-official:before {
content: "\f2b3";
}
.fa-fa:before,
.fa-font-awesome:before {
content: "\f2b4";
}
.fa-handshake-o:before {
content: "\f2b5";
}
.fa-envelope-open:before {
content: "\f2b6";
}
.fa-envelope-open-o:before {
content: "\f2b7";
}
.fa-linode:before {
content: "\f2b8";
}
.fa-address-book:before {
content: "\f2b9";
}
.fa-address-book-o:before {
content: "\f2ba";
}
.fa-vcard:before,
.fa-address-card:before {
content: "\f2bb";
}
.fa-vcard-o:before,
.fa-address-card-o:before {
content: "\f2bc";
}
.fa-user-circle:before {
content: "\f2bd";
}
.fa-user-circle-o:before {
content: "\f2be";
}
.fa-user-o:before {
content: "\f2c0";
}
.fa-id-badge:before {
content: "\f2c1";
}
.fa-drivers-license:before,
.fa-id-card:before {
content: "\f2c2";
}
.fa-drivers-license-o:before,
.fa-id-card-o:before {
content: "\f2c3";
}
.fa-quora:before {
content: "\f2c4";
}
.fa-free-code-camp:before {
content: "\f2c5";
}
.fa-telegram:before {
content: "\f2c6";
}
.fa-thermometer-4:before,
.fa-thermometer:before,
.fa-thermometer-full:before {
content: "\f2c7";
}
.fa-thermometer-3:before,
.fa-thermometer-three-quarters:before {
content: "\f2c8";
}
.fa-thermometer-2:before,
.fa-thermometer-half:before {
content: "\f2c9";
}
.fa-thermometer-1:before,
.fa-thermometer-quarter:before {
content: "\f2ca";
}
.fa-thermometer-0:before,
.fa-thermometer-empty:before {
content: "\f2cb";
}
.fa-shower:before {
content: "\f2cc";
}
.fa-bathtub:before,
.fa-s15:before,
.fa-bath:before {
content: "\f2cd";
}
.fa-podcast:before {
content: "\f2ce";
}
.fa-window-maximize:before {
content: "\f2d0";
}
.fa-window-minimize:before {
content: "\f2d1";
}
.fa-window-restore:before {
content: "\f2d2";
}
.fa-times-rectangle:before,
.fa-window-close:before {
content: "\f2d3";
}
.fa-times-rectangle-o:before,
.fa-window-close-o:before {
content: "\f2d4";
}
.fa-bandcamp:before {
content: "\f2d5";
}
.fa-grav:before {
content: "\f2d6";
}
.fa-etsy:before {
content: "\f2d7";
}
.fa-imdb:before {
content: "\f2d8";
}
.fa-ravelry:before {
content: "\f2d9";
}
.fa-eercast:before {
content: "\f2da";
}
.fa-microchip:before {
content: "\f2db";
}
.fa-snowflake-o:before {
content: "\f2dc";
}
.fa-superpowers:before {
content: "\f2dd";
}
.fa-wpexplorer:before {
content: "\f2de";
}
.fa-meetup:before {
content: "\f2e0";
}
.sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.sr-only-focusable:active,
.sr-only-focusable:focus {
position: static;
width: auto;
height: auto;
margin: 0;
overflow: visible;
clip: auto;
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/bibtex/deserializer.js": {
"title": "$:/plugins/tiddlywiki/bibtex/deserializer.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/bibtex/deserializer.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nXLSX file deserializer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar bibtexParse = require(\"$:/plugins/tiddlywiki/bibtex/bibtexParse.js\");\n\n/*\nParse an XLSX file into tiddlers\n*/\nexports[\"application/x-bibtex\"] = function(text,fields) {\n\tvar data,\n\t\tresults = [];\n\t// Parse the text\n\ttry {\n\t\tdata = bibtexParse.toJSON(text)\n\t} catch(ex) {\n\t\tdata = ex.toString();\n\t}\n\tif(typeof data === \"string\") {\n\t\treturn [{\n\t\t\ttitle: \"BibTeX import error: \" + data,\n\t\t}];\n\t}\n\t// Convert each entry\n\t$tw.utils.each(data,function(entry) {\n\t\tvar fields = {\n\t\t\ttitle: entry.citationKey,\n\t\t\t\"bibtex-entry-type\": entry.entryType\n\t\t};\n\t\t$tw.utils.each(entry.entryTags,function(value,name) {\n\t\t\tfields[\"bibtex-\" + name] = value;\n\t\t});\n\t\tresults.push(fields);\n\t});\n\t// Return the output tiddlers\n\treturn results;\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/plugins/tiddlywiki/bibtex/readme": {
"title": "$:/plugins/tiddlywiki/bibtex/readme",
"text": "The BibTeX plugin provides a deserializer that can convert bibliographic entries in `.bib` files into individual tiddlers.\n\nYou can use it in the browser by dragging and dropping a `.bib` file into the TiddlyWiki window. Under Node.js, use the `--load` command to load a `.bib` file.\n\nThe conversion is as follows:\n\n* `title` comes from citationKey\n* `bibtex-entry-type` comes from entryType\n* all `entryTags` are assigned to fields with the prefix `bibtex-`\n\nThe BibTeX plugin is based on the library [[bibtexParseJs by Henrik Muehe and Mikola Lysenko|https://github.com/ORCID/bibtexParseJs]].\n"
},
"$:/plugins/tiddlywiki/bibtex/bibtexParse.js": {
"text": "/* start bibtexParse 0.0.22 */\n\n//Original work by Henrik Muehe (c) 2010\n//\n//CommonJS port by Mikola Lysenko 2013\n//\n//Port to Browser lib by ORCID / RCPETERS\n//\n//Issues:\n//no comment handling within strings\n//no string concatenation\n//no variable values yet\n//Grammar implemented here:\n//bibtex -> (string | preamble | comment | entry)*;\n//string -> '@STRING' '{' key_equals_value '}';\n//preamble -> '@PREAMBLE' '{' value '}';\n//comment -> '@COMMENT' '{' value '}';\n//entry -> '@' key '{' key ',' key_value_list '}';\n//key_value_list -> key_equals_value (',' key_equals_value)*;\n//key_equals_value -> key '=' value;\n//value -> value_quotes | value_braces | key;\n//value_quotes -> '\"' .*? '\"'; // not quite\n//value_braces -> '{' .*? '\"'; // not quite\n(function(exports) {\n\n function BibtexParser() {\n \n this.months = [\"jan\", \"feb\", \"mar\", \"apr\", \"may\", \"jun\", \"jul\", \"aug\", \"sep\", \"oct\", \"nov\", \"dec\"];\n this.notKey = [',','{','}',' ','='];\n this.pos = 0;\n this.input = \"\";\n this.entries = new Array();\n\n this.currentEntry = \"\";\n\n this.setInput = function(t) {\n this.input = t;\n };\n\n this.getEntries = function() {\n return this.entries;\n };\n\n this.isWhitespace = function(s) {\n return (s == ' ' || s == '\\r' || s == '\\t' || s == '\\n');\n };\n\n this.match = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n this.pos += s.length;\n } else {\n throw \"Token mismatch, expected \" + s + \", found \"\n + this.input.substring(this.pos);\n };\n this.skipWhitespace(canCommentOut);\n };\n\n this.tryMatch = function(s, canCommentOut) {\n if (canCommentOut == undefined || canCommentOut == null)\n canCommentOut = true;\n this.skipWhitespace(canCommentOut);\n if (this.input.substring(this.pos, this.pos + s.length) == s) {\n return true;\n } else {\n return false;\n };\n this.skipWhitespace(canCommentOut);\n };\n\n /* when search for a match all text can be ignored, not just white space */\n this.matchAt = function() {\n while (this.input.length > this.pos && this.input[this.pos] != '@') {\n this.pos++;\n };\n\n if (this.input[this.pos] == '@') {\n return true;\n };\n return false;\n };\n\n this.skipWhitespace = function(canCommentOut) {\n while (this.isWhitespace(this.input[this.pos])) {\n this.pos++;\n };\n if (this.input[this.pos] == \"%\" && canCommentOut == true) {\n while (this.input[this.pos] != \"\\n\") {\n this.pos++;\n };\n this.skipWhitespace(canCommentOut);\n };\n };\n\n this.value_braces = function() {\n var bracecount = 0;\n this.match(\"{\", false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '}') {\n if (bracecount > 0) {\n bracecount--;\n } else {\n var end = this.pos;\n this.match(\"}\", false);\n return this.input.substring(start, end);\n };\n } else if (this.input[this.pos] == '{') {\n bracecount++;\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value\";\n };\n };\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.value_comment = function() {\n var str = '';\n var brcktCnt = 0;\n while (!(this.tryMatch(\"}\", false) && brcktCnt == 0)) {\n str = str + this.input[this.pos];\n if (this.input[this.pos] == '{')\n brcktCnt++;\n if (this.input[this.pos] == '}')\n brcktCnt--;\n if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n this.pos++;\n };\n return str;\n };\n\n this.value_quotes = function() {\n this.match('\"', false);\n var start = this.pos;\n var escaped = false;\n while (true) {\n if (!escaped) {\n if (this.input[this.pos] == '\"') {\n var end = this.pos;\n this.match('\"', false);\n return this.input.substring(start, end);\n } else if (this.pos >= this.input.length - 1) {\n throw \"Unterminated value:\" + this.input.substring(start);\n };\n }\n if (this.input[this.pos] == '\\\\' && escaped == false)\n escaped = true;\n else\n escaped = false;\n this.pos++;\n };\n };\n\n this.single_value = function() {\n var start = this.pos;\n if (this.tryMatch(\"{\")) {\n return this.value_braces();\n } else if (this.tryMatch('\"')) {\n return this.value_quotes();\n } else {\n var k = this.key();\n if (k.match(\"^[0-9]+$\"))\n return k;\n else if (this.months.indexOf(k.toLowerCase()) >= 0)\n return k.toLowerCase();\n else\n throw \"Value expected:\" + this.input.substring(start) + ' for key: ' + k;\n \n };\n };\n\n this.value = function() {\n var values = [];\n values.push(this.single_value());\n while (this.tryMatch(\"#\")) {\n this.match(\"#\");\n values.push(this.single_value());\n };\n return values.join(\"\");\n };\n\n this.key = function(optional) {\n var start = this.pos;\n while (true) {\n if (this.pos >= this.input.length) {\n throw \"Runaway key\";\n };\n // а-яА-Я is Cyrillic\n //console.log(this.input[this.pos]);\n if (this.notKey.indexOf(this.input[this.pos]) >= 0) {\n if (optional && this.input[this.pos] != ',') {\n this.pos = start;\n return null;\n };\n return this.input.substring(start, this.pos);\n } else {\n this.pos++;\n \n };\n };\n };\n\n this.key_equals_value = function() {\n var key = this.key();\n if (this.tryMatch(\"=\")) {\n this.match(\"=\");\n var val = this.value();\n return [ key, val ];\n } else {\n throw \"... = value expected, equals sign missing:\"\n + this.input.substring(this.pos);\n };\n };\n\n this.key_value_list = function() {\n var kv = this.key_equals_value();\n this.currentEntry['entryTags'] = {};\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n while (this.tryMatch(\",\")) {\n this.match(\",\");\n // fixes problems with commas at the end of a list\n if (this.tryMatch(\"}\")) {\n break;\n }\n ;\n kv = this.key_equals_value();\n this.currentEntry['entryTags'][kv[0]] = kv[1];\n };\n };\n\n this.entry_body = function(d) {\n this.currentEntry = {};\n this.currentEntry['citationKey'] = this.key(true);\n this.currentEntry['entryType'] = d.substring(1);\n if (this.currentEntry['citationKey'] != null) { \n this.match(\",\");\n }\n this.key_value_list();\n this.entries.push(this.currentEntry);\n };\n\n this.directive = function() {\n this.match(\"@\");\n return \"@\" + this.key();\n };\n\n this.preamble = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'PREAMBLE';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.comment = function() {\n this.currentEntry = {};\n this.currentEntry['entryType'] = 'COMMENT';\n this.currentEntry['entry'] = this.value_comment();\n this.entries.push(this.currentEntry);\n };\n\n this.entry = function(d) {\n this.entry_body(d);\n };\n\n this.alernativeCitationKey = function () {\n this.entries.forEach(function (entry) {\n if (!entry.citationKey && entry.entryTags) {\n entry.citationKey = '';\n if (entry.entryTags.author) {\n entry.citationKey += entry.entryTags.author.split(',')[0] += ', ';\n }\n entry.citationKey += entry.entryTags.year;\n }\n });\n }\n\n this.bibtex = function() {\n while (this.matchAt()) {\n var d = this.directive();\n this.match(\"{\");\n if (d == \"@STRING\") {\n this.string();\n } else if (d == \"@PREAMBLE\") {\n this.preamble();\n } else if (d == \"@COMMENT\") {\n this.comment();\n } else {\n this.entry(d);\n }\n this.match(\"}\");\n };\n\n this.alernativeCitationKey();\n };\n };\n \n exports.toJSON = function(bibtex) {\n var b = new BibtexParser();\n b.setInput(bibtex);\n b.bibtex();\n return b.entries;\n };\n\n /* added during hackathon don't hate on me */\n exports.toBibtex = function(json) {\n var out = '';\n for ( var i in json) {\n out += \"@\" + json[i].entryType;\n out += '{';\n if (json[i].citationKey)\n out += json[i].citationKey + ', ';\n if (json[i].entry)\n out += json[i].entry ;\n if (json[i].entryTags) {\n var tags = '';\n for (var jdx in json[i].entryTags) {\n if (tags.length != 0)\n tags += ', ';\n tags += jdx + '= {' + json[i].entryTags[jdx] + '}';\n }\n out += tags;\n }\n out += '}\\n\\n';\n }\n return out;\n \n };\n\n})(typeof exports === 'undefined' ? this['bibtexParse'] = {} : exports);\n\n/* end bibtexParse */\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/bibtex/bibtexParse.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/bibtex/license": {
"text": "\nThe MIT License (MIT)\nCopyright (c) 2013 ORCID, Inc.\n\nCopyright (c) 2010 Henrik Muehe\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/bibtex/license"
}
}
}
{
"tiddlers": {
"$:/config/EditorTypeMappings/application/javascript": {
"title": "$:/config/EditorTypeMappings/application/javascript",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/application/json": {
"title": "$:/config/EditorTypeMappings/application/json",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/application/x-tiddler-dictionary": {
"title": "$:/config/EditorTypeMappings/application/x-tiddler-dictionary",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/css": {
"title": "$:/config/EditorTypeMappings/text/css",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/html": {
"title": "$:/config/EditorTypeMappings/text/html",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/plain": {
"title": "$:/config/EditorTypeMappings/text/plain",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/vnd.tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/vnd.tiddlywiki",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/x-markdown": {
"title": "$:/config/EditorTypeMappings/text/x-markdown",
"text": "codemirror"
},
"$:/config/EditorTypeMappings/text/x-tiddlywiki": {
"title": "$:/config/EditorTypeMappings/text/x-tiddlywiki",
"text": "codemirror"
},
"$:/config/codemirror/cursorBlinkRate": {
"title": "$:/config/codemirror/cursorBlinkRate",
"type": "integer",
"text": "530"
},
"$:/config/codemirror/extraKeysTW": {
"title": "$:/config/codemirror/extraKeysTW",
"extend": "extraKeys",
"type": "json",
"text": "{\n\t\"Ctrl-Esc\": \"singleSelection\",\n\t\"Esc\": \"\",\n\t\"Ctrl-S\": \"\",\n\t\"Ctrl-U\": \"\",\n\t\"Ctrl-T\": \"\",\n\t\"Alt-T\": \"transposeChars\",\n\t\"Alt-U\": \"undoSelection\",\n\t\"Shift-Alt-U\": \"redoSelection\",\n\t\"Cmd-U\": \"\",\n\t\"Tab\": \"indentAuto()\",\n\t\"Enter\": \"newLineAndIndent()\"\n}\n"
},
"$:/config/codemirror/indentUnit": {
"title": "$:/config/codemirror/indentUnit",
"type": "integer",
"text": "2"
},
"$:/config/codemirror/indentWithTabs": {
"title": "$:/config/codemirror/indentWithTabs",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/inputStyle": {
"title": "$:/config/codemirror/inputStyle",
"type": "string",
"text": "textarea"
},
"$:/config/codemirror/keyMap": {
"title": "$:/config/codemirror/keyMap",
"type": "string",
"text": "default"
},
"$:/config/codemirror/lineNumbers": {
"title": "$:/config/codemirror/lineNumbers",
"type": "bool",
"text": "false"
},
"$:/config/codemirror/lineWrapping": {
"title": "$:/config/codemirror/lineWrapping",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/showCursorWhenSelecting": {
"title": "$:/config/codemirror/showCursorWhenSelecting",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/smartIndent": {
"title": "$:/config/codemirror/smartIndent",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/styleActiveLine": {
"title": "$:/config/codemirror/styleActiveLine",
"type": "bool",
"text": "false"
},
"$:/config/codemirror/tabSize": {
"title": "$:/config/codemirror/tabSize",
"type": "integer",
"text": "2"
},
"$:/config/codemirror/theme": {
"title": "$:/config/codemirror/theme",
"type": "string",
"text": "default"
},
"$:/language/codemirror/homeUrl": {
"title": "$:/language/codemirror/homeUrl",
"text": "http://codemirror.net"
},
"$:/language/codemirror/addOnUrl": {
"title": "$:/language/codemirror/addOnUrl",
"text": "http://codemirror.net/doc/manual.html#addons"
},
"$:/language/codemirror/configUrl": {
"title": "$:/language/codemirror/configUrl",
"text": "http://codemirror.net/doc/manual.html#config"
},
"$:/language/codemirror/controlPanel/hint": {
"title": "$:/language/codemirror/controlPanel/hint",
"text": "These settings let you customise the behaviour of [[CodeMirror|$:/plugins/tiddlywiki/codemirror]]."
},
"$:/language/codemirror/controlPanel/usage": {
"title": "$:/language/codemirror/controlPanel/usage",
"text": "Usage information"
},
"$:/language/codemirror/editorFont/hint": {
"title": "$:/language/codemirror/editorFont/hint",
"text": "Editor font family"
},
"$:/language/codemirror/editorFont/info": {
"title": "$:/language/codemirror/editorFont/info",
"text": "Set the font family for the ~CodeMirror text-editor"
},
"$:/language/codemirror/controlPanel/keyboard": {
"title": "$:/language/codemirror/controlPanel/keyboard",
"text": "Keyboard shortcuts"
},
"$:/language/codemirror/keyMap/hint": {
"title": "$:/language/codemirror/keyMap/hint",
"text": "~CodeMirror keymap"
},
"$:/language/codemirror/keyMap/info": {
"title": "$:/language/codemirror/keyMap/info",
"text": "~The Keyboard KeyMap used within the ~CodeMirror text-editor"
},
"$:/language/codemirror/lineNumbers/hint": {
"title": "$:/language/codemirror/lineNumbers/hint",
"text": "Enable line numbers"
},
"$:/language/codemirror/lineNumbers/info": {
"title": "$:/language/codemirror/lineNumbers/info",
"text": "Whether to show line numbers to the left of the editor."
},
"$:/language/codemirror/lineWrapping/hint": {
"title": "$:/language/codemirror/lineWrapping/hint",
"text": "Enable line wrapping"
},
"$:/language/codemirror/lineWrapping/info": {
"title": "$:/language/codemirror/lineWrapping/info",
"text": "Whether CodeMirror should scroll or wrap for long lines. Defaults to `false` (scroll)."
},
"$:/language/codemirror/showCursorWhenSelecting/hint": {
"title": "$:/language/codemirror/showCursorWhenSelecting/hint",
"text": "Show cursor, when selecting"
},
"$:/language/codemirror/showCursorWhenSelecting/info": {
"title": "$:/language/codemirror/showCursorWhenSelecting/info",
"text": "Whether the cursor should be drawn when a selection is active."
},
"$:/language/codemirror/styleActiveLine/hint": {
"title": "$:/language/codemirror/styleActiveLine/hint",
"text": "Highlight active line"
},
"$:/language/codemirror/styleActiveLine/info": {
"title": "$:/language/codemirror/styleActiveLine/info",
"text": "Whether or not to highlight the active text-editor line"
},
"$:/language/codemirror/theme/hint": {
"title": "$:/language/codemirror/theme/hint",
"text": "Select a theme"
},
"$:/language/codemirror/theme/info": {
"title": "$:/language/codemirror/theme/info",
"text": "Choose between ~CodeMirror themes"
},
"$:/plugins/tiddlywiki/codemirror/edit-codemirror.js": {
"title": "$:/plugins/tiddlywiki/codemirror/edit-codemirror.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/edit-codemirror.js\ntype: application/javascript\nmodule-type: widget\n\nEdit-codemirror widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar editTextWidgetFactory = require(\"$:/core/modules/editor/factory.js\").editTextWidgetFactory,\n\tCodeMirrorEngine = require(\"$:/plugins/tiddlywiki/codemirror/engine.js\").CodeMirrorEngine;\n\nexports[\"edit-codemirror\"] = editTextWidgetFactory(CodeMirrorEngine,CodeMirrorEngine);\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/codemirror/engine.js": {
"title": "$:/plugins/tiddlywiki/codemirror/engine.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/codemirror/engine.js\ntype: application/javascript\nmodule-type: library\n\nText editor engine based on a CodeMirror instance\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar CODEMIRROR_OPTIONS = \"$:/config/CodeMirror\",\nHEIGHT_VALUE_TITLE = \"$:/config/TextEditor/EditorHeight/Height\",\nCONFIG_FILTER = \"[all[shadows+tiddlers]prefix[$:/config/codemirror/]]\"\n\t\n// Install CodeMirror\nif($tw.browser && !window.CodeMirror) {\n\n\tvar modules = $tw.modules.types[\"codemirror\"];\n\tvar req = Object.getOwnPropertyNames(modules);\n\n\twindow.CodeMirror = require(\"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js\");\n\t// Install required CodeMirror plugins\n\tif(req) {\n\t\tif($tw.utils.isArray(req)) {\n\t\t\tfor(var index=0; index<req.length; index++) {\n\t\t\t\trequire(req[index]);\n\t\t\t}\n\t\t} else {\n\t\t\trequire(req);\n\t\t}\n\t}\n}\n\nfunction getCmConfig() {\n\tvar type,\n\t\ttest,\n\t\tvalue,\n\t\telement,\n\t\textend,\n\t\ttiddler,\n\t\tconfig = {},\n\t\tconfigTiddlers = $tw.wiki.filterTiddlers(CONFIG_FILTER);\n\n\tif ($tw.utils.isArray(configTiddlers)) {\n\t\tfor (var i=0; i<configTiddlers.length; i++) {\n\t\t\ttiddler = $tw.wiki.getTiddler(configTiddlers[i]);\n\t\t\t\tif (tiddler) {\n\t\t\t\telement = configTiddlers[i].replace(/\\$:\\/config\\/codemirror\\//ig,\"\");\n\t\t\t\t\ttype = (tiddler.fields.type) ? tiddler.fields.type.trim().toLocaleLowerCase() : \"string\";\n\t\t\t\tswitch (type) {\n\t\t\t\t\tcase \"bool\":\n\t\t\t\t\ttest = tiddler.fields.text.trim().toLowerCase();\n\t\t\t\t\tvalue = (test === \"true\") ? true : false;\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"string\":\n\t\t\t\t\tvalue = tiddler.fields.text.trim();\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"integer\":\n\t\t\t\t\tvalue = parseInt(tiddler.fields.text.trim(), 10);\n\t\t\t\t\tconfig[element] = value;\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase \"json\":\n\t\t\t\t\tvalue = JSON.parse(tiddler.fields.text.trim());\n\t\t\t\t\t\textend = (tiddler.fields.extend) ? tiddler.fields.extend : element;\n\n\t\t\t\t\tif (config[extend]) {\n\t\t\t\t\t\t$tw.utils.extend(config[extend], value);\n\t\t\t\t\t} else {\n\t\t\t\t\t\tconfig[extend] = value;\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\treturn config;\n}\n\nfunction CodeMirrorEngine(options) {\n\n\t// Save our options\n\tvar self = this;\n\toptions = options || {};\n\tthis.widget = options.widget;\n\tthis.value = options.value;\n\tthis.parentNode = options.parentNode;\n\tthis.nextSibling = options.nextSibling;\n\t// Create the wrapper DIV\n\tthis.domNode = this.widget.document.createElement(\"div\");\n\tif(this.widget.editClass) {\n\t\tthis.domNode.className = this.widget.editClass;\n\t}\n\tthis.domNode.style.display = \"inline-block\";\n\tthis.parentNode.insertBefore(this.domNode,this.nextSibling);\n\tthis.widget.domNodes.push(this.domNode);\n\t\n\t// Set all cm-plugin defaults\n\t// Get the configuration options for the CodeMirror object\n\tvar config = getCmConfig();\n\n\tconfig.mode = options.type;\n\tconfig.value = options.value;\n\tif(this.widget.editTabIndex) {\n\t\tconfig[\"tabindex\"] = this.widget.editTabIndex;\n\t}\n\t// Create the CodeMirror instance\n\tthis.cm = window.CodeMirror(function(cmDomNode) {\n\t\t// Note that this is a synchronous callback that is called before the constructor returns\n\t\tif(!self.widget.document.isTiddlyWikiFakeDom) {\n\t\t\tself.domNode.appendChild(cmDomNode);\n\t\t}\n\t},config);\n\n\t// Set up a change event handler\n\tthis.cm.on(\"change\",function() {\n\t\tself.widget.saveChanges(self.getText());\n\t});\n\tthis.cm.on(\"drop\",function(cm,event) {\n\t\tevent.stopPropagation(); // Otherwise TW's dropzone widget sees the drop event\n\t\treturn false;\n\t});\n\tthis.cm.on(\"keydown\",function(cm,event) {\n\t\treturn self.widget.handleKeydownEvent.call(self.widget,event);\n\t});\n}\n\n/*\nSet the text of the engine if it doesn't currently have focus\n*/\nCodeMirrorEngine.prototype.setText = function(text,type) {\n\tvar self = this;\n\tself.cm.setOption(\"mode\",type);\n\tif(!this.cm.hasFocus()) {\n\t\tthis.cm.setValue(text);\n\t}\n};\n\n/*\nGet the text of the engine\n*/\nCodeMirrorEngine.prototype.getText = function() {\n\treturn this.cm.getValue();\n};\n\n/*\nFix the height of textarea to fit content\n*/\nCodeMirrorEngine.prototype.fixHeight = function() {\n\tif(this.widget.editAutoHeight) {\n\t\t// Resize to fit\n\t\tthis.cm.setSize(null,null);\n\t} else {\n\t\tvar fixedHeight = parseInt(this.widget.wiki.getTiddlerText(HEIGHT_VALUE_TITLE,\"400px\"),10);\n\t\tfixedHeight = Math.max(fixedHeight,20);\n\t\tthis.cm.setSize(null,fixedHeight);\n\t}\n};\n\n/*\nFocus the engine node\n*/\nCodeMirrorEngine.prototype.focus = function() {\n\tthis.cm.focus();\n}\n\n/*\nCreate a blank structure representing a text operation\n*/\nCodeMirrorEngine.prototype.createTextOperation = function() {\n\tvar selections = this.cm.listSelections();\n\tif(selections.length > 0) {\n\t\tvar anchorPos = this.cm.indexFromPos(selections[0].anchor),\n\t\theadPos = this.cm.indexFromPos(selections[0].head);\n\t}\n\tvar operation = {\n\t\ttext: this.cm.getValue(),\n\t\tselStart: Math.min(anchorPos,headPos),\n\t\tselEnd: Math.max(anchorPos,headPos),\n\t\tcutStart: null,\n\t\tcutEnd: null,\n\t\treplacement: null,\n\t\tnewSelStart: null,\n\t\tnewSelEnd: null\n\t};\n\toperation.selection = operation.text.substring(operation.selStart,operation.selEnd);\n\treturn operation;\n};\n\n/*\nExecute a text operation\n*/\nCodeMirrorEngine.prototype.executeTextOperation = function(operation) {\n\t// Perform the required changes to the text area and the underlying tiddler\n\tvar newText = operation.text;\n\tif(operation.replacement !== null) {\n\t\tthis.cm.replaceRange(operation.replacement,this.cm.posFromIndex(operation.cutStart),this.cm.posFromIndex(operation.cutEnd));\n\t\tthis.cm.setSelection(this.cm.posFromIndex(operation.newSelStart),this.cm.posFromIndex(operation.newSelEnd));\n\t\tnewText = operation.text.substring(0,operation.cutStart) + operation.replacement + operation.text.substring(operation.cutEnd);\n\t}\n\tthis.cm.focus();\n\treturn newText;\n};\n\nexports.CodeMirrorEngine = CodeMirrorEngine;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/codemirror/lib/codemirror.js": {
"text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=t():\"function\"==typeof define&&define.amd?define(t):e.CodeMirror=t()}(this,function(){\"use strict\";var e=navigator.userAgent,t=navigator.platform,r=/gecko\\/\\d/i.test(e),n=/MSIE \\d/.test(e),i=/Trident\\/(?:[7-9]|\\d{2,})\\..*rv:(\\d+)/.exec(e),o=/Edge\\/(\\d+)/.exec(e),l=n||i||o,s=l&&(n?document.documentMode||6:+(o||i)[1]),a=!o&&/WebKit\\//.test(e),u=a&&/Qt\\/\\d+\\.\\d+/.test(e),c=!o&&/Chrome\\//.test(e),h=/Opera\\//.test(e),f=/Apple Computer/.test(navigator.vendor),d=/Mac OS X 1\\d\\D([8-9]|\\d\\d)\\D/.test(e),p=/PhantomJS/.test(e),g=!o&&/AppleWebKit/.test(e)&&/Mobile\\/\\w+/.test(e),v=/Android/.test(e),m=g||v||/webOS|BlackBerry|Opera Mini|Opera Mobi|IEMobile/i.test(e),y=g||/Mac/.test(t),b=/\\bCrOS\\b/.test(e),w=/win/i.test(t),x=h&&e.match(/Version\\/(\\d*\\.\\d*)/);x&&(x=Number(x[1])),x&&x>=15&&(h=!1,a=!0);var C=y&&(u||h&&(null==x||x<12.11)),S=r||l&&s>=9;function L(e){return new RegExp(\"(^|\\\\s)\"+e+\"(?:$|\\\\s)\\\\s*\")}var k,T=function(e,t){var r=e.className,n=L(t).exec(r);if(n){var i=r.slice(n.index+n[0].length);e.className=r.slice(0,n.index)+(i?n[1]+i:\"\")}};function M(e){for(var t=e.childNodes.length;t>0;--t)e.removeChild(e.firstChild);return e}function N(e,t){return M(e).appendChild(t)}function O(e,t,r,n){var i=document.createElement(e);if(r&&(i.className=r),n&&(i.style.cssText=n),\"string\"==typeof t)i.appendChild(document.createTextNode(t));else if(t)for(var o=0;o<t.length;++o)i.appendChild(t[o]);return i}function A(e,t,r,n){var i=O(e,t,r,n);return i.setAttribute(\"role\",\"presentation\"),i}function D(e,t){if(3==t.nodeType&&(t=t.parentNode),e.contains)return e.contains(t);do{if(11==t.nodeType&&(t=t.host),t==e)return!0}while(t=t.parentNode)}function W(){var e;try{e=document.activeElement}catch(t){e=document.body||null}for(;e&&e.shadowRoot&&e.shadowRoot.activeElement;)e=e.shadowRoot.activeElement;return e}function H(e,t){var r=e.className;L(t).test(r)||(e.className+=(r?\" \":\"\")+t)}function F(e,t){for(var r=e.split(\" \"),n=0;n<r.length;n++)r[n]&&!L(r[n]).test(t)&&(t+=\" \"+r[n]);return t}k=document.createRange?function(e,t,r,n){var i=document.createRange();return i.setEnd(n||e,r),i.setStart(e,t),i}:function(e,t,r){var n=document.body.createTextRange();try{n.moveToElementText(e.parentNode)}catch(e){return n}return n.collapse(!0),n.moveEnd(\"character\",r),n.moveStart(\"character\",t),n};var P=function(e){e.select()};function E(e){var t=Array.prototype.slice.call(arguments,1);return function(){return e.apply(null,t)}}function z(e,t,r){for(var n in t||(t={}),e)!e.hasOwnProperty(n)||!1===r&&t.hasOwnProperty(n)||(t[n]=e[n]);return t}function I(e,t,r,n,i){null==t&&-1==(t=e.search(/[^\\s\\u00a0]/))&&(t=e.length);for(var o=n||0,l=i||0;;){var s=e.indexOf(\"\\t\",o);if(s<0||s>=t)return l+(t-o);l+=s-o,l+=r-l%r,o=s+1}}g?P=function(e){e.selectionStart=0,e.selectionEnd=e.value.length}:l&&(P=function(e){try{e.select()}catch(e){}});var R=function(){this.id=null};function B(e,t){for(var r=0;r<e.length;++r)if(e[r]==t)return r;return-1}R.prototype.set=function(e,t){clearTimeout(this.id),this.id=setTimeout(t,e)};var G=30,U={toString:function(){return\"CodeMirror.Pass\"}},V={scroll:!1},K={origin:\"*mouse\"},j={origin:\"+move\"};function X(e,t,r){for(var n=0,i=0;;){var o=e.indexOf(\"\\t\",n);-1==o&&(o=e.length);var l=o-n;if(o==e.length||i+l>=t)return n+Math.min(l,t-i);if(i+=o-n,n=o+1,(i+=r-i%r)>=t)return n}}var Y=[\"\"];function _(e){for(;Y.length<=e;)Y.push(q(Y)+\" \");return Y[e]}function q(e){return e[e.length-1]}function $(e,t){for(var r=[],n=0;n<e.length;n++)r[n]=t(e[n],n);return r}function Z(){}function Q(e,t){var r;return Object.create?r=Object.create(e):(Z.prototype=e,r=new Z),t&&z(t,r),r}var J=/[\\u00df\\u0587\\u0590-\\u05f4\\u0600-\\u06ff\\u3040-\\u309f\\u30a0-\\u30ff\\u3400-\\u4db5\\u4e00-\\u9fcc\\uac00-\\ud7af]/;function ee(e){return/\\w/.test(e)||e>\"\"&&(e.toUpperCase()!=e.toLowerCase()||J.test(e))}function te(e,t){return t?!!(t.source.indexOf(\"\\\\w\")>-1&&ee(e))||t.test(e):ee(e)}function re(e){for(var t in e)if(e.hasOwnProperty(t)&&e[t])return!1;return!0}var ne=/[\\u0300-\\u036f\\u0483-\\u0489\\u0591-\\u05bd\\u05bf\\u05c1\\u05c2\\u05c4\\u05c5\\u05c7\\u0610-\\u061a\\u064b-\\u065e\\u0670\\u06d6-\\u06dc\\u06de-\\u06e4\\u06e7\\u06e8\\u06ea-\\u06ed\\u0711\\u0730-\\u074a\\u07a6-\\u07b0\\u07eb-\\u07f3\\u0816-\\u0819\\u081b-\\u0823\\u0825-\\u0827\\u0829-\\u082d\\u0900-\\u0902\\u093c\\u0941-\\u0948\\u094d\\u0951-\\u0955\\u0962\\u0963\\u0981\\u09bc\\u09be\\u09c1-\\u09c4\\u09cd\\u09d7\\u09e2\\u09e3\\u0a01\\u0a02\\u0a3c\\u0a41\\u0a42\\u0a47\\u0a48\\u0a4b-\\u0a4d\\u0a51\\u0a70\\u0a71\\u0a75\\u0a81\\u0a82\\u0abc\\u0ac1-\\u0ac5\\u0ac7\\u0ac8\\u0acd\\u0ae2\\u0ae3\\u0b01\\u0b3c\\u0b3e\\u0b3f\\u0b41-\\u0b44\\u0b4d\\u0b56\\u0b57\\u0b62\\u0b63\\u0b82\\u0bbe\\u0bc0\\u0bcd\\u0bd7\\u0c3e-\\u0c40\\u0c46-\\u0c48\\u0c4a-\\u0c4d\\u0c55\\u0c56\\u0c62\\u0c63\\u0cbc\\u0cbf\\u0cc2\\u0cc6\\u0ccc\\u0ccd\\u0cd5\\u0cd6\\u0ce2\\u0ce3\\u0d3e\\u0d41-\\u0d44\\u0d4d\\u0d57\\u0d62\\u0d63\\u0dca\\u0dcf\\u0dd2-\\u0dd4\\u0dd6\\u0ddf\\u0e31\\u0e34-\\u0e3a\\u0e47-\\u0e4e\\u0eb1\\u0eb4-\\u0eb9\\u0ebb\\u0ebc\\u0ec8-\\u0ecd\\u0f18\\u0f19\\u0f35\\u0f37\\u0f39\\u0f71-\\u0f7e\\u0f80-\\u0f84\\u0f86\\u0f87\\u0f90-\\u0f97\\u0f99-\\u0fbc\\u0fc6\\u102d-\\u1030\\u1032-\\u1037\\u1039\\u103a\\u103d\\u103e\\u1058\\u1059\\u105e-\\u1060\\u1071-\\u1074\\u1082\\u1085\\u1086\\u108d\\u109d\\u135f\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17b7-\\u17bd\\u17c6\\u17c9-\\u17d3\\u17dd\\u180b-\\u180d\\u18a9\\u1920-\\u1922\\u1927\\u1928\\u1932\\u1939-\\u193b\\u1a17\\u1a18\\u1a56\\u1a58-\\u1a5e\\u1a60\\u1a62\\u1a65-\\u1a6c\\u1a73-\\u1a7c\\u1a7f\\u1b00-\\u1b03\\u1b34\\u1b36-\\u1b3a\\u1b3c\\u1b42\\u1b6b-\\u1b73\\u1b80\\u1b81\\u1ba2-\\u1ba5\\u1ba8\\u1ba9\\u1c2c-\\u1c33\\u1c36\\u1c37\\u1cd0-\\u1cd2\\u1cd4-\\u1ce0\\u1ce2-\\u1ce8\\u1ced\\u1dc0-\\u1de6\\u1dfd-\\u1dff\\u200c\\u200d\\u20d0-\\u20f0\\u2cef-\\u2cf1\\u2de0-\\u2dff\\u302a-\\u302f\\u3099\\u309a\\ua66f-\\ua672\\ua67c\\ua67d\\ua6f0\\ua6f1\\ua802\\ua806\\ua80b\\ua825\\ua826\\ua8c4\\ua8e0-\\ua8f1\\ua926-\\ua92d\\ua947-\\ua951\\ua980-\\ua982\\ua9b3\\ua9b6-\\ua9b9\\ua9bc\\uaa29-\\uaa2e\\uaa31\\uaa32\\uaa35\\uaa36\\uaa43\\uaa4c\\uaab0\\uaab2-\\uaab4\\uaab7\\uaab8\\uaabe\\uaabf\\uaac1\\uabe5\\uabe8\\uabed\\udc00-\\udfff\\ufb1e\\ufe00-\\ufe0f\\ufe20-\\ufe26\\uff9e\\uff9f]/;function ie(e){return e.charCodeAt(0)>=768&&ne.test(e)}function oe(e,t,r){for(;(r<0?t>0:t<e.length)&&ie(e.charAt(t));)t+=r;return t}function le(e,t,r){for(var n=t>r?-1:1;;){if(t==r)return t;var i=(t+r)/2,o=n<0?Math.ceil(i):Math.floor(i);if(o==t)return e(o)?t:r;e(o)?r=o:t=o+n}}function se(e,t){if((t-=e.first)<0||t>=e.size)throw new Error(\"There is no line \"+(t+e.first)+\" in the document.\");for(var r=e;!r.lines;)for(var n=0;;++n){var i=r.children[n],o=i.chunkSize();if(t<o){r=i;break}t-=o}return r.lines[t]}function ae(e,t,r){var n=[],i=t.line;return e.iter(t.line,r.line+1,function(e){var o=e.text;i==r.line&&(o=o.slice(0,r.ch)),i==t.line&&(o=o.slice(t.ch)),n.push(o),++i}),n}function ue(e,t,r){var n=[];return e.iter(t,r,function(e){n.push(e.text)}),n}function ce(e,t){var r=t-e.height;if(r)for(var n=e;n;n=n.parent)n.height+=r}function he(e){if(null==e.parent)return null;for(var t=e.parent,r=B(t.lines,e),n=t.parent;n;t=n,n=n.parent)for(var i=0;n.children[i]!=t;++i)r+=n.children[i].chunkSize();return r+t.first}function fe(e,t){var r=e.first;e:do{for(var n=0;n<e.children.length;++n){var i=e.children[n],o=i.height;if(t<o){e=i;continue e}t-=o,r+=i.chunkSize()}return r}while(!e.lines);for(var l=0;l<e.lines.length;++l){var s=e.lines[l].height;if(t<s)break;t-=s}return r+l}function de(e,t){return t>=e.first&&t<e.first+e.size}function pe(e,t){return String(e.lineNumberFormatter(t+e.firstLineNumber))}function ge(e,t,r){if(void 0===r&&(r=null),!(this instanceof ge))return new ge(e,t,r);this.line=e,this.ch=t,this.sticky=r}function ve(e,t){return e.line-t.line||e.ch-t.ch}function me(e,t){return e.sticky==t.sticky&&0==ve(e,t)}function ye(e){return ge(e.line,e.ch)}function be(e,t){return ve(e,t)<0?t:e}function we(e,t){return ve(e,t)<0?e:t}function xe(e,t){return Math.max(e.first,Math.min(t,e.first+e.size-1))}function Ce(e,t){if(t.line<e.first)return ge(e.first,0);var r,n,i,o=e.first+e.size-1;return t.line>o?ge(o,se(e,o).text.length):(r=t,n=se(e,t.line).text.length,null==(i=r.ch)||i>n?ge(r.line,n):i<0?ge(r.line,0):r)}function Se(e,t){for(var r=[],n=0;n<t.length;n++)r[n]=Ce(e,t[n]);return r}var Le=!1,ke=!1;function Te(e,t,r){this.marker=e,this.from=t,this.to=r}function Me(e,t){if(e)for(var r=0;r<e.length;++r){var n=e[r];if(n.marker==t)return n}}function Ne(e,t){for(var r,n=0;n<e.length;++n)e[n]!=t&&(r||(r=[])).push(e[n]);return r}function Oe(e,t){if(t.full)return null;var r=de(e,t.from.line)&&se(e,t.from.line).markedSpans,n=de(e,t.to.line)&&se(e,t.to.line).markedSpans;if(!r&&!n)return null;var i=t.from.ch,o=t.to.ch,l=0==ve(t.from,t.to),s=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t)||o.from==t&&\"bookmark\"==l.type&&(!r||!o.marker.insertLeft)){var s=null==o.to||(l.inclusiveRight?o.to>=t:o.to>t);(n||(n=[])).push(new Te(l,o.from,s?null:o.to))}}return n}(r,i,l),a=function(e,t,r){var n;if(e)for(var i=0;i<e.length;++i){var o=e[i],l=o.marker;if(null==o.to||(l.inclusiveRight?o.to>=t:o.to>t)||o.from==t&&\"bookmark\"==l.type&&(!r||o.marker.insertLeft)){var s=null==o.from||(l.inclusiveLeft?o.from<=t:o.from<t);(n||(n=[])).push(new Te(l,s?null:o.from-t,null==o.to?null:o.to-t))}}return n}(n,o,l),u=1==t.text.length,c=q(t.text).length+(u?i:0);if(s)for(var h=0;h<s.length;++h){var f=s[h];if(null==f.to){var d=Me(a,f.marker);d?u&&(f.to=null==d.to?null:d.to+c):f.to=i}}if(a)for(var p=0;p<a.length;++p){var g=a[p];if(null!=g.to&&(g.to+=c),null==g.from)Me(s,g.marker)||(g.from=c,u&&(s||(s=[])).push(g));else g.from+=c,u&&(s||(s=[])).push(g)}s&&(s=Ae(s)),a&&a!=s&&(a=Ae(a));var v=[s];if(!u){var m,y=t.text.length-2;if(y>0&&s)for(var b=0;b<s.length;++b)null==s[b].to&&(m||(m=[])).push(new Te(s[b].marker,null,null));for(var w=0;w<y;++w)v.push(m);v.push(a)}return v}function Ae(e){for(var t=0;t<e.length;++t){var r=e[t];null!=r.from&&r.from==r.to&&!1!==r.marker.clearWhenEmpty&&e.splice(t--,1)}return e.length?e:null}function De(e){var t=e.markedSpans;if(t){for(var r=0;r<t.length;++r)t[r].marker.detachLine(e);e.markedSpans=null}}function We(e,t){if(t){for(var r=0;r<t.length;++r)t[r].marker.attachLine(e);e.markedSpans=t}}function He(e){return e.inclusiveLeft?-1:0}function Fe(e){return e.inclusiveRight?1:0}function Pe(e,t){var r=e.lines.length-t.lines.length;if(0!=r)return r;var n=e.find(),i=t.find(),o=ve(n.from,i.from)||He(e)-He(t);if(o)return-o;var l=ve(n.to,i.to)||Fe(e)-Fe(t);return l||t.id-e.id}function Ee(e,t){var r,n=ke&&e.markedSpans;if(n)for(var i=void 0,o=0;o<n.length;++o)(i=n[o]).marker.collapsed&&null==(t?i.from:i.to)&&(!r||Pe(r,i.marker)<0)&&(r=i.marker);return r}function ze(e){return Ee(e,!0)}function Ie(e){return Ee(e,!1)}function Re(e,t,r,n,i){var o=se(e,t),l=ke&&o.markedSpans;if(l)for(var s=0;s<l.length;++s){var a=l[s];if(a.marker.collapsed){var u=a.marker.find(0),c=ve(u.from,r)||He(a.marker)-He(i),h=ve(u.to,n)||Fe(a.marker)-Fe(i);if(!(c>=0&&h<=0||c<=0&&h>=0)&&(c<=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?ve(u.to,r)>=0:ve(u.to,r)>0)||c>=0&&(a.marker.inclusiveRight&&i.inclusiveLeft?ve(u.from,n)<=0:ve(u.from,n)<0)))return!0}}}function Be(e){for(var t;t=ze(e);)e=t.find(-1,!0).line;return e}function Ge(e,t){var r=se(e,t),n=Be(r);return r==n?t:he(n)}function Ue(e,t){if(t>e.lastLine())return t;var r,n=se(e,t);if(!Ve(e,n))return t;for(;r=Ie(n);)n=r.find(1,!0).line;return he(n)+1}function Ve(e,t){var r=ke&&t.markedSpans;if(r)for(var n=void 0,i=0;i<r.length;++i)if((n=r[i]).marker.collapsed){if(null==n.from)return!0;if(!n.marker.widgetNode&&0==n.from&&n.marker.inclusiveLeft&&Ke(e,t,n))return!0}}function Ke(e,t,r){if(null==r.to){var n=r.marker.find(1,!0);return Ke(e,n.line,Me(n.line.markedSpans,r.marker))}if(r.marker.inclusiveRight&&r.to==t.text.length)return!0;for(var i=void 0,o=0;o<t.markedSpans.length;++o)if((i=t.markedSpans[o]).marker.collapsed&&!i.marker.widgetNode&&i.from==r.to&&(null==i.to||i.to!=r.from)&&(i.marker.inclusiveLeft||r.marker.inclusiveRight)&&Ke(e,t,i))return!0}function je(e){for(var t=0,r=(e=Be(e)).parent,n=0;n<r.lines.length;++n){var i=r.lines[n];if(i==e)break;t+=i.height}for(var o=r.parent;o;o=(r=o).parent)for(var l=0;l<o.children.length;++l){var s=o.children[l];if(s==r)break;t+=s.height}return t}function Xe(e){if(0==e.height)return 0;for(var t,r=e.text.length,n=e;t=ze(n);){var i=t.find(0,!0);n=i.from.line,r+=i.from.ch-i.to.ch}for(n=e;t=Ie(n);){var o=t.find(0,!0);r-=n.text.length-o.from.ch,r+=(n=o.to.line).text.length-o.to.ch}return r}function Ye(e){var t=e.display,r=e.doc;t.maxLine=se(r,r.first),t.maxLineLength=Xe(t.maxLine),t.maxLineChanged=!0,r.iter(function(e){var r=Xe(e);r>t.maxLineLength&&(t.maxLineLength=r,t.maxLine=e)})}var _e=null;function qe(e,t,r){var n;_e=null;for(var i=0;i<e.length;++i){var o=e[i];if(o.from<t&&o.to>t)return i;o.to==t&&(o.from!=o.to&&\"before\"==r?n=i:_e=i),o.from==t&&(o.from!=o.to&&\"before\"!=r?n=i:_e=i)}return null!=n?n:_e}var $e=function(){var e=\"bbbbbbbbbtstwsbbbbbbbbbbbbbbssstwNN%%%NNNNNN,N,N1111111111NNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNNNLLLLLLLLLLLLLLLLLLLLLLLLLLNNNNbbbbbbsbbbbbbbbbbbbbbbbbbbbbbbbbb,N%%%%NNNNLNNNNN%%11NLNNN1LNNNNNLLLLLLLLLLLLLLLLLLLLLLLNLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLLN\",t=\"nnnnnnNNr%%r,rNNmmmmmmmmmmmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmmmmmmmmmmmmmmmnnnnnnnnnn%nnrrrmrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrmmmmmmmnNmmmmmmrrmmNmmmmrr1111111111\";var r=/[\\u0590-\\u05f4\\u0600-\\u06ff\\u0700-\\u08ac]/,n=/[stwN]/,i=/[LRr]/,o=/[Lb1n]/,l=/[1n]/;function s(e,t,r){this.level=e,this.from=t,this.to=r}return function(a,u){var c=\"ltr\"==u?\"L\":\"R\";if(0==a.length||\"ltr\"==u&&!r.test(a))return!1;for(var h,f=a.length,d=[],p=0;p<f;++p)d.push((h=a.charCodeAt(p))<=247?e.charAt(h):1424<=h&&h<=1524?\"R\":1536<=h&&h<=1785?t.charAt(h-1536):1774<=h&&h<=2220?\"r\":8192<=h&&h<=8203?\"w\":8204==h?\"b\":\"L\");for(var g=0,v=c;g<f;++g){var m=d[g];\"m\"==m?d[g]=v:v=m}for(var y=0,b=c;y<f;++y){var w=d[y];\"1\"==w&&\"r\"==b?d[y]=\"n\":i.test(w)&&(b=w,\"r\"==w&&(d[y]=\"R\"))}for(var x=1,C=d[0];x<f-1;++x){var S=d[x];\"+\"==S&&\"1\"==C&&\"1\"==d[x+1]?d[x]=\"1\":\",\"!=S||C!=d[x+1]||\"1\"!=C&&\"n\"!=C||(d[x]=C),C=S}for(var L=0;L<f;++L){var k=d[L];if(\",\"==k)d[L]=\"N\";else if(\"%\"==k){var T=void 0;for(T=L+1;T<f&&\"%\"==d[T];++T);for(var M=L&&\"!\"==d[L-1]||T<f&&\"1\"==d[T]?\"1\":\"N\",N=L;N<T;++N)d[N]=M;L=T-1}}for(var O=0,A=c;O<f;++O){var D=d[O];\"L\"==A&&\"1\"==D?d[O]=\"L\":i.test(D)&&(A=D)}for(var W=0;W<f;++W)if(n.test(d[W])){var H=void 0;for(H=W+1;H<f&&n.test(d[H]);++H);for(var F=\"L\"==(W?d[W-1]:c),P=F==(\"L\"==(H<f?d[H]:c))?F?\"L\":\"R\":c,E=W;E<H;++E)d[E]=P;W=H-1}for(var z,I=[],R=0;R<f;)if(o.test(d[R])){var B=R;for(++R;R<f&&o.test(d[R]);++R);I.push(new s(0,B,R))}else{var G=R,U=I.length;for(++R;R<f&&\"L\"!=d[R];++R);for(var V=G;V<R;)if(l.test(d[V])){G<V&&I.splice(U,0,new s(1,G,V));var K=V;for(++V;V<R&&l.test(d[V]);++V);I.splice(U,0,new s(2,K,V)),G=V}else++V;G<R&&I.splice(U,0,new s(1,G,R))}return\"ltr\"==u&&(1==I[0].level&&(z=a.match(/^\\s+/))&&(I[0].from=z[0].length,I.unshift(new s(0,0,z[0].length))),1==q(I).level&&(z=a.match(/\\s+$/))&&(q(I).to-=z[0].length,I.push(new s(0,f-z[0].length,f)))),\"rtl\"==u?I.reverse():I}}();function Ze(e,t){var r=e.order;return null==r&&(r=e.order=$e(e.text,t)),r}var Qe=[],Je=function(e,t,r){if(e.addEventListener)e.addEventListener(t,r,!1);else if(e.attachEvent)e.attachEvent(\"on\"+t,r);else{var n=e._handlers||(e._handlers={});n[t]=(n[t]||Qe).concat(r)}};function et(e,t){return e._handlers&&e._handlers[t]||Qe}function tt(e,t,r){if(e.removeEventListener)e.removeEventListener(t,r,!1);else if(e.detachEvent)e.detachEvent(\"on\"+t,r);else{var n=e._handlers,i=n&&n[t];if(i){var o=B(i,r);o>-1&&(n[t]=i.slice(0,o).concat(i.slice(o+1)))}}}function rt(e,t){var r=et(e,t);if(r.length)for(var n=Array.prototype.slice.call(arguments,2),i=0;i<r.length;++i)r[i].apply(null,n)}function nt(e,t,r){return\"string\"==typeof t&&(t={type:t,preventDefault:function(){this.defaultPrevented=!0}}),rt(e,r||t.type,e,t),ut(t)||t.codemirrorIgnore}function it(e){var t=e._handlers&&e._handlers.cursorActivity;if(t)for(var r=e.curOp.cursorActivityHandlers||(e.curOp.cursorActivityHandlers=[]),n=0;n<t.length;++n)-1==B(r,t[n])&&r.push(t[n])}function ot(e,t){return et(e,t).length>0}function lt(e){e.prototype.on=function(e,t){Je(this,e,t)},e.prototype.off=function(e,t){tt(this,e,t)}}function st(e){e.preventDefault?e.preventDefault():e.returnValue=!1}function at(e){e.stopPropagation?e.stopPropagation():e.cancelBubble=!0}function ut(e){return null!=e.defaultPrevented?e.defaultPrevented:0==e.returnValue}function ct(e){st(e),at(e)}function ht(e){return e.target||e.srcElement}function ft(e){var t=e.which;return null==t&&(1&e.button?t=1:2&e.button?t=3:4&e.button&&(t=2)),y&&e.ctrlKey&&1==t&&(t=3),t}var dt,pt,gt=function(){if(l&&s<9)return!1;var e=O(\"div\");return\"draggable\"in e||\"dragDrop\"in e}();function vt(e){if(null==dt){var t=O(\"span\",\"\");N(e,O(\"span\",[t,document.createTextNode(\"x\")])),0!=e.firstChild.offsetHeight&&(dt=t.offsetWidth<=1&&t.offsetHeight>2&&!(l&&s<8))}var r=dt?O(\"span\",\"\"):O(\"span\",\" \",null,\"display: inline-block; width: 1px; margin-right: -1px\");return r.setAttribute(\"cm-text\",\"\"),r}function mt(e){if(null!=pt)return pt;var t=N(e,document.createTextNode(\"AخA\")),r=k(t,0,1).getBoundingClientRect(),n=k(t,1,2).getBoundingClientRect();return M(e),!(!r||r.left==r.right)&&(pt=n.right-r.right<3)}var yt,bt=3!=\"\\n\\nb\".split(/\\n/).length?function(e){for(var t=0,r=[],n=e.length;t<=n;){var i=e.indexOf(\"\\n\",t);-1==i&&(i=e.length);var o=e.slice(t,\"\\r\"==e.charAt(i-1)?i-1:i),l=o.indexOf(\"\\r\");-1!=l?(r.push(o.slice(0,l)),t+=l+1):(r.push(o),t=i+1)}return r}:function(e){return e.split(/\\r\\n?|\\n/)},wt=window.getSelection?function(e){try{return e.selectionStart!=e.selectionEnd}catch(e){return!1}}:function(e){var t;try{t=e.ownerDocument.selection.createRange()}catch(e){}return!(!t||t.parentElement()!=e)&&0!=t.compareEndPoints(\"StartToEnd\",t)},xt=\"oncopy\"in(yt=O(\"div\"))||(yt.setAttribute(\"oncopy\",\"return;\"),\"function\"==typeof yt.oncopy),Ct=null;var St={},Lt={};function kt(e){if(\"string\"==typeof e&&Lt.hasOwnProperty(e))e=Lt[e];else if(e&&\"string\"==typeof e.name&&Lt.hasOwnProperty(e.name)){var t=Lt[e.name];\"string\"==typeof t&&(t={name:t}),(e=Q(t,e)).name=t.name}else{if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+xml$/.test(e))return kt(\"application/xml\");if(\"string\"==typeof e&&/^[\\w\\-]+\\/[\\w\\-]+\\+json$/.test(e))return kt(\"application/json\")}return\"string\"==typeof e?{name:e}:e||{name:\"null\"}}function Tt(e,t){t=kt(t);var r=St[t.name];if(!r)return Tt(e,\"text/plain\");var n=r(e,t);if(Mt.hasOwnProperty(t.name)){var i=Mt[t.name];for(var o in i)i.hasOwnProperty(o)&&(n.hasOwnProperty(o)&&(n[\"_\"+o]=n[o]),n[o]=i[o])}if(n.name=t.name,t.helperType&&(n.helperType=t.helperType),t.modeProps)for(var l in t.modeProps)n[l]=t.modeProps[l];return n}var Mt={};function Nt(e,t){z(t,Mt.hasOwnProperty(e)?Mt[e]:Mt[e]={})}function Ot(e,t){if(!0===t)return t;if(e.copyState)return e.copyState(t);var r={};for(var n in t){var i=t[n];i instanceof Array&&(i=i.concat([])),r[n]=i}return r}function At(e,t){for(var r;e.innerMode&&(r=e.innerMode(t))&&r.mode!=e;)t=r.state,e=r.mode;return r||{mode:e,state:t}}function Dt(e,t,r){return!e.startState||e.startState(t,r)}var Wt=function(e,t,r){this.pos=this.start=0,this.string=e,this.tabSize=t||8,this.lastColumnPos=this.lastColumnValue=0,this.lineStart=0,this.lineOracle=r};Wt.prototype.eol=function(){return this.pos>=this.string.length},Wt.prototype.sol=function(){return this.pos==this.lineStart},Wt.prototype.peek=function(){return this.string.charAt(this.pos)||void 0},Wt.prototype.next=function(){if(this.pos<this.string.length)return this.string.charAt(this.pos++)},Wt.prototype.eat=function(e){var t=this.string.charAt(this.pos);if(\"string\"==typeof e?t==e:t&&(e.test?e.test(t):e(t)))return++this.pos,t},Wt.prototype.eatWhile=function(e){for(var t=this.pos;this.eat(e););return this.pos>t},Wt.prototype.eatSpace=function(){for(var e=this.pos;/[\\s\\u00a0]/.test(this.string.charAt(this.pos));)++this.pos;return this.pos>e},Wt.prototype.skipToEnd=function(){this.pos=this.string.length},Wt.prototype.skipTo=function(e){var t=this.string.indexOf(e,this.pos);if(t>-1)return this.pos=t,!0},Wt.prototype.backUp=function(e){this.pos-=e},Wt.prototype.column=function(){return this.lastColumnPos<this.start&&(this.lastColumnValue=I(this.string,this.start,this.tabSize,this.lastColumnPos,this.lastColumnValue),this.lastColumnPos=this.start),this.lastColumnValue-(this.lineStart?I(this.string,this.lineStart,this.tabSize):0)},Wt.prototype.indentation=function(){return I(this.string,null,this.tabSize)-(this.lineStart?I(this.string,this.lineStart,this.tabSize):0)},Wt.prototype.match=function(e,t,r){if(\"string\"!=typeof e){var n=this.string.slice(this.pos).match(e);return n&&n.index>0?null:(n&&!1!==t&&(this.pos+=n[0].length),n)}var i=function(e){return r?e.toLowerCase():e};if(i(this.string.substr(this.pos,e.length))==i(e))return!1!==t&&(this.pos+=e.length),!0},Wt.prototype.current=function(){return this.string.slice(this.start,this.pos)},Wt.prototype.hideFirstChars=function(e,t){this.lineStart+=e;try{return t()}finally{this.lineStart-=e}},Wt.prototype.lookAhead=function(e){var t=this.lineOracle;return t&&t.lookAhead(e)},Wt.prototype.baseToken=function(){var e=this.lineOracle;return e&&e.baseToken(this.pos)};var Ht=function(e,t){this.state=e,this.lookAhead=t},Ft=function(e,t,r,n){this.state=t,this.doc=e,this.line=r,this.maxLookAhead=n||0,this.baseTokens=null,this.baseTokenPos=1};function Pt(e,t,r,n){var i=[e.state.modeGen],o={};Kt(e,t.text,e.doc.mode,r,function(e,t){return i.push(e,t)},o,n);for(var l=r.state,s=function(n){r.baseTokens=i;var s=e.state.overlays[n],a=1,u=0;r.state=!0,Kt(e,t.text,s.mode,r,function(e,t){for(var r=a;u<e;){var n=i[a];n>e&&i.splice(a,1,e,i[a+1],n),a+=2,u=Math.min(e,n)}if(t)if(s.opaque)i.splice(r,a-r,e,\"overlay \"+t),a=r+2;else for(;r<a;r+=2){var o=i[r+1];i[r+1]=(o?o+\" \":\"\")+\"overlay \"+t}},o),r.state=l,r.baseTokens=null,r.baseTokenPos=1},a=0;a<e.state.overlays.length;++a)s(a);return{styles:i,classes:o.bgClass||o.textClass?o:null}}function Et(e,t,r){if(!t.styles||t.styles[0]!=e.state.modeGen){var n=zt(e,he(t)),i=t.text.length>e.options.maxHighlightLength&&Ot(e.doc.mode,n.state),o=Pt(e,t,n);i&&(n.state=i),t.stateAfter=n.save(!i),t.styles=o.styles,o.classes?t.styleClasses=o.classes:t.styleClasses&&(t.styleClasses=null),r===e.doc.highlightFrontier&&(e.doc.modeFrontier=Math.max(e.doc.modeFrontier,++e.doc.highlightFrontier))}return t.styles}function zt(e,t,r){var n=e.doc,i=e.display;if(!n.mode.startState)return new Ft(n,!0,t);var o=function(e,t,r){for(var n,i,o=e.doc,l=r?-1:t-(e.doc.mode.innerMode?1e3:100),s=t;s>l;--s){if(s<=o.first)return o.first;var a=se(o,s-1),u=a.stateAfter;if(u&&(!r||s+(u instanceof Ht?u.lookAhead:0)<=o.modeFrontier))return s;var c=I(a.text,null,e.options.tabSize);(null==i||n>c)&&(i=s-1,n=c)}return i}(e,t,r),l=o>n.first&&se(n,o-1).stateAfter,s=l?Ft.fromSaved(n,l,o):new Ft(n,Dt(n.mode),o);return n.iter(o,t,function(r){It(e,r.text,s);var n=s.line;r.stateAfter=n==t-1||n%5==0||n>=i.viewFrom&&n<i.viewTo?s.save():null,s.nextLine()}),r&&(n.modeFrontier=s.line),s}function It(e,t,r,n){var i=e.doc.mode,o=new Wt(t,e.options.tabSize,r);for(o.start=o.pos=n||0,\"\"==t&&Rt(i,r.state);!o.eol();)Bt(i,o,r.state),o.start=o.pos}function Rt(e,t){if(e.blankLine)return e.blankLine(t);if(e.innerMode){var r=At(e,t);return r.mode.blankLine?r.mode.blankLine(r.state):void 0}}function Bt(e,t,r,n){for(var i=0;i<10;i++){n&&(n[0]=At(e,r).mode);var o=e.token(t,r);if(t.pos>t.start)return o}throw new Error(\"Mode \"+e.name+\" failed to advance stream.\")}Ft.prototype.lookAhead=function(e){var t=this.doc.getLine(this.line+e);return null!=t&&e>this.maxLookAhead&&(this.maxLookAhead=e),t},Ft.prototype.baseToken=function(e){if(!this.baseTokens)return null;for(;this.baseTokens[this.baseTokenPos]<=e;)this.baseTokenPos+=2;var t=this.baseTokens[this.baseTokenPos+1];return{type:t&&t.replace(/( |^)overlay .*/,\"\"),size:this.baseTokens[this.baseTokenPos]-e}},Ft.prototype.nextLine=function(){this.line++,this.maxLookAhead>0&&this.maxLookAhead--},Ft.fromSaved=function(e,t,r){return t instanceof Ht?new Ft(e,Ot(e.mode,t.state),r,t.lookAhead):new Ft(e,Ot(e.mode,t),r)},Ft.prototype.save=function(e){var t=!1!==e?Ot(this.doc.mode,this.state):this.state;return this.maxLookAhead>0?new Ht(t,this.maxLookAhead):t};var Gt=function(e,t,r){this.start=e.start,this.end=e.pos,this.string=e.current(),this.type=t||null,this.state=r};function Ut(e,t,r,n){var i,o,l=e.doc,s=l.mode,a=se(l,(t=Ce(l,t)).line),u=zt(e,t.line,r),c=new Wt(a.text,e.options.tabSize,u);for(n&&(o=[]);(n||c.pos<t.ch)&&!c.eol();)c.start=c.pos,i=Bt(s,c,u.state),n&&o.push(new Gt(c,i,Ot(l.mode,u.state)));return n?o:new Gt(c,i,u.state)}function Vt(e,t){if(e)for(;;){var r=e.match(/(?:^|\\s+)line-(background-)?(\\S+)/);if(!r)break;e=e.slice(0,r.index)+e.slice(r.index+r[0].length);var n=r[1]?\"bgClass\":\"textClass\";null==t[n]?t[n]=r[2]:new RegExp(\"(?:^|s)\"+r[2]+\"(?:$|s)\").test(t[n])||(t[n]+=\" \"+r[2])}return e}function Kt(e,t,r,n,i,o,l){var s=r.flattenSpans;null==s&&(s=e.options.flattenSpans);var a,u=0,c=null,h=new Wt(t,e.options.tabSize,n),f=e.options.addModeClass&&[null];for(\"\"==t&&Vt(Rt(r,n.state),o);!h.eol();){if(h.pos>e.options.maxHighlightLength?(s=!1,l&&It(e,t,n,h.pos),h.pos=t.length,a=null):a=Vt(Bt(r,h,n.state,f),o),f){var d=f[0].name;d&&(a=\"m-\"+(a?d+\" \"+a:d))}if(!s||c!=a){for(;u<h.start;)i(u=Math.min(h.start,u+5e3),c);c=a}h.start=h.pos}for(;u<h.pos;){var p=Math.min(h.pos,u+5e3);i(p,c),u=p}}var jt=function(e,t,r){this.text=e,We(this,t),this.height=r?r(this):1};jt.prototype.lineNo=function(){return he(this)},lt(jt);var Xt={},Yt={};function _t(e,t){if(!e||/^\\s*$/.test(e))return null;var r=t.addModeClass?Yt:Xt;return r[e]||(r[e]=e.replace(/\\S+/g,\"cm-$&\"))}function qt(e,t){var r=A(\"span\",null,null,a?\"padding-right: .1px\":null),n={pre:A(\"pre\",[r],\"CodeMirror-line\"),content:r,col:0,pos:0,cm:e,trailingSpace:!1,splitSpaces:(l||a)&&e.getOption(\"lineWrapping\")};t.measure={};for(var i=0;i<=(t.rest?t.rest.length:0);i++){var o=i?t.rest[i-1]:t.line,s=void 0;n.pos=0,n.addToken=Zt,mt(e.display.measure)&&(s=Ze(o,e.doc.direction))&&(n.addToken=Qt(n.addToken,s)),n.map=[],er(o,n,Et(e,o,t!=e.display.externalMeasured&&he(o))),o.styleClasses&&(o.styleClasses.bgClass&&(n.bgClass=F(o.styleClasses.bgClass,n.bgClass||\"\")),o.styleClasses.textClass&&(n.textClass=F(o.styleClasses.textClass,n.textClass||\"\"))),0==n.map.length&&n.map.push(0,0,n.content.appendChild(vt(e.display.measure))),0==i?(t.measure.map=n.map,t.measure.cache={}):((t.measure.maps||(t.measure.maps=[])).push(n.map),(t.measure.caches||(t.measure.caches=[])).push({}))}if(a){var u=n.content.lastChild;(/\\bcm-tab\\b/.test(u.className)||u.querySelector&&u.querySelector(\".cm-tab\"))&&(n.content.className=\"cm-tab-wrap-hack\")}return rt(e,\"renderLine\",e,t.line,n.pre),n.pre.className&&(n.textClass=F(n.pre.className,n.textClass||\"\")),n}function $t(e){var t=O(\"span\",\"•\",\"cm-invalidchar\");return t.title=\"\\\\u\"+e.charCodeAt(0).toString(16),t.setAttribute(\"aria-label\",t.title),t}function Zt(e,t,r,n,i,o,a){if(t){var u,c=e.splitSpaces?function(e,t){if(e.length>1&&!/ /.test(e))return e;for(var r=t,n=\"\",i=0;i<e.length;i++){var o=e.charAt(i);\" \"!=o||!r||i!=e.length-1&&32!=e.charCodeAt(i+1)||(o=\" \"),n+=o,r=\" \"==o}return n}(t,e.trailingSpace):t,h=e.cm.state.specialChars,f=!1;if(h.test(t)){u=document.createDocumentFragment();for(var d=0;;){h.lastIndex=d;var p=h.exec(t),g=p?p.index-d:t.length-d;if(g){var v=document.createTextNode(c.slice(d,d+g));l&&s<9?u.appendChild(O(\"span\",[v])):u.appendChild(v),e.map.push(e.pos,e.pos+g,v),e.col+=g,e.pos+=g}if(!p)break;d+=g+1;var m=void 0;if(\"\\t\"==p[0]){var y=e.cm.options.tabSize,b=y-e.col%y;(m=u.appendChild(O(\"span\",_(b),\"cm-tab\"))).setAttribute(\"role\",\"presentation\"),m.setAttribute(\"cm-text\",\"\\t\"),e.col+=b}else\"\\r\"==p[0]||\"\\n\"==p[0]?((m=u.appendChild(O(\"span\",\"\\r\"==p[0]?\"␍\":\"\",\"cm-invalidchar\"))).setAttribute(\"cm-text\",p[0]),e.col+=1):((m=e.cm.options.specialCharPlaceholder(p[0])).setAttribute(\"cm-text\",p[0]),l&&s<9?u.appendChild(O(\"span\",[m])):u.appendChild(m),e.col+=1);e.map.push(e.pos,e.pos+1,m),e.pos++}}else e.col+=t.length,u=document.createTextNode(c),e.map.push(e.pos,e.pos+t.length,u),l&&s<9&&(f=!0),e.pos+=t.length;if(e.trailingSpace=32==c.charCodeAt(t.length-1),r||n||i||f||a){var w=r||\"\";n&&(w+=n),i&&(w+=i);var x=O(\"span\",[u],w,a);return o&&(x.title=o),e.content.appendChild(x)}e.content.appendChild(u)}}function Qt(e,t){return function(r,n,i,o,l,s,a){i=i?i+\" cm-force-border\":\"cm-force-border\";for(var u=r.pos,c=u+n.length;;){for(var h=void 0,f=0;f<t.length&&!((h=t[f]).to>u&&h.from<=u);f++);if(h.to>=c)return e(r,n,i,o,l,s,a);e(r,n.slice(0,h.to-u),i,o,null,s,a),o=null,n=n.slice(h.to-u),u=h.to}}}function Jt(e,t,r,n){var i=!n&&r.widgetNode;i&&e.map.push(e.pos,e.pos+t,i),!n&&e.cm.display.input.needsContentAttribute&&(i||(i=e.content.appendChild(document.createElement(\"span\"))),i.setAttribute(\"cm-marker\",r.id)),i&&(e.cm.display.input.setUneditable(i),e.content.appendChild(i)),e.pos+=t,e.trailingSpace=!1}function er(e,t,r){var n=e.markedSpans,i=e.text,o=0;if(n)for(var l,s,a,u,c,h,f,d=i.length,p=0,g=1,v=\"\",m=0;;){if(m==p){a=u=c=h=s=\"\",f=null,m=1/0;for(var y=[],b=void 0,w=0;w<n.length;++w){var x=n[w],C=x.marker;\"bookmark\"==C.type&&x.from==p&&C.widgetNode?y.push(C):x.from<=p&&(null==x.to||x.to>p||C.collapsed&&x.to==p&&x.from==p)?(null!=x.to&&x.to!=p&&m>x.to&&(m=x.to,u=\"\"),C.className&&(a+=\" \"+C.className),C.css&&(s=(s?s+\";\":\"\")+C.css),C.startStyle&&x.from==p&&(c+=\" \"+C.startStyle),C.endStyle&&x.to==m&&(b||(b=[])).push(C.endStyle,x.to),C.title&&!h&&(h=C.title),C.collapsed&&(!f||Pe(f.marker,C)<0)&&(f=x)):x.from>p&&m>x.from&&(m=x.from)}if(b)for(var S=0;S<b.length;S+=2)b[S+1]==m&&(u+=\" \"+b[S]);if(!f||f.from==p)for(var L=0;L<y.length;++L)Jt(t,0,y[L]);if(f&&(f.from||0)==p){if(Jt(t,(null==f.to?d+1:f.to)-p,f.marker,null==f.from),null==f.to)return;f.to==p&&(f=!1)}}if(p>=d)break;for(var k=Math.min(d,m);;){if(v){var T=p+v.length;if(!f){var M=T>k?v.slice(0,k-p):v;t.addToken(t,M,l?l+a:a,c,p+M.length==m?u:\"\",h,s)}if(T>=k){v=v.slice(k-p),p=k;break}p=T,c=\"\"}v=i.slice(o,o=r[g++]),l=_t(r[g++],t.cm.options)}}else for(var N=1;N<r.length;N+=2)t.addToken(t,i.slice(o,o=r[N]),_t(r[N+1],t.cm.options))}function tr(e,t,r){this.line=t,this.rest=function(e){for(var t,r;t=Ie(e);)e=t.find(1,!0).line,(r||(r=[])).push(e);return r}(t),this.size=this.rest?he(q(this.rest))-r+1:1,this.node=this.text=null,this.hidden=Ve(e,t)}function rr(e,t,r){for(var n,i=[],o=t;o<r;o=n){var l=new tr(e.doc,se(e.doc,o),o);n=o+l.size,i.push(l)}return i}var nr=null;var ir=null;function or(e,t){var r=et(e,t);if(r.length){var n,i=Array.prototype.slice.call(arguments,2);nr?n=nr.delayedCallbacks:ir?n=ir:(n=ir=[],setTimeout(lr,0));for(var o=function(e){n.push(function(){return r[e].apply(null,i)})},l=0;l<r.length;++l)o(l)}}function lr(){var e=ir;ir=null;for(var t=0;t<e.length;++t)e[t]()}function sr(e,t,r,n){for(var i=0;i<t.changes.length;i++){var o=t.changes[i];\"text\"==o?cr(e,t):\"gutter\"==o?fr(e,t,r,n):\"class\"==o?hr(e,t):\"widget\"==o&&dr(e,t,n)}t.changes=null}function ar(e){return e.node==e.text&&(e.node=O(\"div\",null,null,\"position: relative\"),e.text.parentNode&&e.text.parentNode.replaceChild(e.node,e.text),e.node.appendChild(e.text),l&&s<8&&(e.node.style.zIndex=2)),e.node}function ur(e,t){var r=e.display.externalMeasured;return r&&r.line==t.line?(e.display.externalMeasured=null,t.measure=r.measure,r.built):qt(e,t)}function cr(e,t){var r=t.text.className,n=ur(e,t);t.text==t.node&&(t.node=n.pre),t.text.parentNode.replaceChild(n.pre,t.text),t.text=n.pre,n.bgClass!=t.bgClass||n.textClass!=t.textClass?(t.bgClass=n.bgClass,t.textClass=n.textClass,hr(e,t)):r&&(t.text.className=r)}function hr(e,t){!function(e,t){var r=t.bgClass?t.bgClass+\" \"+(t.line.bgClass||\"\"):t.line.bgClass;if(r&&(r+=\" CodeMirror-linebackground\"),t.background)r?t.background.className=r:(t.background.parentNode.removeChild(t.background),t.background=null);else if(r){var n=ar(t);t.background=n.insertBefore(O(\"div\",null,r),n.firstChild),e.display.input.setUneditable(t.background)}}(e,t),t.line.wrapClass?ar(t).className=t.line.wrapClass:t.node!=t.text&&(t.node.className=\"\");var r=t.textClass?t.textClass+\" \"+(t.line.textClass||\"\"):t.line.textClass;t.text.className=r||\"\"}function fr(e,t,r,n){if(t.gutter&&(t.node.removeChild(t.gutter),t.gutter=null),t.gutterBackground&&(t.node.removeChild(t.gutterBackground),t.gutterBackground=null),t.line.gutterClass){var i=ar(t);t.gutterBackground=O(\"div\",null,\"CodeMirror-gutter-background \"+t.line.gutterClass,\"left: \"+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+\"px; width: \"+n.gutterTotalWidth+\"px\"),e.display.input.setUneditable(t.gutterBackground),i.insertBefore(t.gutterBackground,t.text)}var o=t.line.gutterMarkers;if(e.options.lineNumbers||o){var l=ar(t),s=t.gutter=O(\"div\",null,\"CodeMirror-gutter-wrapper\",\"left: \"+(e.options.fixedGutter?n.fixedPos:-n.gutterTotalWidth)+\"px\");if(e.display.input.setUneditable(s),l.insertBefore(s,t.text),t.line.gutterClass&&(s.className+=\" \"+t.line.gutterClass),!e.options.lineNumbers||o&&o[\"CodeMirror-linenumbers\"]||(t.lineNumber=s.appendChild(O(\"div\",pe(e.options,r),\"CodeMirror-linenumber CodeMirror-gutter-elt\",\"left: \"+n.gutterLeft[\"CodeMirror-linenumbers\"]+\"px; width: \"+e.display.lineNumInnerWidth+\"px\"))),o)for(var a=0;a<e.options.gutters.length;++a){var u=e.options.gutters[a],c=o.hasOwnProperty(u)&&o[u];c&&s.appendChild(O(\"div\",[c],\"CodeMirror-gutter-elt\",\"left: \"+n.gutterLeft[u]+\"px; width: \"+n.gutterWidth[u]+\"px\"))}}}function dr(e,t,r){t.alignable&&(t.alignable=null);for(var n=t.node.firstChild,i=void 0;n;n=i)i=n.nextSibling,\"CodeMirror-linewidget\"==n.className&&t.node.removeChild(n);pr(e,t,r)}function pr(e,t,r){if(gr(e,t.line,t,r,!0),t.rest)for(var n=0;n<t.rest.length;n++)gr(e,t.rest[n],t,r,!1)}function gr(e,t,r,n,i){if(t.widgets)for(var o=ar(r),l=0,s=t.widgets;l<s.length;++l){var a=s[l],u=O(\"div\",[a.node],\"CodeMirror-linewidget\");a.handleMouseEvents||u.setAttribute(\"cm-ignore-events\",\"true\"),vr(a,u,r,n),e.display.input.setUneditable(u),i&&a.above?o.insertBefore(u,r.gutter||r.text):o.appendChild(u),or(a,\"redraw\")}}function vr(e,t,r,n){if(e.noHScroll){(r.alignable||(r.alignable=[])).push(t);var i=n.wrapperWidth;t.style.left=n.fixedPos+\"px\",e.coverGutter||(i-=n.gutterTotalWidth,t.style.paddingLeft=n.gutterTotalWidth+\"px\"),t.style.width=i+\"px\"}e.coverGutter&&(t.style.zIndex=5,t.style.position=\"relative\",e.noHScroll||(t.style.marginLeft=-n.gutterTotalWidth+\"px\"))}function mr(e){if(null!=e.height)return e.height;var t=e.doc.cm;if(!t)return 0;if(!D(document.body,e.node)){var r=\"position: relative;\";e.coverGutter&&(r+=\"margin-left: -\"+t.display.gutters.offsetWidth+\"px;\"),e.noHScroll&&(r+=\"width: \"+t.display.wrapper.clientWidth+\"px;\"),N(t.display.measure,O(\"div\",[e.node],null,r))}return e.height=e.node.parentNode.offsetHeight}function yr(e,t){for(var r=ht(t);r!=e.wrapper;r=r.parentNode)if(!r||1==r.nodeType&&\"true\"==r.getAttribute(\"cm-ignore-events\")||r.parentNode==e.sizer&&r!=e.mover)return!0}function br(e){return e.lineSpace.offsetTop}function wr(e){return e.mover.offsetHeight-e.lineSpace.offsetHeight}function xr(e){if(e.cachedPaddingH)return e.cachedPaddingH;var t=N(e.measure,O(\"pre\",\"x\")),r=window.getComputedStyle?window.getComputedStyle(t):t.currentStyle,n={left:parseInt(r.paddingLeft),right:parseInt(r.paddingRight)};return isNaN(n.left)||isNaN(n.right)||(e.cachedPaddingH=n),n}function Cr(e){return G-e.display.nativeBarWidth}function Sr(e){return e.display.scroller.clientWidth-Cr(e)-e.display.barWidth}function Lr(e){return e.display.scroller.clientHeight-Cr(e)-e.display.barHeight}function kr(e,t,r){if(e.line==t)return{map:e.measure.map,cache:e.measure.cache};for(var n=0;n<e.rest.length;n++)if(e.rest[n]==t)return{map:e.measure.maps[n],cache:e.measure.caches[n]};for(var i=0;i<e.rest.length;i++)if(he(e.rest[i])>r)return{map:e.measure.maps[i],cache:e.measure.caches[i],before:!0}}function Tr(e,t,r,n){return Or(e,Nr(e,t),r,n)}function Mr(e,t){if(t>=e.display.viewFrom&&t<e.display.viewTo)return e.display.view[on(e,t)];var r=e.display.externalMeasured;return r&&t>=r.lineN&&t<r.lineN+r.size?r:void 0}function Nr(e,t){var r=he(t),n=Mr(e,r);n&&!n.text?n=null:n&&n.changes&&(sr(e,n,r,Jr(e)),e.curOp.forceUpdate=!0),n||(n=function(e,t){var r=he(t=Be(t)),n=e.display.externalMeasured=new tr(e.doc,t,r);n.lineN=r;var i=n.built=qt(e,n);return n.text=i.pre,N(e.display.lineMeasure,i.pre),n}(e,t));var i=kr(n,t,r);return{line:t,view:n,rect:null,map:i.map,cache:i.cache,before:i.before,hasHeights:!1}}function Or(e,t,r,n,i){t.before&&(r=-1);var o,a=r+(n||\"\");return t.cache.hasOwnProperty(a)?o=t.cache[a]:(t.rect||(t.rect=t.view.text.getBoundingClientRect()),t.hasHeights||(!function(e,t,r){var n=e.options.lineWrapping,i=n&&Sr(e);if(!t.measure.heights||n&&t.measure.width!=i){var o=t.measure.heights=[];if(n){t.measure.width=i;for(var l=t.text.firstChild.getClientRects(),s=0;s<l.length-1;s++){var a=l[s],u=l[s+1];Math.abs(a.bottom-u.bottom)>2&&o.push((a.bottom+u.top)/2-r.top)}}o.push(r.bottom-r.top)}}(e,t.view,t.rect),t.hasHeights=!0),(o=function(e,t,r,n){var i,o=Wr(t.map,r,n),a=o.node,u=o.start,c=o.end,h=o.collapse;if(3==a.nodeType){for(var f=0;f<4;f++){for(;u&&ie(t.line.text.charAt(o.coverStart+u));)--u;for(;o.coverStart+c<o.coverEnd&&ie(t.line.text.charAt(o.coverStart+c));)++c;if((i=l&&s<9&&0==u&&c==o.coverEnd-o.coverStart?a.parentNode.getBoundingClientRect():Hr(k(a,u,c).getClientRects(),n)).left||i.right||0==u)break;c=u,u-=1,h=\"right\"}l&&s<11&&(i=function(e,t){if(!window.screen||null==screen.logicalXDPI||screen.logicalXDPI==screen.deviceXDPI||!function(e){if(null!=Ct)return Ct;var t=N(e,O(\"span\",\"x\")),r=t.getBoundingClientRect(),n=k(t,0,1).getBoundingClientRect();return Ct=Math.abs(r.left-n.left)>1}(e))return t;var r=screen.logicalXDPI/screen.deviceXDPI,n=screen.logicalYDPI/screen.deviceYDPI;return{left:t.left*r,right:t.right*r,top:t.top*n,bottom:t.bottom*n}}(e.display.measure,i))}else{var d;u>0&&(h=n=\"right\"),i=e.options.lineWrapping&&(d=a.getClientRects()).length>1?d[\"right\"==n?d.length-1:0]:a.getBoundingClientRect()}if(l&&s<9&&!u&&(!i||!i.left&&!i.right)){var p=a.parentNode.getClientRects()[0];i=p?{left:p.left,right:p.left+Qr(e.display),top:p.top,bottom:p.bottom}:Dr}for(var g=i.top-t.rect.top,v=i.bottom-t.rect.top,m=(g+v)/2,y=t.view.measure.heights,b=0;b<y.length-1&&!(m<y[b]);b++);var w=b?y[b-1]:0,x=y[b],C={left:(\"right\"==h?i.right:i.left)-t.rect.left,right:(\"left\"==h?i.left:i.right)-t.rect.left,top:w,bottom:x};i.left||i.right||(C.bogus=!0);e.options.singleCursorHeightPerLine||(C.rtop=g,C.rbottom=v);return C}(e,t,r,n)).bogus||(t.cache[a]=o)),{left:o.left,right:o.right,top:i?o.rtop:o.top,bottom:i?o.rbottom:o.bottom}}var Ar,Dr={left:0,right:0,top:0,bottom:0};function Wr(e,t,r){for(var n,i,o,l,s,a,u=0;u<e.length;u+=3)if(s=e[u],a=e[u+1],t<s?(i=0,o=1,l=\"left\"):t<a?o=(i=t-s)+1:(u==e.length-3||t==a&&e[u+3]>t)&&(i=(o=a-s)-1,t>=a&&(l=\"right\")),null!=i){if(n=e[u+2],s==a&&r==(n.insertLeft?\"left\":\"right\")&&(l=r),\"left\"==r&&0==i)for(;u&&e[u-2]==e[u-3]&&e[u-1].insertLeft;)n=e[2+(u-=3)],l=\"left\";if(\"right\"==r&&i==a-s)for(;u<e.length-3&&e[u+3]==e[u+4]&&!e[u+5].insertLeft;)n=e[(u+=3)+2],l=\"right\";break}return{node:n,start:i,end:o,collapse:l,coverStart:s,coverEnd:a}}function Hr(e,t){var r=Dr;if(\"left\"==t)for(var n=0;n<e.length&&(r=e[n]).left==r.right;n++);else for(var i=e.length-1;i>=0&&(r=e[i]).left==r.right;i--);return r}function Fr(e){if(e.measure&&(e.measure.cache={},e.measure.heights=null,e.rest))for(var t=0;t<e.rest.length;t++)e.measure.caches[t]={}}function Pr(e){e.display.externalMeasure=null,M(e.display.lineMeasure);for(var t=0;t<e.display.view.length;t++)Fr(e.display.view[t])}function Er(e){Pr(e),e.display.cachedCharWidth=e.display.cachedTextHeight=e.display.cachedPaddingH=null,e.options.lineWrapping||(e.display.maxLineChanged=!0),e.display.lineNumChars=null}function zr(){return c&&v?-(document.body.getBoundingClientRect().left-parseInt(getComputedStyle(document.body).marginLeft)):window.pageXOffset||(document.documentElement||document.body).scrollLeft}function Ir(){return c&&v?-(document.body.getBoundingClientRect().top-parseInt(getComputedStyle(document.body).marginTop)):window.pageYOffset||(document.documentElement||document.body).scrollTop}function Rr(e){var t=0;if(e.widgets)for(var r=0;r<e.widgets.length;++r)e.widgets[r].above&&(t+=mr(e.widgets[r]));return t}function Br(e,t,r,n,i){if(!i){var o=Rr(t);r.top+=o,r.bottom+=o}if(\"line\"==n)return r;n||(n=\"local\");var l=je(t);if(\"local\"==n?l+=br(e.display):l-=e.display.viewOffset,\"page\"==n||\"window\"==n){var s=e.display.lineSpace.getBoundingClientRect();l+=s.top+(\"window\"==n?0:Ir());var a=s.left+(\"window\"==n?0:zr());r.left+=a,r.right+=a}return r.top+=l,r.bottom+=l,r}function Gr(e,t,r){if(\"div\"==r)return t;var n=t.left,i=t.top;if(\"page\"==r)n-=zr(),i-=Ir();else if(\"local\"==r||!r){var o=e.display.sizer.getBoundingClientRect();n+=o.left,i+=o.top}var l=e.display.lineSpace.getBoundingClientRect();return{left:n-l.left,top:i-l.top}}function Ur(e,t,r,n,i){return n||(n=se(e.doc,t.line)),Br(e,n,Tr(e,n,t.ch,i),r)}function Vr(e,t,r,n,i,o){function l(t,l){var s=Or(e,i,t,l?\"right\":\"left\",o);return l?s.left=s.right:s.right=s.left,Br(e,n,s,r)}n=n||se(e.doc,t.line),i||(i=Nr(e,n));var s=Ze(n,e.doc.direction),a=t.ch,u=t.sticky;if(a>=n.text.length?(a=n.text.length,u=\"before\"):a<=0&&(a=0,u=\"after\"),!s)return l(\"before\"==u?a-1:a,\"before\"==u);function c(e,t,r){return l(r?e-1:e,1==s[t].level!=r)}var h=qe(s,a,u),f=_e,d=c(a,h,\"before\"==u);return null!=f&&(d.other=c(a,f,\"before\"!=u)),d}function Kr(e,t){var r=0;t=Ce(e.doc,t),e.options.lineWrapping||(r=Qr(e.display)*t.ch);var n=se(e.doc,t.line),i=je(n)+br(e.display);return{left:r,right:r,top:i,bottom:i+n.height}}function jr(e,t,r,n,i){var o=ge(e,t,r);return o.xRel=i,n&&(o.outside=!0),o}function Xr(e,t,r){var n=e.doc;if((r+=e.display.viewOffset)<0)return jr(n.first,0,null,!0,-1);var i=fe(n,r),o=n.first+n.size-1;if(i>o)return jr(n.first+n.size-1,se(n,o).text.length,null,!0,1);t<0&&(t=0);for(var l=se(n,i);;){var s=$r(e,l,i,t,r),a=Ie(l),u=a&&a.find(0,!0);if(!a||!(s.ch>u.from.ch||s.ch==u.from.ch&&s.xRel>0))return s;i=he(l=u.to.line)}}function Yr(e,t,r,n){n-=Rr(t);var i=t.text.length,o=le(function(t){return Or(e,r,t-1).bottom<=n},i,0);return{begin:o,end:i=le(function(t){return Or(e,r,t).top>n},o,i)}}function _r(e,t,r,n){return r||(r=Nr(e,t)),Yr(e,t,r,Br(e,t,Or(e,r,n),\"line\").top)}function qr(e,t,r,n){return!(e.bottom<=r)&&(e.top>r||(n?e.left:e.right)>t)}function $r(e,t,r,n,i){i-=je(t);var o=Nr(e,t),l=Rr(t),s=0,a=t.text.length,u=!0,c=Ze(t,e.doc.direction);if(c){var h=(e.options.lineWrapping?function(e,t,r,n,i,o,l){var s=Yr(e,t,n,l),a=s.begin,u=s.end;/\\s/.test(t.text.charAt(u-1))&&u--;for(var c=null,h=null,f=0;f<i.length;f++){var d=i[f];if(!(d.from>=u||d.to<=a)){var p=1!=d.level,g=Or(e,n,p?Math.min(u,d.to)-1:Math.max(a,d.from)).right,v=g<o?o-g+1e9:g-o;(!c||h>v)&&(c=d,h=v)}}c||(c=i[i.length-1]);c.from<a&&(c={from:a,to:c.to,level:c.level});c.to>u&&(c={from:c.from,to:u,level:c.level});return c}:function(e,t,r,n,i,o,l){var s=le(function(s){var a=i[s],u=1!=a.level;return qr(Vr(e,ge(r,u?a.to:a.from,u?\"before\":\"after\"),\"line\",t,n),o,l,!0)},0,i.length-1),a=i[s];if(s>0){var u=1!=a.level,c=Vr(e,ge(r,u?a.from:a.to,u?\"after\":\"before\"),\"line\",t,n);qr(c,o,l,!0)&&c.top>l&&(a=i[s-1])}return a})(e,t,r,o,c,n,i);s=(u=1!=h.level)?h.from:h.to-1,a=u?h.to:h.from-1}var f,d,p=null,g=null,v=le(function(t){var r=Or(e,o,t);return r.top+=l,r.bottom+=l,!!qr(r,n,i,!1)&&(r.top<=i&&r.left<=n&&(p=t,g=r),!0)},s,a),m=!1;if(g){var y=n-g.left<g.right-n,b=y==u;v=p+(b?0:1),d=b?\"after\":\"before\",f=y?g.left:g.right}else{u||v!=a&&v!=s||v++,d=0==v?\"after\":v==t.text.length?\"before\":Or(e,o,v-(u?1:0)).bottom+l<=i==u?\"after\":\"before\";var w=Vr(e,ge(r,v,d),\"line\",t,o);f=w.left,m=i<w.top||i>=w.bottom}return jr(r,v=oe(t.text,v,1),d,m,n-f)}function Zr(e){if(null!=e.cachedTextHeight)return e.cachedTextHeight;if(null==Ar){Ar=O(\"pre\");for(var t=0;t<49;++t)Ar.appendChild(document.createTextNode(\"x\")),Ar.appendChild(O(\"br\"));Ar.appendChild(document.createTextNode(\"x\"))}N(e.measure,Ar);var r=Ar.offsetHeight/50;return r>3&&(e.cachedTextHeight=r),M(e.measure),r||1}function Qr(e){if(null!=e.cachedCharWidth)return e.cachedCharWidth;var t=O(\"span\",\"xxxxxxxxxx\"),r=O(\"pre\",[t]);N(e.measure,r);var n=t.getBoundingClientRect(),i=(n.right-n.left)/10;return i>2&&(e.cachedCharWidth=i),i||10}function Jr(e){for(var t=e.display,r={},n={},i=t.gutters.clientLeft,o=t.gutters.firstChild,l=0;o;o=o.nextSibling,++l)r[e.options.gutters[l]]=o.offsetLeft+o.clientLeft+i,n[e.options.gutters[l]]=o.clientWidth;return{fixedPos:en(t),gutterTotalWidth:t.gutters.offsetWidth,gutterLeft:r,gutterWidth:n,wrapperWidth:t.wrapper.clientWidth}}function en(e){return e.scroller.getBoundingClientRect().left-e.sizer.getBoundingClientRect().left}function tn(e){var t=Zr(e.display),r=e.options.lineWrapping,n=r&&Math.max(5,e.display.scroller.clientWidth/Qr(e.display)-3);return function(i){if(Ve(e.doc,i))return 0;var o=0;if(i.widgets)for(var l=0;l<i.widgets.length;l++)i.widgets[l].height&&(o+=i.widgets[l].height);return r?o+(Math.ceil(i.text.length/n)||1)*t:o+t}}function rn(e){var t=e.doc,r=tn(e);t.iter(function(e){var t=r(e);t!=e.height&&ce(e,t)})}function nn(e,t,r,n){var i=e.display;if(!r&&\"true\"==ht(t).getAttribute(\"cm-not-content\"))return null;var o,l,s=i.lineSpace.getBoundingClientRect();try{o=t.clientX-s.left,l=t.clientY-s.top}catch(t){return null}var a,u=Xr(e,o,l);if(n&&1==u.xRel&&(a=se(e.doc,u.line).text).length==u.ch){var c=I(a,a.length,e.options.tabSize)-a.length;u=ge(u.line,Math.max(0,Math.round((o-xr(e.display).left)/Qr(e.display))-c))}return u}function on(e,t){if(t>=e.display.viewTo)return null;if((t-=e.display.viewFrom)<0)return null;for(var r=e.display.view,n=0;n<r.length;n++)if((t-=r[n].size)<0)return n}function ln(e){e.display.input.showSelection(e.display.input.prepareSelection())}function sn(e,t){void 0===t&&(t=!0);for(var r=e.doc,n={},i=n.cursors=document.createDocumentFragment(),o=n.selection=document.createDocumentFragment(),l=0;l<r.sel.ranges.length;l++)if(t||l!=r.sel.primIndex){var s=r.sel.ranges[l];if(!(s.from().line>=e.display.viewTo||s.to().line<e.display.viewFrom)){var a=s.empty();(a||e.options.showCursorWhenSelecting)&&an(e,s.head,i),a||cn(e,s,o)}}return n}function an(e,t,r){var n=Vr(e,t,\"div\",null,null,!e.options.singleCursorHeightPerLine),i=r.appendChild(O(\"div\",\" \",\"CodeMirror-cursor\"));if(i.style.left=n.left+\"px\",i.style.top=n.top+\"px\",i.style.height=Math.max(0,n.bottom-n.top)*e.options.cursorHeight+\"px\",n.other){var o=r.appendChild(O(\"div\",\" \",\"CodeMirror-cursor CodeMirror-secondarycursor\"));o.style.display=\"\",o.style.left=n.other.left+\"px\",o.style.top=n.other.top+\"px\",o.style.height=.85*(n.other.bottom-n.other.top)+\"px\"}}function un(e,t){return e.top-t.top||e.left-t.left}function cn(e,t,r){var n=e.display,i=e.doc,o=document.createDocumentFragment(),l=xr(e.display),s=l.left,a=Math.max(n.sizerWidth,Sr(e)-n.sizer.offsetLeft)-l.right,u=\"ltr\"==i.direction;function c(e,t,r,n){t<0&&(t=0),t=Math.round(t),n=Math.round(n),o.appendChild(O(\"div\",null,\"CodeMirror-selected\",\"position: absolute; left: \"+e+\"px;\\n top: \"+t+\"px; width: \"+(null==r?a-e:r)+\"px;\\n height: \"+(n-t)+\"px\"))}function h(t,r,n){var o,l,h=se(i,t),f=h.text.length;function d(r,n){return Ur(e,ge(t,r),\"div\",h,n)}function p(t,r,n){var i=_r(e,h,null,t),o=\"ltr\"==r==(\"after\"==n)?\"left\":\"right\";return d(\"after\"==n?i.begin:i.end-(/\\s/.test(h.text.charAt(i.end-1))?2:1),o)[o]}var g=Ze(h,i.direction);return function(e,t,r,n){if(!e)return n(t,r,\"ltr\",0);for(var i=!1,o=0;o<e.length;++o){var l=e[o];(l.from<r&&l.to>t||t==r&&l.to==t)&&(n(Math.max(l.from,t),Math.min(l.to,r),1==l.level?\"rtl\":\"ltr\",o),i=!0)}i||n(t,r,\"ltr\")}(g,r||0,null==n?f:n,function(e,t,i,h){var v=\"ltr\"==i,m=d(e,v?\"left\":\"right\"),y=d(t-1,v?\"right\":\"left\"),b=null==r&&0==e,w=null==n&&t==f,x=0==h,C=!g||h==g.length-1;if(y.top-m.top<=3){var S=(u?w:b)&&C,L=(u?b:w)&&x?s:(v?m:y).left,k=S?a:(v?y:m).right;c(L,m.top,k-L,m.bottom)}else{var T,M,N,O;v?(T=u&&b&&x?s:m.left,M=u?a:p(e,i,\"before\"),N=u?s:p(t,i,\"after\"),O=u&&w&&C?a:y.right):(T=u?p(e,i,\"before\"):s,M=!u&&b&&x?a:m.right,N=!u&&w&&C?s:y.left,O=u?p(t,i,\"after\"):a),c(T,m.top,M-T,m.bottom),m.bottom<y.top&&c(s,m.bottom,null,y.top),c(N,y.top,O-N,y.bottom)}(!o||un(m,o)<0)&&(o=m),un(y,o)<0&&(o=y),(!l||un(m,l)<0)&&(l=m),un(y,l)<0&&(l=y)}),{start:o,end:l}}var f=t.from(),d=t.to();if(f.line==d.line)h(f.line,f.ch,d.ch);else{var p=se(i,f.line),g=se(i,d.line),v=Be(p)==Be(g),m=h(f.line,f.ch,v?p.text.length+1:null).end,y=h(d.line,v?0:null,d.ch).start;v&&(m.top<y.top-2?(c(m.right,m.top,null,m.bottom),c(s,y.top,y.left,y.bottom)):c(m.right,m.top,y.left-m.right,m.bottom)),m.bottom<y.top&&c(s,m.bottom,null,y.top)}r.appendChild(o)}function hn(e){if(e.state.focused){var t=e.display;clearInterval(t.blinker);var r=!0;t.cursorDiv.style.visibility=\"\",e.options.cursorBlinkRate>0?t.blinker=setInterval(function(){return t.cursorDiv.style.visibility=(r=!r)?\"\":\"hidden\"},e.options.cursorBlinkRate):e.options.cursorBlinkRate<0&&(t.cursorDiv.style.visibility=\"hidden\")}}function fn(e){e.state.focused||(e.display.input.focus(),pn(e))}function dn(e){e.state.delayingBlurEvent=!0,setTimeout(function(){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1,gn(e))},100)}function pn(e,t){e.state.delayingBlurEvent&&(e.state.delayingBlurEvent=!1),\"nocursor\"!=e.options.readOnly&&(e.state.focused||(rt(e,\"focus\",e,t),e.state.focused=!0,H(e.display.wrapper,\"CodeMirror-focused\"),e.curOp||e.display.selForContextMenu==e.doc.sel||(e.display.input.reset(),a&&setTimeout(function(){return e.display.input.reset(!0)},20)),e.display.input.receivedFocus()),hn(e))}function gn(e,t){e.state.delayingBlurEvent||(e.state.focused&&(rt(e,\"blur\",e,t),e.state.focused=!1,T(e.display.wrapper,\"CodeMirror-focused\")),clearInterval(e.display.blinker),setTimeout(function(){e.state.focused||(e.display.shift=!1)},150))}function vn(e){for(var t=e.display,r=t.lineDiv.offsetTop,n=0;n<t.view.length;n++){var i=t.view[n],o=void 0;if(!i.hidden){if(l&&s<8){var a=i.node.offsetTop+i.node.offsetHeight;o=a-r,r=a}else{var u=i.node.getBoundingClientRect();o=u.bottom-u.top}var c=i.line.height-o;if(o<2&&(o=Zr(t)),(c>.005||c<-.005)&&(ce(i.line,o),mn(i.line),i.rest))for(var h=0;h<i.rest.length;h++)mn(i.rest[h])}}}function mn(e){if(e.widgets)for(var t=0;t<e.widgets.length;++t){var r=e.widgets[t],n=r.node.parentNode;n&&(r.height=n.offsetHeight)}}function yn(e,t,r){var n=r&&null!=r.top?Math.max(0,r.top):e.scroller.scrollTop;n=Math.floor(n-br(e));var i=r&&null!=r.bottom?r.bottom:n+e.wrapper.clientHeight,o=fe(t,n),l=fe(t,i);if(r&&r.ensure){var s=r.ensure.from.line,a=r.ensure.to.line;s<o?(o=s,l=fe(t,je(se(t,s))+e.wrapper.clientHeight)):Math.min(a,t.lastLine())>=l&&(o=fe(t,je(se(t,a))-e.wrapper.clientHeight),l=a)}return{from:o,to:Math.max(l,o+1)}}function bn(e){var t=e.display,r=t.view;if(t.alignWidgets||t.gutters.firstChild&&e.options.fixedGutter){for(var n=en(t)-t.scroller.scrollLeft+e.doc.scrollLeft,i=t.gutters.offsetWidth,o=n+\"px\",l=0;l<r.length;l++)if(!r[l].hidden){e.options.fixedGutter&&(r[l].gutter&&(r[l].gutter.style.left=o),r[l].gutterBackground&&(r[l].gutterBackground.style.left=o));var s=r[l].alignable;if(s)for(var a=0;a<s.length;a++)s[a].style.left=o}e.options.fixedGutter&&(t.gutters.style.left=n+i+\"px\")}}function wn(e){if(!e.options.lineNumbers)return!1;var t=e.doc,r=pe(e.options,t.first+t.size-1),n=e.display;if(r.length!=n.lineNumChars){var i=n.measure.appendChild(O(\"div\",[O(\"div\",r)],\"CodeMirror-linenumber CodeMirror-gutter-elt\")),o=i.firstChild.offsetWidth,l=i.offsetWidth-o;return n.lineGutter.style.width=\"\",n.lineNumInnerWidth=Math.max(o,n.lineGutter.offsetWidth-l)+1,n.lineNumWidth=n.lineNumInnerWidth+l,n.lineNumChars=n.lineNumInnerWidth?r.length:-1,n.lineGutter.style.width=n.lineNumWidth+\"px\",oi(e),!0}return!1}function xn(e,t){var r=e.display,n=Zr(e.display);t.top<0&&(t.top=0);var i=e.curOp&&null!=e.curOp.scrollTop?e.curOp.scrollTop:r.scroller.scrollTop,o=Lr(e),l={};t.bottom-t.top>o&&(t.bottom=t.top+o);var s=e.doc.height+wr(r),a=t.top<n,u=t.bottom>s-n;if(t.top<i)l.scrollTop=a?0:t.top;else if(t.bottom>i+o){var c=Math.min(t.top,(u?s:t.bottom)-o);c!=i&&(l.scrollTop=c)}var h=e.curOp&&null!=e.curOp.scrollLeft?e.curOp.scrollLeft:r.scroller.scrollLeft,f=Sr(e)-(e.options.fixedGutter?r.gutters.offsetWidth:0),d=t.right-t.left>f;return d&&(t.right=t.left+f),t.left<10?l.scrollLeft=0:t.left<h?l.scrollLeft=Math.max(0,t.left-(d?0:10)):t.right>f+h-3&&(l.scrollLeft=t.right+(d?0:10)-f),l}function Cn(e,t){null!=t&&(kn(e),e.curOp.scrollTop=(null==e.curOp.scrollTop?e.doc.scrollTop:e.curOp.scrollTop)+t)}function Sn(e){kn(e);var t=e.getCursor();e.curOp.scrollToPos={from:t,to:t,margin:e.options.cursorScrollMargin}}function Ln(e,t,r){null==t&&null==r||kn(e),null!=t&&(e.curOp.scrollLeft=t),null!=r&&(e.curOp.scrollTop=r)}function kn(e){var t=e.curOp.scrollToPos;t&&(e.curOp.scrollToPos=null,Tn(e,Kr(e,t.from),Kr(e,t.to),t.margin))}function Tn(e,t,r,n){var i=xn(e,{left:Math.min(t.left,r.left),top:Math.min(t.top,r.top)-n,right:Math.max(t.right,r.right),bottom:Math.max(t.bottom,r.bottom)+n});Ln(e,i.scrollLeft,i.scrollTop)}function Mn(e,t){Math.abs(e.doc.scrollTop-t)<2||(r||ii(e,{top:t}),Nn(e,t,!0),r&&ii(e),Jn(e,100))}function Nn(e,t,r){t=Math.min(e.display.scroller.scrollHeight-e.display.scroller.clientHeight,t),(e.display.scroller.scrollTop!=t||r)&&(e.doc.scrollTop=t,e.display.scrollbars.setScrollTop(t),e.display.scroller.scrollTop!=t&&(e.display.scroller.scrollTop=t))}function On(e,t,r,n){t=Math.min(t,e.display.scroller.scrollWidth-e.display.scroller.clientWidth),(r?t==e.doc.scrollLeft:Math.abs(e.doc.scrollLeft-t)<2)&&!n||(e.doc.scrollLeft=t,bn(e),e.display.scroller.scrollLeft!=t&&(e.display.scroller.scrollLeft=t),e.display.scrollbars.setScrollLeft(t))}function An(e){var t=e.display,r=t.gutters.offsetWidth,n=Math.round(e.doc.height+wr(e.display));return{clientHeight:t.scroller.clientHeight,viewHeight:t.wrapper.clientHeight,scrollWidth:t.scroller.scrollWidth,clientWidth:t.scroller.clientWidth,viewWidth:t.wrapper.clientWidth,barLeft:e.options.fixedGutter?r:0,docHeight:n,scrollHeight:n+Cr(e)+t.barHeight,nativeBarWidth:t.nativeBarWidth,gutterWidth:r}}var Dn=function(e,t,r){this.cm=r;var n=this.vert=O(\"div\",[O(\"div\",null,null,\"min-width: 1px\")],\"CodeMirror-vscrollbar\"),i=this.horiz=O(\"div\",[O(\"div\",null,null,\"height: 100%; min-height: 1px\")],\"CodeMirror-hscrollbar\");e(n),e(i),Je(n,\"scroll\",function(){n.clientHeight&&t(n.scrollTop,\"vertical\")}),Je(i,\"scroll\",function(){i.clientWidth&&t(i.scrollLeft,\"horizontal\")}),this.checkedZeroWidth=!1,l&&s<8&&(this.horiz.style.minHeight=this.vert.style.minWidth=\"18px\")};Dn.prototype.update=function(e){var t=e.scrollWidth>e.clientWidth+1,r=e.scrollHeight>e.clientHeight+1,n=e.nativeBarWidth;if(r){this.vert.style.display=\"block\",this.vert.style.bottom=t?n+\"px\":\"0\";var i=e.viewHeight-(t?n:0);this.vert.firstChild.style.height=Math.max(0,e.scrollHeight-e.clientHeight+i)+\"px\"}else this.vert.style.display=\"\",this.vert.firstChild.style.height=\"0\";if(t){this.horiz.style.display=\"block\",this.horiz.style.right=r?n+\"px\":\"0\",this.horiz.style.left=e.barLeft+\"px\";var o=e.viewWidth-e.barLeft-(r?n:0);this.horiz.firstChild.style.width=Math.max(0,e.scrollWidth-e.clientWidth+o)+\"px\"}else this.horiz.style.display=\"\",this.horiz.firstChild.style.width=\"0\";return!this.checkedZeroWidth&&e.clientHeight>0&&(0==n&&this.zeroWidthHack(),this.checkedZeroWidth=!0),{right:r?n:0,bottom:t?n:0}},Dn.prototype.setScrollLeft=function(e){this.horiz.scrollLeft!=e&&(this.horiz.scrollLeft=e),this.disableHoriz&&this.enableZeroWidthBar(this.horiz,this.disableHoriz,\"horiz\")},Dn.prototype.setScrollTop=function(e){this.vert.scrollTop!=e&&(this.vert.scrollTop=e),this.disableVert&&this.enableZeroWidthBar(this.vert,this.disableVert,\"vert\")},Dn.prototype.zeroWidthHack=function(){var e=y&&!d?\"12px\":\"18px\";this.horiz.style.height=this.vert.style.width=e,this.horiz.style.pointerEvents=this.vert.style.pointerEvents=\"none\",this.disableHoriz=new R,this.disableVert=new R},Dn.prototype.enableZeroWidthBar=function(e,t,r){e.style.pointerEvents=\"auto\",t.set(1e3,function n(){var i=e.getBoundingClientRect();(\"vert\"==r?document.elementFromPoint(i.right-1,(i.top+i.bottom)/2):document.elementFromPoint((i.right+i.left)/2,i.bottom-1))!=e?e.style.pointerEvents=\"none\":t.set(1e3,n)})},Dn.prototype.clear=function(){var e=this.horiz.parentNode;e.removeChild(this.horiz),e.removeChild(this.vert)};var Wn=function(){};function Hn(e,t){t||(t=An(e));var r=e.display.barWidth,n=e.display.barHeight;Fn(e,t);for(var i=0;i<4&&r!=e.display.barWidth||n!=e.display.barHeight;i++)r!=e.display.barWidth&&e.options.lineWrapping&&vn(e),Fn(e,An(e)),r=e.display.barWidth,n=e.display.barHeight}function Fn(e,t){var r=e.display,n=r.scrollbars.update(t);r.sizer.style.paddingRight=(r.barWidth=n.right)+\"px\",r.sizer.style.paddingBottom=(r.barHeight=n.bottom)+\"px\",r.heightForcer.style.borderBottom=n.bottom+\"px solid transparent\",n.right&&n.bottom?(r.scrollbarFiller.style.display=\"block\",r.scrollbarFiller.style.height=n.bottom+\"px\",r.scrollbarFiller.style.width=n.right+\"px\"):r.scrollbarFiller.style.display=\"\",n.bottom&&e.options.coverGutterNextToScrollbar&&e.options.fixedGutter?(r.gutterFiller.style.display=\"block\",r.gutterFiller.style.height=n.bottom+\"px\",r.gutterFiller.style.width=t.gutterWidth+\"px\"):r.gutterFiller.style.display=\"\"}Wn.prototype.update=function(){return{bottom:0,right:0}},Wn.prototype.setScrollLeft=function(){},Wn.prototype.setScrollTop=function(){},Wn.prototype.clear=function(){};var Pn={native:Dn,null:Wn};function En(e){e.display.scrollbars&&(e.display.scrollbars.clear(),e.display.scrollbars.addClass&&T(e.display.wrapper,e.display.scrollbars.addClass)),e.display.scrollbars=new Pn[e.options.scrollbarStyle](function(t){e.display.wrapper.insertBefore(t,e.display.scrollbarFiller),Je(t,\"mousedown\",function(){e.state.focused&&setTimeout(function(){return e.display.input.focus()},0)}),t.setAttribute(\"cm-not-content\",\"true\")},function(t,r){\"horizontal\"==r?On(e,t):Mn(e,t)},e),e.display.scrollbars.addClass&&H(e.display.wrapper,e.display.scrollbars.addClass)}var zn=0;function In(e){var t;e.curOp={cm:e,viewChanged:!1,startHeight:e.doc.height,forceUpdate:!1,updateInput:null,typing:!1,changeObjs:null,cursorActivityHandlers:null,cursorActivityCalled:0,selectionChanged:!1,updateMaxLine:!1,scrollLeft:null,scrollTop:null,scrollToPos:null,focus:!1,id:++zn},t=e.curOp,nr?nr.ops.push(t):t.ownsGroup=nr={ops:[t],delayedCallbacks:[]}}function Rn(e){!function(e,t){var r=e.ownsGroup;if(r)try{!function(e){var t=e.delayedCallbacks,r=0;do{for(;r<t.length;r++)t[r].call(null);for(var n=0;n<e.ops.length;n++){var i=e.ops[n];if(i.cursorActivityHandlers)for(;i.cursorActivityCalled<i.cursorActivityHandlers.length;)i.cursorActivityHandlers[i.cursorActivityCalled++].call(null,i.cm)}}while(r<t.length)}(r)}finally{nr=null,t(r)}}(e.curOp,function(e){for(var t=0;t<e.ops.length;t++)e.ops[t].cm.curOp=null;!function(e){for(var t=e.ops,r=0;r<t.length;r++)Bn(t[r]);for(var n=0;n<t.length;n++)(i=t[n]).updatedDisplay=i.mustUpdate&&ri(i.cm,i.update);var i;for(var o=0;o<t.length;o++)Gn(t[o]);for(var l=0;l<t.length;l++)Un(t[l]);for(var s=0;s<t.length;s++)Vn(t[s])}(e)})}function Bn(e){var t,r,n=e.cm,i=n.display;!(r=(t=n).display).scrollbarsClipped&&r.scroller.offsetWidth&&(r.nativeBarWidth=r.scroller.offsetWidth-r.scroller.clientWidth,r.heightForcer.style.height=Cr(t)+\"px\",r.sizer.style.marginBottom=-r.nativeBarWidth+\"px\",r.sizer.style.borderRightWidth=Cr(t)+\"px\",r.scrollbarsClipped=!0),e.updateMaxLine&&Ye(n),e.mustUpdate=e.viewChanged||e.forceUpdate||null!=e.scrollTop||e.scrollToPos&&(e.scrollToPos.from.line<i.viewFrom||e.scrollToPos.to.line>=i.viewTo)||i.maxLineChanged&&n.options.lineWrapping,e.update=e.mustUpdate&&new ti(n,e.mustUpdate&&{top:e.scrollTop,ensure:e.scrollToPos},e.forceUpdate)}function Gn(e){var t=e.cm,r=t.display;e.updatedDisplay&&vn(t),e.barMeasure=An(t),r.maxLineChanged&&!t.options.lineWrapping&&(e.adjustWidthTo=Tr(t,r.maxLine,r.maxLine.text.length).left+3,t.display.sizerWidth=e.adjustWidthTo,e.barMeasure.scrollWidth=Math.max(r.scroller.clientWidth,r.sizer.offsetLeft+e.adjustWidthTo+Cr(t)+t.display.barWidth),e.maxScrollLeft=Math.max(0,r.sizer.offsetLeft+e.adjustWidthTo-Sr(t))),(e.updatedDisplay||e.selectionChanged)&&(e.preparedSelection=r.input.prepareSelection())}function Un(e){var t=e.cm;null!=e.adjustWidthTo&&(t.display.sizer.style.minWidth=e.adjustWidthTo+\"px\",e.maxScrollLeft<t.doc.scrollLeft&&On(t,Math.min(t.display.scroller.scrollLeft,e.maxScrollLeft),!0),t.display.maxLineChanged=!1);var r=e.focus&&e.focus==W();e.preparedSelection&&t.display.input.showSelection(e.preparedSelection,r),(e.updatedDisplay||e.startHeight!=t.doc.height)&&Hn(t,e.barMeasure),e.updatedDisplay&&li(t,e.barMeasure),e.selectionChanged&&hn(t),t.state.focused&&e.updateInput&&t.display.input.reset(e.typing),r&&fn(e.cm)}function Vn(e){var t=e.cm,r=t.display,n=t.doc;(e.updatedDisplay&&ni(t,e.update),null==r.wheelStartX||null==e.scrollTop&&null==e.scrollLeft&&!e.scrollToPos||(r.wheelStartX=r.wheelStartY=null),null!=e.scrollTop&&Nn(t,e.scrollTop,e.forceScroll),null!=e.scrollLeft&&On(t,e.scrollLeft,!0,!0),e.scrollToPos)&&function(e,t){if(!nt(e,\"scrollCursorIntoView\")){var r=e.display,n=r.sizer.getBoundingClientRect(),i=null;if(t.top+n.top<0?i=!0:t.bottom+n.top>(window.innerHeight||document.documentElement.clientHeight)&&(i=!1),null!=i&&!p){var o=O(\"div\",\"\",null,\"position: absolute;\\n top: \"+(t.top-r.viewOffset-br(e.display))+\"px;\\n height: \"+(t.bottom-t.top+Cr(e)+r.barHeight)+\"px;\\n left: \"+t.left+\"px; width: \"+Math.max(2,t.right-t.left)+\"px;\");e.display.lineSpace.appendChild(o),o.scrollIntoView(i),e.display.lineSpace.removeChild(o)}}}(t,function(e,t,r,n){var i;null==n&&(n=0),e.options.lineWrapping||t!=r||(r=\"before\"==(t=t.ch?ge(t.line,\"before\"==t.sticky?t.ch-1:t.ch,\"after\"):t).sticky?ge(t.line,t.ch+1,\"before\"):t);for(var o=0;o<5;o++){var l=!1,s=Vr(e,t),a=r&&r!=t?Vr(e,r):s,u=xn(e,i={left:Math.min(s.left,a.left),top:Math.min(s.top,a.top)-n,right:Math.max(s.left,a.left),bottom:Math.max(s.bottom,a.bottom)+n}),c=e.doc.scrollTop,h=e.doc.scrollLeft;if(null!=u.scrollTop&&(Mn(e,u.scrollTop),Math.abs(e.doc.scrollTop-c)>1&&(l=!0)),null!=u.scrollLeft&&(On(e,u.scrollLeft),Math.abs(e.doc.scrollLeft-h)>1&&(l=!0)),!l)break}return i}(t,Ce(n,e.scrollToPos.from),Ce(n,e.scrollToPos.to),e.scrollToPos.margin));var i=e.maybeHiddenMarkers,o=e.maybeUnhiddenMarkers;if(i)for(var l=0;l<i.length;++l)i[l].lines.length||rt(i[l],\"hide\");if(o)for(var s=0;s<o.length;++s)o[s].lines.length&&rt(o[s],\"unhide\");r.wrapper.offsetHeight&&(n.scrollTop=t.display.scroller.scrollTop),e.changeObjs&&rt(t,\"changes\",t,e.changeObjs),e.update&&e.update.finish()}function Kn(e,t){if(e.curOp)return t();In(e);try{return t()}finally{Rn(e)}}function jn(e,t){return function(){if(e.curOp)return t.apply(e,arguments);In(e);try{return t.apply(e,arguments)}finally{Rn(e)}}}function Xn(e){return function(){if(this.curOp)return e.apply(this,arguments);In(this);try{return e.apply(this,arguments)}finally{Rn(this)}}}function Yn(e){return function(){var t=this.cm;if(!t||t.curOp)return e.apply(this,arguments);In(t);try{return e.apply(this,arguments)}finally{Rn(t)}}}function _n(e,t,r,n){null==t&&(t=e.doc.first),null==r&&(r=e.doc.first+e.doc.size),n||(n=0);var i=e.display;if(n&&r<i.viewTo&&(null==i.updateLineNumbers||i.updateLineNumbers>t)&&(i.updateLineNumbers=t),e.curOp.viewChanged=!0,t>=i.viewTo)ke&&Ge(e.doc,t)<i.viewTo&&$n(e);else if(r<=i.viewFrom)ke&&Ue(e.doc,r+n)>i.viewFrom?$n(e):(i.viewFrom+=n,i.viewTo+=n);else if(t<=i.viewFrom&&r>=i.viewTo)$n(e);else if(t<=i.viewFrom){var o=Zn(e,r,r+n,1);o?(i.view=i.view.slice(o.index),i.viewFrom=o.lineN,i.viewTo+=n):$n(e)}else if(r>=i.viewTo){var l=Zn(e,t,t,-1);l?(i.view=i.view.slice(0,l.index),i.viewTo=l.lineN):$n(e)}else{var s=Zn(e,t,t,-1),a=Zn(e,r,r+n,1);s&&a?(i.view=i.view.slice(0,s.index).concat(rr(e,s.lineN,a.lineN)).concat(i.view.slice(a.index)),i.viewTo+=n):$n(e)}var u=i.externalMeasured;u&&(r<u.lineN?u.lineN+=n:t<u.lineN+u.size&&(i.externalMeasured=null))}function qn(e,t,r){e.curOp.viewChanged=!0;var n=e.display,i=e.display.externalMeasured;if(i&&t>=i.lineN&&t<i.lineN+i.size&&(n.externalMeasured=null),!(t<n.viewFrom||t>=n.viewTo)){var o=n.view[on(e,t)];if(null!=o.node){var l=o.changes||(o.changes=[]);-1==B(l,r)&&l.push(r)}}}function $n(e){e.display.viewFrom=e.display.viewTo=e.doc.first,e.display.view=[],e.display.viewOffset=0}function Zn(e,t,r,n){var i,o=on(e,t),l=e.display.view;if(!ke||r==e.doc.first+e.doc.size)return{index:o,lineN:r};for(var s=e.display.viewFrom,a=0;a<o;a++)s+=l[a].size;if(s!=t){if(n>0){if(o==l.length-1)return null;i=s+l[o].size-t,o++}else i=s-t;t+=i,r+=i}for(;Ge(e.doc,r)!=r;){if(o==(n<0?0:l.length-1))return null;r+=n*l[o-(n<0?1:0)].size,o+=n}return{index:o,lineN:r}}function Qn(e){for(var t=e.display.view,r=0,n=0;n<t.length;n++){var i=t[n];i.hidden||i.node&&!i.changes||++r}return r}function Jn(e,t){e.doc.highlightFrontier<e.display.viewTo&&e.state.highlight.set(t,E(ei,e))}function ei(e){var t=e.doc;if(!(t.highlightFrontier>=e.display.viewTo)){var r=+new Date+e.options.workTime,n=zt(e,t.highlightFrontier),i=[];t.iter(n.line,Math.min(t.first+t.size,e.display.viewTo+500),function(o){if(n.line>=e.display.viewFrom){var l=o.styles,s=o.text.length>e.options.maxHighlightLength?Ot(t.mode,n.state):null,a=Pt(e,o,n,!0);s&&(n.state=s),o.styles=a.styles;var u=o.styleClasses,c=a.classes;c?o.styleClasses=c:u&&(o.styleClasses=null);for(var h=!l||l.length!=o.styles.length||u!=c&&(!u||!c||u.bgClass!=c.bgClass||u.textClass!=c.textClass),f=0;!h&&f<l.length;++f)h=l[f]!=o.styles[f];h&&i.push(n.line),o.stateAfter=n.save(),n.nextLine()}else o.text.length<=e.options.maxHighlightLength&&It(e,o.text,n),o.stateAfter=n.line%5==0?n.save():null,n.nextLine();if(+new Date>r)return Jn(e,e.options.workDelay),!0}),t.highlightFrontier=n.line,t.modeFrontier=Math.max(t.modeFrontier,n.line),i.length&&Kn(e,function(){for(var t=0;t<i.length;t++)qn(e,i[t],\"text\")})}}var ti=function(e,t,r){var n=e.display;this.viewport=t,this.visible=yn(n,e.doc,t),this.editorIsHidden=!n.wrapper.offsetWidth,this.wrapperHeight=n.wrapper.clientHeight,this.wrapperWidth=n.wrapper.clientWidth,this.oldDisplayWidth=Sr(e),this.force=r,this.dims=Jr(e),this.events=[]};function ri(e,t){var r=e.display,n=e.doc;if(t.editorIsHidden)return $n(e),!1;if(!t.force&&t.visible.from>=r.viewFrom&&t.visible.to<=r.viewTo&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo)&&r.renderedView==r.view&&0==Qn(e))return!1;wn(e)&&($n(e),t.dims=Jr(e));var i=n.first+n.size,o=Math.max(t.visible.from-e.options.viewportMargin,n.first),l=Math.min(i,t.visible.to+e.options.viewportMargin);r.viewFrom<o&&o-r.viewFrom<20&&(o=Math.max(n.first,r.viewFrom)),r.viewTo>l&&r.viewTo-l<20&&(l=Math.min(i,r.viewTo)),ke&&(o=Ge(e.doc,o),l=Ue(e.doc,l));var s,u,c,h,f=o!=r.viewFrom||l!=r.viewTo||r.lastWrapHeight!=t.wrapperHeight||r.lastWrapWidth!=t.wrapperWidth;u=o,c=l,0==(h=(s=e).display).view.length||u>=h.viewTo||c<=h.viewFrom?(h.view=rr(s,u,c),h.viewFrom=u):(h.viewFrom>u?h.view=rr(s,u,h.viewFrom).concat(h.view):h.viewFrom<u&&(h.view=h.view.slice(on(s,u))),h.viewFrom=u,h.viewTo<c?h.view=h.view.concat(rr(s,h.viewTo,c)):h.viewTo>c&&(h.view=h.view.slice(0,on(s,c)))),h.viewTo=c,r.viewOffset=je(se(e.doc,r.viewFrom)),e.display.mover.style.top=r.viewOffset+\"px\";var d=Qn(e);if(!f&&0==d&&!t.force&&r.renderedView==r.view&&(null==r.updateLineNumbers||r.updateLineNumbers>=r.viewTo))return!1;var p=function(e){if(e.hasFocus())return null;var t=W();if(!t||!D(e.display.lineDiv,t))return null;var r={activeElt:t};if(window.getSelection){var n=window.getSelection();n.anchorNode&&n.extend&&D(e.display.lineDiv,n.anchorNode)&&(r.anchorNode=n.anchorNode,r.anchorOffset=n.anchorOffset,r.focusNode=n.focusNode,r.focusOffset=n.focusOffset)}return r}(e);return d>4&&(r.lineDiv.style.display=\"none\"),function(e,t,r){var n=e.display,i=e.options.lineNumbers,o=n.lineDiv,l=o.firstChild;function s(t){var r=t.nextSibling;return a&&y&&e.display.currentWheelTarget==t?t.style.display=\"none\":t.parentNode.removeChild(t),r}for(var u=n.view,c=n.viewFrom,h=0;h<u.length;h++){var f=u[h];if(f.hidden);else if(f.node&&f.node.parentNode==o){for(;l!=f.node;)l=s(l);var d=i&&null!=t&&t<=c&&f.lineNumber;f.changes&&(B(f.changes,\"gutter\")>-1&&(d=!1),sr(e,f,c,r)),d&&(M(f.lineNumber),f.lineNumber.appendChild(document.createTextNode(pe(e.options,c)))),l=f.node.nextSibling}else{var p=(m=c,b=r,void 0,w=ur(g=e,v=f),v.text=v.node=w.pre,w.bgClass&&(v.bgClass=w.bgClass),w.textClass&&(v.textClass=w.textClass),hr(g,v),fr(g,v,m,b),pr(g,v,b),v.node);o.insertBefore(p,l)}c+=f.size}var g,v,m,b,w;for(;l;)l=s(l)}(e,r.updateLineNumbers,t.dims),d>4&&(r.lineDiv.style.display=\"\"),r.renderedView=r.view,function(e){if(e&&e.activeElt&&e.activeElt!=W()&&(e.activeElt.focus(),e.anchorNode&&D(document.body,e.anchorNode)&&D(document.body,e.focusNode))){var t=window.getSelection(),r=document.createRange();r.setEnd(e.anchorNode,e.anchorOffset),r.collapse(!1),t.removeAllRanges(),t.addRange(r),t.extend(e.focusNode,e.focusOffset)}}(p),M(r.cursorDiv),M(r.selectionDiv),r.gutters.style.height=r.sizer.style.minHeight=0,f&&(r.lastWrapHeight=t.wrapperHeight,r.lastWrapWidth=t.wrapperWidth,Jn(e,400)),r.updateLineNumbers=null,!0}function ni(e,t){for(var r=t.viewport,n=!0;(n&&e.options.lineWrapping&&t.oldDisplayWidth!=Sr(e)||(r&&null!=r.top&&(r={top:Math.min(e.doc.height+wr(e.display)-Lr(e),r.top)}),t.visible=yn(e.display,e.doc,r),!(t.visible.from>=e.display.viewFrom&&t.visible.to<=e.display.viewTo)))&&ri(e,t);n=!1){vn(e);var i=An(e);ln(e),Hn(e,i),li(e,i),t.force=!1}t.signal(e,\"update\",e),e.display.viewFrom==e.display.reportedViewFrom&&e.display.viewTo==e.display.reportedViewTo||(t.signal(e,\"viewportChange\",e,e.display.viewFrom,e.display.viewTo),e.display.reportedViewFrom=e.display.viewFrom,e.display.reportedViewTo=e.display.viewTo)}function ii(e,t){var r=new ti(e,t);if(ri(e,r)){vn(e),ni(e,r);var n=An(e);ln(e),Hn(e,n),li(e,n),r.finish()}}function oi(e){var t=e.display.gutters.offsetWidth;e.display.sizer.style.marginLeft=t+\"px\"}function li(e,t){e.display.sizer.style.minHeight=t.docHeight+\"px\",e.display.heightForcer.style.top=t.docHeight+\"px\",e.display.gutters.style.height=t.docHeight+e.display.barHeight+Cr(e)+\"px\"}function si(e){var t=e.display.gutters,r=e.options.gutters;M(t);for(var n=0;n<r.length;++n){var i=r[n],o=t.appendChild(O(\"div\",null,\"CodeMirror-gutter \"+i));\"CodeMirror-linenumbers\"==i&&(e.display.lineGutter=o,o.style.width=(e.display.lineNumWidth||1)+\"px\")}t.style.display=n?\"\":\"none\",oi(e)}function ai(e){var t=B(e.gutters,\"CodeMirror-linenumbers\");-1==t&&e.lineNumbers?e.gutters=e.gutters.concat([\"CodeMirror-linenumbers\"]):t>-1&&!e.lineNumbers&&(e.gutters=e.gutters.slice(0),e.gutters.splice(t,1))}ti.prototype.signal=function(e,t){ot(e,t)&&this.events.push(arguments)},ti.prototype.finish=function(){for(var e=0;e<this.events.length;e++)rt.apply(null,this.events[e])};var ui=0,ci=null;function hi(e){var t=e.wheelDeltaX,r=e.wheelDeltaY;return null==t&&e.detail&&e.axis==e.HORIZONTAL_AXIS&&(t=e.detail),null==r&&e.detail&&e.axis==e.VERTICAL_AXIS?r=e.detail:null==r&&(r=e.wheelDelta),{x:t,y:r}}function fi(e){var t=hi(e);return t.x*=ci,t.y*=ci,t}function di(e,t){var n=hi(t),i=n.x,o=n.y,l=e.display,s=l.scroller,u=s.scrollWidth>s.clientWidth,c=s.scrollHeight>s.clientHeight;if(i&&u||o&&c){if(o&&y&&a)e:for(var f=t.target,d=l.view;f!=s;f=f.parentNode)for(var p=0;p<d.length;p++)if(d[p].node==f){e.display.currentWheelTarget=f;break e}if(i&&!r&&!h&&null!=ci)return o&&c&&Mn(e,Math.max(0,s.scrollTop+o*ci)),On(e,Math.max(0,s.scrollLeft+i*ci)),(!o||o&&c)&&st(t),void(l.wheelStartX=null);if(o&&null!=ci){var g=o*ci,v=e.doc.scrollTop,m=v+l.wrapper.clientHeight;g<0?v=Math.max(0,v+g-50):m=Math.min(e.doc.height,m+g+50),ii(e,{top:v,bottom:m})}ui<20&&(null==l.wheelStartX?(l.wheelStartX=s.scrollLeft,l.wheelStartY=s.scrollTop,l.wheelDX=i,l.wheelDY=o,setTimeout(function(){if(null!=l.wheelStartX){var e=s.scrollLeft-l.wheelStartX,t=s.scrollTop-l.wheelStartY,r=t&&l.wheelDY&&t/l.wheelDY||e&&l.wheelDX&&e/l.wheelDX;l.wheelStartX=l.wheelStartY=null,r&&(ci=(ci*ui+r)/(ui+1),++ui)}},200)):(l.wheelDX+=i,l.wheelDY+=o))}}l?ci=-.53:r?ci=15:c?ci=-.7:f&&(ci=-1/3);var pi=function(e,t){this.ranges=e,this.primIndex=t};pi.prototype.primary=function(){return this.ranges[this.primIndex]},pi.prototype.equals=function(e){if(e==this)return!0;if(e.primIndex!=this.primIndex||e.ranges.length!=this.ranges.length)return!1;for(var t=0;t<this.ranges.length;t++){var r=this.ranges[t],n=e.ranges[t];if(!me(r.anchor,n.anchor)||!me(r.head,n.head))return!1}return!0},pi.prototype.deepCopy=function(){for(var e=[],t=0;t<this.ranges.length;t++)e[t]=new gi(ye(this.ranges[t].anchor),ye(this.ranges[t].head));return new pi(e,this.primIndex)},pi.prototype.somethingSelected=function(){for(var e=0;e<this.ranges.length;e++)if(!this.ranges[e].empty())return!0;return!1},pi.prototype.contains=function(e,t){t||(t=e);for(var r=0;r<this.ranges.length;r++){var n=this.ranges[r];if(ve(t,n.from())>=0&&ve(e,n.to())<=0)return r}return-1};var gi=function(e,t){this.anchor=e,this.head=t};function vi(e,t){var r=e[t];e.sort(function(e,t){return ve(e.from(),t.from())}),t=B(e,r);for(var n=1;n<e.length;n++){var i=e[n],o=e[n-1];if(ve(o.to(),i.from())>=0){var l=we(o.from(),i.from()),s=be(o.to(),i.to()),a=o.empty()?i.from()==i.head:o.from()==o.head;n<=t&&--t,e.splice(--n,2,new gi(a?s:l,a?l:s))}}return new pi(e,t)}function mi(e,t){return new pi([new gi(e,t||e)],0)}function yi(e){return e.text?ge(e.from.line+e.text.length-1,q(e.text).length+(1==e.text.length?e.from.ch:0)):e.to}function bi(e,t){if(ve(e,t.from)<0)return e;if(ve(e,t.to)<=0)return yi(t);var r=e.line+t.text.length-(t.to.line-t.from.line)-1,n=e.ch;return e.line==t.to.line&&(n+=yi(t).ch-t.to.ch),ge(r,n)}function wi(e,t){for(var r=[],n=0;n<e.sel.ranges.length;n++){var i=e.sel.ranges[n];r.push(new gi(bi(i.anchor,t),bi(i.head,t)))}return vi(r,e.sel.primIndex)}function xi(e,t,r){return e.line==t.line?ge(r.line,e.ch-t.ch+r.ch):ge(r.line+(e.line-t.line),e.ch)}function Ci(e){e.doc.mode=Tt(e.options,e.doc.modeOption),Si(e)}function Si(e){e.doc.iter(function(e){e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null)}),e.doc.modeFrontier=e.doc.highlightFrontier=e.doc.first,Jn(e,100),e.state.modeGen++,e.curOp&&_n(e)}function Li(e,t){return 0==t.from.ch&&0==t.to.ch&&\"\"==q(t.text)&&(!e.cm||e.cm.options.wholeLineUpdateBefore)}function ki(e,t,r,n){function i(e){return r?r[e]:null}function o(e,r,i){!function(e,t,r,n){e.text=t,e.stateAfter&&(e.stateAfter=null),e.styles&&(e.styles=null),null!=e.order&&(e.order=null),De(e),We(e,r);var i=n?n(e):1;i!=e.height&&ce(e,i)}(e,r,i,n),or(e,\"change\",e,t)}function l(e,t){for(var r=[],o=e;o<t;++o)r.push(new jt(u[o],i(o),n));return r}var s=t.from,a=t.to,u=t.text,c=se(e,s.line),h=se(e,a.line),f=q(u),d=i(u.length-1),p=a.line-s.line;if(t.full)e.insert(0,l(0,u.length)),e.remove(u.length,e.size-u.length);else if(Li(e,t)){var g=l(0,u.length-1);o(h,h.text,d),p&&e.remove(s.line,p),g.length&&e.insert(s.line,g)}else if(c==h)if(1==u.length)o(c,c.text.slice(0,s.ch)+f+c.text.slice(a.ch),d);else{var v=l(1,u.length-1);v.push(new jt(f+c.text.slice(a.ch),d,n)),o(c,c.text.slice(0,s.ch)+u[0],i(0)),e.insert(s.line+1,v)}else if(1==u.length)o(c,c.text.slice(0,s.ch)+u[0]+h.text.slice(a.ch),i(0)),e.remove(s.line+1,p);else{o(c,c.text.slice(0,s.ch)+u[0],i(0)),o(h,f+h.text.slice(a.ch),d);var m=l(1,u.length-1);p>1&&e.remove(s.line+1,p-1),e.insert(s.line+1,m)}or(e,\"change\",e,t)}function Ti(e,t,r){!function e(n,i,o){if(n.linked)for(var l=0;l<n.linked.length;++l){var s=n.linked[l];if(s.doc!=i){var a=o&&s.sharedHist;r&&!a||(t(s.doc,a),e(s.doc,n,a))}}}(e,null,!0)}function Mi(e,t){if(t.cm)throw new Error(\"This document is already in use.\");e.doc=t,t.cm=e,rn(e),Ci(e),Ni(e),e.options.lineWrapping||Ye(e),e.options.mode=t.modeOption,_n(e)}function Ni(e){(\"rtl\"==e.doc.direction?H:T)(e.display.lineDiv,\"CodeMirror-rtl\")}function Oi(e){this.done=[],this.undone=[],this.undoDepth=1/0,this.lastModTime=this.lastSelTime=0,this.lastOp=this.lastSelOp=null,this.lastOrigin=this.lastSelOrigin=null,this.generation=this.maxGeneration=e||1}function Ai(e,t){var r={from:ye(t.from),to:yi(t),text:ae(e,t.from,t.to)};return Pi(e,r,t.from.line,t.to.line+1),Ti(e,function(e){return Pi(e,r,t.from.line,t.to.line+1)},!0),r}function Di(e){for(;e.length;){if(!q(e).ranges)break;e.pop()}}function Wi(e,t,r,n){var i=e.history;i.undone.length=0;var o,l,s,a=+new Date;if((i.lastOp==n||i.lastOrigin==t.origin&&t.origin&&(\"+\"==t.origin.charAt(0)&&i.lastModTime>a-(e.cm?e.cm.options.historyEventDelay:500)||\"*\"==t.origin.charAt(0)))&&(s=i,o=i.lastOp==n?(Di(s.done),q(s.done)):s.done.length&&!q(s.done).ranges?q(s.done):s.done.length>1&&!s.done[s.done.length-2].ranges?(s.done.pop(),q(s.done)):void 0))l=q(o.changes),0==ve(t.from,t.to)&&0==ve(t.from,l.to)?l.to=yi(t):o.changes.push(Ai(e,t));else{var u=q(i.done);for(u&&u.ranges||Fi(e.sel,i.done),o={changes:[Ai(e,t)],generation:i.generation},i.done.push(o);i.done.length>i.undoDepth;)i.done.shift(),i.done[0].ranges||i.done.shift()}i.done.push(r),i.generation=++i.maxGeneration,i.lastModTime=i.lastSelTime=a,i.lastOp=i.lastSelOp=n,i.lastOrigin=i.lastSelOrigin=t.origin,l||rt(e,\"historyAdded\")}function Hi(e,t,r,n){var i,o,l,s,a,u=e.history,c=n&&n.origin;r==u.lastSelOp||c&&u.lastSelOrigin==c&&(u.lastModTime==u.lastSelTime&&u.lastOrigin==c||(i=e,o=c,l=q(u.done),s=t,\"*\"==(a=o.charAt(0))||\"+\"==a&&l.ranges.length==s.ranges.length&&l.somethingSelected()==s.somethingSelected()&&new Date-i.history.lastSelTime<=(i.cm?i.cm.options.historyEventDelay:500)))?u.done[u.done.length-1]=t:Fi(t,u.done),u.lastSelTime=+new Date,u.lastSelOrigin=c,u.lastSelOp=r,n&&!1!==n.clearRedo&&Di(u.undone)}function Fi(e,t){var r=q(t);r&&r.ranges&&r.equals(e)||t.push(e)}function Pi(e,t,r,n){var i=t[\"spans_\"+e.id],o=0;e.iter(Math.max(e.first,r),Math.min(e.first+e.size,n),function(r){r.markedSpans&&((i||(i=t[\"spans_\"+e.id]={}))[o]=r.markedSpans),++o})}function Ei(e){if(!e)return null;for(var t,r=0;r<e.length;++r)e[r].marker.explicitlyCleared?t||(t=e.slice(0,r)):t&&t.push(e[r]);return t?t.length?t:null:e}function zi(e,t){var r=function(e,t){var r=t[\"spans_\"+e.id];if(!r)return null;for(var n=[],i=0;i<t.text.length;++i)n.push(Ei(r[i]));return n}(e,t),n=Oe(e,t);if(!r)return n;if(!n)return r;for(var i=0;i<r.length;++i){var o=r[i],l=n[i];if(o&&l)e:for(var s=0;s<l.length;++s){for(var a=l[s],u=0;u<o.length;++u)if(o[u].marker==a.marker)continue e;o.push(a)}else l&&(r[i]=l)}return r}function Ii(e,t,r){for(var n=[],i=0;i<e.length;++i){var o=e[i];if(o.ranges)n.push(r?pi.prototype.deepCopy.call(o):o);else{var l=o.changes,s=[];n.push({changes:s});for(var a=0;a<l.length;++a){var u=l[a],c=void 0;if(s.push({from:u.from,to:u.to,text:u.text}),t)for(var h in u)(c=h.match(/^spans_(\\d+)$/))&&B(t,Number(c[1]))>-1&&(q(s)[h]=u[h],delete u[h])}}}return n}function Ri(e,t,r,n){if(n){var i=e.anchor;if(r){var o=ve(t,i)<0;o!=ve(r,i)<0?(i=t,t=r):o!=ve(t,r)<0&&(t=r)}return new gi(i,t)}return new gi(r||t,t)}function Bi(e,t,r,n,i){null==i&&(i=e.cm&&(e.cm.display.shift||e.extend)),ji(e,new pi([Ri(e.sel.primary(),t,r,i)],0),n)}function Gi(e,t,r){for(var n=[],i=e.cm&&(e.cm.display.shift||e.extend),o=0;o<e.sel.ranges.length;o++)n[o]=Ri(e.sel.ranges[o],t[o],null,i);ji(e,vi(n,e.sel.primIndex),r)}function Ui(e,t,r,n){var i=e.sel.ranges.slice(0);i[t]=r,ji(e,vi(i,e.sel.primIndex),n)}function Vi(e,t,r,n){ji(e,mi(t,r),n)}function Ki(e,t,r){var n=e.history.done,i=q(n);i&&i.ranges?(n[n.length-1]=t,Xi(e,t,r)):ji(e,t,r)}function ji(e,t,r){Xi(e,t,r),Hi(e,e.sel,e.cm?e.cm.curOp.id:NaN,r)}function Xi(e,t,r){var n,i,o,l;(ot(e,\"beforeSelectionChange\")||e.cm&&ot(e.cm,\"beforeSelectionChange\"))&&(n=e,o=r,l={ranges:(i=t).ranges,update:function(e){this.ranges=[];for(var t=0;t<e.length;t++)this.ranges[t]=new gi(Ce(n,e[t].anchor),Ce(n,e[t].head))},origin:o&&o.origin},rt(n,\"beforeSelectionChange\",n,l),n.cm&&rt(n.cm,\"beforeSelectionChange\",n.cm,l),t=l.ranges!=i.ranges?vi(l.ranges,l.ranges.length-1):i),Yi(e,qi(e,t,r&&r.bias||(ve(t.primary().head,e.sel.primary().head)<0?-1:1),!0)),r&&!1===r.scroll||!e.cm||Sn(e.cm)}function Yi(e,t){t.equals(e.sel)||(e.sel=t,e.cm&&(e.cm.curOp.updateInput=e.cm.curOp.selectionChanged=!0,it(e.cm)),or(e,\"cursorActivity\",e))}function _i(e){Yi(e,qi(e,e.sel,null,!1))}function qi(e,t,r,n){for(var i,o=0;o<t.ranges.length;o++){var l=t.ranges[o],s=t.ranges.length==e.sel.ranges.length&&e.sel.ranges[o],a=Zi(e,l.anchor,s&&s.anchor,r,n),u=Zi(e,l.head,s&&s.head,r,n);(i||a!=l.anchor||u!=l.head)&&(i||(i=t.ranges.slice(0,o)),i[o]=new gi(a,u))}return i?vi(i,t.primIndex):t}function $i(e,t,r,n,i){var o=se(e,t.line);if(o.markedSpans)for(var l=0;l<o.markedSpans.length;++l){var s=o.markedSpans[l],a=s.marker;if((null==s.from||(a.inclusiveLeft?s.from<=t.ch:s.from<t.ch))&&(null==s.to||(a.inclusiveRight?s.to>=t.ch:s.to>t.ch))){if(i&&(rt(a,\"beforeCursorEnter\"),a.explicitlyCleared)){if(o.markedSpans){--l;continue}break}if(!a.atomic)continue;if(r){var u=a.find(n<0?1:-1),c=void 0;if((n<0?a.inclusiveRight:a.inclusiveLeft)&&(u=Qi(e,u,-n,u&&u.line==t.line?o:null)),u&&u.line==t.line&&(c=ve(u,r))&&(n<0?c<0:c>0))return $i(e,u,t,n,i)}var h=a.find(n<0?-1:1);return(n<0?a.inclusiveLeft:a.inclusiveRight)&&(h=Qi(e,h,n,h.line==t.line?o:null)),h?$i(e,h,t,n,i):null}}return t}function Zi(e,t,r,n,i){var o=n||1,l=$i(e,t,r,o,i)||!i&&$i(e,t,r,o,!0)||$i(e,t,r,-o,i)||!i&&$i(e,t,r,-o,!0);return l||(e.cantEdit=!0,ge(e.first,0))}function Qi(e,t,r,n){return r<0&&0==t.ch?t.line>e.first?Ce(e,ge(t.line-1)):null:r>0&&t.ch==(n||se(e,t.line)).text.length?t.line<e.first+e.size-1?ge(t.line+1,0):null:new ge(t.line,t.ch+r)}function Ji(e){e.setSelection(ge(e.firstLine(),0),ge(e.lastLine()),V)}function eo(e,t,r){var n={canceled:!1,from:t.from,to:t.to,text:t.text,origin:t.origin,cancel:function(){return n.canceled=!0}};return r&&(n.update=function(t,r,i,o){t&&(n.from=Ce(e,t)),r&&(n.to=Ce(e,r)),i&&(n.text=i),void 0!==o&&(n.origin=o)}),rt(e,\"beforeChange\",e,n),e.cm&&rt(e.cm,\"beforeChange\",e.cm,n),n.canceled?null:{from:n.from,to:n.to,text:n.text,origin:n.origin}}function to(e,t,r){if(e.cm){if(!e.cm.curOp)return jn(e.cm,to)(e,t,r);if(e.cm.state.suppressEdits)return}if(!(ot(e,\"beforeChange\")||e.cm&&ot(e.cm,\"beforeChange\"))||(t=eo(e,t,!0))){var n=Le&&!r&&function(e,t,r){var n=null;if(e.iter(t.line,r.line+1,function(e){if(e.markedSpans)for(var t=0;t<e.markedSpans.length;++t){var r=e.markedSpans[t].marker;!r.readOnly||n&&-1!=B(n,r)||(n||(n=[])).push(r)}}),!n)return null;for(var i=[{from:t,to:r}],o=0;o<n.length;++o)for(var l=n[o],s=l.find(0),a=0;a<i.length;++a){var u=i[a];if(!(ve(u.to,s.from)<0||ve(u.from,s.to)>0)){var c=[a,1],h=ve(u.from,s.from),f=ve(u.to,s.to);(h<0||!l.inclusiveLeft&&!h)&&c.push({from:u.from,to:s.from}),(f>0||!l.inclusiveRight&&!f)&&c.push({from:s.to,to:u.to}),i.splice.apply(i,c),a+=c.length-3}}return i}(e,t.from,t.to);if(n)for(var i=n.length-1;i>=0;--i)ro(e,{from:n[i].from,to:n[i].to,text:i?[\"\"]:t.text,origin:t.origin});else ro(e,t)}}function ro(e,t){if(1!=t.text.length||\"\"!=t.text[0]||0!=ve(t.from,t.to)){var r=wi(e,t);Wi(e,t,r,e.cm?e.cm.curOp.id:NaN),oo(e,t,r,Oe(e,t));var n=[];Ti(e,function(e,r){r||-1!=B(n,e.history)||(uo(e.history,t),n.push(e.history)),oo(e,t,null,Oe(e,t))})}}function no(e,t,r){var n=e.cm&&e.cm.state.suppressEdits;if(!n||r){for(var i,o=e.history,l=e.sel,s=\"undo\"==t?o.done:o.undone,a=\"undo\"==t?o.undone:o.done,u=0;u<s.length&&(i=s[u],r?!i.ranges||i.equals(e.sel):i.ranges);u++);if(u!=s.length){for(o.lastOrigin=o.lastSelOrigin=null;;){if(!(i=s.pop()).ranges){if(n)return void s.push(i);break}if(Fi(i,a),r&&!i.equals(e.sel))return void ji(e,i,{clearRedo:!1});l=i}var c=[];Fi(l,a),a.push({changes:c,generation:o.generation}),o.generation=i.generation||++o.maxGeneration;for(var h=ot(e,\"beforeChange\")||e.cm&&ot(e.cm,\"beforeChange\"),f=function(r){var n=i.changes[r];if(n.origin=t,h&&!eo(e,n,!1))return s.length=0,{};c.push(Ai(e,n));var o=r?wi(e,n):q(s);oo(e,n,o,zi(e,n)),!r&&e.cm&&e.cm.scrollIntoView({from:n.from,to:yi(n)});var l=[];Ti(e,function(e,t){t||-1!=B(l,e.history)||(uo(e.history,n),l.push(e.history)),oo(e,n,null,zi(e,n))})},d=i.changes.length-1;d>=0;--d){var p=f(d);if(p)return p.v}}}}function io(e,t){if(0!=t&&(e.first+=t,e.sel=new pi($(e.sel.ranges,function(e){return new gi(ge(e.anchor.line+t,e.anchor.ch),ge(e.head.line+t,e.head.ch))}),e.sel.primIndex),e.cm)){_n(e.cm,e.first,e.first-t,t);for(var r=e.cm.display,n=r.viewFrom;n<r.viewTo;n++)qn(e.cm,n,\"gutter\")}}function oo(e,t,r,n){if(e.cm&&!e.cm.curOp)return jn(e.cm,oo)(e,t,r,n);if(t.to.line<e.first)io(e,t.text.length-1-(t.to.line-t.from.line));else if(!(t.from.line>e.lastLine())){if(t.from.line<e.first){var i=t.text.length-1-(e.first-t.from.line);io(e,i),t={from:ge(e.first,0),to:ge(t.to.line+i,t.to.ch),text:[q(t.text)],origin:t.origin}}var o=e.lastLine();t.to.line>o&&(t={from:t.from,to:ge(o,se(e,o).text.length),text:[t.text[0]],origin:t.origin}),t.removed=ae(e,t.from,t.to),r||(r=wi(e,t)),e.cm?function(e,t,r){var n=e.doc,i=e.display,o=t.from,l=t.to,s=!1,a=o.line;e.options.lineWrapping||(a=he(Be(se(n,o.line))),n.iter(a,l.line+1,function(e){if(e==i.maxLine)return s=!0,!0}));n.sel.contains(t.from,t.to)>-1&&it(e);ki(n,t,r,tn(e)),e.options.lineWrapping||(n.iter(a,o.line+t.text.length,function(e){var t=Xe(e);t>i.maxLineLength&&(i.maxLine=e,i.maxLineLength=t,i.maxLineChanged=!0,s=!1)}),s&&(e.curOp.updateMaxLine=!0));(function(e,t){if(e.modeFrontier=Math.min(e.modeFrontier,t),!(e.highlightFrontier<t-10)){for(var r=e.first,n=t-1;n>r;n--){var i=se(e,n).stateAfter;if(i&&(!(i instanceof Ht)||n+i.lookAhead<t)){r=n+1;break}}e.highlightFrontier=Math.min(e.highlightFrontier,r)}})(n,o.line),Jn(e,400);var u=t.text.length-(l.line-o.line)-1;t.full?_n(e):o.line!=l.line||1!=t.text.length||Li(e.doc,t)?_n(e,o.line,l.line+1,u):qn(e,o.line,\"text\");var c=ot(e,\"changes\"),h=ot(e,\"change\");if(h||c){var f={from:o,to:l,text:t.text,removed:t.removed,origin:t.origin};h&&or(e,\"change\",e,f),c&&(e.curOp.changeObjs||(e.curOp.changeObjs=[])).push(f)}e.display.selForContextMenu=null}(e.cm,t,n):ki(e,t,n),Xi(e,r,V)}}function lo(e,t,r,n,i){var o;(n||(n=r),ve(n,r)<0)&&(r=(o=[n,r])[0],n=o[1]);\"string\"==typeof t&&(t=e.splitLines(t)),to(e,{from:r,to:n,text:t,origin:i})}function so(e,t,r,n){r<e.line?e.line+=n:t<e.line&&(e.line=t,e.ch=0)}function ao(e,t,r,n){for(var i=0;i<e.length;++i){var o=e[i],l=!0;if(o.ranges){o.copied||((o=e[i]=o.deepCopy()).copied=!0);for(var s=0;s<o.ranges.length;s++)so(o.ranges[s].anchor,t,r,n),so(o.ranges[s].head,t,r,n)}else{for(var a=0;a<o.changes.length;++a){var u=o.changes[a];if(r<u.from.line)u.from=ge(u.from.line+n,u.from.ch),u.to=ge(u.to.line+n,u.to.ch);else if(t<=u.to.line){l=!1;break}}l||(e.splice(0,i+1),i=0)}}}function uo(e,t){var r=t.from.line,n=t.to.line,i=t.text.length-(n-r)-1;ao(e.done,r,n,i),ao(e.undone,r,n,i)}function co(e,t,r,n){var i=t,o=t;return\"number\"==typeof t?o=se(e,xe(e,t)):i=he(t),null==i?null:(n(o,i)&&e.cm&&qn(e.cm,i,r),o)}function ho(e){this.lines=e,this.parent=null;for(var t=0,r=0;r<e.length;++r)e[r].parent=this,t+=e[r].height;this.height=t}function fo(e){this.children=e;for(var t=0,r=0,n=0;n<e.length;++n){var i=e[n];t+=i.chunkSize(),r+=i.height,i.parent=this}this.size=t,this.height=r,this.parent=null}gi.prototype.from=function(){return we(this.anchor,this.head)},gi.prototype.to=function(){return be(this.anchor,this.head)},gi.prototype.empty=function(){return this.head.line==this.anchor.line&&this.head.ch==this.anchor.ch},ho.prototype={chunkSize:function(){return this.lines.length},removeInner:function(e,t){for(var r,n=e,i=e+t;n<i;++n){var o=this.lines[n];this.height-=o.height,(r=o).parent=null,De(r),or(o,\"delete\")}this.lines.splice(e,t)},collapse:function(e){e.push.apply(e,this.lines)},insertInner:function(e,t,r){this.height+=r,this.lines=this.lines.slice(0,e).concat(t).concat(this.lines.slice(e));for(var n=0;n<t.length;++n)t[n].parent=this},iterN:function(e,t,r){for(var n=e+t;e<n;++e)if(r(this.lines[e]))return!0}},fo.prototype={chunkSize:function(){return this.size},removeInner:function(e,t){this.size-=t;for(var r=0;r<this.children.length;++r){var n=this.children[r],i=n.chunkSize();if(e<i){var o=Math.min(t,i-e),l=n.height;if(n.removeInner(e,o),this.height-=l-n.height,i==o&&(this.children.splice(r--,1),n.parent=null),0==(t-=o))break;e=0}else e-=i}if(this.size-t<25&&(this.children.length>1||!(this.children[0]instanceof ho))){var s=[];this.collapse(s),this.children=[new ho(s)],this.children[0].parent=this}},collapse:function(e){for(var t=0;t<this.children.length;++t)this.children[t].collapse(e)},insertInner:function(e,t,r){this.size+=t.length,this.height+=r;for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<=o){if(i.insertInner(e,t,r),i.lines&&i.lines.length>50){for(var l=i.lines.length%25+25,s=l;s<i.lines.length;){var a=new ho(i.lines.slice(s,s+=25));i.height-=a.height,this.children.splice(++n,0,a),a.parent=this}i.lines=i.lines.slice(0,l),this.maybeSpill()}break}e-=o}},maybeSpill:function(){if(!(this.children.length<=10)){var e=this;do{var t=new fo(e.children.splice(e.children.length-5,5));if(e.parent){e.size-=t.size,e.height-=t.height;var r=B(e.parent.children,e);e.parent.children.splice(r+1,0,t)}else{var n=new fo(e.children);n.parent=e,e.children=[n,t],e=n}t.parent=e.parent}while(e.children.length>10);e.parent.maybeSpill()}},iterN:function(e,t,r){for(var n=0;n<this.children.length;++n){var i=this.children[n],o=i.chunkSize();if(e<o){var l=Math.min(t,o-e);if(i.iterN(e,l,r))return!0;if(0==(t-=l))break;e=0}else e-=o}}};var po=function(e,t,r){if(r)for(var n in r)r.hasOwnProperty(n)&&(this[n]=r[n]);this.doc=e,this.node=t};function go(e,t,r){je(t)<(e.curOp&&e.curOp.scrollTop||e.doc.scrollTop)&&Cn(e,r)}po.prototype.clear=function(){var e=this.doc.cm,t=this.line.widgets,r=this.line,n=he(r);if(null!=n&&t){for(var i=0;i<t.length;++i)t[i]==this&&t.splice(i--,1);t.length||(r.widgets=null);var o=mr(this);ce(r,Math.max(0,r.height-o)),e&&(Kn(e,function(){go(e,r,-o),qn(e,n,\"widget\")}),or(e,\"lineWidgetCleared\",e,this,n))}},po.prototype.changed=function(){var e=this,t=this.height,r=this.doc.cm,n=this.line;this.height=null;var i=mr(this)-t;i&&(ce(n,n.height+i),r&&Kn(r,function(){r.curOp.forceUpdate=!0,go(r,n,i),or(r,\"lineWidgetChanged\",r,e,he(n))}))},lt(po);var vo=0,mo=function(e,t){this.lines=[],this.type=t,this.doc=e,this.id=++vo};function yo(e,t,r,n,i){if(n&&n.shared)return function(e,t,r,n,i){(n=z(n)).shared=!1;var o=[yo(e,t,r,n,i)],l=o[0],s=n.widgetNode;return Ti(e,function(e){s&&(n.widgetNode=s.cloneNode(!0)),o.push(yo(e,Ce(e,t),Ce(e,r),n,i));for(var a=0;a<e.linked.length;++a)if(e.linked[a].isParent)return;l=q(o)}),new bo(o,l)}(e,t,r,n,i);if(e.cm&&!e.cm.curOp)return jn(e.cm,yo)(e,t,r,n,i);var o=new mo(e,i),l=ve(t,r);if(n&&z(n,o,!1),l>0||0==l&&!1!==o.clearWhenEmpty)return o;if(o.replacedWith&&(o.collapsed=!0,o.widgetNode=A(\"span\",[o.replacedWith],\"CodeMirror-widget\"),n.handleMouseEvents||o.widgetNode.setAttribute(\"cm-ignore-events\",\"true\"),n.insertLeft&&(o.widgetNode.insertLeft=!0)),o.collapsed){if(Re(e,t.line,t,r,o)||t.line!=r.line&&Re(e,r.line,t,r,o))throw new Error(\"Inserting collapsed marker partially overlapping an existing one\");ke=!0}o.addToHistory&&Wi(e,{from:t,to:r,origin:\"markText\"},e.sel,NaN);var s,a=t.line,u=e.cm;if(e.iter(a,r.line+1,function(e){var n,i;u&&o.collapsed&&!u.options.lineWrapping&&Be(e)==u.display.maxLine&&(s=!0),o.collapsed&&a!=t.line&&ce(e,0),n=e,i=new Te(o,a==t.line?t.ch:null,a==r.line?r.ch:null),n.markedSpans=n.markedSpans?n.markedSpans.concat([i]):[i],i.marker.attachLine(n),++a}),o.collapsed&&e.iter(t.line,r.line+1,function(t){Ve(e,t)&&ce(t,0)}),o.clearOnEnter&&Je(o,\"beforeCursorEnter\",function(){return o.clear()}),o.readOnly&&(Le=!0,(e.history.done.length||e.history.undone.length)&&e.clearHistory()),o.collapsed&&(o.id=++vo,o.atomic=!0),u){if(s&&(u.curOp.updateMaxLine=!0),o.collapsed)_n(u,t.line,r.line+1);else if(o.className||o.title||o.startStyle||o.endStyle||o.css)for(var c=t.line;c<=r.line;c++)qn(u,c,\"text\");o.atomic&&_i(u.doc),or(u,\"markerAdded\",u,o)}return o}mo.prototype.clear=function(){var e=this;if(!this.explicitlyCleared){var t=this.doc.cm,r=t&&!t.curOp;if(r&&In(t),ot(this,\"clear\")){var n=this.find();n&&or(this,\"clear\",n.from,n.to)}for(var i=null,o=null,l=0;l<this.lines.length;++l){var s=e.lines[l],a=Me(s.markedSpans,e);t&&!e.collapsed?qn(t,he(s),\"text\"):t&&(null!=a.to&&(o=he(s)),null!=a.from&&(i=he(s))),s.markedSpans=Ne(s.markedSpans,a),null==a.from&&e.collapsed&&!Ve(e.doc,s)&&t&&ce(s,Zr(t.display))}if(t&&this.collapsed&&!t.options.lineWrapping)for(var u=0;u<this.lines.length;++u){var c=Be(e.lines[u]),h=Xe(c);h>t.display.maxLineLength&&(t.display.maxLine=c,t.display.maxLineLength=h,t.display.maxLineChanged=!0)}null!=i&&t&&this.collapsed&&_n(t,i,o+1),this.lines.length=0,this.explicitlyCleared=!0,this.atomic&&this.doc.cantEdit&&(this.doc.cantEdit=!1,t&&_i(t.doc)),t&&or(t,\"markerCleared\",t,this,i,o),r&&Rn(t),this.parent&&this.parent.clear()}},mo.prototype.find=function(e,t){var r,n;null==e&&\"bookmark\"==this.type&&(e=1);for(var i=0;i<this.lines.length;++i){var o=this.lines[i],l=Me(o.markedSpans,this);if(null!=l.from&&(r=ge(t?o:he(o),l.from),-1==e))return r;if(null!=l.to&&(n=ge(t?o:he(o),l.to),1==e))return n}return r&&{from:r,to:n}},mo.prototype.changed=function(){var e=this,t=this.find(-1,!0),r=this,n=this.doc.cm;t&&n&&Kn(n,function(){var i=t.line,o=he(t.line),l=Mr(n,o);if(l&&(Fr(l),n.curOp.selectionChanged=n.curOp.forceUpdate=!0),n.curOp.updateMaxLine=!0,!Ve(r.doc,i)&&null!=r.height){var s=r.height;r.height=null;var a=mr(r)-s;a&&ce(i,i.height+a)}or(n,\"markerChanged\",n,e)})},mo.prototype.attachLine=function(e){if(!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;t.maybeHiddenMarkers&&-1!=B(t.maybeHiddenMarkers,this)||(t.maybeUnhiddenMarkers||(t.maybeUnhiddenMarkers=[])).push(this)}this.lines.push(e)},mo.prototype.detachLine=function(e){if(this.lines.splice(B(this.lines,e),1),!this.lines.length&&this.doc.cm){var t=this.doc.cm.curOp;(t.maybeHiddenMarkers||(t.maybeHiddenMarkers=[])).push(this)}},lt(mo);var bo=function(e,t){this.markers=e,this.primary=t;for(var r=0;r<e.length;++r)e[r].parent=this};function wo(e){return e.findMarks(ge(e.first,0),e.clipPos(ge(e.lastLine())),function(e){return e.parent})}function xo(e){for(var t=function(t){var r=e[t],n=[r.primary.doc];Ti(r.primary.doc,function(e){return n.push(e)});for(var i=0;i<r.markers.length;i++){var o=r.markers[i];-1==B(n,o.doc)&&(o.parent=null,r.markers.splice(i--,1))}},r=0;r<e.length;r++)t(r)}bo.prototype.clear=function(){if(!this.explicitlyCleared){this.explicitlyCleared=!0;for(var e=0;e<this.markers.length;++e)this.markers[e].clear();or(this,\"clear\")}},bo.prototype.find=function(e,t){return this.primary.find(e,t)},lt(bo);var Co=0,So=function(e,t,r,n,i){if(!(this instanceof So))return new So(e,t,r,n,i);null==r&&(r=0),fo.call(this,[new ho([new jt(\"\",null)])]),this.first=r,this.scrollTop=this.scrollLeft=0,this.cantEdit=!1,this.cleanGeneration=1,this.modeFrontier=this.highlightFrontier=r;var o=ge(r,0);this.sel=mi(o),this.history=new Oi(null),this.id=++Co,this.modeOption=t,this.lineSep=n,this.direction=\"rtl\"==i?\"rtl\":\"ltr\",this.extend=!1,\"string\"==typeof e&&(e=this.splitLines(e)),ki(this,{from:o,to:o,text:e}),ji(this,mi(o),V)};So.prototype=Q(fo.prototype,{constructor:So,iter:function(e,t,r){r?this.iterN(e-this.first,t-e,r):this.iterN(this.first,this.first+this.size,e)},insert:function(e,t){for(var r=0,n=0;n<t.length;++n)r+=t[n].height;this.insertInner(e-this.first,t,r)},remove:function(e,t){this.removeInner(e-this.first,t)},getValue:function(e){var t=ue(this,this.first,this.first+this.size);return!1===e?t:t.join(e||this.lineSeparator())},setValue:Yn(function(e){var t=ge(this.first,0),r=this.first+this.size-1;to(this,{from:t,to:ge(r,se(this,r).text.length),text:this.splitLines(e),origin:\"setValue\",full:!0},!0),this.cm&&Ln(this.cm,0,0),ji(this,mi(t),V)}),replaceRange:function(e,t,r,n){lo(this,e,t=Ce(this,t),r=r?Ce(this,r):t,n)},getRange:function(e,t,r){var n=ae(this,Ce(this,e),Ce(this,t));return!1===r?n:n.join(r||this.lineSeparator())},getLine:function(e){var t=this.getLineHandle(e);return t&&t.text},getLineHandle:function(e){if(de(this,e))return se(this,e)},getLineNumber:function(e){return he(e)},getLineHandleVisualStart:function(e){return\"number\"==typeof e&&(e=se(this,e)),Be(e)},lineCount:function(){return this.size},firstLine:function(){return this.first},lastLine:function(){return this.first+this.size-1},clipPos:function(e){return Ce(this,e)},getCursor:function(e){var t=this.sel.primary();return null==e||\"head\"==e?t.head:\"anchor\"==e?t.anchor:\"end\"==e||\"to\"==e||!1===e?t.to():t.from()},listSelections:function(){return this.sel.ranges},somethingSelected:function(){return this.sel.somethingSelected()},setCursor:Yn(function(e,t,r){Vi(this,Ce(this,\"number\"==typeof e?ge(e,t||0):e),null,r)}),setSelection:Yn(function(e,t,r){Vi(this,Ce(this,e),Ce(this,t||e),r)}),extendSelection:Yn(function(e,t,r){Bi(this,Ce(this,e),t&&Ce(this,t),r)}),extendSelections:Yn(function(e,t){Gi(this,Se(this,e),t)}),extendSelectionsBy:Yn(function(e,t){Gi(this,Se(this,$(this.sel.ranges,e)),t)}),setSelections:Yn(function(e,t,r){if(e.length){for(var n=[],i=0;i<e.length;i++)n[i]=new gi(Ce(this,e[i].anchor),Ce(this,e[i].head));null==t&&(t=Math.min(e.length-1,this.sel.primIndex)),ji(this,vi(n,t),r)}}),addSelection:Yn(function(e,t,r){var n=this.sel.ranges.slice(0);n.push(new gi(Ce(this,e),Ce(this,t||e))),ji(this,vi(n,n.length-1),r)}),getSelection:function(e){for(var t,r=this.sel.ranges,n=0;n<r.length;n++){var i=ae(this,r[n].from(),r[n].to());t=t?t.concat(i):i}return!1===e?t:t.join(e||this.lineSeparator())},getSelections:function(e){for(var t=[],r=this.sel.ranges,n=0;n<r.length;n++){var i=ae(this,r[n].from(),r[n].to());!1!==e&&(i=i.join(e||this.lineSeparator())),t[n]=i}return t},replaceSelection:function(e,t,r){for(var n=[],i=0;i<this.sel.ranges.length;i++)n[i]=e;this.replaceSelections(n,t,r||\"+input\")},replaceSelections:Yn(function(e,t,r){for(var n=[],i=this.sel,o=0;o<i.ranges.length;o++){var l=i.ranges[o];n[o]={from:l.from(),to:l.to(),text:this.splitLines(e[o]),origin:r}}for(var s=t&&\"end\"!=t&&function(e,t,r){for(var n=[],i=ge(e.first,0),o=i,l=0;l<t.length;l++){var s=t[l],a=xi(s.from,i,o),u=xi(yi(s),i,o);if(i=s.to,o=u,\"around\"==r){var c=e.sel.ranges[l],h=ve(c.head,c.anchor)<0;n[l]=new gi(h?u:a,h?a:u)}else n[l]=new gi(a,a)}return new pi(n,e.sel.primIndex)}(this,n,t),a=n.length-1;a>=0;a--)to(this,n[a]);s?Ki(this,s):this.cm&&Sn(this.cm)}),undo:Yn(function(){no(this,\"undo\")}),redo:Yn(function(){no(this,\"redo\")}),undoSelection:Yn(function(){no(this,\"undo\",!0)}),redoSelection:Yn(function(){no(this,\"redo\",!0)}),setExtending:function(e){this.extend=e},getExtending:function(){return this.extend},historySize:function(){for(var e=this.history,t=0,r=0,n=0;n<e.done.length;n++)e.done[n].ranges||++t;for(var i=0;i<e.undone.length;i++)e.undone[i].ranges||++r;return{undo:t,redo:r}},clearHistory:function(){this.history=new Oi(this.history.maxGeneration)},markClean:function(){this.cleanGeneration=this.changeGeneration(!0)},changeGeneration:function(e){return e&&(this.history.lastOp=this.history.lastSelOp=this.history.lastOrigin=null),this.history.generation},isClean:function(e){return this.history.generation==(e||this.cleanGeneration)},getHistory:function(){return{done:Ii(this.history.done),undone:Ii(this.history.undone)}},setHistory:function(e){var t=this.history=new Oi(this.history.maxGeneration);t.done=Ii(e.done.slice(0),null,!0),t.undone=Ii(e.undone.slice(0),null,!0)},setGutterMarker:Yn(function(e,t,r){return co(this,e,\"gutter\",function(e){var n=e.gutterMarkers||(e.gutterMarkers={});return n[t]=r,!r&&re(n)&&(e.gutterMarkers=null),!0})}),clearGutter:Yn(function(e){var t=this;this.iter(function(r){r.gutterMarkers&&r.gutterMarkers[e]&&co(t,r,\"gutter\",function(){return r.gutterMarkers[e]=null,re(r.gutterMarkers)&&(r.gutterMarkers=null),!0})})}),lineInfo:function(e){var t;if(\"number\"==typeof e){if(!de(this,e))return null;if(t=e,!(e=se(this,e)))return null}else if(null==(t=he(e)))return null;return{line:t,handle:e,text:e.text,gutterMarkers:e.gutterMarkers,textClass:e.textClass,bgClass:e.bgClass,wrapClass:e.wrapClass,widgets:e.widgets}},addLineClass:Yn(function(e,t,r){return co(this,e,\"gutter\"==t?\"gutter\":\"class\",function(e){var n=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\";if(e[n]){if(L(r).test(e[n]))return!1;e[n]+=\" \"+r}else e[n]=r;return!0})}),removeLineClass:Yn(function(e,t,r){return co(this,e,\"gutter\"==t?\"gutter\":\"class\",function(e){var n=\"text\"==t?\"textClass\":\"background\"==t?\"bgClass\":\"gutter\"==t?\"gutterClass\":\"wrapClass\",i=e[n];if(!i)return!1;if(null==r)e[n]=null;else{var o=i.match(L(r));if(!o)return!1;var l=o.index+o[0].length;e[n]=i.slice(0,o.index)+(o.index&&l!=i.length?\" \":\"\")+i.slice(l)||null}return!0})}),addLineWidget:Yn(function(e,t,r){return i=e,o=new po(n=this,t,r),(l=n.cm)&&o.noHScroll&&(l.display.alignWidgets=!0),co(n,i,\"widget\",function(e){var t=e.widgets||(e.widgets=[]);if(null==o.insertAt?t.push(o):t.splice(Math.min(t.length-1,Math.max(0,o.insertAt)),0,o),o.line=e,l&&!Ve(n,e)){var r=je(e)<n.scrollTop;ce(e,e.height+mr(o)),r&&Cn(l,o.height),l.curOp.forceUpdate=!0}return!0}),l&&or(l,\"lineWidgetAdded\",l,o,\"number\"==typeof i?i:he(i)),o;var n,i,o,l}),removeLineWidget:function(e){e.clear()},markText:function(e,t,r){return yo(this,Ce(this,e),Ce(this,t),r,r&&r.type||\"range\")},setBookmark:function(e,t){var r={replacedWith:t&&(null==t.nodeType?t.widget:t),insertLeft:t&&t.insertLeft,clearWhenEmpty:!1,shared:t&&t.shared,handleMouseEvents:t&&t.handleMouseEvents};return yo(this,e=Ce(this,e),e,r,\"bookmark\")},findMarksAt:function(e){var t=[],r=se(this,(e=Ce(this,e)).line).markedSpans;if(r)for(var n=0;n<r.length;++n){var i=r[n];(null==i.from||i.from<=e.ch)&&(null==i.to||i.to>=e.ch)&&t.push(i.marker.parent||i.marker)}return t},findMarks:function(e,t,r){e=Ce(this,e),t=Ce(this,t);var n=[],i=e.line;return this.iter(e.line,t.line+1,function(o){var l=o.markedSpans;if(l)for(var s=0;s<l.length;s++){var a=l[s];null!=a.to&&i==e.line&&e.ch>=a.to||null==a.from&&i!=e.line||null!=a.from&&i==t.line&&a.from>=t.ch||r&&!r(a.marker)||n.push(a.marker.parent||a.marker)}++i}),n},getAllMarks:function(){var e=[];return this.iter(function(t){var r=t.markedSpans;if(r)for(var n=0;n<r.length;++n)null!=r[n].from&&e.push(r[n].marker)}),e},posFromIndex:function(e){var t,r=this.first,n=this.lineSeparator().length;return this.iter(function(i){var o=i.text.length+n;if(o>e)return t=e,!0;e-=o,++r}),Ce(this,ge(r,t))},indexFromPos:function(e){var t=(e=Ce(this,e)).ch;if(e.line<this.first||e.ch<0)return 0;var r=this.lineSeparator().length;return this.iter(this.first,e.line,function(e){t+=e.text.length+r}),t},copy:function(e){var t=new So(ue(this,this.first,this.first+this.size),this.modeOption,this.first,this.lineSep,this.direction);return t.scrollTop=this.scrollTop,t.scrollLeft=this.scrollLeft,t.sel=this.sel,t.extend=!1,e&&(t.history.undoDepth=this.history.undoDepth,t.setHistory(this.getHistory())),t},linkedDoc:function(e){e||(e={});var t=this.first,r=this.first+this.size;null!=e.from&&e.from>t&&(t=e.from),null!=e.to&&e.to<r&&(r=e.to);var n=new So(ue(this,t,r),e.mode||this.modeOption,t,this.lineSep,this.direction);return e.sharedHist&&(n.history=this.history),(this.linked||(this.linked=[])).push({doc:n,sharedHist:e.sharedHist}),n.linked=[{doc:this,isParent:!0,sharedHist:e.sharedHist}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r],i=n.find(),o=e.clipPos(i.from),l=e.clipPos(i.to);if(ve(o,l)){var s=yo(e,o,l,n.primary,n.primary.type);n.markers.push(s),s.parent=n}}}(n,wo(this)),n},unlinkDoc:function(e){if(e instanceof wl&&(e=e.doc),this.linked)for(var t=0;t<this.linked.length;++t){if(this.linked[t].doc==e){this.linked.splice(t,1),e.unlinkDoc(this),xo(wo(this));break}}if(e.history==this.history){var r=[e.id];Ti(e,function(e){return r.push(e.id)},!0),e.history=new Oi(null),e.history.done=Ii(this.history.done,r),e.history.undone=Ii(this.history.undone,r)}},iterLinkedDocs:function(e){Ti(this,e)},getMode:function(){return this.mode},getEditor:function(){return this.cm},splitLines:function(e){return this.lineSep?e.split(this.lineSep):bt(e)},lineSeparator:function(){return this.lineSep||\"\\n\"},setDirection:Yn(function(e){var t;(\"rtl\"!=e&&(e=\"ltr\"),e!=this.direction)&&(this.direction=e,this.iter(function(e){return e.order=null}),this.cm&&Kn(t=this.cm,function(){Ni(t),_n(t)}))})}),So.prototype.eachLine=So.prototype.iter;var Lo=0;function ko(e){var t=this;if(To(t),!nt(t,e)&&!yr(t.display,e)){st(e),l&&(Lo=+new Date);var r=nn(t,e,!0),n=e.dataTransfer.files;if(r&&!t.isReadOnly())if(n&&n.length&&window.FileReader&&window.File)for(var i=n.length,o=Array(i),s=0,a=function(e,n){if(!t.options.allowDropFileTypes||-1!=B(t.options.allowDropFileTypes,e.type)){var l=new FileReader;l.onload=jn(t,function(){var e=l.result;if(/[\\x00-\\x08\\x0e-\\x1f]{2}/.test(e)&&(e=\"\"),o[n]=e,++s==i){var a={from:r=Ce(t.doc,r),to:r,text:t.doc.splitLines(o.join(t.doc.lineSeparator())),origin:\"paste\"};to(t.doc,a),Ki(t.doc,mi(r,yi(a)))}}),l.readAsText(e)}},u=0;u<i;++u)a(n[u],u);else{if(t.state.draggingText&&t.doc.sel.contains(r)>-1)return t.state.draggingText(e),void setTimeout(function(){return t.display.input.focus()},20);try{var c=e.dataTransfer.getData(\"Text\");if(c){var h;if(t.state.draggingText&&!t.state.draggingText.copy&&(h=t.listSelections()),Xi(t.doc,mi(r,r)),h)for(var f=0;f<h.length;++f)lo(t.doc,\"\",h[f].anchor,h[f].head,\"drag\");t.replaceSelection(c,\"around\",\"paste\"),t.display.input.focus()}}catch(e){}}}}function To(e){e.display.dragCursor&&(e.display.lineSpace.removeChild(e.display.dragCursor),e.display.dragCursor=null)}function Mo(e){if(document.getElementsByClassName)for(var t=document.getElementsByClassName(\"CodeMirror\"),r=0;r<t.length;r++){var n=t[r].CodeMirror;n&&e(n)}}var No=!1;function Oo(){var e;No||(Je(window,\"resize\",function(){null==e&&(e=setTimeout(function(){e=null,Mo(Ao)},100))}),Je(window,\"blur\",function(){return Mo(gn)}),No=!0)}function Ao(e){var t=e.display;t.lastWrapHeight==t.wrapper.clientHeight&&t.lastWrapWidth==t.wrapper.clientWidth||(t.cachedCharWidth=t.cachedTextHeight=t.cachedPaddingH=null,t.scrollbarsClipped=!1,e.setSize())}for(var Do={3:\"Pause\",8:\"Backspace\",9:\"Tab\",13:\"Enter\",16:\"Shift\",17:\"Ctrl\",18:\"Alt\",19:\"Pause\",20:\"CapsLock\",27:\"Esc\",32:\"Space\",33:\"PageUp\",34:\"PageDown\",35:\"End\",36:\"Home\",37:\"Left\",38:\"Up\",39:\"Right\",40:\"Down\",44:\"PrintScrn\",45:\"Insert\",46:\"Delete\",59:\";\",61:\"=\",91:\"Mod\",92:\"Mod\",93:\"Mod\",106:\"*\",107:\"=\",109:\"-\",110:\".\",111:\"/\",127:\"Delete\",145:\"ScrollLock\",173:\"-\",186:\";\",187:\"=\",188:\",\",189:\"-\",190:\".\",191:\"/\",192:\"`\",219:\"[\",220:\"\\\\\",221:\"]\",222:\"'\",63232:\"Up\",63233:\"Down\",63234:\"Left\",63235:\"Right\",63272:\"Delete\",63273:\"Home\",63275:\"End\",63276:\"PageUp\",63277:\"PageDown\",63302:\"Insert\"},Wo=0;Wo<10;Wo++)Do[Wo+48]=Do[Wo+96]=String(Wo);for(var Ho=65;Ho<=90;Ho++)Do[Ho]=String.fromCharCode(Ho);for(var Fo=1;Fo<=12;Fo++)Do[Fo+111]=Do[Fo+63235]=\"F\"+Fo;var Po={};function Eo(e){var t,r,n,i,o=e.split(/-(?!$)/);e=o[o.length-1];for(var l=0;l<o.length-1;l++){var s=o[l];if(/^(cmd|meta|m)$/i.test(s))i=!0;else if(/^a(lt)?$/i.test(s))t=!0;else if(/^(c|ctrl|control)$/i.test(s))r=!0;else{if(!/^s(hift)?$/i.test(s))throw new Error(\"Unrecognized modifier name: \"+s);n=!0}}return t&&(e=\"Alt-\"+e),r&&(e=\"Ctrl-\"+e),i&&(e=\"Cmd-\"+e),n&&(e=\"Shift-\"+e),e}function zo(e){var t={};for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];if(/^(name|fallthrough|(de|at)tach)$/.test(r))continue;if(\"...\"==n){delete e[r];continue}for(var i=$(r.split(\" \"),Eo),o=0;o<i.length;o++){var l=void 0,s=void 0;o==i.length-1?(s=i.join(\" \"),l=n):(s=i.slice(0,o+1).join(\" \"),l=\"...\");var a=t[s];if(a){if(a!=l)throw new Error(\"Inconsistent bindings for \"+s)}else t[s]=l}delete e[r]}for(var u in t)e[u]=t[u];return e}function Io(e,t,r,n){var i=(t=Uo(t)).call?t.call(e,n):t[e];if(!1===i)return\"nothing\";if(\"...\"===i)return\"multi\";if(null!=i&&r(i))return\"handled\";if(t.fallthrough){if(\"[object Array]\"!=Object.prototype.toString.call(t.fallthrough))return Io(e,t.fallthrough,r,n);for(var o=0;o<t.fallthrough.length;o++){var l=Io(e,t.fallthrough[o],r,n);if(l)return l}}}function Ro(e){var t=\"string\"==typeof e?e:Do[e.keyCode];return\"Ctrl\"==t||\"Alt\"==t||\"Shift\"==t||\"Mod\"==t}function Bo(e,t,r){var n=e;return t.altKey&&\"Alt\"!=n&&(e=\"Alt-\"+e),(C?t.metaKey:t.ctrlKey)&&\"Ctrl\"!=n&&(e=\"Ctrl-\"+e),(C?t.ctrlKey:t.metaKey)&&\"Cmd\"!=n&&(e=\"Cmd-\"+e),!r&&t.shiftKey&&\"Shift\"!=n&&(e=\"Shift-\"+e),e}function Go(e,t){if(h&&34==e.keyCode&&e.char)return!1;var r=Do[e.keyCode];return null!=r&&!e.altGraphKey&&(3==e.keyCode&&e.code&&(r=e.code),Bo(r,e,t))}function Uo(e){return\"string\"==typeof e?Po[e]:e}function Vo(e,t){for(var r=e.doc.sel.ranges,n=[],i=0;i<r.length;i++){for(var o=t(r[i]);n.length&&ve(o.from,q(n).to)<=0;){var l=n.pop();if(ve(l.from,o.from)<0){o.from=l.from;break}}n.push(o)}Kn(e,function(){for(var t=n.length-1;t>=0;t--)lo(e.doc,\"\",n[t].from,n[t].to,\"+delete\");Sn(e)})}function Ko(e,t,r){var n=oe(e.text,t+r,r);return n<0||n>e.text.length?null:n}function jo(e,t,r){var n=Ko(e,t.ch,r);return null==n?null:new ge(t.line,n,r<0?\"after\":\"before\")}function Xo(e,t,r,n,i){if(e){var o=Ze(r,t.doc.direction);if(o){var l,s=i<0?q(o):o[0],a=i<0==(1==s.level)?\"after\":\"before\";if(s.level>0||\"rtl\"==t.doc.direction){var u=Nr(t,r);l=i<0?r.text.length-1:0;var c=Or(t,u,l).top;l=le(function(e){return Or(t,u,e).top==c},i<0==(1==s.level)?s.from:s.to-1,l),\"before\"==a&&(l=Ko(r,l,1))}else l=i<0?s.to:s.from;return new ge(n,l,a)}}return new ge(n,i<0?r.text.length:0,i<0?\"before\":\"after\")}Po.basic={Left:\"goCharLeft\",Right:\"goCharRight\",Up:\"goLineUp\",Down:\"goLineDown\",End:\"goLineEnd\",Home:\"goLineStartSmart\",PageUp:\"goPageUp\",PageDown:\"goPageDown\",Delete:\"delCharAfter\",Backspace:\"delCharBefore\",\"Shift-Backspace\":\"delCharBefore\",Tab:\"defaultTab\",\"Shift-Tab\":\"indentAuto\",Enter:\"newlineAndIndent\",Insert:\"toggleOverwrite\",Esc:\"singleSelection\"},Po.pcDefault={\"Ctrl-A\":\"selectAll\",\"Ctrl-D\":\"deleteLine\",\"Ctrl-Z\":\"undo\",\"Shift-Ctrl-Z\":\"redo\",\"Ctrl-Y\":\"redo\",\"Ctrl-Home\":\"goDocStart\",\"Ctrl-End\":\"goDocEnd\",\"Ctrl-Up\":\"goLineUp\",\"Ctrl-Down\":\"goLineDown\",\"Ctrl-Left\":\"goGroupLeft\",\"Ctrl-Right\":\"goGroupRight\",\"Alt-Left\":\"goLineStart\",\"Alt-Right\":\"goLineEnd\",\"Ctrl-Backspace\":\"delGroupBefore\",\"Ctrl-Delete\":\"delGroupAfter\",\"Ctrl-S\":\"save\",\"Ctrl-F\":\"find\",\"Ctrl-G\":\"findNext\",\"Shift-Ctrl-G\":\"findPrev\",\"Shift-Ctrl-F\":\"replace\",\"Shift-Ctrl-R\":\"replaceAll\",\"Ctrl-[\":\"indentLess\",\"Ctrl-]\":\"indentMore\",\"Ctrl-U\":\"undoSelection\",\"Shift-Ctrl-U\":\"redoSelection\",\"Alt-U\":\"redoSelection\",fallthrough:\"basic\"},Po.emacsy={\"Ctrl-F\":\"goCharRight\",\"Ctrl-B\":\"goCharLeft\",\"Ctrl-P\":\"goLineUp\",\"Ctrl-N\":\"goLineDown\",\"Alt-F\":\"goWordRight\",\"Alt-B\":\"goWordLeft\",\"Ctrl-A\":\"goLineStart\",\"Ctrl-E\":\"goLineEnd\",\"Ctrl-V\":\"goPageDown\",\"Shift-Ctrl-V\":\"goPageUp\",\"Ctrl-D\":\"delCharAfter\",\"Ctrl-H\":\"delCharBefore\",\"Alt-D\":\"delWordAfter\",\"Alt-Backspace\":\"delWordBefore\",\"Ctrl-K\":\"killLine\",\"Ctrl-T\":\"transposeChars\",\"Ctrl-O\":\"openLine\"},Po.macDefault={\"Cmd-A\":\"selectAll\",\"Cmd-D\":\"deleteLine\",\"Cmd-Z\":\"undo\",\"Shift-Cmd-Z\":\"redo\",\"Cmd-Y\":\"redo\",\"Cmd-Home\":\"goDocStart\",\"Cmd-Up\":\"goDocStart\",\"Cmd-End\":\"goDocEnd\",\"Cmd-Down\":\"goDocEnd\",\"Alt-Left\":\"goGroupLeft\",\"Alt-Right\":\"goGroupRight\",\"Cmd-Left\":\"goLineLeft\",\"Cmd-Right\":\"goLineRight\",\"Alt-Backspace\":\"delGroupBefore\",\"Ctrl-Alt-Backspace\":\"delGroupAfter\",\"Alt-Delete\":\"delGroupAfter\",\"Cmd-S\":\"save\",\"Cmd-F\":\"find\",\"Cmd-G\":\"findNext\",\"Shift-Cmd-G\":\"findPrev\",\"Cmd-Alt-F\":\"replace\",\"Shift-Cmd-Alt-F\":\"replaceAll\",\"Cmd-[\":\"indentLess\",\"Cmd-]\":\"indentMore\",\"Cmd-Backspace\":\"delWrappedLineLeft\",\"Cmd-Delete\":\"delWrappedLineRight\",\"Cmd-U\":\"undoSelection\",\"Shift-Cmd-U\":\"redoSelection\",\"Ctrl-Up\":\"goDocStart\",\"Ctrl-Down\":\"goDocEnd\",fallthrough:[\"basic\",\"emacsy\"]},Po.default=y?Po.macDefault:Po.pcDefault;var Yo={selectAll:Ji,singleSelection:function(e){return e.setSelection(e.getCursor(\"anchor\"),e.getCursor(\"head\"),V)},killLine:function(e){return Vo(e,function(t){if(t.empty()){var r=se(e.doc,t.head.line).text.length;return t.head.ch==r&&t.head.line<e.lastLine()?{from:t.head,to:ge(t.head.line+1,0)}:{from:t.head,to:ge(t.head.line,r)}}return{from:t.from(),to:t.to()}})},deleteLine:function(e){return Vo(e,function(t){return{from:ge(t.from().line,0),to:Ce(e.doc,ge(t.to().line+1,0))}})},delLineLeft:function(e){return Vo(e,function(e){return{from:ge(e.from().line,0),to:e.from()}})},delWrappedLineLeft:function(e){return Vo(e,function(t){var r=e.charCoords(t.head,\"div\").top+5;return{from:e.coordsChar({left:0,top:r},\"div\"),to:t.from()}})},delWrappedLineRight:function(e){return Vo(e,function(t){var r=e.charCoords(t.head,\"div\").top+5,n=e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},\"div\");return{from:t.from(),to:n}})},undo:function(e){return e.undo()},redo:function(e){return e.redo()},undoSelection:function(e){return e.undoSelection()},redoSelection:function(e){return e.redoSelection()},goDocStart:function(e){return e.extendSelection(ge(e.firstLine(),0))},goDocEnd:function(e){return e.extendSelection(ge(e.lastLine()))},goLineStart:function(e){return e.extendSelectionsBy(function(t){return _o(e,t.head.line)},{origin:\"+move\",bias:1})},goLineStartSmart:function(e){return e.extendSelectionsBy(function(t){return qo(e,t.head)},{origin:\"+move\",bias:1})},goLineEnd:function(e){return e.extendSelectionsBy(function(t){return function(e,t){var r=se(e.doc,t),n=function(e){for(var t;t=Ie(e);)e=t.find(1,!0).line;return e}(r);n!=r&&(t=he(n));return Xo(!0,e,r,t,-1)}(e,t.head.line)},{origin:\"+move\",bias:-1})},goLineRight:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:e.display.lineDiv.offsetWidth+100,top:r},\"div\")},j)},goLineLeft:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5;return e.coordsChar({left:0,top:r},\"div\")},j)},goLineLeftSmart:function(e){return e.extendSelectionsBy(function(t){var r=e.cursorCoords(t.head,\"div\").top+5,n=e.coordsChar({left:0,top:r},\"div\");return n.ch<e.getLine(n.line).search(/\\S/)?qo(e,t.head):n},j)},goLineUp:function(e){return e.moveV(-1,\"line\")},goLineDown:function(e){return e.moveV(1,\"line\")},goPageUp:function(e){return e.moveV(-1,\"page\")},goPageDown:function(e){return e.moveV(1,\"page\")},goCharLeft:function(e){return e.moveH(-1,\"char\")},goCharRight:function(e){return e.moveH(1,\"char\")},goColumnLeft:function(e){return e.moveH(-1,\"column\")},goColumnRight:function(e){return e.moveH(1,\"column\")},goWordLeft:function(e){return e.moveH(-1,\"word\")},goGroupRight:function(e){return e.moveH(1,\"group\")},goGroupLeft:function(e){return e.moveH(-1,\"group\")},goWordRight:function(e){return e.moveH(1,\"word\")},delCharBefore:function(e){return e.deleteH(-1,\"char\")},delCharAfter:function(e){return e.deleteH(1,\"char\")},delWordBefore:function(e){return e.deleteH(-1,\"word\")},delWordAfter:function(e){return e.deleteH(1,\"word\")},delGroupBefore:function(e){return e.deleteH(-1,\"group\")},delGroupAfter:function(e){return e.deleteH(1,\"group\")},indentAuto:function(e){return e.indentSelection(\"smart\")},indentMore:function(e){return e.indentSelection(\"add\")},indentLess:function(e){return e.indentSelection(\"subtract\")},insertTab:function(e){return e.replaceSelection(\"\\t\")},insertSoftTab:function(e){for(var t=[],r=e.listSelections(),n=e.options.tabSize,i=0;i<r.length;i++){var o=r[i].from(),l=I(e.getLine(o.line),o.ch,n);t.push(_(n-l%n))}e.replaceSelections(t)},defaultTab:function(e){e.somethingSelected()?e.indentSelection(\"add\"):e.execCommand(\"insertTab\")},transposeChars:function(e){return Kn(e,function(){for(var t=e.listSelections(),r=[],n=0;n<t.length;n++)if(t[n].empty()){var i=t[n].head,o=se(e.doc,i.line).text;if(o)if(i.ch==o.length&&(i=new ge(i.line,i.ch-1)),i.ch>0)i=new ge(i.line,i.ch+1),e.replaceRange(o.charAt(i.ch-1)+o.charAt(i.ch-2),ge(i.line,i.ch-2),i,\"+transpose\");else if(i.line>e.doc.first){var l=se(e.doc,i.line-1).text;l&&(i=new ge(i.line,1),e.replaceRange(o.charAt(0)+e.doc.lineSeparator()+l.charAt(l.length-1),ge(i.line-1,l.length-1),i,\"+transpose\"))}r.push(new gi(i,i))}e.setSelections(r)})},newlineAndIndent:function(e){return Kn(e,function(){for(var t=e.listSelections(),r=t.length-1;r>=0;r--)e.replaceRange(e.doc.lineSeparator(),t[r].anchor,t[r].head,\"+input\");t=e.listSelections();for(var n=0;n<t.length;n++)e.indentLine(t[n].from().line,null,!0);Sn(e)})},openLine:function(e){return e.replaceSelection(\"\\n\",\"start\")},toggleOverwrite:function(e){return e.toggleOverwrite()}};function _o(e,t){var r=se(e.doc,t),n=Be(r);return n!=r&&(t=he(n)),Xo(!0,e,n,t,1)}function qo(e,t){var r=_o(e,t.line),n=se(e.doc,r.line),i=Ze(n,e.doc.direction);if(!i||0==i[0].level){var o=Math.max(0,n.text.search(/\\S/)),l=t.line==r.line&&t.ch<=o&&t.ch;return ge(r.line,l?0:o,r.sticky)}return r}function $o(e,t,r){if(\"string\"==typeof t&&!(t=Yo[t]))return!1;e.display.input.ensurePolled();var n=e.display.shift,i=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),r&&(e.display.shift=!1),i=t(e)!=U}finally{e.display.shift=n,e.state.suppressEdits=!1}return i}var Zo=new R;function Qo(e,t,r,n){var i=e.state.keySeq;if(i){if(Ro(t))return\"handled\";if(/\\'$/.test(t)?e.state.keySeq=null:Zo.set(50,function(){e.state.keySeq==i&&(e.state.keySeq=null,e.display.input.reset())}),Jo(e,i+\" \"+t,r,n))return!0}return Jo(e,t,r,n)}function Jo(e,t,r,n){var i=function(e,t,r){for(var n=0;n<e.state.keyMaps.length;n++){var i=Io(t,e.state.keyMaps[n],r,e);if(i)return i}return e.options.extraKeys&&Io(t,e.options.extraKeys,r,e)||Io(t,e.options.keyMap,r,e)}(e,t,n);return\"multi\"==i&&(e.state.keySeq=t),\"handled\"==i&&or(e,\"keyHandled\",e,t,r),\"handled\"!=i&&\"multi\"!=i||(st(r),hn(e)),!!i}function el(e,t){var r=Go(t,!0);return!!r&&(t.shiftKey&&!e.state.keySeq?Qo(e,\"Shift-\"+r,t,function(t){return $o(e,t,!0)})||Qo(e,r,t,function(t){if(\"string\"==typeof t?/^go[A-Z]/.test(t):t.motion)return $o(e,t)}):Qo(e,r,t,function(t){return $o(e,t)}))}var tl=null;function rl(e){var t=this;if(t.curOp.focus=W(),!nt(t,e)){l&&s<11&&27==e.keyCode&&(e.returnValue=!1);var r=e.keyCode;t.display.shift=16==r||e.shiftKey;var n=el(t,e);h&&(tl=n?r:null,!n&&88==r&&!xt&&(y?e.metaKey:e.ctrlKey)&&t.replaceSelection(\"\",null,\"cut\")),18!=r||/\\bCodeMirror-crosshair\\b/.test(t.display.lineDiv.className)||function(e){var t=e.display.lineDiv;function r(e){18!=e.keyCode&&e.altKey||(T(t,\"CodeMirror-crosshair\"),tt(document,\"keyup\",r),tt(document,\"mouseover\",r))}H(t,\"CodeMirror-crosshair\"),Je(document,\"keyup\",r),Je(document,\"mouseover\",r)}(t)}}function nl(e){16==e.keyCode&&(this.doc.sel.shift=!1),nt(this,e)}function il(e){var t=this;if(!(yr(t.display,e)||nt(t,e)||e.ctrlKey&&!e.altKey||y&&e.metaKey)){var r=e.keyCode,n=e.charCode;if(h&&r==tl)return tl=null,void st(e);if(!h||e.which&&!(e.which<10)||!el(t,e)){var i,o=String.fromCharCode(null==n?r:n);if(\"\\b\"!=o)if(!Qo(i=t,\"'\"+o+\"'\",e,function(e){return $o(i,e,!0)}))t.display.input.onKeyPress(e)}}}var ol,ll,sl=function(e,t,r){this.time=e,this.pos=t,this.button=r};function al(e){var t=this,r=t.display;if(!(nt(t,e)||r.activeTouch&&r.input.supportsTouch()))if(r.input.ensurePolled(),r.shift=e.shiftKey,yr(r,e))a||(r.scroller.draggable=!1,setTimeout(function(){return r.scroller.draggable=!0},100));else if(!hl(t,e)){var n,i,o,u=nn(t,e),c=ft(e),h=u?(n=u,i=c,o=+new Date,ll&&ll.compare(o,n,i)?(ol=ll=null,\"triple\"):ol&&ol.compare(o,n,i)?(ll=new sl(o,n,i),ol=null,\"double\"):(ol=new sl(o,n,i),ll=null,\"single\")):\"single\";window.focus(),1==c&&t.state.selectingText&&t.state.selectingText(e),u&&function(e,t,r,n,i){var o=\"Click\";\"double\"==n?o=\"Double\"+o:\"triple\"==n&&(o=\"Triple\"+o);return Qo(e,Bo(o=(1==t?\"Left\":2==t?\"Middle\":\"Right\")+o,i),i,function(t){if(\"string\"==typeof t&&(t=Yo[t]),!t)return!1;var n=!1;try{e.isReadOnly()&&(e.state.suppressEdits=!0),n=t(e,r)!=U}finally{e.state.suppressEdits=!1}return n})}(t,c,u,h,e)||(1==c?u?function(e,t,r,n){l?setTimeout(E(fn,e),0):e.curOp.focus=W();var i,o=function(e,t,r){var n=e.getOption(\"configureMouse\"),i=n?n(e,t,r):{};if(null==i.unit){var o=b?r.shiftKey&&r.metaKey:r.altKey;i.unit=o?\"rectangle\":\"single\"==t?\"char\":\"double\"==t?\"word\":\"line\"}(null==i.extend||e.doc.extend)&&(i.extend=e.doc.extend||r.shiftKey);null==i.addNew&&(i.addNew=y?r.metaKey:r.ctrlKey);null==i.moveOnDrag&&(i.moveOnDrag=!(y?r.altKey:r.ctrlKey));return i}(e,r,n),u=e.doc.sel;e.options.dragDrop&>&&!e.isReadOnly()&&\"single\"==r&&(i=u.contains(t))>-1&&(ve((i=u.ranges[i]).from(),t)<0||t.xRel>0)&&(ve(i.to(),t)>0||t.xRel<0)?function(e,t,r,n){var i=e.display,o=!1,u=jn(e,function(t){a&&(i.scroller.draggable=!1),e.state.draggingText=!1,tt(i.wrapper.ownerDocument,\"mouseup\",u),tt(i.wrapper.ownerDocument,\"mousemove\",c),tt(i.scroller,\"dragstart\",h),tt(i.scroller,\"drop\",u),o||(st(t),n.addNew||Bi(e.doc,r,null,null,n.extend),a||l&&9==s?setTimeout(function(){i.wrapper.ownerDocument.body.focus(),i.input.focus()},20):i.input.focus())}),c=function(e){o=o||Math.abs(t.clientX-e.clientX)+Math.abs(t.clientY-e.clientY)>=10},h=function(){return o=!0};a&&(i.scroller.draggable=!0);e.state.draggingText=u,u.copy=!n.moveOnDrag,i.scroller.dragDrop&&i.scroller.dragDrop();Je(i.wrapper.ownerDocument,\"mouseup\",u),Je(i.wrapper.ownerDocument,\"mousemove\",c),Je(i.scroller,\"dragstart\",h),Je(i.scroller,\"drop\",u),dn(e),setTimeout(function(){return i.input.focus()},20)}(e,n,t,o):function(e,t,r,n){var i=e.display,o=e.doc;st(t);var l,s,a=o.sel,u=a.ranges;n.addNew&&!n.extend?(s=o.sel.contains(r),l=s>-1?u[s]:new gi(r,r)):(l=o.sel.primary(),s=o.sel.primIndex);if(\"rectangle\"==n.unit)n.addNew||(l=new gi(r,r)),r=nn(e,t,!0,!0),s=-1;else{var c=ul(e,r,n.unit);l=n.extend?Ri(l,c.anchor,c.head,n.extend):c}n.addNew?-1==s?(s=u.length,ji(o,vi(u.concat([l]),s),{scroll:!1,origin:\"*mouse\"})):u.length>1&&u[s].empty()&&\"char\"==n.unit&&!n.extend?(ji(o,vi(u.slice(0,s).concat(u.slice(s+1)),0),{scroll:!1,origin:\"*mouse\"}),a=o.sel):Ui(o,s,l,K):(s=0,ji(o,new pi([l],0),K),a=o.sel);var h=r;function f(t){if(0!=ve(h,t))if(h=t,\"rectangle\"==n.unit){for(var i=[],u=e.options.tabSize,c=I(se(o,r.line).text,r.ch,u),f=I(se(o,t.line).text,t.ch,u),d=Math.min(c,f),p=Math.max(c,f),g=Math.min(r.line,t.line),v=Math.min(e.lastLine(),Math.max(r.line,t.line));g<=v;g++){var m=se(o,g).text,y=X(m,d,u);d==p?i.push(new gi(ge(g,y),ge(g,y))):m.length>y&&i.push(new gi(ge(g,y),ge(g,X(m,p,u))))}i.length||i.push(new gi(r,r)),ji(o,vi(a.ranges.slice(0,s).concat(i),s),{origin:\"*mouse\",scroll:!1}),e.scrollIntoView(t)}else{var b,w=l,x=ul(e,t,n.unit),C=w.anchor;ve(x.anchor,C)>0?(b=x.head,C=we(w.from(),x.anchor)):(b=x.anchor,C=be(w.to(),x.head));var S=a.ranges.slice(0);S[s]=function(e,t){var r=t.anchor,n=t.head,i=se(e.doc,r.line);if(0==ve(r,n)&&r.sticky==n.sticky)return t;var o=Ze(i);if(!o)return t;var l=qe(o,r.ch,r.sticky),s=o[l];if(s.from!=r.ch&&s.to!=r.ch)return t;var a,u=l+(s.from==r.ch==(1!=s.level)?0:1);if(0==u||u==o.length)return t;if(n.line!=r.line)a=(n.line-r.line)*(\"ltr\"==e.doc.direction?1:-1)>0;else{var c=qe(o,n.ch,n.sticky),h=c-l||(n.ch-r.ch)*(1==s.level?-1:1);a=c==u-1||c==u?h<0:h>0}var f=o[u+(a?-1:0)],d=a==(1==f.level),p=d?f.from:f.to,g=d?\"after\":\"before\";return r.ch==p&&r.sticky==g?t:new gi(new ge(r.line,p,g),n)}(e,new gi(Ce(o,C),b)),ji(o,vi(S,s),K)}}var d=i.wrapper.getBoundingClientRect(),p=0;function g(t){e.state.selectingText=!1,p=1/0,st(t),i.input.focus(),tt(i.wrapper.ownerDocument,\"mousemove\",v),tt(i.wrapper.ownerDocument,\"mouseup\",m),o.history.lastSelOrigin=null}var v=jn(e,function(t){ft(t)?function t(r){var l=++p;var s=nn(e,r,!0,\"rectangle\"==n.unit);if(!s)return;if(0!=ve(s,h)){e.curOp.focus=W(),f(s);var a=yn(i,o);(s.line>=a.to||s.line<a.from)&&setTimeout(jn(e,function(){p==l&&t(r)}),150)}else{var u=r.clientY<d.top?-20:r.clientY>d.bottom?20:0;u&&setTimeout(jn(e,function(){p==l&&(i.scroller.scrollTop+=u,t(r))}),50)}}(t):g(t)}),m=jn(e,g);e.state.selectingText=m,Je(i.wrapper.ownerDocument,\"mousemove\",v),Je(i.wrapper.ownerDocument,\"mouseup\",m)}(e,n,t,o)}(t,u,h,e):ht(e)==r.scroller&&st(e):2==c?(u&&Bi(t.doc,u),setTimeout(function(){return r.input.focus()},20)):3==c&&(S?fl(t,e):dn(t)))}}function ul(e,t,r){if(\"char\"==r)return new gi(t,t);if(\"word\"==r)return e.findWordAt(t);if(\"line\"==r)return new gi(ge(t.line,0),Ce(e.doc,ge(t.line+1,0)));var n=r(e,t);return new gi(n.from,n.to)}function cl(e,t,r,n){var i,o;if(t.touches)i=t.touches[0].clientX,o=t.touches[0].clientY;else try{i=t.clientX,o=t.clientY}catch(t){return!1}if(i>=Math.floor(e.display.gutters.getBoundingClientRect().right))return!1;n&&st(t);var l=e.display,s=l.lineDiv.getBoundingClientRect();if(o>s.bottom||!ot(e,r))return ut(t);o-=s.top-l.viewOffset;for(var a=0;a<e.options.gutters.length;++a){var u=l.gutters.childNodes[a];if(u&&u.getBoundingClientRect().right>=i)return rt(e,r,e,fe(e.doc,o),e.options.gutters[a],t),ut(t)}}function hl(e,t){return cl(e,t,\"gutterClick\",!0)}function fl(e,t){yr(e.display,t)||function(e,t){if(!ot(e,\"gutterContextMenu\"))return!1;return cl(e,t,\"gutterContextMenu\",!1)}(e,t)||nt(e,t,\"contextmenu\")||e.display.input.onContextMenu(t)}function dl(e){e.display.wrapper.className=e.display.wrapper.className.replace(/\\s*cm-s-\\S+/g,\"\")+e.options.theme.replace(/(^|\\s)\\s*/g,\" cm-s-\"),Er(e)}sl.prototype.compare=function(e,t,r){return this.time+400>e&&0==ve(t,this.pos)&&r==this.button};var pl={toString:function(){return\"CodeMirror.Init\"}},gl={},vl={};function ml(e){si(e),_n(e),bn(e)}function yl(e,t,r){if(!t!=!(r&&r!=pl)){var n=e.display.dragFunctions,i=t?Je:tt;i(e.display.scroller,\"dragstart\",n.start),i(e.display.scroller,\"dragenter\",n.enter),i(e.display.scroller,\"dragover\",n.over),i(e.display.scroller,\"dragleave\",n.leave),i(e.display.scroller,\"drop\",n.drop)}}function bl(e){e.options.lineWrapping?(H(e.display.wrapper,\"CodeMirror-wrap\"),e.display.sizer.style.minWidth=\"\",e.display.sizerWidth=null):(T(e.display.wrapper,\"CodeMirror-wrap\"),Ye(e)),rn(e),_n(e),Er(e),setTimeout(function(){return Hn(e)},100)}function wl(e,t){var n=this;if(!(this instanceof wl))return new wl(e,t);this.options=t=t?z(t):{},z(gl,t,!1),ai(t);var i=t.value;\"string\"==typeof i&&(i=new So(i,t.mode,null,t.lineSeparator,t.direction)),this.doc=i;var o=new wl.inputStyles[t.inputStyle](this),u=this.display=new function(e,t,n){var i=this;this.input=n,i.scrollbarFiller=O(\"div\",null,\"CodeMirror-scrollbar-filler\"),i.scrollbarFiller.setAttribute(\"cm-not-content\",\"true\"),i.gutterFiller=O(\"div\",null,\"CodeMirror-gutter-filler\"),i.gutterFiller.setAttribute(\"cm-not-content\",\"true\"),i.lineDiv=A(\"div\",null,\"CodeMirror-code\"),i.selectionDiv=O(\"div\",null,null,\"position: relative; z-index: 1\"),i.cursorDiv=O(\"div\",null,\"CodeMirror-cursors\"),i.measure=O(\"div\",null,\"CodeMirror-measure\"),i.lineMeasure=O(\"div\",null,\"CodeMirror-measure\"),i.lineSpace=A(\"div\",[i.measure,i.lineMeasure,i.selectionDiv,i.cursorDiv,i.lineDiv],null,\"position: relative; outline: none\");var o=A(\"div\",[i.lineSpace],\"CodeMirror-lines\");i.mover=O(\"div\",[o],null,\"position: relative\"),i.sizer=O(\"div\",[i.mover],\"CodeMirror-sizer\"),i.sizerWidth=null,i.heightForcer=O(\"div\",null,null,\"position: absolute; height: \"+G+\"px; width: 1px;\"),i.gutters=O(\"div\",null,\"CodeMirror-gutters\"),i.lineGutter=null,i.scroller=O(\"div\",[i.sizer,i.heightForcer,i.gutters],\"CodeMirror-scroll\"),i.scroller.setAttribute(\"tabIndex\",\"-1\"),i.wrapper=O(\"div\",[i.scrollbarFiller,i.gutterFiller,i.scroller],\"CodeMirror\"),l&&s<8&&(i.gutters.style.zIndex=-1,i.scroller.style.paddingRight=0),a||r&&m||(i.scroller.draggable=!0),e&&(e.appendChild?e.appendChild(i.wrapper):e(i.wrapper)),i.viewFrom=i.viewTo=t.first,i.reportedViewFrom=i.reportedViewTo=t.first,i.view=[],i.renderedView=null,i.externalMeasured=null,i.viewOffset=0,i.lastWrapHeight=i.lastWrapWidth=0,i.updateLineNumbers=null,i.nativeBarWidth=i.barHeight=i.barWidth=0,i.scrollbarsClipped=!1,i.lineNumWidth=i.lineNumInnerWidth=i.lineNumChars=null,i.alignWidgets=!1,i.cachedCharWidth=i.cachedTextHeight=i.cachedPaddingH=null,i.maxLine=null,i.maxLineLength=0,i.maxLineChanged=!1,i.wheelDX=i.wheelDY=i.wheelStartX=i.wheelStartY=null,i.shift=!1,i.selForContextMenu=null,i.activeTouch=null,n.init(i)}(e,i,o);for(var c in u.wrapper.CodeMirror=this,si(this),dl(this),t.lineWrapping&&(this.display.wrapper.className+=\" CodeMirror-wrap\"),En(this),this.state={keyMaps:[],overlays:[],modeGen:0,overwrite:!1,delayingBlurEvent:!1,focused:!1,suppressEdits:!1,pasteIncoming:!1,cutIncoming:!1,selectingText:!1,draggingText:!1,highlight:new R,keySeq:null,specialChars:null},t.autofocus&&!m&&u.input.focus(),l&&s<11&&setTimeout(function(){return n.display.input.reset(!0)},20),function(e){var t=e.display;Je(t.scroller,\"mousedown\",jn(e,al)),Je(t.scroller,\"dblclick\",l&&s<11?jn(e,function(t){if(!nt(e,t)){var r=nn(e,t);if(r&&!hl(e,t)&&!yr(e.display,t)){st(t);var n=e.findWordAt(r);Bi(e.doc,n.anchor,n.head)}}}):function(t){return nt(e,t)||st(t)});S||Je(t.scroller,\"contextmenu\",function(t){return fl(e,t)});var r,n={end:0};function i(){t.activeTouch&&(r=setTimeout(function(){return t.activeTouch=null},1e3),(n=t.activeTouch).end=+new Date)}function o(e,t){if(null==t.left)return!0;var r=t.left-e.left,n=t.top-e.top;return r*r+n*n>400}Je(t.scroller,\"touchstart\",function(i){if(!nt(e,i)&&!function(e){if(1!=e.touches.length)return!1;var t=e.touches[0];return t.radiusX<=1&&t.radiusY<=1}(i)&&!hl(e,i)){t.input.ensurePolled(),clearTimeout(r);var o=+new Date;t.activeTouch={start:o,moved:!1,prev:o-n.end<=300?n:null},1==i.touches.length&&(t.activeTouch.left=i.touches[0].pageX,t.activeTouch.top=i.touches[0].pageY)}}),Je(t.scroller,\"touchmove\",function(){t.activeTouch&&(t.activeTouch.moved=!0)}),Je(t.scroller,\"touchend\",function(r){var n=t.activeTouch;if(n&&!yr(t,r)&&null!=n.left&&!n.moved&&new Date-n.start<300){var l,s=e.coordsChar(t.activeTouch,\"page\");l=!n.prev||o(n,n.prev)?new gi(s,s):!n.prev.prev||o(n,n.prev.prev)?e.findWordAt(s):new gi(ge(s.line,0),Ce(e.doc,ge(s.line+1,0))),e.setSelection(l.anchor,l.head),e.focus(),st(r)}i()}),Je(t.scroller,\"touchcancel\",i),Je(t.scroller,\"scroll\",function(){t.scroller.clientHeight&&(Mn(e,t.scroller.scrollTop),On(e,t.scroller.scrollLeft,!0),rt(e,\"scroll\",e))}),Je(t.scroller,\"mousewheel\",function(t){return di(e,t)}),Je(t.scroller,\"DOMMouseScroll\",function(t){return di(e,t)}),Je(t.wrapper,\"scroll\",function(){return t.wrapper.scrollTop=t.wrapper.scrollLeft=0}),t.dragFunctions={enter:function(t){nt(e,t)||ct(t)},over:function(t){nt(e,t)||(!function(e,t){var r=nn(e,t);if(r){var n=document.createDocumentFragment();an(e,r,n),e.display.dragCursor||(e.display.dragCursor=O(\"div\",null,\"CodeMirror-cursors CodeMirror-dragcursors\"),e.display.lineSpace.insertBefore(e.display.dragCursor,e.display.cursorDiv)),N(e.display.dragCursor,n)}}(e,t),ct(t))},start:function(t){return function(e,t){if(l&&(!e.state.draggingText||+new Date-Lo<100))ct(t);else if(!nt(e,t)&&!yr(e.display,t)&&(t.dataTransfer.setData(\"Text\",e.getSelection()),t.dataTransfer.effectAllowed=\"copyMove\",t.dataTransfer.setDragImage&&!f)){var r=O(\"img\",null,null,\"position: fixed; left: 0; top: 0;\");r.src=\"data:image/gif;base64,R0lGODlhAQABAAAAACH5BAEKAAEALAAAAAABAAEAAAICTAEAOw==\",h&&(r.width=r.height=1,e.display.wrapper.appendChild(r),r._top=r.offsetTop),t.dataTransfer.setDragImage(r,0,0),h&&r.parentNode.removeChild(r)}}(e,t)},drop:jn(e,ko),leave:function(t){nt(e,t)||To(e)}};var a=t.input.getField();Je(a,\"keyup\",function(t){return nl.call(e,t)}),Je(a,\"keydown\",jn(e,rl)),Je(a,\"keypress\",jn(e,il)),Je(a,\"focus\",function(t){return pn(e,t)}),Je(a,\"blur\",function(t){return gn(e,t)})}(this),Oo(),In(this),this.curOp.forceUpdate=!0,Mi(this,i),t.autofocus&&!m||this.hasFocus()?setTimeout(E(pn,this),20):gn(this),vl)vl.hasOwnProperty(c)&&vl[c](n,t[c],pl);wn(this),t.finishInit&&t.finishInit(this);for(var d=0;d<xl.length;++d)xl[d](n);Rn(this),a&&t.lineWrapping&&\"optimizelegibility\"==getComputedStyle(u.lineDiv).textRendering&&(u.lineDiv.style.textRendering=\"auto\")}wl.defaults=gl,wl.optionHandlers=vl;var xl=[];function Cl(e,t,r,n){var i,o=e.doc;null==r&&(r=\"add\"),\"smart\"==r&&(o.mode.indent?i=zt(e,t).state:r=\"prev\");var l=e.options.tabSize,s=se(o,t),a=I(s.text,null,l);s.stateAfter&&(s.stateAfter=null);var u,c=s.text.match(/^\\s*/)[0];if(n||/\\S/.test(s.text)){if(\"smart\"==r&&((u=o.mode.indent(i,s.text.slice(c.length),s.text))==U||u>150)){if(!n)return;r=\"prev\"}}else u=0,r=\"not\";\"prev\"==r?u=t>o.first?I(se(o,t-1).text,null,l):0:\"add\"==r?u=a+e.options.indentUnit:\"subtract\"==r?u=a-e.options.indentUnit:\"number\"==typeof r&&(u=a+r),u=Math.max(0,u);var h=\"\",f=0;if(e.options.indentWithTabs)for(var d=Math.floor(u/l);d;--d)f+=l,h+=\"\\t\";if(f<u&&(h+=_(u-f)),h!=c)return lo(o,h,ge(t,0),ge(t,c.length),\"+input\"),s.stateAfter=null,!0;for(var p=0;p<o.sel.ranges.length;p++){var g=o.sel.ranges[p];if(g.head.line==t&&g.head.ch<c.length){var v=ge(t,c.length);Ui(o,p,new gi(v,v));break}}}wl.defineInitHook=function(e){return xl.push(e)};var Sl=null;function Ll(e){Sl=e}function kl(e,t,r,n,i){var o=e.doc;e.display.shift=!1,n||(n=o.sel);var l,s=e.state.pasteIncoming||\"paste\"==i,a=bt(t),u=null;if(s&&n.ranges.length>1)if(Sl&&Sl.text.join(\"\\n\")==t){if(n.ranges.length%Sl.text.length==0){u=[];for(var c=0;c<Sl.text.length;c++)u.push(o.splitLines(Sl.text[c]))}}else a.length==n.ranges.length&&e.options.pasteLinesPerSelection&&(u=$(a,function(e){return[e]}));for(var h=n.ranges.length-1;h>=0;h--){var f=n.ranges[h],d=f.from(),p=f.to();f.empty()&&(r&&r>0?d=ge(d.line,d.ch-r):e.state.overwrite&&!s?p=ge(p.line,Math.min(se(o,p.line).text.length,p.ch+q(a).length)):Sl&&Sl.lineWise&&Sl.text.join(\"\\n\")==t&&(d=p=ge(d.line,0))),l=e.curOp.updateInput;var g={from:d,to:p,text:u?u[h%u.length]:a,origin:i||(s?\"paste\":e.state.cutIncoming?\"cut\":\"+input\")};to(e.doc,g),or(e,\"inputRead\",e,g)}t&&!s&&Ml(e,t),Sn(e),e.curOp.updateInput=l,e.curOp.typing=!0,e.state.pasteIncoming=e.state.cutIncoming=!1}function Tl(e,t){var r=e.clipboardData&&e.clipboardData.getData(\"Text\");if(r)return e.preventDefault(),t.isReadOnly()||t.options.disableInput||Kn(t,function(){return kl(t,r,0,null,\"paste\")}),!0}function Ml(e,t){if(e.options.electricChars&&e.options.smartIndent)for(var r=e.doc.sel,n=r.ranges.length-1;n>=0;n--){var i=r.ranges[n];if(!(i.head.ch>100||n&&r.ranges[n-1].head.line==i.head.line)){var o=e.getModeAt(i.head),l=!1;if(o.electricChars){for(var s=0;s<o.electricChars.length;s++)if(t.indexOf(o.electricChars.charAt(s))>-1){l=Cl(e,i.head.line,\"smart\");break}}else o.electricInput&&o.electricInput.test(se(e.doc,i.head.line).text.slice(0,i.head.ch))&&(l=Cl(e,i.head.line,\"smart\"));l&&or(e,\"electricInput\",e,i.head.line)}}}function Nl(e){for(var t=[],r=[],n=0;n<e.doc.sel.ranges.length;n++){var i=e.doc.sel.ranges[n].head.line,o={anchor:ge(i,0),head:ge(i+1,0)};r.push(o),t.push(e.getRange(o.anchor,o.head))}return{text:t,ranges:r}}function Ol(e,t){e.setAttribute(\"autocorrect\",\"off\"),e.setAttribute(\"autocapitalize\",\"off\"),e.setAttribute(\"spellcheck\",!!t)}function Al(){var e=O(\"textarea\",null,null,\"position: absolute; bottom: -1em; padding: 0; width: 1px; height: 1em; outline: none\"),t=O(\"div\",[e],null,\"overflow: hidden; position: relative; width: 3px; height: 0px;\");return a?e.style.width=\"1000px\":e.setAttribute(\"wrap\",\"off\"),g&&(e.style.border=\"1px solid black\"),Ol(e),t}function Dl(e,t,r,n,i){var o=t,l=r,s=se(e,t.line);function a(n){var o,l;if(null==(o=i?function(e,t,r,n){var i=Ze(t,e.doc.direction);if(!i)return jo(t,r,n);r.ch>=t.text.length?(r.ch=t.text.length,r.sticky=\"before\"):r.ch<=0&&(r.ch=0,r.sticky=\"after\");var o=qe(i,r.ch,r.sticky),l=i[o];if(\"ltr\"==e.doc.direction&&l.level%2==0&&(n>0?l.to>r.ch:l.from<r.ch))return jo(t,r,n);var s,a=function(e,r){return Ko(t,e instanceof ge?e.ch:e,r)},u=function(r){return e.options.lineWrapping?(s=s||Nr(e,t),_r(e,t,s,r)):{begin:0,end:t.text.length}},c=u(\"before\"==r.sticky?a(r,-1):r.ch);if(\"rtl\"==e.doc.direction||1==l.level){var h=1==l.level==n<0,f=a(r,h?1:-1);if(null!=f&&(h?f<=l.to&&f<=c.end:f>=l.from&&f>=c.begin)){var d=h?\"before\":\"after\";return new ge(r.line,f,d)}}var p=function(e,t,n){for(var o=function(e,t){return t?new ge(r.line,a(e,1),\"before\"):new ge(r.line,e,\"after\")};e>=0&&e<i.length;e+=t){var l=i[e],s=t>0==(1!=l.level),u=s?n.begin:a(n.end,-1);if(l.from<=u&&u<l.to)return o(u,s);if(u=s?l.from:a(l.to,-1),n.begin<=u&&u<n.end)return o(u,s)}},g=p(o+n,n,c);if(g)return g;var v=n>0?c.end:a(c.begin,-1);return null==v||n>0&&v==t.text.length||!(g=p(n>0?0:i.length-1,n,u(v)))?null:g}(e.cm,s,t,r):jo(s,t,r))){if(n||(l=t.line+r)<e.first||l>=e.first+e.size||(t=new ge(l,t.ch,t.sticky),!(s=se(e,l))))return!1;t=Xo(i,e.cm,s,t.line,r)}else t=o;return!0}if(\"char\"==n)a();else if(\"column\"==n)a(!0);else if(\"word\"==n||\"group\"==n)for(var u=null,c=\"group\"==n,h=e.cm&&e.cm.getHelper(t,\"wordChars\"),f=!0;!(r<0)||a(!f);f=!1){var d=s.text.charAt(t.ch)||\"\\n\",p=te(d,h)?\"w\":c&&\"\\n\"==d?\"n\":!c||/\\s/.test(d)?null:\"p\";if(!c||f||p||(p=\"s\"),u&&u!=p){r<0&&(r=1,a(),t.sticky=\"after\");break}if(p&&(u=p),r>0&&!a(!f))break}var g=Zi(e,t,o,l,!0);return me(o,g)&&(g.hitSide=!0),g}function Wl(e,t,r,n){var i,o,l=e.doc,s=t.left;if(\"page\"==n){var a=Math.min(e.display.wrapper.clientHeight,window.innerHeight||document.documentElement.clientHeight),u=Math.max(a-.5*Zr(e.display),3);i=(r>0?t.bottom:t.top)+r*u}else\"line\"==n&&(i=r>0?t.bottom+3:t.top-3);for(;(o=Xr(e,s,i)).outside;){if(r<0?i<=0:i>=l.height){o.hitSide=!0;break}i+=5*r}return o}var Hl=function(e){this.cm=e,this.lastAnchorNode=this.lastAnchorOffset=this.lastFocusNode=this.lastFocusOffset=null,this.polling=new R,this.composing=null,this.gracePeriod=!1,this.readDOMTimeout=null};function Fl(e,t){var r=Mr(e,t.line);if(!r||r.hidden)return null;var n=se(e.doc,t.line),i=kr(r,n,t.line),o=Ze(n,e.doc.direction),l=\"left\";o&&(l=qe(o,t.ch)%2?\"right\":\"left\");var s=Wr(i.map,t.ch,l);return s.offset=\"right\"==s.collapse?s.end:s.start,s}function Pl(e,t){return t&&(e.bad=!0),e}function El(e,t,r){var n;if(t==e.display.lineDiv){if(!(n=e.display.lineDiv.childNodes[r]))return Pl(e.clipPos(ge(e.display.viewTo-1)),!0);t=null,r=0}else for(n=t;;n=n.parentNode){if(!n||n==e.display.lineDiv)return null;if(n.parentNode&&n.parentNode==e.display.lineDiv)break}for(var i=0;i<e.display.view.length;i++){var o=e.display.view[i];if(o.node==n)return zl(o,t,r)}}function zl(e,t,r){var n=e.text.firstChild,i=!1;if(!t||!D(n,t))return Pl(ge(he(e.line),0),!0);if(t==n&&(i=!0,t=n.childNodes[r],r=0,!t)){var o=e.rest?q(e.rest):e.line;return Pl(ge(he(o),o.text.length),i)}var l=3==t.nodeType?t:null,s=t;for(l||1!=t.childNodes.length||3!=t.firstChild.nodeType||(l=t.firstChild,r&&(r=l.nodeValue.length));s.parentNode!=n;)s=s.parentNode;var a=e.measure,u=a.maps;function c(t,r,n){for(var i=-1;i<(u?u.length:0);i++)for(var o=i<0?a.map:u[i],l=0;l<o.length;l+=3){var s=o[l+2];if(s==t||s==r){var c=he(i<0?e.line:e.rest[i]),h=o[l]+n;return(n<0||s!=t)&&(h=o[l+(n?1:0)]),ge(c,h)}}}var h=c(l,s,r);if(h)return Pl(h,i);for(var f=s.nextSibling,d=l?l.nodeValue.length-r:0;f;f=f.nextSibling){if(h=c(f,f.firstChild,0))return Pl(ge(h.line,h.ch-d),i);d+=f.textContent.length}for(var p=s.previousSibling,g=r;p;p=p.previousSibling){if(h=c(p,p.firstChild,-1))return Pl(ge(h.line,h.ch+g),i);g+=p.textContent.length}}Hl.prototype.init=function(e){var t=this,r=this,n=r.cm,i=r.div=e.lineDiv;function o(e){if(!nt(n,e)){if(n.somethingSelected())Ll({lineWise:!1,text:n.getSelections()}),\"cut\"==e.type&&n.replaceSelection(\"\",null,\"cut\");else{if(!n.options.lineWiseCopyCut)return;var t=Nl(n);Ll({lineWise:!0,text:t.text}),\"cut\"==e.type&&n.operation(function(){n.setSelections(t.ranges,0,V),n.replaceSelection(\"\",null,\"cut\")})}if(e.clipboardData){e.clipboardData.clearData();var o=Sl.text.join(\"\\n\");if(e.clipboardData.setData(\"Text\",o),e.clipboardData.getData(\"Text\")==o)return void e.preventDefault()}var l=Al(),s=l.firstChild;n.display.lineSpace.insertBefore(l,n.display.lineSpace.firstChild),s.value=Sl.text.join(\"\\n\");var a=document.activeElement;P(s),setTimeout(function(){n.display.lineSpace.removeChild(l),a.focus(),a==i&&r.showPrimarySelection()},50)}}Ol(i,n.options.spellcheck),Je(i,\"paste\",function(e){nt(n,e)||Tl(e,n)||s<=11&&setTimeout(jn(n,function(){return t.updateFromDOM()}),20)}),Je(i,\"compositionstart\",function(e){t.composing={data:e.data,done:!1}}),Je(i,\"compositionupdate\",function(e){t.composing||(t.composing={data:e.data,done:!1})}),Je(i,\"compositionend\",function(e){t.composing&&(e.data!=t.composing.data&&t.readFromDOMSoon(),t.composing.done=!0)}),Je(i,\"touchstart\",function(){return r.forceCompositionEnd()}),Je(i,\"input\",function(){t.composing||t.readFromDOMSoon()}),Je(i,\"copy\",o),Je(i,\"cut\",o)},Hl.prototype.prepareSelection=function(){var e=sn(this.cm,!1);return e.focus=this.cm.state.focused,e},Hl.prototype.showSelection=function(e,t){e&&this.cm.display.view.length&&((e.focus||t)&&this.showPrimarySelection(),this.showMultipleSelections(e))},Hl.prototype.showPrimarySelection=function(){var e=window.getSelection(),t=this.cm,n=t.doc.sel.primary(),i=n.from(),o=n.to();if(t.display.viewTo==t.display.viewFrom||i.line>=t.display.viewTo||o.line<t.display.viewFrom)e.removeAllRanges();else{var l=El(t,e.anchorNode,e.anchorOffset),s=El(t,e.focusNode,e.focusOffset);if(!l||l.bad||!s||s.bad||0!=ve(we(l,s),i)||0!=ve(be(l,s),o)){var a=t.display.view,u=i.line>=t.display.viewFrom&&Fl(t,i)||{node:a[0].measure.map[2],offset:0},c=o.line<t.display.viewTo&&Fl(t,o);if(!c){var h=a[a.length-1].measure,f=h.maps?h.maps[h.maps.length-1]:h.map;c={node:f[f.length-1],offset:f[f.length-2]-f[f.length-3]}}if(u&&c){var d,p=e.rangeCount&&e.getRangeAt(0);try{d=k(u.node,u.offset,c.offset,c.node)}catch(e){}d&&(!r&&t.state.focused?(e.collapse(u.node,u.offset),d.collapsed||(e.removeAllRanges(),e.addRange(d))):(e.removeAllRanges(),e.addRange(d)),p&&null==e.anchorNode?e.addRange(p):r&&this.startGracePeriod()),this.rememberSelection()}else e.removeAllRanges()}}},Hl.prototype.startGracePeriod=function(){var e=this;clearTimeout(this.gracePeriod),this.gracePeriod=setTimeout(function(){e.gracePeriod=!1,e.selectionChanged()&&e.cm.operation(function(){return e.cm.curOp.selectionChanged=!0})},20)},Hl.prototype.showMultipleSelections=function(e){N(this.cm.display.cursorDiv,e.cursors),N(this.cm.display.selectionDiv,e.selection)},Hl.prototype.rememberSelection=function(){var e=window.getSelection();this.lastAnchorNode=e.anchorNode,this.lastAnchorOffset=e.anchorOffset,this.lastFocusNode=e.focusNode,this.lastFocusOffset=e.focusOffset},Hl.prototype.selectionInEditor=function(){var e=window.getSelection();if(!e.rangeCount)return!1;var t=e.getRangeAt(0).commonAncestorContainer;return D(this.div,t)},Hl.prototype.focus=function(){\"nocursor\"!=this.cm.options.readOnly&&(this.selectionInEditor()||this.showSelection(this.prepareSelection(),!0),this.div.focus())},Hl.prototype.blur=function(){this.div.blur()},Hl.prototype.getField=function(){return this.div},Hl.prototype.supportsTouch=function(){return!0},Hl.prototype.receivedFocus=function(){var e=this;this.selectionInEditor()?this.pollSelection():Kn(this.cm,function(){return e.cm.curOp.selectionChanged=!0}),this.polling.set(this.cm.options.pollInterval,function t(){e.cm.state.focused&&(e.pollSelection(),e.polling.set(e.cm.options.pollInterval,t))})},Hl.prototype.selectionChanged=function(){var e=window.getSelection();return e.anchorNode!=this.lastAnchorNode||e.anchorOffset!=this.lastAnchorOffset||e.focusNode!=this.lastFocusNode||e.focusOffset!=this.lastFocusOffset},Hl.prototype.pollSelection=function(){if(null==this.readDOMTimeout&&!this.gracePeriod&&this.selectionChanged()){var e=window.getSelection(),t=this.cm;if(v&&c&&this.cm.options.gutters.length&&function(e){for(var t=e;t;t=t.parentNode)if(/CodeMirror-gutter-wrapper/.test(t.className))return!0;return!1}(e.anchorNode))return this.cm.triggerOnKeyDown({type:\"keydown\",keyCode:8,preventDefault:Math.abs}),this.blur(),void this.focus();if(!this.composing){this.rememberSelection();var r=El(t,e.anchorNode,e.anchorOffset),n=El(t,e.focusNode,e.focusOffset);r&&n&&Kn(t,function(){ji(t.doc,mi(r,n),V),(r.bad||n.bad)&&(t.curOp.selectionChanged=!0)})}}},Hl.prototype.pollContent=function(){null!=this.readDOMTimeout&&(clearTimeout(this.readDOMTimeout),this.readDOMTimeout=null);var e,t,r,n=this.cm,i=n.display,o=n.doc.sel.primary(),l=o.from(),s=o.to();if(0==l.ch&&l.line>n.firstLine()&&(l=ge(l.line-1,se(n.doc,l.line-1).length)),s.ch==se(n.doc,s.line).text.length&&s.line<n.lastLine()&&(s=ge(s.line+1,0)),l.line<i.viewFrom||s.line>i.viewTo-1)return!1;l.line==i.viewFrom||0==(e=on(n,l.line))?(t=he(i.view[0].line),r=i.view[0].node):(t=he(i.view[e].line),r=i.view[e-1].node.nextSibling);var a,u,c=on(n,s.line);if(c==i.view.length-1?(a=i.viewTo-1,u=i.lineDiv.lastChild):(a=he(i.view[c+1].line)-1,u=i.view[c+1].node.previousSibling),!r)return!1;for(var h=n.doc.splitLines(function(e,t,r,n,i){var o=\"\",l=!1,s=e.doc.lineSeparator();function a(){l&&(o+=s,l=!1)}function u(e){e&&(a(),o+=e)}function c(t){if(1==t.nodeType){var r=t.getAttribute(\"cm-text\");if(null!=r)return void u(r||t.textContent.replace(/\\u200b/g,\"\"));var o,h=t.getAttribute(\"cm-marker\");if(h){var f=e.findMarks(ge(n,0),ge(i+1,0),(g=+h,function(e){return e.id==g}));return void(f.length&&(o=f[0].find(0))&&u(ae(e.doc,o.from,o.to).join(s)))}if(\"false\"==t.getAttribute(\"contenteditable\"))return;var d=/^(pre|div|p)$/i.test(t.nodeName);d&&a();for(var p=0;p<t.childNodes.length;p++)c(t.childNodes[p]);d&&(l=!0)}else 3==t.nodeType&&u(t.nodeValue);var g}for(;c(t),t!=r;)t=t.nextSibling;return o}(n,r,u,t,a)),f=ae(n.doc,ge(t,0),ge(a,se(n.doc,a).text.length));h.length>1&&f.length>1;)if(q(h)==q(f))h.pop(),f.pop(),a--;else{if(h[0]!=f[0])break;h.shift(),f.shift(),t++}for(var d=0,p=0,g=h[0],v=f[0],m=Math.min(g.length,v.length);d<m&&g.charCodeAt(d)==v.charCodeAt(d);)++d;for(var y=q(h),b=q(f),w=Math.min(y.length-(1==h.length?d:0),b.length-(1==f.length?d:0));p<w&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)++p;if(1==h.length&&1==f.length&&t==l.line)for(;d&&d>l.ch&&y.charCodeAt(y.length-p-1)==b.charCodeAt(b.length-p-1);)d--,p++;h[h.length-1]=y.slice(0,y.length-p).replace(/^\\u200b+/,\"\"),h[0]=h[0].slice(d).replace(/\\u200b+$/,\"\");var x=ge(t,d),C=ge(a,f.length?q(f).length-p:0);return h.length>1||h[0]||ve(x,C)?(lo(n.doc,h,x,C,\"+input\"),!0):void 0},Hl.prototype.ensurePolled=function(){this.forceCompositionEnd()},Hl.prototype.reset=function(){this.forceCompositionEnd()},Hl.prototype.forceCompositionEnd=function(){this.composing&&(clearTimeout(this.readDOMTimeout),this.composing=null,this.updateFromDOM(),this.div.blur(),this.div.focus())},Hl.prototype.readFromDOMSoon=function(){var e=this;null==this.readDOMTimeout&&(this.readDOMTimeout=setTimeout(function(){if(e.readDOMTimeout=null,e.composing){if(!e.composing.done)return;e.composing=null}e.updateFromDOM()},80))},Hl.prototype.updateFromDOM=function(){var e=this;!this.cm.isReadOnly()&&this.pollContent()||Kn(this.cm,function(){return _n(e.cm)})},Hl.prototype.setUneditable=function(e){e.contentEditable=\"false\"},Hl.prototype.onKeyPress=function(e){0==e.charCode||this.composing||(e.preventDefault(),this.cm.isReadOnly()||jn(this.cm,kl)(this.cm,String.fromCharCode(null==e.charCode?e.keyCode:e.charCode),0))},Hl.prototype.readOnlyChanged=function(e){this.div.contentEditable=String(\"nocursor\"!=e)},Hl.prototype.onContextMenu=function(){},Hl.prototype.resetPosition=function(){},Hl.prototype.needsContentAttribute=!0;var Il,Rl,Bl,Gl=function(e){this.cm=e,this.prevInput=\"\",this.pollingFast=!1,this.polling=new R,this.hasSelection=!1,this.composing=null};Gl.prototype.init=function(e){var t=this,r=this,n=this.cm;this.createField(e);var i=this.textarea;function o(e){if(!nt(n,e)){if(n.somethingSelected())Ll({lineWise:!1,text:n.getSelections()});else{if(!n.options.lineWiseCopyCut)return;var t=Nl(n);Ll({lineWise:!0,text:t.text}),\"cut\"==e.type?n.setSelections(t.ranges,null,V):(r.prevInput=\"\",i.value=t.text.join(\"\\n\"),P(i))}\"cut\"==e.type&&(n.state.cutIncoming=!0)}}e.wrapper.insertBefore(this.wrapper,e.wrapper.firstChild),g&&(i.style.width=\"0px\"),Je(i,\"input\",function(){l&&s>=9&&t.hasSelection&&(t.hasSelection=null),r.poll()}),Je(i,\"paste\",function(e){nt(n,e)||Tl(e,n)||(n.state.pasteIncoming=!0,r.fastPoll())}),Je(i,\"cut\",o),Je(i,\"copy\",o),Je(e.scroller,\"paste\",function(t){yr(e,t)||nt(n,t)||(n.state.pasteIncoming=!0,r.focus())}),Je(e.lineSpace,\"selectstart\",function(t){yr(e,t)||st(t)}),Je(i,\"compositionstart\",function(){var e=n.getCursor(\"from\");r.composing&&r.composing.range.clear(),r.composing={start:e,range:n.markText(e,n.getCursor(\"to\"),{className:\"CodeMirror-composing\"})}}),Je(i,\"compositionend\",function(){r.composing&&(r.poll(),r.composing.range.clear(),r.composing=null)})},Gl.prototype.createField=function(e){this.wrapper=Al(),this.textarea=this.wrapper.firstChild},Gl.prototype.prepareSelection=function(){var e=this.cm,t=e.display,r=e.doc,n=sn(e);if(e.options.moveInputWithCursor){var i=Vr(e,r.sel.primary().head,\"div\"),o=t.wrapper.getBoundingClientRect(),l=t.lineDiv.getBoundingClientRect();n.teTop=Math.max(0,Math.min(t.wrapper.clientHeight-10,i.top+l.top-o.top)),n.teLeft=Math.max(0,Math.min(t.wrapper.clientWidth-10,i.left+l.left-o.left))}return n},Gl.prototype.showSelection=function(e){var t=this.cm.display;N(t.cursorDiv,e.cursors),N(t.selectionDiv,e.selection),null!=e.teTop&&(this.wrapper.style.top=e.teTop+\"px\",this.wrapper.style.left=e.teLeft+\"px\")},Gl.prototype.reset=function(e){if(!this.contextMenuPending&&!this.composing){var t=this.cm;if(t.somethingSelected()){this.prevInput=\"\";var r=t.getSelection();this.textarea.value=r,t.state.focused&&P(this.textarea),l&&s>=9&&(this.hasSelection=r)}else e||(this.prevInput=this.textarea.value=\"\",l&&s>=9&&(this.hasSelection=null))}},Gl.prototype.getField=function(){return this.textarea},Gl.prototype.supportsTouch=function(){return!1},Gl.prototype.focus=function(){if(\"nocursor\"!=this.cm.options.readOnly&&(!m||W()!=this.textarea))try{this.textarea.focus()}catch(e){}},Gl.prototype.blur=function(){this.textarea.blur()},Gl.prototype.resetPosition=function(){this.wrapper.style.top=this.wrapper.style.left=0},Gl.prototype.receivedFocus=function(){this.slowPoll()},Gl.prototype.slowPoll=function(){var e=this;this.pollingFast||this.polling.set(this.cm.options.pollInterval,function(){e.poll(),e.cm.state.focused&&e.slowPoll()})},Gl.prototype.fastPoll=function(){var e=!1,t=this;t.pollingFast=!0,t.polling.set(20,function r(){t.poll()||e?(t.pollingFast=!1,t.slowPoll()):(e=!0,t.polling.set(60,r))})},Gl.prototype.poll=function(){var e=this,t=this.cm,r=this.textarea,n=this.prevInput;if(this.contextMenuPending||!t.state.focused||wt(r)&&!n&&!this.composing||t.isReadOnly()||t.options.disableInput||t.state.keySeq)return!1;var i=r.value;if(i==n&&!t.somethingSelected())return!1;if(l&&s>=9&&this.hasSelection===i||y&&/[\\uf700-\\uf7ff]/.test(i))return t.display.input.reset(),!1;if(t.doc.sel==t.display.selForContextMenu){var o=i.charCodeAt(0);if(8203!=o||n||(n=\"\"),8666==o)return this.reset(),this.cm.execCommand(\"undo\")}for(var a=0,u=Math.min(n.length,i.length);a<u&&n.charCodeAt(a)==i.charCodeAt(a);)++a;return Kn(t,function(){kl(t,i.slice(a),n.length-a,null,e.composing?\"*compose\":null),i.length>1e3||i.indexOf(\"\\n\")>-1?r.value=e.prevInput=\"\":e.prevInput=i,e.composing&&(e.composing.range.clear(),e.composing.range=t.markText(e.composing.start,t.getCursor(\"to\"),{className:\"CodeMirror-composing\"}))}),!0},Gl.prototype.ensurePolled=function(){this.pollingFast&&this.poll()&&(this.pollingFast=!1)},Gl.prototype.onKeyPress=function(){l&&s>=9&&(this.hasSelection=null),this.fastPoll()},Gl.prototype.onContextMenu=function(e){var t=this,r=t.cm,n=r.display,i=t.textarea,o=nn(r,e),u=n.scroller.scrollTop;if(o&&!h){r.options.resetSelectionOnContextMenu&&-1==r.doc.sel.contains(o)&&jn(r,ji)(r.doc,mi(o),V);var c=i.style.cssText,f=t.wrapper.style.cssText;t.wrapper.style.cssText=\"position: absolute\";var d,p=t.wrapper.getBoundingClientRect();if(i.style.cssText=\"position: absolute; width: 30px; height: 30px;\\n top: \"+(e.clientY-p.top-5)+\"px; left: \"+(e.clientX-p.left-5)+\"px;\\n z-index: 1000; background: \"+(l?\"rgba(255, 255, 255, .05)\":\"transparent\")+\";\\n outline: none; border-width: 0; outline: none; overflow: hidden; opacity: .05; filter: alpha(opacity=5);\",a&&(d=window.scrollY),n.input.focus(),a&&window.scrollTo(null,d),n.input.reset(),r.somethingSelected()||(i.value=t.prevInput=\" \"),t.contextMenuPending=!0,n.selForContextMenu=r.doc.sel,clearTimeout(n.detectingSelectAll),l&&s>=9&&v(),S){ct(e);var g=function(){tt(window,\"mouseup\",g),setTimeout(m,20)};Je(window,\"mouseup\",g)}else setTimeout(m,50)}function v(){if(null!=i.selectionStart){var e=r.somethingSelected(),o=\"\"+(e?i.value:\"\");i.value=\"⇚\",i.value=o,t.prevInput=e?\"\":\"\",i.selectionStart=1,i.selectionEnd=o.length,n.selForContextMenu=r.doc.sel}}function m(){if(t.contextMenuPending=!1,t.wrapper.style.cssText=f,i.style.cssText=c,l&&s<9&&n.scrollbars.setScrollTop(n.scroller.scrollTop=u),null!=i.selectionStart){(!l||l&&s<9)&&v();var e=0,o=function(){n.selForContextMenu==r.doc.sel&&0==i.selectionStart&&i.selectionEnd>0&&\"\"==t.prevInput?jn(r,Ji)(r):e++<10?n.detectingSelectAll=setTimeout(o,500):(n.selForContextMenu=null,n.input.reset())};n.detectingSelectAll=setTimeout(o,200)}}},Gl.prototype.readOnlyChanged=function(e){e||this.reset(),this.textarea.disabled=\"nocursor\"==e},Gl.prototype.setUneditable=function(){},Gl.prototype.needsContentAttribute=!1,function(e){var t=e.optionHandlers;function r(r,n,i,o){e.defaults[r]=n,i&&(t[r]=o?function(e,t,r){r!=pl&&i(e,t,r)}:i)}e.defineOption=r,e.Init=pl,r(\"value\",\"\",function(e,t){return e.setValue(t)},!0),r(\"mode\",null,function(e,t){e.doc.modeOption=t,Ci(e)},!0),r(\"indentUnit\",2,Ci,!0),r(\"indentWithTabs\",!1),r(\"smartIndent\",!0),r(\"tabSize\",4,function(e){Si(e),Er(e),_n(e)},!0),r(\"lineSeparator\",null,function(e,t){if(e.doc.lineSep=t,t){var r=[],n=e.doc.first;e.doc.iter(function(e){for(var i=0;;){var o=e.text.indexOf(t,i);if(-1==o)break;i=o+t.length,r.push(ge(n,o))}n++});for(var i=r.length-1;i>=0;i--)lo(e.doc,t,r[i],ge(r[i].line,r[i].ch+t.length))}}),r(\"specialChars\",/[\\u0000-\\u001f\\u007f-\\u009f\\u00ad\\u061c\\u200b-\\u200f\\u2028\\u2029\\ufeff]/g,function(e,t,r){e.state.specialChars=new RegExp(t.source+(t.test(\"\\t\")?\"\":\"|\\t\"),\"g\"),r!=pl&&e.refresh()}),r(\"specialCharPlaceholder\",$t,function(e){return e.refresh()},!0),r(\"electricChars\",!0),r(\"inputStyle\",m?\"contenteditable\":\"textarea\",function(){throw new Error(\"inputStyle can not (yet) be changed in a running editor\")},!0),r(\"spellcheck\",!1,function(e,t){return e.getInputField().spellcheck=t},!0),r(\"rtlMoveVisually\",!w),r(\"wholeLineUpdateBefore\",!0),r(\"theme\",\"default\",function(e){dl(e),ml(e)},!0),r(\"keyMap\",\"default\",function(e,t,r){var n=Uo(t),i=r!=pl&&Uo(r);i&&i.detach&&i.detach(e,n),n.attach&&n.attach(e,i||null)}),r(\"extraKeys\",null),r(\"configureMouse\",null),r(\"lineWrapping\",!1,bl,!0),r(\"gutters\",[],function(e){ai(e.options),ml(e)},!0),r(\"fixedGutter\",!0,function(e,t){e.display.gutters.style.left=t?en(e.display)+\"px\":\"0\",e.refresh()},!0),r(\"coverGutterNextToScrollbar\",!1,function(e){return Hn(e)},!0),r(\"scrollbarStyle\",\"native\",function(e){En(e),Hn(e),e.display.scrollbars.setScrollTop(e.doc.scrollTop),e.display.scrollbars.setScrollLeft(e.doc.scrollLeft)},!0),r(\"lineNumbers\",!1,function(e){ai(e.options),ml(e)},!0),r(\"firstLineNumber\",1,ml,!0),r(\"lineNumberFormatter\",function(e){return e},ml,!0),r(\"showCursorWhenSelecting\",!1,ln,!0),r(\"resetSelectionOnContextMenu\",!0),r(\"lineWiseCopyCut\",!0),r(\"pasteLinesPerSelection\",!0),r(\"readOnly\",!1,function(e,t){\"nocursor\"==t&&(gn(e),e.display.input.blur()),e.display.input.readOnlyChanged(t)}),r(\"disableInput\",!1,function(e,t){t||e.display.input.reset()},!0),r(\"dragDrop\",!0,yl),r(\"allowDropFileTypes\",null),r(\"cursorBlinkRate\",530),r(\"cursorScrollMargin\",0),r(\"cursorHeight\",1,ln,!0),r(\"singleCursorHeightPerLine\",!0,ln,!0),r(\"workTime\",100),r(\"workDelay\",100),r(\"flattenSpans\",!0,Si,!0),r(\"addModeClass\",!1,Si,!0),r(\"pollInterval\",100),r(\"undoDepth\",200,function(e,t){return e.doc.history.undoDepth=t}),r(\"historyEventDelay\",1250),r(\"viewportMargin\",10,function(e){return e.refresh()},!0),r(\"maxHighlightLength\",1e4,Si,!0),r(\"moveInputWithCursor\",!0,function(e,t){t||e.display.input.resetPosition()}),r(\"tabindex\",null,function(e,t){return e.display.input.getField().tabIndex=t||\"\"}),r(\"autofocus\",null),r(\"direction\",\"ltr\",function(e,t){return e.doc.setDirection(t)},!0)}(wl),Rl=(Il=wl).optionHandlers,Bl=Il.helpers={},Il.prototype={constructor:Il,focus:function(){window.focus(),this.display.input.focus()},setOption:function(e,t){var r=this.options,n=r[e];r[e]==t&&\"mode\"!=e||(r[e]=t,Rl.hasOwnProperty(e)&&jn(this,Rl[e])(this,t,n),rt(this,\"optionChange\",this,e))},getOption:function(e){return this.options[e]},getDoc:function(){return this.doc},addKeyMap:function(e,t){this.state.keyMaps[t?\"push\":\"unshift\"](Uo(e))},removeKeyMap:function(e){for(var t=this.state.keyMaps,r=0;r<t.length;++r)if(t[r]==e||t[r].name==e)return t.splice(r,1),!0},addOverlay:Xn(function(e,t){var r=e.token?e:Il.getMode(this.options,e);if(r.startState)throw new Error(\"Overlays may not be stateful.\");!function(e,t,r){for(var n=0,i=r(t);n<e.length&&r(e[n])<=i;)n++;e.splice(n,0,t)}(this.state.overlays,{mode:r,modeSpec:e,opaque:t&&t.opaque,priority:t&&t.priority||0},function(e){return e.priority}),this.state.modeGen++,_n(this)}),removeOverlay:Xn(function(e){for(var t=this.state.overlays,r=0;r<t.length;++r){var n=t[r].modeSpec;if(n==e||\"string\"==typeof e&&n.name==e)return t.splice(r,1),this.state.modeGen++,void _n(this)}}),indentLine:Xn(function(e,t,r){\"string\"!=typeof t&&\"number\"!=typeof t&&(t=null==t?this.options.smartIndent?\"smart\":\"prev\":t?\"add\":\"subtract\"),de(this.doc,e)&&Cl(this,e,t,r)}),indentSelection:Xn(function(e){for(var t=this,r=this.doc.sel.ranges,n=-1,i=0;i<r.length;i++){var o=r[i];if(o.empty())o.head.line>n&&(Cl(t,o.head.line,e,!0),n=o.head.line,i==t.doc.sel.primIndex&&Sn(t));else{var l=o.from(),s=o.to(),a=Math.max(n,l.line);n=Math.min(t.lastLine(),s.line-(s.ch?0:1))+1;for(var u=a;u<n;++u)Cl(t,u,e);var c=t.doc.sel.ranges;0==l.ch&&r.length==c.length&&c[i].from().ch>0&&Ui(t.doc,i,new gi(l,c[i].to()),V)}}}),getTokenAt:function(e,t){return Ut(this,e,t)},getLineTokens:function(e,t){return Ut(this,ge(e),t,!0)},getTokenTypeAt:function(e){e=Ce(this.doc,e);var t,r=Et(this,se(this.doc,e.line)),n=0,i=(r.length-1)/2,o=e.ch;if(0==o)t=r[2];else for(;;){var l=n+i>>1;if((l?r[2*l-1]:0)>=o)i=l;else{if(!(r[2*l+1]<o)){t=r[2*l+2];break}n=l+1}}var s=t?t.indexOf(\"overlay \"):-1;return s<0?t:0==s?null:t.slice(0,s-1)},getModeAt:function(e){var t=this.doc.mode;return t.innerMode?Il.innerMode(t,this.getTokenAt(e).state).mode:t},getHelper:function(e,t){return this.getHelpers(e,t)[0]},getHelpers:function(e,t){var r=[];if(!Bl.hasOwnProperty(t))return r;var n=Bl[t],i=this.getModeAt(e);if(\"string\"==typeof i[t])n[i[t]]&&r.push(n[i[t]]);else if(i[t])for(var o=0;o<i[t].length;o++){var l=n[i[t][o]];l&&r.push(l)}else i.helperType&&n[i.helperType]?r.push(n[i.helperType]):n[i.name]&&r.push(n[i.name]);for(var s=0;s<n._global.length;s++){var a=n._global[s];a.pred(i,this)&&-1==B(r,a.val)&&r.push(a.val)}return r},getStateAfter:function(e,t){var r=this.doc;return zt(this,(e=xe(r,null==e?r.first+r.size-1:e))+1,t).state},cursorCoords:function(e,t){var r=this.doc.sel.primary();return Vr(this,null==e?r.head:\"object\"==typeof e?Ce(this.doc,e):e?r.from():r.to(),t||\"page\")},charCoords:function(e,t){return Ur(this,Ce(this.doc,e),t||\"page\")},coordsChar:function(e,t){return Xr(this,(e=Gr(this,e,t||\"page\")).left,e.top)},lineAtHeight:function(e,t){return e=Gr(this,{top:e,left:0},t||\"page\").top,fe(this.doc,e+this.display.viewOffset)},heightAtLine:function(e,t,r){var n,i=!1;if(\"number\"==typeof e){var o=this.doc.first+this.doc.size-1;e<this.doc.first?e=this.doc.first:e>o&&(e=o,i=!0),n=se(this.doc,e)}else n=e;return Br(this,n,{top:0,left:0},t||\"page\",r||i).top+(i?this.doc.height-je(n):0)},defaultTextHeight:function(){return Zr(this.display)},defaultCharWidth:function(){return Qr(this.display)},getViewport:function(){return{from:this.display.viewFrom,to:this.display.viewTo}},addWidget:function(e,t,r,n,i){var o,l,s,a=this.display,u=(e=Vr(this,Ce(this.doc,e))).bottom,c=e.left;if(t.style.position=\"absolute\",t.setAttribute(\"cm-ignore-events\",\"true\"),this.display.input.setUneditable(t),a.sizer.appendChild(t),\"over\"==n)u=e.top;else if(\"above\"==n||\"near\"==n){var h=Math.max(a.wrapper.clientHeight,this.doc.height),f=Math.max(a.sizer.clientWidth,a.lineSpace.clientWidth);(\"above\"==n||e.bottom+t.offsetHeight>h)&&e.top>t.offsetHeight?u=e.top-t.offsetHeight:e.bottom+t.offsetHeight<=h&&(u=e.bottom),c+t.offsetWidth>f&&(c=f-t.offsetWidth)}t.style.top=u+\"px\",t.style.left=t.style.right=\"\",\"right\"==i?(c=a.sizer.clientWidth-t.offsetWidth,t.style.right=\"0px\"):(\"left\"==i?c=0:\"middle\"==i&&(c=(a.sizer.clientWidth-t.offsetWidth)/2),t.style.left=c+\"px\"),r&&(o=this,l={left:c,top:u,right:c+t.offsetWidth,bottom:u+t.offsetHeight},null!=(s=xn(o,l)).scrollTop&&Mn(o,s.scrollTop),null!=s.scrollLeft&&On(o,s.scrollLeft))},triggerOnKeyDown:Xn(rl),triggerOnKeyPress:Xn(il),triggerOnKeyUp:nl,triggerOnMouseDown:Xn(al),execCommand:function(e){if(Yo.hasOwnProperty(e))return Yo[e].call(null,this)},triggerElectric:Xn(function(e){Ml(this,e)}),findPosH:function(e,t,r,n){var i=1;t<0&&(i=-1,t=-t);for(var o=Ce(this.doc,e),l=0;l<t&&!(o=Dl(this.doc,o,i,r,n)).hitSide;++l);return o},moveH:Xn(function(e,t){var r=this;this.extendSelectionsBy(function(n){return r.display.shift||r.doc.extend||n.empty()?Dl(r.doc,n.head,e,t,r.options.rtlMoveVisually):e<0?n.from():n.to()},j)}),deleteH:Xn(function(e,t){var r=this.doc.sel,n=this.doc;r.somethingSelected()?n.replaceSelection(\"\",null,\"+delete\"):Vo(this,function(r){var i=Dl(n,r.head,e,t,!1);return e<0?{from:i,to:r.head}:{from:r.head,to:i}})}),findPosV:function(e,t,r,n){var i=1,o=n;t<0&&(i=-1,t=-t);for(var l=Ce(this.doc,e),s=0;s<t;++s){var a=Vr(this,l,\"div\");if(null==o?o=a.left:a.left=o,(l=Wl(this,a,i,r)).hitSide)break}return l},moveV:Xn(function(e,t){var r=this,n=this.doc,i=[],o=!this.display.shift&&!n.extend&&n.sel.somethingSelected();if(n.extendSelectionsBy(function(l){if(o)return e<0?l.from():l.to();var s=Vr(r,l.head,\"div\");null!=l.goalColumn&&(s.left=l.goalColumn),i.push(s.left);var a=Wl(r,s,e,t);return\"page\"==t&&l==n.sel.primary()&&Cn(r,Ur(r,a,\"div\").top-s.top),a},j),i.length)for(var l=0;l<n.sel.ranges.length;l++)n.sel.ranges[l].goalColumn=i[l]}),findWordAt:function(e){var t=se(this.doc,e.line).text,r=e.ch,n=e.ch;if(t){var i=this.getHelper(e,\"wordChars\");\"before\"!=e.sticky&&n!=t.length||!r?++n:--r;for(var o=t.charAt(r),l=te(o,i)?function(e){return te(e,i)}:/\\s/.test(o)?function(e){return/\\s/.test(e)}:function(e){return!/\\s/.test(e)&&!te(e)};r>0&&l(t.charAt(r-1));)--r;for(;n<t.length&&l(t.charAt(n));)++n}return new gi(ge(e.line,r),ge(e.line,n))},toggleOverwrite:function(e){null!=e&&e==this.state.overwrite||((this.state.overwrite=!this.state.overwrite)?H(this.display.cursorDiv,\"CodeMirror-overwrite\"):T(this.display.cursorDiv,\"CodeMirror-overwrite\"),rt(this,\"overwriteToggle\",this,this.state.overwrite))},hasFocus:function(){return this.display.input.getField()==W()},isReadOnly:function(){return!(!this.options.readOnly&&!this.doc.cantEdit)},scrollTo:Xn(function(e,t){Ln(this,e,t)}),getScrollInfo:function(){var e=this.display.scroller;return{left:e.scrollLeft,top:e.scrollTop,height:e.scrollHeight-Cr(this)-this.display.barHeight,width:e.scrollWidth-Cr(this)-this.display.barWidth,clientHeight:Lr(this),clientWidth:Sr(this)}},scrollIntoView:Xn(function(e,t){var r,n;null==e?(e={from:this.doc.sel.primary().head,to:null},null==t&&(t=this.options.cursorScrollMargin)):\"number\"==typeof e?e={from:ge(e,0),to:null}:null==e.from&&(e={from:e,to:null}),e.to||(e.to=e.from),e.margin=t||0,null!=e.from.line?(n=e,kn(r=this),r.curOp.scrollToPos=n):Tn(this,e.from,e.to,e.margin)}),setSize:Xn(function(e,t){var r=this,n=function(e){return\"number\"==typeof e||/^\\d+$/.test(String(e))?e+\"px\":e};null!=e&&(this.display.wrapper.style.width=n(e)),null!=t&&(this.display.wrapper.style.height=n(t)),this.options.lineWrapping&&Pr(this);var i=this.display.viewFrom;this.doc.iter(i,this.display.viewTo,function(e){if(e.widgets)for(var t=0;t<e.widgets.length;t++)if(e.widgets[t].noHScroll){qn(r,i,\"widget\");break}++i}),this.curOp.forceUpdate=!0,rt(this,\"refresh\",this)}),operation:function(e){return Kn(this,e)},startOperation:function(){return In(this)},endOperation:function(){return Rn(this)},refresh:Xn(function(){var e=this.display.cachedTextHeight;_n(this),this.curOp.forceUpdate=!0,Er(this),Ln(this,this.doc.scrollLeft,this.doc.scrollTop),oi(this),(null==e||Math.abs(e-Zr(this.display))>.5)&&rn(this),rt(this,\"refresh\",this)}),swapDoc:Xn(function(e){var t=this.doc;return t.cm=null,Mi(this,e),Er(this),this.display.input.reset(),Ln(this,e.scrollLeft,e.scrollTop),this.curOp.forceScroll=!0,or(this,\"swapDoc\",this,t),t}),getInputField:function(){return this.display.input.getField()},getWrapperElement:function(){return this.display.wrapper},getScrollerElement:function(){return this.display.scroller},getGutterElement:function(){return this.display.gutters}},lt(Il),Il.registerHelper=function(e,t,r){Bl.hasOwnProperty(e)||(Bl[e]=Il[e]={_global:[]}),Bl[e][t]=r},Il.registerGlobalHelper=function(e,t,r,n){Il.registerHelper(e,t,n),Bl[e]._global.push({pred:r,val:n})};var Ul,Vl=\"iter insert remove copy getEditor constructor\".split(\" \");for(var Kl in So.prototype)So.prototype.hasOwnProperty(Kl)&&B(Vl,Kl)<0&&(wl.prototype[Kl]=function(e){return function(){return e.apply(this.doc,arguments)}}(So.prototype[Kl]));return lt(So),wl.inputStyles={textarea:Gl,contenteditable:Hl},wl.defineMode=function(e){wl.defaults.mode||\"null\"==e||(wl.defaults.mode=e),function(e,t){arguments.length>2&&(t.dependencies=Array.prototype.slice.call(arguments,2)),St[e]=t}.apply(this,arguments)},wl.defineMIME=function(e,t){Lt[e]=t},wl.defineMode(\"null\",function(){return{token:function(e){return e.skipToEnd()}}}),wl.defineMIME(\"text/plain\",\"null\"),wl.defineExtension=function(e,t){wl.prototype[e]=t},wl.defineDocExtension=function(e,t){So.prototype[e]=t},wl.fromTextArea=function(e,t){if((t=t?z(t):{}).value=e.value,!t.tabindex&&e.tabIndex&&(t.tabindex=e.tabIndex),!t.placeholder&&e.placeholder&&(t.placeholder=e.placeholder),null==t.autofocus){var r=W();t.autofocus=r==e||null!=e.getAttribute(\"autofocus\")&&r==document.body}function n(){e.value=s.getValue()}var i;if(e.form&&(Je(e.form,\"submit\",n),!t.leaveSubmitMethodAlone)){var o=e.form;i=o.submit;try{var l=o.submit=function(){n(),o.submit=i,o.submit(),o.submit=l}}catch(e){}}t.finishInit=function(t){t.save=n,t.getTextArea=function(){return e},t.toTextArea=function(){t.toTextArea=isNaN,n(),e.parentNode.removeChild(t.getWrapperElement()),e.style.display=\"\",e.form&&(tt(e.form,\"submit\",n),\"function\"==typeof e.form.submit&&(e.form.submit=i))}},e.style.display=\"none\";var s=wl(function(t){return e.parentNode.insertBefore(t,e.nextSibling)},t);return s},(Ul=wl).off=tt,Ul.on=Je,Ul.wheelEventPixels=fi,Ul.Doc=So,Ul.splitLines=bt,Ul.countColumn=I,Ul.findColumn=X,Ul.isWordChar=ee,Ul.Pass=U,Ul.signal=rt,Ul.Line=jt,Ul.changeEnd=yi,Ul.scrollbarModel=Pn,Ul.Pos=ge,Ul.cmpPos=ve,Ul.modes=St,Ul.mimeModes=Lt,Ul.resolveMode=kt,Ul.getMode=Tt,Ul.modeExtensions=Mt,Ul.extendMode=Nt,Ul.copyState=Ot,Ul.startState=Dt,Ul.innerMode=At,Ul.commands=Yo,Ul.keyMap=Po,Ul.keyName=Go,Ul.isModifierKey=Ro,Ul.lookupKey=Io,Ul.normalizeKeyMap=zo,Ul.StringStream=Wt,Ul.SharedTextMarker=bo,Ul.TextMarker=mo,Ul.LineWidget=po,Ul.e_preventDefault=st,Ul.e_stopPropagation=at,Ul.e_stop=ct,Ul.addClass=H,Ul.contains=D,Ul.rmClass=T,Ul.keyNames=Do,wl.version=\"5.37.1\",wl});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/codemirror/lib/codemirror.css": {
"text": ".CodeMirror{font-family:monospace;height:300px;color:black;direction:ltr}.CodeMirror-lines{padding:4px 0}.CodeMirror pre{padding:0 4px}.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{background-color:white}.CodeMirror-gutters{border-right:1px solid #ddd;background-color:#f7f7f7;white-space:nowrap}.CodeMirror-linenumber{padding:0 3px 0 5px;min-width:20px;text-align:right;color:#999;white-space:nowrap}.CodeMirror-guttermarker{color:black}.CodeMirror-guttermarker-subtle{color:#999}.CodeMirror-cursor{border-left:1px solid black;border-right:none;width:0}.CodeMirror div.CodeMirror-secondarycursor{border-left:1px solid silver}.cm-fat-cursor .CodeMirror-cursor{width:auto;border:0!important;background:#7e7}.cm-fat-cursor div.CodeMirror-cursors{z-index:1}.cm-fat-cursor-mark{background-color:rgba(20,255,20,.5);-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite}.cm-animate-fat-cursor{width:auto;border:0;-webkit-animation:blink 1.06s steps(1) infinite;-moz-animation:blink 1.06s steps(1) infinite;animation:blink 1.06s steps(1) infinite;background-color:#7e7}@-moz-keyframes blink{0%{}50%{background-color:transparent}}@-webkit-keyframes blink{0%{}50%{background-color:transparent}}@keyframes blink{0%{}50%{background-color:transparent}}.cm-tab{display:inline-block;text-decoration:inherit}.CodeMirror-rulers{position:absolute;left:0;right:0;top:-50px;bottom:-20px;overflow:hidden}.CodeMirror-ruler{border-left:1px solid #ccc;top:0;bottom:0;position:absolute}.cm-s-default .cm-header{color:blue}.cm-s-default .cm-quote{color:#090}.cm-negative{color:#d44}.cm-positive{color:#292}.cm-header,.cm-strong{font-weight:700}.cm-em{font-style:italic}.cm-link{text-decoration:underline}.cm-strikethrough{text-decoration:line-through}.cm-s-default .cm-keyword{color:#708}.cm-s-default .cm-atom{color:#219}.cm-s-default .cm-number{color:#164}.cm-s-default .cm-def{color:#00f}.cm-s-default .cm-variable-2{color:#05a}.cm-s-default .cm-variable-3,.cm-s-default .cm-type{color:#085}.cm-s-default .cm-comment{color:#a50}.cm-s-default .cm-string{color:#a11}.cm-s-default .cm-string-2{color:#f50}.cm-s-default .cm-meta{color:#555}.cm-s-default .cm-qualifier{color:#555}.cm-s-default .cm-builtin{color:#30a}.cm-s-default .cm-bracket{color:#997}.cm-s-default .cm-tag{color:#170}.cm-s-default .cm-attribute{color:#00c}.cm-s-default .cm-hr{color:#999}.cm-s-default .cm-link{color:#00c}.cm-s-default .cm-error{color:red}.cm-invalidchar{color:red}.CodeMirror-composing{border-bottom:2px solid}div.CodeMirror span.CodeMirror-matchingbracket{color:#0b0}div.CodeMirror span.CodeMirror-nonmatchingbracket{color:#a22}.CodeMirror-matchingtag{background:rgba(255,150,0,.3)}.CodeMirror-activeline-background{background:#e8f2ff}.CodeMirror{position:relative;overflow:hidden;background:white}.CodeMirror-scroll{overflow:scroll!important;margin-bottom:-30px;margin-right:-30px;padding-bottom:30px;height:100%;outline:none;position:relative}.CodeMirror-sizer{position:relative;border-right:30px solid transparent}.CodeMirror-vscrollbar,.CodeMirror-hscrollbar,.CodeMirror-scrollbar-filler,.CodeMirror-gutter-filler{position:absolute;z-index:6;display:none}.CodeMirror-vscrollbar{right:0;top:0;overflow-x:hidden;overflow-y:scroll}.CodeMirror-hscrollbar{bottom:0;left:0;overflow-y:hidden;overflow-x:scroll}.CodeMirror-scrollbar-filler{right:0;bottom:0}.CodeMirror-gutter-filler{left:0;bottom:0}.CodeMirror-gutters{position:absolute;left:0;top:0;min-height:100%;z-index:3}.CodeMirror-gutter{white-space:normal;height:100%;display:inline-block;vertical-align:top;margin-bottom:-30px}.CodeMirror-gutter-wrapper{position:absolute;z-index:4;background:none!important;border:none!important}.CodeMirror-gutter-background{position:absolute;top:0;bottom:0;z-index:4}.CodeMirror-gutter-elt{position:absolute;cursor:default;z-index:4}.CodeMirror-gutter-wrapper ::selection{background-color:transparent}.CodeMirror-gutter-wrapper ::-moz-selection{background-color:transparent}.CodeMirror-lines{cursor:text;min-height:1px}.CodeMirror pre{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0;border-width:0;background:transparent;font-family:inherit;font-size:inherit;margin:0;white-space:pre;word-wrap:normal;line-height:inherit;color:inherit;z-index:2;position:relative;overflow:visible;-webkit-tap-highlight-color:transparent;-webkit-font-variant-ligatures:contextual;font-variant-ligatures:contextual}.CodeMirror-wrap pre{word-wrap:break-word;white-space:pre-wrap;word-break:normal}.CodeMirror-linebackground{position:absolute;left:0;right:0;top:0;bottom:0;z-index:0}.CodeMirror-linewidget{position:relative;z-index:2;padding:.1px}.CodeMirror-rtl pre{direction:rtl}.CodeMirror-code{outline:none}.CodeMirror-scroll,.CodeMirror-sizer,.CodeMirror-gutter,.CodeMirror-gutters,.CodeMirror-linenumber{-moz-box-sizing:content-box;box-sizing:content-box}.CodeMirror-measure{position:absolute;width:100%;height:0;overflow:hidden;visibility:hidden}.CodeMirror-cursor{position:absolute;pointer-events:none}.CodeMirror-measure pre{position:static}div.CodeMirror-cursors{visibility:hidden;position:relative;z-index:3}div.CodeMirror-dragcursors{visibility:visible}.CodeMirror-focused div.CodeMirror-cursors{visibility:visible}.CodeMirror-selected{background:#d9d9d9}.CodeMirror-focused .CodeMirror-selected{background:#d7d4f0}.CodeMirror-crosshair{cursor:crosshair}.CodeMirror-line::selection,.CodeMirror-line>span::selection,.CodeMirror-line>span>span::selection{background:#d7d4f0}.CodeMirror-line::-moz-selection,.CodeMirror-line>span::-moz-selection,.CodeMirror-line>span>span::-moz-selection{background:#d7d4f0}.cm-searching{background-color:#ffa;background-color:rgba(255,255,0,.4)}.cm-force-border{padding-right:.1px}@media print{.CodeMirror div.CodeMirror-cursors{visibility:hidden}}.cm-tab-wrap-hack:after{content:''}span.CodeMirror-selectedtext{background:none}\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/tiddlywiki/codemirror/lib/codemirror.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css": {
"text": ".CodeMirror-dialog {\n position: absolute;\n left: 0; right: 0;\n background: inherit;\n z-index: 15;\n padding: .1em .8em;\n overflow: hidden;\n color: inherit;\n}\n\n.CodeMirror-dialog-top {\n border-bottom: 1px solid #eee;\n top: 0;\n}\n\n.CodeMirror-dialog-bottom {\n border-top: 1px solid #eee;\n bottom: 0;\n}\n\n.CodeMirror-dialog input {\n border: none;\n outline: none;\n background: transparent;\n width: 20em;\n color: inherit;\n font-family: monospace;\n}\n\n.CodeMirror-dialog button {\n font-size: 70%;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){function o(e,o,n){var t;return(t=e.getWrapperElement().appendChild(document.createElement(\"div\"))).className=n?\"CodeMirror-dialog CodeMirror-dialog-bottom\":\"CodeMirror-dialog CodeMirror-dialog-top\",\"string\"==typeof o?t.innerHTML=o:t.appendChild(o),t}function n(e,o){e.state.currentNotificationClose&&e.state.currentNotificationClose(),e.state.currentNotificationClose=o}e.defineExtension(\"openDialog\",function(t,i,r){r||(r={}),n(this,null);var u=o(this,t,r.bottom),l=!1,c=this;function a(e){if(\"string\"==typeof e)s.value=e;else{if(l)return;l=!0,u.parentNode.removeChild(u),c.focus(),r.onClose&&r.onClose(u)}}var f,s=u.getElementsByTagName(\"input\")[0];return s?(s.focus(),r.value&&(s.value=r.value,!1!==r.selectValueOnOpen&&s.select()),r.onInput&&e.on(s,\"input\",function(e){r.onInput(e,s.value,a)}),r.onKeyUp&&e.on(s,\"keyup\",function(e){r.onKeyUp(e,s.value,a)}),e.on(s,\"keydown\",function(o){r&&r.onKeyDown&&r.onKeyDown(o,s.value,a)||((27==o.keyCode||!1!==r.closeOnEnter&&13==o.keyCode)&&(s.blur(),e.e_stop(o),a()),13==o.keyCode&&i(s.value,o))}),!1!==r.closeOnBlur&&e.on(s,\"blur\",a)):(f=u.getElementsByTagName(\"button\")[0])&&(e.on(f,\"click\",function(){a(),c.focus()}),!1!==r.closeOnBlur&&e.on(f,\"blur\",a),f.focus()),a}),e.defineExtension(\"openConfirm\",function(t,i,r){n(this,null);var u=o(this,t,r&&r.bottom),l=u.getElementsByTagName(\"button\"),c=!1,a=this,f=1;function s(){c||(c=!0,u.parentNode.removeChild(u),a.focus())}l[0].focus();for(var d=0;d<l.length;++d){var p=l[d];!function(o){e.on(p,\"click\",function(n){e.e_preventDefault(n),s(),o&&o(a)})}(i[d]),e.on(p,\"blur\",function(){--f,setTimeout(function(){f<=0&&s()},200)}),e.on(p,\"focus\",function(){++f})}}),e.defineExtension(\"openNotification\",function(t,i){n(this,a);var r,u=o(this,t,i&&i.bottom),l=!1,c=i&&void 0!==i.duration?i.duration:5e3;function a(){l||(l=!0,clearTimeout(r),u.parentNode.removeChild(u))}return e.on(u,\"click\",function(o){e.e_preventDefault(o),a()}),c&&(r=setTimeout(a,c)),a})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/dialog/dialog.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";var t=\"CodeMirror-activeline\",n=\"CodeMirror-activeline-background\",i=\"CodeMirror-activeline-gutter\";function r(e){for(var r=0;r<e.state.activeLines.length;r++)e.removeLineClass(e.state.activeLines[r],\"wrap\",t),e.removeLineClass(e.state.activeLines[r],\"background\",n),e.removeLineClass(e.state.activeLines[r],\"gutter\",i)}function o(e,o){for(var a=[],s=0;s<o.length;s++){var c=o[s],l=e.getOption(\"styleActiveLine\");if(\"object\"==typeof l&&l.nonEmpty?c.anchor.line==c.head.line:c.empty()){var f=e.getLineHandleVisualStart(c.head.line);a[a.length-1]!=f&&a.push(f)}}(function(e,t){if(e.length!=t.length)return!1;for(var n=0;n<e.length;n++)if(e[n]!=t[n])return!1;return!0})(e.state.activeLines,a)||e.operation(function(){r(e);for(var o=0;o<a.length;o++)e.addLineClass(a[o],\"wrap\",t),e.addLineClass(a[o],\"background\",n),e.addLineClass(a[o],\"gutter\",i);e.state.activeLines=a})}function a(e,t){o(e,t.ranges)}e.defineOption(\"styleActiveLine\",!1,function(t,n,i){var s=i!=e.Init&&i;n!=s&&(s&&(t.off(\"beforeSelectionChange\",a),r(t),delete t.state.activeLines),n&&(t.state.activeLines=[],o(t,t.listSelections()),t.on(\"beforeSelectionChange\",a)))})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/selection/activeline.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js": {
"text": "!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.modeInfo=[{name:\"CMake\",mime:\"text/x-cmake\",mode:\"cmake\",ext:[\"cmake\",\"cmake.in\"],file:/^CMakeLists.txt$/},{name:\"Cython\",mime:\"text/x-cython\",mode:\"python\",ext:[\"pyx\",\"pxd\",\"pxi\"]},{name:\"CSS\",mime:\"text/css\",mode:\"css\",ext:[\"css\"]},{name:\"diff\",mime:\"text/x-diff\",mode:\"diff\",ext:[\"diff\",\"patch\"]},{name:\"Embedded Javascript\",mime:\"application/x-ejs\",mode:\"htmlembedded\",ext:[\"ejs\"]},{name:\"Embedded Ruby\",mime:\"application/x-erb\",mode:\"htmlembedded\",ext:[\"erb\"]},{name:\"Erlang\",mime:\"text/x-erlang\",mode:\"erlang\",ext:[\"erl\"]},{name:\"GitHub Flavored Markdown\",mime:\"text/x-gfm\",mode:\"gfm\",file:/^(readme|contributing|history).md$/i},{name:\"Go\",mime:\"text/x-go\",mode:\"go\",ext:[\"go\"]},{name:\"ASP.NET\",mime:\"application/x-aspx\",mode:\"htmlembedded\",ext:[\"aspx\"],alias:[\"asp\",\"aspx\"]},{name:\"HTML\",mime:\"text/html\",mode:\"htmlmixed\",ext:[\"html\",\"htm\",\"handlebars\",\"hbs\"],alias:[\"xhtml\"]},{name:\"HTTP\",mime:\"message/http\",mode:\"http\"},{name:\"JavaScript\",mimes:[\"text/javascript\",\"text/ecmascript\",\"application/javascript\",\"application/x-javascript\",\"application/ecmascript\"],mode:\"javascript\",ext:[\"js\"],alias:[\"ecmascript\",\"js\",\"node\"]},{name:\"JSON\",mimes:[\"application/json\",\"application/x-json\"],mode:\"javascript\",ext:[\"json\",\"map\"],alias:[\"json5\"]},{name:\"JSON-LD\",mime:\"application/ld+json\",mode:\"javascript\",ext:[\"jsonld\"],alias:[\"jsonld\"]},{name:\"Lua\",mime:\"text/x-lua\",mode:\"lua\",ext:[\"lua\"]},{name:\"Markdown\",mime:\"text/x-markdown\",mode:\"markdown\",ext:[\"markdown\",\"md\",\"mkd\"]},{name:\"MySQL\",mime:\"text/x-mysql\",mode:\"sql\"},{name:\"Plain Text\",mime:\"text/plain\",mode:\"null\",ext:[\"txt\",\"text\",\"conf\",\"def\",\"list\",\"log\"]},{name:\"Python\",mime:\"text/x-python\",mode:\"python\",ext:[\"BUILD\",\"bzl\",\"py\",\"pyw\"],file:/^(BUCK|BUILD)$/},{name:\"SCSS\",mime:\"text/x-scss\",mode:\"css\",ext:[\"scss\"]},{name:\"LaTeX\",mime:\"text/x-latex\",mode:\"stex\",ext:[\"text\",\"ltx\",\"tex\"],alias:[\"tex\"]},{name:\"TiddlyWiki \",mime:\"text/x-tiddlywiki\",mode:\"tiddlywiki\"}];for(var t=0;t<e.modeInfo.length;t++){var m=e.modeInfo[t];m.mimes&&(m.mime=m.mimes[0])}e.findModeByMIME=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.mime==t)return i;if(i.mimes)for(var a=0;a<i.mimes.length;a++)if(i.mimes[a]==t)return i}return/\\+xml$/.test(t)?e.findModeByMIME(\"application/xml\"):/\\+json$/.test(t)?e.findModeByMIME(\"application/json\"):void 0},e.findModeByExtension=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.ext)for(var a=0;a<i.ext.length;a++)if(i.ext[a]==t)return i}},e.findModeByFileName=function(t){for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.file&&i.file.test(t))return i}var a=t.lastIndexOf(\".\"),o=a>-1&&t.substring(a+1,t.length);if(o)return e.findModeByExtension(o)},e.findModeByName=function(t){t=t.toLowerCase();for(var m=0;m<e.modeInfo.length;m++){var i=e.modeInfo[m];if(i.name.toLowerCase()==t)return i;if(i.alias)for(var a=0;a<i.alias.length;a++)if(i.alias[a].toLowerCase()==t)return i}}});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/tw-meta.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/keyboard": {
"title": "$:/plugins/tiddlywiki/codemirror/keyboard",
"text": "\n!!Default keyboard shortcuts\n\n!!!Basic shortcuts\n\n|Shortcut |Function |h\n|Left |goCharLeft |\n|Right |goCharRight |\n|Up |goLineUp |\n|Down |goLineDown |\n|End |goLineEnd |\n|Home |goLineStartSmart |\n|~PageUp |goPageUp |\n|~PageDown |goPageDown |\n|Delete |delCharAfter |\n|Backspace |delCharBefore |\n|Shift-Backspace |delCharBefore |\n|Tab |defaultTab |\n|Shift-Tab |indentAuto |\n|Enter |newlineAndIndent |\n|Insert |toggleOverwrite |\n|Ctrl-Esc |singleSelection |\n\n\n!!!Shortcuts on Windows and Linux\n\n|Shortcut |Function |h\n|Ctrl-A |selectAll |\n|Ctrl-D |deleteLine |\n|Ctrl-Z |undo |\n|Shift-Ctrl-Z |redo |\n|Ctrl-Y |redo |\n|Ctrl-Home |goDocStart |\n|Ctrl-End |goDocEnd |\n|Ctrl-Up |goLineUp |\n|Ctrl-Down |goLineDown |\n|Ctrl-Left |goGroupLeft |\n|Ctrl-Right |goGroupRight |\n|Alt-Left |goLineStart |\n|Alt-Right |goLineEnd |\n|Ctrl-Backspace |delGroupBefore |\n|Ctrl-Delete |delGroupAfter |\n|Ctrl-F |find |\n|Ctrl-G |findNext |\n|Shift-Ctrl-G |findPrev |\n|Shift-Ctrl-F |replace |\n|Shift-Ctrl-R |replaceAll |\n|Ctrl-[ |indentLess |\n|Ctrl-] |indentMore |\n|Alt-U |undoSelection |\n|Shift-Ctrl-U |redoSelection |\n|Shift-Alt-U |redoSelection |\n\n\n!!!Shortcuts on ~MacOs\n\n|Shortcut |Function |h\n|Cmd-A |selectAll |\n|Cmd-D |deleteLine |\n|Cmd-Z |undo |\n|Shift-Cmd-Z |redo |\n|Cmd-Y |redo |\n|Cmd-Home |goDocStart |\n|Cmd-Up |goDocStart |\n|Cmd-End |goDocEnd |\n|Cmd-Down |goDocEnd |\n|Alt-Left |goGroupLeft |\n|Alt-Right |goGroupRight |\n|Cmd-Left |goLineLeft |\n|Cmd-Right |goLineRight |\n|Alt-Backspace |delGroupBefore |\n|Ctrl-Alt-Backspace |delGroupAfter |\n|Alt-Delete |delGroupAfter |\n|Cmd-F |find |\n|Cmd-G |findNext |\n|Shift-Cmd-G |findPrev |\n|Cmd-Alt-F |replace |\n|Shift-Cmd-Alt-F |replaceAll |\n|Cmd-[ |indentLess |\n|Cmd-] |indentMore |\n|Cmd-Backspace |delWrappedLineLeft |\n|Cmd-Delete |delWrappedLineRight |\n|Alt-U |undoSelection |\n|Shift-Alt-U |redoSelection |\n|Ctrl-Up |goDocStart |\n|Ctrl-Down |goDocEnd |\n|Ctrl-F |goCharRight |\n|Ctrl-B |goCharLeft |\n|Ctrl-P |goLineUp |\n|Ctrl-N |goLineDown |\n|Alt-F |goWordRight |\n|Alt-B |goWordLeft |\n|Ctrl-A |goLineStart |\n|Ctrl-E |goLineEnd |\n|Ctrl-V |goPageDown |\n|Shift-Ctrl-V |goPageUp |\n|Ctrl-D |delCharAfter |\n|Ctrl-H |delCharBefore |\n|Alt-D |delWordAfter |\n|Alt-Backspace |delWordBefore |\n|Ctrl-K |killLine |\n|Alt-T |transposeChars |\n|Ctrl-O |openLine |\n\n\n"
},
"$:/plugins/tiddlywiki/codemirror/license": {
"title": "$:/plugins/tiddlywiki/codemirror/license",
"text": "\"\"\"\n~CodeMirror, copyright (c) by Marijn Haverbeke and others\nDistributed under an MIT license: http://codemirror.net/LICENSE\n\nCopyright (c) 2004-2007, Jeremy Ruston\nCopyright (c) 2007-2018, UnaMesa Association\nDistributed under an BSD license: https://tiddlywiki.com/#License\n\"\"\"\n"
},
"$:/plugins/tiddlywiki/codemirror/readme": {
"title": "$:/plugins/tiddlywiki/codemirror/readme",
"text": "This plugin provides an enhanced text editor component based on [[CodeMirror|http://codemirror.net]]. The basic configuration is designed to be as lightweight as possible and is just around 235kb of size. Additional features can be installed with ~CodeMirror ~AddOns from the plugin library.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/codemirror]]\n\nBased on ~CodeMirror version 5.37.0\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/editorFont": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/editorFont",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/editorFont/hint}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/keyMap": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/keyMap",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/keyMap/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/keyMap\n\n<$link to=\"$:/config/codemirror/keyMap\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/keyMap\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]module-type[codemirror-keymap]!has[draft.of]get[text]]\">\n<option value=<<currentTiddler>>><$transclude><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/lineNumbers",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/lineNumbers/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/lineNumbers/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineNumbers\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/lineNumbers\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/lineWrapping",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/lineWrapping/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/lineWrapping/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/lineWrapping\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/lineWrapping\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/showCursorWhenSelecting",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/showCursorWhenSelecting/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/showCursorWhenSelecting/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/showCursorWhenSelecting\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/showCursorWhenSelecting\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/styleActiveLine",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/styleActiveLine/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/styleActiveLine/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/styleActiveLine\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"false\"> <$link to=\"$:/config/codemirror/styleActiveLine\"><<lingo info>></$link> </$checkbox>\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/theme": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/theme",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/theme/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/\n\n<$link to=\"$:/config/codemirror/theme\"><<lingo hint>></$link>\n\n<$select tiddler=\"$:/config/codemirror/theme\" default=\"default\">\n<option value=\"default\">default</option>\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/Stylesheet]module-type[codemirror-theme]!has[draft.of]get[name]]\">\n<option value=<<currentTiddler>>><$transclude field=\"name\"><$text text=<<currentTiddler>>/></$transclude></option>\n</$list>\n</$select>\n\n//see the [[CodeMirror Usage|$:/plugins/tiddlywiki/codemirror/usage]] how to add themes//\n"
},
"$:/plugins/tiddlywiki/codemirror/styles": {
"title": "$:/plugins/tiddlywiki/codemirror/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": "/* Make the editor resize to fit its content */\n\n.CodeMirror {\n\theight: auto;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tline-height: 1.5;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n}\n\n.CodeMirror-scroll {\n\toverflow-x: auto;\n\toverflow-y: hidden;\t\n}\n"
},
"$:/core/ui/ControlPanel/Settings/CodeMirror": {
"title": "$:/core/ui/ControlPanel/Settings/CodeMirror",
"tags": "$:/tags/ControlPanel/SettingsTab",
"caption": "CodeMirror",
"list-after": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
"text": "\\define lingo-base() $:/language/codemirror/controlPanel/\n\n<<lingo hint>>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/usage\"><<lingo usage>></$link>\n\n<$link to=\"$:/plugins/tiddlywiki/codemirror/keyboard\"><<lingo keyboard>></$link>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings/CodeMirror]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/core/ui/ControlPanel/Settings": {
"title": "$:/core/ui/ControlPanel/Settings",
"tags": "$:/tags/ControlPanel",
"caption": "{{$:/language/ControlPanel/Settings/Caption}}",
"text": "<div class=\"tc-control-panel\">\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/SettingsTab]!has[draft.of]]\" \"$:/core/ui/ControlPanel/Settings/TiddlyWiki\">>\n</div>\n"
},
"$:/core/ui/ControlPanel/Settings/TiddlyWiki": {
"title": "$:/core/ui/ControlPanel/Settings/TiddlyWiki",
"tags": "$:/tags/ControlPanel/SettingsTab",
"caption": "TiddlyWiki",
"text": "\\define lingo-base() $:/language/ControlPanel/Settings/\n\n<<lingo Hint>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ControlPanel/Settings]]\">\n\n<div style=\"border-top:1px solid #eee;\">\n\n!! <$link><$transclude field=\"caption\"/></$link>\n\n<$transclude/>\n\n</div>\n\n</$list>\n"
},
"$:/plugins/tiddlywiki/codemirror/usage": {
"title": "$:/plugins/tiddlywiki/codemirror/usage",
"text": "! Configuration\n\nConfiguration for the ~CodeMirror text-editor can be done from within the CodeMirror Settings Tab in the [[ControlPanel|$:/ControlPanel]] (Settings - ~CodeMirror)\n\n\n!!Setting a different Theme\n\n~CodeMirror themes are available in the [ext[official GitHub repository|https://github.com/codemirror/CodeMirror/tree/master/theme]]\n\nMore themes can be found at https://github.com/FarhadG/code-mirror-themes/tree/master/themes and previewed [ext[here|http://farhadg.github.io/code-mirror-themes/]]\n\n\nTo add a theme to your wiki, follow these four steps:\n\n* choose one of the CSS files and copy its content to a new tiddler\n* remove all comments from the top and tag the tiddler with <<tag-pill \"$:/tags/Stylesheet\">>\n* add a field \"module-type\" with the value \"codemirror-theme\". add a field \"name\" with the exact ''name'' of the theme as value\n* save the tiddler and go to the Settings tab in $:/ControlPanel - look for the \"theme\" dropdown to select your newly added theme\n\n\n!!Line Numbers\n\nTo show or hide the Line Numbers at the left, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Numbers\" checkbox\n\n\n!!Line Wrapping\n\nControls if long lines get visually wrapped to a new line if they're too long to fit the editor width or if the editor should scroll horizontally\n\nTo change the line-wrapping behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Line Wrapping\" checkbox\n\n\n!!Show Cursor when selecting\n\nDefines whether the Mouse cursor should be visually shown or hidden when making a text-selection\n\nTo change the show-cursor-when-selecting behaviour, go to ~ControlPanel - Settings - ~CodeMirror and look for the \"Show cursor when selecting\" checkbox\n\n\n!!~CodeMirror Font Family\n\nThe Font-Family used within the ~CodeMirror text-editor defaults to \"monospace\" which will choose your configured monospace system-font\n\nThat setting can be overridden entering one or more Font-Families in the \"Font Family\" input field at ~ControlPanel - Settings - ~CodeMirror\n\n* The entries must be separated by semicolons ','\n* Font-Family Names that contain spaces must be quoted like \"My Font\"\n* If a list of Font-Families is specified, the last Font-Family found on the user-system gets used, non-existing fonts get ignored\n* If none of the specified Font-Families is available, ~CodeMirror uses the default \"monospace\"\n\n\n!!\"Hidden\" Settings:\n\n!!!Cursor Blink Rate\n\nThe cursor blink-rate defines how fast (in milliseconds) the cursor blinks inside the textarea\n\nYou can change it by editing $:/config/codemirror/cursorBlinkRate\n\"0\" disables blinking\n\n!!!Tabsize\n\nThe Tabsize defines the width of a tab character. Default is 4.\n\nYou can change it by editing $:/config/codemirror/tabSize\n\n!!!Indent Unit\n\nNot enabled for vnd.tiddlywiki and x-tiddlywiki\n\nDefines how many spaces a text-block should be indented. Defaults to 2.\n\nYou can change it by editing $:/config/codemirror/indentUnit\n\n"
}
}
}
{
"tiddlers": {
"$:/config/codemirror/autocomplete": {
"title": "$:/config/codemirror/autocomplete",
"extend": "extraKeys",
"type": "json",
"text": "{\n\t\"Ctrl-Space\": \"autocomplete\"\n}"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";var r=/[\\w$]+/;e.registerHelper(\"hint\",\"anyword\",function(t,o){for(var i=o&&o.word||r,n=o&&o.range||500,f=t.getCursor(),s=t.getLine(f.line),a=f.ch,c=a;c&&i.test(s.charAt(c-1));)--c;for(var l=c!=a&&s.slice(c,a),d=o&&o.list||[],u={},p=new RegExp(i.source,\"g\"),g=-1;g<=1;g+=2)for(var h=f.line,m=Math.min(Math.max(h+g*n,t.firstLine()),t.lastLine())+g;h!=m;h+=g)for(var y,b=t.getLine(h);y=p.exec(b);)h==f.line&&y[0]===l||l&&0!=y[0].lastIndexOf(l,0)||Object.prototype.hasOwnProperty.call(u,y[0])||(u[y[0]]=!0,d.push(y[0]));return{list:d,from:e.Pos(f.line,c),to:e.Pos(f.line,a)}})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/anyword-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../../mode/css/css\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../../mode/css/css\"],e):e(CodeMirror)}(function(e){\"use strict\";var r={link:1,visited:1,active:1,hover:1,focus:1,\"first-letter\":1,\"first-line\":1,\"first-child\":1,before:1,after:1,lang:1};e.registerHelper(\"hint\",\"css\",function(t){var o=t.getCursor(),s=t.getTokenAt(o),i=e.innerMode(t.getMode(),s.state);if(\"css\"==i.mode.name){if(\"keyword\"==s.type&&0==\"!important\".indexOf(s.string))return{list:[\"!important\"],from:e.Pos(o.line,s.start),to:e.Pos(o.line,s.end)};var n=s.start,a=o.ch,d=s.string.slice(0,a-n);/[^\\w$_-]/.test(d)&&(d=\"\",n=a=o.ch);var c=e.resolveMode(\"text/css\"),f=[],l=i.state.state;return\"pseudo\"==l||\"variable-3\"==s.type?p(r):\"block\"==l||\"maybeprop\"==l?p(c.propertyKeywords):\"prop\"==l||\"parens\"==l||\"at\"==l||\"params\"==l?(p(c.valueKeywords),p(c.colorKeywords)):\"media\"!=l&&\"media_parens\"!=l||(p(c.mediaTypes),p(c.mediaFeatures)),f.length?{list:f,from:e.Pos(o.line,n),to:e.Pos(o.line,a)}:void 0}function p(e){for(var r in e)d&&0!=r.lastIndexOf(d,0)||f.push(r)}})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/css-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/html-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(l){\"object\"==typeof exports&&\"object\"==typeof module?l(require(\"../../lib/codemirror\"),require(\"./xml-hint\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"./xml-hint\"],l):l(CodeMirror)}(function(l){\"use strict\";var t=\"ab aa af ak sq am ar an hy as av ae ay az bm ba eu be bn bh bi bs br bg my ca ch ce ny zh cv kw co cr hr cs da dv nl dz en eo et ee fo fj fi fr ff gl ka de el gn gu ht ha he hz hi ho hu ia id ie ga ig ik io is it iu ja jv kl kn kr ks kk km ki rw ky kv kg ko ku kj la lb lg li ln lo lt lu lv gv mk mg ms ml mt mi mr mh mn na nv nb nd ne ng nn no ii nr oc oj cu om or os pa pi fa pl ps pt qu rm rn ro ru sa sc sd se sm sg sr gd sn si sk sl so st es su sw ss sv ta te tg th ti bo tk tl tn to tr ts tt tw ty ug uk ur uz ve vi vo wa cy wo fy xh yi yo za zu\".split(\" \"),e=[\"_blank\",\"_self\",\"_top\",\"_parent\"],a=[\"ascii\",\"utf-8\",\"utf-16\",\"latin1\",\"latin1\"],n=[\"get\",\"post\",\"put\",\"delete\"],r=[\"application/x-www-form-urlencoded\",\"multipart/form-data\",\"text/plain\"],o=[\"all\",\"screen\",\"print\",\"embossed\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"speech\",\"3d-glasses\",\"resolution [>][<][=] [X]\",\"device-aspect-ratio: X/Y\",\"orientation:portrait\",\"orientation:landscape\",\"device-height: [X]\",\"device-width: [X]\"],s={attrs:{}},u={a:{attrs:{href:null,ping:null,type:null,media:o,target:e,hreflang:t}},abbr:s,acronym:s,address:s,applet:s,area:{attrs:{alt:null,coords:null,href:null,target:null,ping:null,media:o,hreflang:t,type:null,shape:[\"default\",\"rect\",\"circle\",\"poly\"]}},article:s,aside:s,audio:{attrs:{src:null,mediagroup:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"none\",\"metadata\",\"auto\"],autoplay:[\"\",\"autoplay\"],loop:[\"\",\"loop\"],controls:[\"\",\"controls\"]}},b:s,base:{attrs:{href:null,target:e}},basefont:s,bdi:s,bdo:s,big:s,blockquote:{attrs:{cite:null}},body:s,br:s,button:{attrs:{form:null,formaction:null,name:null,value:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"autofocus\"],formenctype:r,formmethod:n,formnovalidate:[\"\",\"novalidate\"],formtarget:e,type:[\"submit\",\"reset\",\"button\"]}},canvas:{attrs:{width:null,height:null}},caption:s,center:s,cite:s,code:s,col:{attrs:{span:null}},colgroup:{attrs:{span:null}},command:{attrs:{type:[\"command\",\"checkbox\",\"radio\"],label:null,icon:null,radiogroup:null,command:null,title:null,disabled:[\"\",\"disabled\"],checked:[\"\",\"checked\"]}},data:{attrs:{value:null}},datagrid:{attrs:{disabled:[\"\",\"disabled\"],multiple:[\"\",\"multiple\"]}},datalist:{attrs:{data:null}},dd:s,del:{attrs:{cite:null,datetime:null}},details:{attrs:{open:[\"\",\"open\"]}},dfn:s,dir:s,div:s,dl:s,dt:s,em:s,embed:{attrs:{src:null,type:null,width:null,height:null}},eventsource:{attrs:{src:null}},fieldset:{attrs:{disabled:[\"\",\"disabled\"],form:null,name:null}},figcaption:s,figure:s,font:s,footer:s,form:{attrs:{action:null,name:null,\"accept-charset\":a,autocomplete:[\"on\",\"off\"],enctype:r,method:n,novalidate:[\"\",\"novalidate\"],target:e}},frame:s,frameset:s,h1:s,h2:s,h3:s,h4:s,h5:s,h6:s,head:{attrs:{},children:[\"title\",\"base\",\"link\",\"style\",\"meta\",\"script\",\"noscript\",\"command\"]},header:s,hgroup:s,hr:s,html:{attrs:{manifest:null},children:[\"head\",\"body\"]},i:s,iframe:{attrs:{src:null,srcdoc:null,name:null,width:null,height:null,sandbox:[\"allow-top-navigation\",\"allow-same-origin\",\"allow-forms\",\"allow-scripts\"],seamless:[\"\",\"seamless\"]}},img:{attrs:{alt:null,src:null,ismap:null,usemap:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"]}},input:{attrs:{alt:null,dirname:null,form:null,formaction:null,height:null,list:null,max:null,maxlength:null,min:null,name:null,pattern:null,placeholder:null,size:null,src:null,step:null,value:null,width:null,accept:[\"audio/*\",\"video/*\",\"image/*\"],autocomplete:[\"on\",\"off\"],autofocus:[\"\",\"autofocus\"],checked:[\"\",\"checked\"],disabled:[\"\",\"disabled\"],formenctype:r,formmethod:n,formnovalidate:[\"\",\"novalidate\"],formtarget:e,multiple:[\"\",\"multiple\"],readonly:[\"\",\"readonly\"],required:[\"\",\"required\"],type:[\"hidden\",\"text\",\"search\",\"tel\",\"url\",\"email\",\"password\",\"datetime\",\"date\",\"month\",\"week\",\"time\",\"datetime-local\",\"number\",\"range\",\"color\",\"checkbox\",\"radio\",\"file\",\"submit\",\"image\",\"reset\",\"button\"]}},ins:{attrs:{cite:null,datetime:null}},kbd:s,keygen:{attrs:{challenge:null,form:null,name:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],keytype:[\"RSA\"]}},label:{attrs:{for:null,form:null}},legend:s,li:{attrs:{value:null}},link:{attrs:{href:null,type:null,hreflang:t,media:o,sizes:[\"all\",\"16x16\",\"16x16 32x32\",\"16x16 32x32 64x64\"]}},map:{attrs:{name:null}},mark:s,menu:{attrs:{label:null,type:[\"list\",\"context\",\"toolbar\"]}},meta:{attrs:{content:null,charset:a,name:[\"viewport\",\"application-name\",\"author\",\"description\",\"generator\",\"keywords\"],\"http-equiv\":[\"content-language\",\"content-type\",\"default-style\",\"refresh\"]}},meter:{attrs:{value:null,min:null,low:null,high:null,max:null,optimum:null}},nav:s,noframes:s,noscript:s,object:{attrs:{data:null,type:null,name:null,usemap:null,form:null,width:null,height:null,typemustmatch:[\"\",\"typemustmatch\"]}},ol:{attrs:{reversed:[\"\",\"reversed\"],start:null,type:[\"1\",\"a\",\"A\",\"i\",\"I\"]}},optgroup:{attrs:{disabled:[\"\",\"disabled\"],label:null}},option:{attrs:{disabled:[\"\",\"disabled\"],label:null,selected:[\"\",\"selected\"],value:null}},output:{attrs:{for:null,form:null,name:null}},p:s,param:{attrs:{name:null,value:null}},pre:s,progress:{attrs:{value:null,max:null}},q:{attrs:{cite:null}},rp:s,rt:s,ruby:s,s:s,samp:s,script:{attrs:{type:[\"text/javascript\"],src:null,async:[\"\",\"async\"],defer:[\"\",\"defer\"],charset:a}},section:s,select:{attrs:{form:null,name:null,size:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],multiple:[\"\",\"multiple\"]}},small:s,source:{attrs:{src:null,type:null,media:null}},span:s,strike:s,strong:s,style:{attrs:{type:[\"text/css\"],media:o,scoped:null}},sub:s,summary:s,sup:s,table:s,tbody:s,td:{attrs:{colspan:null,rowspan:null,headers:null}},textarea:{attrs:{dirname:null,form:null,maxlength:null,name:null,placeholder:null,rows:null,cols:null,autofocus:[\"\",\"autofocus\"],disabled:[\"\",\"disabled\"],readonly:[\"\",\"readonly\"],required:[\"\",\"required\"],wrap:[\"soft\",\"hard\"]}},tfoot:s,th:{attrs:{colspan:null,rowspan:null,headers:null,scope:[\"row\",\"col\",\"rowgroup\",\"colgroup\"]}},thead:s,time:{attrs:{datetime:null}},title:s,tr:s,track:{attrs:{src:null,label:null,default:null,kind:[\"subtitles\",\"captions\",\"descriptions\",\"chapters\",\"metadata\"],srclang:t}},tt:s,u:s,ul:s,var:s,video:{attrs:{src:null,poster:null,width:null,height:null,crossorigin:[\"anonymous\",\"use-credentials\"],preload:[\"auto\",\"metadata\",\"none\"],autoplay:[\"\",\"autoplay\"],mediagroup:[\"movie\"],muted:[\"\",\"muted\"],controls:[\"\",\"controls\"]}},wbr:s},i={accesskey:[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\",\"g\",\"h\",\"i\",\"j\",\"k\",\"l\",\"m\",\"n\",\"o\",\"p\",\"q\",\"r\",\"s\",\"t\",\"u\",\"v\",\"w\",\"x\",\"y\",\"z\",\"0\",\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],class:null,contenteditable:[\"true\",\"false\"],contextmenu:null,dir:[\"ltr\",\"rtl\",\"auto\"],draggable:[\"true\",\"false\",\"auto\"],dropzone:[\"copy\",\"move\",\"link\",\"string:\",\"file:\"],hidden:[\"hidden\"],id:null,inert:[\"inert\"],itemid:null,itemprop:null,itemref:null,itemscope:[\"itemscope\"],itemtype:null,lang:[\"en\",\"es\"],spellcheck:[\"true\",\"false\"],style:null,tabindex:[\"1\",\"2\",\"3\",\"4\",\"5\",\"6\",\"7\",\"8\",\"9\"],title:null,translate:[\"yes\",\"no\"],onclick:null,rel:[\"stylesheet\",\"alternate\",\"author\",\"bookmark\",\"help\",\"license\",\"next\",\"nofollow\",\"noreferrer\",\"prefetch\",\"prev\",\"search\",\"tag\"]};function d(l){for(var t in i)i.hasOwnProperty(t)&&(l.attrs[t]=i[t])}for(var c in d(s),u)u.hasOwnProperty(c)&&u[c]!=s&&d(u[c]);l.htmlSchema=u,l.registerHelper(\"hint\",\"html\",function(t,e){var a={schemaInfo:u};if(e)for(var n in e)a[n]=e[n];return l.hint.xml(t,a)})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/html-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/javascript-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){var e=t.Pos;function r(t,e){for(var r=0,n=t.length;r<n;++r)e(t[r])}function n(n,i,l,f){var c=n.getCursor(),p=l(n,c);if(!/\\b(?:string|comment)\\b/.test(p.type)){var u=t.innerMode(n.getMode(),p.state);if(\"json\"!==u.mode.helperType){p.state=u.state,/^[\\w$_]*$/.test(p.string)?p.end>c.ch&&(p.end=c.ch,p.string=p.string.slice(0,c.ch-p.start)):p={start:c.ch,end:c.ch,string:\"\",state:p.state,type:\".\"==p.string?\"property\":null};for(var d=p;\"property\"==d.type;){if(\".\"!=(d=l(n,e(c.line,d.start))).string)return;if(d=l(n,e(c.line,d.start)),!g)var g=[];g.push(d)}return{list:function(t,e,n,i){var l=[],f=t.string,c=i&&i.globalScope||window;function p(t){0!=t.lastIndexOf(f,0)||function(t,e){if(!Array.prototype.indexOf){for(var r=t.length;r--;)if(t[r]===e)return!0;return!1}return-1!=t.indexOf(e)}(l,t)||l.push(t)}function u(t){\"string\"==typeof t?r(o,p):t instanceof Array?r(s,p):t instanceof Function&&r(a,p),function(t,e){if(Object.getOwnPropertyNames&&Object.getPrototypeOf)for(var r=t;r;r=Object.getPrototypeOf(r))Object.getOwnPropertyNames(r).forEach(e);else for(var n in t)e(n)}(t,p)}if(e&&e.length){var d,g=e.pop();for(g.type&&0===g.type.indexOf(\"variable\")?(i&&i.additionalContext&&(d=i.additionalContext[g.string]),i&&!1===i.useGlobalScope||(d=d||c[g.string])):\"string\"==g.type?d=\"\":\"atom\"==g.type?d=1:\"function\"==g.type&&(null==c.jQuery||\"$\"!=g.string&&\"jQuery\"!=g.string||\"function\"!=typeof c.jQuery?null!=c._&&\"_\"==g.string&&\"function\"==typeof c._&&(d=c._()):d=c.jQuery());null!=d&&e.length;)d=d[e.pop().string];null!=d&&u(d)}else{for(var y=t.state.localVars;y;y=y.next)p(y.name);for(var y=t.state.globalVars;y;y=y.next)p(y.name);i&&!1===i.useGlobalScope||u(c),r(n,p)}return l}(p,g,i,f),from:e(c.line,p.start),to:e(c.line,p.end)}}}}function i(t,e){var r=t.getTokenAt(e);return e.ch==r.start+1&&\".\"==r.string.charAt(0)?(r.end=r.start,r.string=\".\",r.type=\"property\"):/^\\.[\\w$_]*$/.test(r.string)&&(r.type=\"property\",r.start++,r.string=r.string.replace(/\\./,\"\")),r}t.registerHelper(\"hint\",\"javascript\",function(t,e){return n(t,l,function(t,e){return t.getTokenAt(e)},e)}),t.registerHelper(\"hint\",\"coffeescript\",function(t,e){return n(t,f,i,e)});var o=\"charAt charCodeAt indexOf lastIndexOf substring substr slice trim trimLeft trimRight toUpperCase toLowerCase split concat match replace search\".split(\" \"),s=\"length concat join splice push pop shift unshift slice reverse sort indexOf lastIndexOf every some filter forEach map reduce reduceRight \".split(\" \"),a=\"prototype apply call bind\".split(\" \"),l=\"break case catch class const continue debugger default delete do else export extends false finally for function if in import instanceof new null return super switch this throw true try typeof var void while with yield\".split(\" \"),f=\"and break catch class continue delete do else extends false finally for if in instanceof isnt new no not null of off on or return switch then throw true try typeof until void while with yes\".split(\" \")});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/javascript-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){\"use strict\";var i=\"CodeMirror-hint\",e=\"CodeMirror-hint-active\";function n(t,i){this.cm=t,this.options=i,this.widget=null,this.debounce=0,this.tick=0,this.startPos=this.cm.getCursor(\"start\"),this.startLen=this.cm.getLine(this.startPos.line).length-this.cm.getSelection().length;var e=this;t.on(\"cursorActivity\",this.activityFunc=function(){e.cursorActivity()})}t.showHint=function(t,i,e){if(!i)return t.showHint(e);e&&e.async&&(i.async=!0);var n={hint:i};if(e)for(var o in e)n[o]=e[o];return t.showHint(n)},t.defineExtension(\"showHint\",function(i){i=function(t,i,e){var n=t.options.hintOptions,o={};for(var s in a)o[s]=a[s];if(n)for(var s in n)void 0!==n[s]&&(o[s]=n[s]);if(e)for(var s in e)void 0!==e[s]&&(o[s]=e[s]);o.hint.resolve&&(o.hint=o.hint.resolve(t,i));return o}(this,this.getCursor(\"start\"),i);var e=this.listSelections();if(!(e.length>1)){if(this.somethingSelected()){if(!i.hint.supportsSelection)return;for(var o=0;o<e.length;o++)if(e[o].head.line!=e[o].anchor.line)return}this.state.completionActive&&this.state.completionActive.close();var s=this.state.completionActive=new n(this,i);s.options.hint&&(t.signal(this,\"startCompletion\",this),s.update(!0))}});var o=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},s=window.cancelAnimationFrame||clearTimeout;function c(t){return\"string\"==typeof t?t:t.text}function r(t,i){for(;i&&i!=t;){if(\"LI\"===i.nodeName.toUpperCase()&&i.parentNode==t)return i;i=i.parentNode}}function h(n,o){this.completion=n,this.data=o,this.picked=!1;var s=this,h=n.cm,l=this.hints=document.createElement(\"ul\");l.className=\"CodeMirror-hints\",this.selectedHint=o.selectedHint||0;for(var a=o.list,u=0;u<a.length;++u){var f=l.appendChild(document.createElement(\"li\")),d=a[u],p=i+(u!=this.selectedHint?\"\":\" \"+e);null!=d.className&&(p=d.className+\" \"+p),f.className=p,d.render?d.render(f,o,d):f.appendChild(document.createTextNode(d.displayText||c(d))),f.hintId=u}var m=h.cursorCoords(n.options.alignWithWord?o.from:null),g=m.left,v=m.bottom,y=!0;l.style.left=g+\"px\",l.style.top=v+\"px\";var w=window.innerWidth||Math.max(document.body.offsetWidth,document.documentElement.offsetWidth),H=window.innerHeight||Math.max(document.body.offsetHeight,document.documentElement.offsetHeight);(n.options.container||document.body).appendChild(l);var k=l.getBoundingClientRect(),C=k.bottom-H,b=l.scrollHeight>l.clientHeight+1,x=h.getScrollInfo();if(C>0){var A=k.bottom-k.top;if(m.top-(m.bottom-k.top)-A>0)l.style.top=(v=m.top-A)+\"px\",y=!1;else if(A>H){l.style.height=H-5+\"px\",l.style.top=(v=m.bottom-k.top)+\"px\";var S=h.getCursor();o.from.ch!=S.ch&&(m=h.cursorCoords(S),l.style.left=(g=m.left)+\"px\",k=l.getBoundingClientRect())}}var T,M=k.right-w;if(M>0&&(k.right-k.left>w&&(l.style.width=w-5+\"px\",M-=k.right-k.left-w),l.style.left=(g=m.left-M)+\"px\"),b)for(var N=l.firstChild;N;N=N.nextSibling)N.style.paddingRight=h.display.nativeBarWidth+\"px\";(h.addKeyMap(this.keyMap=function(t,i){var e={Up:function(){i.moveFocus(-1)},Down:function(){i.moveFocus(1)},PageUp:function(){i.moveFocus(1-i.menuSize(),!0)},PageDown:function(){i.moveFocus(i.menuSize()-1,!0)},Home:function(){i.setFocus(0)},End:function(){i.setFocus(i.length-1)},Enter:i.pick,Tab:i.pick,Esc:i.close},n=t.options.customKeys,o=n?{}:e;function s(t,n){var s;s=\"string\"!=typeof n?function(t){return n(t,i)}:e.hasOwnProperty(n)?e[n]:n,o[t]=s}if(n)for(var c in n)n.hasOwnProperty(c)&&s(c,n[c]);var r=t.options.extraKeys;if(r)for(var c in r)r.hasOwnProperty(c)&&s(c,r[c]);return o}(n,{moveFocus:function(t,i){s.changeActive(s.selectedHint+t,i)},setFocus:function(t){s.changeActive(t)},menuSize:function(){return s.screenAmount()},length:a.length,close:function(){n.close()},pick:function(){s.pick()},data:o})),n.options.closeOnUnfocus)&&(h.on(\"blur\",this.onBlur=function(){T=setTimeout(function(){n.close()},100)}),h.on(\"focus\",this.onFocus=function(){clearTimeout(T)}));return h.on(\"scroll\",this.onScroll=function(){var t=h.getScrollInfo(),i=h.getWrapperElement().getBoundingClientRect(),e=v+x.top-t.top,o=e-(window.pageYOffset||(document.documentElement||document.body).scrollTop);if(y||(o+=l.offsetHeight),o<=i.top||o>=i.bottom)return n.close();l.style.top=e+\"px\",l.style.left=g+x.left-t.left+\"px\"}),t.on(l,\"dblclick\",function(t){var i=r(l,t.target||t.srcElement);i&&null!=i.hintId&&(s.changeActive(i.hintId),s.pick())}),t.on(l,\"click\",function(t){var i=r(l,t.target||t.srcElement);i&&null!=i.hintId&&(s.changeActive(i.hintId),n.options.completeOnSingleClick&&s.pick())}),t.on(l,\"mousedown\",function(){setTimeout(function(){h.focus()},20)}),t.signal(o,\"select\",a[this.selectedHint],l.childNodes[this.selectedHint]),!0}function l(t,i,e,n){if(t.async)t(i,n,e);else{var o=t(i,e);o&&o.then?o.then(n):n(o)}}n.prototype={close:function(){this.active()&&(this.cm.state.completionActive=null,this.tick=null,this.cm.off(\"cursorActivity\",this.activityFunc),this.widget&&this.data&&t.signal(this.data,\"close\"),this.widget&&this.widget.close(),t.signal(this.cm,\"endCompletion\",this.cm))},active:function(){return this.cm.state.completionActive==this},pick:function(i,e){var n=i.list[e];n.hint?n.hint(this.cm,i,n):this.cm.replaceRange(c(n),n.from||i.from,n.to||i.to,\"complete\"),t.signal(i,\"pick\",n),this.close()},cursorActivity:function(){this.debounce&&(s(this.debounce),this.debounce=0);var t=this.cm.getCursor(),i=this.cm.getLine(t.line);if(t.line!=this.startPos.line||i.length-t.ch!=this.startLen-this.startPos.ch||t.ch<this.startPos.ch||this.cm.somethingSelected()||t.ch&&this.options.closeCharacters.test(i.charAt(t.ch-1)))this.close();else{var e=this;this.debounce=o(function(){e.update()}),this.widget&&this.widget.disable()}},update:function(t){if(null!=this.tick){var i=this,e=++this.tick;l(this.options.hint,this.cm,this.options,function(n){i.tick==e&&i.finishUpdate(n,t)})}},finishUpdate:function(i,e){this.data&&t.signal(this.data,\"update\");var n=this.widget&&this.widget.picked||e&&this.options.completeSingle;this.widget&&this.widget.close(),this.data=i,i&&i.list.length&&(n&&1==i.list.length?this.pick(i,0):(this.widget=new h(this,i),t.signal(i,\"shown\")))}},h.prototype={close:function(){if(this.completion.widget==this){this.completion.widget=null,this.hints.parentNode.removeChild(this.hints),this.completion.cm.removeKeyMap(this.keyMap);var t=this.completion.cm;this.completion.options.closeOnUnfocus&&(t.off(\"blur\",this.onBlur),t.off(\"focus\",this.onFocus)),t.off(\"scroll\",this.onScroll)}},disable:function(){this.completion.cm.removeKeyMap(this.keyMap);var t=this;this.keyMap={Enter:function(){t.picked=!0}},this.completion.cm.addKeyMap(this.keyMap)},pick:function(){this.completion.pick(this.data,this.selectedHint)},changeActive:function(i,n){if(i>=this.data.list.length?i=n?this.data.list.length-1:0:i<0&&(i=n?0:this.data.list.length-1),this.selectedHint!=i){var o=this.hints.childNodes[this.selectedHint];o.className=o.className.replace(\" \"+e,\"\"),(o=this.hints.childNodes[this.selectedHint=i]).className+=\" \"+e,o.offsetTop<this.hints.scrollTop?this.hints.scrollTop=o.offsetTop-3:o.offsetTop+o.offsetHeight>this.hints.scrollTop+this.hints.clientHeight&&(this.hints.scrollTop=o.offsetTop+o.offsetHeight-this.hints.clientHeight+3),t.signal(this.data,\"select\",this.data.list[this.selectedHint],o)}},screenAmount:function(){return Math.floor(this.hints.clientHeight/this.hints.firstChild.offsetHeight)||1}},t.registerHelper(\"hint\",\"auto\",{resolve:function(i,e){var n,o=i.getHelpers(e,\"hint\");if(o.length){var s=function(t,i,e){var n=function(t,i){if(!t.somethingSelected())return i;for(var e=[],n=0;n<i.length;n++)i[n].supportsSelection&&e.push(i[n]);return e}(t,o);!function o(s){if(s==n.length)return i(null);l(n[s],t,e,function(t){t&&t.list.length>0?i(t):o(s+1)})}(0)};return s.async=!0,s.supportsSelection=!0,s}return(n=i.getHelper(i.getCursor(),\"hintWords\"))?function(i){return t.hint.fromList(i,{words:n})}:t.hint.anyword?function(i,e){return t.hint.anyword(i,e)}:function(){}}}),t.registerHelper(\"hint\",\"fromList\",function(i,e){var n,o=i.getCursor(),s=i.getTokenAt(o),c=t.Pos(o.line,s.start),r=o;s.start<o.ch&&/\\w/.test(s.string.charAt(o.ch-s.start-1))?n=s.string.substr(0,o.ch-s.start):(n=\"\",c=o);for(var h=[],l=0;l<e.words.length;l++){var a=e.words[l];a.slice(0,n.length)==n&&h.push(a)}if(h.length)return{list:h,from:c,to:r}}),t.commands.autocomplete=t.showHint;var a={hint:t.hint.auto,completeSingle:!0,alignWithWord:!0,closeCharacters:/[\\s()\\[\\]{};:>,]/,closeOnUnfocus:!0,completeOnSingleClick:!0,container:null,customKeys:null,extraKeys:null};t.defineOption(\"hintOptions\",null)});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.css": {
"text": ".CodeMirror-hints {\n position: absolute;\n z-index: 999;\n overflow: hidden;\n list-style: none;\n\n margin: 0;\n padding: 2px;\n\n -webkit-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n -moz-box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n box-shadow: 2px 3px 5px rgba(0,0,0,.2);\n border-radius: 3px;\n border: 1px solid silver;\n\n background: white;\n font-size: 90%;\n font-family: monospace;\n\n max-height: 20em;\n overflow-y: auto;\n}\n\n.CodeMirror-hint {\n margin: 0;\n padding: 0 4px;\n border-radius: 2px;\n white-space: pre;\n color: black;\n cursor: pointer;\n}\n\nli.CodeMirror-hint-active {\n background: #08f;\n color: white;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/show-hint.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror/addon/hint/xml-hint.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){\"use strict\";var e=t.Pos;t.registerHelper(\"hint\",\"xml\",function(r,s){var n=s&&s.schemaInfo,a=s&&s.quoteChar||'\"';if(n){var i=r.getCursor(),o=r.getTokenAt(i);o.end>i.ch&&(o.end=i.ch,o.string=o.string.slice(0,i.ch-o.start));var l=t.innerMode(r.getMode(),o.state);if(\"xml\"==l.mode.name){var f,g,c=[],h=!1,p=/\\btag\\b/.test(o.type)&&!/>$/.test(o.string),u=p&&/^\\w/.test(o.string);if(u){var d=r.getLine(i.line).slice(Math.max(0,o.start-2),o.start),m=/<\\/$/.test(d)?\"close\":/<$/.test(d)?\"open\":null;m&&(g=o.start-(\"close\"==m?2:1))}else p&&\"<\"==o.string?m=\"open\":p&&\"</\"==o.string&&(m=\"close\");if(!p&&!l.state.tagName||m){u&&(f=o.string),h=m;var v=l.state.context,y=v&&n[v.tagName],x=v?y&&y.children:n[\"!top\"];if(x&&\"close\"!=m)for(var O=0;O<x.length;++O)f&&0!=x[O].lastIndexOf(f,0)||c.push(\"<\"+x[O]);else if(\"close\"!=m)for(var b in n)!n.hasOwnProperty(b)||\"!top\"==b||\"!attrs\"==b||f&&0!=b.lastIndexOf(f,0)||c.push(\"<\"+b);v&&(!f||\"close\"==m&&0==v.tagName.lastIndexOf(f,0))&&c.push(\"</\"+v.tagName+\">\")}else{var w=(y=n[l.state.tagName])&&y.attrs,I=n[\"!attrs\"];if(!w&&!I)return;if(w){if(I){var P={};for(var A in I)I.hasOwnProperty(A)&&(P[A]=I[A]);for(var A in w)w.hasOwnProperty(A)&&(P[A]=w[A]);w=P}}else w=I;if(\"string\"==o.type||\"=\"==o.string){var M,N=(d=r.getRange(e(i.line,Math.max(0,i.ch-60)),e(i.line,\"string\"==o.type?o.start:o.end))).match(/([^\\s\\u00a0=<>\\\"\\']+)=$/);if(!N||!w.hasOwnProperty(N[1])||!(M=w[N[1]]))return;if(\"function\"==typeof M&&(M=M.call(this,r)),\"string\"==o.type){f=o.string;var $=0;/['\"]/.test(o.string.charAt(0))&&(a=o.string.charAt(0),f=o.string.slice(1),$++);var C=o.string.length;/['\"]/.test(o.string.charAt(C-1))&&(a=o.string.charAt(C-1),f=o.string.substr($,C-2)),h=!0}for(O=0;O<M.length;++O)f&&0!=M[O].lastIndexOf(f,0)||c.push(a+M[O]+a)}else for(var j in\"attribute\"==o.type&&(f=o.string,h=!0),w)!w.hasOwnProperty(j)||f&&0!=j.lastIndexOf(f,0)||c.push(j)}return{list:c,from:h?e(i.line,null==g?o.start:g):i,to:h?e(i.line,o.end):i}}}})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/hint/xml-hint.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-autocomplete/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-autocomplete/readme",
"text": "This plugin enhances the [[CodeMirror|http://codemirror.net]] text editor with Autocompletion functionality. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nIt adds Autocompletion for ''html'', ''javascript'' and ''xml'' and also for ''already present words'' within a text-editor instance\n\nThe ''Keyboard Shortcut'' for autocompletion is `Ctrl+Space`\n\n"
}
}
}
{
"tiddlers": {
"$:/config/codemirror/autoCloseBrackets": {
"title": "$:/config/codemirror/autoCloseBrackets",
"type": "bool",
"text": "true"
},
"$:/config/codemirror/matchBrackets": {
"title": "$:/config/codemirror/matchBrackets",
"type": "bool",
"text": "true\n"
},
"$:/plugins/tiddlywiki/codemirror/addon/edit/closebrackets.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){var t={pairs:\"()[]{}''\\\"\\\"\",triples:\"\",explode:\"[]{}\"},r=e.Pos;function n(e,r){return\"pairs\"==r&&\"string\"==typeof e?e:\"object\"==typeof e&&null!=e[r]?e[r]:t[r]}e.defineOption(\"autoCloseBrackets\",!1,function(t,r,o){o&&o!=e.Init&&(t.removeKeyMap(i),t.state.closeBrackets=null),r&&(a(n(r,\"pairs\")),t.state.closeBrackets=r,t.addKeyMap(i))});var i={Backspace:function(t){var i=s(t);if(!i||t.getOption(\"disableInput\"))return e.Pass;for(var a=n(i,\"pairs\"),o=t.listSelections(),c=0;c<o.length;c++){if(!o[c].empty())return e.Pass;var f=l(t,o[c].head);if(!f||a.indexOf(f)%2!=0)return e.Pass}for(var c=o.length-1;c>=0;c--){var h=o[c].head;t.replaceRange(\"\",r(h.line,h.ch-1),r(h.line,h.ch+1),\"+delete\")}},Enter:function(t){var r=s(t),i=r&&n(r,\"explode\");if(!i||t.getOption(\"disableInput\"))return e.Pass;for(var a=t.listSelections(),o=0;o<a.length;o++){if(!a[o].empty())return e.Pass;var c=l(t,a[o].head);if(!c||i.indexOf(c)%2!=0)return e.Pass}t.operation(function(){var e=t.lineSeparator()||\"\\n\";t.replaceSelection(e+e,null),t.execCommand(\"goCharLeft\"),a=t.listSelections();for(var r=0;r<a.length;r++){var n=a[r].head.line;t.indentLine(n,null,!0),t.indentLine(n+1,null,!0)}})}};function a(e){for(var t=0;t<e.length;t++){var r=e.charAt(t),n=\"'\"+r+\"'\";i[n]||(i[n]=o(r))}}function o(t){return function(i){return function(t,i){var a=s(t);if(!a||t.getOption(\"disableInput\"))return e.Pass;var o=n(a,\"pairs\"),l=o.indexOf(i);if(-1==l)return e.Pass;for(var c,f=n(a,\"triples\"),h=o.charAt(l+1)==i,d=t.listSelections(),u=l%2==0,g=0;g<d.length;g++){var p,v=d[g],m=v.head,b=t.getRange(m,r(m.line,m.ch+1));if(u&&!v.empty())p=\"surround\";else if(!h&&u||b!=i)if(h&&m.ch>1&&f.indexOf(i)>=0&&t.getRange(r(m.line,m.ch-2),m)==i+i){if(m.ch>2&&/\\bstring/.test(t.getTokenTypeAt(r(m.line,m.ch-2))))return e.Pass;p=\"addFour\"}else if(h){var C=0==m.ch?\" \":t.getRange(r(m.line,m.ch-1),m);if(e.isWordChar(b)||C==i||e.isWordChar(C))return e.Pass;p=\"both\"}else{if(!u||!(t.getLine(m.line).length==m.ch||(x=b,P=o,void 0,k=P.lastIndexOf(x),k>-1&&k%2==1)||/\\s/.test(b)))return e.Pass;p=\"both\"}else p=!h||(S=m,void 0,O=(y=t).getTokenAt(r(S.line,S.ch+1)),!/\\bstring/.test(O.type)||O.start!=S.ch||0!=S.ch&&/\\bstring/.test(y.getTokenTypeAt(S)))?f.indexOf(i)>=0&&t.getRange(m,r(m.line,m.ch+3))==i+i+i?\"skipThree\":\"skip\":\"both\";if(c){if(c!=p)return e.Pass}else c=p}var x,P,k;var y,S,O;var R=l%2?o.charAt(l-1):i,A=l%2?i:o.charAt(l+1);t.operation(function(){if(\"skip\"==c)t.execCommand(\"goCharRight\");else if(\"skipThree\"==c)for(var n=0;n<3;n++)t.execCommand(\"goCharRight\");else if(\"surround\"==c){for(var i=t.getSelections(),n=0;n<i.length;n++)i[n]=R+i[n]+A;t.replaceSelections(i,\"around\"),i=t.listSelections().slice();for(var n=0;n<i.length;n++)i[n]=(a=i[n],void 0,o=e.cmpPos(a.anchor,a.head)>0,{anchor:new r(a.anchor.line,a.anchor.ch+(o?-1:1)),head:new r(a.head.line,a.head.ch+(o?1:-1))});t.setSelections(i)}else\"both\"==c?(t.replaceSelection(R+A,null),t.triggerElectric(R+A),t.execCommand(\"goCharLeft\")):\"addFour\"==c&&(t.replaceSelection(R+R+R+R,\"before\"),t.execCommand(\"goCharRight\"));var a,o})}(i,t)}}function s(e){var t=e.state.closeBrackets;return!t||t.override?t:e.getModeAt(e.getCursor()).closeBrackets||t}function l(e,t){var n=e.getRange(r(t.line,t.ch-1),r(t.line,t.ch+1));return 2==n.length?n:null}a(t.pairs+\"`\")});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/edit/closebrackets.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/edit/matchbrackets.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){var e=/MSIE \\d/.test(navigator.userAgent)&&(null==document.documentMode||document.documentMode<8),n=t.Pos,r={\"(\":\")>\",\")\":\"(<\",\"[\":\"]>\",\"]\":\"[<\",\"{\":\"}>\",\"}\":\"{<\"};function i(t,e,i){var c=t.getLineHandle(e.line),o=e.ch-1,l=i&&i.afterCursor;null==l&&(l=/(^| )cm-fat-cursor($| )/.test(t.getWrapperElement().className));var h=!l&&o>=0&&r[c.text.charAt(o)]||r[c.text.charAt(++o)];if(!h)return null;var s=\">\"==h.charAt(1)?1:-1;if(i&&i.strict&&s>0!=(o==e.ch))return null;var u=t.getTokenTypeAt(n(e.line,o+1)),f=a(t,n(e.line,o+(s>0?1:0)),s,u||null,i);return null==f?null:{from:n(e.line,o),to:f&&f.pos,match:f&&f.ch==h.charAt(0),forward:s>0}}function a(t,e,i,a,c){for(var o=c&&c.maxScanLineLength||1e4,l=c&&c.maxScanLines||1e3,h=[],s=c&&c.bracketRegex?c.bracketRegex:/[(){}[\\]]/,u=i>0?Math.min(e.line+l,t.lastLine()+1):Math.max(t.firstLine()-1,e.line-l),f=e.line;f!=u;f+=i){var m=t.getLine(f);if(m){var g=i>0?0:m.length-1,d=i>0?m.length:-1;if(!(m.length>o))for(f==e.line&&(g=e.ch-(i<0?1:0));g!=d;g+=i){var k=m.charAt(g);if(s.test(k)&&(void 0===a||t.getTokenTypeAt(n(f,g+1))==a))if(\">\"==r[k].charAt(1)==i>0)h.push(k);else{if(!h.length)return{pos:n(f,g),ch:k};h.pop()}}}}return f-i!=(i>0?t.lastLine():t.firstLine())&&null}function c(t,r,a){for(var c=t.state.matchBrackets.maxHighlightLineLength||1e3,o=[],l=t.listSelections(),h=0;h<l.length;h++){var s=l[h].empty()&&i(t,l[h].head,a);if(s&&t.getLine(s.from.line).length<=c){var u=s.match?\"CodeMirror-matchingbracket\":\"CodeMirror-nonmatchingbracket\";o.push(t.markText(s.from,n(s.from.line,s.from.ch+1),{className:u})),s.to&&t.getLine(s.to.line).length<=c&&o.push(t.markText(s.to,n(s.to.line,s.to.ch+1),{className:u}))}}if(o.length){e&&t.state.focused&&t.focus();var f=function(){t.operation(function(){for(var t=0;t<o.length;t++)o[t].clear()})};if(!r)return f;setTimeout(f,800)}}function o(t){t.operation(function(){t.state.matchBrackets.currentlyHighlighted&&(t.state.matchBrackets.currentlyHighlighted(),t.state.matchBrackets.currentlyHighlighted=null),t.state.matchBrackets.currentlyHighlighted=c(t,!1,t.state.matchBrackets)})}t.defineOption(\"matchBrackets\",!1,function(e,n,r){r&&r!=t.Init&&(e.off(\"cursorActivity\",o),e.state.matchBrackets&&e.state.matchBrackets.currentlyHighlighted&&(e.state.matchBrackets.currentlyHighlighted(),e.state.matchBrackets.currentlyHighlighted=null)),n&&(e.state.matchBrackets=\"object\"==typeof n?n:{},e.on(\"cursorActivity\",o))}),t.defineExtension(\"matchBrackets\",function(){c(this,!0)}),t.defineExtension(\"findMatchingBracket\",function(t,e,n){return(n||\"boolean\"==typeof e)&&(n?(n.strict=e,e=n):e=e?{strict:!0}:null),i(this,t,e)}),t.defineExtension(\"scanForBracket\",function(t,e,n,r){return a(this,t,e,n,r)})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/edit/matchbrackets.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-closebrackets/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-closebrackets/readme",
"text": "This plugin adds the ability to automatically insert the closing brackets when you type an opening bracket.\nAlso enables highlighting of matching brackets.\n\nIt needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/config/codemirror/autoCloseTags": {
"title": "$:/config/codemirror/autoCloseTags",
"type": "bool",
"text": "true\n"
},
"$:/language/codemirror/autoCloseTags/hint": {
"title": "$:/language/codemirror/autoCloseTags/hint",
"text": "Auto-close tags"
},
"$:/language/codemirror/autoCloseTags/info": {
"title": "$:/language/codemirror/autoCloseTags/info",
"text": "Whether or not to automatically close tags"
},
"$:/plugins/tiddlywiki/codemirror/addon/fold/xml-fold.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";var n=e.Pos;function t(e,n){return e.line-n.line||e.ch-n.ch}var 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\",r=new RegExp(\"<(/?)([\"+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-:.0-9\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]*)\",\"g\");function u(e,n,t,i){this.line=n,this.ch=t,this.cm=e,this.text=e.getLine(n),this.min=i?Math.max(i.from,e.firstLine()):e.firstLine(),this.max=i?Math.min(i.to-1,e.lastLine()):e.lastLine()}function f(e,t){var i=e.cm.getTokenTypeAt(n(e.line,t));return i&&/\\btag\\b/.test(i)}function o(e){if(!(e.line>=e.max))return e.ch=0,e.text=e.cm.getLine(++e.line),!0}function l(e){if(!(e.line<=e.min))return e.text=e.cm.getLine(--e.line),e.ch=e.text.length,!0}function c(e){for(;;){var n=e.text.indexOf(\">\",e.ch);if(-1==n){if(o(e))continue;return}if(f(e,n+1)){var t=e.text.lastIndexOf(\"/\",n),i=t>-1&&!/\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\"selfClose\":\"regular\"}e.ch=n+1}}function a(e){for(;;){var n=e.ch?e.text.lastIndexOf(\"<\",e.ch-1):-1;if(-1==n){if(l(e))continue;return}if(f(e,n+1)){r.lastIndex=n,e.ch=n;var t=r.exec(e.text);if(t&&t.index==n)return t}else e.ch=n}}function s(e){for(;;){r.lastIndex=e.ch;var n=r.exec(e.text);if(!n){if(o(e))continue;return}if(f(e,n.index+1))return e.ch=n.index+n[0].length,n;e.ch=n.index+1}}function h(e){for(;;){var n=e.ch?e.text.lastIndexOf(\">\",e.ch-1):-1;if(-1==n){if(l(e))continue;return}if(f(e,n+1)){var t=e.text.lastIndexOf(\"/\",n),i=t>-1&&!/\\S/.test(e.text.slice(t+1,n));return e.ch=n+1,i?\"selfClose\":\"regular\"}e.ch=n}}function F(e,t){for(var i=[];;){var r,u=s(e),f=e.line,o=e.ch-(u?u[0].length:0);if(!u||!(r=c(e)))return;if(\"selfClose\"!=r)if(u[1]){for(var l=i.length-1;l>=0;--l)if(i[l]==u[2]){i.length=l;break}if(l<0&&(!t||t==u[2]))return{tag:u[2],from:n(f,o),to:n(e.line,e.ch)}}else i.push(u[2])}}function x(e,t){for(var i=[];;){var r=h(e);if(!r)return;if(\"selfClose\"!=r){var u=e.line,f=e.ch,o=a(e);if(!o)return;if(o[1])i.push(o[2]);else{for(var l=i.length-1;l>=0;--l)if(i[l]==o[2]){i.length=l;break}if(l<0&&(!t||t==o[2]))return{tag:o[2],from:n(e.line,e.ch),to:n(u,f)}}}else a(e)}}e.registerHelper(\"fold\",\"xml\",function(e,i){for(var r=new u(e,i.line,0);;){var f=s(r);if(!f||r.line!=i.line)return;var o=c(r);if(!o)return;if(!f[1]&&\"selfClose\"!=o){var l=n(r.line,r.ch),a=F(r,f[2]);return a&&t(a.from,l)>0?{from:l,to:a.from}:null}}}),e.findMatchingTag=function(e,i,r){var f=new u(e,i.line,i.ch,r);if(-1!=f.text.indexOf(\">\")||-1!=f.text.indexOf(\"<\")){var o=c(f),l=o&&n(f.line,f.ch),s=o&&a(f);if(o&&s&&!(t(f,i)>0)){var h={from:n(f.line,f.ch),to:l,tag:s[2]};return\"selfClose\"==o?{open:h,close:null,at:\"open\"}:s[1]?{open:x(f,s[2]),close:h,at:\"close\"}:{open:h,close:F(f=new u(e,l.line,l.ch,r),s[2]),at:\"open\"}}}},e.findEnclosingTag=function(e,n,t,i){for(var r=new u(e,n.line,n.ch,t);;){var f=x(r,i);if(!f)break;var o=F(new u(e,n.line,n.ch,t),f.tag);if(o)return{open:f,close:o}}},e.scanForClosingTag=function(e,n,t,i){return F(new u(e,n.line,n.ch,i?{from:0,to:i}:null),t)}});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/fold/xml-fold.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/edit/closetag.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../fold/xml-fold\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../fold/xml-fold\"],e):e(CodeMirror)}(function(e){e.defineOption(\"autoCloseTags\",!1,function(i,s,l){if(l!=e.Init&&l&&i.removeKeyMap(\"autoCloseTags\"),s){var d={name:\"autoCloseTags\"};(\"object\"!=typeof s||s.whenClosing)&&(d[\"'/'\"]=function(t){return(n=t).getOption(\"disableInput\")?e.Pass:o(n,!0);var n}),(\"object\"!=typeof s||s.whenOpening)&&(d[\"'>'\"]=function(o){return function(o){if(o.getOption(\"disableInput\"))return e.Pass;for(var i=o.listSelections(),s=[],l=o.getOption(\"autoCloseTags\"),d=0;d<i.length;d++){if(!i[d].empty())return e.Pass;var c=i[d].head,f=o.getTokenAt(c),g=e.innerMode(o.getMode(),f.state),u=g.state;if(\"xml\"!=g.mode.name||!u.tagName)return e.Pass;var m=\"html\"==g.mode.configuration,h=\"object\"==typeof l&&l.dontCloseTags||m&&t,p=\"object\"==typeof l&&l.indentTags||m&&n,v=u.tagName;f.end>c.ch&&(v=v.slice(0,v.length-f.end+c.ch));var b=v.toLowerCase();if(!v||\"string\"==f.type&&(f.end!=c.ch||!/[\\\"\\']/.test(f.string.charAt(f.string.length-1))||1==f.string.length)||\"tag\"==f.type&&\"closeTag\"==u.type||f.string.indexOf(\"/\")==f.string.length-1||h&&a(h,b)>-1||r(o,v,c,u,!0))return e.Pass;var y=p&&a(p,b)>-1;s[d]={indent:y,text:\">\"+(y?\"\\n\\n\":\"\")+\"</\"+v+\">\",newPos:y?e.Pos(c.line+1,0):e.Pos(c.line,c.ch+1)}}for(var x=\"object\"==typeof l&&l.dontIndentOnAutoClose,d=i.length-1;d>=0;d--){var P=s[d];o.replaceRange(P.text,i[d].head,i[d].anchor,\"+insert\");var T=o.listSelections().slice(0);T[d]={head:P.newPos,anchor:P.newPos},o.setSelections(T),!x&&P.indent&&(o.indentLine(P.newPos.line,null,!0),o.indentLine(P.newPos.line+1,null,!0))}}(o)}),i.addKeyMap(d)}});var t=[\"area\",\"base\",\"br\",\"col\",\"command\",\"embed\",\"hr\",\"img\",\"input\",\"keygen\",\"link\",\"meta\",\"param\",\"source\",\"track\",\"wbr\"],n=[\"applet\",\"blockquote\",\"body\",\"button\",\"div\",\"dl\",\"fieldset\",\"form\",\"frameset\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"head\",\"html\",\"iframe\",\"layer\",\"legend\",\"object\",\"ol\",\"p\",\"select\",\"table\",\"ul\"];function o(t,n){for(var o=t.listSelections(),a=[],i=n?\"/\":\"</\",s=t.getOption(\"autoCloseTags\"),l=\"object\"==typeof s&&s.dontIndentOnSlash,d=0;d<o.length;d++){if(!o[d].empty())return e.Pass;var c,f=o[d].head,g=t.getTokenAt(f),u=e.innerMode(t.getMode(),g.state),m=u.state;if(n&&(\"string\"==g.type||\"<\"!=g.string.charAt(0)||g.start!=f.ch-1))return e.Pass;if(\"xml\"!=u.mode.name)if(\"htmlmixed\"==t.getMode().name&&\"javascript\"==u.mode.name)c=i+\"script\";else{if(\"htmlmixed\"!=t.getMode().name||\"css\"!=u.mode.name)return e.Pass;c=i+\"style\"}else{if(!m.context||!m.context.tagName||r(t,m.context.tagName,f,m))return e.Pass;c=i+m.context.tagName}\">\"!=t.getLine(f.line).charAt(g.end)&&(c+=\">\"),a[d]=c}if(t.replaceSelections(a),o=t.listSelections(),!l)for(d=0;d<o.length;d++)(d==o.length-1||o[d].head.line<o[d+1].head.line)&&t.indentLine(o[d].head.line)}function a(e,t){if(e.indexOf)return e.indexOf(t);for(var n=0,o=e.length;n<o;++n)if(e[n]==t)return n;return-1}function r(t,n,o,a,r){if(!e.scanForClosingTag)return!1;var i=Math.min(t.lastLine()+1,o.line+500),s=e.scanForClosingTag(t,o,null,i);if(!s||s.tag!=n)return!1;for(var l=a.context,d=r?1:0;l&&l.tagName==n;l=l.prev)++d;o=s.to;for(var c=1;c<d;c++){var f=e.scanForClosingTag(t,o,null,i);if(!f||f.tag!=n)return!1;o=f.to}return!0}e.commands.closeTag=function(e){return o(e)}});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/edit/closetag.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-closetag/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-closetag/readme",
"text": "This plugin adds the ability to ''automatically close Tags''. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n\n"
},
"$:/core/ui/ControlPanel/Settings/codemirror/autoCloseTags": {
"title": "$:/core/ui/ControlPanel/Settings/codemirror/autoCloseTags",
"tags": "$:/tags/ControlPanel/Settings/CodeMirror",
"caption": "{{$:/language/codemirror/autoCloseTags/hint}}",
"text": "\\define lingo-base() $:/language/codemirror/autoCloseTags/\n<<lingo hint>>\n\n<$checkbox tiddler=\"$:/config/codemirror/autoCloseTags\" field=\"text\" checked=\"true\" unchecked=\"false\" default=\"true\"> <$link to=\"$:/config/codemirror/autoCloseTags\"><<lingo info>></$link> </$checkbox>\n\n"
}
}
}
{
"tiddlers": {
"$:/config/codemirror/fullscreen": {
"title": "$:/config/codemirror/fullscreen",
"extend": "extraKeys",
"type": "json",
"text": "{\n\t\"F11\": \"togglefullscreen\"\n}"
},
"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.defineOption(\"fullScreen\",!1,function(t,l,o){var r,n;(o==e.Init&&(o=!1),!o!=!l)&&(l?(n=(r=t).getWrapperElement(),r.state.fullScreenRestore={scrollTop:window.pageYOffset,scrollLeft:window.pageXOffset,width:n.style.width,height:n.style.height},n.style.width=\"\",n.style.height=\"auto\",n.className+=\" CodeMirror-fullscreen\",document.documentElement.style.overflow=\"hidden\",r.refresh()):function(e){var t=e.getWrapperElement();t.className=t.className.replace(/\\s*CodeMirror-fullscreen\\b/,\"\"),document.documentElement.style.overflow=\"\";var l=e.state.fullScreenRestore;t.style.width=l.width,t.style.height=l.height,window.scrollTo(l.scrollLeft,l.scrollTop),e.refresh()}(t))}),e.toggleFullscreen=function(e){e.setOption(\"fullScreen\",!e.getOption(\"fullScreen\"))},e.commands.togglefullscreen=e.toggleFullscreen});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css": {
"text": ".CodeMirror-fullscreen {\n position: fixed;\n top: 0; left: 0; right: 0; bottom: 0;\n height: auto;\n z-index: 9;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/codemirror/addon/fullscreen/fullscreen.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/codemirror-fullscreen/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-fullscreen/readme",
"text": "This plugin adds a ''Fullscreen editing Mode'' to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nPressing ''F11'' with the focus within the editor-textarea will make the editor go fullscreen, pressing ''F11'' again leaves fullscreen-mode\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/mode/css/css.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";function t(e){for(var t={},r=0;r<e.length;++r)t[e[r].toLowerCase()]=!0;return t}e.defineMode(\"css\",function(t,r){var o=r.inline;r.propertyKeywords||(r=e.resolveMode(\"text/css\"));var i,a,n=t.indentUnit,l=r.tokenHooks,s=r.documentTypes||{},c=r.mediaTypes||{},d=r.mediaFeatures||{},p=r.mediaValueKeywords||{},u=r.propertyKeywords||{},m=r.nonStandardPropertyKeywords||{},h=r.fontProperties||{},g=r.counterDescriptors||{},b=r.colorKeywords||{},f=r.valueKeywords||{},y=r.allowNested,w=r.lineComment,k=!0===r.supportsAtComponent;function v(e,t){return i=t,e}function x(e){return function(t,r){for(var o,i=!1;null!=(o=t.next());){if(o==e&&!i){\")\"==e&&t.backUp(1);break}i=!i&&\"\\\\\"==o}return(o==e||!i&&\")\"!=e)&&(r.tokenize=null),v(\"string\",\"string\")}}function z(e,t){return e.next(),e.match(/\\s*[\\\"\\')]/,!1)?t.tokenize=null:t.tokenize=x(\")\"),v(null,\"(\")}function j(e,t,r){this.type=e,this.indent=t,this.prev=r}function q(e,t,r,o){return e.context=new j(r,t.indentation()+(!1===o?0:n),e.context),r}function P(e){return e.context.prev&&(e.context=e.context.prev),e.context.type}function K(e,t,r){return T[r.context.type](e,t,r)}function C(e,t,r,o){for(var i=o||1;i>0;i--)r.context=r.context.prev;return K(e,t,r)}function B(e){var t=e.current().toLowerCase();a=f.hasOwnProperty(t)?\"atom\":b.hasOwnProperty(t)?\"keyword\":\"variable\"}var T={top:function(e,t,r){if(\"{\"==e)return q(r,t,\"block\");if(\"}\"==e&&r.context.prev)return P(r);if(k&&/@component/i.test(e))return q(r,t,\"atComponentBlock\");if(/^@(-moz-)?document$/i.test(e))return q(r,t,\"documentTypes\");if(/^@(media|supports|(-moz-)?document|import)$/i.test(e))return q(r,t,\"atBlock\");if(/^@(font-face|counter-style)/i.test(e))return r.stateArg=e,\"restricted_atBlock_before\";if(/^@(-(moz|ms|o|webkit)-)?keyframes$/i.test(e))return\"keyframes\";if(e&&\"@\"==e.charAt(0))return q(r,t,\"at\");if(\"hash\"==e)a=\"builtin\";else if(\"word\"==e)a=\"tag\";else{if(\"variable-definition\"==e)return\"maybeprop\";if(\"interpolation\"==e)return q(r,t,\"interpolation\");if(\":\"==e)return\"pseudo\";if(y&&\"(\"==e)return q(r,t,\"parens\")}return r.context.type},block:function(e,t,r){if(\"word\"==e){var o=t.current().toLowerCase();return u.hasOwnProperty(o)?(a=\"property\",\"maybeprop\"):m.hasOwnProperty(o)?(a=\"string-2\",\"maybeprop\"):y?(a=t.match(/^\\s*:(?:\\s|$)/,!1)?\"property\":\"tag\",\"block\"):(a+=\" error\",\"maybeprop\")}return\"meta\"==e?\"block\":y||\"hash\"!=e&&\"qualifier\"!=e?T.top(e,t,r):(a=\"error\",\"block\")},maybeprop:function(e,t,r){return\":\"==e?q(r,t,\"prop\"):K(e,t,r)},prop:function(e,t,r){if(\";\"==e)return P(r);if(\"{\"==e&&y)return q(r,t,\"propBlock\");if(\"}\"==e||\"{\"==e)return C(e,t,r);if(\"(\"==e)return q(r,t,\"parens\");if(\"hash\"!=e||/^#([0-9a-fA-f]{3,4}|[0-9a-fA-f]{6}|[0-9a-fA-f]{8})$/.test(t.current())){if(\"word\"==e)B(t);else if(\"interpolation\"==e)return q(r,t,\"interpolation\")}else a+=\" error\";return\"prop\"},propBlock:function(e,t,r){return\"}\"==e?P(r):\"word\"==e?(a=\"property\",\"maybeprop\"):r.context.type},parens:function(e,t,r){return\"{\"==e||\"}\"==e?C(e,t,r):\")\"==e?P(r):\"(\"==e?q(r,t,\"parens\"):\"interpolation\"==e?q(r,t,\"interpolation\"):(\"word\"==e&&B(t),\"parens\")},pseudo:function(e,t,r){return\"meta\"==e?\"pseudo\":\"word\"==e?(a=\"variable-3\",r.context.type):K(e,t,r)},documentTypes:function(e,t,r){return\"word\"==e&&s.hasOwnProperty(t.current())?(a=\"tag\",r.context.type):T.atBlock(e,t,r)},atBlock:function(e,t,r){if(\"(\"==e)return q(r,t,\"atBlock_parens\");if(\"}\"==e||\";\"==e)return C(e,t,r);if(\"{\"==e)return P(r)&&q(r,t,y?\"block\":\"top\");if(\"interpolation\"==e)return q(r,t,\"interpolation\");if(\"word\"==e){var o=t.current().toLowerCase();a=\"only\"==o||\"not\"==o||\"and\"==o||\"or\"==o?\"keyword\":c.hasOwnProperty(o)?\"attribute\":d.hasOwnProperty(o)?\"property\":p.hasOwnProperty(o)?\"keyword\":u.hasOwnProperty(o)?\"property\":m.hasOwnProperty(o)?\"string-2\":f.hasOwnProperty(o)?\"atom\":b.hasOwnProperty(o)?\"keyword\":\"error\"}return r.context.type},atComponentBlock:function(e,t,r){return\"}\"==e?C(e,t,r):\"{\"==e?P(r)&&q(r,t,y?\"block\":\"top\",!1):(\"word\"==e&&(a=\"error\"),r.context.type)},atBlock_parens:function(e,t,r){return\")\"==e?P(r):\"{\"==e||\"}\"==e?C(e,t,r,2):T.atBlock(e,t,r)},restricted_atBlock_before:function(e,t,r){return\"{\"==e?q(r,t,\"restricted_atBlock\"):\"word\"==e&&\"@counter-style\"==r.stateArg?(a=\"variable\",\"restricted_atBlock_before\"):K(e,t,r)},restricted_atBlock:function(e,t,r){return\"}\"==e?(r.stateArg=null,P(r)):\"word\"==e?(a=\"@font-face\"==r.stateArg&&!h.hasOwnProperty(t.current().toLowerCase())||\"@counter-style\"==r.stateArg&&!g.hasOwnProperty(t.current().toLowerCase())?\"error\":\"property\",\"maybeprop\"):\"restricted_atBlock\"},keyframes:function(e,t,r){return\"word\"==e?(a=\"variable\",\"keyframes\"):\"{\"==e?q(r,t,\"top\"):K(e,t,r)},at:function(e,t,r){return\";\"==e?P(r):\"{\"==e||\"}\"==e?C(e,t,r):(\"word\"==e?a=\"tag\":\"hash\"==e&&(a=\"builtin\"),\"at\")},interpolation:function(e,t,r){return\"}\"==e?P(r):\"{\"==e||\";\"==e?C(e,t,r):(\"word\"==e?a=\"variable\":\"variable\"!=e&&\"(\"!=e&&\")\"!=e&&(a=\"error\"),\"interpolation\")}};return{startState:function(e){return{tokenize:null,state:o?\"block\":\"top\",stateArg:null,context:new j(o?\"block\":\"top\",e||0,null)}},token:function(e,t){if(!t.tokenize&&e.eatSpace())return null;var r=(t.tokenize||function(e,t){var r=e.next();if(l[r]){var o=l[r](e,t);if(!1!==o)return o}return\"@\"==r?(e.eatWhile(/[\\w\\\\\\-]/),v(\"def\",e.current())):\"=\"==r||(\"~\"==r||\"|\"==r)&&e.eat(\"=\")?v(null,\"compare\"):'\"'==r||\"'\"==r?(t.tokenize=x(r),t.tokenize(e,t)):\"#\"==r?(e.eatWhile(/[\\w\\\\\\-]/),v(\"atom\",\"hash\")):\"!\"==r?(e.match(/^\\s*\\w*/),v(\"keyword\",\"important\")):/\\d/.test(r)||\".\"==r&&e.eat(/\\d/)?(e.eatWhile(/[\\w.%]/),v(\"number\",\"unit\")):\"-\"!==r?/[,+>*\\/]/.test(r)?v(null,\"select-op\"):\".\"==r&&e.match(/^-?[_a-z][_a-z0-9-]*/i)?v(\"qualifier\",\"qualifier\"):/[:;{}\\[\\]\\(\\)]/.test(r)?v(null,r):(\"u\"==r||\"U\"==r)&&e.match(/rl(-prefix)?\\(/i)||(\"d\"==r||\"D\"==r)&&e.match(\"omain(\",!0,!0)||(\"r\"==r||\"R\"==r)&&e.match(\"egexp(\",!0,!0)?(e.backUp(1),t.tokenize=z,v(\"property\",\"word\")):/[\\w\\\\\\-]/.test(r)?(e.eatWhile(/[\\w\\\\\\-]/),v(\"property\",\"word\")):v(null,null):/[\\d.]/.test(e.peek())?(e.eatWhile(/[\\w.%]/),v(\"number\",\"unit\")):e.match(/^-[\\w\\\\\\-]+/)?(e.eatWhile(/[\\w\\\\\\-]/),e.match(/^\\s*:/,!1)?v(\"variable-2\",\"variable-definition\"):v(\"variable-2\",\"variable\")):e.match(/^\\w+-/)?v(\"meta\",\"meta\"):void 0})(e,t);return r&&\"object\"==typeof r&&(i=r[1],r=r[0]),a=r,\"comment\"!=i&&(t.state=T[t.state](i,e,t)),a},indent:function(e,t){var r=e.context,o=t&&t.charAt(0),i=r.indent;return\"prop\"!=r.type||\"}\"!=o&&\")\"!=o||(r=r.prev),r.prev&&(\"}\"!=o||\"block\"!=r.type&&\"top\"!=r.type&&\"interpolation\"!=r.type&&\"restricted_atBlock\"!=r.type?(\")\"!=o||\"parens\"!=r.type&&\"atBlock_parens\"!=r.type)&&(\"{\"!=o||\"at\"!=r.type&&\"atBlock\"!=r.type)||(i=Math.max(0,r.indent-n)):i=(r=r.prev).indent),i},electricChars:\"}\",blockCommentStart:\"/*\",blockCommentEnd:\"*/\",blockCommentContinue:\" * \",lineComment:w,fold:\"brace\"}});var r=[\"domain\",\"regexp\",\"url\",\"url-prefix\"],o=t(r),i=[\"all\",\"aural\",\"braille\",\"handheld\",\"print\",\"projection\",\"screen\",\"tty\",\"tv\",\"embossed\"],a=t(i),n=[\"width\",\"min-width\",\"max-width\",\"height\",\"min-height\",\"max-height\",\"device-width\",\"min-device-width\",\"max-device-width\",\"device-height\",\"min-device-height\",\"max-device-height\",\"aspect-ratio\",\"min-aspect-ratio\",\"max-aspect-ratio\",\"device-aspect-ratio\",\"min-device-aspect-ratio\",\"max-device-aspect-ratio\",\"color\",\"min-color\",\"max-color\",\"color-index\",\"min-color-index\",\"max-color-index\",\"monochrome\",\"min-monochrome\",\"max-monochrome\",\"resolution\",\"min-resolution\",\"max-resolution\",\"scan\",\"grid\",\"orientation\",\"device-pixel-ratio\",\"min-device-pixel-ratio\",\"max-device-pixel-ratio\",\"pointer\",\"any-pointer\",\"hover\",\"any-hover\"],l=t(n),s=[\"landscape\",\"portrait\",\"none\",\"coarse\",\"fine\",\"on-demand\",\"hover\",\"interlace\",\"progressive\"],c=t(s),d=[\"align-content\",\"align-items\",\"align-self\",\"alignment-adjust\",\"alignment-baseline\",\"anchor-point\",\"animation\",\"animation-delay\",\"animation-direction\",\"animation-duration\",\"animation-fill-mode\",\"animation-iteration-count\",\"animation-name\",\"animation-play-state\",\"animation-timing-function\",\"appearance\",\"azimuth\",\"backface-visibility\",\"background\",\"background-attachment\",\"background-blend-mode\",\"background-clip\",\"background-color\",\"background-image\",\"background-origin\",\"background-position\",\"background-repeat\",\"background-size\",\"baseline-shift\",\"binding\",\"bleed\",\"bookmark-label\",\"bookmark-level\",\"bookmark-state\",\"bookmark-target\",\"border\",\"border-bottom\",\"border-bottom-color\",\"border-bottom-left-radius\",\"border-bottom-right-radius\",\"border-bottom-style\",\"border-bottom-width\",\"border-collapse\",\"border-color\",\"border-image\",\"border-image-outset\",\"border-image-repeat\",\"border-image-slice\",\"border-image-source\",\"border-image-width\",\"border-left\",\"border-left-color\",\"border-left-style\",\"border-left-width\",\"border-radius\",\"border-right\",\"border-right-color\",\"border-right-style\",\"border-right-width\",\"border-spacing\",\"border-style\",\"border-top\",\"border-top-color\",\"border-top-left-radius\",\"border-top-right-radius\",\"border-top-style\",\"border-top-width\",\"border-width\",\"bottom\",\"box-decoration-break\",\"box-shadow\",\"box-sizing\",\"break-after\",\"break-before\",\"break-inside\",\"caption-side\",\"caret-color\",\"clear\",\"clip\",\"color\",\"color-profile\",\"column-count\",\"column-fill\",\"column-gap\",\"column-rule\",\"column-rule-color\",\"column-rule-style\",\"column-rule-width\",\"column-span\",\"column-width\",\"columns\",\"content\",\"counter-increment\",\"counter-reset\",\"crop\",\"cue\",\"cue-after\",\"cue-before\",\"cursor\",\"direction\",\"display\",\"dominant-baseline\",\"drop-initial-after-adjust\",\"drop-initial-after-align\",\"drop-initial-before-adjust\",\"drop-initial-before-align\",\"drop-initial-size\",\"drop-initial-value\",\"elevation\",\"empty-cells\",\"fit\",\"fit-position\",\"flex\",\"flex-basis\",\"flex-direction\",\"flex-flow\",\"flex-grow\",\"flex-shrink\",\"flex-wrap\",\"float\",\"float-offset\",\"flow-from\",\"flow-into\",\"font\",\"font-feature-settings\",\"font-family\",\"font-kerning\",\"font-language-override\",\"font-size\",\"font-size-adjust\",\"font-stretch\",\"font-style\",\"font-synthesis\",\"font-variant\",\"font-variant-alternates\",\"font-variant-caps\",\"font-variant-east-asian\",\"font-variant-ligatures\",\"font-variant-numeric\",\"font-variant-position\",\"font-weight\",\"grid\",\"grid-area\",\"grid-auto-columns\",\"grid-auto-flow\",\"grid-auto-rows\",\"grid-column\",\"grid-column-end\",\"grid-column-gap\",\"grid-column-start\",\"grid-gap\",\"grid-row\",\"grid-row-end\",\"grid-row-gap\",\"grid-row-start\",\"grid-template\",\"grid-template-areas\",\"grid-template-columns\",\"grid-template-rows\",\"hanging-punctuation\",\"height\",\"hyphens\",\"icon\",\"image-orientation\",\"image-rendering\",\"image-resolution\",\"inline-box-align\",\"justify-content\",\"justify-items\",\"justify-self\",\"left\",\"letter-spacing\",\"line-break\",\"line-height\",\"line-stacking\",\"line-stacking-ruby\",\"line-stacking-shift\",\"line-stacking-strategy\",\"list-style\",\"list-style-image\",\"list-style-position\",\"list-style-type\",\"margin\",\"margin-bottom\",\"margin-left\",\"margin-right\",\"margin-top\",\"marks\",\"marquee-direction\",\"marquee-loop\",\"marquee-play-count\",\"marquee-speed\",\"marquee-style\",\"max-height\",\"max-width\",\"min-height\",\"min-width\",\"move-to\",\"nav-down\",\"nav-index\",\"nav-left\",\"nav-right\",\"nav-up\",\"object-fit\",\"object-position\",\"opacity\",\"order\",\"orphans\",\"outline\",\"outline-color\",\"outline-offset\",\"outline-style\",\"outline-width\",\"overflow\",\"overflow-style\",\"overflow-wrap\",\"overflow-x\",\"overflow-y\",\"padding\",\"padding-bottom\",\"padding-left\",\"padding-right\",\"padding-top\",\"page\",\"page-break-after\",\"page-break-before\",\"page-break-inside\",\"page-policy\",\"pause\",\"pause-after\",\"pause-before\",\"perspective\",\"perspective-origin\",\"pitch\",\"pitch-range\",\"place-content\",\"place-items\",\"place-self\",\"play-during\",\"position\",\"presentation-level\",\"punctuation-trim\",\"quotes\",\"region-break-after\",\"region-break-before\",\"region-break-inside\",\"region-fragment\",\"rendering-intent\",\"resize\",\"rest\",\"rest-after\",\"rest-before\",\"richness\",\"right\",\"rotation\",\"rotation-point\",\"ruby-align\",\"ruby-overhang\",\"ruby-position\",\"ruby-span\",\"shape-image-threshold\",\"shape-inside\",\"shape-margin\",\"shape-outside\",\"size\",\"speak\",\"speak-as\",\"speak-header\",\"speak-numeral\",\"speak-punctuation\",\"speech-rate\",\"stress\",\"string-set\",\"tab-size\",\"table-layout\",\"target\",\"target-name\",\"target-new\",\"target-position\",\"text-align\",\"text-align-last\",\"text-decoration\",\"text-decoration-color\",\"text-decoration-line\",\"text-decoration-skip\",\"text-decoration-style\",\"text-emphasis\",\"text-emphasis-color\",\"text-emphasis-position\",\"text-emphasis-style\",\"text-height\",\"text-indent\",\"text-justify\",\"text-outline\",\"text-overflow\",\"text-shadow\",\"text-size-adjust\",\"text-space-collapse\",\"text-transform\",\"text-underline-position\",\"text-wrap\",\"top\",\"transform\",\"transform-origin\",\"transform-style\",\"transition\",\"transition-delay\",\"transition-duration\",\"transition-property\",\"transition-timing-function\",\"unicode-bidi\",\"user-select\",\"vertical-align\",\"visibility\",\"voice-balance\",\"voice-duration\",\"voice-family\",\"voice-pitch\",\"voice-range\",\"voice-rate\",\"voice-stress\",\"voice-volume\",\"volume\",\"white-space\",\"widows\",\"width\",\"will-change\",\"word-break\",\"word-spacing\",\"word-wrap\",\"z-index\",\"clip-path\",\"clip-rule\",\"mask\",\"enable-background\",\"filter\",\"flood-color\",\"flood-opacity\",\"lighting-color\",\"stop-color\",\"stop-opacity\",\"pointer-events\",\"color-interpolation\",\"color-interpolation-filters\",\"color-rendering\",\"fill\",\"fill-opacity\",\"fill-rule\",\"image-rendering\",\"marker\",\"marker-end\",\"marker-mid\",\"marker-start\",\"shape-rendering\",\"stroke\",\"stroke-dasharray\",\"stroke-dashoffset\",\"stroke-linecap\",\"stroke-linejoin\",\"stroke-miterlimit\",\"stroke-opacity\",\"stroke-width\",\"text-rendering\",\"baseline-shift\",\"dominant-baseline\",\"glyph-orientation-horizontal\",\"glyph-orientation-vertical\",\"text-anchor\",\"writing-mode\"],p=t(d),u=[\"scrollbar-arrow-color\",\"scrollbar-base-color\",\"scrollbar-dark-shadow-color\",\"scrollbar-face-color\",\"scrollbar-highlight-color\",\"scrollbar-shadow-color\",\"scrollbar-3d-light-color\",\"scrollbar-track-color\",\"shape-inside\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"zoom\"],m=t(u),h=t([\"font-family\",\"src\",\"unicode-range\",\"font-variant\",\"font-feature-settings\",\"font-stretch\",\"font-weight\",\"font-style\"]),g=t([\"additive-symbols\",\"fallback\",\"negative\",\"pad\",\"prefix\",\"range\",\"speak-as\",\"suffix\",\"symbols\",\"system\"]),b=[\"aliceblue\",\"antiquewhite\",\"aqua\",\"aquamarine\",\"azure\",\"beige\",\"bisque\",\"black\",\"blanchedalmond\",\"blue\",\"blueviolet\",\"brown\",\"burlywood\",\"cadetblue\",\"chartreuse\",\"chocolate\",\"coral\",\"cornflowerblue\",\"cornsilk\",\"crimson\",\"cyan\",\"darkblue\",\"darkcyan\",\"darkgoldenrod\",\"darkgray\",\"darkgreen\",\"darkkhaki\",\"darkmagenta\",\"darkolivegreen\",\"darkorange\",\"darkorchid\",\"darkred\",\"darksalmon\",\"darkseagreen\",\"darkslateblue\",\"darkslategray\",\"darkturquoise\",\"darkviolet\",\"deeppink\",\"deepskyblue\",\"dimgray\",\"dodgerblue\",\"firebrick\",\"floralwhite\",\"forestgreen\",\"fuchsia\",\"gainsboro\",\"ghostwhite\",\"gold\",\"goldenrod\",\"gray\",\"grey\",\"green\",\"greenyellow\",\"honeydew\",\"hotpink\",\"indianred\",\"indigo\",\"ivory\",\"khaki\",\"lavender\",\"lavenderblush\",\"lawngreen\",\"lemonchiffon\",\"lightblue\",\"lightcoral\",\"lightcyan\",\"lightgoldenrodyellow\",\"lightgray\",\"lightgreen\",\"lightpink\",\"lightsalmon\",\"lightseagreen\",\"lightskyblue\",\"lightslategray\",\"lightsteelblue\",\"lightyellow\",\"lime\",\"limegreen\",\"linen\",\"magenta\",\"maroon\",\"mediumaquamarine\",\"mediumblue\",\"mediumorchid\",\"mediumpurple\",\"mediumseagreen\",\"mediumslateblue\",\"mediumspringgreen\",\"mediumturquoise\",\"mediumvioletred\",\"midnightblue\",\"mintcream\",\"mistyrose\",\"moccasin\",\"navajowhite\",\"navy\",\"oldlace\",\"olive\",\"olivedrab\",\"orange\",\"orangered\",\"orchid\",\"palegoldenrod\",\"palegreen\",\"paleturquoise\",\"palevioletred\",\"papayawhip\",\"peachpuff\",\"peru\",\"pink\",\"plum\",\"powderblue\",\"purple\",\"rebeccapurple\",\"red\",\"rosybrown\",\"royalblue\",\"saddlebrown\",\"salmon\",\"sandybrown\",\"seagreen\",\"seashell\",\"sienna\",\"silver\",\"skyblue\",\"slateblue\",\"slategray\",\"snow\",\"springgreen\",\"steelblue\",\"tan\",\"teal\",\"thistle\",\"tomato\",\"turquoise\",\"violet\",\"wheat\",\"white\",\"whitesmoke\",\"yellow\",\"yellowgreen\"],f=t(b),y=[\"above\",\"absolute\",\"activeborder\",\"additive\",\"activecaption\",\"afar\",\"after-white-space\",\"ahead\",\"alias\",\"all\",\"all-scroll\",\"alphabetic\",\"alternate\",\"always\",\"amharic\",\"amharic-abegede\",\"antialiased\",\"appworkspace\",\"arabic-indic\",\"armenian\",\"asterisks\",\"attr\",\"auto\",\"auto-flow\",\"avoid\",\"avoid-column\",\"avoid-page\",\"avoid-region\",\"background\",\"backwards\",\"baseline\",\"below\",\"bidi-override\",\"binary\",\"bengali\",\"blink\",\"block\",\"block-axis\",\"bold\",\"bolder\",\"border\",\"border-box\",\"both\",\"bottom\",\"break\",\"break-all\",\"break-word\",\"bullets\",\"button\",\"button-bevel\",\"buttonface\",\"buttonhighlight\",\"buttonshadow\",\"buttontext\",\"calc\",\"cambodian\",\"capitalize\",\"caps-lock-indicator\",\"caption\",\"captiontext\",\"caret\",\"cell\",\"center\",\"checkbox\",\"circle\",\"cjk-decimal\",\"cjk-earthly-branch\",\"cjk-heavenly-stem\",\"cjk-ideographic\",\"clear\",\"clip\",\"close-quote\",\"col-resize\",\"collapse\",\"color\",\"color-burn\",\"color-dodge\",\"column\",\"column-reverse\",\"compact\",\"condensed\",\"contain\",\"content\",\"contents\",\"content-box\",\"context-menu\",\"continuous\",\"copy\",\"counter\",\"counters\",\"cover\",\"crop\",\"cross\",\"crosshair\",\"currentcolor\",\"cursive\",\"cyclic\",\"darken\",\"dashed\",\"decimal\",\"decimal-leading-zero\",\"default\",\"default-button\",\"dense\",\"destination-atop\",\"destination-in\",\"destination-out\",\"destination-over\",\"devanagari\",\"difference\",\"disc\",\"discard\",\"disclosure-closed\",\"disclosure-open\",\"document\",\"dot-dash\",\"dot-dot-dash\",\"dotted\",\"double\",\"down\",\"e-resize\",\"ease\",\"ease-in\",\"ease-in-out\",\"ease-out\",\"element\",\"ellipse\",\"ellipsis\",\"embed\",\"end\",\"ethiopic\",\"ethiopic-abegede\",\"ethiopic-abegede-am-et\",\"ethiopic-abegede-gez\",\"ethiopic-abegede-ti-er\",\"ethiopic-abegede-ti-et\",\"ethiopic-halehame-aa-er\",\"ethiopic-halehame-aa-et\",\"ethiopic-halehame-am-et\",\"ethiopic-halehame-gez\",\"ethiopic-halehame-om-et\",\"ethiopic-halehame-sid-et\",\"ethiopic-halehame-so-et\",\"ethiopic-halehame-ti-er\",\"ethiopic-halehame-ti-et\",\"ethiopic-halehame-tig\",\"ethiopic-numeric\",\"ew-resize\",\"exclusion\",\"expanded\",\"extends\",\"extra-condensed\",\"extra-expanded\",\"fantasy\",\"fast\",\"fill\",\"fixed\",\"flat\",\"flex\",\"flex-end\",\"flex-start\",\"footnotes\",\"forwards\",\"from\",\"geometricPrecision\",\"georgian\",\"graytext\",\"grid\",\"groove\",\"gujarati\",\"gurmukhi\",\"hand\",\"hangul\",\"hangul-consonant\",\"hard-light\",\"hebrew\",\"help\",\"hidden\",\"hide\",\"higher\",\"highlight\",\"highlighttext\",\"hiragana\",\"hiragana-iroha\",\"horizontal\",\"hsl\",\"hsla\",\"hue\",\"icon\",\"ignore\",\"inactiveborder\",\"inactivecaption\",\"inactivecaptiontext\",\"infinite\",\"infobackground\",\"infotext\",\"inherit\",\"initial\",\"inline\",\"inline-axis\",\"inline-block\",\"inline-flex\",\"inline-grid\",\"inline-table\",\"inset\",\"inside\",\"intrinsic\",\"invert\",\"italic\",\"japanese-formal\",\"japanese-informal\",\"justify\",\"kannada\",\"katakana\",\"katakana-iroha\",\"keep-all\",\"khmer\",\"korean-hangul-formal\",\"korean-hanja-formal\",\"korean-hanja-informal\",\"landscape\",\"lao\",\"large\",\"larger\",\"left\",\"level\",\"lighter\",\"lighten\",\"line-through\",\"linear\",\"linear-gradient\",\"lines\",\"list-item\",\"listbox\",\"listitem\",\"local\",\"logical\",\"loud\",\"lower\",\"lower-alpha\",\"lower-armenian\",\"lower-greek\",\"lower-hexadecimal\",\"lower-latin\",\"lower-norwegian\",\"lower-roman\",\"lowercase\",\"ltr\",\"luminosity\",\"malayalam\",\"match\",\"matrix\",\"matrix3d\",\"media-controls-background\",\"media-current-time-display\",\"media-fullscreen-button\",\"media-mute-button\",\"media-play-button\",\"media-return-to-realtime-button\",\"media-rewind-button\",\"media-seek-back-button\",\"media-seek-forward-button\",\"media-slider\",\"media-sliderthumb\",\"media-time-remaining-display\",\"media-volume-slider\",\"media-volume-slider-container\",\"media-volume-sliderthumb\",\"medium\",\"menu\",\"menulist\",\"menulist-button\",\"menulist-text\",\"menulist-textfield\",\"menutext\",\"message-box\",\"middle\",\"min-intrinsic\",\"mix\",\"mongolian\",\"monospace\",\"move\",\"multiple\",\"multiply\",\"myanmar\",\"n-resize\",\"narrower\",\"ne-resize\",\"nesw-resize\",\"no-close-quote\",\"no-drop\",\"no-open-quote\",\"no-repeat\",\"none\",\"normal\",\"not-allowed\",\"nowrap\",\"ns-resize\",\"numbers\",\"numeric\",\"nw-resize\",\"nwse-resize\",\"oblique\",\"octal\",\"opacity\",\"open-quote\",\"optimizeLegibility\",\"optimizeSpeed\",\"oriya\",\"oromo\",\"outset\",\"outside\",\"outside-shape\",\"overlay\",\"overline\",\"padding\",\"padding-box\",\"painted\",\"page\",\"paused\",\"persian\",\"perspective\",\"plus-darker\",\"plus-lighter\",\"pointer\",\"polygon\",\"portrait\",\"pre\",\"pre-line\",\"pre-wrap\",\"preserve-3d\",\"progress\",\"push-button\",\"radial-gradient\",\"radio\",\"read-only\",\"read-write\",\"read-write-plaintext-only\",\"rectangle\",\"region\",\"relative\",\"repeat\",\"repeating-linear-gradient\",\"repeating-radial-gradient\",\"repeat-x\",\"repeat-y\",\"reset\",\"reverse\",\"rgb\",\"rgba\",\"ridge\",\"right\",\"rotate\",\"rotate3d\",\"rotateX\",\"rotateY\",\"rotateZ\",\"round\",\"row\",\"row-resize\",\"row-reverse\",\"rtl\",\"run-in\",\"running\",\"s-resize\",\"sans-serif\",\"saturation\",\"scale\",\"scale3d\",\"scaleX\",\"scaleY\",\"scaleZ\",\"screen\",\"scroll\",\"scrollbar\",\"scroll-position\",\"se-resize\",\"searchfield\",\"searchfield-cancel-button\",\"searchfield-decoration\",\"searchfield-results-button\",\"searchfield-results-decoration\",\"self-start\",\"self-end\",\"semi-condensed\",\"semi-expanded\",\"separate\",\"serif\",\"show\",\"sidama\",\"simp-chinese-formal\",\"simp-chinese-informal\",\"single\",\"skew\",\"skewX\",\"skewY\",\"skip-white-space\",\"slide\",\"slider-horizontal\",\"slider-vertical\",\"sliderthumb-horizontal\",\"sliderthumb-vertical\",\"slow\",\"small\",\"small-caps\",\"small-caption\",\"smaller\",\"soft-light\",\"solid\",\"somali\",\"source-atop\",\"source-in\",\"source-out\",\"source-over\",\"space\",\"space-around\",\"space-between\",\"space-evenly\",\"spell-out\",\"square\",\"square-button\",\"start\",\"static\",\"status-bar\",\"stretch\",\"stroke\",\"sub\",\"subpixel-antialiased\",\"super\",\"sw-resize\",\"symbolic\",\"symbols\",\"system-ui\",\"table\",\"table-caption\",\"table-cell\",\"table-column\",\"table-column-group\",\"table-footer-group\",\"table-header-group\",\"table-row\",\"table-row-group\",\"tamil\",\"telugu\",\"text\",\"text-bottom\",\"text-top\",\"textarea\",\"textfield\",\"thai\",\"thick\",\"thin\",\"threeddarkshadow\",\"threedface\",\"threedhighlight\",\"threedlightshadow\",\"threedshadow\",\"tibetan\",\"tigre\",\"tigrinya-er\",\"tigrinya-er-abegede\",\"tigrinya-et\",\"tigrinya-et-abegede\",\"to\",\"top\",\"trad-chinese-formal\",\"trad-chinese-informal\",\"transform\",\"translate\",\"translate3d\",\"translateX\",\"translateY\",\"translateZ\",\"transparent\",\"ultra-condensed\",\"ultra-expanded\",\"underline\",\"unset\",\"up\",\"upper-alpha\",\"upper-armenian\",\"upper-greek\",\"upper-hexadecimal\",\"upper-latin\",\"upper-norwegian\",\"upper-roman\",\"uppercase\",\"urdu\",\"url\",\"var\",\"vertical\",\"vertical-text\",\"visible\",\"visibleFill\",\"visiblePainted\",\"visibleStroke\",\"visual\",\"w-resize\",\"wait\",\"wave\",\"wider\",\"window\",\"windowframe\",\"windowtext\",\"words\",\"wrap\",\"wrap-reverse\",\"x-large\",\"x-small\",\"xor\",\"xx-large\",\"xx-small\"],w=t(y),k=r.concat(i).concat(n).concat(s).concat(d).concat(u).concat(b).concat(y);function v(e,t){for(var r,o=!1;null!=(r=e.next());){if(o&&\"/\"==r){t.tokenize=null;break}o=\"*\"==r}return[\"comment\",\"comment\"]}e.registerHelper(\"hintWords\",\"css\",k),e.defineMIME(\"text/css\",{documentTypes:o,mediaTypes:a,mediaFeatures:l,mediaValueKeywords:c,propertyKeywords:p,nonStandardPropertyKeywords:m,fontProperties:h,counterDescriptors:g,colorKeywords:f,valueKeywords:w,tokenHooks:{\"/\":function(e,t){return!!e.eat(\"*\")&&(t.tokenize=v,v(e,t))}},name:\"css\"}),e.defineMIME(\"text/x-scss\",{mediaTypes:a,mediaFeatures:l,mediaValueKeywords:c,propertyKeywords:p,nonStandardPropertyKeywords:m,colorKeywords:f,valueKeywords:w,fontProperties:h,allowNested:!0,lineComment:\"//\",tokenHooks:{\"/\":function(e,t){return e.eat(\"/\")?(e.skipToEnd(),[\"comment\",\"comment\"]):e.eat(\"*\")?(t.tokenize=v,v(e,t)):[\"operator\",\"operator\"]},\":\":function(e){return!!e.match(/\\s*\\{/,!1)&&[null,null]},$:function(e){return e.match(/^[\\w-]+/),e.match(/^\\s*:/,!1)?[\"variable-2\",\"variable-definition\"]:[\"variable-2\",\"variable\"]},\"#\":function(e){return!!e.eat(\"{\")&&[null,\"interpolation\"]}},name:\"css\",helperType:\"scss\"}),e.defineMIME(\"text/x-less\",{mediaTypes:a,mediaFeatures:l,mediaValueKeywords:c,propertyKeywords:p,nonStandardPropertyKeywords:m,colorKeywords:f,valueKeywords:w,fontProperties:h,allowNested:!0,lineComment:\"//\",tokenHooks:{\"/\":function(e,t){return e.eat(\"/\")?(e.skipToEnd(),[\"comment\",\"comment\"]):e.eat(\"*\")?(t.tokenize=v,v(e,t)):[\"operator\",\"operator\"]},\"@\":function(e){return e.eat(\"{\")?[null,\"interpolation\"]:!e.match(/^(charset|document|font-face|import|(-(moz|ms|o|webkit)-)?keyframes|media|namespace|page|supports)\\b/i,!1)&&(e.eatWhile(/[\\w\\\\\\-]/),e.match(/^\\s*:/,!1)?[\"variable-2\",\"variable-definition\"]:[\"variable-2\",\"variable\"])},\"&\":function(){return[\"atom\",\"atom\"]}},name:\"css\",helperType:\"less\"}),e.defineMIME(\"text/x-gss\",{documentTypes:o,mediaTypes:a,mediaFeatures:l,propertyKeywords:p,nonStandardPropertyKeywords:m,fontProperties:h,counterDescriptors:g,colorKeywords:f,valueKeywords:w,supportsAtComponent:!0,tokenHooks:{\"/\":function(e,t){return!!e.eat(\"*\")&&(t.tokenize=v,v(e,t))}},name:\"css\",helperType:\"gss\"})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/css/css.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-css/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-css/readme",
"text": "This plugin adds Syntax Highlighting for CSS tiddlers (text/css) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/addon/mode/multiplex.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.multiplexingMode=function(n){var i=Array.prototype.slice.call(arguments,1);function t(e,n,i,t){if(\"string\"==typeof n){var r=e.indexOf(n,i);return t&&r>-1?r+n.length:r}var o=n.exec(i?e.slice(i):e);return o?o.index+i+(t?o[0].length:0):-1}return{startState:function(){return{outer:e.startState(n),innerActive:null,inner:null}},copyState:function(i){return{outer:e.copyState(n,i.outer),innerActive:i.innerActive,inner:i.innerActive&&e.copyState(i.innerActive.mode,i.inner)}},token:function(r,o){if(o.innerActive){var c=o.innerActive;a=r.string;if(!c.close&&r.sol())return o.innerActive=o.inner=null,this.token(r,o);if((v=c.close?t(a,c.close,r.pos,c.parseDelimiters):-1)==r.pos&&!c.parseDelimiters)return r.match(c.close),o.innerActive=o.inner=null,c.delimStyle&&c.delimStyle+\" \"+c.delimStyle+\"-close\";v>-1&&(r.string=a.slice(0,v));var l=c.mode.token(r,o.inner);return v>-1&&(r.string=a),v==r.pos&&c.parseDelimiters&&(o.innerActive=o.inner=null),c.innerStyle&&(l=l?l+\" \"+c.innerStyle:c.innerStyle),l}for(var s=1/0,a=r.string,u=0;u<i.length;++u){var v,d=i[u];if((v=t(a,d.open,r.pos))==r.pos){d.parseDelimiters||r.match(d.open),o.innerActive=d;var f=0;if(n.indent){var m=n.indent(o.outer,\"\");m!==e.Pass&&(f=m)}return o.inner=e.startState(d.mode,f),d.delimStyle&&d.delimStyle+\" \"+d.delimStyle+\"-open\"}-1!=v&&v<s&&(s=v)}s!=1/0&&(r.string=a.slice(0,s));var p=n.token(r,o.outer);return s!=1/0&&(r.string=a),p},indent:function(i,t){var r=i.innerActive?i.innerActive.mode:n;return r.indent?r.indent(i.innerActive?i.inner:i.outer,t):e.Pass},blankLine:function(t){var r=t.innerActive?t.innerActive.mode:n;if(r.blankLine&&r.blankLine(t.innerActive?t.inner:t.outer),t.innerActive)\"\\n\"===t.innerActive.close&&(t.innerActive=t.inner=null);else for(var o=0;o<i.length;++o){var c=i[o];\"\\n\"===c.open&&(t.innerActive=c,t.inner=e.startState(c.mode,r.indent?r.indent(t.outer,\"\"):0))}},electricChars:n.electricChars,innerMode:function(e){return e.inner?{state:e.inner,mode:e.innerActive.mode}:{state:e.outer,mode:n}}}}});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/mode/multiplex.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/mode/htmlembedded/htmlembedded.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../htmlmixed/htmlmixed\"),require(\"../../addon/mode/multiplex\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../htmlmixed/htmlmixed\",\"../../addon/mode/multiplex\"],e):e(CodeMirror)}(function(e){\"use strict\";e.defineMode(\"htmlembedded\",function(i,t){var d=t.closeComment||\"--%>\";return e.multiplexingMode(e.getMode(i,\"htmlmixed\"),{open:t.openComment||\"<%--\",close:d,delimStyle:\"comment\",mode:{token:function(e){return e.skipTo(d)||e.skipToEnd(),\"comment\"}}},{open:t.open||t.scriptStartRegex||\"<%\",close:t.close||t.scriptEndRegex||\"%>\",mode:e.getMode(i,t.scriptingModeSpec)})},\"htmlmixed\"),e.defineMIME(\"application/x-ejs\",{name:\"htmlembedded\",scriptingModeSpec:\"javascript\"}),e.defineMIME(\"application/x-aspx\",{name:\"htmlembedded\",scriptingModeSpec:\"text/x-csharp\"}),e.defineMIME(\"application/x-jsp\",{name:\"htmlembedded\",scriptingModeSpec:\"text/x-java\"}),e.defineMIME(\"application/x-erb\",{name:\"htmlembedded\",scriptingModeSpec:\"ruby\"})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/htmlembedded/htmlembedded.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-htmlembedded/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-htmlembedded/readme",
"text": "This plugin adds Syntax Highlighting for Embedded-HTML tiddlers (application/x-aspx, application/x-ejs, application/x-jsp and application/x-erb) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/mode/htmlmixed/htmlmixed.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\"),require(\"../xml/xml\"),require(\"../javascript/javascript\"),require(\"../css/css\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../xml/xml\",\"../javascript/javascript\",\"../css/css\"],t):t(CodeMirror)}(function(t){\"use strict\";var e={script:[[\"lang\",/(javascript|babel)/i,\"javascript\"],[\"type\",/^(?:text|application)\\/(?:x-)?(?:java|ecma)script$|^module$|^$/i,\"javascript\"],[\"type\",/./,\"text/plain\"],[null,null,\"javascript\"]],style:[[\"lang\",/^css$/i,\"css\"],[\"type\",/^(text\\/)?(x-)?(stylesheet|css)$/i,\"css\"],[\"type\",/./,\"text/plain\"],[null,null,\"css\"]]};var a={};function n(t,e){var n,l=t.match(a[n=e]||(a[n]=new RegExp(\"\\\\s+\"+n+\"\\\\s*=\\\\s*('|\\\")?([^'\\\"]+)('|\\\")?\\\\s*\")));return l?/^\\s*(.*?)\\s*$/.exec(l[2])[1]:\"\"}function l(t,e){return new RegExp((e?\"^\":\"\")+\"</s*\"+t+\"s*>\",\"i\")}function r(t,e){for(var a in t)for(var n=e[a]||(e[a]=[]),l=t[a],r=l.length-1;r>=0;r--)n.unshift(l[r])}t.defineMode(\"htmlmixed\",function(a,o){var c=t.getMode(a,{name:\"xml\",htmlMode:!0,multilineTagIndentFactor:o.multilineTagIndentFactor,multilineTagIndentPastTag:o.multilineTagIndentPastTag}),i={},s=o&&o.tags,u=o&&o.scriptTypes;if(r(e,i),s&&r(s,i),u)for(var m=u.length-1;m>=0;m--)i.script.unshift([\"type\",u[m].matches,u[m].mode]);function d(e,r){var o,s=c.token(e,r.htmlState),u=/\\btag\\b/.test(s);if(u&&!/[<>\\s\\/]/.test(e.current())&&(o=r.htmlState.tagName&&r.htmlState.tagName.toLowerCase())&&i.hasOwnProperty(o))r.inTag=o+\" \";else if(r.inTag&&u&&/>$/.test(e.current())){var m=/^([\\S]+) (.*)/.exec(r.inTag);r.inTag=null;var p=\">\"==e.current()&&function(t,e){for(var a=0;a<t.length;a++){var l=t[a];if(!l[0]||l[1].test(n(e,l[0])))return l[2]}}(i[m[1]],m[2]),f=t.getMode(a,p),g=l(m[1],!0),h=l(m[1],!1);r.token=function(t,e){return t.match(g,!1)?(e.token=d,e.localState=e.localMode=null,null):(a=t,n=h,l=e.localMode.token(t,e.localState),r=a.current(),(o=r.search(n))>-1?a.backUp(r.length-o):r.match(/<\\/?$/)&&(a.backUp(r.length),a.match(n,!1)||a.match(r)),l);var a,n,l,r,o},r.localMode=f,r.localState=t.startState(f,c.indent(r.htmlState,\"\"))}else r.inTag&&(r.inTag+=e.current(),e.eol()&&(r.inTag+=\" \"));return s}return{startState:function(){return{token:d,inTag:null,localMode:null,localState:null,htmlState:t.startState(c)}},copyState:function(e){var a;return e.localState&&(a=t.copyState(e.localMode,e.localState)),{token:e.token,inTag:e.inTag,localMode:e.localMode,localState:a,htmlState:t.copyState(c,e.htmlState)}},token:function(t,e){return e.token(t,e)},indent:function(e,a,n){return!e.localMode||/^\\s*<\\//.test(a)?c.indent(e.htmlState,a):e.localMode.indent?e.localMode.indent(e.localState,a,n):t.Pass},innerMode:function(t){return{state:t.localState||t.htmlState,mode:t.localMode||c}}}},\"xml\",\"javascript\",\"css\"),t.defineMIME(\"text/html\",\"htmlmixed\")});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/htmlmixed/htmlmixed.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-htmlmixed/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-htmlmixed/readme",
"text": "This plugin adds Syntax Highlighting for HTML tiddlers (text/html) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/mode/javascript/javascript.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],e):e(CodeMirror)}(function(e){\"use strict\";e.defineMode(\"javascript\",function(t,r){var n,a,i=t.indentUnit,o=r.statementIndent,c=r.jsonld,u=r.json||c,s=r.typescript,f=r.wordCharacters||/[\\w$\\xa1-\\uffff]/,l=function(){function e(e){return{type:e,style:\"keyword\"}}var t=e(\"keyword a\"),r=e(\"keyword b\"),n=e(\"keyword c\"),a=e(\"keyword d\"),i=e(\"operator\"),o={type:\"atom\",style:\"atom\"};return{if:e(\"if\"),while:t,with:t,else:r,do:r,try:r,finally:r,return:a,break:a,continue:a,new:e(\"new\"),delete:n,void:n,throw:n,debugger:e(\"debugger\"),var:e(\"var\"),const:e(\"var\"),let:e(\"var\"),function:e(\"function\"),catch:e(\"catch\"),for:e(\"for\"),switch:e(\"switch\"),case:e(\"case\"),default:e(\"default\"),in:i,typeof:i,instanceof:i,true:o,false:o,null:o,undefined:o,NaN:o,Infinity:o,this:e(\"this\"),class:e(\"class\"),super:e(\"atom\"),yield:n,export:e(\"export\"),import:e(\"import\"),extends:n,await:n}}(),d=/[+\\-*&%=<>!?|~^@]/,p=/^@(context|id|value|language|type|container|list|set|reverse|index|base|vocab|graph)\"/;function m(e,t,r){return n=e,a=r,t}function k(e,t){var r,n=e.next();if('\"'==n||\"'\"==n)return t.tokenize=(r=n,function(e,t){var n,a=!1;if(c&&\"@\"==e.peek()&&e.match(p))return t.tokenize=k,m(\"jsonld-keyword\",\"meta\");for(;null!=(n=e.next())&&(n!=r||a);)a=!a&&\"\\\\\"==n;return a||(t.tokenize=k),m(\"string\",\"string\")}),t.tokenize(e,t);if(\".\"==n&&e.match(/^\\d+(?:[eE][+\\-]?\\d+)?/))return m(\"number\",\"number\");if(\".\"==n&&e.match(\"..\"))return m(\"spread\",\"meta\");if(/[\\[\\]{}\\(\\),;\\:\\.]/.test(n))return m(n);if(\"=\"==n&&e.eat(\">\"))return m(\"=>\",\"operator\");if(\"0\"==n&&e.eat(/x/i))return e.eatWhile(/[\\da-f]/i),m(\"number\",\"number\");if(\"0\"==n&&e.eat(/o/i))return e.eatWhile(/[0-7]/i),m(\"number\",\"number\");if(\"0\"==n&&e.eat(/b/i))return e.eatWhile(/[01]/i),m(\"number\",\"number\");if(/\\d/.test(n))return e.match(/^\\d*(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/),m(\"number\",\"number\");if(\"/\"==n)return e.eat(\"*\")?(t.tokenize=v,v(e,t)):e.eat(\"/\")?(e.skipToEnd(),m(\"comment\",\"comment\")):He(e,t,1)?(function(e){for(var t,r=!1,n=!1;null!=(t=e.next());){if(!r){if(\"/\"==t&&!n)return;\"[\"==t?n=!0:n&&\"]\"==t&&(n=!1)}r=!r&&\"\\\\\"==t}}(e),e.match(/^\\b(([gimyu])(?![gimyu]*\\2))+\\b/),m(\"regexp\",\"string-2\")):(e.eat(\"=\"),m(\"operator\",\"operator\",e.current()));if(\"`\"==n)return t.tokenize=y,y(e,t);if(\"#\"==n)return e.skipToEnd(),m(\"error\",\"error\");if(d.test(n))return\">\"==n&&t.lexical&&\">\"==t.lexical.type||(e.eat(\"=\")?\"!\"!=n&&\"=\"!=n||e.eat(\"=\"):/[<>*+\\-]/.test(n)&&(e.eat(n),\">\"==n&&e.eat(n))),m(\"operator\",\"operator\",e.current());if(f.test(n)){e.eatWhile(f);var a=e.current();if(\".\"!=t.lastType){if(l.propertyIsEnumerable(a)){var i=l[a];return m(i.type,i.style,a)}if(\"async\"==a&&e.match(/^(\\s|\\/\\*.*?\\*\\/)*[\\[\\(\\w]/,!1))return m(\"async\",\"keyword\",a)}return m(\"variable\",\"variable\",a)}}function v(e,t){for(var r,n=!1;r=e.next();){if(\"/\"==r&&n){t.tokenize=k;break}n=\"*\"==r}return m(\"comment\",\"comment\")}function y(e,t){for(var r,n=!1;null!=(r=e.next());){if(!n&&(\"`\"==r||\"$\"==r&&e.eat(\"{\"))){t.tokenize=k;break}n=!n&&\"\\\\\"==r}return m(\"quasi\",\"string-2\",e.current())}var b=\"([{}])\";function w(e,t){t.fatArrowAt&&(t.fatArrowAt=null);var r=e.string.indexOf(\"=>\",e.start);if(!(r<0)){if(s){var n=/:\\s*(?:\\w+(?:<[^>]*>|\\[\\])?|\\{[^}]*\\})\\s*$/.exec(e.string.slice(e.start,r));n&&(r=n.index)}for(var a=0,i=!1,o=r-1;o>=0;--o){var c=e.string.charAt(o),u=b.indexOf(c);if(u>=0&&u<3){if(!a){++o;break}if(0==--a){\"(\"==c&&(i=!0);break}}else if(u>=3&&u<6)++a;else if(f.test(c))i=!0;else{if(/[\"'\\/]/.test(c))return;if(i&&!a){++o;break}}}i&&!a&&(t.fatArrowAt=o)}}var x={atom:!0,number:!0,variable:!0,string:!0,regexp:!0,this:!0,\"jsonld-keyword\":!0};function h(e,t,r,n,a,i){this.indented=e,this.column=t,this.type=r,this.prev=a,this.info=i,null!=n&&(this.align=n)}function g(e,t){for(var r=e.localVars;r;r=r.next)if(r.name==t)return!0;for(var n=e.context;n;n=n.prev)for(r=n.vars;r;r=r.next)if(r.name==t)return!0}var j={state:null,column:null,marked:null,cc:null};function M(){for(var e=arguments.length-1;e>=0;e--)j.cc.push(arguments[e])}function V(){return M.apply(null,arguments),!0}function A(e){function t(t){for(var r=t;r;r=r.next)if(r.name==e)return!0;return!1}var n=j.state;if(j.marked=\"def\",n.context){if(t(n.localVars))return;n.localVars={name:e,next:n.localVars}}else{if(t(n.globalVars))return;r.globalVars&&(n.globalVars={name:e,next:n.globalVars})}}function E(e){return\"public\"==e||\"private\"==e||\"protected\"==e||\"abstract\"==e||\"readonly\"==e}var z={name:\"this\",next:{name:\"arguments\"}};function I(){j.state.context={prev:j.state.context,vars:j.state.localVars},j.state.localVars=z}function T(){j.state.localVars=j.state.context.vars,j.state.context=j.state.context.prev}function $(e,t){var r=function(){var r=j.state,n=r.indented;if(\"stat\"==r.lexical.type)n=r.lexical.indented;else for(var a=r.lexical;a&&\")\"==a.type&&a.align;a=a.prev)n=a.indented;r.lexical=new h(n,j.stream.column(),e,null,r.lexical,t)};return r.lex=!0,r}function C(){var e=j.state;e.lexical.prev&&(\")\"==e.lexical.type&&(e.indented=e.lexical.indented),e.lexical=e.lexical.prev)}function q(e){return function t(r){return r==e?V():\";\"==e?M():V(t)}}function O(e,t){return\"var\"==e?V($(\"vardef\",t.length),pe,q(\";\"),C):\"keyword a\"==e?V($(\"form\"),W,O,C):\"keyword b\"==e?V($(\"form\"),O,C):\"keyword d\"==e?j.stream.match(/^\\s*$/,!1)?V():V($(\"stat\"),U,q(\";\"),C):\"debugger\"==e?V(q(\";\")):\"{\"==e?V($(\"}\"),te,C):\";\"==e?V():\"if\"==e?(\"else\"==j.state.lexical.info&&j.state.cc[j.state.cc.length-1]==C&&j.state.cc.pop()(),V($(\"form\"),W,O,C,be)):\"function\"==e?V(Me):\"for\"==e?V($(\"form\"),we,O,C):\"class\"==e||s&&\"interface\"==t?(j.marked=\"keyword\",V($(\"form\"),Ee,C)):\"variable\"==e?s&&\"declare\"==t?(j.marked=\"keyword\",V(O)):s&&(\"module\"==t||\"enum\"==t||\"type\"==t)&&j.stream.match(/^\\s*\\w/,!1)?(j.marked=\"keyword\",\"enum\"==t?V(Ue):\"type\"==t?V(ie,q(\"operator\"),ie,q(\";\")):V($(\"form\"),me,q(\"{\"),$(\"}\"),te,C,C)):s&&\"namespace\"==t?(j.marked=\"keyword\",V($(\"form\"),P,te,C)):s&&\"abstract\"==t?(j.marked=\"keyword\",V(O)):V($(\"stat\"),Q):\"switch\"==e?V($(\"form\"),W,q(\"{\"),$(\"}\",\"switch\"),te,C,C):\"case\"==e?V(P,q(\":\")):\"default\"==e?V(q(\":\")):\"catch\"==e?V($(\"form\"),I,q(\"(\"),Ve,q(\")\"),O,C,T):\"export\"==e?V($(\"stat\"),$e,C):\"import\"==e?V($(\"stat\"),qe,C):\"async\"==e?V(O):\"@\"==t?V(P,O):M($(\"stat\"),P,q(\";\"),C)}function P(e,t){return N(e,t,!1)}function S(e,t){return N(e,t,!0)}function W(e){return\"(\"!=e?M():V($(\")\"),P,q(\")\"),C)}function N(e,t,r){if(j.state.fatArrowAt==j.stream.start){var n=r?J:G;if(\"(\"==e)return V(I,$(\")\"),_(Ve,\")\"),C,q(\"=>\"),n,T);if(\"variable\"==e)return M(I,me,q(\"=>\"),n,T)}var a,i=r?H:B;return x.hasOwnProperty(e)?V(i):\"function\"==e?V(Me,i):\"class\"==e||s&&\"interface\"==t?(j.marked=\"keyword\",V($(\"form\"),Ae,C)):\"keyword c\"==e||\"async\"==e?V(r?S:P):\"(\"==e?V($(\")\"),U,q(\")\"),C,i):\"operator\"==e||\"spread\"==e?V(r?S:P):\"[\"==e?V($(\"]\"),Ne,C,i):\"{\"==e?ee(X,\"}\",null,i):\"quasi\"==e?M(D,i):\"new\"==e?V((a=r,function(e){return\".\"==e?V(a?L:K):\"variable\"==e&&s?V(fe,a?H:B):M(a?S:P)})):\"import\"==e?V(P):V()}function U(e){return e.match(/[;\\}\\)\\],]/)?M():M(P)}function B(e,t){return\",\"==e?V(P):H(e,t,!1)}function H(e,t,r){var n=0==r?B:H,a=0==r?P:S;return\"=>\"==e?V(I,r?J:G,T):\"operator\"==e?/\\+\\+|--/.test(t)||s&&\"!\"==t?V(n):s&&\"<\"==t&&j.stream.match(/^([^>]|<.*?>)*>\\s*\\(/,!1)?V($(\">\"),_(ie,\">\"),C,n):\"?\"==t?V(P,q(\":\"),a):V(a):\"quasi\"==e?M(D,n):\";\"!=e?\"(\"==e?ee(S,\")\",\"call\",n):\".\"==e?V(R,n):\"[\"==e?V($(\"]\"),U,q(\"]\"),C,n):s&&\"as\"==t?(j.marked=\"keyword\",V(ie,n)):\"regexp\"==e?(j.state.lastType=j.marked=\"operator\",j.stream.backUp(j.stream.pos-j.stream.start-1),V(a)):void 0:void 0}function D(e,t){return\"quasi\"!=e?M():\"${\"!=t.slice(t.length-2)?V(D):V(P,F)}function F(e){if(\"}\"==e)return j.marked=\"string-2\",j.state.tokenize=y,V(D)}function G(e){return w(j.stream,j.state),M(\"{\"==e?O:P)}function J(e){return w(j.stream,j.state),M(\"{\"==e?O:S)}function K(e,t){if(\"target\"==t)return j.marked=\"keyword\",V(B)}function L(e,t){if(\"target\"==t)return j.marked=\"keyword\",V(H)}function Q(e){return\":\"==e?V(C,O):M(B,q(\";\"),C)}function R(e){if(\"variable\"==e)return j.marked=\"property\",V()}function X(e,t){if(\"async\"==e)return j.marked=\"property\",V(X);if(\"variable\"==e||\"keyword\"==j.style){return j.marked=\"property\",\"get\"==t||\"set\"==t?V(Y):(s&&j.state.fatArrowAt==j.stream.start&&(r=j.stream.match(/^\\s*:\\s*/,!1))&&(j.state.fatArrowAt=j.stream.pos+r[0].length),V(Z));var r}else{if(\"number\"==e||\"string\"==e)return j.marked=c?\"property\":j.style+\" property\",V(Z);if(\"jsonld-keyword\"==e)return V(Z);if(s&&E(t))return j.marked=\"keyword\",V(X);if(\"[\"==e)return V(P,re,q(\"]\"),Z);if(\"spread\"==e)return V(S,Z);if(\"*\"==t)return j.marked=\"keyword\",V(X);if(\":\"==e)return M(Z)}}function Y(e){return\"variable\"!=e?M(Z):(j.marked=\"property\",V(Me))}function Z(e){return\":\"==e?V(S):\"(\"==e?M(Me):void 0}function _(e,t,r){function n(a,i){if(r?r.indexOf(a)>-1:\",\"==a){var o=j.state.lexical;return\"call\"==o.info&&(o.pos=(o.pos||0)+1),V(function(r,n){return r==t||n==t?M():M(e)},n)}return a==t||i==t?V():V(q(t))}return function(r,a){return r==t||a==t?V():M(e,n)}}function ee(e,t,r){for(var n=3;n<arguments.length;n++)j.cc.push(arguments[n]);return V($(t,r),_(e,t),C)}function te(e){return\"}\"==e?V():M(O,te)}function re(e,t){if(s){if(\":\"==e)return V(ie);if(\"?\"==t)return V(re)}}function ne(e){if(s&&\":\"==e)return j.stream.match(/^\\s*\\w+\\s+is\\b/,!1)?V(P,ae,ie):V(ie)}function ae(e,t){if(\"is\"==t)return j.marked=\"keyword\",V()}function ie(e,t){return\"keyof\"==t||\"typeof\"==t?(j.marked=\"keyword\",V(\"keyof\"==t?ie:S)):\"variable\"==e||\"void\"==t?(j.marked=\"type\",V(se)):\"string\"==e||\"number\"==e||\"atom\"==e?V(se):\"[\"==e?V($(\"]\"),_(ie,\"]\",\",\"),C,se):\"{\"==e?V($(\"}\"),_(ce,\"}\",\",;\"),C,se):\"(\"==e?V(_(ue,\")\"),oe):\"<\"==e?V(_(ie,\">\"),ie):void 0}function oe(e){if(\"=>\"==e)return V(ie)}function ce(e,t){return\"variable\"==e||\"keyword\"==j.style?(j.marked=\"property\",V(ce)):\"?\"==t?V(ce):\":\"==e?V(ie):\"[\"==e?V(P,re,q(\"]\"),ce):void 0}function ue(e,t){return\"variable\"==e&&j.stream.match(/^\\s*[?:]/,!1)||\"?\"==t?V(ue):\":\"==e?V(ie):M(ie)}function se(e,t){return\"<\"==t?V($(\">\"),_(ie,\">\"),C,se):\"|\"==t||\".\"==e||\"&\"==t?V(ie):\"[\"==e?V(q(\"]\"),se):\"extends\"==t||\"implements\"==t?(j.marked=\"keyword\",V(ie)):void 0}function fe(e,t){if(\"<\"==t)return V($(\">\"),_(ie,\">\"),C,se)}function le(){return M(ie,de)}function de(e,t){if(\"=\"==t)return V(ie)}function pe(e,t){return\"enum\"==t?(j.marked=\"keyword\",V(Ue)):M(me,re,ve,ye)}function me(e,t){return s&&E(t)?(j.marked=\"keyword\",V(me)):\"variable\"==e?(A(t),V()):\"spread\"==e?V(me):\"[\"==e?ee(me,\"]\"):\"{\"==e?ee(ke,\"}\"):void 0}function ke(e,t){return\"variable\"!=e||j.stream.match(/^\\s*:/,!1)?(\"variable\"==e&&(j.marked=\"property\"),\"spread\"==e?V(me):\"}\"==e?M():V(q(\":\"),me,ve)):(A(t),V(ve))}function ve(e,t){if(\"=\"==t)return V(S)}function ye(e){if(\",\"==e)return V(pe)}function be(e,t){if(\"keyword b\"==e&&\"else\"==t)return V($(\"form\",\"else\"),O,C)}function we(e,t){return\"await\"==t?V(we):\"(\"==e?V($(\")\"),xe,q(\")\"),C):void 0}function xe(e){return\"var\"==e?V(pe,q(\";\"),ge):\";\"==e?V(ge):\"variable\"==e?V(he):M(P,q(\";\"),ge)}function he(e,t){return\"in\"==t||\"of\"==t?(j.marked=\"keyword\",V(P)):V(B,ge)}function ge(e,t){return\";\"==e?V(je):\"in\"==t||\"of\"==t?(j.marked=\"keyword\",V(P)):M(P,q(\";\"),je)}function je(e){\")\"!=e&&V(P)}function Me(e,t){return\"*\"==t?(j.marked=\"keyword\",V(Me)):\"variable\"==e?(A(t),V(Me)):\"(\"==e?V(I,$(\")\"),_(Ve,\")\"),C,ne,O,T):s&&\"<\"==t?V($(\">\"),_(le,\">\"),C,Me):void 0}function Ve(e,t){return\"@\"==t&&V(P,Ve),\"spread\"==e?V(Ve):s&&E(t)?(j.marked=\"keyword\",V(Ve)):M(me,re,ve)}function Ae(e,t){return\"variable\"==e?Ee(e,t):ze(e,t)}function Ee(e,t){if(\"variable\"==e)return A(t),V(ze)}function ze(e,t){return\"<\"==t?V($(\">\"),_(le,\">\"),C,ze):\"extends\"==t||\"implements\"==t||s&&\",\"==e?(\"implements\"==t&&(j.marked=\"keyword\"),V(s?ie:P,ze)):\"{\"==e?V($(\"}\"),Ie,C):void 0}function Ie(e,t){return\"async\"==e||\"variable\"==e&&(\"static\"==t||\"get\"==t||\"set\"==t||s&&E(t))&&j.stream.match(/^\\s+[\\w$\\xa1-\\uffff]/,!1)?(j.marked=\"keyword\",V(Ie)):\"variable\"==e||\"keyword\"==j.style?(j.marked=\"property\",V(s?Te:Me,Ie)):\"[\"==e?V(P,re,q(\"]\"),s?Te:Me,Ie):\"*\"==t?(j.marked=\"keyword\",V(Ie)):\";\"==e?V(Ie):\"}\"==e?V():\"@\"==t?V(P,Ie):void 0}function Te(e,t){return\"?\"==t?V(Te):\":\"==e?V(ie,ve):\"=\"==t?V(S):M(Me)}function $e(e,t){return\"*\"==t?(j.marked=\"keyword\",V(We,q(\";\"))):\"default\"==t?(j.marked=\"keyword\",V(P,q(\";\"))):\"{\"==e?V(_(Ce,\"}\"),We,q(\";\")):M(O)}function Ce(e,t){return\"as\"==t?(j.marked=\"keyword\",V(q(\"variable\"))):\"variable\"==e?M(S,Ce):void 0}function qe(e){return\"string\"==e?V():\"(\"==e?M(P):M(Oe,Pe,We)}function Oe(e,t){return\"{\"==e?ee(Oe,\"}\"):(\"variable\"==e&&A(t),\"*\"==t&&(j.marked=\"keyword\"),V(Se))}function Pe(e){if(\",\"==e)return V(Oe,Pe)}function Se(e,t){if(\"as\"==t)return j.marked=\"keyword\",V(Oe)}function We(e,t){if(\"from\"==t)return j.marked=\"keyword\",V(P)}function Ne(e){return\"]\"==e?V():M(_(S,\"]\"))}function Ue(){return M($(\"form\"),me,q(\"{\"),$(\"}\"),_(Be,\"}\"),C,C)}function Be(){return M(me,ve)}function He(e,t,r){return t.tokenize==k&&/^(?:operator|sof|keyword [bcd]|case|new|export|default|spread|[\\[{}\\(,;:]|=>)$/.test(t.lastType)||\"quasi\"==t.lastType&&/\\{\\s*$/.test(e.string.slice(0,e.pos-(r||0)))}return C.lex=!0,{startState:function(e){var t={tokenize:k,lastType:\"sof\",cc:[],lexical:new h((e||0)-i,0,\"block\",!1),localVars:r.localVars,context:r.localVars&&{vars:r.localVars},indented:e||0};return r.globalVars&&\"object\"==typeof r.globalVars&&(t.globalVars=r.globalVars),t},token:function(e,t){if(e.sol()&&(t.lexical.hasOwnProperty(\"align\")||(t.lexical.align=!1),t.indented=e.indentation(),w(e,t)),t.tokenize!=v&&e.eatSpace())return null;var r=t.tokenize(e,t);return\"comment\"==n?r:(t.lastType=\"operator\"!=n||\"++\"!=a&&\"--\"!=a?n:\"incdec\",function(e,t,r,n,a){var i=e.cc;for(j.state=e,j.stream=a,j.marked=null,j.cc=i,j.style=t,e.lexical.hasOwnProperty(\"align\")||(e.lexical.align=!0);;)if((i.length?i.pop():u?P:O)(r,n)){for(;i.length&&i[i.length-1].lex;)i.pop()();return j.marked?j.marked:\"variable\"==r&&g(e,n)?\"variable-2\":t}}(t,r,n,a,e))},indent:function(t,n){if(t.tokenize==v)return e.Pass;if(t.tokenize!=k)return 0;var a,c=n&&n.charAt(0),u=t.lexical;if(!/^\\s*else\\b/.test(n))for(var s=t.cc.length-1;s>=0;--s){var f=t.cc[s];if(f==C)u=u.prev;else if(f!=be)break}for(;(\"stat\"==u.type||\"form\"==u.type)&&(\"}\"==c||(a=t.cc[t.cc.length-1])&&(a==B||a==H)&&!/^[,\\.=+\\-*:?[\\(]/.test(n));)u=u.prev;o&&\")\"==u.type&&\"stat\"==u.prev.type&&(u=u.prev);var l,p,m=u.type,y=c==m;return\"vardef\"==m?u.indented+(\"operator\"==t.lastType||\",\"==t.lastType?u.info+1:0):\"form\"==m&&\"{\"==c?u.indented:\"form\"==m?u.indented+i:\"stat\"==m?u.indented+(p=n,\"operator\"==(l=t).lastType||\",\"==l.lastType||d.test(p.charAt(0))||/[,.]/.test(p.charAt(0))?o||i:0):\"switch\"!=u.info||y||0==r.doubleIndentSwitch?u.align?u.column+(y?0:1):u.indented+(y?0:i):u.indented+(/^(?:case|default)\\b/.test(n)?i:2*i)},electricInput:/^\\s*(?:case .*?:|default:|\\{|\\})$/,blockCommentStart:u?null:\"/*\",blockCommentEnd:u?null:\"*/\",blockCommentContinue:u?null:\" * \",lineComment:u?null:\"//\",fold:\"brace\",closeBrackets:\"()[]{}''\\\"\\\"``\",helperType:u?\"json\":\"javascript\",jsonldMode:c,jsonMode:u,expressionAllowed:He,skipExpression:function(e){var t=e.cc[e.cc.length-1];t!=P&&t!=S||e.cc.pop()}}}),e.registerHelper(\"wordChars\",\"javascript\",/[\\w$]/),e.defineMIME(\"text/javascript\",\"javascript\"),e.defineMIME(\"text/ecmascript\",\"javascript\"),e.defineMIME(\"application/javascript\",\"javascript\"),e.defineMIME(\"application/x-javascript\",\"javascript\"),e.defineMIME(\"application/ecmascript\",\"javascript\"),e.defineMIME(\"application/json\",{name:\"javascript\",json:!0}),e.defineMIME(\"application/x-json\",{name:\"javascript\",json:!0}),e.defineMIME(\"application/ld+json\",{name:\"javascript\",jsonld:!0}),e.defineMIME(\"text/typescript\",{name:\"javascript\",typescript:!0}),e.defineMIME(\"application/typescript\",{name:\"javascript\",typescript:!0})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/javascript/javascript.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-javascript/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-javascript/readme",
"text": "This plugin adds Syntax Highlighting for Javascript tiddlers (application/javascript) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/mode/markdown/markdown.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\"),require(\"../xml/xml\"),require(\"../tw-meta\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../xml/xml\",\"../meta\"],t):t(CodeMirror)}(function(t){\"use strict\";t.defineMode(\"markdown\",function(e,i){var n=t.getMode(e,\"text/html\"),r=\"null\"==n.name;void 0===i.highlightFormatting&&(i.highlightFormatting=!1),void 0===i.maxBlockquoteDepth&&(i.maxBlockquoteDepth=0),void 0===i.taskLists&&(i.taskLists=!1),void 0===i.strikethrough&&(i.strikethrough=!1),void 0===i.emoji&&(i.emoji=!1),void 0===i.fencedCodeBlockHighlighting&&(i.fencedCodeBlockHighlighting=!0),void 0===i.xml&&(i.xml=!0),void 0===i.tokenTypeOverrides&&(i.tokenTypeOverrides={});var a={header:\"header\",code:\"comment\",quote:\"quote\",list1:\"variable-2\",list2:\"variable-3\",list3:\"keyword\",hr:\"hr\",image:\"image\",imageAltText:\"image-alt-text\",imageMarker:\"image-marker\",formatting:\"formatting\",linkInline:\"link\",linkEmail:\"link\",linkText:\"link\",linkHref:\"string\",em:\"em\",strong:\"strong\",strikethrough:\"strikethrough\",emoji:\"builtin\"};for(var l in a)a.hasOwnProperty(l)&&i.tokenTypeOverrides[l]&&(a[l]=i.tokenTypeOverrides[l]);var o=/^([*\\-_])(?:\\s*\\1){2,}\\s*$/,h=/^(?:[*\\-+]|^[0-9]+([.)]))\\s+/,g=/^\\[(x| )\\](?=\\s)/i,s=i.allowAtxHeaderWithoutSpace?/^(#+)/:/^(#+)(?: |$)/,m=/^ *(?:\\={1,}|-{1,})\\s*$/,u=/^[^#!\\[\\]*_\\\\<>` \"'(~:]+/,f=/^(~~~+|```+)[ \\t]*([\\w+#-]*)[^\\n`]*$/,c=/^\\s*\\[[^\\]]+?\\]:.*$/,d=/[!\\\"#$%&\\'()*+,\\-\\.\\/:;<=>?@\\[\\\\\\]^_`{|}~—]/;function k(t,e,i){return e.f=e.inline=i,i(t,e)}function p(t,e,i){return e.f=e.block=i,i(t,e)}function x(t){return t.linkTitle=!1,t.linkHref=!1,t.linkText=!1,t.em=!1,t.strong=!1,t.strikethrough=!1,t.quote=0,t.indentedCode=!1,t.f==S&&(t.f=M,t.block=v),t.trailingSpace=0,t.trailingSpaceNewLine=!1,t.prevLine=t.thisLine,t.thisLine={stream:null},null}function v(n,r){var l,u=n.column()===r.indentation,d=!(l=r.prevLine.stream)||!/\\S/.test(l.string),p=r.indentedCode,x=r.prevLine.hr,v=!1!==r.list,S=(r.listStack[r.listStack.length-1]||0)+3;r.indentedCode=!1;var q=r.indentation;if(null===r.indentationDiff&&(r.indentationDiff=r.indentation,v)){for(r.em=!1,r.strong=!1,r.code=!1,r.strikethrough=!1,r.list=null;q<r.listStack[r.listStack.length-1];)r.listStack.pop(),r.listStack.length?r.indentation=r.listStack[r.listStack.length-1]:r.list=!1;!1!==r.list&&(r.indentationDiff=q-r.listStack[r.listStack.length-1])}var M=!(d||x||r.prevLine.header||v&&p||r.prevLine.fencedCodeEnd),F=(!1===r.list||x||d)&&r.indentation<=S&&n.match(o),b=null;if(r.indentationDiff>=4&&(p||r.prevLine.fencedCodeEnd||r.prevLine.header||d))return n.skipToEnd(),r.indentedCode=!0,a.code;if(n.eatSpace())return null;if(u&&r.indentation<=S&&(b=n.match(s))&&b[1].length<=6)return r.quote=0,r.header=b[1].length,r.thisLine.header=!0,i.highlightFormatting&&(r.formatting=\"header\"),r.f=r.inline,T(r);if(r.indentation<=S&&n.eat(\">\"))return r.quote=u?1:r.quote+1,i.highlightFormatting&&(r.formatting=\"quote\"),n.eatSpace(),T(r);if(!F&&!r.setext&&u&&r.indentation<=S&&(b=n.match(h))){var E=b[1]?\"ol\":\"ul\";return r.indentation=q+n.current().length,r.list=!0,r.quote=0,r.listStack.push(r.indentation),i.taskLists&&n.match(g,!1)&&(r.taskList=!0),r.f=r.inline,i.highlightFormatting&&(r.formatting=[\"list\",\"list-\"+E]),T(r)}return u&&r.indentation<=S&&(b=n.match(f,!0))?(r.quote=0,r.fencedEndRE=new RegExp(b[1]+\"+ *$\"),r.localMode=i.fencedCodeBlockHighlighting&&function(i){if(t.findModeByName){var n=t.findModeByName(i);n&&(i=n.mime||n.mimes[0])}var r=t.getMode(e,i);return\"null\"==r.name?null:r}(b[2]),r.localMode&&(r.localState=t.startState(r.localMode)),r.f=r.block=L,i.highlightFormatting&&(r.formatting=\"code-block\"),r.code=-1,T(r)):r.setext||!(M&&v||r.quote||!1!==r.list||r.code||F||c.test(n.string))&&(b=n.lookAhead(1))&&(b=b.match(m))?(r.setext?(r.header=r.setext,r.setext=0,n.skipToEnd(),i.highlightFormatting&&(r.formatting=\"header\")):(r.header=\"=\"==b[0].charAt(0)?1:2,r.setext=r.header),r.thisLine.header=!0,r.f=r.inline,T(r)):F?(n.skipToEnd(),r.hr=!0,r.thisLine.hr=!0,a.hr):\"[\"===n.peek()?k(n,r,w):k(n,r,r.inline)}function S(e,i){var a=n.token(e,i.htmlState);if(!r){var l=t.innerMode(n,i.htmlState);(\"xml\"==l.mode.name&&null===l.state.tagStart&&!l.state.context&&l.state.tokenize.isInText||i.md_inside&&e.current().indexOf(\">\")>-1)&&(i.f=M,i.block=v,i.htmlState=null)}return a}function L(t,e){var n,r=e.listStack[e.listStack.length-1]||0,l=e.indentation<r,o=r+3;return e.fencedEndRE&&e.indentation<=o&&(l||t.match(e.fencedEndRE))?(i.highlightFormatting&&(e.formatting=\"code-block\"),l||(n=T(e)),e.localMode=e.localState=null,e.block=v,e.f=M,e.fencedEndRE=null,e.code=0,e.thisLine.fencedCodeEnd=!0,l?p(t,e,e.block):n):e.localMode?e.localMode.token(t,e.localState):(t.skipToEnd(),a.code)}function T(t){var e=[];if(t.formatting){e.push(a.formatting),\"string\"==typeof t.formatting&&(t.formatting=[t.formatting]);for(var n=0;n<t.formatting.length;n++)e.push(a.formatting+\"-\"+t.formatting[n]),\"header\"===t.formatting[n]&&e.push(a.formatting+\"-\"+t.formatting[n]+\"-\"+t.header),\"quote\"===t.formatting[n]&&(!i.maxBlockquoteDepth||i.maxBlockquoteDepth>=t.quote?e.push(a.formatting+\"-\"+t.formatting[n]+\"-\"+t.quote):e.push(\"error\"))}if(t.taskOpen)return e.push(\"meta\"),e.length?e.join(\" \"):null;if(t.taskClosed)return e.push(\"property\"),e.length?e.join(\" \"):null;if(t.linkHref?e.push(a.linkHref,\"url\"):(t.strong&&e.push(a.strong),t.em&&e.push(a.em),t.strikethrough&&e.push(a.strikethrough),t.emoji&&e.push(a.emoji),t.linkText&&e.push(a.linkText),t.code&&e.push(a.code),t.image&&e.push(a.image),t.imageAltText&&e.push(a.imageAltText,\"link\"),t.imageMarker&&e.push(a.imageMarker)),t.header&&e.push(a.header,a.header+\"-\"+t.header),t.quote&&(e.push(a.quote),!i.maxBlockquoteDepth||i.maxBlockquoteDepth>=t.quote?e.push(a.quote+\"-\"+t.quote):e.push(a.quote+\"-\"+i.maxBlockquoteDepth)),!1!==t.list){var r=(t.listStack.length-1)%3;r?1===r?e.push(a.list2):e.push(a.list3):e.push(a.list1)}return t.trailingSpaceNewLine?e.push(\"trailing-space-new-line\"):t.trailingSpace&&e.push(\"trailing-space-\"+(t.trailingSpace%2?\"a\":\"b\")),e.length?e.join(\" \"):null}function q(t,e){if(t.match(u,!0))return T(e)}function M(e,r){var l=r.text(e,r);if(void 0!==l)return l;if(r.list)return r.list=null,T(r);if(r.taskList)return\" \"===e.match(g,!0)[1]?r.taskOpen=!0:r.taskClosed=!0,i.highlightFormatting&&(r.formatting=\"task\"),r.taskList=!1,T(r);if(r.taskOpen=!1,r.taskClosed=!1,r.header&&e.match(/^#+$/,!0))return i.highlightFormatting&&(r.formatting=\"header\"),T(r);var o=e.next();if(r.linkTitle){r.linkTitle=!1;var h=o;\"(\"===o&&(h=\")\");var s=\"^\\\\s*(?:[^\"+(h=(h+\"\").replace(/([.?*+^\\[\\]\\\\(){}|-])/g,\"\\\\$1\"))+\"\\\\\\\\]+|\\\\\\\\\\\\\\\\|\\\\\\\\.)\"+h;if(e.match(new RegExp(s),!0))return a.linkHref}if(\"`\"===o){var m=r.formatting;i.highlightFormatting&&(r.formatting=\"code\"),e.eatWhile(\"`\");var u=e.current().length;if(0!=r.code||r.quote&&1!=u){if(u==r.code){var f=T(r);return r.code=0,f}return r.formatting=m,T(r)}return r.code=u,T(r)}if(r.code)return T(r);if(\"\\\\\"===o&&(e.next(),i.highlightFormatting)){var c=T(r),k=a.formatting+\"-escape\";return c?c+\" \"+k:k}if(\"!\"===o&&e.match(/\\[[^\\]]*\\] ?(?:\\(|\\[)/,!1))return r.imageMarker=!0,r.image=!0,i.highlightFormatting&&(r.formatting=\"image\"),T(r);if(\"[\"===o&&r.imageMarker&&e.match(/[^\\]]*\\](\\(.*?\\)| ?\\[.*?\\])/,!1))return r.imageMarker=!1,r.imageAltText=!0,i.highlightFormatting&&(r.formatting=\"image\"),T(r);if(\"]\"===o&&r.imageAltText){i.highlightFormatting&&(r.formatting=\"image\");var c=T(r);return r.imageAltText=!1,r.image=!1,r.inline=r.f=b,c}if(\"[\"===o&&!r.image)return r.linkText=!0,i.highlightFormatting&&(r.formatting=\"link\"),T(r);if(\"]\"===o&&r.linkText){i.highlightFormatting&&(r.formatting=\"link\");var c=T(r);return r.linkText=!1,r.inline=r.f=e.match(/\\(.*?\\)| ?\\[.*?\\]/,!1)?b:M,c}if(\"<\"===o&&e.match(/^(https?|ftps?):\\/\\/(?:[^\\\\>]|\\\\.)+>/,!1))return r.f=r.inline=F,i.highlightFormatting&&(r.formatting=\"link\"),(c=T(r))?c+=\" \":c=\"\",c+a.linkInline;if(\"<\"===o&&e.match(/^[^> \\\\]+@(?:[^\\\\>]|\\\\.)+>/,!1))return r.f=r.inline=F,i.highlightFormatting&&(r.formatting=\"link\"),(c=T(r))?c+=\" \":c=\"\",c+a.linkEmail;if(i.xml&&\"<\"===o&&e.match(/^(!--|[a-z][a-z0-9-]*(?:\\s+[a-z_:.\\-]+(?:\\s*=\\s*[^>]+)?)*\\s*>)/i,!1)){var x=e.string.indexOf(\">\",e.pos);if(-1!=x){var v=e.string.substring(e.start,x);/markdown\\s*=\\s*('|\"){0,1}1('|\"){0,1}/.test(v)&&(r.md_inside=!0)}return e.backUp(1),r.htmlState=t.startState(n),p(e,r,S)}if(i.xml&&\"<\"===o&&e.match(/^\\/\\w*?>/))return r.md_inside=!1,\"tag\";if(\"*\"===o||\"_\"===o){for(var L=1,q=1==e.pos?\" \":e.string.charAt(e.pos-2);L<3&&e.eat(o);)L++;var E=e.peek()||\" \",w=!/\\s/.test(E)&&(!d.test(E)||/\\s/.test(q)||d.test(q)),j=!/\\s/.test(q)&&(!d.test(q)||/\\s/.test(E)||d.test(E)),y=null,C=null;if(L%2&&(r.em||!w||\"*\"!==o&&j&&!d.test(q)?r.em!=o||!j||\"*\"!==o&&w&&!d.test(E)||(y=!1):y=!0),L>1&&(r.strong||!w||\"*\"!==o&&j&&!d.test(q)?r.strong!=o||!j||\"*\"!==o&&w&&!d.test(E)||(C=!1):C=!0),null!=C||null!=y){i.highlightFormatting&&(r.formatting=null==y?\"strong\":null==C?\"em\":\"strong em\"),!0===y&&(r.em=o),!0===C&&(r.strong=o);f=T(r);return!1===y&&(r.em=!1),!1===C&&(r.strong=!1),f}}else if(\" \"===o&&(e.eat(\"*\")||e.eat(\"_\"))){if(\" \"===e.peek())return T(r);e.backUp(1)}if(i.strikethrough)if(\"~\"===o&&e.eatWhile(o)){if(r.strikethrough){i.highlightFormatting&&(r.formatting=\"strikethrough\");f=T(r);return r.strikethrough=!1,f}if(e.match(/^[^\\s]/,!1))return r.strikethrough=!0,i.highlightFormatting&&(r.formatting=\"strikethrough\"),T(r)}else if(\" \"===o&&e.match(/^~~/,!0)){if(\" \"===e.peek())return T(r);e.backUp(2)}if(i.emoji&&\":\"===o&&e.match(/^[a-z_\\d+-]+:/)){r.emoji=!0,i.highlightFormatting&&(r.formatting=\"emoji\");var H=T(r);return r.emoji=!1,H}return\" \"===o&&(e.match(/ +$/,!1)?r.trailingSpace++:r.trailingSpace&&(r.trailingSpaceNewLine=!0)),T(r)}function F(t,e){if(\">\"===t.next()){e.f=e.inline=M,i.highlightFormatting&&(e.formatting=\"link\");var n=T(e);return n?n+=\" \":n=\"\",n+a.linkInline}return t.match(/^[^>]+/,!0),a.linkInline}function b(t,e){if(t.eatSpace())return null;var n,r=t.next();return\"(\"===r||\"[\"===r?(e.f=e.inline=(n=\"(\"===r?\")\":\"]\",function(t,e){var r=t.next();if(r===n){e.f=e.inline=M,i.highlightFormatting&&(e.formatting=\"link-string\");var a=T(e);return e.linkHref=!1,a}return t.match(E[n]),e.linkHref=!0,T(e)}),i.highlightFormatting&&(e.formatting=\"link-string\"),e.linkHref=!0,T(e)):\"error\"}var E={\")\":/^(?:[^\\\\\\(\\)]|\\\\.|\\((?:[^\\\\\\(\\)]|\\\\.)*\\))*?(?=\\))/,\"]\":/^(?:[^\\\\\\[\\]]|\\\\.|\\[(?:[^\\\\\\[\\]]|\\\\.)*\\])*?(?=\\])/};function w(t,e){return t.match(/^([^\\]\\\\]|\\\\.)*\\]:/,!1)?(e.f=j,t.next(),i.highlightFormatting&&(e.formatting=\"link\"),e.linkText=!0,T(e)):k(t,e,M)}function j(t,e){if(t.match(/^\\]:/,!0)){e.f=e.inline=y,i.highlightFormatting&&(e.formatting=\"link\");var n=T(e);return e.linkText=!1,n}return t.match(/^([^\\]\\\\]|\\\\.)+/,!0),a.linkText}function y(t,e){return t.eatSpace()?null:(t.match(/^[^\\s]+/,!0),void 0===t.peek()?e.linkTitle=!0:t.match(/^(?:\\s+(?:\"(?:[^\"\\\\]|\\\\\\\\|\\\\.)+\"|'(?:[^'\\\\]|\\\\\\\\|\\\\.)+'|\\((?:[^)\\\\]|\\\\\\\\|\\\\.)+\\)))?/,!0),e.f=e.inline=M,a.linkHref+\" url\")}var C={startState:function(){return{f:v,prevLine:{stream:null},thisLine:{stream:null},block:v,htmlState:null,indentation:0,inline:M,text:q,formatting:!1,linkText:!1,linkHref:!1,linkTitle:!1,code:0,em:!1,strong:!1,header:0,setext:0,hr:!1,taskList:!1,list:!1,listStack:[],quote:0,trailingSpace:0,trailingSpaceNewLine:!1,strikethrough:!1,emoji:!1,fencedEndRE:null}},copyState:function(e){return{f:e.f,prevLine:e.prevLine,thisLine:e.thisLine,block:e.block,htmlState:e.htmlState&&t.copyState(n,e.htmlState),indentation:e.indentation,localMode:e.localMode,localState:e.localMode?t.copyState(e.localMode,e.localState):null,inline:e.inline,text:e.text,formatting:!1,linkText:e.linkText,linkTitle:e.linkTitle,linkHref:e.linkHref,code:e.code,em:e.em,strong:e.strong,strikethrough:e.strikethrough,emoji:e.emoji,header:e.header,setext:e.setext,hr:e.hr,taskList:e.taskList,list:e.list,listStack:e.listStack.slice(0),quote:e.quote,indentedCode:e.indentedCode,trailingSpace:e.trailingSpace,trailingSpaceNewLine:e.trailingSpaceNewLine,md_inside:e.md_inside,fencedEndRE:e.fencedEndRE}},token:function(t,e){if(e.formatting=!1,t!=e.thisLine.stream){if(e.header=0,e.hr=!1,t.match(/^\\s*$/,!0))return x(e),null;if(e.prevLine=e.thisLine,e.thisLine={stream:t},e.taskList=!1,e.trailingSpace=0,e.trailingSpaceNewLine=!1,!e.localState&&(e.f=e.block,e.f!=S)){var i=t.match(/^\\s*/,!0)[0].replace(/\\t/g,\" \").length;if(e.indentation=i,e.indentationDiff=null,i>0)return null}}return e.f(t,e)},innerMode:function(t){return t.block==S?{state:t.htmlState,mode:n}:t.localState?{state:t.localState,mode:t.localMode}:{state:t,mode:C}},indent:function(e,i,r){return e.block==S&&n.indent?n.indent(e.htmlState,i,r):e.localState&&e.localMode.indent?e.localMode.indent(e.localState,i,r):t.Pass},blankLine:x,getType:T,closeBrackets:\"()[]{}''\\\"\\\"``\",fold:\"markdown\"};return C},\"xml\"),t.defineMIME(\"text/markdown\",\"markdown\"),t.defineMIME(\"text/x-markdown\",\"markdown\")});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/markdown/markdown.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-markdown/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-markdown/readme",
"text": "This plugin adds Syntax Highlighting for Markdown tiddlers (text/x-markdown) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){\"use strict\";var e={autoSelfClosers:{area:!0,base:!0,br:!0,col:!0,command:!0,embed:!0,frame:!0,hr:!0,img:!0,input:!0,keygen:!0,link:!0,meta:!0,param:!0,source:!0,track:!0,wbr:!0,menuitem:!0},implicitlyClosed:{dd:!0,li:!0,optgroup:!0,option:!0,p:!0,rp:!0,rt:!0,tbody:!0,td:!0,tfoot:!0,th:!0,tr:!0},contextGrabbers:{dd:{dd:!0,dt:!0},dt:{dd:!0,dt:!0},li:{li:!0},option:{option:!0,optgroup:!0},optgroup:{optgroup:!0},p:{address:!0,article:!0,aside:!0,blockquote:!0,dir:!0,div:!0,dl:!0,fieldset:!0,footer:!0,form:!0,h1:!0,h2:!0,h3:!0,h4:!0,h5:!0,h6:!0,header:!0,hgroup:!0,hr:!0,menu:!0,nav:!0,ol:!0,p:!0,pre:!0,section:!0,table:!0,ul:!0},rp:{rp:!0,rt:!0},rt:{rp:!0,rt:!0},tbody:{tbody:!0,tfoot:!0},td:{td:!0,th:!0},tfoot:{tbody:!0},th:{td:!0,th:!0},thead:{tbody:!0,tfoot:!0},tr:{tr:!0}},doNotIndent:{pre:!0},allowUnquoted:!0,allowMissing:!0,caseFold:!0},n={autoSelfClosers:{},implicitlyClosed:{},contextGrabbers:{},doNotIndent:{},allowUnquoted:!1,allowMissing:!1,allowMissingTagName:!1,caseFold:!1};t.defineMode(\"xml\",function(r,o){var a,i,l=r.indentUnit,u={},d=o.htmlMode?e:n;for(var c in d)u[c]=d[c];for(var c in o)u[c]=o[c];function s(t,e){function n(n){return e.tokenize=n,n(t,e)}var r=t.next();return\"<\"==r?t.eat(\"!\")?t.eat(\"[\")?t.match(\"CDATA[\")?n(m(\"atom\",\"]]>\")):null:t.match(\"--\")?n(m(\"comment\",\"--\\x3e\")):t.match(\"DOCTYPE\",!0,!0)?(t.eatWhile(/[\\w\\._\\-]/),n(function t(e){return function(n,r){for(var o;null!=(o=n.next());){if(\"<\"==o)return r.tokenize=t(e+1),r.tokenize(n,r);if(\">\"==o){if(1==e){r.tokenize=s;break}return r.tokenize=t(e-1),r.tokenize(n,r)}}return\"meta\"}}(1))):null:t.eat(\"?\")?(t.eatWhile(/[\\w\\._\\-]/),e.tokenize=m(\"meta\",\"?>\"),\"meta\"):(a=t.eat(\"/\")?\"closeTag\":\"openTag\",e.tokenize=f,\"tag bracket\"):\"&\"==r?(t.eat(\"#\")?t.eat(\"x\")?t.eatWhile(/[a-fA-F\\d]/)&&t.eat(\";\"):t.eatWhile(/[\\d]/)&&t.eat(\";\"):t.eatWhile(/[\\w\\.\\-:]/)&&t.eat(\";\"))?\"atom\":\"error\":(t.eatWhile(/[^&<]/),null)}function f(t,e){var n,r,o=t.next();if(\">\"==o||\"/\"==o&&t.eat(\">\"))return e.tokenize=s,a=\">\"==o?\"endTag\":\"selfcloseTag\",\"tag bracket\";if(\"=\"==o)return a=\"equals\",null;if(\"<\"==o){e.tokenize=s,e.state=h,e.tagName=e.tagStart=null;var i=e.tokenize(t,e);return i?i+\" tag error\":\"tag error\"}return/[\\'\\\"]/.test(o)?(e.tokenize=(n=o,(r=function(t,e){for(;!t.eol();)if(t.next()==n){e.tokenize=f;break}return\"string\"}).isInAttribute=!0,r),e.stringStartCol=t.column(),e.tokenize(t,e)):(t.match(/^[^\\s\\u00a0=<>\\\"\\']*[^\\s\\u00a0=<>\\\"\\'\\/]/),\"word\")}function m(t,e){return function(n,r){for(;!n.eol();){if(n.match(e)){r.tokenize=s;break}n.next()}return t}}function g(t){t.context&&(t.context=t.context.prev)}function p(t,e){for(var n;;){if(!t.context)return;if(n=t.context.tagName,!u.contextGrabbers.hasOwnProperty(n)||!u.contextGrabbers[n].hasOwnProperty(e))return;g(t)}}function h(t,e,n){return\"openTag\"==t?(n.tagStart=e.column(),x):\"closeTag\"==t?b:h}function x(t,e,n){return\"word\"==t?(n.tagName=e.current(),i=\"tag\",v):u.allowMissingTagName&&\"endTag\"==t?(i=\"tag bracket\",v(t,e,n)):(i=\"error\",x)}function b(t,e,n){if(\"word\"==t){var r=e.current();return n.context&&n.context.tagName!=r&&u.implicitlyClosed.hasOwnProperty(n.context.tagName)&&g(n),n.context&&n.context.tagName==r||!1===u.matchClosing?(i=\"tag\",k):(i=\"tag error\",w)}return u.allowMissingTagName&&\"endTag\"==t?(i=\"tag bracket\",k(t,e,n)):(i=\"error\",w)}function k(t,e,n){return\"endTag\"!=t?(i=\"error\",k):(g(n),h)}function w(t,e,n){return i=\"error\",k(t,0,n)}function v(t,e,n){if(\"word\"==t)return i=\"attribute\",T;if(\"endTag\"==t||\"selfcloseTag\"==t){var r=n.tagName,o=n.tagStart;return n.tagName=n.tagStart=null,\"selfcloseTag\"==t||u.autoSelfClosers.hasOwnProperty(r)?p(n,r):(p(n,r),n.context=new function(t,e,n){this.prev=t.context,this.tagName=e,this.indent=t.indented,this.startOfLine=n,(u.doNotIndent.hasOwnProperty(e)||t.context&&t.context.noIndent)&&(this.noIndent=!0)}(n,r,o==n.indented)),h}return i=\"error\",v}function T(t,e,n){return\"equals\"==t?y:(u.allowMissing||(i=\"error\"),v(t,0,n))}function y(t,e,n){return\"string\"==t?N:\"word\"==t&&u.allowUnquoted?(i=\"string\",v):(i=\"error\",v(t,0,n))}function N(t,e,n){return\"string\"==t?N:v(t,0,n)}return s.isInText=!0,{startState:function(t){var e={tokenize:s,state:h,indented:t||0,tagName:null,tagStart:null,context:null};return null!=t&&(e.baseIndent=t),e},token:function(t,e){if(!e.tagName&&t.sol()&&(e.indented=t.indentation()),t.eatSpace())return null;a=null;var n=e.tokenize(t,e);return(n||a)&&\"comment\"!=n&&(i=null,e.state=e.state(a||n,t,e),i&&(n=\"error\"==i?n+\" error\":i)),n},indent:function(e,n,r){var o=e.context;if(e.tokenize.isInAttribute)return e.tagStart==e.indented?e.stringStartCol+1:e.indented+l;if(o&&o.noIndent)return t.Pass;if(e.tokenize!=f&&e.tokenize!=s)return r?r.match(/^(\\s*)/)[0].length:0;if(e.tagName)return!1!==u.multilineTagIndentPastTag?e.tagStart+e.tagName.length+2:e.tagStart+l*(u.multilineTagIndentFactor||1);if(u.alignCDATA&&/<!\\[CDATA\\[/.test(n))return 0;var a=n&&/^<(\\/)?([\\w_:\\.-]*)/.exec(n);if(a&&a[1])for(;o;){if(o.tagName==a[2]){o=o.prev;break}if(!u.implicitlyClosed.hasOwnProperty(o.tagName))break;o=o.prev}else if(a)for(;o;){var i=u.contextGrabbers[o.tagName];if(!i||!i.hasOwnProperty(a[2]))break;o=o.prev}for(;o&&o.prev&&!o.startOfLine;)o=o.prev;return o?o.indent+l:e.baseIndent||0},electricInput:/<\\/[\\s\\w:]+>$/,blockCommentStart:\"\\x3c!--\",blockCommentEnd:\"--\\x3e\",configuration:u.htmlMode?\"html\":\"xml\",helperType:u.htmlMode?\"html\":\"xml\",skipAttribute:function(t){t.state==y&&(t.state=v)}}}),t.defineMIME(\"text/xml\",\"xml\"),t.defineMIME(\"application/xml\",\"xml\"),t.mimeModes.hasOwnProperty(\"text/html\")||t.defineMIME(\"text/html\",{name:\"xml\",htmlMode:!0})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/mode/xml/xml.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-mode-xml/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-mode-xml/readme",
"text": "This plugin is a requirement for other Syntax-highlighting plugins and adds Highlighting for XML tiddlers (application/xml) to the [[CodeMirror|http://codemirror.net]] text editor. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/codemirror/addon/search/search.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"./searchcursor\"),require(\"../dialog/dialog\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"./searchcursor\",\"../dialog/dialog\"],e):e(CodeMirror)}(function(e){\"use strict\";function o(e){return e.state.search||(e.state.search=new function(){this.posFrom=this.posTo=this.lastQuery=this.query=null,this.overlay=null})}function n(e){return\"string\"==typeof e&&e==e.toLowerCase()}function r(e,o,r){return e.getSearchCursor(o,r,{caseFold:n(o),multiline:!0})}function t(e,o,n,r,t){e.openDialog?e.openDialog(o,t,{value:r,selectValueOnOpen:!0}):t(prompt(n,r))}function i(e){return e.replace(/\\\\(.)/g,function(e,o){return\"n\"==o?\"\\n\":\"r\"==o?\"\\r\":o})}function a(e){var o=e.match(/^\\/(.*)\\/([a-z]*)$/);if(o)try{e=new RegExp(o[1],-1==o[2].indexOf(\"i\")?\"\":\"i\")}catch(e){}else e=i(e);return(\"string\"==typeof e?\"\"==e:e.test(\"\"))&&(e=/x^/),e}var s='<span class=\"CodeMirror-search-label\">Search:</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>';function c(e,o,r){var t,i;o.queryText=r,o.query=a(r),e.removeOverlay(o.overlay,n(o.query)),o.overlay=(t=o.query,i=n(o.query),\"string\"==typeof t?t=new RegExp(t.replace(/[\\-\\[\\]\\/\\{\\}\\(\\)\\*\\+\\?\\.\\\\\\^\\$\\|]/g,\"\\\\$&\"),i?\"gi\":\"g\"):t.global||(t=new RegExp(t.source,t.ignoreCase?\"gi\":\"g\")),{token:function(e){t.lastIndex=e.pos;var o=t.exec(e.string);if(o&&o.index==e.pos)return e.pos+=o[0].length||1,\"searching\";o?e.pos=o.index:e.skipToEnd()}}),e.addOverlay(o.overlay),e.showMatchesOnScrollbar&&(o.annotate&&(o.annotate.clear(),o.annotate=null),o.annotate=e.showMatchesOnScrollbar(o.query,n(o.query)))}function l(n,r,i,a){var l=o(n);if(l.query)return u(n,r);var p,d,y,m,g,h=n.getSelection()||l.lastQuery;if(h instanceof RegExp&&\"x^\"==h.source&&(h=null),i&&n.openDialog){var v=null,x=function(o,r){e.e_stop(r),o&&(o!=l.queryText&&(c(n,l,o),l.posFrom=l.posTo=n.getCursor()),v&&(v.style.opacity=1),u(n,r.shiftKey,function(e,o){var r;o.line<3&&document.querySelector&&(r=n.display.wrapper.querySelector(\".CodeMirror-dialog\"))&&r.getBoundingClientRect().bottom-4>n.cursorCoords(o,\"window\").top&&((v=r).style.opacity=.4)}))};d=s,y=h,m=x,g=function(r,t){var i=e.keyName(r),a=n.getOption(\"extraKeys\"),s=a&&a[i]||e.keyMap[n.getOption(\"keyMap\")][i];\"findNext\"==s||\"findPrev\"==s||\"findPersistentNext\"==s||\"findPersistentPrev\"==s?(e.e_stop(r),c(n,o(n),t),n.execCommand(s)):\"find\"!=s&&\"findPersistent\"!=s||(e.e_stop(r),x(t,r))},(p=n).openDialog(d,m,{value:y,selectValueOnOpen:!0,closeOnEnter:!1,onClose:function(){f(p)},onKeyDown:g}),a&&h&&(c(n,l,h),u(n,r))}else t(n,s,\"Search for:\",h,function(e){e&&!l.query&&n.operation(function(){c(n,l,e),l.posFrom=l.posTo=n.getCursor(),u(n,r)})})}function u(n,t,i){n.operation(function(){var a=o(n),s=r(n,a.query,t?a.posFrom:a.posTo);(s.find(t)||(s=r(n,a.query,t?e.Pos(n.lastLine()):e.Pos(n.firstLine(),0))).find(t))&&(n.setSelection(s.from(),s.to()),n.scrollIntoView({from:s.from(),to:s.to()},20),a.posFrom=s.from(),a.posTo=s.to(),i&&i(s.from(),s.to()))})}function f(e){e.operation(function(){var n=o(e);n.lastQuery=n.query,n.query&&(n.query=n.queryText=null,e.removeOverlay(n.overlay),n.annotate&&(n.annotate.clear(),n.annotate=null))})}var p=' <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use /re/ syntax for regexp search)</span>',d='<span class=\"CodeMirror-search-label\">With:</span> <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/>',y='<span class=\"CodeMirror-search-label\">Replace?</span> <button>Yes</button> <button>No</button> <button>All</button> <button>Stop</button>';function m(e,o,n){e.operation(function(){for(var t=r(e,o);t.findNext();)if(\"string\"!=typeof o){var i=e.getRange(t.from(),t.to()).match(o);t.replace(n.replace(/\\$(\\d)/g,function(e,o){return i[o]}))}else t.replace(n)})}function g(e,n){if(!e.getOption(\"readOnly\")){var s=e.getSelection()||o(e).lastQuery,c='<span class=\"CodeMirror-search-label\">'+(n?\"Replace all:\":\"Replace:\")+\"</span>\";t(e,c+p,c,s,function(o){o&&(o=a(o),t(e,d,\"Replace with:\",\"\",function(t){if(t=i(t),n)m(e,o,t);else{f(e);var a=r(e,o,e.getCursor(\"from\")),s=function(){var n,i,l,u,f,p=a.from();!(n=a.findNext())&&(a=r(e,o),!(n=a.findNext())||p&&a.from().line==p.line&&a.from().ch==p.ch)||(e.setSelection(a.from(),a.to()),e.scrollIntoView({from:a.from(),to:a.to()}),l=y,u=\"Replace?\",f=[function(){c(n)},s,function(){m(e,o,t)}],(i=e).openConfirm?i.openConfirm(l,f):confirm(u)&&f[0]())},c=function(e){a.replace(\"string\"==typeof o?t:t.replace(/\\$(\\d)/g,function(o,n){return e[n]})),s()};s()}}))})}}e.commands.find=function(e){f(e),l(e)},e.commands.findPersistent=function(e){f(e),l(e,!1,!0)},e.commands.findPersistentNext=function(e){l(e,!1,!0,!0)},e.commands.findPersistentPrev=function(e){l(e,!0,!0,!0)},e.commands.findNext=l,e.commands.findPrev=function(e){l(e,!0)},e.commands.clearSearch=f,e.commands.replace=g,e.commands.replaceAll=function(e){g(e,!0)}});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/search/search.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/search/jump-to-line.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(e){\"object\"==typeof exports&&\"object\"==typeof module?e(require(\"../../lib/codemirror\"),require(\"../dialog/dialog\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\",\"../dialog/dialog\"],e):e(CodeMirror)}(function(e){\"use strict\";function o(e,o){var r=Number(o);return/^[-+]/.test(o)?e.getCursor().line+r:r-1}e.commands.jumpToLine=function(e){var r,i,t,s,n,l=e.getCursor();r=e,i='Jump to line: <input type=\"text\" style=\"width: 10em\" class=\"CodeMirror-search-field\"/> <span style=\"color: #888\" class=\"CodeMirror-search-hint\">(Use line:column or scroll% syntax)</span>',t=\"Jump to line:\",s=l.line+1+\":\"+l.ch,n=function(r){var i;if(r)if(i=/^\\s*([\\+\\-]?\\d+)\\s*\\:\\s*(\\d+)\\s*$/.exec(r))e.setCursor(o(e,i[1]),Number(i[2]));else if(i=/^\\s*([\\+\\-]?\\d+(\\.\\d+)?)\\%\\s*/.exec(r)){var t=Math.round(e.lineCount()*Number(i[1])/100);/^[-+]/.test(i[1])&&(t=l.line+t+1),e.setCursor(t-1,l.ch)}else(i=/^\\s*\\:?\\s*([\\+\\-]?\\d+)\\s*/.exec(r))&&e.setCursor(o(e,i[1]),l.ch)},r.openDialog?r.openDialog(i,n,{value:s,selectValueOnOpen:!0}):n(prompt(t,s))},e.keyMap.default[\"Alt-G\"]=\"jumpToLine\"});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/search/jump-to-line.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror/addon/search/searchcursor.js": {
"text": "// CodeMirror, copyright (c) by Marijn Haverbeke and others\n// Distributed under an MIT license: http://codemirror.net/LICENSE\n!function(t){\"object\"==typeof exports&&\"object\"==typeof module?t(require(\"../../lib/codemirror\")):\"function\"==typeof define&&define.amd?define([\"../../lib/codemirror\"],t):t(CodeMirror)}(function(t){\"use strict\";var e,n,r=t.Pos;function i(t,e){for(var n,r,i=null!=(r=(n=t).flags)?r:(n.ignoreCase?\"i\":\"\")+(n.global?\"g\":\"\")+(n.multiline?\"m\":\"\"),o=i,l=0;l<e.length;l++)-1==o.indexOf(e.charAt(l))&&(o+=e.charAt(l));return i==o?t:new RegExp(t.source,o)}function o(t,e,n){e=i(e,\"g\");for(var o=n.line,l=n.ch,h=t.lastLine();o<=h;o++,l=0){e.lastIndex=l;var s=t.getLine(o),c=e.exec(s);if(c)return{from:r(o,c.index),to:r(o,c.index+c[0].length),match:c}}}function l(t,e){for(var n,r=0;;){e.lastIndex=r;var i=e.exec(t);if(!i)return n;if((r=(n=i).index+(n[0].length||1))==t.length)return n}}function h(t,e,n,r){if(t.length==e.length)return n;for(var i=0,o=n+Math.max(0,t.length-e.length);;){if(i==o)return i;var l=i+o>>1,h=r(t.slice(0,l)).length;if(h==n)return l;h>n?o=l:i=l+1}}function s(t,s,c,f){var u;this.atOccurrence=!1,this.doc=t,c=c?t.clipPos(c):r(0,0),this.pos={from:c,to:c},\"object\"==typeof f?u=f.caseFold:(u=f,f=null),\"string\"==typeof s?(null==u&&(u=!1),this.matches=function(i,o){return(i?function(t,i,o,l){if(!i.length)return null;var s=l?e:n,c=s(i).split(/\\r|\\n\\r?/);t:for(var f=o.line,u=o.ch,a=t.firstLine()-1+c.length;f>=a;f--,u=-1){var g=t.getLine(f);u>-1&&(g=g.slice(0,u));var m=s(g);if(1==c.length){var d=m.lastIndexOf(c[0]);if(-1==d)continue t;return{from:r(f,h(g,m,d,s)),to:r(f,h(g,m,d+c[0].length,s))}}var v=c[c.length-1];if(m.slice(0,v.length)==v){var p=1;for(o=f-c.length+1;p<c.length-1;p++)if(s(t.getLine(o+p))!=c[p])continue t;var x=t.getLine(f+1-c.length),L=s(x);if(L.slice(L.length-c[0].length)==c[0])return{from:r(f+1-c.length,h(x,L,x.length-c[0].length,s)),to:r(f,h(g,m,v.length,s))}}}}:function(t,i,o,l){if(!i.length)return null;var s=l?e:n,c=s(i).split(/\\r|\\n\\r?/);t:for(var f=o.line,u=o.ch,a=t.lastLine()+1-c.length;f<=a;f++,u=0){var g=t.getLine(f).slice(u),m=s(g);if(1==c.length){var d=m.indexOf(c[0]);if(-1==d)continue t;return o=h(g,m,d,s)+u,{from:r(f,h(g,m,d,s)+u),to:r(f,h(g,m,d+c[0].length,s)+u)}}var v=m.length-c[0].length;if(m.slice(v)==c[0]){for(var p=1;p<c.length-1;p++)if(s(t.getLine(f+p))!=c[p])continue t;var x=t.getLine(f+c.length-1),L=s(x),C=c[c.length-1];if(L.slice(0,C.length)==C)return{from:r(f,h(g,m,v,s)+u),to:r(f+c.length-1,h(x,L,C.length,s))}}}})(t,s,o,u)}):(s=i(s,\"gm\"),f&&!1===f.multiline?this.matches=function(e,n){return(e?function(t,e,n){e=i(e,\"g\");for(var o=n.line,h=n.ch,s=t.firstLine();o>=s;o--,h=-1){var c=t.getLine(o);h>-1&&(c=c.slice(0,h));var f=l(c,e);if(f)return{from:r(o,f.index),to:r(o,f.index+f[0].length),match:f}}}:o)(t,s,n)}:this.matches=function(e,n){return(e?function(t,e,n){e=i(e,\"gm\");for(var o,h=1,s=n.line,c=t.firstLine();s>=c;){for(var f=0;f<h;f++){var u=t.getLine(s--);o=null==o?u.slice(0,n.ch):u+\"\\n\"+o}h*=2;var a=l(o,e);if(a){var g=o.slice(0,a.index).split(\"\\n\"),m=a[0].split(\"\\n\"),d=s+g.length,v=g[g.length-1].length;return{from:r(d,v),to:r(d+m.length-1,1==m.length?v+m[0].length:m[m.length-1].length),match:a}}}}:function(t,e,n){if(!/\\\\s|\\\\n|\\n|\\\\W|\\\\D|\\[\\^/.test(e.source))return o(t,e,n);e=i(e,\"gm\");for(var l,h=1,s=n.line,c=t.lastLine();s<=c;){for(var f=0;f<h&&!(s>c);f++){var u=t.getLine(s++);l=null==l?u:l+\"\\n\"+u}h*=2,e.lastIndex=n.ch;var a=e.exec(l);if(a){var g=l.slice(0,a.index).split(\"\\n\"),m=a[0].split(\"\\n\"),d=n.line+g.length-1,v=g[g.length-1].length;return{from:r(d,v),to:r(d+m.length-1,1==m.length?v+m[0].length:m[m.length-1].length),match:a}}}})(t,s,n)})}String.prototype.normalize?(e=function(t){return t.normalize(\"NFD\").toLowerCase()},n=function(t){return t.normalize(\"NFD\")}):(e=function(t){return t.toLowerCase()},n=function(t){return t}),s.prototype={findNext:function(){return this.find(!1)},findPrevious:function(){return this.find(!0)},find:function(e){for(var n=this.matches(e,this.doc.clipPos(e?this.pos.from:this.pos.to));n&&0==t.cmpPos(n.from,n.to);)e?n.from.ch?n.from=r(n.from.line,n.from.ch-1):n=n.from.line==this.doc.firstLine()?null:this.matches(e,this.doc.clipPos(r(n.from.line-1))):n.to.ch<this.doc.getLine(n.to.line).length?n.to=r(n.to.line,n.to.ch+1):n=n.to.line==this.doc.lastLine()?null:this.matches(e,r(n.to.line+1,0));if(n)return this.pos=n,this.atOccurrence=!0,this.pos.match||!0;var i=r(e?this.doc.firstLine():this.doc.lastLine()+1,0);return this.pos={from:i,to:i},this.atOccurrence=!1},from:function(){if(this.atOccurrence)return this.pos.from},to:function(){if(this.atOccurrence)return this.pos.to},replace:function(e,n){if(this.atOccurrence){var i=t.splitLines(e);this.doc.replaceRange(i,this.pos.from,this.pos.to,n),this.pos.to=r(this.pos.from.line+i.length-1,i[i.length-1].length+(1==i.length?this.pos.from.ch:0))}}},t.defineExtension(\"getSearchCursor\",function(t,e,n){return new s(this.doc,t,e,n)}),t.defineDocExtension(\"getSearchCursor\",function(t,e,n){return new s(this,t,e,n)}),t.defineExtension(\"selectMatches\",function(e,n){for(var r=[],i=this.getSearchCursor(e,this.getCursor(\"from\"),n);i.findNext()&&!(t.cmpPos(i.to(),this.getCursor(\"to\"))>0);)r.push({anchor:i.from(),head:i.to()});r.length&&this.setSelections(r,0)})});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/codemirror/addon/search/searchcursor.js",
"module-type": "codemirror"
},
"$:/plugins/tiddlywiki/codemirror-search-replace/readme": {
"title": "$:/plugins/tiddlywiki/codemirror-search-replace/readme",
"text": "This plugin enhances the [[CodeMirror|http://codemirror.net]] text editor with Search and Replace functionality. It needs the latest [[CodeMirror plugin|$:/plugins/tiddlywiki/codemirror]] to be installed\n\nIt adds these Keyboard Shortcuts to ~CodeMirror:\n\n|Shortcut |Function |h\n|Ctrl-F / Cmd-F |Start searching |\n|Ctrl-G / Cmd-G / Shift-F3 |Find next |\n|Shift-Ctrl-G / Shift-Cmd-G / F3 |Find previous |\n|Shift-Ctrl-F / Cmd-Option-F |Replace |\n|Shift-Ctrl-R / Shift-Cmd-Option-F |Replace all |\n|Alt-F |Persistent search (dialog doesn't autoclose, enter to find next, Shift-Enter to find previous) |\n|Alt-G |Jump to line |\n\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/d3/barwidget.js": {
"title": "$:/plugins/tiddlywiki/d3/barwidget.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/d3/barwidget.js\ntype: application/javascript\nmodule-type: widget\n\nA widget for displaying stacked or grouped bar charts. Derived from http://bl.ocks.org/mbostock/3943967\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\td3 = require(\"$:/plugins/tiddlywiki/d3/d3.js\").d3;\n\nvar BarWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nBarWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nBarWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the chart\n\tvar chart = this.createChart(parent,nextSibling);\n\tthis.updateChart = chart.updateChart;\n\tif(this.updateChart) {\n\t\tthis.updateChart();\n\t}\n\t// Insert the chart into the DOM and render any children\n\tparent.insertBefore(chart.domNode,nextSibling);\n\tthis.domNodes.push(chart.domNode);\n};\n\nBarWidget.prototype.createChart = function(parent,nextSibling) {\n\t// Get the data we're plotting\n\tvar data = this.wiki.getTiddlerData(this.barData),\n\t\tn,m,stack,layers;\n\tif(data) {\n\t\tn = data.layers;\n\t\tm = data.samples;\n\t\tlayers = data.data;\n\t} else { // Use randomly generated data if we don't have any\n\t\tn = 4; // number of layers\n\t\tm = 58; // number of samples per layer\n\t\tstack = d3.layout.stack();\n\t\tlayers = stack(d3.range(n).map(function() { return bumpLayer(m, 0.1); }));\n\t}\n\t// Calculate the maximum data values\n\tvar yGroupMax = d3.max(layers, function(layer) { return d3.max(layer, function(d) { return d.y; }); }),\n\t\tyStackMax = d3.max(layers, function(layer) { return d3.max(layer, function(d) { return d.y0 + d.y; }); });\n\t// Calculate margins and width and height\n\tvar margin = {top: 40, right: 10, bottom: 20, left: 10},\n\t\twidth = 960 - margin.left - margin.right,\n\t\theight = 500 - margin.top - margin.bottom;\n\t// x-scale\n\tvar x = d3.scale.ordinal()\n\t\t.domain(d3.range(m))\n\t\t.rangeRoundBands([0, width], 0.08);\n\t// y-scale\n\tvar y = d3.scale.linear()\n\t\t.domain([0, yStackMax])\n\t\t.range([height, 0]);\n\t// Array of colour values\n\tvar color = d3.scale.linear()\n\t\t.domain([0, n - 1])\n\t\t.range([\"#aad\", \"#556\"]);\n\t// x-axis\n\tvar xAxis = d3.svg.axis()\n\t\t.scale(x)\n\t\t.tickSize(0)\n\t\t.tickPadding(6)\n\t\t.orient(\"bottom\");\n\t// Create SVG element\n\tvar svgElement = d3.select(parent).insert(\"svg\",function() {return nextSibling;})\n\t\t.attr(\"viewBox\", \"0 0 960 500\")\n\t\t.attr(\"preserveAspectRatio\", \"xMinYMin meet\")\n\t\t.attr(\"width\", width + margin.left + margin.right)\n\t\t.attr(\"height\", height + margin.top + margin.bottom);\n\t// Create main group\n\tvar mainGroup = svgElement.append(\"g\")\n\t\t.attr(\"transform\", \"translate(\" + margin.left + \",\" + margin.top + \")\");\n\t// Create the layers\n\tvar layer = mainGroup.selectAll(\".layer\")\n\t\t.data(layers)\n\t.enter().append(\"g\")\n\t\t.attr(\"class\", \"layer\")\n\t\t.style(\"fill\", function(d, i) { return color(i); });\n\t// Create the rectangles in each layer\n\tvar rect = layer.selectAll(\"rect\")\n\t\t.data(function(d) { return d; })\n\t.enter().append(\"rect\")\n\t\t.attr(\"x\", function(d) { return x(d.x); })\n\t\t.attr(\"y\", height)\n\t\t.attr(\"width\", x.rangeBand())\n\t\t.attr(\"height\", 0);\n\t// Transition the rectangles to their final height\n\trect.transition()\n\t\t.delay(function(d, i) { return i * 10; })\n\t\t.attr(\"y\", function(d) { return y(d.y0 + d.y); })\n\t\t.attr(\"height\", function(d) { return y(d.y0) - y(d.y0 + d.y); });\n\t// Add to the DOM\n\tmainGroup.append(\"g\")\n\t\t.attr(\"class\", \"x axis\")\n\t\t.attr(\"transform\", \"translate(0,\" + height + \")\")\n\t\t.call(xAxis);\n\tvar self = this;\n\t// Return the svg node\n\treturn {\n\t\tdomNode: svgElement[0][0],\n\t\tupdateChart: function() {\n\t\t\tif (self.barGrouped !== \"no\") {\n\t\t\t\ttransitionGrouped();\n\t\t\t} else {\n\t\t\t\ttransitionStacked();\n\t\t\t}\n\t\t}\n\t};\n\n\tfunction transitionGrouped() {\n\t\ty.domain([0, yGroupMax]);\n\t\trect.transition()\n\t\t\t.duration(500)\n\t\t\t.delay(function(d, i) { return i * 10; })\n\t\t\t.attr(\"x\", function(d, i, j) { return x(d.x) + x.rangeBand() / n * j; })\n\t\t\t.attr(\"width\", x.rangeBand() / n)\n\t\t\t.transition()\n\t\t\t.attr(\"y\", function(d) { return y(d.y); })\n\t\t\t.attr(\"height\", function(d) { return height - y(d.y); });\n\t}\n\n\tfunction transitionStacked() {\n\t\ty.domain([0, yStackMax]);\n\t\trect.transition()\n\t\t\t.duration(500)\n\t\t\t.delay(function(d, i) { return i * 10; })\n\t\t\t.attr(\"y\", function(d) { return y(d.y0 + d.y); })\n\t\t\t.attr(\"height\", function(d) { return y(d.y0) - y(d.y0 + d.y); })\n\t\t\t.transition()\n\t\t\t.attr(\"x\", function(d) { return x(d.x); })\n\t\t\t.attr(\"width\", x.rangeBand());\n\t}\n\n\t// Inspired by Lee Byron's test data generator.\n\tfunction bumpLayer(n, o) {\n\t\tfunction bump(a) {\n\t\t\tvar x = 1 / (0.1 + Math.random()),\n\t\t\t\ty = 2 * Math.random() - 0.5,\n\t\t\t\tz = 10 / (0.1 + Math.random());\n\t\t\tfor (var i = 0; i < n; i++) {\n\t\t\tvar w = (i / n - y) * z;\n\t\t\ta[i] += x * Math.exp(-w * w);\n\t\t\t}\n\t\t}\n\t\tvar a = [], i;\n\t\tfor (i = 0; i < n; ++i) a[i] = o + o * Math.random();\n\t\tfor (i = 0; i < 5; ++i) bump(a);\n\t\treturn a.map(function(d, i) { return {x: i, y: Math.max(0, d)}; });\n\t}\n};\n\n/*\nCompute the internal state of the widget\n*/\nBarWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.barData = this.getAttribute(\"data\");\n\tthis.barGrouped = this.getAttribute(\"grouped\",\"no\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nBarWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.data || changedTiddlers[this.barData]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes.grouped) {\n\t\tthis.execute();\n\t\tif(this.updateChart) {\n\t\t\tthis.updateChart();\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexports.d3bar = BarWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/d3/base.tid": {
"title": "$:/plugins/tiddlywiki/d3/base.tid",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-barwidget {\n}\n\n.tc-barwidget text {\n font: 8px sans-serif;\n}\n\n.tc-barwidget .axis path,\n.tc-barwidget .axis line {\n fill: none;\n stroke: #000;\n shape-rendering: crispEdges;\n}\n"
},
"$:/plugins/tiddlywiki/d3/cloudwidget.js": {
"title": "$:/plugins/tiddlywiki/d3/cloudwidget.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/d3/cloudwidget.js\ntype: application/javascript\nmodule-type: widget\n\nA widget for displaying word clouds. Derived from https://github.com/jasondavies/d3-cloud\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget,\n\td3 = require(\"$:/plugins/tiddlywiki/d3/d3.js\").d3;\n\nif($tw.browser) {\n\t// Frightful hack to give the cloud plugin the global d3 variable it needs\n\twindow.d3 = d3;\n\td3.layout.cloud = require(\"$:/plugins/tiddlywiki/d3/d3.layout.cloud.js\").cloud;\n}\n\nvar CloudWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nCloudWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nCloudWidget.prototype.render = function(parent,nextSibling) {\n\t// Save the parent dom node\n\tthis.parentDomNode = parent;\n\t// Compute our attributes\n\tthis.computeAttributes();\n\t// Execute our logic\n\tthis.execute();\n\t// Create the chart\n\tvar chart = this.createChart(parent,nextSibling);\n\tthis.updateChart = chart.updateChart;\n\tif(this.updateChart) {\n\t\tthis.updateChart();\n\t}\n\t// Insert the chart into the DOM and render any children\n\tparent.insertBefore(chart.domNode,nextSibling);\n\tthis.domNodes.push(chart.domNode);\n};\n\nCloudWidget.prototype.createChart = function(parent,nextSibling) {\n\tvar self = this,\n\t\tfill = d3.scale.category20(),\n\t\tdata = this.wiki.getTiddlerData(this.cloudData);\n\t// Use dummy data if none provided\n\tif(!data) {\n\t\tdata = \"This word cloud does not have any data in it\".split(\" \").map(function(d) {\n\t\t\treturn {text: d, size: 10 + Math.random() * 90};\n\t\t});\n\t}\n\t// Create the svg element\n\tvar svgElement = d3.select(parent).insert(\"svg\",function() {return nextSibling;})\n\t\t.attr(\"width\", 600)\n\t\t.attr(\"height\", 400);\n\t// Create the main group\n\tvar mainGroup = svgElement\n\t\t.append(\"g\")\n\t\t.attr(\"transform\", \"translate(300,200)\");\n\t// Create the layout\n\tvar layout = d3.layout.cloud().size([600, 400])\n\t\t.words(data)\n\t\t.padding(5)\n\t\t.rotate(function() { return ~~(Math.random() * 5) * 30 - 60; })\n\t\t.font(\"Impact\")\n\t\t.fontSize(function(d) { return d.size*2; })\n\t\t.on(\"end\", draw)\n\t\t.start();\n\t// Function to draw all the words\n\tfunction draw(words) {\n\t\tmainGroup.selectAll(\"text\")\n\t\t\t.data(words)\n\t\t\t.enter().append(\"text\")\n\t\t\t.style(\"font-size\", function(d) { return d.size + \"px\"; })\n\t\t\t.style(\"font-family\", \"Impact\")\n\t\t\t.style(\"fill\", function(d, i) { return fill(i); })\n\t\t\t.attr(\"text-anchor\", \"middle\")\n\t\t\t.attr(\"transform\", function(d) {\n\t\t\t\treturn \"translate(\" + [d.x, d.y] + \")rotate(\" + d.rotate + \")\";\n\t\t\t})\n\t\t\t.text(function(d) { return d.text; });\n\t}\n\tfunction updateChart() {\n\t\tlayout.spiral(self.spiral);\n\t}\n\treturn {\n\t\tdomNode: svgElement[0][0],\n\t\tupdateChart: updateChart\n\t};\n};\n\n/*\nCompute the internal state of the widget\n*/\nCloudWidget.prototype.execute = function() {\n\t// Get the parameters from the attributes\n\tthis.cloudData = this.getAttribute(\"data\");\n\tthis.cloudSpiral = this.getAttribute(\"spiral\",\"archimedean\");\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nCloudWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.data || changedTiddlers[this.cloudData]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else if(changedAttributes.spiral) {\n\t\tthis.execute();\n\t\tif(this.updateChart) {\n\t\t\tthis.updateChart();\n\t\t}\n\t\treturn true;\n\t}\n\treturn false;\n};\n\nexports.d3cloud = CloudWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/d3/d3.js": {
"text": "var d3;if($tw.browser){\nd3=function(){function n(n){return null!=n&&!isNaN(n)}function t(n){return n.length}function e(n){for(var t=1;n*t%1;)t*=10;return t}function r(n,t){try{for(var e in t)Object.defineProperty(n.prototype,e,{value:t[e],enumerable:!1})}catch(r){n.prototype=t}}function i(){}function u(){}function a(n,t,e){return function(){var r=e.apply(t,arguments);return r===t?n:r}}function o(n,t){if(t in n)return t;t=t.charAt(0).toUpperCase()+t.substring(1);for(var e=0,r=Na.length;r>e;++e){var i=Na[e]+t;if(i in n)return i}}function c(n){for(var t=-1,e=n.length,r=[];++t<e;)r.push(n[t]);return r}function l(n){return Array.prototype.slice.call(n)}function s(){}function f(){}function h(n){function t(){for(var t,r=e,i=-1,u=r.length;++i<u;)(t=r[i].on)&&t.apply(this,arguments);return n}var e=[],r=new i;return t.on=function(t,i){var u,a=r.get(t);return arguments.length<2?a&&a.on:(a&&(a.on=null,e=e.slice(0,u=e.indexOf(a)).concat(e.slice(u+1)),r.remove(t)),i&&e.push(r.set(t,{on:i})),n)},t}function g(){da.event.preventDefault()}function p(){for(var n,t=da.event;n=t.sourceEvent;)t=n;return t}function d(n){for(var t=new f,e=0,r=arguments.length;++e<r;)t[arguments[e]]=h(t);return t.of=function(e,r){return function(i){try{var u=i.sourceEvent=da.event;i.target=n,da.event=i,t[i.type].apply(e,r)}finally{da.event=u}}},t}function m(n){return za(n,Fa),n}function v(n){return\"function\"==typeof n?n:function(){return Da(n,this)}}function y(n){return\"function\"==typeof n?n:function(){return ja(n,this)}}function M(n,t){function e(){this.removeAttribute(n)}function r(){this.removeAttributeNS(n.space,n.local)}function i(){this.setAttribute(n,t)}function u(){this.setAttributeNS(n.space,n.local,t)}function a(){var e=t.apply(this,arguments);null==e?this.removeAttribute(n):this.setAttribute(n,e)}function o(){var e=t.apply(this,arguments);null==e?this.removeAttributeNS(n.space,n.local):this.setAttributeNS(n.space,n.local,e)}return n=da.ns.qualify(n),null==t?n.local?r:e:\"function\"==typeof t?n.local?o:a:n.local?u:i}function x(n){return n.trim().replace(/\\s+/g,\" \")}function b(n){return new RegExp(\"(?:^|\\\\s+)\"+da.requote(n)+\"(?:\\\\s+|$)\",\"g\")}function _(n,t){function e(){for(var e=-1;++e<i;)n[e](this,t)}function r(){for(var e=-1,r=t.apply(this,arguments);++e<i;)n[e](this,r)}n=n.trim().split(/\\s+/).map(w);var i=n.length;return\"function\"==typeof t?r:e}function w(n){var t=b(n);return function(e,r){if(i=e.classList)return r?i.add(n):i.remove(n);var i=e.getAttribute(\"class\")||\"\";r?(t.lastIndex=0,t.test(i)||e.setAttribute(\"class\",x(i+\" \"+n))):e.setAttribute(\"class\",x(i.replace(t,\" \")))}}function S(n,t,e){function r(){this.style.removeProperty(n)}function i(){this.style.setProperty(n,t,e)}function u(){var r=t.apply(this,arguments);null==r?this.style.removeProperty(n):this.style.setProperty(n,r,e)}return null==t?r:\"function\"==typeof t?u:i}function E(n,t){function e(){delete this[n]}function r(){this[n]=t}function i(){var e=t.apply(this,arguments);null==e?delete this[n]:this[n]=e}return null==t?e:\"function\"==typeof t?i:r}function k(n){return\"function\"==typeof n?n:(n=da.ns.qualify(n)).local?function(){return ma.createElementNS(n.space,n.local)}:function(){return ma.createElementNS(this.namespaceURI,n)}}function A(n){return{__data__:n}}function N(n){return function(){return Ha(this,n)}}function q(n){return arguments.length||(n=da.ascending),function(t,e){return!t-!e||n(t.__data__,e.__data__)}}function T(n,t){for(var e=0,r=n.length;r>e;e++)for(var i,u=n[e],a=0,o=u.length;o>a;a++)(i=u[a])&&t(i,a,e);return n}function C(n){return za(n,Oa),n}function z(n){var t,e;return function(r,i,u){var a,o=n[u].update,c=o.length;for(u!=e&&(e=u,t=0),i>=t&&(t=i+1);!(a=o[t])&&++t<c;);return a}}function D(n,t,e){function r(){var t=this[a];t&&(this.removeEventListener(n,t,t.$),delete this[a])}function i(){var i=c(t,qa(arguments));r.call(this),this.addEventListener(n,this[a]=i,i.$=e),i._=t}function u(){var t,e=new RegExp(\"^__on([^.]+)\"+da.requote(n)+\"$\");for(var r in this)if(t=r.match(e)){var i=this[r];this.removeEventListener(t[1],i,i.$),delete this[r]}}var a=\"__on\"+n,o=n.indexOf(\".\"),c=j;o>0&&(n=n.substring(0,o));var l=Ra.get(n);return l&&(n=l,c=L),o?t?i:r:t?s:u}function j(n,t){return function(e){var r=da.event;da.event=e,t[0]=this.__data__;try{n.apply(this,t)}finally{da.event=r}}}function L(n,t){var e=j(n,t);return function(n){var t=this,r=n.relatedTarget;r&&(r===t||8&r.compareDocumentPosition(t))||e.call(t,n)}}function H(){var n=\".dragsuppress-\"+ ++Ia,t=\"touchmove\"+n,e=\"selectstart\"+n,r=\"dragstart\"+n,i=\"click\"+n,u=da.select(ya).on(t,g).on(e,g).on(r,g),a=va.style,o=a[Ua];return a[Ua]=\"none\",function(t){function e(){u.on(i,null)}u.on(n,null),a[Ua]=o,t&&(u.on(i,function(){g(),e()},!0),setTimeout(e,0))}}function F(n,t){var e=n.ownerSVGElement||n;if(e.createSVGPoint){var r=e.createSVGPoint();if(0>Va&&(ya.scrollX||ya.scrollY)){e=da.select(\"body\").append(\"svg\").style({position:\"absolute\",top:0,left:0,margin:0,padding:0,border:\"none\"},\"important\");var i=e[0][0].getScreenCTM();Va=!(i.f||i.e),e.remove()}return Va?(r.x=t.pageX,r.y=t.pageY):(r.x=t.clientX,r.y=t.clientY),r=r.matrixTransform(n.getScreenCTM().inverse()),[r.x,r.y]}var u=n.getBoundingClientRect();return[t.clientX-u.left-n.clientLeft,t.clientY-u.top-n.clientTop]}function P(){}function O(n,t,e){return new Y(n,t,e)}function Y(n,t,e){this.h=n,this.s=t,this.l=e}function R(n,t,e){function r(n){return n>360?n-=360:0>n&&(n+=360),60>n?u+(a-u)*n/60:180>n?a:240>n?u+(a-u)*(240-n)/60:u}function i(n){return Math.round(255*r(n))}var u,a;return n=isNaN(n)?0:(n%=360)<0?n+360:n,t=isNaN(t)?0:0>t?0:t>1?1:t,e=0>e?0:e>1?1:e,a=.5>=e?e*(1+t):e+t-e*t,u=2*e-a,it(i(n+120),i(n),i(n-120))}function U(n){return n>0?1:0>n?-1:0}function I(n){return n>1?0:-1>n?Wa:Math.acos(n)}function V(n){return n>1?Wa/2:-1>n?-Wa/2:Math.asin(n)}function X(n){return(Math.exp(n)-Math.exp(-n))/2}function Z(n){return(Math.exp(n)+Math.exp(-n))/2}function B(n){return(n=Math.sin(n/2))*n}function $(n,t,e){return new W(n,t,e)}function W(n,t,e){this.h=n,this.c=t,this.l=e}function J(n,t,e){return isNaN(n)&&(n=0),isNaN(t)&&(t=0),G(e,Math.cos(n*=Ka)*t,Math.sin(n)*t)}function G(n,t,e){return new K(n,t,e)}function K(n,t,e){this.l=n,this.a=t,this.b=e}function Q(n,t,e){var r=(n+16)/116,i=r+t/500,u=r-e/200;return i=tt(i)*eo,r=tt(r)*ro,u=tt(u)*io,it(rt(3.2404542*i-1.5371385*r-.4985314*u),rt(-.969266*i+1.8760108*r+.041556*u),rt(.0556434*i-.2040259*r+1.0572252*u))}function nt(n,t,e){return n>0?$(Math.atan2(e,t)*Qa,Math.sqrt(t*t+e*e),n):$(0/0,0/0,n)}function tt(n){return n>.206893034?n*n*n:(n-4/29)/7.787037}function et(n){return n>.008856?Math.pow(n,1/3):7.787037*n+4/29}function rt(n){return Math.round(255*(.00304>=n?12.92*n:1.055*Math.pow(n,1/2.4)-.055))}function it(n,t,e){return new ut(n,t,e)}function ut(n,t,e){this.r=n,this.g=t,this.b=e}function at(n){return 16>n?\"0\"+Math.max(0,n).toString(16):Math.min(255,n).toString(16)}function ot(n,t,e){var r,i,u,a=0,o=0,c=0;if(r=/([a-z]+)\\((.*)\\)/i.exec(n))switch(i=r[2].split(\",\"),r[1]){case\"hsl\":return e(parseFloat(i[0]),parseFloat(i[1])/100,parseFloat(i[2])/100);case\"rgb\":return t(ft(i[0]),ft(i[1]),ft(i[2]))}return(u=oo.get(n))?t(u.r,u.g,u.b):(null!=n&&\"#\"===n.charAt(0)&&(4===n.length?(a=n.charAt(1),a+=a,o=n.charAt(2),o+=o,c=n.charAt(3),c+=c):7===n.length&&(a=n.substring(1,3),o=n.substring(3,5),c=n.substring(5,7)),a=parseInt(a,16),o=parseInt(o,16),c=parseInt(c,16)),t(a,o,c))}function ct(n,t,e){var r,i,u=Math.min(n/=255,t/=255,e/=255),a=Math.max(n,t,e),o=a-u,c=(a+u)/2;return o?(i=.5>c?o/(a+u):o/(2-a-u),r=n==a?(t-e)/o+(e>t?6:0):t==a?(e-n)/o+2:(n-t)/o+4,r*=60):(r=0/0,i=c>0&&1>c?0:r),O(r,i,c)}function lt(n,t,e){n=st(n),t=st(t),e=st(e);var r=et((.4124564*n+.3575761*t+.1804375*e)/eo),i=et((.2126729*n+.7151522*t+.072175*e)/ro),u=et((.0193339*n+.119192*t+.9503041*e)/io);return G(116*i-16,500*(r-i),200*(i-u))}function st(n){return(n/=255)<=.04045?n/12.92:Math.pow((n+.055)/1.055,2.4)}function ft(n){var t=parseFloat(n);return\"%\"===n.charAt(n.length-1)?Math.round(2.55*t):t}function ht(n){return\"function\"==typeof n?n:function(){return n}}function gt(n){return n}function pt(n){return function(t,e,r){return 2===arguments.length&&\"function\"==typeof e&&(r=e,e=null),dt(t,e,n,r)}}function dt(n,t,e,r){function i(){var n,t=c.status;if(!t&&c.responseText||t>=200&&300>t||304===t){try{n=e.call(u,c)}catch(r){return a.error.call(u,r),void 0}a.load.call(u,n)}else a.error.call(u,c)}var u={},a=da.dispatch(\"progress\",\"load\",\"error\"),o={},c=new XMLHttpRequest,l=null;return!ya.XDomainRequest||\"withCredentials\"in c||!/^(http(s)?:)?\\/\\//.test(n)||(c=new XDomainRequest),\"onload\"in c?c.onload=c.onerror=i:c.onreadystatechange=function(){c.readyState>3&&i()},c.onprogress=function(n){var t=da.event;da.event=n;try{a.progress.call(u,c)}finally{da.event=t}},u.header=function(n,t){return n=(n+\"\").toLowerCase(),arguments.length<2?o[n]:(null==t?delete o[n]:o[n]=t+\"\",u)},u.mimeType=function(n){return arguments.length?(t=null==n?null:n+\"\",u):t},u.responseType=function(n){return arguments.length?(l=n,u):l},u.response=function(n){return e=n,u},[\"get\",\"post\"].forEach(function(n){u[n]=function(){return u.send.apply(u,[n].concat(qa(arguments)))}}),u.send=function(e,r,i){if(2===arguments.length&&\"function\"==typeof r&&(i=r,r=null),c.open(e,n,!0),null==t||\"accept\"in o||(o.accept=t+\",*/*\"),c.setRequestHeader)for(var a in o)c.setRequestHeader(a,o[a]);return null!=t&&c.overrideMimeType&&c.overrideMimeType(t),null!=l&&(c.responseType=l),null!=i&&u.on(\"error\",i).on(\"load\",function(n){i(null,n)}),c.send(null==r?null:r),u},u.abort=function(){return c.abort(),u},da.rebind(u,a,\"on\"),null==r?u:u.get(mt(r))}function mt(n){return 1===n.length?function(t,e){n(null==t?e:null)}:n}function vt(){var n=yt(),t=Mt()-n;t>24?(isFinite(t)&&(clearTimeout(fo),fo=setTimeout(vt,t)),so=0):(so=1,ho(vt))}function yt(){for(var n=Date.now(),t=co;t;)n>=t.time&&(t.flush=t.callback(n-t.time)),t=t.next;return n}function Mt(){for(var n,t=co,e=1/0;t;)t.flush?t=n?n.next=t.next:co=t.next:(t.time<e&&(e=t.time),t=(n=t).next);return lo=n,e}function xt(n,t){var e=Math.pow(10,3*Math.abs(8-t));return{scale:t>8?function(n){return n/e}:function(n){return n*e},symbol:n}}function bt(n,t){return t-(n?Math.ceil(Math.log(n)/Math.LN10):1)}function _t(n){return n+\"\"}function wt(){}function St(n,t,e){var r=e.s=n+t,i=r-n,u=r-i;e.t=n-u+(t-i)}function Et(n,t){n&&Eo.hasOwnProperty(n.type)&&Eo[n.type](n,t)}function kt(n,t,e){var r,i=-1,u=n.length-e;for(t.lineStart();++i<u;)r=n[i],t.point(r[0],r[1]);t.lineEnd()}function At(n,t){var e=-1,r=n.length;for(t.polygonStart();++e<r;)kt(n[e],t,1);t.polygonEnd()}function Nt(){function n(n,t){n*=Ka,t=t*Ka/2+Wa/4;var e=n-r,a=Math.cos(t),o=Math.sin(t),c=u*o,l=i*a+c*Math.cos(e),s=c*Math.sin(e);Ao.add(Math.atan2(s,l)),r=n,i=a,u=o}var t,e,r,i,u;No.point=function(a,o){No.point=n,r=(t=a)*Ka,i=Math.cos(o=(e=o)*Ka/2+Wa/4),u=Math.sin(o)},No.lineEnd=function(){n(t,e)}}function qt(n){var t=n[0],e=n[1],r=Math.cos(e);return[r*Math.cos(t),r*Math.sin(t),Math.sin(e)]}function Tt(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]}function Ct(n,t){return[n[1]*t[2]-n[2]*t[1],n[2]*t[0]-n[0]*t[2],n[0]*t[1]-n[1]*t[0]]}function zt(n,t){n[0]+=t[0],n[1]+=t[1],n[2]+=t[2]}function Dt(n,t){return[n[0]*t,n[1]*t,n[2]*t]}function jt(n){var t=Math.sqrt(n[0]*n[0]+n[1]*n[1]+n[2]*n[2]);n[0]/=t,n[1]/=t,n[2]/=t}function Lt(n){return[Math.atan2(n[1],n[0]),V(n[2])]}function Ht(n,t){return Math.abs(n[0]-t[0])<Ja&&Math.abs(n[1]-t[1])<Ja}function Ft(n,t){n*=Ka;var e=Math.cos(t*=Ka);Pt(e*Math.cos(n),e*Math.sin(n),Math.sin(t))}function Pt(n,t,e){++qo,Co+=(n-Co)/qo,zo+=(t-zo)/qo,Do+=(e-Do)/qo}function Ot(){function n(n,i){n*=Ka;var u=Math.cos(i*=Ka),a=u*Math.cos(n),o=u*Math.sin(n),c=Math.sin(i),l=Math.atan2(Math.sqrt((l=e*c-r*o)*l+(l=r*a-t*c)*l+(l=t*o-e*a)*l),t*a+e*o+r*c);To+=l,jo+=l*(t+(t=a)),Lo+=l*(e+(e=o)),Ho+=l*(r+(r=c)),Pt(t,e,r)}var t,e,r;Yo.point=function(i,u){i*=Ka;var a=Math.cos(u*=Ka);t=a*Math.cos(i),e=a*Math.sin(i),r=Math.sin(u),Yo.point=n,Pt(t,e,r)}}function Yt(){Yo.point=Ft}function Rt(){function n(n,t){n*=Ka;var e=Math.cos(t*=Ka),a=e*Math.cos(n),o=e*Math.sin(n),c=Math.sin(t),l=i*c-u*o,s=u*a-r*c,f=r*o-i*a,h=Math.sqrt(l*l+s*s+f*f),g=r*a+i*o+u*c,p=h&&-I(g)/h,d=Math.atan2(h,g);Fo+=p*l,Po+=p*s,Oo+=p*f,To+=d,jo+=d*(r+(r=a)),Lo+=d*(i+(i=o)),Ho+=d*(u+(u=c)),Pt(r,i,u)}var t,e,r,i,u;Yo.point=function(a,o){t=a,e=o,Yo.point=n,a*=Ka;var c=Math.cos(o*=Ka);r=c*Math.cos(a),i=c*Math.sin(a),u=Math.sin(o),Pt(r,i,u)},Yo.lineEnd=function(){n(t,e),Yo.lineEnd=Yt,Yo.point=Ft}}function Ut(){return!0}function It(n,t,e,r,i){var u=[],a=[];if(n.forEach(function(n){if(!((t=n.length-1)<=0)){var t,e=n[0],r=n[t];if(Ht(e,r)){i.lineStart();for(var o=0;t>o;++o)i.point((e=n[o])[0],e[1]);return i.lineEnd(),void 0}var c={point:e,points:n,other:null,visited:!1,entry:!0,subject:!0},l={point:e,points:[e],other:c,visited:!1,entry:!1,subject:!1};c.other=l,u.push(c),a.push(l),c={point:r,points:[r],other:null,visited:!1,entry:!1,subject:!0},l={point:r,points:[r],other:c,visited:!1,entry:!0,subject:!1},c.other=l,u.push(c),a.push(l)}}),a.sort(t),Vt(u),Vt(a),u.length){if(e)for(var o=1,c=!e(a[0].point),l=a.length;l>o;++o)a[o].entry=c=!c;for(var s,f,h,g=u[0];;){for(s=g;s.visited;)if((s=s.next)===g)return;f=s.points,i.lineStart();do{if(s.visited=s.other.visited=!0,s.entry){if(s.subject)for(var o=0;o<f.length;o++)i.point((h=f[o])[0],h[1]);else r(s.point,s.next.point,1,i);s=s.next}else{if(s.subject){f=s.prev.points;for(var o=f.length;--o>=0;)i.point((h=f[o])[0],h[1])}else r(s.point,s.prev.point,-1,i);s=s.prev}s=s.other,f=s.points}while(!s.visited);i.lineEnd()}}}function Vt(n){if(t=n.length){for(var t,e,r=0,i=n[0];++r<t;)i.next=e=n[r],e.prev=i,i=e;i.next=e=n[0],e.prev=i}}function Xt(n,t,e,r){return function(i){function u(t,e){n(t,e)&&i.point(t,e)}function a(n,t){d.point(n,t)}function o(){m.point=a,d.lineStart()}function c(){m.point=u,d.lineEnd()}function l(n,t){y.point(n,t),p.push([n,t])}function s(){y.lineStart(),p=[]}function f(){l(p[0][0],p[0][1]),y.lineEnd();var n,t=y.clean(),e=v.buffer(),r=e.length;if(p.pop(),g.push(p),p=null,r){if(1&t){n=e[0];var u,r=n.length-1,a=-1;for(i.lineStart();++a<r;)i.point((u=n[a])[0],u[1]);return i.lineEnd(),void 0}r>1&&2&t&&e.push(e.pop().concat(e.shift())),h.push(e.filter(Zt))}}var h,g,p,d=t(i),m={point:u,lineStart:o,lineEnd:c,polygonStart:function(){m.point=l,m.lineStart=s,m.lineEnd=f,h=[],g=[],i.polygonStart()},polygonEnd:function(){m.point=u,m.lineStart=o,m.lineEnd=c,h=da.merge(h),h.length?It(h,$t,null,e,i):r(g)&&(i.lineStart(),e(null,null,1,i),i.lineEnd()),i.polygonEnd(),h=g=null},sphere:function(){i.polygonStart(),i.lineStart(),e(null,null,1,i),i.lineEnd(),i.polygonEnd()}},v=Bt(),y=t(v);return m}}function Zt(n){return n.length>1}function Bt(){var n,t=[];return{lineStart:function(){t.push(n=[])},point:function(t,e){n.push([t,e])},lineEnd:s,buffer:function(){var e=t;return t=[],n=null,e},rejoin:function(){t.length>1&&t.push(t.pop().concat(t.shift()))}}}function $t(n,t){return((n=n.point)[0]<0?n[1]-Wa/2-Ja:Wa/2-n[1])-((t=t.point)[0]<0?t[1]-Wa/2-Ja:Wa/2-t[1])}function Wt(n,t){var e=n[0],r=n[1],i=[Math.sin(e),-Math.cos(e),0],u=0,a=!1,o=!1,c=0;Ao.reset();for(var l=0,s=t.length;s>l;++l){var f=t[l],h=f.length;if(h){for(var g=f[0],p=g[0],d=g[1]/2+Wa/4,m=Math.sin(d),v=Math.cos(d),y=1;;){y===h&&(y=0),n=f[y];var M=n[0],x=n[1]/2+Wa/4,b=Math.sin(x),_=Math.cos(x),w=M-p,S=Math.abs(w)>Wa,E=m*b;if(Ao.add(Math.atan2(E*Math.sin(w),v*_+E*Math.cos(w))),Math.abs(x)<Ja&&(o=!0),u+=S?w+(w>=0?2:-2)*Wa:w,S^p>=e^M>=e){var k=Ct(qt(g),qt(n));jt(k);var A=Ct(i,k);jt(A);var N=(S^w>=0?-1:1)*V(A[2]);r>N&&(c+=S^w>=0?1:-1)}if(!y++)break;p=M,m=b,v=_,g=n}Math.abs(u)>Ja&&(a=!0)}}return(!o&&!a&&0>Ao||-Ja>u)^1&c}function Jt(n){var t,e=0/0,r=0/0,i=0/0;return{lineStart:function(){n.lineStart(),t=1},point:function(u,a){var o=u>0?Wa:-Wa,c=Math.abs(u-e);Math.abs(c-Wa)<Ja?(n.point(e,r=(r+a)/2>0?Wa/2:-Wa/2),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(o,r),n.point(u,r),t=0):i!==o&&c>=Wa&&(Math.abs(e-i)<Ja&&(e-=i*Ja),Math.abs(u-o)<Ja&&(u-=o*Ja),r=Gt(e,r,u,a),n.point(i,r),n.lineEnd(),n.lineStart(),n.point(o,r),t=0),n.point(e=u,r=a),i=o},lineEnd:function(){n.lineEnd(),e=r=0/0},clean:function(){return 2-t}}}function Gt(n,t,e,r){var i,u,a=Math.sin(n-e);return Math.abs(a)>Ja?Math.atan((Math.sin(t)*(u=Math.cos(r))*Math.sin(e)-Math.sin(r)*(i=Math.cos(t))*Math.sin(n))/(i*u*a)):(t+r)/2}function Kt(n,t,e,r){var i;if(null==n)i=e*Wa/2,r.point(-Wa,i),r.point(0,i),r.point(Wa,i),r.point(Wa,0),r.point(Wa,-i),r.point(0,-i),r.point(-Wa,-i),r.point(-Wa,0),r.point(-Wa,i);else if(Math.abs(n[0]-t[0])>Ja){var u=(n[0]<t[0]?1:-1)*Wa;i=e*u/2,r.point(-u,i),r.point(0,i),r.point(u,i)}else r.point(t[0],t[1])}function Qt(n){return Wt(Uo,n)}function ne(n){function t(n,t){return Math.cos(n)*Math.cos(t)>a}function e(n){var e,u,a,c,s;return{lineStart:function(){c=a=!1,s=1},point:function(f,h){var g,p=[f,h],d=t(f,h),m=o?d?0:i(f,h):d?i(f+(0>f?Wa:-Wa),h):0;if(!e&&(c=a=d)&&n.lineStart(),d!==a&&(g=r(e,p),(Ht(e,g)||Ht(p,g))&&(p[0]+=Ja,p[1]+=Ja,d=t(p[0],p[1]))),d!==a)s=0,d?(n.lineStart(),g=r(p,e),n.point(g[0],g[1])):(g=r(e,p),n.point(g[0],g[1]),n.lineEnd()),e=g;else if(l&&e&&o^d){var v;m&u||!(v=r(p,e,!0))||(s=0,o?(n.lineStart(),n.point(v[0][0],v[0][1]),n.point(v[1][0],v[1][1]),n.lineEnd()):(n.point(v[1][0],v[1][1]),n.lineEnd(),n.lineStart(),n.point(v[0][0],v[0][1])))}!d||e&&Ht(e,p)||n.point(p[0],p[1]),e=p,a=d,u=m},lineEnd:function(){a&&n.lineEnd(),e=null},clean:function(){return s|(c&&a)<<1}}}function r(n,t,e){var r=qt(n),i=qt(t),u=[1,0,0],o=Ct(r,i),c=Tt(o,o),l=o[0],s=c-l*l;if(!s)return!e&&n;var f=a*c/s,h=-a*l/s,g=Ct(u,o),p=Dt(u,f),d=Dt(o,h);zt(p,d);var m=g,v=Tt(p,m),y=Tt(m,m),M=v*v-y*(Tt(p,p)-1);if(!(0>M)){var x=Math.sqrt(M),b=Dt(m,(-v-x)/y);if(zt(b,p),b=Lt(b),!e)return b;var _,w=n[0],S=t[0],E=n[1],k=t[1];w>S&&(_=w,w=S,S=_);var A=S-w,N=Math.abs(A-Wa)<Ja,q=N||Ja>A;if(!N&&E>k&&(_=E,E=k,k=_),q?N?E+k>0^b[1]<(Math.abs(b[0]-w)<Ja?E:k):E<=b[1]&&b[1]<=k:A>Wa^(w<=b[0]&&b[0]<=S)){var T=Dt(m,(-v+x)/y);return zt(T,p),[b,Lt(T)]}}}function i(t,e){var r=o?n:Wa-n,i=0;return-r>t?i|=1:t>r&&(i|=2),-r>e?i|=4:e>r&&(i|=8),i}function u(n){return Wt(c,n)}var a=Math.cos(n),o=a>0,c=[n,0],l=Math.abs(a)>Ja,s=Ee(n,6*Ka);return Xt(t,e,s,u)}function te(n,t,e,r){function i(r,i){return Math.abs(r[0]-n)<Ja?i>0?0:3:Math.abs(r[0]-e)<Ja?i>0?2:1:Math.abs(r[1]-t)<Ja?i>0?1:0:i>0?3:2}function u(n,t){return a(n.point,t.point)}function a(n,t){var e=i(n,1),r=i(t,1);return e!==r?e-r:0===e?t[1]-n[1]:1===e?n[0]-t[0]:2===e?n[1]-t[1]:t[0]-n[0]}function o(i,u){var a=u[0]-i[0],o=u[1]-i[1],c=[0,1];return Math.abs(a)<Ja&&Math.abs(o)<Ja?n<=i[0]&&i[0]<=e&&t<=i[1]&&i[1]<=r:ee(n-i[0],a,c)&&ee(i[0]-e,-a,c)&&ee(t-i[1],o,c)&&ee(i[1]-r,-o,c)?(c[1]<1&&(u[0]=i[0]+c[1]*a,u[1]=i[1]+c[1]*o),c[0]>0&&(i[0]+=c[0]*a,i[1]+=c[0]*o),!0):!1}return function(c){function l(u){var a=i(u,-1),o=s([0===a||3===a?n:e,a>1?r:t]);return o}function s(n){for(var t=0,e=M.length,r=n[1],i=0;e>i;++i)for(var u,a=1,o=M[i],c=o.length,l=o[0];c>a;++a)u=o[a],l[1]<=r?u[1]>r&&f(l,u,n)>0&&++t:u[1]<=r&&f(l,u,n)<0&&--t,l=u;return 0!==t}function f(n,t,e){return(t[0]-n[0])*(e[1]-n[1])-(e[0]-n[0])*(t[1]-n[1])}function h(u,o,c,l){var s=0,f=0;if(null==u||(s=i(u,c))!==(f=i(o,c))||a(u,o)<0^c>0){do l.point(0===s||3===s?n:e,s>1?r:t);while((s=(s+c+4)%4)!==f)}else l.point(o[0],o[1])}function g(i,u){return i>=n&&e>=i&&u>=t&&r>=u}function p(n,t){g(n,t)&&c.point(n,t)}function d(){T.point=v,M&&M.push(x=[]),A=!0,k=!1,S=E=0/0}function m(){y&&(v(b,_),w&&k&&q.rejoin(),y.push(q.buffer())),T.point=p,k&&c.lineEnd()}function v(n,t){n=Math.max(-Io,Math.min(Io,n)),t=Math.max(-Io,Math.min(Io,t));var e=g(n,t);if(M&&x.push([n,t]),A)b=n,_=t,w=e,A=!1,e&&(c.lineStart(),c.point(n,t));else if(e&&k)c.point(n,t);else{var r=[S,E],i=[n,t];o(r,i)?(k||(c.lineStart(),c.point(r[0],r[1])),c.point(i[0],i[1]),e||c.lineEnd()):e&&(c.lineStart(),c.point(n,t))}S=n,E=t,k=e}var y,M,x,b,_,w,S,E,k,A,N=c,q=Bt(),T={point:p,lineStart:d,lineEnd:m,polygonStart:function(){c=q,y=[],M=[]},polygonEnd:function(){c=N,(y=da.merge(y)).length?(c.polygonStart(),It(y,u,l,h,c),c.polygonEnd()):s([n,t])&&(c.polygonStart(),c.lineStart(),h(null,null,1,c),c.lineEnd(),c.polygonEnd()),y=M=x=null}};return T}}function ee(n,t,e){if(Math.abs(t)<Ja)return 0>=n;var r=n/t;if(t>0){if(r>e[1])return!1;r>e[0]&&(e[0]=r)}else{if(r<e[0])return!1;r<e[1]&&(e[1]=r)}return!0}function re(n,t){function e(e,r){return e=n(e,r),t(e[0],e[1])}return n.invert&&t.invert&&(e.invert=function(e,r){return e=t.invert(e,r),e&&n.invert(e[0],e[1])}),e}function ie(n){var t=0,e=Wa/3,r=ye(n),i=r(t,e);return i.parallels=function(n){return arguments.length?r(t=n[0]*Wa/180,e=n[1]*Wa/180):[180*(t/Wa),180*(e/Wa)]},i}function ue(n,t){function e(n,t){var e=Math.sqrt(u-2*i*Math.sin(t))/i;return[e*Math.sin(n*=i),a-e*Math.cos(n)]}var r=Math.sin(n),i=(r+Math.sin(t))/2,u=1+r*(2*i-r),a=Math.sqrt(u)/i;return e.invert=function(n,t){var e=a-t;return[Math.atan2(n,e)/i,V((u-(n*n+e*e)*i*i)/(2*i))]},e}function ae(){function n(n,t){Xo+=i*n-r*t,r=n,i=t}var t,e,r,i;Jo.point=function(u,a){Jo.point=n,t=r=u,e=i=a},Jo.lineEnd=function(){n(t,e)}}function oe(n,t){Zo>n&&(Zo=n),n>$o&&($o=n),Bo>t&&(Bo=t),t>Wo&&(Wo=t)}function ce(){function n(n,t){a.push(\"M\",n,\",\",t,u)}function t(n,t){a.push(\"M\",n,\",\",t),o.point=e}function e(n,t){a.push(\"L\",n,\",\",t)}function r(){o.point=n}function i(){a.push(\"Z\")}var u=le(4.5),a=[],o={point:n,lineStart:function(){o.point=t},lineEnd:r,polygonStart:function(){o.lineEnd=i},polygonEnd:function(){o.lineEnd=r,o.point=n},pointRadius:function(n){return u=le(n),o},result:function(){if(a.length){var n=a.join(\"\");return a=[],n}}};return o}function le(n){return\"m0,\"+n+\"a\"+n+\",\"+n+\" 0 1,1 0,\"+-2*n+\"a\"+n+\",\"+n+\" 0 1,1 0,\"+2*n+\"z\"}function se(n,t){Co+=n,zo+=t,++Do}function fe(){function n(n,r){var i=n-t,u=r-e,a=Math.sqrt(i*i+u*u);jo+=a*(t+n)/2,Lo+=a*(e+r)/2,Ho+=a,se(t=n,e=r)}var t,e;Ko.point=function(r,i){Ko.point=n,se(t=r,e=i)}}function he(){Ko.point=se}function ge(){function n(n,t){var e=n-r,u=t-i,a=Math.sqrt(e*e+u*u);jo+=a*(r+n)/2,Lo+=a*(i+t)/2,Ho+=a,a=i*n-r*t,Fo+=a*(r+n),Po+=a*(i+t),Oo+=3*a,se(r=n,i=t)}var t,e,r,i;Ko.point=function(u,a){Ko.point=n,se(t=r=u,e=i=a)},Ko.lineEnd=function(){n(t,e)}}function pe(n){function t(t,e){n.moveTo(t,e),n.arc(t,e,a,0,2*Wa)}function e(t,e){n.moveTo(t,e),o.point=r}function r(t,e){n.lineTo(t,e)}function i(){o.point=t}function u(){n.closePath()}var a=4.5,o={point:t,lineStart:function(){o.point=e},lineEnd:i,polygonStart:function(){o.lineEnd=u},polygonEnd:function(){o.lineEnd=i,o.point=t},pointRadius:function(n){return a=n,o},result:s};return o}function de(n){function t(t){function r(e,r){e=n(e,r),t.point(e[0],e[1])}function i(){M=0/0,S.point=a,t.lineStart()}function a(r,i){var a=qt([r,i]),o=n(r,i);e(M,x,y,b,_,w,M=o[0],x=o[1],y=r,b=a[0],_=a[1],w=a[2],u,t),t.point(M,x)}function o(){S.point=r,t.lineEnd()}function c(){i(),S.point=l,S.lineEnd=s}function l(n,t){a(f=n,h=t),g=M,p=x,d=b,m=_,v=w,S.point=a}function s(){e(M,x,y,b,_,w,g,p,f,d,m,v,u,t),S.lineEnd=o,o()}var f,h,g,p,d,m,v,y,M,x,b,_,w,S={point:r,lineStart:i,lineEnd:o,polygonStart:function(){t.polygonStart(),S.lineStart=c},polygonEnd:function(){t.polygonEnd(),S.lineStart=i}};return S}function e(t,u,a,o,c,l,s,f,h,g,p,d,m,v){var y=s-t,M=f-u,x=y*y+M*M;if(x>4*r&&m--){var b=o+g,_=c+p,w=l+d,S=Math.sqrt(b*b+_*_+w*w),E=Math.asin(w/=S),k=Math.abs(Math.abs(w)-1)<Ja?(a+h)/2:Math.atan2(_,b),A=n(k,E),N=A[0],q=A[1],T=N-t,C=q-u,z=M*T-y*C;(z*z/x>r||Math.abs((y*T+M*C)/x-.5)>.3||i>o*g+c*p+l*d)&&(e(t,u,a,o,c,l,N,q,k,b/=S,_/=S,w,m,v),v.point(N,q),e(N,q,k,b,_,w,s,f,h,g,p,d,m,v))}}var r=.5,i=Math.cos(30*Ka),u=16;return t.precision=function(n){return arguments.length?(u=(r=n*n)>0&&16,t):Math.sqrt(r)},t}function me(n){var t=de(function(t,e){return n([t*Qa,e*Qa])});return function(n){return n=t(n),{point:function(t,e){n.point(t*Ka,e*Ka)},sphere:function(){n.sphere()},lineStart:function(){n.lineStart()},lineEnd:function(){n.lineEnd()},polygonStart:function(){n.polygonStart()},polygonEnd:function(){n.polygonEnd()}}}}function ve(n){return ye(function(){return n})()}function ye(n){function t(n){return n=o(n[0]*Ka,n[1]*Ka),[n[0]*h+c,l-n[1]*h]}function e(n){return n=o.invert((n[0]-c)/h,(l-n[1])/h),n&&[n[0]*Qa,n[1]*Qa]}function r(){o=re(a=be(v,y,M),u);var n=u(d,m);return c=g-n[0]*h,l=p+n[1]*h,i()}function i(){return s&&(s.valid=!1,s=null),t}var u,a,o,c,l,s,f=de(function(n,t){return n=u(n,t),[n[0]*h+c,l-n[1]*h]}),h=150,g=480,p=250,d=0,m=0,v=0,y=0,M=0,x=Ro,b=gt,_=null,w=null;return t.stream=function(n){return s&&(s.valid=!1),s=Me(a,x(f(b(n)))),s.valid=!0,s},t.clipAngle=function(n){return arguments.length?(x=null==n?(_=n,Ro):ne((_=+n)*Ka),i()):_},t.clipExtent=function(n){return arguments.length?(w=n,b=null==n?gt:te(n[0][0],n[0][1],n[1][0],n[1][1]),i()):w},t.scale=function(n){return arguments.length?(h=+n,r()):h},t.translate=function(n){return arguments.length?(g=+n[0],p=+n[1],r()):[g,p]},t.center=function(n){return arguments.length?(d=n[0]%360*Ka,m=n[1]%360*Ka,r()):[d*Qa,m*Qa]},t.rotate=function(n){return arguments.length?(v=n[0]%360*Ka,y=n[1]%360*Ka,M=n.length>2?n[2]%360*Ka:0,r()):[v*Qa,y*Qa,M*Qa]},da.rebind(t,f,\"precision\"),function(){return u=n.apply(this,arguments),t.invert=u.invert&&e,r()}}function Me(n,t){return{point:function(e,r){r=n(e*Ka,r*Ka),e=r[0],t.point(e>Wa?e-2*Wa:-Wa>e?e+2*Wa:e,r[1])},sphere:function(){t.sphere()},lineStart:function(){t.lineStart()},lineEnd:function(){t.lineEnd()},polygonStart:function(){t.polygonStart()},polygonEnd:function(){t.polygonEnd()}}}function xe(n,t){return[n,t]}function be(n,t,e){return n?t||e?re(we(n),Se(t,e)):we(n):t||e?Se(t,e):xe}function _e(n){return function(t,e){return t+=n,[t>Wa?t-2*Wa:-Wa>t?t+2*Wa:t,e]}}function we(n){var t=_e(n);return t.invert=_e(-n),t}function Se(n,t){function e(n,t){var e=Math.cos(t),o=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*r+o*i;return[Math.atan2(c*u-s*a,o*r-l*i),V(s*u+c*a)]}var r=Math.cos(n),i=Math.sin(n),u=Math.cos(t),a=Math.sin(t);return e.invert=function(n,t){var e=Math.cos(t),o=Math.cos(n)*e,c=Math.sin(n)*e,l=Math.sin(t),s=l*u-c*a;return[Math.atan2(c*u+l*a,o*r+s*i),V(s*r-o*i)]},e}function Ee(n,t){var e=Math.cos(n),r=Math.sin(n);return function(i,u,a,o){null!=i?(i=ke(e,i),u=ke(e,u),(a>0?u>i:i>u)&&(i+=2*a*Wa)):(i=n+2*a*Wa,u=n);for(var c,l=a*t,s=i;a>0?s>u:u>s;s-=l)o.point((c=Lt([e,-r*Math.cos(s),-r*Math.sin(s)]))[0],c[1])}}function ke(n,t){var e=qt(t);e[0]-=n,jt(e);var r=I(-e[1]);return((-e[2]<0?-r:r)+2*Math.PI-Ja)%(2*Math.PI)}function Ae(n,t,e){var r=da.range(n,t-Ja,e).concat(t);return function(n){return r.map(function(t){return[n,t]})}}function Ne(n,t,e){var r=da.range(n,t-Ja,e).concat(t);return function(n){return r.map(function(t){return[t,n]})}}function qe(n){return n.source}function Te(n){return n.target}function Ce(n,t,e,r){var i=Math.cos(t),u=Math.sin(t),a=Math.cos(r),o=Math.sin(r),c=i*Math.cos(n),l=i*Math.sin(n),s=a*Math.cos(e),f=a*Math.sin(e),h=2*Math.asin(Math.sqrt(B(r-t)+i*a*B(e-n))),g=1/Math.sin(h),p=h?function(n){var t=Math.sin(n*=h)*g,e=Math.sin(h-n)*g,r=e*c+t*s,i=e*l+t*f,a=e*u+t*o;return[Math.atan2(i,r)*Qa,Math.atan2(a,Math.sqrt(r*r+i*i))*Qa]}:function(){return[n*Qa,t*Qa]};return p.distance=h,p}function ze(){function n(n,i){var u=Math.sin(i*=Ka),a=Math.cos(i),o=Math.abs((n*=Ka)-t),c=Math.cos(o);Qo+=Math.atan2(Math.sqrt((o=a*Math.sin(o))*o+(o=r*u-e*a*c)*o),e*u+r*a*c),t=n,e=u,r=a}var t,e,r;nc.point=function(i,u){t=i*Ka,e=Math.sin(u*=Ka),r=Math.cos(u),nc.point=n},nc.lineEnd=function(){nc.point=nc.lineEnd=s}}function De(n,t){function e(t,e){var r=Math.cos(t),i=Math.cos(e),u=n(r*i);return[u*i*Math.sin(t),u*Math.sin(e)]}return e.invert=function(n,e){var r=Math.sqrt(n*n+e*e),i=t(r),u=Math.sin(i),a=Math.cos(i);return[Math.atan2(n*u,r*a),Math.asin(r&&e*u/r)]},e}function je(n,t){function e(n,t){var e=Math.abs(Math.abs(t)-Wa/2)<Ja?0:a/Math.pow(i(t),u);return[e*Math.sin(u*n),a-e*Math.cos(u*n)]}var r=Math.cos(n),i=function(n){return Math.tan(Wa/4+n/2)},u=n===t?Math.sin(n):Math.log(r/Math.cos(t))/Math.log(i(t)/i(n)),a=r*Math.pow(i(n),u)/u;return u?(e.invert=function(n,t){var e=a-t,r=U(u)*Math.sqrt(n*n+e*e);return[Math.atan2(n,e)/u,2*Math.atan(Math.pow(a/r,1/u))-Wa/2]},e):He}function Le(n,t){function e(n,t){var e=u-t;return[e*Math.sin(i*n),u-e*Math.cos(i*n)]}var r=Math.cos(n),i=n===t?Math.sin(n):(r-Math.cos(t))/(t-n),u=r/i+n;return Math.abs(i)<Ja?xe:(e.invert=function(n,t){var e=u-t;return[Math.atan2(n,e)/i,u-U(i)*Math.sqrt(n*n+e*e)]},e)}function He(n,t){return[n,Math.log(Math.tan(Wa/4+t/2))]}function Fe(n){var t,e=ve(n),r=e.scale,i=e.translate,u=e.clipExtent;return e.scale=function(){var n=r.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.translate=function(){var n=i.apply(e,arguments);return n===e?t?e.clipExtent(null):e:n},e.clipExtent=function(n){var a=u.apply(e,arguments);if(a===e){if(t=null==n){var o=Wa*r(),c=i();u([[c[0]-o,c[1]-o],[c[0]+o,c[1]+o]])}}else t&&(a=null);return a},e.clipExtent(null)}function Pe(n,t){var e=Math.cos(t)*Math.sin(n);return[Math.log((1+e)/(1-e))/2,Math.atan2(Math.tan(t),Math.cos(n))]}function Oe(n){function t(t){function a(){l.push(\"M\",u(n(s),o))}for(var c,l=[],s=[],f=-1,h=t.length,g=ht(e),p=ht(r);++f<h;)i.call(this,c=t[f],f)?s.push([+g.call(this,c,f),+p.call(this,c,f)]):s.length&&(a(),s=[]);return s.length&&a(),l.length?l.join(\"\"):null}var e=Ye,r=Re,i=Ut,u=Ue,a=u.key,o=.7;return t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.defined=function(n){return arguments.length?(i=n,t):i},t.interpolate=function(n){return arguments.length?(a=\"function\"==typeof n?u=n:(u=ac.get(n)||Ue).key,t):a},t.tension=function(n){return arguments.length?(o=n,t):o},t}function Ye(n){return n[0]}function Re(n){return n[1]}function Ue(n){return n.join(\"L\")}function Ie(n){return Ue(n)+\"Z\"}function Ve(n){for(var t=0,e=n.length,r=n[0],i=[r[0],\",\",r[1]];++t<e;)i.push(\"H\",(r[0]+(r=n[t])[0])/2,\"V\",r[1]);return e>1&&i.push(\"H\",r[0]),i.join(\"\")}function Xe(n){for(var t=0,e=n.length,r=n[0],i=[r[0],\",\",r[1]];++t<e;)i.push(\"V\",(r=n[t])[1],\"H\",r[0]);return i.join(\"\")}function Ze(n){for(var t=0,e=n.length,r=n[0],i=[r[0],\",\",r[1]];++t<e;)i.push(\"H\",(r=n[t])[0],\"V\",r[1]);return i.join(\"\")}function Be(n,t){return n.length<4?Ue(n):n[1]+Je(n.slice(1,n.length-1),Ge(n,t))}function $e(n,t){return n.length<3?Ue(n):n[0]+Je((n.push(n[0]),n),Ge([n[n.length-2]].concat(n,[n[1]]),t))}function We(n,t){return n.length<3?Ue(n):n[0]+Je(n,Ge(n,t))}function Je(n,t){if(t.length<1||n.length!=t.length&&n.length!=t.length+2)return Ue(n);var e=n.length!=t.length,r=\"\",i=n[0],u=n[1],a=t[0],o=a,c=1;if(e&&(r+=\"Q\"+(u[0]-2*a[0]/3)+\",\"+(u[1]-2*a[1]/3)+\",\"+u[0]+\",\"+u[1],i=n[1],c=2),t.length>1){o=t[1],u=n[c],c++,r+=\"C\"+(i[0]+a[0])+\",\"+(i[1]+a[1])+\",\"+(u[0]-o[0])+\",\"+(u[1]-o[1])+\",\"+u[0]+\",\"+u[1];for(var l=2;l<t.length;l++,c++)u=n[c],o=t[l],r+=\"S\"+(u[0]-o[0])+\",\"+(u[1]-o[1])+\",\"+u[0]+\",\"+u[1]}if(e){var s=n[c];r+=\"Q\"+(u[0]+2*o[0]/3)+\",\"+(u[1]+2*o[1]/3)+\",\"+s[0]+\",\"+s[1]}return r}function Ge(n,t){for(var e,r=[],i=(1-t)/2,u=n[0],a=n[1],o=1,c=n.length;++o<c;)e=u,u=a,a=n[o],r.push([i*(a[0]-e[0]),i*(a[1]-e[1])]);return r}function Ke(n){if(n.length<3)return Ue(n);var t=1,e=n.length,r=n[0],i=r[0],u=r[1],a=[i,i,i,(r=n[1])[0]],o=[u,u,u,r[1]],c=[i,\",\",u,\"L\",er(lc,a),\",\",er(lc,o)];for(n.push(n[e-1]);++t<=e;)r=n[t],a.shift(),a.push(r[0]),o.shift(),o.push(r[1]),rr(c,a,o);return n.pop(),c.push(\"L\",r),c.join(\"\")}function Qe(n){if(n.length<4)return Ue(n);for(var t,e=[],r=-1,i=n.length,u=[0],a=[0];++r<3;)t=n[r],u.push(t[0]),a.push(t[1]);for(e.push(er(lc,u)+\",\"+er(lc,a)),--r;++r<i;)t=n[r],u.shift(),u.push(t[0]),a.shift(),a.push(t[1]),rr(e,u,a);return e.join(\"\")}function nr(n){for(var t,e,r=-1,i=n.length,u=i+4,a=[],o=[];++r<4;)e=n[r%i],a.push(e[0]),o.push(e[1]);for(t=[er(lc,a),\",\",er(lc,o)],--r;++r<u;)e=n[r%i],a.shift(),a.push(e[0]),o.shift(),o.push(e[1]),rr(t,a,o);return t.join(\"\")}function tr(n,t){var e=n.length-1;if(e)for(var r,i,u=n[0][0],a=n[0][1],o=n[e][0]-u,c=n[e][1]-a,l=-1;++l<=e;)r=n[l],i=l/e,r[0]=t*r[0]+(1-t)*(u+i*o),r[1]=t*r[1]+(1-t)*(a+i*c);return Ke(n)}function er(n,t){return n[0]*t[0]+n[1]*t[1]+n[2]*t[2]+n[3]*t[3]}function rr(n,t,e){n.push(\"C\",er(oc,t),\",\",er(oc,e),\",\",er(cc,t),\",\",er(cc,e),\",\",er(lc,t),\",\",er(lc,e))}function ir(n,t){return(t[1]-n[1])/(t[0]-n[0])\n}function ur(n){for(var t=0,e=n.length-1,r=[],i=n[0],u=n[1],a=r[0]=ir(i,u);++t<e;)r[t]=(a+(a=ir(i=u,u=n[t+1])))/2;return r[t]=a,r}function ar(n){for(var t,e,r,i,u=[],a=ur(n),o=-1,c=n.length-1;++o<c;)t=ir(n[o],n[o+1]),Math.abs(t)<1e-6?a[o]=a[o+1]=0:(e=a[o]/t,r=a[o+1]/t,i=e*e+r*r,i>9&&(i=3*t/Math.sqrt(i),a[o]=i*e,a[o+1]=i*r));for(o=-1;++o<=c;)i=(n[Math.min(c,o+1)][0]-n[Math.max(0,o-1)][0])/(6*(1+a[o]*a[o])),u.push([i||0,a[o]*i||0]);return u}function or(n){return n.length<3?Ue(n):n[0]+Je(n,ar(n))}function cr(n,t,e,r){var i,u,a,o,c,l,s;return i=r[n],u=i[0],a=i[1],i=r[t],o=i[0],c=i[1],i=r[e],l=i[0],s=i[1],(s-a)*(o-u)-(c-a)*(l-u)>0}function lr(n,t,e){return(e[0]-t[0])*(n[1]-t[1])<(e[1]-t[1])*(n[0]-t[0])}function sr(n,t,e,r){var i=n[0],u=e[0],a=t[0]-i,o=r[0]-u,c=n[1],l=e[1],s=t[1]-c,f=r[1]-l,h=(o*(c-l)-f*(i-u))/(f*a-o*s);return[i+h*a,c+h*s]}function fr(n){var t=n[0],e=n[n.length-1];return!(t[0]-e[0]||t[1]-e[1])}function hr(n,t){var e={list:n.map(function(n,t){return{index:t,x:n[0],y:n[1]}}).sort(function(n,t){return n.y<t.y?-1:n.y>t.y?1:n.x<t.x?-1:n.x>t.x?1:0}),bottomSite:null},r={list:[],leftEnd:null,rightEnd:null,init:function(){r.leftEnd=r.createHalfEdge(null,\"l\"),r.rightEnd=r.createHalfEdge(null,\"l\"),r.leftEnd.r=r.rightEnd,r.rightEnd.l=r.leftEnd,r.list.unshift(r.leftEnd,r.rightEnd)},createHalfEdge:function(n,t){return{edge:n,side:t,vertex:null,l:null,r:null}},insert:function(n,t){t.l=n,t.r=n.r,n.r.l=t,n.r=t},leftBound:function(n){var t=r.leftEnd;do t=t.r;while(t!=r.rightEnd&&i.rightOf(t,n));return t=t.l},del:function(n){n.l.r=n.r,n.r.l=n.l,n.edge=null},right:function(n){return n.r},left:function(n){return n.l},leftRegion:function(n){return null==n.edge?e.bottomSite:n.edge.region[n.side]},rightRegion:function(n){return null==n.edge?e.bottomSite:n.edge.region[fc[n.side]]}},i={bisect:function(n,t){var e={region:{l:n,r:t},ep:{l:null,r:null}},r=t.x-n.x,i=t.y-n.y,u=r>0?r:-r,a=i>0?i:-i;return e.c=n.x*r+n.y*i+.5*(r*r+i*i),u>a?(e.a=1,e.b=i/r,e.c/=r):(e.b=1,e.a=r/i,e.c/=i),e},intersect:function(n,t){var e=n.edge,r=t.edge;if(!e||!r||e.region.r==r.region.r)return null;var i=e.a*r.b-e.b*r.a;if(Math.abs(i)<1e-10)return null;var u,a,o=(e.c*r.b-r.c*e.b)/i,c=(r.c*e.a-e.c*r.a)/i,l=e.region.r,s=r.region.r;l.y<s.y||l.y==s.y&&l.x<s.x?(u=n,a=e):(u=t,a=r);var f=o>=a.region.r.x;return f&&\"l\"===u.side||!f&&\"r\"===u.side?null:{x:o,y:c}},rightOf:function(n,t){var e=n.edge,r=e.region.r,i=t.x>r.x;if(i&&\"l\"===n.side)return 1;if(!i&&\"r\"===n.side)return 0;if(1===e.a){var u=t.y-r.y,a=t.x-r.x,o=0,c=0;if(!i&&e.b<0||i&&e.b>=0?c=o=u>=e.b*a:(c=t.x+t.y*e.b>e.c,e.b<0&&(c=!c),c||(o=1)),!o){var l=r.x-e.region.l.x;c=e.b*(a*a-u*u)<l*u*(1+2*a/l+e.b*e.b),e.b<0&&(c=!c)}}else{var s=e.c-e.a*t.x,f=t.y-s,h=t.x-r.x,g=s-r.y;c=f*f>h*h+g*g}return\"l\"===n.side?c:!c},endPoint:function(n,e,r){n.ep[e]=r,n.ep[fc[e]]&&t(n)},distance:function(n,t){var e=n.x-t.x,r=n.y-t.y;return Math.sqrt(e*e+r*r)}},u={list:[],insert:function(n,t,e){n.vertex=t,n.ystar=t.y+e;for(var r=0,i=u.list,a=i.length;a>r;r++){var o=i[r];if(!(n.ystar>o.ystar||n.ystar==o.ystar&&t.x>o.vertex.x))break}i.splice(r,0,n)},del:function(n){for(var t=0,e=u.list,r=e.length;r>t&&e[t]!=n;++t);e.splice(t,1)},empty:function(){return 0===u.list.length},nextEvent:function(n){for(var t=0,e=u.list,r=e.length;r>t;++t)if(e[t]==n)return e[t+1];return null},min:function(){var n=u.list[0];return{x:n.vertex.x,y:n.ystar}},extractMin:function(){return u.list.shift()}};r.init(),e.bottomSite=e.list.shift();for(var a,o,c,l,s,f,h,g,p,d,m,v,y,M=e.list.shift();;)if(u.empty()||(a=u.min()),M&&(u.empty()||M.y<a.y||M.y==a.y&&M.x<a.x))o=r.leftBound(M),c=r.right(o),h=r.rightRegion(o),v=i.bisect(h,M),f=r.createHalfEdge(v,\"l\"),r.insert(o,f),d=i.intersect(o,f),d&&(u.del(o),u.insert(o,d,i.distance(d,M))),o=f,f=r.createHalfEdge(v,\"r\"),r.insert(o,f),d=i.intersect(f,c),d&&u.insert(f,d,i.distance(d,M)),M=e.list.shift();else{if(u.empty())break;o=u.extractMin(),l=r.left(o),c=r.right(o),s=r.right(c),h=r.leftRegion(o),g=r.rightRegion(c),m=o.vertex,i.endPoint(o.edge,o.side,m),i.endPoint(c.edge,c.side,m),r.del(o),u.del(c),r.del(c),y=\"l\",h.y>g.y&&(p=h,h=g,g=p,y=\"r\"),v=i.bisect(h,g),f=r.createHalfEdge(v,y),r.insert(l,f),i.endPoint(v,fc[y],m),d=i.intersect(l,f),d&&(u.del(l),u.insert(l,d,i.distance(d,h))),d=i.intersect(f,s),d&&u.insert(f,d,i.distance(d,h))}for(o=r.right(r.leftEnd);o!=r.rightEnd;o=r.right(o))t(o.edge)}function gr(n){return n.x}function pr(n){return n.y}function dr(){return{leaf:!0,nodes:[],point:null,x:null,y:null}}function mr(n,t,e,r,i,u){if(!n(t,e,r,i,u)){var a=.5*(e+i),o=.5*(r+u),c=t.nodes;c[0]&&mr(n,c[0],e,r,a,o),c[1]&&mr(n,c[1],a,r,i,o),c[2]&&mr(n,c[2],e,o,a,u),c[3]&&mr(n,c[3],a,o,i,u)}}function vr(n,t){n=da.rgb(n),t=da.rgb(t);var e=n.r,r=n.g,i=n.b,u=t.r-e,a=t.g-r,o=t.b-i;return function(t){return n.r=Math.round(e+u*t),n.g=Math.round(r+a*t),n.b=Math.round(i+o*t),n}}function yr(n,t){var e,r={},i={};for(e in n)e in t?r[e]=br(n[e],t[e]):i[e]=n[e];for(e in t)e in n||(i[e]=t[e]);return function(n){for(e in r)i[e]=r[e](n);return i}}function Mr(n,t){return t-=n=+n,function(e){return n+t*e}}function xr(n,t){var e,r,i,u,a,o=0,c=0,l=[],s=[];for(n+=\"\",t+=\"\",hc.lastIndex=0,r=0;e=hc.exec(t);++r)e.index&&l.push(t.substring(o,c=e.index)),s.push({i:l.length,x:e[0]}),l.push(null),o=hc.lastIndex;for(o<t.length&&l.push(t.substring(o)),r=0,u=s.length;(e=hc.exec(n))&&u>r;++r)if(a=s[r],a.x==e[0]){if(a.i)if(null==l[a.i+1])for(l[a.i-1]+=a.x,l.splice(a.i,1),i=r+1;u>i;++i)s[i].i--;else for(l[a.i-1]+=a.x+l[a.i+1],l.splice(a.i,2),i=r+1;u>i;++i)s[i].i-=2;else if(null==l[a.i+1])l[a.i]=a.x;else for(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1),i=r+1;u>i;++i)s[i].i--;s.splice(r,1),u--,r--}else a.x=Mr(parseFloat(e[0]),parseFloat(a.x));for(;u>r;)a=s.pop(),null==l[a.i+1]?l[a.i]=a.x:(l[a.i]=a.x+l[a.i+1],l.splice(a.i+1,1)),u--;return 1===l.length?null==l[0]?(a=s[0].x,function(n){return a(n)+\"\"}):function(){return t}:function(n){for(r=0;u>r;++r)l[(a=s[r]).i]=a.x(n);return l.join(\"\")}}function br(n,t){for(var e,r=da.interpolators.length;--r>=0&&!(e=da.interpolators[r](n,t)););return e}function _r(n,t){var e,r=[],i=[],u=n.length,a=t.length,o=Math.min(n.length,t.length);for(e=0;o>e;++e)r.push(br(n[e],t[e]));for(;u>e;++e)i[e]=n[e];for(;a>e;++e)i[e]=t[e];return function(n){for(e=0;o>e;++e)i[e]=r[e](n);return i}}function wr(n){return function(t){return 0>=t?0:t>=1?1:n(t)}}function Sr(n){return function(t){return 1-n(1-t)}}function Er(n){return function(t){return.5*(.5>t?n(2*t):2-n(2-2*t))}}function kr(n){return n*n}function Ar(n){return n*n*n}function Nr(n){if(0>=n)return 0;if(n>=1)return 1;var t=n*n,e=t*n;return 4*(.5>n?e:3*(n-t)+e-.75)}function qr(n){return function(t){return Math.pow(t,n)}}function Tr(n){return 1-Math.cos(n*Wa/2)}function Cr(n){return Math.pow(2,10*(n-1))}function zr(n){return 1-Math.sqrt(1-n*n)}function Dr(n,t){var e;return arguments.length<2&&(t=.45),arguments.length?e=t/(2*Wa)*Math.asin(1/n):(n=1,e=t/4),function(r){return 1+n*Math.pow(2,10*-r)*Math.sin(2*(r-e)*Wa/t)}}function jr(n){return n||(n=1.70158),function(t){return t*t*((n+1)*t-n)}}function Lr(n){return 1/2.75>n?7.5625*n*n:2/2.75>n?7.5625*(n-=1.5/2.75)*n+.75:2.5/2.75>n?7.5625*(n-=2.25/2.75)*n+.9375:7.5625*(n-=2.625/2.75)*n+.984375}function Hr(n,t){n=da.hcl(n),t=da.hcl(t);var e=n.h,r=n.c,i=n.l,u=t.h-e,a=t.c-r,o=t.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?t.c:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(t){return n.h=e+u*t,n.c=r+a*t,n.l=i+o*t,n}}function Fr(n,t){n=da.hsl(n),t=da.hsl(t);var e=n.h,r=n.s,i=n.l,u=t.h-e,a=t.s-r,o=t.l-i;return isNaN(a)&&(a=0,r=isNaN(r)?t.s:r),isNaN(u)?(u=0,e=isNaN(e)?t.h:e):u>180?u-=360:-180>u&&(u+=360),function(t){return n.h=e+u*t,n.s=r+a*t,n.l=i+o*t,n}}function Pr(n,t){n=da.lab(n),t=da.lab(t);var e=n.l,r=n.a,i=n.b,u=t.l-e,a=t.a-r,o=t.b-i;return function(t){return n.l=e+u*t,n.a=r+a*t,n.b=i+o*t,n}}function Or(n,t){return t-=n,function(e){return Math.round(n+t*e)}}function Yr(n){var t=[n.a,n.b],e=[n.c,n.d],r=Ur(t),i=Rr(t,e),u=Ur(Ir(e,t,-i))||0;t[0]*e[1]<e[0]*t[1]&&(t[0]*=-1,t[1]*=-1,r*=-1,i*=-1),this.rotate=(r?Math.atan2(t[1],t[0]):Math.atan2(-e[0],e[1]))*Qa,this.translate=[n.e,n.f],this.scale=[r,u],this.skew=u?Math.atan2(i,u)*Qa:0}function Rr(n,t){return n[0]*t[0]+n[1]*t[1]}function Ur(n){var t=Math.sqrt(Rr(n,n));return t&&(n[0]/=t,n[1]/=t),t}function Ir(n,t,e){return n[0]+=e*t[0],n[1]+=e*t[1],n}function Vr(n,t){var e,r=[],i=[],u=da.transform(n),a=da.transform(t),o=u.translate,c=a.translate,l=u.rotate,s=a.rotate,f=u.skew,h=a.skew,g=u.scale,p=a.scale;return o[0]!=c[0]||o[1]!=c[1]?(r.push(\"translate(\",null,\",\",null,\")\"),i.push({i:1,x:Mr(o[0],c[0])},{i:3,x:Mr(o[1],c[1])})):c[0]||c[1]?r.push(\"translate(\"+c+\")\"):r.push(\"\"),l!=s?(l-s>180?s+=360:s-l>180&&(l+=360),i.push({i:r.push(r.pop()+\"rotate(\",null,\")\")-2,x:Mr(l,s)})):s&&r.push(r.pop()+\"rotate(\"+s+\")\"),f!=h?i.push({i:r.push(r.pop()+\"skewX(\",null,\")\")-2,x:Mr(f,h)}):h&&r.push(r.pop()+\"skewX(\"+h+\")\"),g[0]!=p[0]||g[1]!=p[1]?(e=r.push(r.pop()+\"scale(\",null,\",\",null,\")\"),i.push({i:e-4,x:Mr(g[0],p[0])},{i:e-2,x:Mr(g[1],p[1])})):(1!=p[0]||1!=p[1])&&r.push(r.pop()+\"scale(\"+p+\")\"),e=i.length,function(n){for(var t,u=-1;++u<e;)r[(t=i[u]).i]=t.x(n);return r.join(\"\")}}function Xr(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return(e-n)*t}}function Zr(n,t){return t=t-(n=+n)?1/(t-n):0,function(e){return Math.max(0,Math.min(1,(e-n)*t))}}function Br(n){for(var t=n.source,e=n.target,r=Wr(t,e),i=[t];t!==r;)t=t.parent,i.push(t);for(var u=i.length;e!==r;)i.splice(u,0,e),e=e.parent;return i}function $r(n){for(var t=[],e=n.parent;null!=e;)t.push(n),n=e,e=e.parent;return t.push(n),t}function Wr(n,t){if(n===t)return n;for(var e=$r(n),r=$r(t),i=e.pop(),u=r.pop(),a=null;i===u;)a=i,i=e.pop(),u=r.pop();return a}function Jr(n){n.fixed|=2}function Gr(n){n.fixed&=-7}function Kr(n){n.fixed|=4,n.px=n.x,n.py=n.y}function Qr(n){n.fixed&=-5}function ni(n,t,e){var r=0,i=0;if(n.charge=0,!n.leaf)for(var u,a=n.nodes,o=a.length,c=-1;++c<o;)u=a[c],null!=u&&(ni(u,t,e),n.charge+=u.charge,r+=u.charge*u.cx,i+=u.charge*u.cy);if(n.point){n.leaf||(n.point.x+=Math.random()-.5,n.point.y+=Math.random()-.5);var l=t*e[n.point.index];n.charge+=n.pointCharge=l,r+=l*n.point.x,i+=l*n.point.y}n.cx=r/n.charge,n.cy=i/n.charge}function ti(n,t){return da.rebind(n,t,\"sort\",\"children\",\"value\"),n.nodes=n,n.links=ui,n}function ei(n){return n.children}function ri(n){return n.value}function ii(n,t){return t.value-n.value}function ui(n){return da.merge(n.map(function(n){return(n.children||[]).map(function(t){return{source:n,target:t}})}))}function ai(n){return n.x}function oi(n){return n.y}function ci(n,t,e){n.y0=t,n.y=e}function li(n){return da.range(n.length)}function si(n){for(var t=-1,e=n[0].length,r=[];++t<e;)r[t]=0;return r}function fi(n){for(var t,e=1,r=0,i=n[0][1],u=n.length;u>e;++e)(t=n[e][1])>i&&(r=e,i=t);return r}function hi(n){return n.reduce(gi,0)}function gi(n,t){return n+t[1]}function pi(n,t){return di(n,Math.ceil(Math.log(t.length)/Math.LN2+1))}function di(n,t){for(var e=-1,r=+n[0],i=(n[1]-r)/t,u=[];++e<=t;)u[e]=i*e+r;return u}function mi(n){return[da.min(n),da.max(n)]}function vi(n,t){return n.parent==t.parent?1:2}function yi(n){var t=n.children;return t&&t.length?t[0]:n._tree.thread}function Mi(n){var t,e=n.children;return e&&(t=e.length)?e[t-1]:n._tree.thread}function xi(n,t){var e=n.children;if(e&&(i=e.length))for(var r,i,u=-1;++u<i;)t(r=xi(e[u],t),n)>0&&(n=r);return n}function bi(n,t){return n.x-t.x}function _i(n,t){return t.x-n.x}function wi(n,t){return n.depth-t.depth}function Si(n,t){function e(n,r){var i=n.children;if(i&&(a=i.length))for(var u,a,o=null,c=-1;++c<a;)u=i[c],e(u,o),o=u;t(n,r)}e(n,null)}function Ei(n){for(var t,e=0,r=0,i=n.children,u=i.length;--u>=0;)t=i[u]._tree,t.prelim+=e,t.mod+=e,e+=t.shift+(r+=t.change)}function ki(n,t,e){n=n._tree,t=t._tree;var r=e/(t.number-n.number);n.change+=r,t.change-=r,t.shift+=e,t.prelim+=e,t.mod+=e}function Ai(n,t,e){return n._tree.ancestor.parent==t.parent?n._tree.ancestor:e}function Ni(n,t){return n.value-t.value}function qi(n,t){var e=n._pack_next;n._pack_next=t,t._pack_prev=n,t._pack_next=e,e._pack_prev=t}function Ti(n,t){n._pack_next=t,t._pack_prev=n}function Ci(n,t){var e=t.x-n.x,r=t.y-n.y,i=n.r+t.r;return.999*i*i>e*e+r*r}function zi(n){function t(n){s=Math.min(n.x-n.r,s),f=Math.max(n.x+n.r,f),h=Math.min(n.y-n.r,h),g=Math.max(n.y+n.r,g)}if((e=n.children)&&(l=e.length)){var e,r,i,u,a,o,c,l,s=1/0,f=-1/0,h=1/0,g=-1/0;if(e.forEach(Di),r=e[0],r.x=-r.r,r.y=0,t(r),l>1&&(i=e[1],i.x=i.r,i.y=0,t(i),l>2))for(u=e[2],Hi(r,i,u),t(u),qi(r,u),r._pack_prev=u,qi(u,i),i=r._pack_next,a=3;l>a;a++){Hi(r,i,u=e[a]);var p=0,d=1,m=1;for(o=i._pack_next;o!==i;o=o._pack_next,d++)if(Ci(o,u)){p=1;break}if(1==p)for(c=r._pack_prev;c!==o._pack_prev&&!Ci(c,u);c=c._pack_prev,m++);p?(m>d||d==m&&i.r<r.r?Ti(r,i=o):Ti(r=c,i),a--):(qi(r,u),i=u,t(u))}var v=(s+f)/2,y=(h+g)/2,M=0;for(a=0;l>a;a++)u=e[a],u.x-=v,u.y-=y,M=Math.max(M,u.r+Math.sqrt(u.x*u.x+u.y*u.y));n.r=M,e.forEach(ji)}}function Di(n){n._pack_next=n._pack_prev=n}function ji(n){delete n._pack_next,delete n._pack_prev}function Li(n,t,e,r){var i=n.children;if(n.x=t+=r*n.x,n.y=e+=r*n.y,n.r*=r,i)for(var u=-1,a=i.length;++u<a;)Li(i[u],t,e,r)}function Hi(n,t,e){var r=n.r+e.r,i=t.x-n.x,u=t.y-n.y;if(r&&(i||u)){var a=t.r+e.r,o=i*i+u*u;a*=a,r*=r;var c=.5+(r-a)/(2*o),l=Math.sqrt(Math.max(0,2*a*(r+o)-(r-=o)*r-a*a))/(2*o);e.x=n.x+c*i+l*u,e.y=n.y+c*u-l*i}else e.x=n.x+r,e.y=n.y}function Fi(n){return 1+da.max(n,function(n){return n.y})}function Pi(n){return n.reduce(function(n,t){return n+t.x},0)/n.length}function Oi(n){var t=n.children;return t&&t.length?Oi(t[0]):n}function Yi(n){var t,e=n.children;return e&&(t=e.length)?Yi(e[t-1]):n}function Ri(n){return{x:n.x,y:n.y,dx:n.dx,dy:n.dy}}function Ui(n,t){var e=n.x+t[3],r=n.y+t[0],i=n.dx-t[1]-t[3],u=n.dy-t[0]-t[2];return 0>i&&(e+=i/2,i=0),0>u&&(r+=u/2,u=0),{x:e,y:r,dx:i,dy:u}}function Ii(n){var t=n[0],e=n[n.length-1];return e>t?[t,e]:[e,t]}function Vi(n){return n.rangeExtent?n.rangeExtent():Ii(n.range())}function Xi(n,t,e,r){var i=e(n[0],n[1]),u=r(t[0],t[1]);return function(n){return u(i(n))}}function Zi(n,t){var e,r=0,i=n.length-1,u=n[r],a=n[i];return u>a&&(e=r,r=i,i=e,e=u,u=a,a=e),n[r]=t.floor(u),n[i]=t.ceil(a),n}function Bi(n){return n?{floor:function(t){return Math.floor(t/n)*n},ceil:function(t){return Math.ceil(t/n)*n}}:_c}function $i(n,t,e,r){var i=[],u=[],a=0,o=Math.min(n.length,t.length)-1;for(n[o]<n[0]&&(n=n.slice().reverse(),t=t.slice().reverse());++a<=o;)i.push(e(n[a-1],n[a])),u.push(r(t[a-1],t[a]));return function(t){var e=da.bisect(n,t,1,o)-1;return u[e](i[e](t))}}function Wi(n,t,e,r){function i(){var i=Math.min(n.length,t.length)>2?$i:Xi,c=r?Zr:Xr;return a=i(n,t,c,e),o=i(t,n,c,br),u}function u(n){return a(n)}var a,o;return u.invert=function(n){return o(n)},u.domain=function(t){return arguments.length?(n=t.map(Number),i()):n},u.range=function(n){return arguments.length?(t=n,i()):t},u.rangeRound=function(n){return u.range(n).interpolate(Or)},u.clamp=function(n){return arguments.length?(r=n,i()):r},u.interpolate=function(n){return arguments.length?(e=n,i()):e},u.ticks=function(t){return nu(n,t)},u.tickFormat=function(t,e){return tu(n,t,e)},u.nice=function(t){return Gi(n,t),i()},u.copy=function(){return Wi(n,t,e,r)},i()}function Ji(n,t){return da.rebind(n,t,\"range\",\"rangeRound\",\"interpolate\",\"clamp\")}function Gi(n,t){return Zi(n,Bi(t?Qi(n,t)[2]:Ki(n)))}function Ki(n){var t=Ii(n),e=t[1]-t[0];return Math.pow(10,Math.round(Math.log(e)/Math.LN10)-1)}function Qi(n,t){var e=Ii(n),r=e[1]-e[0],i=Math.pow(10,Math.floor(Math.log(r/t)/Math.LN10)),u=t/r*i;return.15>=u?i*=10:.35>=u?i*=5:.75>=u&&(i*=2),e[0]=Math.ceil(e[0]/i)*i,e[1]=Math.floor(e[1]/i)*i+.5*i,e[2]=i,e}function nu(n,t){return da.range.apply(da,Qi(n,t))}function tu(n,t,e){var r=-Math.floor(Math.log(Qi(n,t)[2])/Math.LN10+.01);return da.format(e?e.replace(Mo,function(n,t,e,i,u,a,o,c,l,s){return[t,e,i,u,a,o,c,l||\".\"+(r-2*(\"%\"===s)),s].join(\"\")}):\",.\"+r+\"f\")}function eu(n,t,e,r){function i(n){return(e?Math.log(0>n?0:n):-Math.log(n>0?0:-n))/Math.log(t)}function u(n){return e?Math.pow(t,n):-Math.pow(t,-n)}function a(t){return n(i(t))}return a.invert=function(t){return u(n.invert(t))},a.domain=function(t){return arguments.length?(e=t[0]>=0,n.domain((r=t.map(Number)).map(i)),a):r},a.base=function(e){return arguments.length?(t=+e,n.domain(r.map(i)),a):t},a.nice=function(){var t=Zi(r.map(i),e?Math:Sc);return n.domain(t),r=t.map(u),a},a.ticks=function(){var n=Ii(r),a=[];if(n.every(isFinite)){var o=n[0],c=n[1],l=Math.floor(i(o)),s=Math.ceil(i(c)),f=t%1?2:t;if(e){for(;s>l;l++)for(var h=1;f>h;h++)a.push(u(l)*h);a.push(u(l))}else for(a.push(u(l));l++<s;)for(var h=f-1;h>0;h--)a.push(u(l)*h);for(l=0;a[l]<o;l++);for(s=a.length;a[s-1]>c;s--);a=a.slice(l,s)}return a},a.tickFormat=function(n,t){if(!arguments.length)return wc;arguments.length<2?t=wc:\"function\"!=typeof t&&(t=da.format(t));var r,o=Math.max(.1,n/a.ticks().length),c=e?(r=1e-12,Math.ceil):(r=-1e-12,Math.floor);return function(n){return n/u(c(i(n)+r))<=o?t(n):\"\"}},a.copy=function(){return eu(n.copy(),t,e,r)},Ji(a,n)}function ru(n,t,e){function r(t){return n(i(t))}var i=iu(t),u=iu(1/t);return r.invert=function(t){return u(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain((e=t.map(Number)).map(i)),r):e},r.ticks=function(n){return nu(e,n)},r.tickFormat=function(n,t){return tu(e,n,t)},r.nice=function(n){return r.domain(Gi(e,n))},r.exponent=function(a){return arguments.length?(i=iu(t=a),u=iu(1/t),n.domain(e.map(i)),r):t},r.copy=function(){return ru(n.copy(),t,e)},Ji(r,n)}function iu(n){return function(t){return 0>t?-Math.pow(-t,n):Math.pow(t,n)}}function uu(n,t){function e(t){return a[((u.get(t)||u.set(t,n.push(t)))-1)%a.length]}function r(t,e){return da.range(n.length).map(function(n){return t+e*n})}var u,a,o;return e.domain=function(r){if(!arguments.length)return n;n=[],u=new i;for(var a,o=-1,c=r.length;++o<c;)u.has(a=r[o])||u.set(a,n.push(a));return e[t.t].apply(e,t.a)},e.range=function(n){return arguments.length?(a=n,o=0,t={t:\"range\",a:arguments},e):a},e.rangePoints=function(i,u){arguments.length<2&&(u=0);var c=i[0],l=i[1],s=(l-c)/(Math.max(1,n.length-1)+u);return a=r(n.length<2?(c+l)/2:c+s*u/2,s),o=0,t={t:\"rangePoints\",a:arguments},e},e.rangeBands=function(i,u,c){arguments.length<2&&(u=0),arguments.length<3&&(c=u);var l=i[1]<i[0],s=i[l-0],f=i[1-l],h=(f-s)/(n.length-u+2*c);return a=r(s+h*c,h),l&&a.reverse(),o=h*(1-u),t={t:\"rangeBands\",a:arguments},e},e.rangeRoundBands=function(i,u,c){arguments.length<2&&(u=0),arguments.length<3&&(c=u);var l=i[1]<i[0],s=i[l-0],f=i[1-l],h=Math.floor((f-s)/(n.length-u+2*c)),g=f-s-(n.length-u)*h;return a=r(s+Math.round(g/2),h),l&&a.reverse(),o=Math.round(h*(1-u)),t={t:\"rangeRoundBands\",a:arguments},e},e.rangeBand=function(){return o},e.rangeExtent=function(){return Ii(t.a[0])},e.copy=function(){return uu(n,t)},e.domain(n)}function au(n,t){function e(){var e=0,u=t.length;for(i=[];++e<u;)i[e-1]=da.quantile(n,e/u);return r}function r(n){return isNaN(n=+n)?void 0:t[da.bisect(i,n)]}var i;return r.domain=function(t){return arguments.length?(n=t.filter(function(n){return!isNaN(n)}).sort(da.ascending),e()):n},r.range=function(n){return arguments.length?(t=n,e()):t},r.quantiles=function(){return i},r.invertExtent=function(e){return e=t.indexOf(e),0>e?[0/0,0/0]:[e>0?i[e-1]:n[0],e<i.length?i[e]:n[n.length-1]]},r.copy=function(){return au(n,t)},e()}function ou(n,t,e){function r(t){return e[Math.max(0,Math.min(a,Math.floor(u*(t-n))))]}function i(){return u=e.length/(t-n),a=e.length-1,r}var u,a;return r.domain=function(e){return arguments.length?(n=+e[0],t=+e[e.length-1],i()):[n,t]},r.range=function(n){return arguments.length?(e=n,i()):e},r.invertExtent=function(t){return t=e.indexOf(t),t=0>t?0/0:t/u+n,[t,t+1/u]},r.copy=function(){return ou(n,t,e)},i()}function cu(n,t){function e(e){return e>=e?t[da.bisect(n,e)]:void 0}return e.domain=function(t){return arguments.length?(n=t,e):n},e.range=function(n){return arguments.length?(t=n,e):t},e.invertExtent=function(e){return e=t.indexOf(e),[n[e-1],n[e]]},e.copy=function(){return cu(n,t)},e}function lu(n){function t(n){return+n}return t.invert=t,t.domain=t.range=function(e){return arguments.length?(n=e.map(t),t):n},t.ticks=function(t){return nu(n,t)},t.tickFormat=function(t,e){return tu(n,t,e)},t.copy=function(){return lu(n)},t}function su(n){return n.innerRadius}function fu(n){return n.outerRadius}function hu(n){return n.startAngle}function gu(n){return n.endAngle}function pu(n){for(var t,e,r,i=-1,u=n.length;++i<u;)t=n[i],e=t[0],r=t[1]+qc,t[0]=e*Math.cos(r),t[1]=e*Math.sin(r);return n}function du(n){function t(t){function c(){d.push(\"M\",o(n(v),f),s,l(n(m.reverse()),f),\"Z\")}for(var h,g,p,d=[],m=[],v=[],y=-1,M=t.length,x=ht(e),b=ht(i),_=e===r?function(){return g}:ht(r),w=i===u?function(){return p}:ht(u);++y<M;)a.call(this,h=t[y],y)?(m.push([g=+x.call(this,h,y),p=+b.call(this,h,y)]),v.push([+_.call(this,h,y),+w.call(this,h,y)])):m.length&&(c(),m=[],v=[]);return m.length&&c(),d.length?d.join(\"\"):null}var e=Ye,r=Ye,i=0,u=Re,a=Ut,o=Ue,c=o.key,l=o,s=\"L\",f=.7;return t.x=function(n){return arguments.length?(e=r=n,t):r},t.x0=function(n){return arguments.length?(e=n,t):e},t.x1=function(n){return arguments.length?(r=n,t):r},t.y=function(n){return arguments.length?(i=u=n,t):u},t.y0=function(n){return arguments.length?(i=n,t):i},t.y1=function(n){return arguments.length?(u=n,t):u},t.defined=function(n){return arguments.length?(a=n,t):a},t.interpolate=function(n){return arguments.length?(c=\"function\"==typeof n?o=n:(o=ac.get(n)||Ue).key,l=o.reverse||o,s=o.closed?\"M\":\"L\",t):c},t.tension=function(n){return arguments.length?(f=n,t):f},t}function mu(n){return n.radius}function vu(n){return[n.x,n.y]}function yu(n){return function(){var t=n.apply(this,arguments),e=t[0],r=t[1]+qc;return[e*Math.cos(r),e*Math.sin(r)]}}function Mu(){return 64}function xu(){return\"circle\"}function bu(n){var t=Math.sqrt(n/Wa);return\"M0,\"+t+\"A\"+t+\",\"+t+\" 0 1,1 0,\"+-t+\"A\"+t+\",\"+t+\" 0 1,1 0,\"+t+\"Z\"}function _u(n,t){return za(n,Hc),n.id=t,n}function wu(n,t,e,r){var i=n.id;return T(n,\"function\"==typeof e?function(n,u,a){n.__transition__[i].tween.set(t,r(e.call(n,n.__data__,u,a)))}:(e=r(e),function(n){n.__transition__[i].tween.set(t,e)}))}function Su(n){return null==n&&(n=\"\"),function(){this.textContent=n}}function Eu(n,t,e,r){var u=n.__transition__||(n.__transition__={active:0,count:0}),a=u[e];if(!a){var o=r.time;return a=u[e]={tween:new i,time:o,ease:r.ease,delay:r.delay,duration:r.duration},++u.count,da.timer(function(r){function i(r){return u.active>e?l():(u.active=e,a.event&&a.event.start.call(n,s,t),a.tween.forEach(function(e,r){(r=r.call(n,s,t))&&p.push(r)}),c(r)||da.timer(c,0,o),1)}function c(r){if(u.active!==e)return l();for(var i=(r-h)/g,o=f(i),c=p.length;c>0;)p[--c].call(n,o);return i>=1?(l(),a.event&&a.event.end.call(n,s,t),1):void 0}function l(){return--u.count?delete u[e]:delete n.__transition__,1}var s=n.__data__,f=a.ease,h=a.delay,g=a.duration,p=[];return r>=h?i(r):da.timer(i,h,o),1},0,o),a}}function ku(n,t){n.attr(\"transform\",function(n){return\"translate(\"+t(n)+\",0)\"})}function Au(n,t){n.attr(\"transform\",function(n){return\"translate(0,\"+t(n)+\")\"})}function Nu(n,t,e){if(r=[],e&&t.length>1){for(var r,i,u,a=Ii(n.domain()),o=-1,c=t.length,l=(t[1]-t[0])/++e;++o<c;)for(i=e;--i>0;)(u=+t[o]-i*l)>=a[0]&&r.push(u);for(--o,i=0;++i<e&&(u=+t[o]+i*l)<a[1];)r.push(u)}return r}function qu(){this._=new Date(arguments.length>1?Date.UTC.apply(this,arguments):arguments[0])}function Tu(n,t,e){function r(t){var e=n(t),r=u(e,1);return r-t>t-e?e:r}function i(e){return t(e=n(new Uc(e-1)),1),e}function u(n,e){return t(n=new Uc(+n),e),n}function a(n,r,u){var a=i(n),o=[];if(u>1)for(;r>a;)e(a)%u||o.push(new Date(+a)),t(a,1);else for(;r>a;)o.push(new Date(+a)),t(a,1);return o}function o(n,t,e){try{Uc=qu;var r=new qu;return r._=n,a(r,t,e)}finally{Uc=Date}}n.floor=n,n.round=r,n.ceil=i,n.offset=u,n.range=a;var c=n.utc=Cu(n);return c.floor=c,c.round=Cu(r),c.ceil=Cu(i),c.offset=Cu(u),c.range=o,n}function Cu(n){return function(t,e){try{Uc=qu;var r=new qu;return r._=t,n(r,e)._}finally{Uc=Date}}}function zu(n,t,e,r){for(var i,u,a=0,o=t.length,c=e.length;o>a;){if(r>=c)return-1;if(i=t.charCodeAt(a++),37===i){if(u=ll[t.charAt(a++)],!u||(r=u(n,e,r))<0)return-1}else if(i!=e.charCodeAt(r++))return-1}return r}function Du(n){return new RegExp(\"^(?:\"+n.map(da.requote).join(\"|\")+\")\",\"i\")}function ju(n){for(var t=new i,e=-1,r=n.length;++e<r;)t.set(n[e].toLowerCase(),e);return t}function Lu(n,t,e){var r=0>n?\"-\":\"\",i=(r?-n:n)+\"\",u=i.length;return r+(e>u?new Array(e-u+1).join(t)+i:i)}function Hu(n,t,e){nl.lastIndex=0;var r=nl.exec(t.substring(e));return r?(n.w=tl.get(r[0].toLowerCase()),e+r[0].length):-1}function Fu(n,t,e){Kc.lastIndex=0;var r=Kc.exec(t.substring(e));return r?(n.w=Qc.get(r[0].toLowerCase()),e+r[0].length):-1}function Pu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+1));return r?(n.w=+r[0],e+r[0].length):-1}function Ou(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e));return r?(n.U=+r[0],e+r[0].length):-1}function Yu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e));return r?(n.W=+r[0],e+r[0].length):-1}function Ru(n,t,e){il.lastIndex=0;var r=il.exec(t.substring(e));return r?(n.m=ul.get(r[0].toLowerCase()),e+r[0].length):-1}function Uu(n,t,e){el.lastIndex=0;var r=el.exec(t.substring(e));return r?(n.m=rl.get(r[0].toLowerCase()),e+r[0].length):-1}function Iu(n,t,e){return zu(n,cl.c.toString(),t,e)}function Vu(n,t,e){return zu(n,cl.x.toString(),t,e)}function Xu(n,t,e){return zu(n,cl.X.toString(),t,e)}function Zu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+4));return r?(n.y=+r[0],e+r[0].length):-1}function Bu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.y=$u(+r[0]),e+r[0].length):-1}function $u(n){return n+(n>68?1900:2e3)}function Wu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.m=r[0]-1,e+r[0].length):-1}function Ju(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.d=+r[0],e+r[0].length):-1}function Gu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+3));return r?(n.j=+r[0],e+r[0].length):-1}function Ku(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.H=+r[0],e+r[0].length):-1}function Qu(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.M=+r[0],e+r[0].length):-1}function na(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+2));return r?(n.S=+r[0],e+r[0].length):-1}function ta(n,t,e){sl.lastIndex=0;var r=sl.exec(t.substring(e,e+3));return r?(n.L=+r[0],e+r[0].length):-1}function ea(n,t,e){var r=fl.get(t.substring(e,e+=2).toLowerCase());return null==r?-1:(n.p=r,e)}function ra(n){var t=n.getTimezoneOffset(),e=t>0?\"-\":\"+\",r=~~(Math.abs(t)/60),i=Math.abs(t)%60;return e+Lu(r,\"0\",2)+Lu(i,\"0\",2)}function ia(n,t,e){al.lastIndex=0;var r=al.exec(t.substring(e,e+1));return r?e+r[0].length:-1}function ua(n){return n.toISOString()}function aa(n,t,e){function r(t){return n(t)}return r.invert=function(t){return oa(n.invert(t))},r.domain=function(t){return arguments.length?(n.domain(t),r):n.domain().map(oa)},r.nice=function(n){return r.domain(Zi(r.domain(),n))},r.ticks=function(e,i){var u=Ii(r.domain());if(\"function\"!=typeof e){var a=u[1]-u[0],o=a/e,c=da.bisect(gl,o);if(c==gl.length)return t.year(u,e);if(!c)return n.ticks(e).map(oa);Math.log(o/gl[c-1])<Math.log(gl[c]/o)&&--c,e=t[c],i=e[1],e=e[0].range}return e(u[0],new Date(+u[1]+1),i)},r.tickFormat=function(){return e},r.copy=function(){return aa(n.copy(),t,e)},Ji(r,n)}function oa(n){return new Date(n)}function ca(n){return function(t){for(var e=n.length-1,r=n[e];!r[1](t);)r=n[--e];return r[0](t)}}function la(n){var t=new Date(n,0,1);return t.setFullYear(n),t}function sa(n){var t=n.getFullYear(),e=la(t),r=la(t+1);return t+(n-e)/(r-e)}function fa(n){var t=new Date(Date.UTC(n,0,1));return t.setUTCFullYear(n),t}function ha(n){var t=n.getUTCFullYear(),e=fa(t),r=fa(t+1);return t+(n-e)/(r-e)}function ga(n){return JSON.parse(n.responseText)}function pa(n){var t=ma.createRange();return t.selectNode(ma.body),t.createContextualFragment(n.responseText)}var da={version:\"3.2.6\"};Date.now||(Date.now=function(){return+new Date});var ma=document,va=ma.documentElement,ya=window;try{ma.createElement(\"div\").style.setProperty(\"opacity\",0,\"\")}catch(Ma){var xa=ya.Element.prototype,ba=xa.setAttribute,_a=xa.setAttributeNS,wa=ya.CSSStyleDeclaration.prototype,Sa=wa.setProperty;xa.setAttribute=function(n,t){ba.call(this,n,t+\"\")},xa.setAttributeNS=function(n,t,e){_a.call(this,n,t,e+\"\")},wa.setProperty=function(n,t,e){Sa.call(this,n,t+\"\",e)}}da.ascending=function(n,t){return t>n?-1:n>t?1:n>=t?0:0/0},da.descending=function(n,t){return n>t?-1:t>n?1:t>=n?0:0/0},da.min=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u&&!(null!=(e=n[i])&&e>=e);)e=void 0;for(;++i<u;)null!=(r=n[i])&&e>r&&(e=r)}else{for(;++i<u&&!(null!=(e=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<u;)null!=(r=t.call(n,n[i],i))&&e>r&&(e=r)}return e},da.max=function(n,t){var e,r,i=-1,u=n.length;if(1===arguments.length){for(;++i<u&&!(null!=(e=n[i])&&e>=e);)e=void 0;for(;++i<u;)null!=(r=n[i])&&r>e&&(e=r)}else{for(;++i<u&&!(null!=(e=t.call(n,n[i],i))&&e>=e);)e=void 0;for(;++i<u;)null!=(r=t.call(n,n[i],i))&&r>e&&(e=r)}return e},da.extent=function(n,t){var e,r,i,u=-1,a=n.length;if(1===arguments.length){for(;++u<a&&!(null!=(e=i=n[u])&&e>=e);)e=i=void 0;for(;++u<a;)null!=(r=n[u])&&(e>r&&(e=r),r>i&&(i=r))}else{for(;++u<a&&!(null!=(e=i=t.call(n,n[u],u))&&e>=e);)e=void 0;for(;++u<a;)null!=(r=t.call(n,n[u],u))&&(e>r&&(e=r),r>i&&(i=r))}return[e,i]},da.sum=function(n,t){var e,r=0,i=n.length,u=-1;if(1===arguments.length)for(;++u<i;)isNaN(e=+n[u])||(r+=e);else for(;++u<i;)isNaN(e=+t.call(n,n[u],u))||(r+=e);return r},da.mean=function(t,e){var r,i=t.length,u=0,a=-1,o=0;if(1===arguments.length)for(;++a<i;)n(r=t[a])&&(u+=(r-u)/++o);else for(;++a<i;)n(r=e.call(t,t[a],a))&&(u+=(r-u)/++o);return o?u:void 0},da.quantile=function(n,t){var e=(n.length-1)*t+1,r=Math.floor(e),i=+n[r-1],u=e-r;return u?i+u*(n[r]-i):i},da.median=function(t,e){return arguments.length>1&&(t=t.map(e)),t=t.filter(n),t.length?da.quantile(t.sort(da.ascending),.5):void 0},da.bisector=function(n){return{left:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;n.call(t,t[u],u)<e?r=u+1:i=u}return r},right:function(t,e,r,i){for(arguments.length<3&&(r=0),arguments.length<4&&(i=t.length);i>r;){var u=r+i>>>1;e<n.call(t,t[u],u)?i=u:r=u+1}return r}}};var Ea=da.bisector(function(n){return n});da.bisectLeft=Ea.left,da.bisect=da.bisectRight=Ea.right,da.shuffle=function(n){for(var t,e,r=n.length;r;)e=0|Math.random()*r--,t=n[r],n[r]=n[e],n[e]=t;return n},da.permute=function(n,t){for(var e=[],r=-1,i=t.length;++r<i;)e[r]=n[t[r]];return e},da.zip=function(){if(!(i=arguments.length))return[];for(var n=-1,e=da.min(arguments,t),r=new Array(e);++n<e;)for(var i,u=-1,a=r[n]=new Array(i);++u<i;)a[u]=arguments[u][n];return r},da.transpose=function(n){return da.zip.apply(da,n)},da.keys=function(n){var t=[];for(var e in n)t.push(e);return t},da.values=function(n){var t=[];for(var e in n)t.push(n[e]);return t},da.entries=function(n){var t=[];for(var e in n)t.push({key:e,value:n[e]});return t},da.merge=function(n){return Array.prototype.concat.apply([],n)},da.range=function(n,t,r){if(arguments.length<3&&(r=1,arguments.length<2&&(t=n,n=0)),1/0===(t-n)/r)throw new Error(\"infinite range\");var i,u=[],a=e(Math.abs(r)),o=-1;if(n*=a,t*=a,r*=a,0>r)for(;(i=n+r*++o)>t;)u.push(i/a);else for(;(i=n+r*++o)<t;)u.push(i/a);return u},da.map=function(n){var t=new i;for(var e in n)t.set(e,n[e]);return t},r(i,{has:function(n){return ka+n in this},get:function(n){return this[ka+n]},set:function(n,t){return this[ka+n]=t},remove:function(n){return n=ka+n,n in this&&delete this[n]},keys:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},values:function(){var n=[];return this.forEach(function(t,e){n.push(e)}),n},entries:function(){var n=[];return this.forEach(function(t,e){n.push({key:t,value:e})}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===Aa&&n.call(this,t.substring(1),this[t])\n}});var ka=\"\\0\",Aa=ka.charCodeAt(0);da.nest=function(){function n(t,o,c){if(c>=a.length)return r?r.call(u,o):e?o.sort(e):o;for(var l,s,f,h,g=-1,p=o.length,d=a[c++],m=new i;++g<p;)(h=m.get(l=d(s=o[g])))?h.push(s):m.set(l,[s]);return t?(s=t(),f=function(e,r){s.set(e,n(t,r,c))}):(s={},f=function(e,r){s[e]=n(t,r,c)}),m.forEach(f),s}function t(n,e){if(e>=a.length)return n;var r=[],i=o[e++];return n.forEach(function(n,i){r.push({key:n,values:t(i,e)})}),i?r.sort(function(n,t){return i(n.key,t.key)}):r}var e,r,u={},a=[],o=[];return u.map=function(t,e){return n(e,t,0)},u.entries=function(e){return t(n(da.map,e,0),0)},u.key=function(n){return a.push(n),u},u.sortKeys=function(n){return o[a.length-1]=n,u},u.sortValues=function(n){return e=n,u},u.rollup=function(n){return r=n,u},u},da.set=function(n){var t=new u;if(n)for(var e=0;e<n.length;e++)t.add(n[e]);return t},r(u,{has:function(n){return ka+n in this},add:function(n){return this[ka+n]=!0,n},remove:function(n){return n=ka+n,n in this&&delete this[n]},values:function(){var n=[];return this.forEach(function(t){n.push(t)}),n},forEach:function(n){for(var t in this)t.charCodeAt(0)===Aa&&n.call(this,t.substring(1))}}),da.behavior={},da.rebind=function(n,t){for(var e,r=1,i=arguments.length;++r<i;)n[e=arguments[r]]=a(n,t,t[e]);return n};var Na=[\"webkit\",\"ms\",\"moz\",\"Moz\",\"o\",\"O\"],qa=l;try{qa(va.childNodes)[0].nodeType}catch(Ta){qa=c}da.dispatch=function(){for(var n=new f,t=-1,e=arguments.length;++t<e;)n[arguments[t]]=h(n);return n},f.prototype.on=function(n,t){var e=n.indexOf(\".\"),r=\"\";if(e>=0&&(r=n.substring(e+1),n=n.substring(0,e)),n)return arguments.length<2?this[n].on(r):this[n].on(r,t);if(2===arguments.length){if(null==t)for(n in this)this.hasOwnProperty(n)&&this[n].on(r,null);return this}},da.event=null,da.requote=function(n){return n.replace(Ca,\"\\\\$&\")};var Ca=/[\\\\\\^\\$\\*\\+\\?\\|\\[\\]\\(\\)\\.\\{\\}]/g,za={}.__proto__?function(n,t){n.__proto__=t}:function(n,t){for(var e in t)n[e]=t[e]},Da=function(n,t){return t.querySelector(n)},ja=function(n,t){return t.querySelectorAll(n)},La=va[o(va,\"matchesSelector\")],Ha=function(n,t){return La.call(n,t)};\"function\"==typeof Sizzle&&(Da=function(n,t){return Sizzle(n,t)[0]||null},ja=function(n,t){return Sizzle.uniqueSort(Sizzle(n,t))},Ha=Sizzle.matchesSelector),da.selection=function(){return Ya};var Fa=da.selection.prototype=[];Fa.select=function(n){var t,e,r,i,u=[];n=v(n);for(var a=-1,o=this.length;++a<o;){u.push(t=[]),t.parentNode=(r=this[a]).parentNode;for(var c=-1,l=r.length;++c<l;)(i=r[c])?(t.push(e=n.call(i,i.__data__,c,a)),e&&\"__data__\"in i&&(e.__data__=i.__data__)):t.push(null)}return m(u)},Fa.selectAll=function(n){var t,e,r=[];n=y(n);for(var i=-1,u=this.length;++i<u;)for(var a=this[i],o=-1,c=a.length;++o<c;)(e=a[o])&&(r.push(t=qa(n.call(e,e.__data__,o,i))),t.parentNode=e);return m(r)};var Pa={svg:\"http://www.w3.org/2000/svg\",xhtml:\"http://www.w3.org/1999/xhtml\",xlink:\"http://www.w3.org/1999/xlink\",xml:\"http://www.w3.org/XML/1998/namespace\",xmlns:\"http://www.w3.org/2000/xmlns/\"};da.ns={prefix:Pa,qualify:function(n){var t=n.indexOf(\":\"),e=n;return t>=0&&(e=n.substring(0,t),n=n.substring(t+1)),Pa.hasOwnProperty(e)?{space:Pa[e],local:n}:n}},Fa.attr=function(n,t){if(arguments.length<2){if(\"string\"==typeof n){var e=this.node();return n=da.ns.qualify(n),n.local?e.getAttributeNS(n.space,n.local):e.getAttribute(n)}for(t in n)this.each(M(t,n[t]));return this}return this.each(M(n,t))},Fa.classed=function(n,t){if(arguments.length<2){if(\"string\"==typeof n){var e=this.node(),r=(n=n.trim().split(/^|\\s+/g)).length,i=-1;if(t=e.classList){for(;++i<r;)if(!t.contains(n[i]))return!1}else for(t=e.getAttribute(\"class\");++i<r;)if(!b(n[i]).test(t))return!1;return!0}for(t in n)this.each(_(t,n[t]));return this}return this.each(_(n,t))},Fa.style=function(n,t,e){var r=arguments.length;if(3>r){if(\"string\"!=typeof n){2>r&&(t=\"\");for(e in n)this.each(S(e,n[e],t));return this}if(2>r)return ya.getComputedStyle(this.node(),null).getPropertyValue(n);e=\"\"}return this.each(S(n,t,e))},Fa.property=function(n,t){if(arguments.length<2){if(\"string\"==typeof n)return this.node()[n];for(t in n)this.each(E(t,n[t]));return this}return this.each(E(n,t))},Fa.text=function(n){return arguments.length?this.each(\"function\"==typeof n?function(){var t=n.apply(this,arguments);this.textContent=null==t?\"\":t}:null==n?function(){this.textContent=\"\"}:function(){this.textContent=n}):this.node().textContent},Fa.html=function(n){return arguments.length?this.each(\"function\"==typeof n?function(){var t=n.apply(this,arguments);this.innerHTML=null==t?\"\":t}:null==n?function(){this.innerHTML=\"\"}:function(){this.innerHTML=n}):this.node().innerHTML},Fa.append=function(n){return n=k(n),this.select(function(){return this.appendChild(n.apply(this,arguments))})},Fa.insert=function(n,t){return n=k(n),t=v(t),this.select(function(){return this.insertBefore(n.apply(this,arguments),t.apply(this,arguments))})},Fa.remove=function(){return this.each(function(){var n=this.parentNode;n&&n.removeChild(this)})},Fa.data=function(n,t){function e(n,e){var r,u,a,o=n.length,f=e.length,h=Math.min(o,f),g=new Array(f),p=new Array(f),d=new Array(o);if(t){var m,v=new i,y=new i,M=[];for(r=-1;++r<o;)m=t.call(u=n[r],u.__data__,r),v.has(m)?d[r]=u:v.set(m,u),M.push(m);for(r=-1;++r<f;)m=t.call(e,a=e[r],r),(u=v.get(m))?(g[r]=u,u.__data__=a):y.has(m)||(p[r]=A(a)),y.set(m,a),v.remove(m);for(r=-1;++r<o;)v.has(M[r])&&(d[r]=n[r])}else{for(r=-1;++r<h;)u=n[r],a=e[r],u?(u.__data__=a,g[r]=u):p[r]=A(a);for(;f>r;++r)p[r]=A(e[r]);for(;o>r;++r)d[r]=n[r]}p.update=g,p.parentNode=g.parentNode=d.parentNode=n.parentNode,c.push(p),l.push(g),s.push(d)}var r,u,a=-1,o=this.length;if(!arguments.length){for(n=new Array(o=(r=this[0]).length);++a<o;)(u=r[a])&&(n[a]=u.__data__);return n}var c=C([]),l=m([]),s=m([]);if(\"function\"==typeof n)for(;++a<o;)e(r=this[a],n.call(r,r.parentNode.__data__,a));else for(;++a<o;)e(r=this[a],n);return l.enter=function(){return c},l.exit=function(){return s},l},Fa.datum=function(n){return arguments.length?this.property(\"__data__\",n):this.property(\"__data__\")},Fa.filter=function(n){var t,e,r,i=[];\"function\"!=typeof n&&(n=N(n));for(var u=0,a=this.length;a>u;u++){i.push(t=[]),t.parentNode=(e=this[u]).parentNode;for(var o=0,c=e.length;c>o;o++)(r=e[o])&&n.call(r,r.__data__,o)&&t.push(r)}return m(i)},Fa.order=function(){for(var n=-1,t=this.length;++n<t;)for(var e,r=this[n],i=r.length-1,u=r[i];--i>=0;)(e=r[i])&&(u&&u!==e.nextSibling&&u.parentNode.insertBefore(e,u),u=e);return this},Fa.sort=function(n){n=q.apply(this,arguments);for(var t=-1,e=this.length;++t<e;)this[t].sort(n);return this.order()},Fa.each=function(n){return T(this,function(t,e,r){n.call(t,t.__data__,e,r)})},Fa.call=function(n){var t=qa(arguments);return n.apply(t[0]=this,t),this},Fa.empty=function(){return!this.node()},Fa.node=function(){for(var n=0,t=this.length;t>n;n++)for(var e=this[n],r=0,i=e.length;i>r;r++){var u=e[r];if(u)return u}return null},Fa.size=function(){var n=0;return this.each(function(){++n}),n};var Oa=[];da.selection.enter=C,da.selection.enter.prototype=Oa,Oa.append=Fa.append,Oa.empty=Fa.empty,Oa.node=Fa.node,Oa.call=Fa.call,Oa.size=Fa.size,Oa.select=function(n){for(var t,e,r,i,u,a=[],o=-1,c=this.length;++o<c;){r=(i=this[o]).update,a.push(t=[]),t.parentNode=i.parentNode;for(var l=-1,s=i.length;++l<s;)(u=i[l])?(t.push(r[l]=e=n.call(i.parentNode,u.__data__,l,o)),e.__data__=u.__data__):t.push(null)}return m(a)},Oa.insert=function(n,t){return arguments.length<2&&(t=z(this)),Fa.insert.call(this,n,t)},Fa.transition=function(){for(var n,t,e=zc||++Fc,r=[],i=Dc||{time:Date.now(),ease:Nr,delay:0,duration:250},u=-1,a=this.length;++u<a;){r.push(n=[]);for(var o=this[u],c=-1,l=o.length;++c<l;)(t=o[c])&&Eu(t,c,e,i),n.push(t)}return _u(r,e)},da.select=function(n){var t=[\"string\"==typeof n?Da(n,ma):n];return t.parentNode=va,m([t])},da.selectAll=function(n){var t=qa(\"string\"==typeof n?ja(n,ma):n);return t.parentNode=va,m([t])};var Ya=da.select(va);Fa.on=function(n,t,e){var r=arguments.length;if(3>r){if(\"string\"!=typeof n){2>r&&(t=!1);for(e in n)this.each(D(e,n[e],t));return this}if(2>r)return(r=this.node()[\"__on\"+n])&&r._;e=!1}return this.each(D(n,t,e))};var Ra=da.map({mouseenter:\"mouseover\",mouseleave:\"mouseout\"});Ra.forEach(function(n){\"on\"+n in ma&&Ra.remove(n)});var Ua=o(va.style,\"userSelect\"),Ia=0;da.mouse=function(n){return F(n,p())};var Va=/WebKit/.test(ya.navigator.userAgent)?-1:0;da.touches=function(n,t){return arguments.length<2&&(t=p().touches),t?qa(t).map(function(t){var e=F(n,t);return e.identifier=t.identifier,e}):[]},da.behavior.drag=function(){function n(){this.on(\"mousedown.drag\",a).on(\"touchstart.drag\",o)}function t(){return da.event.changedTouches[0].identifier}function e(n,t){return da.touches(n).filter(function(n){return n.identifier===t})[0]}function r(n,t,e,r){return function(){function a(){if(!s)return o();var n=t(s,g),e=n[0]-d[0],r=n[1]-d[1];m|=e|r,d=n,f({type:\"drag\",x:n[0]+c[0],y:n[1]+c[1],dx:e,dy:r})}function o(){v.on(e+\".\"+p,null).on(r+\".\"+p,null),y(m&&da.event.target===h),f({type:\"dragend\"})}var c,l=this,s=l.parentNode,f=i.of(l,arguments),h=da.event.target,g=n(),p=null==g?\"drag\":\"drag-\"+g,d=t(s,g),m=0,v=da.select(ya).on(e+\".\"+p,a).on(r+\".\"+p,o),y=H();u?(c=u.apply(l,arguments),c=[c.x-d[0],c.y-d[1]]):c=[0,0],f({type:\"dragstart\"})}}var i=d(n,\"drag\",\"dragstart\",\"dragend\"),u=null,a=r(s,da.mouse,\"mousemove\",\"mouseup\"),o=r(t,e,\"touchmove\",\"touchend\");return n.origin=function(t){return arguments.length?(u=t,n):u},da.rebind(n,i,\"on\")},da.behavior.zoom=function(){function n(){this.on(E,o).on(Ba+\".zoom\",l).on(k,s).on(\"dblclick.zoom\",f).on(\"touchstart.zoom\",c)}function t(n){return[(n[0]-_[0])/w,(n[1]-_[1])/w]}function e(n){return[n[0]*w+_[0],n[1]*w+_[1]]}function r(n){w=Math.max(S[0],Math.min(S[1],n))}function i(n,t){t=e(t),_[0]+=n[0]-t[0],_[1]+=n[1]-t[1]}function u(){y&&y.domain(v.range().map(function(n){return(n-_[0])/w}).map(v.invert)),x&&x.domain(M.range().map(function(n){return(n-_[1])/w}).map(M.invert))}function a(n){u(),n({type:\"zoom\",scale:w,translate:_})}function o(){function n(){c=1,i(da.mouse(r),f),a(u)}function e(){l.on(k,ya===r?s:null).on(A,null),h(c&&da.event.target===o)}var r=this,u=N.of(r,arguments),o=da.event.target,c=0,l=da.select(ya).on(k,n).on(A,e),f=t(da.mouse(r)),h=H()}function c(){function n(){var n=da.touches(u),t=n[0],e=h[t.identifier];if(c=n[1]){var c,l=h[c.identifier],s=da.event.scale;if(null==s){var f=(f=c[0]-t[0])*f+(f=c[1]-t[1])*f;s=p&&Math.sqrt(f/p)}t=[(t[0]+c[0])/2,(t[1]+c[1])/2],e=[(e[0]+l[0])/2,(e[1]+l[1])/2],r(s*m)}b=null,i(t,e),a(o)}function e(){v.on(f,null).on(d,null),y()}var u=this,o=N.of(u,arguments),c=da.touches(u),l=Date.now(),s=\"zoom-\"+da.event.changedTouches[0].identifier,f=\"touchmove.\"+s,d=\"touchend.\"+s,v=da.select(ya).on(f,n).on(d,e).on(E,null).on(k,null),y=H();if(m=w,h={},p=0,c.forEach(function(n){h[n.identifier]=t(n)}),1===c.length){if(500>l-b){var M=c[0],x=t(c[0]);r(2*w),i(M,x),g(),a(o)}b=l}else if(c.length>1){var M=c[0],_=c[1],S=M[0]-_[0],A=M[1]-_[1];p=S*S+A*A}}function l(){g(),h||(h=t(da.mouse(this))),r(Math.pow(2,.002*Xa())*w),i(da.mouse(this),h),a(N.of(this,arguments))}function s(){h=null}function f(){var n=da.mouse(this),e=t(n),u=Math.log(w)/Math.LN2;r(Math.pow(2,da.event.shiftKey?Math.ceil(u)-1:Math.floor(u)+1)),i(n,e),a(N.of(this,arguments))}var h,p,m,v,y,M,x,b,_=[0,0],w=1,S=Za,E=\"mousedown.zoom\",k=\"mousemove.zoom\",A=\"mouseup.zoom\",N=d(n,\"zoom\");return n.translate=function(t){return arguments.length?(_=t.map(Number),u(),n):_},n.scale=function(t){return arguments.length?(w=+t,u(),n):w},n.scaleExtent=function(t){return arguments.length?(S=null==t?Za:t.map(Number),n):S},n.x=function(t){return arguments.length?(y=t,v=t.copy(),_=[0,0],w=1,n):y},n.y=function(t){return arguments.length?(x=t,M=t.copy(),_=[0,0],w=1,n):x},da.rebind(n,N,\"on\")};var Xa,Za=[0,1/0],Ba=\"onwheel\"in ma?(Xa=function(){return-da.event.deltaY*(da.event.deltaMode?120:1)},\"wheel\"):\"onmousewheel\"in ma?(Xa=function(){return da.event.wheelDelta},\"mousewheel\"):(Xa=function(){return-da.event.detail},\"MozMousePixelScroll\");P.prototype.toString=function(){return this.rgb()+\"\"},da.hsl=function(n,t,e){return 1===arguments.length?n instanceof Y?O(n.h,n.s,n.l):ot(\"\"+n,ct,O):O(+n,+t,+e)};var $a=Y.prototype=new P;$a.brighter=function(n){return n=Math.pow(.7,arguments.length?n:1),O(this.h,this.s,this.l/n)},$a.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),O(this.h,this.s,n*this.l)},$a.rgb=function(){return R(this.h,this.s,this.l)};var Wa=Math.PI,Ja=1e-6,Ga=Ja*Ja,Ka=Wa/180,Qa=180/Wa;da.hcl=function(n,t,e){return 1===arguments.length?n instanceof W?$(n.h,n.c,n.l):n instanceof K?nt(n.l,n.a,n.b):nt((n=lt((n=da.rgb(n)).r,n.g,n.b)).l,n.a,n.b):$(+n,+t,+e)};var no=W.prototype=new P;no.brighter=function(n){return $(this.h,this.c,Math.min(100,this.l+to*(arguments.length?n:1)))},no.darker=function(n){return $(this.h,this.c,Math.max(0,this.l-to*(arguments.length?n:1)))},no.rgb=function(){return J(this.h,this.c,this.l).rgb()},da.lab=function(n,t,e){return 1===arguments.length?n instanceof K?G(n.l,n.a,n.b):n instanceof W?J(n.l,n.c,n.h):lt((n=da.rgb(n)).r,n.g,n.b):G(+n,+t,+e)};var to=18,eo=.95047,ro=1,io=1.08883,uo=K.prototype=new P;uo.brighter=function(n){return G(Math.min(100,this.l+to*(arguments.length?n:1)),this.a,this.b)},uo.darker=function(n){return G(Math.max(0,this.l-to*(arguments.length?n:1)),this.a,this.b)},uo.rgb=function(){return Q(this.l,this.a,this.b)},da.rgb=function(n,t,e){return 1===arguments.length?n instanceof ut?it(n.r,n.g,n.b):ot(\"\"+n,it,R):it(~~n,~~t,~~e)};var ao=ut.prototype=new P;ao.brighter=function(n){n=Math.pow(.7,arguments.length?n:1);var t=this.r,e=this.g,r=this.b,i=30;return t||e||r?(t&&i>t&&(t=i),e&&i>e&&(e=i),r&&i>r&&(r=i),it(Math.min(255,Math.floor(t/n)),Math.min(255,Math.floor(e/n)),Math.min(255,Math.floor(r/n)))):it(i,i,i)},ao.darker=function(n){return n=Math.pow(.7,arguments.length?n:1),it(Math.floor(n*this.r),Math.floor(n*this.g),Math.floor(n*this.b))},ao.hsl=function(){return ct(this.r,this.g,this.b)},ao.toString=function(){return\"#\"+at(this.r)+at(this.g)+at(this.b)};var oo=da.map({aliceblue:\"#f0f8ff\",antiquewhite:\"#faebd7\",aqua:\"#00ffff\",aquamarine:\"#7fffd4\",azure:\"#f0ffff\",beige:\"#f5f5dc\",bisque:\"#ffe4c4\",black:\"#000000\",blanchedalmond:\"#ffebcd\",blue:\"#0000ff\",blueviolet:\"#8a2be2\",brown:\"#a52a2a\",burlywood:\"#deb887\",cadetblue:\"#5f9ea0\",chartreuse:\"#7fff00\",chocolate:\"#d2691e\",coral:\"#ff7f50\",cornflowerblue:\"#6495ed\",cornsilk:\"#fff8dc\",crimson:\"#dc143c\",cyan:\"#00ffff\",darkblue:\"#00008b\",darkcyan:\"#008b8b\",darkgoldenrod:\"#b8860b\",darkgray:\"#a9a9a9\",darkgreen:\"#006400\",darkgrey:\"#a9a9a9\",darkkhaki:\"#bdb76b\",darkmagenta:\"#8b008b\",darkolivegreen:\"#556b2f\",darkorange:\"#ff8c00\",darkorchid:\"#9932cc\",darkred:\"#8b0000\",darksalmon:\"#e9967a\",darkseagreen:\"#8fbc8f\",darkslateblue:\"#483d8b\",darkslategray:\"#2f4f4f\",darkslategrey:\"#2f4f4f\",darkturquoise:\"#00ced1\",darkviolet:\"#9400d3\",deeppink:\"#ff1493\",deepskyblue:\"#00bfff\",dimgray:\"#696969\",dimgrey:\"#696969\",dodgerblue:\"#1e90ff\",firebrick:\"#b22222\",floralwhite:\"#fffaf0\",forestgreen:\"#228b22\",fuchsia:\"#ff00ff\",gainsboro:\"#dcdcdc\",ghostwhite:\"#f8f8ff\",gold:\"#ffd700\",goldenrod:\"#daa520\",gray:\"#808080\",green:\"#008000\",greenyellow:\"#adff2f\",grey:\"#808080\",honeydew:\"#f0fff0\",hotpink:\"#ff69b4\",indianred:\"#cd5c5c\",indigo:\"#4b0082\",ivory:\"#fffff0\",khaki:\"#f0e68c\",lavender:\"#e6e6fa\",lavenderblush:\"#fff0f5\",lawngreen:\"#7cfc00\",lemonchiffon:\"#fffacd\",lightblue:\"#add8e6\",lightcoral:\"#f08080\",lightcyan:\"#e0ffff\",lightgoldenrodyellow:\"#fafad2\",lightgray:\"#d3d3d3\",lightgreen:\"#90ee90\",lightgrey:\"#d3d3d3\",lightpink:\"#ffb6c1\",lightsalmon:\"#ffa07a\",lightseagreen:\"#20b2aa\",lightskyblue:\"#87cefa\",lightslategray:\"#778899\",lightslategrey:\"#778899\",lightsteelblue:\"#b0c4de\",lightyellow:\"#ffffe0\",lime:\"#00ff00\",limegreen:\"#32cd32\",linen:\"#faf0e6\",magenta:\"#ff00ff\",maroon:\"#800000\",mediumaquamarine:\"#66cdaa\",mediumblue:\"#0000cd\",mediumorchid:\"#ba55d3\",mediumpurple:\"#9370db\",mediumseagreen:\"#3cb371\",mediumslateblue:\"#7b68ee\",mediumspringgreen:\"#00fa9a\",mediumturquoise:\"#48d1cc\",mediumvioletred:\"#c71585\",midnightblue:\"#191970\",mintcream:\"#f5fffa\",mistyrose:\"#ffe4e1\",moccasin:\"#ffe4b5\",navajowhite:\"#ffdead\",navy:\"#000080\",oldlace:\"#fdf5e6\",olive:\"#808000\",olivedrab:\"#6b8e23\",orange:\"#ffa500\",orangered:\"#ff4500\",orchid:\"#da70d6\",palegoldenrod:\"#eee8aa\",palegreen:\"#98fb98\",paleturquoise:\"#afeeee\",palevioletred:\"#db7093\",papayawhip:\"#ffefd5\",peachpuff:\"#ffdab9\",peru:\"#cd853f\",pink:\"#ffc0cb\",plum:\"#dda0dd\",powderblue:\"#b0e0e6\",purple:\"#800080\",red:\"#ff0000\",rosybrown:\"#bc8f8f\",royalblue:\"#4169e1\",saddlebrown:\"#8b4513\",salmon:\"#fa8072\",sandybrown:\"#f4a460\",seagreen:\"#2e8b57\",seashell:\"#fff5ee\",sienna:\"#a0522d\",silver:\"#c0c0c0\",skyblue:\"#87ceeb\",slateblue:\"#6a5acd\",slategray:\"#708090\",slategrey:\"#708090\",snow:\"#fffafa\",springgreen:\"#00ff7f\",steelblue:\"#4682b4\",tan:\"#d2b48c\",teal:\"#008080\",thistle:\"#d8bfd8\",tomato:\"#ff6347\",turquoise:\"#40e0d0\",violet:\"#ee82ee\",wheat:\"#f5deb3\",white:\"#ffffff\",whitesmoke:\"#f5f5f5\",yellow:\"#ffff00\",yellowgreen:\"#9acd32\"});oo.forEach(function(n,t){oo.set(n,ot(t,it,R))}),da.functor=ht,da.xhr=pt(gt),da.dsv=function(n,t){function e(n,e,u){arguments.length<3&&(u=e,e=null);var a=da.xhr(n,t,u);return a.row=function(n){return arguments.length?a.response(null==(e=n)?r:i(n)):e},a.row(e)}function r(n){return e.parse(n.responseText)}function i(n){return function(t){return e.parse(t.responseText,n)}}function a(t){return t.map(o).join(n)}function o(n){return c.test(n)?'\"'+n.replace(/\\\"/g,'\"\"')+'\"':n}var c=new RegExp('[\"'+n+\"\\n]\"),l=n.charCodeAt(0);return e.parse=function(n,t){var r;return e.parseRows(n,function(n,e){if(r)return r(n,e-1);var i=new Function(\"d\",\"return {\"+n.map(function(n,t){return JSON.stringify(n)+\": d[\"+t+\"]\"}).join(\",\")+\"}\");r=t?function(n,e){return t(i(n),e)}:i})},e.parseRows=function(n,t){function e(){if(s>=c)return a;if(i)return i=!1,u;var t=s;if(34===n.charCodeAt(t)){for(var e=t;e++<c;)if(34===n.charCodeAt(e)){if(34!==n.charCodeAt(e+1))break;++e}s=e+2;var r=n.charCodeAt(e+1);return 13===r?(i=!0,10===n.charCodeAt(e+2)&&++s):10===r&&(i=!0),n.substring(t+1,e).replace(/\"\"/g,'\"')}for(;c>s;){var r=n.charCodeAt(s++),o=1;if(10===r)i=!0;else if(13===r)i=!0,10===n.charCodeAt(s)&&(++s,++o);else if(r!==l)continue;return n.substring(t,s-o)}return n.substring(t)}for(var r,i,u={},a={},o=[],c=n.length,s=0,f=0;(r=e())!==a;){for(var h=[];r!==u&&r!==a;)h.push(r),r=e();(!t||(h=t(h,f++)))&&o.push(h)}return o},e.format=function(t){if(Array.isArray(t[0]))return e.formatRows(t);var r=new u,i=[];return t.forEach(function(n){for(var t in n)r.has(t)||i.push(r.add(t))}),[i.map(o).join(n)].concat(t.map(function(t){return i.map(function(n){return o(t[n])}).join(n)})).join(\"\\n\")},e.formatRows=function(n){return n.map(a).join(\"\\n\")},e},da.csv=da.dsv(\",\",\"text/csv\"),da.tsv=da.dsv(\"\t\",\"text/tab-separated-values\");var co,lo,so,fo;da.timer=function(n,t,e){if(arguments.length<3){if(arguments.length<2)t=0;else if(!isFinite(t))return;e=Date.now()}var r=e+t,i={callback:n,time:r,next:null};lo?lo.next=i:co=i,lo=i,so||(fo=clearTimeout(fo),so=1,ho(vt))},da.timer.flush=function(){yt(),Mt()};var ho=ya[o(ya,\"requestAnimationFrame\")]||function(n){setTimeout(n,17)},go=\".\",po=\",\",mo=[3,3],vo=\"$\",yo=[\"y\",\"z\",\"a\",\"f\",\"p\",\"n\",\"µ\",\"m\",\"\",\"k\",\"M\",\"G\",\"T\",\"P\",\"E\",\"Z\",\"Y\"].map(xt);da.formatPrefix=function(n,t){var e=0;return n&&(0>n&&(n*=-1),t&&(n=da.round(n,bt(n,t))),e=1+Math.floor(1e-12+Math.log(n)/Math.LN10),e=Math.max(-24,Math.min(24,3*Math.floor((0>=e?e+1:e-1)/3)))),yo[8+e/3]},da.round=function(n,t){return t?Math.round(n*(t=Math.pow(10,t)))/t:Math.round(n)},da.format=function(n){var t=Mo.exec(n),e=t[1]||\" \",r=t[2]||\">\",i=t[3]||\"\",u=t[4]||\"\",a=t[5],o=+t[6],c=t[7],l=t[8],s=t[9],f=1,h=\"\",g=!1;switch(l&&(l=+l.substring(1)),(a||\"0\"===e&&\"=\"===r)&&(a=e=\"0\",r=\"=\",c&&(o-=Math.floor((o-1)/4))),s){case\"n\":c=!0,s=\"g\";break;case\"%\":f=100,h=\"%\",s=\"f\";break;case\"p\":f=100,h=\"%\",s=\"r\";break;case\"b\":case\"o\":case\"x\":case\"X\":\"#\"===u&&(u=\"0\"+s.toLowerCase());case\"c\":case\"d\":g=!0,l=0;break;case\"s\":f=-1,s=\"r\"}\"#\"===u?u=\"\":\"$\"===u&&(u=vo),\"r\"!=s||l||(s=\"g\"),null!=l&&(\"g\"==s?l=Math.max(1,Math.min(21,l)):(\"e\"==s||\"f\"==s)&&(l=Math.max(0,Math.min(20,l)))),s=xo.get(s)||_t;var p=a&&c;return function(n){if(g&&n%1)return\"\";var t=0>n||0===n&&0>1/n?(n=-n,\"-\"):i;if(0>f){var d=da.formatPrefix(n,l);n=d.scale(n),h=d.symbol}else n*=f;n=s(n,l);var m=n.lastIndexOf(\".\"),v=0>m?n:n.substring(0,m),y=0>m?\"\":go+n.substring(m+1);!a&&c&&(v=bo(v));var M=u.length+v.length+y.length+(p?0:t.length),x=o>M?new Array(M=o-M+1).join(e):\"\";return p&&(v=bo(x+v)),t+=u,n=v+y,(\"<\"===r?t+n+x:\">\"===r?x+t+n:\"^\"===r?x.substring(0,M>>=1)+t+n+x.substring(M):t+(p?n:x+n))+h}};var Mo=/(?:([^{])?([<>=^]))?([+\\- ])?([$#])?(0)?(\\d+)?(,)?(\\.-?\\d+)?([a-z%])?/i,xo=da.map({b:function(n){return n.toString(2)},c:function(n){return String.fromCharCode(n)},o:function(n){return n.toString(8)},x:function(n){return n.toString(16)},X:function(n){return n.toString(16).toUpperCase()},g:function(n,t){return n.toPrecision(t)},e:function(n,t){return n.toExponential(t)},f:function(n,t){return n.toFixed(t)},r:function(n,t){return(n=da.round(n,bt(n,t))).toFixed(Math.max(0,Math.min(20,bt(n*(1+1e-15),t))))}}),bo=gt;if(mo){var _o=mo.length;bo=function(n){for(var t=n.length,e=[],r=0,i=mo[0];t>0&&i>0;)e.push(n.substring(t-=i,t+i)),i=mo[r=(r+1)%_o];return e.reverse().join(po)}}da.geo={},wt.prototype={s:0,t:0,add:function(n){St(n,this.t,wo),St(wo.s,this.s,this),this.s?this.t+=wo.t:this.s=wo.t},reset:function(){this.s=this.t=0},valueOf:function(){return this.s}};var wo=new wt;da.geo.stream=function(n,t){n&&So.hasOwnProperty(n.type)?So[n.type](n,t):Et(n,t)};var So={Feature:function(n,t){Et(n.geometry,t)},FeatureCollection:function(n,t){for(var e=n.features,r=-1,i=e.length;++r<i;)Et(e[r].geometry,t)}},Eo={Sphere:function(n,t){t.sphere()},Point:function(n,t){var e=n.coordinates;t.point(e[0],e[1])},MultiPoint:function(n,t){for(var e,r=n.coordinates,i=-1,u=r.length;++i<u;)e=r[i],t.point(e[0],e[1])},LineString:function(n,t){kt(n.coordinates,t,0)},MultiLineString:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)kt(e[r],t,0)},Polygon:function(n,t){At(n.coordinates,t)},MultiPolygon:function(n,t){for(var e=n.coordinates,r=-1,i=e.length;++r<i;)At(e[r],t)},GeometryCollection:function(n,t){for(var e=n.geometries,r=-1,i=e.length;++r<i;)Et(e[r],t)}};da.geo.area=function(n){return ko=0,da.geo.stream(n,No),ko};var ko,Ao=new wt,No={sphere:function(){ko+=4*Wa},point:s,lineStart:s,lineEnd:s,polygonStart:function(){Ao.reset(),No.lineStart=Nt},polygonEnd:function(){var n=2*Ao;ko+=0>n?4*Wa+n:n,No.lineStart=No.lineEnd=No.point=s}};da.geo.bounds=function(){function n(n,t){M.push(x=[s=n,h=n]),f>t&&(f=t),t>g&&(g=t)}function t(t,e){var r=qt([t*Ka,e*Ka]);if(v){var i=Ct(v,r),u=[i[1],-i[0],0],a=Ct(u,i);jt(a),a=Lt(a);var c=t-p,l=c>0?1:-1,d=a[0]*Qa*l,m=Math.abs(c)>180;if(m^(d>l*p&&l*t>d)){var y=a[1]*Qa;y>g&&(g=y)}else if(d=(d+360)%360-180,m^(d>l*p&&l*t>d)){var y=-a[1]*Qa;f>y&&(f=y)}else f>e&&(f=e),e>g&&(g=e);m?p>t?o(s,t)>o(s,h)&&(h=t):o(t,h)>o(s,h)&&(s=t):h>=s?(s>t&&(s=t),t>h&&(h=t)):t>p?o(s,t)>o(s,h)&&(h=t):o(t,h)>o(s,h)&&(s=t)}else n(t,e);v=r,p=t}function e(){b.point=t}function r(){x[0]=s,x[1]=h,b.point=n,v=null}function i(n,e){if(v){var r=n-p;y+=Math.abs(r)>180?r+(r>0?360:-360):r}else d=n,m=e;No.point(n,e),t(n,e)}function u(){No.lineStart()}function a(){i(d,m),No.lineEnd(),Math.abs(y)>Ja&&(s=-(h=180)),x[0]=s,x[1]=h,v=null}function o(n,t){return(t-=n)<0?t+360:t}function c(n,t){return n[0]-t[0]}function l(n,t){return t[0]<=t[1]?t[0]<=n&&n<=t[1]:n<t[0]||t[1]<n}var s,f,h,g,p,d,m,v,y,M,x,b={point:n,lineStart:e,lineEnd:r,polygonStart:function(){b.point=i,b.lineStart=u,b.lineEnd=a,y=0,No.polygonStart()},polygonEnd:function(){No.polygonEnd(),b.point=n,b.lineStart=e,b.lineEnd=r,0>Ao?(s=-(h=180),f=-(g=90)):y>Ja?g=90:-Ja>y&&(f=-90),x[0]=s,x[1]=h}};return function(n){g=h=-(s=f=1/0),M=[],da.geo.stream(n,b);var t=M.length;if(t){M.sort(c);for(var e,r=1,i=M[0],u=[i];t>r;++r)e=M[r],l(e[0],i)||l(e[1],i)?(o(i[0],e[1])>o(i[0],i[1])&&(i[1]=e[1]),o(e[0],i[1])>o(i[0],i[1])&&(i[0]=e[0])):u.push(i=e);for(var a,e,p=-1/0,t=u.length-1,r=0,i=u[t];t>=r;i=e,++r)e=u[r],(a=o(i[1],e[0]))>p&&(p=a,s=e[0],h=i[1])}return M=x=null,1/0===s||1/0===f?[[0/0,0/0],[0/0,0/0]]:[[s,f],[h,g]]}}(),da.geo.centroid=function(n){qo=To=Co=zo=Do=jo=Lo=Ho=Fo=Po=Oo=0,da.geo.stream(n,Yo);var t=Fo,e=Po,r=Oo,i=t*t+e*e+r*r;return Ga>i&&(t=jo,e=Lo,r=Ho,Ja>To&&(t=Co,e=zo,r=Do),i=t*t+e*e+r*r,Ga>i)?[0/0,0/0]:[Math.atan2(e,t)*Qa,V(r/Math.sqrt(i))*Qa]};var qo,To,Co,zo,Do,jo,Lo,Ho,Fo,Po,Oo,Yo={sphere:s,point:Ft,lineStart:Ot,lineEnd:Yt,polygonStart:function(){Yo.lineStart=Rt},polygonEnd:function(){Yo.lineStart=Ot}},Ro=Xt(Ut,Jt,Kt,Qt),Uo=[-Wa,0],Io=1e9;(da.geo.conicEqualArea=function(){return ie(ue)}).raw=ue,da.geo.albers=function(){return da.geo.conicEqualArea().rotate([96,0]).center([-.6,38.7]).parallels([29.5,45.5]).scale(1070)},da.geo.albersUsa=function(){function n(n){var u=n[0],a=n[1];return t=null,e(u,a),t||(r(u,a),t)||i(u,a),t}var t,e,r,i,u=da.geo.albers(),a=da.geo.conicEqualArea().rotate([154,0]).center([-2,58.5]).parallels([55,65]),o=da.geo.conicEqualArea().rotate([157,0]).center([-3,19.9]).parallels([8,18]),c={point:function(n,e){t=[n,e]}};return n.invert=function(n){var t=u.scale(),e=u.translate(),r=(n[0]-e[0])/t,i=(n[1]-e[1])/t;return(i>=.12&&.234>i&&r>=-.425&&-.214>r?a:i>=.166&&.234>i&&r>=-.214&&-.115>r?o:u).invert(n)},n.stream=function(n){var t=u.stream(n),e=a.stream(n),r=o.stream(n);return{point:function(n,i){t.point(n,i),e.point(n,i),r.point(n,i)},sphere:function(){t.sphere(),e.sphere(),r.sphere()},lineStart:function(){t.lineStart(),e.lineStart(),r.lineStart()},lineEnd:function(){t.lineEnd(),e.lineEnd(),r.lineEnd()},polygonStart:function(){t.polygonStart(),e.polygonStart(),r.polygonStart()},polygonEnd:function(){t.polygonEnd(),e.polygonEnd(),r.polygonEnd()}}},n.precision=function(t){return arguments.length?(u.precision(t),a.precision(t),o.precision(t),n):u.precision()},n.scale=function(t){return arguments.length?(u.scale(t),a.scale(.35*t),o.scale(t),n.translate(u.translate())):u.scale()},n.translate=function(t){if(!arguments.length)return u.translate();var l=u.scale(),s=+t[0],f=+t[1];return e=u.translate(t).clipExtent([[s-.455*l,f-.238*l],[s+.455*l,f+.238*l]]).stream(c).point,r=a.translate([s-.307*l,f+.201*l]).clipExtent([[s-.425*l+Ja,f+.12*l+Ja],[s-.214*l-Ja,f+.234*l-Ja]]).stream(c).point,i=o.translate([s-.205*l,f+.212*l]).clipExtent([[s-.214*l+Ja,f+.166*l+Ja],[s-.115*l-Ja,f+.234*l-Ja]]).stream(c).point,n},n.scale(1070)};var Vo,Xo,Zo,Bo,$o,Wo,Jo={point:s,lineStart:s,lineEnd:s,polygonStart:function(){Xo=0,Jo.lineStart=ae},polygonEnd:function(){Jo.lineStart=Jo.lineEnd=Jo.point=s,Vo+=Math.abs(Xo/2)}},Go={point:oe,lineStart:s,lineEnd:s,polygonStart:s,polygonEnd:s},Ko={point:se,lineStart:fe,lineEnd:he,polygonStart:function(){Ko.lineStart=ge},polygonEnd:function(){Ko.point=se,Ko.lineStart=fe,Ko.lineEnd=he}};da.geo.path=function(){function n(n){return n&&(\"function\"==typeof o&&u.pointRadius(+o.apply(this,arguments)),a&&a.valid||(a=i(u)),da.geo.stream(n,a)),u.result()}function t(){return a=null,n}var e,r,i,u,a,o=4.5;return n.area=function(n){return Vo=0,da.geo.stream(n,i(Jo)),Vo},n.centroid=function(n){return Co=zo=Do=jo=Lo=Ho=Fo=Po=Oo=0,da.geo.stream(n,i(Ko)),Oo?[Fo/Oo,Po/Oo]:Ho?[jo/Ho,Lo/Ho]:Do?[Co/Do,zo/Do]:[0/0,0/0]},n.bounds=function(n){return $o=Wo=-(Zo=Bo=1/0),da.geo.stream(n,i(Go)),[[Zo,Bo],[$o,Wo]]},n.projection=function(n){return arguments.length?(i=(e=n)?n.stream||me(n):gt,t()):e},n.context=function(n){return arguments.length?(u=null==(r=n)?new ce:new pe(n),\"function\"!=typeof o&&u.pointRadius(o),t()):r},n.pointRadius=function(t){return arguments.length?(o=\"function\"==typeof t?t:(u.pointRadius(+t),+t),n):o},n.projection(da.geo.albersUsa()).context(null)},da.geo.projection=ve,da.geo.projectionMutator=ye,(da.geo.equirectangular=function(){return ve(xe)}).raw=xe.invert=xe,da.geo.rotation=function(n){function t(t){return t=n(t[0]*Ka,t[1]*Ka),t[0]*=Qa,t[1]*=Qa,t}return n=be(n[0]%360*Ka,n[1]*Ka,n.length>2?n[2]*Ka:0),t.invert=function(t){return t=n.invert(t[0]*Ka,t[1]*Ka),t[0]*=Qa,t[1]*=Qa,t},t},da.geo.circle=function(){function n(){var n=\"function\"==typeof r?r.apply(this,arguments):r,t=be(-n[0]*Ka,-n[1]*Ka,0).invert,i=[];return e(null,null,1,{point:function(n,e){i.push(n=t(n,e)),n[0]*=Qa,n[1]*=Qa}}),{type:\"Polygon\",coordinates:[i]}}var t,e,r=[0,0],i=6;return n.origin=function(t){return arguments.length?(r=t,n):r},n.angle=function(r){return arguments.length?(e=Ee((t=+r)*Ka,i*Ka),n):t},n.precision=function(r){return arguments.length?(e=Ee(t*Ka,(i=+r)*Ka),n):i},n.angle(90)},da.geo.distance=function(n,t){var e,r=(t[0]-n[0])*Ka,i=n[1]*Ka,u=t[1]*Ka,a=Math.sin(r),o=Math.cos(r),c=Math.sin(i),l=Math.cos(i),s=Math.sin(u),f=Math.cos(u);return Math.atan2(Math.sqrt((e=f*a)*e+(e=l*s-c*f*o)*e),c*s+l*f*o)},da.geo.graticule=function(){function n(){return{type:\"MultiLineString\",coordinates:t()}}function t(){return da.range(Math.ceil(u/m)*m,i,m).map(h).concat(da.range(Math.ceil(l/v)*v,c,v).map(g)).concat(da.range(Math.ceil(r/p)*p,e,p).filter(function(n){return Math.abs(n%m)>Ja}).map(s)).concat(da.range(Math.ceil(o/d)*d,a,d).filter(function(n){return Math.abs(n%v)>Ja}).map(f))}var e,r,i,u,a,o,c,l,s,f,h,g,p=10,d=p,m=90,v=360,y=2.5;return n.lines=function(){return t().map(function(n){return{type:\"LineString\",coordinates:n}})},n.outline=function(){return{type:\"Polygon\",coordinates:[h(u).concat(g(c).slice(1),h(i).reverse().slice(1),g(l).reverse().slice(1))]}},n.extent=function(t){return arguments.length?n.majorExtent(t).minorExtent(t):n.minorExtent()},n.majorExtent=function(t){return arguments.length?(u=+t[0][0],i=+t[1][0],l=+t[0][1],c=+t[1][1],u>i&&(t=u,u=i,i=t),l>c&&(t=l,l=c,c=t),n.precision(y)):[[u,l],[i,c]]},n.minorExtent=function(t){return arguments.length?(r=+t[0][0],e=+t[1][0],o=+t[0][1],a=+t[1][1],r>e&&(t=r,r=e,e=t),o>a&&(t=o,o=a,a=t),n.precision(y)):[[r,o],[e,a]]},n.step=function(t){return arguments.length?n.majorStep(t).minorStep(t):n.minorStep()},n.majorStep=function(t){return arguments.length?(m=+t[0],v=+t[1],n):[m,v]},n.minorStep=function(t){return arguments.length?(p=+t[0],d=+t[1],n):[p,d]},n.precision=function(t){return arguments.length?(y=+t,s=Ae(o,a,90),f=Ne(r,e,y),h=Ae(l,c,90),g=Ne(u,i,y),n):y},n.majorExtent([[-180,-90+Ja],[180,90-Ja]]).minorExtent([[-180,-80-Ja],[180,80+Ja]])},da.geo.greatArc=function(){function n(){return{type:\"LineString\",coordinates:[t||r.apply(this,arguments),e||i.apply(this,arguments)]}}var t,e,r=qe,i=Te;return n.distance=function(){return da.geo.distance(t||r.apply(this,arguments),e||i.apply(this,arguments))},n.source=function(e){return arguments.length?(r=e,t=\"function\"==typeof e?null:e,n):r},n.target=function(t){return arguments.length?(i=t,e=\"function\"==typeof t?null:t,n):i},n.precision=function(){return arguments.length?n:0},n},da.geo.interpolate=function(n,t){return Ce(n[0]*Ka,n[1]*Ka,t[0]*Ka,t[1]*Ka)},da.geo.length=function(n){return Qo=0,da.geo.stream(n,nc),Qo};var Qo,nc={sphere:s,point:s,lineStart:ze,lineEnd:s,polygonStart:s,polygonEnd:s},tc=De(function(n){return Math.sqrt(2/(1+n))},function(n){return 2*Math.asin(n/2)});(da.geo.azimuthalEqualArea=function(){return ve(tc)}).raw=tc;var ec=De(function(n){var t=Math.acos(n);return t&&t/Math.sin(t)},gt);(da.geo.azimuthalEquidistant=function(){return ve(ec)}).raw=ec,(da.geo.conicConformal=function(){return ie(je)}).raw=je,(da.geo.conicEquidistant=function(){return ie(Le)}).raw=Le;var rc=De(function(n){return 1/n},Math.atan);(da.geo.gnomonic=function(){return ve(rc)}).raw=rc,He.invert=function(n,t){return[n,2*Math.atan(Math.exp(t))-Wa/2]},(da.geo.mercator=function(){return Fe(He)}).raw=He;var ic=De(function(){return 1},Math.asin);(da.geo.orthographic=function(){return ve(ic)}).raw=ic;var uc=De(function(n){return 1/(1+n)},function(n){return 2*Math.atan(n)});(da.geo.stereographic=function(){return ve(uc)}).raw=uc,Pe.invert=function(n,t){return[Math.atan2(X(n),Math.cos(t)),V(Math.sin(t)/Z(n))]},(da.geo.transverseMercator=function(){return Fe(Pe)}).raw=Pe,da.geom={},da.svg={},da.svg.line=function(){return Oe(gt)\n};var ac=da.map({linear:Ue,\"linear-closed\":Ie,step:Ve,\"step-before\":Xe,\"step-after\":Ze,basis:Ke,\"basis-open\":Qe,\"basis-closed\":nr,bundle:tr,cardinal:We,\"cardinal-open\":Be,\"cardinal-closed\":$e,monotone:or});ac.forEach(function(n,t){t.key=n,t.closed=/-closed$/.test(n)});var oc=[0,2/3,1/3,0],cc=[0,1/3,2/3,0],lc=[0,1/6,2/3,1/6];da.geom.hull=function(n){function t(n){if(n.length<3)return[];var t,i,u,a,o,c,l,s,f,h,g,p,d=ht(e),m=ht(r),v=n.length,y=v-1,M=[],x=[],b=0;if(d===Ye&&r===Re)t=n;else for(u=0,t=[];v>u;++u)t.push([+d.call(this,i=n[u],u),+m.call(this,i,u)]);for(u=1;v>u;++u)(t[u][1]<t[b][1]||t[u][1]==t[b][1]&&t[u][0]<t[b][0])&&(b=u);for(u=0;v>u;++u)u!==b&&(c=t[u][1]-t[b][1],o=t[u][0]-t[b][0],M.push({angle:Math.atan2(c,o),index:u}));for(M.sort(function(n,t){return n.angle-t.angle}),g=M[0].angle,h=M[0].index,f=0,u=1;y>u;++u){if(a=M[u].index,g==M[u].angle){if(o=t[h][0]-t[b][0],c=t[h][1]-t[b][1],l=t[a][0]-t[b][0],s=t[a][1]-t[b][1],o*o+c*c>=l*l+s*s){M[u].index=-1;continue}M[f].index=-1}g=M[u].angle,f=u,h=a}for(x.push(b),u=0,a=0;2>u;++a)M[a].index>-1&&(x.push(M[a].index),u++);for(p=x.length;y>a;++a)if(!(M[a].index<0)){for(;!cr(x[p-2],x[p-1],M[a].index,t);)--p;x[p++]=M[a].index}var _=[];for(u=p-1;u>=0;--u)_.push(n[x[u]]);return _}var e=Ye,r=Re;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t)},da.geom.polygon=function(n){return za(n,sc),n};var sc=da.geom.polygon.prototype=[];sc.area=function(){for(var n,t=-1,e=this.length,r=this[e-1],i=0;++t<e;)n=r,r=this[t],i+=n[1]*r[0]-n[0]*r[1];return.5*i},sc.centroid=function(n){var t,e,r=-1,i=this.length,u=0,a=0,o=this[i-1];for(arguments.length||(n=-1/(6*this.area()));++r<i;)t=o,o=this[r],e=t[0]*o[1]-o[0]*t[1],u+=(t[0]+o[0])*e,a+=(t[1]+o[1])*e;return[u*n,a*n]},sc.clip=function(n){for(var t,e,r,i,u,a,o=fr(n),c=-1,l=this.length-fr(this),s=this[l-1];++c<l;){for(t=n.slice(),n.length=0,i=this[c],u=t[(r=t.length-o)-1],e=-1;++e<r;)a=t[e],lr(a,s,i)?(lr(u,s,i)||n.push(sr(u,a,s,i)),n.push(a)):lr(u,s,i)&&n.push(sr(u,a,s,i)),u=a;o&&n.push(n[0]),s=i}return n},da.geom.delaunay=function(n){var t=n.map(function(){return[]}),e=[];return hr(n,function(e){t[e.region.l.index].push(n[e.region.r.index])}),t.forEach(function(t,r){var i=n[r],u=i[0],a=i[1];t.forEach(function(n){n.angle=Math.atan2(n[0]-u,n[1]-a)}),t.sort(function(n,t){return n.angle-t.angle});for(var o=0,c=t.length-1;c>o;o++)e.push([i,t[o],t[o+1]])}),e},da.geom.voronoi=function(n){function t(n){var t,u,a,o=n.map(function(){return[]}),c=ht(e),l=ht(r),s=n.length,f=1e6;if(c===Ye&&l===Re)t=n;else for(t=new Array(s),a=0;s>a;++a)t[a]=[+c.call(this,u=n[a],a),+l.call(this,u,a)];if(hr(t,function(n){var t,e,r,i,u,a;1===n.a&&n.b>=0?(t=n.ep.r,e=n.ep.l):(t=n.ep.l,e=n.ep.r),1===n.a?(u=t?t.y:-f,r=n.c-n.b*u,a=e?e.y:f,i=n.c-n.b*a):(r=t?t.x:-f,u=n.c-n.a*r,i=e?e.x:f,a=n.c-n.a*i);var c=[r,u],l=[i,a];o[n.region.l.index].push(c,l),o[n.region.r.index].push(c,l)}),o=o.map(function(n,e){var r=t[e][0],i=t[e][1],u=n.map(function(n){return Math.atan2(n[0]-r,n[1]-i)}),a=da.range(n.length).sort(function(n,t){return u[n]-u[t]});return a.filter(function(n,t){return!t||u[n]-u[a[t-1]]>Ja}).map(function(t){return n[t]})}),o.forEach(function(n,e){var r=n.length;if(!r)return n.push([-f,-f],[-f,f],[f,f],[f,-f]);if(!(r>2)){var i=t[e],u=n[0],a=n[1],o=i[0],c=i[1],l=u[0],s=u[1],h=a[0],g=a[1],p=Math.abs(h-l),d=g-s;if(Math.abs(d)<Ja){var m=s>c?-f:f;n.push([-f,m],[f,m])}else if(Ja>p){var v=l>o?-f:f;n.push([v,-f],[v,f])}else{var m=(l-o)*(g-s)>(h-l)*(s-c)?f:-f,y=Math.abs(d)-p;Math.abs(y)<Ja?n.push([0>d?m:-m,m]):(y>0&&(m*=-1),n.push([-f,m],[f,m]))}}}),i)for(a=0;s>a;++a)i.clip(o[a]);for(a=0;s>a;++a)o[a].point=n[a];return o}var e=Ye,r=Re,i=null;return arguments.length?t(n):(t.x=function(n){return arguments.length?(e=n,t):e},t.y=function(n){return arguments.length?(r=n,t):r},t.clipExtent=function(n){if(!arguments.length)return i&&[i[0],i[2]];if(null==n)i=null;else{var e=+n[0][0],r=+n[0][1],u=+n[1][0],a=+n[1][1];i=da.geom.polygon([[e,r],[e,a],[u,a],[u,r]])}return t},t.size=function(n){return arguments.length?t.clipExtent(n&&[[0,0],n]):i&&i[2]},t.links=function(n){var t,i,u,a=n.map(function(){return[]}),o=[],c=ht(e),l=ht(r),s=n.length;if(c===Ye&&l===Re)t=n;else for(t=new Array(s),u=0;s>u;++u)t[u]=[+c.call(this,i=n[u],u),+l.call(this,i,u)];return hr(t,function(t){var e=t.region.l.index,r=t.region.r.index;a[e][r]||(a[e][r]=a[r][e]=!0,o.push({source:n[e],target:n[r]}))}),o},t.triangles=function(n){if(e===Ye&&r===Re)return da.geom.delaunay(n);for(var t,i=new Array(c),u=ht(e),a=ht(r),o=-1,c=n.length;++o<c;)(i[o]=[+u.call(this,t=n[o],o),+a.call(this,t,o)]).data=t;return da.geom.delaunay(i).map(function(n){return n.map(function(n){return n.data})})},t)};var fc={l:\"r\",r:\"l\"};da.geom.quadtree=function(n,t,e,r,i){function u(n){function u(n,t,e,r,i,u,a,o){if(!isNaN(e)&&!isNaN(r))if(n.leaf){var c=n.x,s=n.y;if(null!=c)if(Math.abs(c-e)+Math.abs(s-r)<.01)l(n,t,e,r,i,u,a,o);else{var f=n.point;n.x=n.y=n.point=null,l(n,f,c,s,i,u,a,o),l(n,t,e,r,i,u,a,o)}else n.x=e,n.y=r,n.point=t}else l(n,t,e,r,i,u,a,o)}function l(n,t,e,r,i,a,o,c){var l=.5*(i+o),s=.5*(a+c),f=e>=l,h=r>=s,g=(h<<1)+f;n.leaf=!1,n=n.nodes[g]||(n.nodes[g]=dr()),f?i=l:o=l,h?a=s:c=s,u(n,t,e,r,i,a,o,c)}var s,f,h,g,p,d,m,v,y,M=ht(o),x=ht(c);if(null!=t)d=t,m=e,v=r,y=i;else if(v=y=-(d=m=1/0),f=[],h=[],p=n.length,a)for(g=0;p>g;++g)s=n[g],s.x<d&&(d=s.x),s.y<m&&(m=s.y),s.x>v&&(v=s.x),s.y>y&&(y=s.y),f.push(s.x),h.push(s.y);else for(g=0;p>g;++g){var b=+M(s=n[g],g),_=+x(s,g);d>b&&(d=b),m>_&&(m=_),b>v&&(v=b),_>y&&(y=_),f.push(b),h.push(_)}var w=v-d,S=y-m;w>S?y=m+w:v=d+S;var E=dr();if(E.add=function(n){u(E,n,+M(n,++g),+x(n,g),d,m,v,y)},E.visit=function(n){mr(n,E,d,m,v,y)},g=-1,null==t){for(;++g<p;)u(E,n[g],f[g],h[g],d,m,v,y);--g}else n.forEach(E.add);return f=h=n=s=null,E}var a,o=Ye,c=Re;return(a=arguments.length)?(o=gr,c=pr,3===a&&(i=e,r=t,e=t=0),u(n)):(u.x=function(n){return arguments.length?(o=n,u):o},u.y=function(n){return arguments.length?(c=n,u):c},u.extent=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=+n[0][0],e=+n[0][1],r=+n[1][0],i=+n[1][1]),u):null==t?null:[[t,e],[r,i]]},u.size=function(n){return arguments.length?(null==n?t=e=r=i=null:(t=e=0,r=+n[0],i=+n[1]),u):null==t?null:[r-t,i-e]},u)},da.interpolateRgb=vr,da.interpolateObject=yr,da.interpolateNumber=Mr,da.interpolateString=xr;var hc=/[-+]?(?:\\d+\\.?\\d*|\\.?\\d+)(?:[eE][-+]?\\d+)?/g;da.interpolate=br,da.interpolators=[function(n,t){var e=typeof t;return(\"string\"===e?oo.has(t)||/^(#|rgb\\(|hsl\\()/.test(t)?vr:xr:t instanceof P?vr:\"object\"===e?Array.isArray(t)?_r:yr:Mr)(n,t)}],da.interpolateArray=_r;var gc=function(){return gt},pc=da.map({linear:gc,poly:qr,quad:function(){return kr},cubic:function(){return Ar},sin:function(){return Tr},exp:function(){return Cr},circle:function(){return zr},elastic:Dr,back:jr,bounce:function(){return Lr}}),dc=da.map({\"in\":gt,out:Sr,\"in-out\":Er,\"out-in\":function(n){return Er(Sr(n))}});da.ease=function(n){var t=n.indexOf(\"-\"),e=t>=0?n.substring(0,t):n,r=t>=0?n.substring(t+1):\"in\";return e=pc.get(e)||gc,r=dc.get(r)||gt,wr(r(e.apply(null,Array.prototype.slice.call(arguments,1))))},da.interpolateHcl=Hr,da.interpolateHsl=Fr,da.interpolateLab=Pr,da.interpolateRound=Or,da.transform=function(n){var t=ma.createElementNS(da.ns.prefix.svg,\"g\");return(da.transform=function(n){if(null!=n){t.setAttribute(\"transform\",n);var e=t.transform.baseVal.consolidate()}return new Yr(e?e.matrix:mc)})(n)},Yr.prototype.toString=function(){return\"translate(\"+this.translate+\")rotate(\"+this.rotate+\")skewX(\"+this.skew+\")scale(\"+this.scale+\")\"};var mc={a:1,b:0,c:0,d:1,e:0,f:0};da.interpolateTransform=Vr,da.layout={},da.layout.bundle=function(){return function(n){for(var t=[],e=-1,r=n.length;++e<r;)t.push(Br(n[e]));return t}},da.layout.chord=function(){function n(){var n,l,f,h,g,p={},d=[],m=da.range(u),v=[];for(e=[],r=[],n=0,h=-1;++h<u;){for(l=0,g=-1;++g<u;)l+=i[h][g];d.push(l),v.push(da.range(u)),n+=l}for(a&&m.sort(function(n,t){return a(d[n],d[t])}),o&&v.forEach(function(n,t){n.sort(function(n,e){return o(i[t][n],i[t][e])})}),n=(2*Wa-s*u)/n,l=0,h=-1;++h<u;){for(f=l,g=-1;++g<u;){var y=m[h],M=v[y][g],x=i[y][M],b=l,_=l+=x*n;p[y+\"-\"+M]={index:y,subindex:M,startAngle:b,endAngle:_,value:x}}r[y]={index:y,startAngle:f,endAngle:l,value:(l-f)/n},l+=s}for(h=-1;++h<u;)for(g=h-1;++g<u;){var w=p[h+\"-\"+g],S=p[g+\"-\"+h];(w.value||S.value)&&e.push(w.value<S.value?{source:S,target:w}:{source:w,target:S})}c&&t()}function t(){e.sort(function(n,t){return c((n.source.value+n.target.value)/2,(t.source.value+t.target.value)/2)})}var e,r,i,u,a,o,c,l={},s=0;return l.matrix=function(n){return arguments.length?(u=(i=n)&&i.length,e=r=null,l):i},l.padding=function(n){return arguments.length?(s=n,e=r=null,l):s},l.sortGroups=function(n){return arguments.length?(a=n,e=r=null,l):a},l.sortSubgroups=function(n){return arguments.length?(o=n,e=null,l):o},l.sortChords=function(n){return arguments.length?(c=n,e&&t(),l):c},l.chords=function(){return e||n(),e},l.groups=function(){return r||n(),r},l},da.layout.force=function(){function n(n){return function(t,e,r,i){if(t.point!==n){var u=t.cx-n.x,a=t.cy-n.y,o=1/Math.sqrt(u*u+a*a);if(d>(i-e)*o){var c=t.charge*o*o;return n.px-=u*c,n.py-=a*c,!0}if(t.point&&isFinite(o)){var c=t.pointCharge*o*o;n.px-=u*c,n.py-=a*c}}return!t.charge}}function t(n){n.px=da.event.x,n.py=da.event.y,o.resume()}var e,r,i,u,a,o={},c=da.dispatch(\"start\",\"tick\",\"end\"),l=[1,1],s=.9,f=vc,h=yc,g=-30,p=.1,d=.8,m=[],v=[];return o.tick=function(){if((r*=.99)<.005)return c.end({type:\"end\",alpha:r=0}),!0;var t,e,o,f,h,d,y,M,x,b=m.length,_=v.length;for(e=0;_>e;++e)o=v[e],f=o.source,h=o.target,M=h.x-f.x,x=h.y-f.y,(d=M*M+x*x)&&(d=r*u[e]*((d=Math.sqrt(d))-i[e])/d,M*=d,x*=d,h.x-=M*(y=f.weight/(h.weight+f.weight)),h.y-=x*y,f.x+=M*(y=1-y),f.y+=x*y);if((y=r*p)&&(M=l[0]/2,x=l[1]/2,e=-1,y))for(;++e<b;)o=m[e],o.x+=(M-o.x)*y,o.y+=(x-o.y)*y;if(g)for(ni(t=da.geom.quadtree(m),r,a),e=-1;++e<b;)(o=m[e]).fixed||t.visit(n(o));for(e=-1;++e<b;)o=m[e],o.fixed?(o.x=o.px,o.y=o.py):(o.x-=(o.px-(o.px=o.x))*s,o.y-=(o.py-(o.py=o.y))*s);c.tick({type:\"tick\",alpha:r})},o.nodes=function(n){return arguments.length?(m=n,o):m},o.links=function(n){return arguments.length?(v=n,o):v},o.size=function(n){return arguments.length?(l=n,o):l},o.linkDistance=function(n){return arguments.length?(f=\"function\"==typeof n?n:+n,o):f},o.distance=o.linkDistance,o.linkStrength=function(n){return arguments.length?(h=\"function\"==typeof n?n:+n,o):h},o.friction=function(n){return arguments.length?(s=+n,o):s},o.charge=function(n){return arguments.length?(g=\"function\"==typeof n?n:+n,o):g},o.gravity=function(n){return arguments.length?(p=+n,o):p},o.theta=function(n){return arguments.length?(d=+n,o):d},o.alpha=function(n){return arguments.length?(n=+n,r?r=n>0?n:0:n>0&&(c.start({type:\"start\",alpha:r=n}),da.timer(o.tick)),o):r},o.start=function(){function n(n,r){for(var i,u=t(e),a=-1,o=u.length;++a<o;)if(!isNaN(i=u[a][n]))return i;return Math.random()*r}function t(){if(!c){for(c=[],r=0;p>r;++r)c[r]=[];for(r=0;d>r;++r){var n=v[r];c[n.source.index].push(n.target),c[n.target.index].push(n.source)}}return c[e]}var e,r,c,s,p=m.length,d=v.length,y=l[0],M=l[1];for(e=0;p>e;++e)(s=m[e]).index=e,s.weight=0;for(e=0;d>e;++e)s=v[e],\"number\"==typeof s.source&&(s.source=m[s.source]),\"number\"==typeof s.target&&(s.target=m[s.target]),++s.source.weight,++s.target.weight;for(e=0;p>e;++e)s=m[e],isNaN(s.x)&&(s.x=n(\"x\",y)),isNaN(s.y)&&(s.y=n(\"y\",M)),isNaN(s.px)&&(s.px=s.x),isNaN(s.py)&&(s.py=s.y);if(i=[],\"function\"==typeof f)for(e=0;d>e;++e)i[e]=+f.call(this,v[e],e);else for(e=0;d>e;++e)i[e]=f;if(u=[],\"function\"==typeof h)for(e=0;d>e;++e)u[e]=+h.call(this,v[e],e);else for(e=0;d>e;++e)u[e]=h;if(a=[],\"function\"==typeof g)for(e=0;p>e;++e)a[e]=+g.call(this,m[e],e);else for(e=0;p>e;++e)a[e]=g;return o.resume()},o.resume=function(){return o.alpha(.1)},o.stop=function(){return o.alpha(0)},o.drag=function(){return e||(e=da.behavior.drag().origin(gt).on(\"dragstart.force\",Jr).on(\"drag.force\",t).on(\"dragend.force\",Gr)),arguments.length?(this.on(\"mouseover.force\",Kr).on(\"mouseout.force\",Qr).call(e),void 0):e},da.rebind(o,c,\"on\")};var vc=20,yc=1;da.layout.hierarchy=function(){function n(t,a,o){var c=i.call(e,t,a);if(t.depth=a,o.push(t),c&&(l=c.length)){for(var l,s,f=-1,h=t.children=[],g=0,p=a+1;++f<l;)s=n(c[f],p,o),s.parent=t,h.push(s),g+=s.value;r&&h.sort(r),u&&(t.value=g)}else u&&(t.value=+u.call(e,t,a)||0);return t}function t(n,r){var i=n.children,a=0;if(i&&(o=i.length))for(var o,c=-1,l=r+1;++c<o;)a+=t(i[c],l);else u&&(a=+u.call(e,n,r)||0);return u&&(n.value=a),a}function e(t){var e=[];return n(t,0,e),e}var r=ii,i=ei,u=ri;return e.sort=function(n){return arguments.length?(r=n,e):r},e.children=function(n){return arguments.length?(i=n,e):i},e.value=function(n){return arguments.length?(u=n,e):u},e.revalue=function(n){return t(n,0),n},e},da.layout.partition=function(){function n(t,e,r,i){var u=t.children;if(t.x=e,t.y=t.depth*i,t.dx=r,t.dy=i,u&&(a=u.length)){var a,o,c,l=-1;for(r=t.value?r/t.value:0;++l<a;)n(o=u[l],e,c=o.value*r,i),e+=c}}function t(n){var e=n.children,r=0;if(e&&(i=e.length))for(var i,u=-1;++u<i;)r=Math.max(r,t(e[u]));return 1+r}function e(e,u){var a=r.call(this,e,u);return n(a[0],0,i[0],i[1]/t(a[0])),a}var r=da.layout.hierarchy(),i=[1,1];return e.size=function(n){return arguments.length?(i=n,e):i},ti(e,r)},da.layout.pie=function(){function n(u){var a=u.map(function(e,r){return+t.call(n,e,r)}),o=+(\"function\"==typeof r?r.apply(this,arguments):r),c=((\"function\"==typeof i?i.apply(this,arguments):i)-o)/da.sum(a),l=da.range(u.length);null!=e&&l.sort(e===Mc?function(n,t){return a[t]-a[n]}:function(n,t){return e(u[n],u[t])});var s=[];return l.forEach(function(n){var t;s[n]={data:u[n],value:t=a[n],startAngle:o,endAngle:o+=t*c}}),s}var t=Number,e=Mc,r=0,i=2*Wa;return n.value=function(e){return arguments.length?(t=e,n):t},n.sort=function(t){return arguments.length?(e=t,n):e},n.startAngle=function(t){return arguments.length?(r=t,n):r},n.endAngle=function(t){return arguments.length?(i=t,n):i},n};var Mc={};da.layout.stack=function(){function n(o,c){var l=o.map(function(e,r){return t.call(n,e,r)}),s=l.map(function(t){return t.map(function(t,e){return[u.call(n,t,e),a.call(n,t,e)]})}),f=e.call(n,s,c);l=da.permute(l,f),s=da.permute(s,f);var h,g,p,d=r.call(n,s,c),m=l.length,v=l[0].length;for(g=0;v>g;++g)for(i.call(n,l[0][g],p=d[g],s[0][g][1]),h=1;m>h;++h)i.call(n,l[h][g],p+=s[h-1][g][1],s[h][g][1]);return o}var t=gt,e=li,r=si,i=ci,u=ai,a=oi;return n.values=function(e){return arguments.length?(t=e,n):t},n.order=function(t){return arguments.length?(e=\"function\"==typeof t?t:xc.get(t)||li,n):e},n.offset=function(t){return arguments.length?(r=\"function\"==typeof t?t:bc.get(t)||si,n):r},n.x=function(t){return arguments.length?(u=t,n):u},n.y=function(t){return arguments.length?(a=t,n):a},n.out=function(t){return arguments.length?(i=t,n):i},n};var xc=da.map({\"inside-out\":function(n){var t,e,r=n.length,i=n.map(fi),u=n.map(hi),a=da.range(r).sort(function(n,t){return i[n]-i[t]}),o=0,c=0,l=[],s=[];for(t=0;r>t;++t)e=a[t],c>o?(o+=u[e],l.push(e)):(c+=u[e],s.push(e));return s.reverse().concat(l)},reverse:function(n){return da.range(n.length).reverse()},\"default\":li}),bc=da.map({silhouette:function(n){var t,e,r,i=n.length,u=n[0].length,a=[],o=0,c=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];r>o&&(o=r),a.push(r)}for(e=0;u>e;++e)c[e]=(o-a[e])/2;return c},wiggle:function(n){var t,e,r,i,u,a,o,c,l,s=n.length,f=n[0],h=f.length,g=[];for(g[0]=c=l=0,e=1;h>e;++e){for(t=0,i=0;s>t;++t)i+=n[t][e][1];for(t=0,u=0,o=f[e][0]-f[e-1][0];s>t;++t){for(r=0,a=(n[t][e][1]-n[t][e-1][1])/(2*o);t>r;++r)a+=(n[r][e][1]-n[r][e-1][1])/o;u+=a*n[t][e][1]}g[e]=c-=i?u/i*o:0,l>c&&(l=c)}for(e=0;h>e;++e)g[e]-=l;return g},expand:function(n){var t,e,r,i=n.length,u=n[0].length,a=1/i,o=[];for(e=0;u>e;++e){for(t=0,r=0;i>t;t++)r+=n[t][e][1];if(r)for(t=0;i>t;t++)n[t][e][1]/=r;else for(t=0;i>t;t++)n[t][e][1]=a}for(e=0;u>e;++e)o[e]=0;return o},zero:si});da.layout.histogram=function(){function n(n,u){for(var a,o,c=[],l=n.map(e,this),s=r.call(this,l,u),f=i.call(this,s,l,u),u=-1,h=l.length,g=f.length-1,p=t?1:1/h;++u<g;)a=c[u]=[],a.dx=f[u+1]-(a.x=f[u]),a.y=0;if(g>0)for(u=-1;++u<h;)o=l[u],o>=s[0]&&o<=s[1]&&(a=c[da.bisect(f,o,1,g)-1],a.y+=p,a.push(n[u]));return c}var t=!0,e=Number,r=mi,i=pi;return n.value=function(t){return arguments.length?(e=t,n):e},n.range=function(t){return arguments.length?(r=ht(t),n):r},n.bins=function(t){return arguments.length?(i=\"number\"==typeof t?function(n){return di(n,t)}:ht(t),n):i},n.frequency=function(e){return arguments.length?(t=!!e,n):t},n},da.layout.tree=function(){function n(n,u){function a(n,t){var r=n.children,i=n._tree;if(r&&(u=r.length)){for(var u,o,l,s=r[0],f=s,h=-1;++h<u;)l=r[h],a(l,o),f=c(l,o,f),o=l;Ei(n);var g=.5*(s._tree.prelim+l._tree.prelim);t?(i.prelim=t._tree.prelim+e(n,t),i.mod=i.prelim-g):i.prelim=g}else t&&(i.prelim=t._tree.prelim+e(n,t))}function o(n,t){n.x=n._tree.prelim+t;var e=n.children;if(e&&(r=e.length)){var r,i=-1;for(t+=n._tree.mod;++i<r;)o(e[i],t)}}function c(n,t,r){if(t){for(var i,u=n,a=n,o=t,c=n.parent.children[0],l=u._tree.mod,s=a._tree.mod,f=o._tree.mod,h=c._tree.mod;o=Mi(o),u=yi(u),o&&u;)c=yi(c),a=Mi(a),a._tree.ancestor=n,i=o._tree.prelim+f-u._tree.prelim-l+e(o,u),i>0&&(ki(Ai(o,n,r),n,i),l+=i,s+=i),f+=o._tree.mod,l+=u._tree.mod,h+=c._tree.mod,s+=a._tree.mod;o&&!Mi(a)&&(a._tree.thread=o,a._tree.mod+=f-s),u&&!yi(c)&&(c._tree.thread=u,c._tree.mod+=l-h,r=n)}return r}var l=t.call(this,n,u),s=l[0];Si(s,function(n,t){n._tree={ancestor:n,prelim:0,mod:0,change:0,shift:0,number:t?t._tree.number+1:0}}),a(s),o(s,-s._tree.prelim);var f=xi(s,_i),h=xi(s,bi),g=xi(s,wi),p=f.x-e(f,h)/2,d=h.x+e(h,f)/2,m=g.depth||1;return Si(s,i?function(n){n.x*=r[0],n.y=n.depth*r[1],delete n._tree}:function(n){n.x=(n.x-p)/(d-p)*r[0],n.y=n.depth/m*r[1],delete n._tree}),l}var t=da.layout.hierarchy().sort(null).value(null),e=vi,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ti(n,t)},da.layout.pack=function(){function n(n,u){var a=e.call(this,n,u),o=a[0],c=i[0],l=i[1],s=null==t?Math.sqrt:\"function\"==typeof t?t:function(){return t};if(o.x=o.y=0,Si(o,function(n){n.r=+s(n.value)}),Si(o,zi),r){var f=r*(t?1:Math.max(2*o.r/c,2*o.r/l))/2;Si(o,function(n){n.r+=f}),Si(o,zi),Si(o,function(n){n.r-=f})}return Li(o,c/2,l/2,t?1:1/Math.max(2*o.r/c,2*o.r/l)),a}var t,e=da.layout.hierarchy().sort(Ni),r=0,i=[1,1];return n.size=function(t){return arguments.length?(i=t,n):i},n.radius=function(e){return arguments.length?(t=null==e||\"function\"==typeof e?e:+e,n):t},n.padding=function(t){return arguments.length?(r=+t,n):r},ti(n,e)},da.layout.cluster=function(){function n(n,u){var a,o=t.call(this,n,u),c=o[0],l=0;Si(c,function(n){var t=n.children;t&&t.length?(n.x=Pi(t),n.y=Fi(t)):(n.x=a?l+=e(n,a):0,n.y=0,a=n)});var s=Oi(c),f=Yi(c),h=s.x-e(s,f)/2,g=f.x+e(f,s)/2;return Si(c,i?function(n){n.x=(n.x-c.x)*r[0],n.y=(c.y-n.y)*r[1]}:function(n){n.x=(n.x-h)/(g-h)*r[0],n.y=(1-(c.y?n.y/c.y:1))*r[1]}),o}var t=da.layout.hierarchy().sort(null).value(null),e=vi,r=[1,1],i=!1;return n.separation=function(t){return arguments.length?(e=t,n):e},n.size=function(t){return arguments.length?(i=null==(r=t),n):i?null:r},n.nodeSize=function(t){return arguments.length?(i=null!=(r=t),n):i?r:null},ti(n,t)},da.layout.treemap=function(){function n(n,t){for(var e,r,i=-1,u=n.length;++i<u;)r=(e=n[i]).value*(0>t?0:t),e.area=isNaN(r)||0>=r?0:r}function t(e){var u=e.children;if(u&&u.length){var a,o,c,l=f(e),s=[],h=u.slice(),p=1/0,d=\"slice\"===g?l.dx:\"dice\"===g?l.dy:\"slice-dice\"===g?1&e.depth?l.dy:l.dx:Math.min(l.dx,l.dy);for(n(h,l.dx*l.dy/e.value),s.area=0;(c=h.length)>0;)s.push(a=h[c-1]),s.area+=a.area,\"squarify\"!==g||(o=r(s,d))<=p?(h.pop(),p=o):(s.area-=s.pop().area,i(s,d,l,!1),d=Math.min(l.dx,l.dy),s.length=s.area=0,p=1/0);s.length&&(i(s,d,l,!0),s.length=s.area=0),u.forEach(t)}}function e(t){var r=t.children;if(r&&r.length){var u,a=f(t),o=r.slice(),c=[];for(n(o,a.dx*a.dy/t.value),c.area=0;u=o.pop();)c.push(u),c.area+=u.area,null!=u.z&&(i(c,u.z?a.dx:a.dy,a,!o.length),c.length=c.area=0);r.forEach(e)}}function r(n,t){for(var e,r=n.area,i=0,u=1/0,a=-1,o=n.length;++a<o;)(e=n[a].area)&&(u>e&&(u=e),e>i&&(i=e));return r*=r,t*=t,r?Math.max(t*i*p/r,r/(t*u*p)):1/0}function i(n,t,e,r){var i,u=-1,a=n.length,o=e.x,l=e.y,s=t?c(n.area/t):0;if(t==e.dx){for((r||s>e.dy)&&(s=e.dy);++u<a;)i=n[u],i.x=o,i.y=l,i.dy=s,o+=i.dx=Math.min(e.x+e.dx-o,s?c(i.area/s):0);i.z=!0,i.dx+=e.x+e.dx-o,e.y+=s,e.dy-=s}else{for((r||s>e.dx)&&(s=e.dx);++u<a;)i=n[u],i.x=o,i.y=l,i.dx=s,l+=i.dy=Math.min(e.y+e.dy-l,s?c(i.area/s):0);i.z=!1,i.dy+=e.y+e.dy-l,e.x+=s,e.dx-=s}}function u(r){var i=a||o(r),u=i[0];return u.x=0,u.y=0,u.dx=l[0],u.dy=l[1],a&&o.revalue(u),n([u],u.dx*u.dy/u.value),(a?e:t)(u),h&&(a=i),i}var a,o=da.layout.hierarchy(),c=Math.round,l=[1,1],s=null,f=Ri,h=!1,g=\"squarify\",p=.5*(1+Math.sqrt(5));return u.size=function(n){return arguments.length?(l=n,u):l},u.padding=function(n){function t(t){var e=n.call(u,t,t.depth);return null==e?Ri(t):Ui(t,\"number\"==typeof e?[e,e,e,e]:e)}function e(t){return Ui(t,n)}if(!arguments.length)return s;var r;return f=null==(s=n)?Ri:\"function\"==(r=typeof n)?t:\"number\"===r?(n=[n,n,n,n],e):e,u},u.round=function(n){return arguments.length?(c=n?Math.round:Number,u):c!=Number},u.sticky=function(n){return arguments.length?(h=n,a=null,u):h},u.ratio=function(n){return arguments.length?(p=n,u):p},u.mode=function(n){return arguments.length?(g=n+\"\",u):g},ti(u,o)},da.random={normal:function(n,t){var e=arguments.length;return 2>e&&(t=1),1>e&&(n=0),function(){var e,r,i;do e=2*Math.random()-1,r=2*Math.random()-1,i=e*e+r*r;while(!i||i>1);return n+t*e*Math.sqrt(-2*Math.log(i)/i)}},logNormal:function(){var n=da.random.normal.apply(da,arguments);return function(){return Math.exp(n())}},irwinHall:function(n){return function(){for(var t=0,e=0;n>e;e++)t+=Math.random();return t/n}}},da.scale={};var _c={floor:gt,ceil:gt};da.scale.linear=function(){return Wi([0,1],[0,1],br,!1)},da.scale.log=function(){return eu(da.scale.linear().domain([0,1]),10,!0,[1,10])};var wc=da.format(\".0e\"),Sc={floor:function(n){return-Math.ceil(-n)},ceil:function(n){return-Math.floor(-n)}};da.scale.pow=function(){return ru(da.scale.linear(),1,[0,1])},da.scale.sqrt=function(){return da.scale.pow().exponent(.5)},da.scale.ordinal=function(){return uu([],{t:\"range\",a:[[]]})},da.scale.category10=function(){return da.scale.ordinal().range(Ec)},da.scale.category20=function(){return da.scale.ordinal().range(kc)},da.scale.category20b=function(){return da.scale.ordinal().range(Ac)},da.scale.category20c=function(){return da.scale.ordinal().range(Nc)};var Ec=[\"#1f77b4\",\"#ff7f0e\",\"#2ca02c\",\"#d62728\",\"#9467bd\",\"#8c564b\",\"#e377c2\",\"#7f7f7f\",\"#bcbd22\",\"#17becf\"],kc=[\"#1f77b4\",\"#aec7e8\",\"#ff7f0e\",\"#ffbb78\",\"#2ca02c\",\"#98df8a\",\"#d62728\",\"#ff9896\",\"#9467bd\",\"#c5b0d5\",\"#8c564b\",\"#c49c94\",\"#e377c2\",\"#f7b6d2\",\"#7f7f7f\",\"#c7c7c7\",\"#bcbd22\",\"#dbdb8d\",\"#17becf\",\"#9edae5\"],Ac=[\"#393b79\",\"#5254a3\",\"#6b6ecf\",\"#9c9ede\",\"#637939\",\"#8ca252\",\"#b5cf6b\",\"#cedb9c\",\"#8c6d31\",\"#bd9e39\",\"#e7ba52\",\"#e7cb94\",\"#843c39\",\"#ad494a\",\"#d6616b\",\"#e7969c\",\"#7b4173\",\"#a55194\",\"#ce6dbd\",\"#de9ed6\"],Nc=[\"#3182bd\",\"#6baed6\",\"#9ecae1\",\"#c6dbef\",\"#e6550d\",\"#fd8d3c\",\"#fdae6b\",\"#fdd0a2\",\"#31a354\",\"#74c476\",\"#a1d99b\",\"#c7e9c0\",\"#756bb1\",\"#9e9ac8\",\"#bcbddc\",\"#dadaeb\",\"#636363\",\"#969696\",\"#bdbdbd\",\"#d9d9d9\"];da.scale.quantile=function(){return au([],[])},da.scale.quantize=function(){return ou(0,1,[0,1])},da.scale.threshold=function(){return cu([.5],[0,1])},da.scale.identity=function(){return lu([0,1])},da.svg.arc=function(){function n(){var n=t.apply(this,arguments),u=e.apply(this,arguments),a=r.apply(this,arguments)+qc,o=i.apply(this,arguments)+qc,c=(a>o&&(c=a,a=o,o=c),o-a),l=Wa>c?\"0\":\"1\",s=Math.cos(a),f=Math.sin(a),h=Math.cos(o),g=Math.sin(o);return c>=Tc?n?\"M0,\"+u+\"A\"+u+\",\"+u+\" 0 1,1 0,\"+-u+\"A\"+u+\",\"+u+\" 0 1,1 0,\"+u+\"M0,\"+n+\"A\"+n+\",\"+n+\" 0 1,0 0,\"+-n+\"A\"+n+\",\"+n+\" 0 1,0 0,\"+n+\"Z\":\"M0,\"+u+\"A\"+u+\",\"+u+\" 0 1,1 0,\"+-u+\"A\"+u+\",\"+u+\" 0 1,1 0,\"+u+\"Z\":n?\"M\"+u*s+\",\"+u*f+\"A\"+u+\",\"+u+\" 0 \"+l+\",1 \"+u*h+\",\"+u*g+\"L\"+n*h+\",\"+n*g+\"A\"+n+\",\"+n+\" 0 \"+l+\",0 \"+n*s+\",\"+n*f+\"Z\":\"M\"+u*s+\",\"+u*f+\"A\"+u+\",\"+u+\" 0 \"+l+\",1 \"+u*h+\",\"+u*g+\"L0,0\"+\"Z\"}var t=su,e=fu,r=hu,i=gu;return n.innerRadius=function(e){return arguments.length?(t=ht(e),n):t},n.outerRadius=function(t){return arguments.length?(e=ht(t),n):e},n.startAngle=function(t){return arguments.length?(r=ht(t),n):r},n.endAngle=function(t){return arguments.length?(i=ht(t),n):i},n.centroid=function(){var n=(t.apply(this,arguments)+e.apply(this,arguments))/2,u=(r.apply(this,arguments)+i.apply(this,arguments))/2+qc;return[Math.cos(u)*n,Math.sin(u)*n]},n};var qc=-Wa/2,Tc=2*Wa-1e-6;da.svg.line.radial=function(){var n=Oe(pu);return n.radius=n.x,delete n.x,n.angle=n.y,delete n.y,n},Xe.reverse=Ze,Ze.reverse=Xe,da.svg.area=function(){return du(gt)},da.svg.area.radial=function(){var n=du(pu);return n.radius=n.x,delete n.x,n.innerRadius=n.x0,delete n.x0,n.outerRadius=n.x1,delete n.x1,n.angle=n.y,delete n.y,n.startAngle=n.y0,delete n.y0,n.endAngle=n.y1,delete n.y1,n},da.svg.chord=function(){function n(n,o){var c=t(this,u,n,o),l=t(this,a,n,o);return\"M\"+c.p0+r(c.r,c.p1,c.a1-c.a0)+(e(c,l)?i(c.r,c.p1,c.r,c.p0):i(c.r,c.p1,l.r,l.p0)+r(l.r,l.p1,l.a1-l.a0)+i(l.r,l.p1,c.r,c.p0))+\"Z\"}function t(n,t,e,r){var i=t.call(n,e,r),u=o.call(n,i,r),a=c.call(n,i,r)+qc,s=l.call(n,i,r)+qc;return{r:u,a0:a,a1:s,p0:[u*Math.cos(a),u*Math.sin(a)],p1:[u*Math.cos(s),u*Math.sin(s)]}}function e(n,t){return n.a0==t.a0&&n.a1==t.a1}function r(n,t,e){return\"A\"+n+\",\"+n+\" 0 \"+ +(e>Wa)+\",1 \"+t}function i(n,t,e,r){return\"Q 0,0 \"+r}var u=qe,a=Te,o=mu,c=hu,l=gu;return n.radius=function(t){return arguments.length?(o=ht(t),n):o},n.source=function(t){return arguments.length?(u=ht(t),n):u},n.target=function(t){return arguments.length?(a=ht(t),n):a},n.startAngle=function(t){return arguments.length?(c=ht(t),n):c},n.endAngle=function(t){return arguments.length?(l=ht(t),n):l},n},da.svg.diagonal=function(){function n(n,i){var u=t.call(this,n,i),a=e.call(this,n,i),o=(u.y+a.y)/2,c=[u,{x:u.x,y:o},{x:a.x,y:o},a];return c=c.map(r),\"M\"+c[0]+\"C\"+c[1]+\" \"+c[2]+\" \"+c[3]}var t=qe,e=Te,r=vu;return n.source=function(e){return arguments.length?(t=ht(e),n):t},n.target=function(t){return arguments.length?(e=ht(t),n):e},n.projection=function(t){return arguments.length?(r=t,n):r},n},da.svg.diagonal.radial=function(){var n=da.svg.diagonal(),t=vu,e=n.projection;return n.projection=function(n){return arguments.length?e(yu(t=n)):t},n},da.svg.symbol=function(){function n(n,r){return(Cc.get(t.call(this,n,r))||bu)(e.call(this,n,r))}var t=xu,e=Mu;return n.type=function(e){return arguments.length?(t=ht(e),n):t},n.size=function(t){return arguments.length?(e=ht(t),n):e},n};var Cc=da.map({circle:bu,cross:function(n){var t=Math.sqrt(n/5)/2;return\"M\"+-3*t+\",\"+-t+\"H\"+-t+\"V\"+-3*t+\"H\"+t+\"V\"+-t+\"H\"+3*t+\"V\"+t+\"H\"+t+\"V\"+3*t+\"H\"+-t+\"V\"+t+\"H\"+-3*t+\"Z\"},diamond:function(n){var t=Math.sqrt(n/(2*Lc)),e=t*Lc;return\"M0,\"+-t+\"L\"+e+\",0\"+\" 0,\"+t+\" \"+-e+\",0\"+\"Z\"},square:function(n){var t=Math.sqrt(n)/2;return\"M\"+-t+\",\"+-t+\"L\"+t+\",\"+-t+\" \"+t+\",\"+t+\" \"+-t+\",\"+t+\"Z\"},\"triangle-down\":function(n){var t=Math.sqrt(n/jc),e=t*jc/2;return\"M0,\"+e+\"L\"+t+\",\"+-e+\" \"+-t+\",\"+-e+\"Z\"},\"triangle-up\":function(n){var t=Math.sqrt(n/jc),e=t*jc/2;return\"M0,\"+-e+\"L\"+t+\",\"+e+\" \"+-t+\",\"+e+\"Z\"}});da.svg.symbolTypes=Cc.keys();var zc,Dc,jc=Math.sqrt(3),Lc=Math.tan(30*Ka),Hc=[],Fc=0;Hc.call=Fa.call,Hc.empty=Fa.empty,Hc.node=Fa.node,Hc.size=Fa.size,da.transition=function(n){return arguments.length?zc?n.transition():n:Ya.transition()},da.transition.prototype=Hc,Hc.select=function(n){var t,e,r,i=this.id,u=[];n=v(n);for(var a=-1,o=this.length;++a<o;){u.push(t=[]);for(var c=this[a],l=-1,s=c.length;++l<s;)(r=c[l])&&(e=n.call(r,r.__data__,l,a))?(\"__data__\"in r&&(e.__data__=r.__data__),Eu(e,l,i,r.__transition__[i]),t.push(e)):t.push(null)}return _u(u,i)},Hc.selectAll=function(n){var t,e,r,i,u,a=this.id,o=[];n=y(n);for(var c=-1,l=this.length;++c<l;)for(var s=this[c],f=-1,h=s.length;++f<h;)if(r=s[f]){u=r.__transition__[a],e=n.call(r,r.__data__,f,c),o.push(t=[]);for(var g=-1,p=e.length;++g<p;)(i=e[g])&&Eu(i,g,a,u),t.push(i)}return _u(o,a)},Hc.filter=function(n){var t,e,r,i=[];\"function\"!=typeof n&&(n=N(n));for(var u=0,a=this.length;a>u;u++){i.push(t=[]);for(var e=this[u],o=0,c=e.length;c>o;o++)(r=e[o])&&n.call(r,r.__data__,o)&&t.push(r)}return _u(i,this.id,this.time).ease(this.ease())},Hc.tween=function(n,t){var e=this.id;return arguments.length<2?this.node().__transition__[e].tween.get(n):T(this,null==t?function(t){t.__transition__[e].tween.remove(n)}:function(r){r.__transition__[e].tween.set(n,t)})},Hc.attr=function(n,t){function e(){this.removeAttribute(o)}function r(){this.removeAttributeNS(o.space,o.local)}function i(n){return null==n?e:(n+=\"\",function(){var t,e=this.getAttribute(o);return e!==n&&(t=a(e,n),function(n){this.setAttribute(o,t(n))})})}function u(n){return null==n?r:(n+=\"\",function(){var t,e=this.getAttributeNS(o.space,o.local);return e!==n&&(t=a(e,n),function(n){this.setAttributeNS(o.space,o.local,t(n))})})}if(arguments.length<2){for(t in n)this.attr(t,n[t]);return this}var a=\"transform\"==n?Vr:br,o=da.ns.qualify(n);return wu(this,\"attr.\"+n,t,o.local?u:i)},Hc.attrTween=function(n,t){function e(n,e){var r=t.call(this,n,e,this.getAttribute(i));return r&&function(n){this.setAttribute(i,r(n))}}function r(n,e){var r=t.call(this,n,e,this.getAttributeNS(i.space,i.local));return r&&function(n){this.setAttributeNS(i.space,i.local,r(n))}}var i=da.ns.qualify(n);return this.tween(\"attr.\"+n,i.local?r:e)},Hc.style=function(n,t,e){function r(){this.style.removeProperty(n)}function i(t){return null==t?r:(t+=\"\",function(){var r,i=ya.getComputedStyle(this,null).getPropertyValue(n);return i!==t&&(r=br(i,t),function(t){this.style.setProperty(n,r(t),e)})})}var u=arguments.length;if(3>u){if(\"string\"!=typeof n){2>u&&(t=\"\");for(e in n)this.style(e,n[e],t);return this}e=\"\"}return wu(this,\"style.\"+n,t,i)},Hc.styleTween=function(n,t,e){function r(r,i){var u=t.call(this,r,i,ya.getComputedStyle(this,null).getPropertyValue(n));return u&&function(t){this.style.setProperty(n,u(t),e)}}return arguments.length<3&&(e=\"\"),this.tween(\"style.\"+n,r)},Hc.text=function(n){return wu(this,\"text\",n,Su)},Hc.remove=function(){return this.each(\"end.transition\",function(){var n;!this.__transition__&&(n=this.parentNode)&&n.removeChild(this)})},Hc.ease=function(n){var t=this.id;return arguments.length<1?this.node().__transition__[t].ease:(\"function\"!=typeof n&&(n=da.ease.apply(da,arguments)),T(this,function(e){e.__transition__[t].ease=n}))},Hc.delay=function(n){var t=this.id;return T(this,\"function\"==typeof n?function(e,r,i){e.__transition__[t].delay=0|n.call(e,e.__data__,r,i)}:(n|=0,function(e){e.__transition__[t].delay=n}))},Hc.duration=function(n){var t=this.id;return T(this,\"function\"==typeof n?function(e,r,i){e.__transition__[t].duration=Math.max(1,0|n.call(e,e.__data__,r,i))}:(n=Math.max(1,0|n),function(e){e.__transition__[t].duration=n}))},Hc.each=function(n,t){var e=this.id;if(arguments.length<2){var r=Dc,i=zc;zc=e,T(this,function(t,r,i){Dc=t.__transition__[e],n.call(t,t.__data__,r,i)}),Dc=r,zc=i}else T(this,function(r){var i=r.__transition__[e];(i.event||(i.event=da.dispatch(\"start\",\"end\"))).on(n,t)});return this},Hc.transition=function(){for(var n,t,e,r,i=this.id,u=++Fc,a=[],o=0,c=this.length;c>o;o++){a.push(n=[]);for(var t=this[o],l=0,s=t.length;s>l;l++)(e=t[l])&&(r=Object.create(e.__transition__[i]),r.delay+=r.duration,Eu(e,l,u,r)),n.push(e)}return _u(a,u)},da.svg.axis=function(){function n(n){n.each(function(){var n,f=da.select(this),h=null==l?e.ticks?e.ticks.apply(e,c):e.domain():l,g=null==t?e.tickFormat?e.tickFormat.apply(e,c):String:t,p=Nu(e,h,s),d=f.selectAll(\".tick.minor\").data(p,String),m=d.enter().insert(\"line\",\".tick\").attr(\"class\",\"tick minor\").style(\"opacity\",1e-6),v=da.transition(d.exit()).style(\"opacity\",1e-6).remove(),y=da.transition(d).style(\"opacity\",1),M=f.selectAll(\".tick.major\").data(h,String),x=M.enter().insert(\"g\",\".domain\").attr(\"class\",\"tick major\").style(\"opacity\",1e-6),b=da.transition(M.exit()).style(\"opacity\",1e-6).remove(),_=da.transition(M).style(\"opacity\",1),w=Vi(e),S=f.selectAll(\".domain\").data([0]),E=(S.enter().append(\"path\").attr(\"class\",\"domain\"),da.transition(S)),k=e.copy(),A=this.__chart__||k;\nthis.__chart__=k,x.append(\"line\"),x.append(\"text\");var N=x.select(\"line\"),q=_.select(\"line\"),T=M.select(\"text\").text(g),C=x.select(\"text\"),z=_.select(\"text\");switch(r){case\"bottom\":n=ku,m.attr(\"y2\",u),y.attr(\"x2\",0).attr(\"y2\",u),N.attr(\"y2\",i),C.attr(\"y\",Math.max(i,0)+o),q.attr(\"x2\",0).attr(\"y2\",i),z.attr(\"x\",0).attr(\"y\",Math.max(i,0)+o),T.attr(\"dy\",\".71em\").style(\"text-anchor\",\"middle\"),E.attr(\"d\",\"M\"+w[0]+\",\"+a+\"V0H\"+w[1]+\"V\"+a);break;case\"top\":n=ku,m.attr(\"y2\",-u),y.attr(\"x2\",0).attr(\"y2\",-u),N.attr(\"y2\",-i),C.attr(\"y\",-(Math.max(i,0)+o)),q.attr(\"x2\",0).attr(\"y2\",-i),z.attr(\"x\",0).attr(\"y\",-(Math.max(i,0)+o)),T.attr(\"dy\",\"0em\").style(\"text-anchor\",\"middle\"),E.attr(\"d\",\"M\"+w[0]+\",\"+-a+\"V0H\"+w[1]+\"V\"+-a);break;case\"left\":n=Au,m.attr(\"x2\",-u),y.attr(\"x2\",-u).attr(\"y2\",0),N.attr(\"x2\",-i),C.attr(\"x\",-(Math.max(i,0)+o)),q.attr(\"x2\",-i).attr(\"y2\",0),z.attr(\"x\",-(Math.max(i,0)+o)).attr(\"y\",0),T.attr(\"dy\",\".32em\").style(\"text-anchor\",\"end\"),E.attr(\"d\",\"M\"+-a+\",\"+w[0]+\"H0V\"+w[1]+\"H\"+-a);break;case\"right\":n=Au,m.attr(\"x2\",u),y.attr(\"x2\",u).attr(\"y2\",0),N.attr(\"x2\",i),C.attr(\"x\",Math.max(i,0)+o),q.attr(\"x2\",i).attr(\"y2\",0),z.attr(\"x\",Math.max(i,0)+o).attr(\"y\",0),T.attr(\"dy\",\".32em\").style(\"text-anchor\",\"start\"),E.attr(\"d\",\"M\"+a+\",\"+w[0]+\"H0V\"+w[1]+\"H\"+a)}if(e.rangeBand){var D=k.rangeBand()/2,j=function(n){return k(n)+D};x.call(n,j),_.call(n,j)}else x.call(n,A),_.call(n,k),b.call(n,k),m.call(n,A),y.call(n,k),v.call(n,k)})}var t,e=da.scale.linear(),r=Pc,i=6,u=6,a=6,o=3,c=[10],l=null,s=0;return n.scale=function(t){return arguments.length?(e=t,n):e},n.orient=function(t){return arguments.length?(r=t in Oc?t+\"\":Pc,n):r},n.ticks=function(){return arguments.length?(c=arguments,n):c},n.tickValues=function(t){return arguments.length?(l=t,n):l},n.tickFormat=function(e){return arguments.length?(t=e,n):t},n.tickSize=function(t,e){if(!arguments.length)return i;var r=arguments.length-1;return i=+t,u=r>1?+e:i,a=r>0?+arguments[r]:i,n},n.tickPadding=function(t){return arguments.length?(o=+t,n):o},n.tickSubdivide=function(t){return arguments.length?(s=+t,n):s},n};var Pc=\"bottom\",Oc={top:1,right:1,bottom:1,left:1};da.svg.brush=function(){function n(u){u.each(function(){var u,a=da.select(this),s=a.selectAll(\".background\").data([0]),f=a.selectAll(\".extent\").data([0]),h=a.selectAll(\".resize\").data(l,String);a.style(\"pointer-events\",\"all\").on(\"mousedown.brush\",i).on(\"touchstart.brush\",i),s.enter().append(\"rect\").attr(\"class\",\"background\").style(\"visibility\",\"hidden\").style(\"cursor\",\"crosshair\"),f.enter().append(\"rect\").attr(\"class\",\"extent\").style(\"cursor\",\"move\"),h.enter().append(\"g\").attr(\"class\",function(n){return\"resize \"+n}).style(\"cursor\",function(n){return Yc[n]}).append(\"rect\").attr(\"x\",function(n){return/[ew]$/.test(n)?-3:null}).attr(\"y\",function(n){return/^[ns]/.test(n)?-3:null}).attr(\"width\",6).attr(\"height\",6).style(\"visibility\",\"hidden\"),h.style(\"display\",n.empty()?\"none\":null),h.exit().remove(),o&&(u=Vi(o),s.attr(\"x\",u[0]).attr(\"width\",u[1]-u[0]),e(a)),c&&(u=Vi(c),s.attr(\"y\",u[0]).attr(\"height\",u[1]-u[0]),r(a)),t(a)})}function t(n){n.selectAll(\".resize\").attr(\"transform\",function(n){return\"translate(\"+s[+/e$/.test(n)][0]+\",\"+s[+/^s/.test(n)][1]+\")\"})}function e(n){n.select(\".extent\").attr(\"x\",s[0][0]),n.selectAll(\".extent,.n>rect,.s>rect\").attr(\"width\",s[1][0]-s[0][0])}function r(n){n.select(\".extent\").attr(\"y\",s[0][1]),n.selectAll(\".extent,.e>rect,.w>rect\").attr(\"height\",s[1][1]-s[0][1])}function i(){function i(){var n=da.event.changedTouches;return n?da.touches(M,n)[0]:da.mouse(M)}function l(){32==da.event.keyCode&&(k||(v=null,N[0]-=s[1][0],N[1]-=s[1][1],k=2),g())}function h(){32==da.event.keyCode&&2==k&&(N[0]+=s[1][0],N[1]+=s[1][1],k=0,g())}function p(){var n=i(),u=!1;y&&(n[0]+=y[0],n[1]+=y[1]),k||(da.event.altKey?(v||(v=[(s[0][0]+s[1][0])/2,(s[0][1]+s[1][1])/2]),N[0]=s[+(n[0]<v[0])][0],N[1]=s[+(n[1]<v[1])][1]):v=null),S&&d(n,o,0)&&(e(_),u=!0),E&&d(n,c,1)&&(r(_),u=!0),u&&(t(_),b({type:\"brush\",mode:k?\"move\":\"resize\"}))}function d(n,t,e){var r,i,a=Vi(t),o=a[0],c=a[1],l=N[e],h=s[1][e]-s[0][e];return k&&(o-=l,c-=h+l),r=f[e]?Math.max(o,Math.min(c,n[e])):n[e],k?i=(r+=l)+h:(v&&(l=Math.max(o,Math.min(c,2*v[e]-r))),r>l?(i=r,r=l):i=l),s[0][e]!==r||s[1][e]!==i?(u=null,s[0][e]=r,s[1][e]=i,!0):void 0}function m(){p(),_.style(\"pointer-events\",\"all\").selectAll(\".resize\").style(\"display\",n.empty()?\"none\":null),da.select(\"body\").style(\"cursor\",null),q.on(\"mousemove.brush\",null).on(\"mouseup.brush\",null).on(\"touchmove.brush\",null).on(\"touchend.brush\",null).on(\"keydown.brush\",null).on(\"keyup.brush\",null),A(),b({type:\"brushend\"})}var v,y,M=this,x=da.select(da.event.target),b=a.of(M,arguments),_=da.select(M),w=x.datum(),S=!/^(n|s)$/.test(w)&&o,E=!/^(e|w)$/.test(w)&&c,k=x.classed(\"extent\"),A=H(),N=i(),q=da.select(ya).on(\"keydown.brush\",l).on(\"keyup.brush\",h);if(da.event.changedTouches?q.on(\"touchmove.brush\",p).on(\"touchend.brush\",m):q.on(\"mousemove.brush\",p).on(\"mouseup.brush\",m),k)N[0]=s[0][0]-N[0],N[1]=s[0][1]-N[1];else if(w){var T=+/w$/.test(w),C=+/^n/.test(w);y=[s[1-T][0]-N[0],s[1-C][1]-N[1]],N[0]=s[T][0],N[1]=s[C][1]}else da.event.altKey&&(v=N.slice());_.style(\"pointer-events\",\"none\").selectAll(\".resize\").style(\"display\",null),da.select(\"body\").style(\"cursor\",x.style(\"cursor\")),b({type:\"brushstart\"}),p()}var u,a=d(n,\"brushstart\",\"brush\",\"brushend\"),o=null,c=null,l=Rc[0],s=[[0,0],[0,0]],f=[!0,!0];return n.x=function(t){return arguments.length?(o=t,l=Rc[!o<<1|!c],n):o},n.y=function(t){return arguments.length?(c=t,l=Rc[!o<<1|!c],n):c},n.clamp=function(t){return arguments.length?(o&&c?f=[!!t[0],!!t[1]]:(o||c)&&(f[+!o]=!!t),n):o&&c?f:o||c?f[+!o]:null},n.extent=function(t){var e,r,i,a,l;return arguments.length?(u=[[0,0],[0,0]],o&&(e=t[0],r=t[1],c&&(e=e[0],r=r[0]),u[0][0]=e,u[1][0]=r,o.invert&&(e=o(e),r=o(r)),e>r&&(l=e,e=r,r=l),s[0][0]=0|e,s[1][0]=0|r),c&&(i=t[0],a=t[1],o&&(i=i[1],a=a[1]),u[0][1]=i,u[1][1]=a,c.invert&&(i=c(i),a=c(a)),i>a&&(l=i,i=a,a=l),s[0][1]=0|i,s[1][1]=0|a),n):(t=u||s,o&&(e=t[0][0],r=t[1][0],u||(e=s[0][0],r=s[1][0],o.invert&&(e=o.invert(e),r=o.invert(r)),e>r&&(l=e,e=r,r=l))),c&&(i=t[0][1],a=t[1][1],u||(i=s[0][1],a=s[1][1],c.invert&&(i=c.invert(i),a=c.invert(a)),i>a&&(l=i,i=a,a=l))),o&&c?[[e,i],[r,a]]:o?[e,r]:c&&[i,a])},n.clear=function(){return u=null,s[0][0]=s[0][1]=s[1][0]=s[1][1]=0,n},n.empty=function(){return o&&s[0][0]===s[1][0]||c&&s[0][1]===s[1][1]},da.rebind(n,a,\"on\")};var Yc={n:\"ns-resize\",e:\"ew-resize\",s:\"ns-resize\",w:\"ew-resize\",nw:\"nwse-resize\",ne:\"nesw-resize\",se:\"nwse-resize\",sw:\"nesw-resize\"},Rc=[[\"n\",\"e\",\"s\",\"w\",\"nw\",\"ne\",\"se\",\"sw\"],[\"e\",\"w\"],[\"n\",\"s\"],[]];da.time={};var Uc=Date,Ic=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"];qu.prototype={getDate:function(){return this._.getUTCDate()},getDay:function(){return this._.getUTCDay()},getFullYear:function(){return this._.getUTCFullYear()},getHours:function(){return this._.getUTCHours()},getMilliseconds:function(){return this._.getUTCMilliseconds()},getMinutes:function(){return this._.getUTCMinutes()},getMonth:function(){return this._.getUTCMonth()},getSeconds:function(){return this._.getUTCSeconds()},getTime:function(){return this._.getTime()},getTimezoneOffset:function(){return 0},valueOf:function(){return this._.valueOf()},setDate:function(){Vc.setUTCDate.apply(this._,arguments)},setDay:function(){Vc.setUTCDay.apply(this._,arguments)},setFullYear:function(){Vc.setUTCFullYear.apply(this._,arguments)},setHours:function(){Vc.setUTCHours.apply(this._,arguments)},setMilliseconds:function(){Vc.setUTCMilliseconds.apply(this._,arguments)},setMinutes:function(){Vc.setUTCMinutes.apply(this._,arguments)},setMonth:function(){Vc.setUTCMonth.apply(this._,arguments)},setSeconds:function(){Vc.setUTCSeconds.apply(this._,arguments)},setTime:function(){Vc.setTime.apply(this._,arguments)}};var Vc=Date.prototype,Xc=\"%a %b %e %X %Y\",Zc=\"%m/%d/%Y\",Bc=\"%H:%M:%S\",$c=[\"Sunday\",\"Monday\",\"Tuesday\",\"Wednesday\",\"Thursday\",\"Friday\",\"Saturday\"],Wc=[\"Sun\",\"Mon\",\"Tue\",\"Wed\",\"Thu\",\"Fri\",\"Sat\"],Jc=[\"January\",\"February\",\"March\",\"April\",\"May\",\"June\",\"July\",\"August\",\"September\",\"October\",\"November\",\"December\"],Gc=[\"Jan\",\"Feb\",\"Mar\",\"Apr\",\"May\",\"Jun\",\"Jul\",\"Aug\",\"Sep\",\"Oct\",\"Nov\",\"Dec\"];da.time.year=Tu(function(n){return n=da.time.day(n),n.setMonth(0,1),n},function(n,t){n.setFullYear(n.getFullYear()+t)},function(n){return n.getFullYear()}),da.time.years=da.time.year.range,da.time.years.utc=da.time.year.utc.range,da.time.day=Tu(function(n){var t=new Uc(2e3,0);return t.setFullYear(n.getFullYear(),n.getMonth(),n.getDate()),t},function(n,t){n.setDate(n.getDate()+t)},function(n){return n.getDate()-1}),da.time.days=da.time.day.range,da.time.days.utc=da.time.day.utc.range,da.time.dayOfYear=function(n){var t=da.time.year(n);return Math.floor((n-t-6e4*(n.getTimezoneOffset()-t.getTimezoneOffset()))/864e5)},Ic.forEach(function(n,t){n=n.toLowerCase(),t=7-t;var e=da.time[n]=Tu(function(n){return(n=da.time.day(n)).setDate(n.getDate()-(n.getDay()+t)%7),n},function(n,t){n.setDate(n.getDate()+7*Math.floor(t))},function(n){var e=da.time.year(n).getDay();return Math.floor((da.time.dayOfYear(n)+(e+t)%7)/7)-(e!==t)});da.time[n+\"s\"]=e.range,da.time[n+\"s\"].utc=e.utc.range,da.time[n+\"OfYear\"]=function(n){var e=da.time.year(n).getDay();return Math.floor((da.time.dayOfYear(n)+(e+t)%7)/7)}}),da.time.week=da.time.sunday,da.time.weeks=da.time.sunday.range,da.time.weeks.utc=da.time.sunday.utc.range,da.time.weekOfYear=da.time.sundayOfYear,da.time.format=function(n){function t(t){for(var r,i,u,a=[],o=-1,c=0;++o<e;)37===n.charCodeAt(o)&&(a.push(n.substring(c,o)),null!=(i=ol[r=n.charAt(++o)])&&(r=n.charAt(++o)),(u=cl[r])&&(r=u(t,null==i?\"e\"===r?\" \":\"0\":i)),a.push(r),c=o+1);return a.push(n.substring(c,o)),a.join(\"\")}var e=n.length;return t.parse=function(t){var e={y:1900,m:0,d:1,H:0,M:0,S:0,L:0},r=zu(e,n,t,0);if(r!=t.length)return null;\"p\"in e&&(e.H=e.H%12+12*e.p);var i=new Uc;return\"j\"in e?i.setFullYear(e.y,0,e.j):\"w\"in e&&(\"W\"in e||\"U\"in e)?(i.setFullYear(e.y,0,1),i.setFullYear(e.y,0,\"W\"in e?(e.w+6)%7+7*e.W-(i.getDay()+5)%7:e.w+7*e.U-(i.getDay()+6)%7)):i.setFullYear(e.y,e.m,e.d),i.setHours(e.H,e.M,e.S,e.L),i},t.toString=function(){return n},t};var Kc=Du($c),Qc=ju($c),nl=Du(Wc),tl=ju(Wc),el=Du(Jc),rl=ju(Jc),il=Du(Gc),ul=ju(Gc),al=/^%/,ol={\"-\":\"\",_:\" \",0:\"0\"},cl={a:function(n){return Wc[n.getDay()]},A:function(n){return $c[n.getDay()]},b:function(n){return Gc[n.getMonth()]},B:function(n){return Jc[n.getMonth()]},c:da.time.format(Xc),d:function(n,t){return Lu(n.getDate(),t,2)},e:function(n,t){return Lu(n.getDate(),t,2)},H:function(n,t){return Lu(n.getHours(),t,2)},I:function(n,t){return Lu(n.getHours()%12||12,t,2)},j:function(n,t){return Lu(1+da.time.dayOfYear(n),t,3)},L:function(n,t){return Lu(n.getMilliseconds(),t,3)},m:function(n,t){return Lu(n.getMonth()+1,t,2)},M:function(n,t){return Lu(n.getMinutes(),t,2)},p:function(n){return n.getHours()>=12?\"PM\":\"AM\"},S:function(n,t){return Lu(n.getSeconds(),t,2)},U:function(n,t){return Lu(da.time.sundayOfYear(n),t,2)},w:function(n){return n.getDay()},W:function(n,t){return Lu(da.time.mondayOfYear(n),t,2)},x:da.time.format(Zc),X:da.time.format(Bc),y:function(n,t){return Lu(n.getFullYear()%100,t,2)},Y:function(n,t){return Lu(n.getFullYear()%1e4,t,4)},Z:ra,\"%\":function(){return\"%\"}},ll={a:Hu,A:Fu,b:Ru,B:Uu,c:Iu,d:Ju,e:Ju,H:Ku,I:Ku,j:Gu,L:ta,m:Wu,M:Qu,p:ea,S:na,U:Ou,w:Pu,W:Yu,x:Vu,X:Xu,y:Bu,Y:Zu,\"%\":ia},sl=/^\\s*\\d+/,fl=da.map({am:0,pm:1});da.time.format.utc=function(n){function t(n){try{Uc=qu;var t=new Uc;return t._=n,e(t)}finally{Uc=Date}}var e=da.time.format(n);return t.parse=function(n){try{Uc=qu;var t=e.parse(n);return t&&t._}finally{Uc=Date}},t.toString=e.toString,t};var hl=da.time.format.utc(\"%Y-%m-%dT%H:%M:%S.%LZ\");da.time.format.iso=Date.prototype.toISOString&&+new Date(\"2000-01-01T00:00:00.000Z\")?ua:hl,ua.parse=function(n){var t=new Date(n);return isNaN(t)?null:t},ua.toString=hl.toString,da.time.second=Tu(function(n){return new Uc(1e3*Math.floor(n/1e3))},function(n,t){n.setTime(n.getTime()+1e3*Math.floor(t))},function(n){return n.getSeconds()}),da.time.seconds=da.time.second.range,da.time.seconds.utc=da.time.second.utc.range,da.time.minute=Tu(function(n){return new Uc(6e4*Math.floor(n/6e4))},function(n,t){n.setTime(n.getTime()+6e4*Math.floor(t))},function(n){return n.getMinutes()}),da.time.minutes=da.time.minute.range,da.time.minutes.utc=da.time.minute.utc.range,da.time.hour=Tu(function(n){var t=n.getTimezoneOffset()/60;return new Uc(36e5*(Math.floor(n/36e5-t)+t))},function(n,t){n.setTime(n.getTime()+36e5*Math.floor(t))},function(n){return n.getHours()}),da.time.hours=da.time.hour.range,da.time.hours.utc=da.time.hour.utc.range,da.time.month=Tu(function(n){return n=da.time.day(n),n.setDate(1),n},function(n,t){n.setMonth(n.getMonth()+t)},function(n){return n.getMonth()}),da.time.months=da.time.month.range,da.time.months.utc=da.time.month.utc.range;var gl=[1e3,5e3,15e3,3e4,6e4,3e5,9e5,18e5,36e5,108e5,216e5,432e5,864e5,1728e5,6048e5,2592e6,7776e6,31536e6],pl=[[da.time.second,1],[da.time.second,5],[da.time.second,15],[da.time.second,30],[da.time.minute,1],[da.time.minute,5],[da.time.minute,15],[da.time.minute,30],[da.time.hour,1],[da.time.hour,3],[da.time.hour,6],[da.time.hour,12],[da.time.day,1],[da.time.day,2],[da.time.week,1],[da.time.month,1],[da.time.month,3],[da.time.year,1]],dl=[[da.time.format(\"%Y\"),Ut],[da.time.format(\"%B\"),function(n){return n.getMonth()}],[da.time.format(\"%b %d\"),function(n){return 1!=n.getDate()}],[da.time.format(\"%a %d\"),function(n){return n.getDay()&&1!=n.getDate()}],[da.time.format(\"%I %p\"),function(n){return n.getHours()}],[da.time.format(\"%I:%M\"),function(n){return n.getMinutes()}],[da.time.format(\":%S\"),function(n){return n.getSeconds()}],[da.time.format(\".%L\"),function(n){return n.getMilliseconds()}]],ml=da.scale.linear(),vl=ca(dl);pl.year=function(n,t){return ml.domain(n.map(sa)).ticks(t).map(la)},da.time.scale=function(){return aa(da.scale.linear(),pl,vl)};var yl=pl.map(function(n){return[n[0].utc,n[1]]}),Ml=[[da.time.format.utc(\"%Y\"),Ut],[da.time.format.utc(\"%B\"),function(n){return n.getUTCMonth()}],[da.time.format.utc(\"%b %d\"),function(n){return 1!=n.getUTCDate()}],[da.time.format.utc(\"%a %d\"),function(n){return n.getUTCDay()&&1!=n.getUTCDate()}],[da.time.format.utc(\"%I %p\"),function(n){return n.getUTCHours()}],[da.time.format.utc(\"%I:%M\"),function(n){return n.getUTCMinutes()}],[da.time.format.utc(\":%S\"),function(n){return n.getUTCSeconds()}],[da.time.format.utc(\".%L\"),function(n){return n.getUTCMilliseconds()}]],xl=ca(Ml);return yl.year=function(n,t){return ml.domain(n.map(ha)).ticks(t).map(fa)},da.time.scale.utc=function(){return aa(da.scale.linear(),yl,xl)},da.text=pt(function(n){return n.responseText}),da.json=function(n,t){return dt(n,\"application/json\",ga,t)},da.html=function(n,t){return dt(n,\"text/html\",pa,t)},da.xml=pt(function(n){return n.responseXML}),da}();}\nexports.d3 = d3;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/d3/d3.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/d3/d3.layout.cloud.js": {
"text": "// Word cloud layout by Jason Davies, http://www.jasondavies.com/word-cloud/\n// Algorithm due to Jonathan Feinberg, http://static.mrfeinberg.com/bv_ch03.pdf\n(function(exports) {\n function cloud() {\n var size = [256, 256],\n text = cloudText,\n font = cloudFont,\n fontSize = cloudFontSize,\n fontStyle = cloudFontNormal,\n fontWeight = cloudFontNormal,\n rotate = cloudRotate,\n padding = cloudPadding,\n spiral = archimedeanSpiral,\n words = [],\n timeInterval = Infinity,\n event = d3.dispatch(\"word\", \"end\"),\n timer = null,\n cloud = {};\n\n cloud.start = function() {\n var board = zeroArray((size[0] >> 5) * size[1]),\n bounds = null,\n n = words.length,\n i = -1,\n tags = [],\n data = words.map(function(d, i) {\n d.text = text.call(this, d, i);\n d.font = font.call(this, d, i);\n d.style = fontStyle.call(this, d, i);\n d.weight = fontWeight.call(this, d, i);\n d.rotate = rotate.call(this, d, i);\n d.size = ~~fontSize.call(this, d, i);\n d.padding = padding.call(this, d, i);\n return d;\n }).sort(function(a, b) { return b.size - a.size; });\n\n if (timer) clearInterval(timer);\n timer = setInterval(step, 0);\n step();\n\n return cloud;\n\n function step() {\n var start = +new Date,\n d;\n while (+new Date - start < timeInterval && ++i < n && timer) {\n d = data[i];\n d.x = (size[0] * (Math.random() + .5)) >> 1;\n d.y = (size[1] * (Math.random() + .5)) >> 1;\n cloudSprite(d, data, i);\n if (d.hasText && place(board, d, bounds)) {\n tags.push(d);\n event.word(d);\n if (bounds) cloudBounds(bounds, d);\n else bounds = [{x: d.x + d.x0, y: d.y + d.y0}, {x: d.x + d.x1, y: d.y + d.y1}];\n // Temporary hack\n d.x -= size[0] >> 1;\n d.y -= size[1] >> 1;\n }\n }\n if (i >= n) {\n cloud.stop();\n event.end(tags, bounds);\n }\n }\n }\n\n cloud.stop = function() {\n if (timer) {\n clearInterval(timer);\n timer = null;\n }\n return cloud;\n };\n\n cloud.timeInterval = function(x) {\n if (!arguments.length) return timeInterval;\n timeInterval = x == null ? Infinity : x;\n return cloud;\n };\n\n function place(board, tag, bounds) {\n var perimeter = [{x: 0, y: 0}, {x: size[0], y: size[1]}],\n startX = tag.x,\n startY = tag.y,\n maxDelta = Math.sqrt(size[0] * size[0] + size[1] * size[1]),\n s = spiral(size),\n dt = Math.random() < .5 ? 1 : -1,\n t = -dt,\n dxdy,\n dx,\n dy;\n\n while (dxdy = s(t += dt)) {\n dx = ~~dxdy[0];\n dy = ~~dxdy[1];\n\n if (Math.min(dx, dy) > maxDelta) break;\n\n tag.x = startX + dx;\n tag.y = startY + dy;\n\n if (tag.x + tag.x0 < 0 || tag.y + tag.y0 < 0 ||\n tag.x + tag.x1 > size[0] || tag.y + tag.y1 > size[1]) continue;\n // TODO only check for collisions within current bounds.\n if (!bounds || !cloudCollide(tag, board, size[0])) {\n if (!bounds || collideRects(tag, bounds)) {\n var sprite = tag.sprite,\n w = tag.width >> 5,\n sw = size[0] >> 5,\n lx = tag.x - (w << 4),\n sx = lx & 0x7f,\n msx = 32 - sx,\n h = tag.y1 - tag.y0,\n x = (tag.y + tag.y0) * sw + (lx >> 5),\n last;\n for (var j = 0; j < h; j++) {\n last = 0;\n for (var i = 0; i <= w; i++) {\n board[x + i] |= (last << msx) | (i < w ? (last = sprite[j * w + i]) >>> sx : 0);\n }\n x += sw;\n }\n delete tag.sprite;\n return true;\n }\n }\n }\n return false;\n }\n\n cloud.words = function(x) {\n if (!arguments.length) return words;\n words = x;\n return cloud;\n };\n\n cloud.size = function(x) {\n if (!arguments.length) return size;\n size = [+x[0], +x[1]];\n return cloud;\n };\n\n cloud.font = function(x) {\n if (!arguments.length) return font;\n font = d3.functor(x);\n return cloud;\n };\n\n cloud.fontStyle = function(x) {\n if (!arguments.length) return fontStyle;\n fontStyle = d3.functor(x);\n return cloud;\n };\n\n cloud.fontWeight = function(x) {\n if (!arguments.length) return fontWeight;\n fontWeight = d3.functor(x);\n return cloud;\n };\n\n cloud.rotate = function(x) {\n if (!arguments.length) return rotate;\n rotate = d3.functor(x);\n return cloud;\n };\n\n cloud.text = function(x) {\n if (!arguments.length) return text;\n text = d3.functor(x);\n return cloud;\n };\n\n cloud.spiral = function(x) {\n if (!arguments.length) return spiral;\n spiral = spirals[x + \"\"] || x;\n return cloud;\n };\n\n cloud.fontSize = function(x) {\n if (!arguments.length) return fontSize;\n fontSize = d3.functor(x);\n return cloud;\n };\n\n cloud.padding = function(x) {\n if (!arguments.length) return padding;\n padding = d3.functor(x);\n return cloud;\n };\n\n return d3.rebind(cloud, event, \"on\");\n }\n\n function cloudText(d) {\n return d.text;\n }\n\n function cloudFont() {\n return \"serif\";\n }\n\n function cloudFontNormal() {\n return \"normal\";\n }\n\n function cloudFontSize(d) {\n return Math.sqrt(d.value);\n }\n\n function cloudRotate() {\n return (~~(Math.random() * 6) - 3) * 30;\n }\n\n function cloudPadding() {\n return 1;\n }\n\n // Fetches a monochrome sprite bitmap for the specified text.\n // Load in batches for speed.\n function cloudSprite(d, data, di) {\n if (d.sprite) return;\n c.clearRect(0, 0, (cw << 5) / ratio, ch / ratio);\n var x = 0,\n y = 0,\n maxh = 0,\n n = data.length;\n --di;\n while (++di < n) {\n d = data[di];\n c.save();\n c.font = d.style + \" \" + d.weight + \" \" + ~~((d.size + 1) / ratio) + \"px \" + d.font;\n var w = c.measureText(d.text + \"m\").width * ratio,\n h = d.size << 1;\n if (d.rotate) {\n var sr = Math.sin(d.rotate * cloudRadians),\n cr = Math.cos(d.rotate * cloudRadians),\n wcr = w * cr,\n wsr = w * sr,\n hcr = h * cr,\n hsr = h * sr;\n w = (Math.max(Math.abs(wcr + hsr), Math.abs(wcr - hsr)) + 0x1f) >> 5 << 5;\n h = ~~Math.max(Math.abs(wsr + hcr), Math.abs(wsr - hcr));\n } else {\n w = (w + 0x1f) >> 5 << 5;\n }\n if (h > maxh) maxh = h;\n if (x + w >= (cw << 5)) {\n x = 0;\n y += maxh;\n maxh = 0;\n }\n if (y + h >= ch) break;\n c.translate((x + (w >> 1)) / ratio, (y + (h >> 1)) / ratio);\n if (d.rotate) c.rotate(d.rotate * cloudRadians);\n c.fillText(d.text, 0, 0);\n if (d.padding) c.lineWidth = 2 * d.padding, c.strokeText(d.text, 0, 0);\n c.restore();\n d.width = w;\n d.height = h;\n d.xoff = x;\n d.yoff = y;\n d.x1 = w >> 1;\n d.y1 = h >> 1;\n d.x0 = -d.x1;\n d.y0 = -d.y1;\n d.hasText = true;\n x += w;\n }\n var pixels = c.getImageData(0, 0, (cw << 5) / ratio, ch / ratio).data,\n sprite = [];\n while (--di >= 0) {\n d = data[di];\n if (!d.hasText) continue;\n var w = d.width,\n w32 = w >> 5,\n h = d.y1 - d.y0;\n // Zero the buffer\n for (var i = 0; i < h * w32; i++) sprite[i] = 0;\n x = d.xoff;\n if (x == null) return;\n y = d.yoff;\n var seen = 0,\n seenRow = -1;\n for (var j = 0; j < h; j++) {\n for (var i = 0; i < w; i++) {\n var k = w32 * j + (i >> 5),\n m = pixels[((y + j) * (cw << 5) + (x + i)) << 2] ? 1 << (31 - (i % 32)) : 0;\n sprite[k] |= m;\n seen |= m;\n }\n if (seen) seenRow = j;\n else {\n d.y0++;\n h--;\n j--;\n y++;\n }\n }\n d.y1 = d.y0 + seenRow;\n d.sprite = sprite.slice(0, (d.y1 - d.y0) * w32);\n }\n }\n\n // Use mask-based collision detection.\n function cloudCollide(tag, board, sw) {\n sw >>= 5;\n var sprite = tag.sprite,\n w = tag.width >> 5,\n lx = tag.x - (w << 4),\n sx = lx & 0x7f,\n msx = 32 - sx,\n h = tag.y1 - tag.y0,\n x = (tag.y + tag.y0) * sw + (lx >> 5),\n last;\n for (var j = 0; j < h; j++) {\n last = 0;\n for (var i = 0; i <= w; i++) {\n if (((last << msx) | (i < w ? (last = sprite[j * w + i]) >>> sx : 0))\n & board[x + i]) return true;\n }\n x += sw;\n }\n return false;\n }\n\n function cloudBounds(bounds, d) {\n var b0 = bounds[0],\n b1 = bounds[1];\n if (d.x + d.x0 < b0.x) b0.x = d.x + d.x0;\n if (d.y + d.y0 < b0.y) b0.y = d.y + d.y0;\n if (d.x + d.x1 > b1.x) b1.x = d.x + d.x1;\n if (d.y + d.y1 > b1.y) b1.y = d.y + d.y1;\n }\n\n function collideRects(a, b) {\n return a.x + a.x1 > b[0].x && a.x + a.x0 < b[1].x && a.y + a.y1 > b[0].y && a.y + a.y0 < b[1].y;\n }\n\n function archimedeanSpiral(size) {\n var e = size[0] / size[1];\n return function(t) {\n return [e * (t *= .1) * Math.cos(t), t * Math.sin(t)];\n };\n }\n\n function rectangularSpiral(size) {\n var dy = 4,\n dx = dy * size[0] / size[1],\n x = 0,\n y = 0;\n return function(t) {\n var sign = t < 0 ? -1 : 1;\n // See triangular numbers: T_n = n * (n + 1) / 2.\n switch ((Math.sqrt(1 + 4 * sign * t) - sign) & 3) {\n case 0: x += dx; break;\n case 1: y += dy; break;\n case 2: x -= dx; break;\n default: y -= dy; break;\n }\n return [x, y];\n };\n }\n\n // TODO reuse arrays?\n function zeroArray(n) {\n var a = [],\n i = -1;\n while (++i < n) a[i] = 0;\n return a;\n }\n\n var cloudRadians = Math.PI / 180,\n cw = 1 << 11 >> 5,\n ch = 1 << 11,\n canvas,\n ratio = 1;\n\n if (typeof document !== \"undefined\") {\n canvas = document.createElement(\"canvas\");\n canvas.width = 1;\n canvas.height = 1;\n ratio = Math.sqrt(canvas.getContext(\"2d\").getImageData(0, 0, 1, 1).data.length >> 2);\n canvas.width = (cw << 5) / ratio;\n canvas.height = ch / ratio;\n } else {\n // node-canvas support\n var Canvas = require(\"canvas\");\n canvas = new Canvas(cw << 5, ch);\n }\n\n var c = canvas.getContext(\"2d\"),\n spirals = {\n archimedean: archimedeanSpiral,\n rectangular: rectangularSpiral\n };\n c.fillStyle = c.strokeStyle = \"red\";\n c.textAlign = \"center\";\n\n exports.cloud = cloud;\n})(typeof exports === \"undefined\" ? d3.layout || (d3.layout = {}) : exports);\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/d3/d3.layout.cloud.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/d3/readme": {
"title": "$:/plugins/tiddlywiki/d3/readme",
"text": "The D3 plugin is a proof-of-concept demo of integration with the D3.js data visualisation framework (http://d3js.org).\n\nIt is not currently in a state where it can be used for anything useful.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/d3]]\n"
}
}
}
{
"tiddlers": {
"$:/config/HighlightPlugin/TypeMappings/application/javascript": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/javascript",
"text": "javascript"
},
"$:/config/HighlightPlugin/TypeMappings/application/json": {
"title": "$:/config/HighlightPlugin/TypeMappings/application/json",
"text": "json"
},
"$:/config/HighlightPlugin/TypeMappings/text/css": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/css",
"text": "css"
},
"$:/config/HighlightPlugin/TypeMappings/text/html": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/html",
"text": "html"
},
"$:/config/HighlightPlugin/TypeMappings/image/svg+xml": {
"title": "$:/config/HighlightPlugin/TypeMappings/image/svg+xml",
"text": "xml"
},
"$:/config/HighlightPlugin/TypeMappings/text/x-markdown": {
"title": "$:/config/HighlightPlugin/TypeMappings/text/x-markdown",
"text": "markdown"
},
"$:/plugins/tiddlywiki/highlight/highlight.js": {
"text": "var hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n/*! highlight.js v9.18.1 | BSD3 License | git.io/hljslicense */\n!function(e){var n=\"object\"==typeof window&&window||\"object\"==typeof self&&self;\"undefined\"==typeof exports||exports.nodeType?n&&(n.hljs=e({}),\"function\"==typeof define&&define.amd&&define([],function(){return n.hljs})):e(exports)}(function(a){var f=[],i=Object.keys,_={},c={},C=!0,n=/^(no-?highlight|plain|text)$/i,l=/\\blang(?:uage)?-([\\w-]+)\\b/i,t=/((^(<[^>]+>|\\t|)+|(?:\\n)))/gm,r={case_insensitive:\"cI\",lexemes:\"l\",contains:\"c\",keywords:\"k\",subLanguage:\"sL\",className:\"cN\",begin:\"b\",beginKeywords:\"bK\",end:\"e\",endsWithParent:\"eW\",illegal:\"i\",excludeBegin:\"eB\",excludeEnd:\"eE\",returnBegin:\"rB\",returnEnd:\"rE\",variants:\"v\",IDENT_RE:\"IR\",UNDERSCORE_IDENT_RE:\"UIR\",NUMBER_RE:\"NR\",C_NUMBER_RE:\"CNR\",BINARY_NUMBER_RE:\"BNR\",RE_STARTERS_RE:\"RSR\",BACKSLASH_ESCAPE:\"BE\",APOS_STRING_MODE:\"ASM\",QUOTE_STRING_MODE:\"QSM\",PHRASAL_WORDS_MODE:\"PWM\",C_LINE_COMMENT_MODE:\"CLCM\",C_BLOCK_COMMENT_MODE:\"CBCM\",HASH_COMMENT_MODE:\"HCM\",NUMBER_MODE:\"NM\",C_NUMBER_MODE:\"CNM\",BINARY_NUMBER_MODE:\"BNM\",CSS_NUMBER_MODE:\"CSSNM\",REGEXP_MODE:\"RM\",TITLE_MODE:\"TM\",UNDERSCORE_TITLE_MODE:\"UTM\",COMMENT:\"C\",beginRe:\"bR\",endRe:\"eR\",illegalRe:\"iR\",lexemesRe:\"lR\",terminators:\"t\",terminator_end:\"tE\"},m=\"</span>\",O=\"Could not find the language '{}', did you forget to load/include a language module?\",B={classPrefix:\"hljs-\",tabReplace:null,useBR:!1,languages:void 0},o=\"of and for in not or if then\".split(\" \");function x(e){return e.replace(/&/g,\"&\").replace(/</g,\"<\").replace(/>/g,\">\")}function g(e){return e.nodeName.toLowerCase()}function u(e){return n.test(e)}function s(e){var n,t={},r=Array.prototype.slice.call(arguments,1);for(n in e)t[n]=e[n];return r.forEach(function(e){for(n in e)t[n]=e[n]}),t}function E(e){var a=[];return function e(n,t){for(var r=n.firstChild;r;r=r.nextSibling)3===r.nodeType?t+=r.nodeValue.length:1===r.nodeType&&(a.push({event:\"start\",offset:t,node:r}),t=e(r,t),g(r).match(/br|hr|img|input/)||a.push({event:\"stop\",offset:t,node:r}));return t}(e,0),a}function d(e,n,t){var r=0,a=\"\",i=[];function o(){return e.length&&n.length?e[0].offset!==n[0].offset?e[0].offset<n[0].offset?e:n:\"start\"===n[0].event?e:n:e.length?e:n}function c(e){a+=\"<\"+g(e)+f.map.call(e.attributes,function(e){return\" \"+e.nodeName+'=\"'+x(e.value).replace(/\"/g,\""\")+'\"'}).join(\"\")+\">\"}function l(e){a+=\"</\"+g(e)+\">\"}function u(e){(\"start\"===e.event?c:l)(e.node)}for(;e.length||n.length;){var s=o();if(a+=x(t.substring(r,s[0].offset)),r=s[0].offset,s===e){for(i.reverse().forEach(l);u(s.splice(0,1)[0]),(s=o())===e&&s.length&&s[0].offset===r;);i.reverse().forEach(c)}else\"start\"===s[0].event?i.push(s[0].node):i.pop(),u(s.splice(0,1)[0])}return a+x(t.substr(r))}function R(n){return n.v&&!n.cached_variants&&(n.cached_variants=n.v.map(function(e){return s(n,{v:null},e)})),n.cached_variants?n.cached_variants:function e(n){return!!n&&(n.eW||e(n.starts))}(n)?[s(n,{starts:n.starts?s(n.starts):null})]:Object.isFrozen(n)?[s(n)]:[n]}function p(e){if(r&&!e.langApiRestored){for(var n in e.langApiRestored=!0,r)e[n]&&(e[r[n]]=e[n]);(e.c||[]).concat(e.v||[]).forEach(p)}}function v(n,r){var a={};return\"string\"==typeof n?t(\"keyword\",n):i(n).forEach(function(e){t(e,n[e])}),a;function t(t,e){r&&(e=e.toLowerCase()),e.split(\" \").forEach(function(e){var n=e.split(\"|\");a[n[0]]=[t,function(e,n){return n?Number(n):function(e){return-1!=o.indexOf(e.toLowerCase())}(e)?0:1}(n[0],n[1])]})}}function S(r){function s(e){return e&&e.source||e}function f(e,n){return new RegExp(s(e),\"m\"+(r.cI?\"i\":\"\")+(n?\"g\":\"\"))}function a(a){var i,e,o={},c=[],l={},t=1;function n(e,n){o[t]=e,c.push([e,n]),t+=function(e){return new RegExp(e.toString()+\"|\").exec(\"\").length-1}(n)+1}for(var r=0;r<a.c.length;r++){n(e=a.c[r],e.bK?\"\\\\.?(?:\"+e.b+\")\\\\.?\":e.b)}a.tE&&n(\"end\",a.tE),a.i&&n(\"illegal\",a.i);var u=c.map(function(e){return e[1]});return i=f(function(e,n){for(var t=/\\[(?:[^\\\\\\]]|\\\\.)*\\]|\\(\\??|\\\\([1-9][0-9]*)|\\\\./,r=0,a=\"\",i=0;i<e.length;i++){var o=r+=1,c=s(e[i]);for(0<i&&(a+=n),a+=\"(\";0<c.length;){var l=t.exec(c);if(null==l){a+=c;break}a+=c.substring(0,l.index),c=c.substring(l.index+l[0].length),\"\\\\\"==l[0][0]&&l[1]?a+=\"\\\\\"+String(Number(l[1])+o):(a+=l[0],\"(\"==l[0]&&r++)}a+=\")\"}return a}(u,\"|\"),!0),l.lastIndex=0,l.exec=function(e){var n;if(0===c.length)return null;i.lastIndex=l.lastIndex;var t=i.exec(e);if(!t)return null;for(var r=0;r<t.length;r++)if(null!=t[r]&&null!=o[\"\"+r]){n=o[\"\"+r];break}return\"string\"==typeof n?(t.type=n,t.extra=[a.i,a.tE]):(t.type=\"begin\",t.rule=n),t},l}if(r.c&&-1!=r.c.indexOf(\"self\")){if(!C)throw new Error(\"ERR: contains `self` is not supported at the top-level of a language. See documentation.\");r.c=r.c.filter(function(e){return\"self\"!=e})}!function n(t,e){t.compiled||(t.compiled=!0,t.k=t.k||t.bK,t.k&&(t.k=v(t.k,r.cI)),t.lR=f(t.l||/\\w+/,!0),e&&(t.bK&&(t.b=\"\\\\b(\"+t.bK.split(\" \").join(\"|\")+\")\\\\b\"),t.b||(t.b=/\\B|\\b/),t.bR=f(t.b),t.endSameAsBegin&&(t.e=t.b),t.e||t.eW||(t.e=/\\B|\\b/),t.e&&(t.eR=f(t.e)),t.tE=s(t.e)||\"\",t.eW&&e.tE&&(t.tE+=(t.e?\"|\":\"\")+e.tE)),t.i&&(t.iR=f(t.i)),null==t.relevance&&(t.relevance=1),t.c||(t.c=[]),t.c=Array.prototype.concat.apply([],t.c.map(function(e){return R(\"self\"===e?t:e)})),t.c.forEach(function(e){n(e,t)}),t.starts&&n(t.starts,e),t.t=a(t))}(r)}function T(n,e,a,t){var i=e;function o(e,n){if(function(e,n){var t=e&&e.exec(n);return t&&0===t.index}(e.eR,n)){for(;e.endsParent&&e.parent;)e=e.parent;return e}if(e.eW)return o(e.parent,n)}function c(e,n,t,r){if(!t&&\"\"===n)return\"\";if(!e)return n;var a='<span class=\"'+(r?\"\":B.classPrefix);return(a+=e+'\">')+n+(t?\"\":m)}function l(){p+=null!=d.sL?function(){var e=\"string\"==typeof d.sL;if(e&&!_[d.sL])return x(v);var n=e?T(d.sL,v,!0,R[d.sL]):w(v,d.sL.length?d.sL:void 0);return 0<d.relevance&&(M+=n.relevance),e&&(R[d.sL]=n.top),c(n.language,n.value,!1,!0)}():function(){var e,n,t,r,a,i,o;if(!d.k)return x(v);for(r=\"\",n=0,d.lR.lastIndex=0,t=d.lR.exec(v);t;)r+=x(v.substring(n,t.index)),a=d,i=t,void 0,o=g.cI?i[0].toLowerCase():i[0],(e=a.k.hasOwnProperty(o)&&a.k[o])?(M+=e[1],r+=c(e[0],x(t[0]))):r+=x(t[0]),n=d.lR.lastIndex,t=d.lR.exec(v);return r+x(v.substr(n))}(),v=\"\"}function u(e){p+=e.cN?c(e.cN,\"\",!0):\"\",d=Object.create(e,{parent:{value:d}})}function s(e){var n=e[0],t=e.rule;return t&&t.endSameAsBegin&&(t.eR=function(e){return new RegExp(e.replace(/[-\\/\\\\^$*+?.()|[\\]{}]/g,\"\\\\$&\"),\"m\")}(n)),t.skip?v+=n:(t.eB&&(v+=n),l(),t.rB||t.eB||(v=n)),u(t),t.rB?0:n.length}var f={};function r(e,n){var t=n&&n[0];if(v+=e,null==t)return l(),0;if(\"begin\"==f.type&&\"end\"==n.type&&f.index==n.index&&\"\"===t)return v+=i.slice(n.index,n.index+1),1;if(\"begin\"===(f=n).type)return s(n);if(\"illegal\"===n.type&&!a)throw new Error('Illegal lexeme \"'+t+'\" for mode \"'+(d.cN||\"<unnamed>\")+'\"');if(\"end\"===n.type){var r=function(e){var n=e[0],t=i.substr(e.index),r=o(d,t);if(r){var a=d;for(a.skip?v+=n:(a.rE||a.eE||(v+=n),l(),a.eE&&(v=n));d.cN&&(p+=m),d.skip||d.sL||(M+=d.relevance),(d=d.parent)!==r.parent;);return r.starts&&(r.endSameAsBegin&&(r.starts.eR=r.eR),u(r.starts)),a.rE?0:n.length}}(n);if(null!=r)return r}return v+=t,t.length}var g=D(n);if(!g)throw console.error(O.replace(\"{}\",n)),new Error('Unknown language: \"'+n+'\"');S(g);var E,d=t||g,R={},p=\"\";for(E=d;E!==g;E=E.parent)E.cN&&(p=c(E.cN,\"\",!0)+p);var v=\"\",M=0;try{for(var b,h,N=0;d.t.lastIndex=N,b=d.t.exec(i);)h=r(i.substring(N,b.index),b),N=b.index+h;for(r(i.substr(N)),E=d;E.parent;E=E.parent)E.cN&&(p+=m);return{relevance:M,value:p,i:!1,language:n,top:d}}catch(e){if(e.message&&-1!==e.message.indexOf(\"Illegal\"))return{i:!0,relevance:0,value:x(i)};if(C)return{relevance:0,value:x(i),language:n,top:d,errorRaised:e};throw e}}function w(t,e){e=e||B.languages||i(_);var r={relevance:0,value:x(t)},a=r;return e.filter(D).filter(L).forEach(function(e){var n=T(e,t,!1);n.language=e,n.relevance>a.relevance&&(a=n),n.relevance>r.relevance&&(a=r,r=n)}),a.language&&(r.second_best=a),r}function M(e){return B.tabReplace||B.useBR?e.replace(t,function(e,n){return B.useBR&&\"\\n\"===e?\"<br>\":B.tabReplace?n.replace(/\\t/g,B.tabReplace):\"\"}):e}function b(e){var n,t,r,a,i,o=function(e){var n,t,r,a,i=e.className+\" \";if(i+=e.parentNode?e.parentNode.className:\"\",t=l.exec(i)){var o=D(t[1]);return o||(console.warn(O.replace(\"{}\",t[1])),console.warn(\"Falling back to no-highlight mode for this block.\",e)),o?t[1]:\"no-highlight\"}for(n=0,r=(i=i.split(/\\s+/)).length;n<r;n++)if(u(a=i[n])||D(a))return a}(e);u(o)||(B.useBR?(n=document.createElement(\"div\")).innerHTML=e.innerHTML.replace(/\\n/g,\"\").replace(/<br[ \\/]*>/g,\"\\n\"):n=e,i=n.textContent,r=o?T(o,i,!0):w(i),(t=E(n)).length&&((a=document.createElement(\"div\")).innerHTML=r.value,r.value=d(t,E(a),i)),r.value=M(r.value),e.innerHTML=r.value,e.className=function(e,n,t){var r=n?c[n]:t,a=[e.trim()];return e.match(/\\bhljs\\b/)||a.push(\"hljs\"),-1===e.indexOf(r)&&a.push(r),a.join(\" \").trim()}(e.className,o,r.language),e.result={language:r.language,re:r.relevance},r.second_best&&(e.second_best={language:r.second_best.language,re:r.second_best.relevance}))}function h(){if(!h.called){h.called=!0;var e=document.querySelectorAll(\"pre code\");f.forEach.call(e,b)}}var N={disableAutodetect:!0};function D(e){return e=(e||\"\").toLowerCase(),_[e]||_[c[e]]}function L(e){var n=D(e);return n&&!n.disableAutodetect}return a.highlight=T,a.highlightAuto=w,a.fixMarkup=M,a.highlightBlock=b,a.configure=function(e){B=s(B,e)},a.initHighlighting=h,a.initHighlightingOnLoad=function(){window.addEventListener(\"DOMContentLoaded\",h,!1),window.addEventListener(\"load\",h,!1)},a.registerLanguage=function(n,e){var t;try{t=e(a)}catch(e){if(console.error(\"Language definition for '{}' could not be registered.\".replace(\"{}\",n)),!C)throw e;console.error(e),t=N}p(_[n]=t),t.rawDefinition=e.bind(null,a),t.aliases&&t.aliases.forEach(function(e){c[e]=n})},a.listLanguages=function(){return i(_)},a.getLanguage=D,a.requireLanguage=function(e){var n=D(e);if(n)return n;throw new Error(\"The '{}' language is required, but not loaded.\".replace(\"{}\",e))},a.autoDetection=L,a.inherit=s,a.debugMode=function(){C=!1},a.IR=a.IDENT_RE=\"[a-zA-Z]\\\\w*\",a.UIR=a.UNDERSCORE_IDENT_RE=\"[a-zA-Z_]\\\\w*\",a.NR=a.NUMBER_RE=\"\\\\b\\\\d+(\\\\.\\\\d+)?\",a.CNR=a.C_NUMBER_RE=\"(-?)(\\\\b0[xX][a-fA-F0-9]+|(\\\\b\\\\d+(\\\\.\\\\d*)?|\\\\.\\\\d+)([eE][-+]?\\\\d+)?)\",a.BNR=a.BINARY_NUMBER_RE=\"\\\\b(0b[01]+)\",a.RSR=a.RE_STARTERS_RE=\"!|!=|!==|%|%=|&|&&|&=|\\\\*|\\\\*=|\\\\+|\\\\+=|,|-|-=|/=|/|:|;|<<|<<=|<=|<|===|==|=|>>>=|>>=|>=|>>>|>>|>|\\\\?|\\\\[|\\\\{|\\\\(|\\\\^|\\\\^=|\\\\||\\\\|=|\\\\|\\\\||~\",a.BE=a.BACKSLASH_ESCAPE={b:\"\\\\\\\\[\\\\s\\\\S]\",relevance:0},a.ASM=a.APOS_STRING_MODE={cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\",c:[a.BE]},a.QSM=a.QUOTE_STRING_MODE={cN:\"string\",b:'\"',e:'\"',i:\"\\\\n\",c:[a.BE]},a.PWM=a.PHRASAL_WORDS_MODE={b:/\\b(a|an|the|are|I'm|isn't|don't|doesn't|won't|but|just|should|pretty|simply|enough|gonna|going|wtf|so|such|will|you|your|they|like|more)\\b/},a.C=a.COMMENT=function(e,n,t){var r=a.inherit({cN:\"comment\",b:e,e:n,c:[]},t||{});return r.c.push(a.PWM),r.c.push({cN:\"doctag\",b:\"(?:TODO|FIXME|NOTE|BUG|XXX):\",relevance:0}),r},a.CLCM=a.C_LINE_COMMENT_MODE=a.C(\"//\",\"$\"),a.CBCM=a.C_BLOCK_COMMENT_MODE=a.C(\"/\\\\*\",\"\\\\*/\"),a.HCM=a.HASH_COMMENT_MODE=a.C(\"#\",\"$\"),a.NM=a.NUMBER_MODE={cN:\"number\",b:a.NR,relevance:0},a.CNM=a.C_NUMBER_MODE={cN:\"number\",b:a.CNR,relevance:0},a.BNM=a.BINARY_NUMBER_MODE={cN:\"number\",b:a.BNR,relevance:0},a.CSSNM=a.CSS_NUMBER_MODE={cN:\"number\",b:a.NR+\"(%|em|ex|ch|rem|vw|vh|vmin|vmax|cm|mm|in|pt|pc|px|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?\",relevance:0},a.RM=a.REGEXP_MODE={cN:\"regexp\",b:/\\//,e:/\\/[gimuy]*/,i:/\\n/,c:[a.BE,{b:/\\[/,e:/\\]/,relevance:0,c:[a.BE]}]},a.TM=a.TITLE_MODE={cN:\"title\",b:a.IR,relevance:0},a.UTM=a.UNDERSCORE_TITLE_MODE={cN:\"title\",b:a.UIR,relevance:0},a.METHOD_GUARD={b:\"\\\\.\\\\s*\"+a.UIR,relevance:0},[a.BE,a.ASM,a.QSM,a.PWM,a.C,a.CLCM,a.CBCM,a.HCM,a.NM,a.CNM,a.BNM,a.CSSNM,a.RM,a.TM,a.UTM,a.METHOD_GUARD].forEach(function(e){!function n(t){Object.freeze(t);var r=\"function\"==typeof t;Object.getOwnPropertyNames(t).forEach(function(e){!t.hasOwnProperty(e)||null===t[e]||\"object\"!=typeof t[e]&&\"function\"!=typeof t[e]||r&&(\"caller\"===e||\"callee\"===e||\"arguments\"===e)||Object.isFrozen(t[e])||n(t[e])});return t}(e)}),a});hljs.registerLanguage(\"swift\",function(e){var i={keyword:\"#available #colorLiteral #column #else #elseif #endif #file #fileLiteral #function #if #imageLiteral #line #selector #sourceLocation _ __COLUMN__ __FILE__ __FUNCTION__ __LINE__ Any as as! as? associatedtype associativity break case catch class continue convenience default defer deinit didSet do dynamic dynamicType else enum extension fallthrough false fileprivate final for func get guard if import in indirect infix init inout internal is lazy left let mutating nil none nonmutating open operator optional override postfix precedence prefix private protocol Protocol public repeat required rethrows return right self Self set static struct subscript super switch throw throws true try try! try? Type typealias unowned var weak where while willSet\",literal:\"true false nil\",built_in:\"abs advance alignof alignofValue anyGenerator assert assertionFailure bridgeFromObjectiveC bridgeFromObjectiveCUnconditional bridgeToObjectiveC bridgeToObjectiveCUnconditional c contains count countElements countLeadingZeros debugPrint debugPrintln distance dropFirst dropLast dump encodeBitsAsWords enumerate equal fatalError filter find getBridgedObjectiveCType getVaList indices insertionSort isBridgedToObjectiveC isBridgedVerbatimToObjectiveC isUniquelyReferenced isUniquelyReferencedNonObjC join lazy lexicographicalCompare map max maxElement min minElement numericCast overlaps partition posix precondition preconditionFailure print println quickSort readLine reduce reflect reinterpretCast reverse roundUpToAlignment sizeof sizeofValue sort split startsWith stride strideof strideofValue swap toString transcode underestimateCount unsafeAddressOf unsafeBitCast unsafeDowncast unsafeUnwrap unsafeReflect withExtendedLifetime withObjectAtPlusZero withUnsafePointer withUnsafePointerToObject withUnsafeMutablePointer withUnsafeMutablePointers withUnsafePointer withUnsafePointers withVaList zip\"},t=e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),n={cN:\"subst\",b:/\\\\\\(/,e:\"\\\\)\",k:i,c:[]},r={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/\"/,e:/\"/}]},a={cN:\"number\",b:\"\\\\b([\\\\d_]+(\\\\.[\\\\deE_]+)?|0x[a-fA-F0-9_]+(\\\\.[a-fA-F0-9p_]+)?|0b[01_]+|0o[0-7_]+)\\\\b\",relevance:0};return n.c=[a],{k:i,c:[r,e.CLCM,t,{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*[!?]\"},{cN:\"type\",b:\"\\\\b[A-Z][\\\\wÀ-ʸ']*\",relevance:0},a,{cN:\"function\",bK:\"func\",e:\"{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][0-9A-Za-z$_]*/}),{b:/</,e:/>/},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:i,c:[\"self\",a,r,e.CBCM,{b:\":\"}],i:/[\"']/}],i:/\\[|%/},{cN:\"class\",bK:\"struct protocol class extension enum\",k:i,e:\"\\\\{\",eE:!0,c:[e.inherit(e.TM,{b:/[A-Za-z$_][\\u00C0-\\u02B80-9A-Za-z$_]*/})]},{cN:\"meta\",b:\"(@discardableResult|@warn_unused_result|@exported|@lazy|@noescape|@NSCopying|@NSManaged|@objc|@objcMembers|@convention|@required|@noreturn|@IBAction|@IBDesignable|@IBInspectable|@IBOutlet|@infix|@prefix|@postfix|@autoclosure|@testable|@available|@nonobjc|@NSApplicationMain|@UIApplicationMain|@dynamicMemberLookup|@propertyWrapper)\"},{bK:\"import\",e:/$/,c:[e.CLCM,t]}]}});hljs.registerLanguage(\"less\",function(e){function r(e){return{cN:\"string\",b:\"~?\"+e+\".*?\"+e}}function t(e,r,t){return{cN:e,b:r,relevance:t}}var a=\"[\\\\w-]+\",c=\"(\"+a+\"|@{\"+a+\"})\",s=[],n=[],b={b:\"\\\\(\",e:\"\\\\)\",c:n,relevance:0};n.push(e.CLCM,e.CBCM,r(\"'\"),r('\"'),e.CSSNM,{b:\"(url|data-uri)\\\\(\",starts:{cN:\"string\",e:\"[\\\\)\\\\n]\",eE:!0}},t(\"number\",\"#[0-9A-Fa-f]+\\\\b\"),b,t(\"variable\",\"@@?\"+a,10),t(\"variable\",\"@{\"+a+\"}\"),t(\"built_in\",\"~?`[^`]*?`\"),{cN:\"attribute\",b:a+\"\\\\s*:\",e:\":\",rB:!0,eE:!0},{cN:\"meta\",b:\"!important\"});var i=n.concat({b:\"{\",e:\"}\",c:s}),l={bK:\"when\",eW:!0,c:[{bK:\"and not\"}].concat(n)},o={b:c+\"\\\\s*:\",rB:!0,e:\"[;}]\",relevance:0,c:[{cN:\"attribute\",b:c,e:\":\",eE:!0,starts:{eW:!0,i:\"[<=$]\",relevance:0,c:n}}]},u={cN:\"keyword\",b:\"@(import|media|charset|font-face|(-[a-z]+-)?keyframes|supports|document|namespace|page|viewport|host)\\\\b\",starts:{e:\"[;{}]\",rE:!0,c:n,relevance:0}},v={cN:\"variable\",v:[{b:\"@\"+a+\"\\\\s*:\",relevance:15},{b:\"@\"+a}],starts:{e:\"[;}]\",rE:!0,c:i}},C={v:[{b:\"[\\\\.#:&\\\\[>]\",e:\"[;{}]\"},{b:c,e:\"{\"}],rB:!0,rE:!0,i:\"[<='$\\\"]\",relevance:0,c:[e.CLCM,e.CBCM,l,t(\"keyword\",\"all\\\\b\"),t(\"variable\",\"@{\"+a+\"}\"),t(\"selector-tag\",c+\"%?\",0),t(\"selector-id\",\"#\"+c),t(\"selector-class\",\"\\\\.\"+c,0),t(\"selector-tag\",\"&\",0),{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\"},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"\\\\(\",e:\"\\\\)\",c:i},{b:\"!important\"}]};return s.push(e.CLCM,e.CBCM,u,v,o,C),{cI:!0,i:\"[=>'/<($\\\"]\",c:s}});hljs.registerLanguage(\"armasm\",function(s){return{cI:!0,aliases:[\"arm\"],l:\"\\\\.?\"+s.IR,k:{meta:\".2byte .4byte .align .ascii .asciz .balign .byte .code .data .else .end .endif .endm .endr .equ .err .exitm .extern .global .hword .if .ifdef .ifndef .include .irp .long .macro .rept .req .section .set .skip .space .text .word .arm .thumb .code16 .code32 .force_thumb .thumb_func .ltorg ALIAS ALIGN ARM AREA ASSERT ATTR CN CODE CODE16 CODE32 COMMON CP DATA DCB DCD DCDU DCDO DCFD DCFDU DCI DCQ DCQU DCW DCWU DN ELIF ELSE END ENDFUNC ENDIF ENDP ENTRY EQU EXPORT EXPORTAS EXTERN FIELD FILL FUNCTION GBLA GBLL GBLS GET GLOBAL IF IMPORT INCBIN INCLUDE INFO KEEP LCLA LCLL LCLS LTORG MACRO MAP MEND MEXIT NOFP OPT PRESERVE8 PROC QN READONLY RELOC REQUIRE REQUIRE8 RLIST FN ROUT SETA SETL SETS SN SPACE SUBT THUMB THUMBX TTL WHILE WEND \",built_in:\"r0 r1 r2 r3 r4 r5 r6 r7 r8 r9 r10 r11 r12 r13 r14 r15 pc lr sp ip sl sb fp a1 a2 a3 a4 v1 v2 v3 v4 v5 v6 v7 v8 f0 f1 f2 f3 f4 f5 f6 f7 p0 p1 p2 p3 p4 p5 p6 p7 p8 p9 p10 p11 p12 p13 p14 p15 c0 c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 c11 c12 c13 c14 c15 q0 q1 q2 q3 q4 q5 q6 q7 q8 q9 q10 q11 q12 q13 q14 q15 cpsr_c cpsr_x cpsr_s cpsr_f cpsr_cx cpsr_cxs cpsr_xs cpsr_xsf cpsr_sf cpsr_cxsf spsr_c spsr_x spsr_s spsr_f spsr_cx spsr_cxs spsr_xs spsr_xsf spsr_sf spsr_cxsf s0 s1 s2 s3 s4 s5 s6 s7 s8 s9 s10 s11 s12 s13 s14 s15 s16 s17 s18 s19 s20 s21 s22 s23 s24 s25 s26 s27 s28 s29 s30 s31 d0 d1 d2 d3 d4 d5 d6 d7 d8 d9 d10 d11 d12 d13 d14 d15 d16 d17 d18 d19 d20 d21 d22 d23 d24 d25 d26 d27 d28 d29 d30 d31 {PC} {VAR} {TRUE} {FALSE} {OPT} {CONFIG} {ENDIAN} {CODESIZE} {CPU} {FPU} {ARCHITECTURE} {PCSTOREOFFSET} {ARMASM_VERSION} {INTER} {ROPI} {RWPI} {SWST} {NOSWST} . @\"},c:[{cN:\"keyword\",b:\"\\\\b(adc|(qd?|sh?|u[qh]?)?add(8|16)?|usada?8|(q|sh?|u[qh]?)?(as|sa)x|and|adrl?|sbc|rs[bc]|asr|b[lx]?|blx|bxj|cbn?z|tb[bh]|bic|bfc|bfi|[su]bfx|bkpt|cdp2?|clz|clrex|cmp|cmn|cpsi[ed]|cps|setend|dbg|dmb|dsb|eor|isb|it[te]{0,3}|lsl|lsr|ror|rrx|ldm(([id][ab])|f[ds])?|ldr((s|ex)?[bhd])?|movt?|mvn|mra|mar|mul|[us]mull|smul[bwt][bt]|smu[as]d|smmul|smmla|mla|umlaal|smlal?([wbt][bt]|d)|mls|smlsl?[ds]|smc|svc|sev|mia([bt]{2}|ph)?|mrr?c2?|mcrr2?|mrs|msr|orr|orn|pkh(tb|bt)|rbit|rev(16|sh)?|sel|[su]sat(16)?|nop|pop|push|rfe([id][ab])?|stm([id][ab])?|str(ex)?[bhd]?|(qd?)?sub|(sh?|q|u[qh]?)?sub(8|16)|[su]xt(a?h|a?b(16)?)|srs([id][ab])?|swpb?|swi|smi|tst|teq|wfe|wfi|yield)(eq|ne|cs|cc|mi|pl|vs|vc|hi|ls|ge|lt|gt|le|al|hs|lo)?[sptrx]?\",e:\"\\\\s\"},s.C(\"[;@]\",\"$\",{relevance:0}),s.CBCM,s.QSM,{cN:\"string\",b:\"'\",e:\"[^\\\\\\\\]'\",relevance:0},{cN:\"title\",b:\"\\\\|\",e:\"\\\\|\",i:\"\\\\n\",relevance:0},{cN:\"number\",v:[{b:\"[#$=]?0x[0-9a-f]+\"},{b:\"[#$=]?0b[01]+\"},{b:\"[#$=]\\\\d+\"},{b:\"\\\\b\\\\d+\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+\"},{b:\"^\\\\s*[a-z_\\\\.\\\\$][a-z0-9_\\\\.\\\\$]+:\"},{b:\"[=#]\\\\w+\"}],relevance:0}]}});hljs.registerLanguage(\"ruby\",function(e){var c=\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\",b={keyword:\"and then defined module in return redo if BEGIN retry end for self when next until do begin unless END rescue else break undef not super class case require yield alias while ensure elsif or include attr_reader attr_writer attr_accessor\",literal:\"true false nil\"},r={cN:\"doctag\",b:\"@[A-Za-z]+\"},a={b:\"#<\",e:\">\"},n=[e.C(\"#\",\"$\",{c:[r]}),e.C(\"^\\\\=begin\",\"^\\\\=end\",{c:[r],relevance:10}),e.C(\"^__END__\",\"\\\\n$\")],s={cN:\"subst\",b:\"#\\\\{\",e:\"}\",k:b},t={cN:\"string\",c:[e.BE,s],v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/`/,e:/`/},{b:\"%[qQwWx]?\\\\(\",e:\"\\\\)\"},{b:\"%[qQwWx]?\\\\[\",e:\"\\\\]\"},{b:\"%[qQwWx]?{\",e:\"}\"},{b:\"%[qQwWx]?<\",e:\">\"},{b:\"%[qQwWx]?/\",e:\"/\"},{b:\"%[qQwWx]?%\",e:\"%\"},{b:\"%[qQwWx]?-\",e:\"-\"},{b:\"%[qQwWx]?\\\\|\",e:\"\\\\|\"},{b:/\\B\\?(\\\\\\d{1,3}|\\\\x[A-Fa-f0-9]{1,2}|\\\\u[A-Fa-f0-9]{4}|\\\\?\\S)\\b/},{b:/<<[-~]?'?(\\w+)(?:.|\\n)*?\\n\\s*\\1\\b/,rB:!0,c:[{b:/<<[-~]?'?/},{b:/\\w+/,endSameAsBegin:!0,c:[e.BE,s]}]}]},i={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",endsParent:!0,k:b},l=[t,a,{cN:\"class\",bK:\"class module\",e:\"$|;\",i:/=/,c:[e.inherit(e.TM,{b:\"[A-Za-z_]\\\\w*(::\\\\w+)*(\\\\?|\\\\!)?\"}),{b:\"<\\\\s*\",c:[{b:\"(\"+e.IR+\"::)?\"+e.IR}]}].concat(n)},{cN:\"function\",bK:\"def\",e:\"$|;\",c:[e.inherit(e.TM,{b:c}),i].concat(n)},{b:e.IR+\"::\"},{cN:\"symbol\",b:e.UIR+\"(\\\\!|\\\\?)?:\",relevance:0},{cN:\"symbol\",b:\":(?!\\\\s)\",c:[t,{b:c}],relevance:0},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{cN:\"params\",b:/\\|/,e:/\\|/,k:b},{b:\"(\"+e.RSR+\"|unless)\\\\s*\",k:\"unless\",c:[a,{cN:\"regexp\",c:[e.BE,s],i:/\\n/,v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r{\",e:\"}[a-z]*\"},{b:\"%r\\\\(\",e:\"\\\\)[a-z]*\"},{b:\"%r!\",e:\"![a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}].concat(n),relevance:0}].concat(n);s.c=l;var d=[{b:/^\\s*=>/,starts:{e:\"$\",c:i.c=l}},{cN:\"meta\",b:\"^([>?]>|[\\\\w#]+\\\\(\\\\w+\\\\):\\\\d+:\\\\d+>|(\\\\w+-)?\\\\d+\\\\.\\\\d+\\\\.\\\\d(p\\\\d+)?[^>]+>)\",starts:{e:\"$\",c:l}}];return{aliases:[\"rb\",\"gemspec\",\"podspec\",\"thor\",\"irb\"],k:b,i:/\\/\\*/,c:n.concat(d).concat(l)}});hljs.registerLanguage(\"lua\",function(e){var t=\"\\\\[=*\\\\[\",a=\"\\\\]=*\\\\]\",n={b:t,e:a,c:[\"self\"]},l=[e.C(\"--(?!\"+t+\")\",\"$\"),e.C(\"--\"+t,a,{c:[n],relevance:10})];return{l:e.UIR,k:{literal:\"true false nil\",keyword:\"and break do else elseif end for goto if in local not or repeat return then until while\",built_in:\"_G _ENV _VERSION __index __newindex __mode __call __metatable __tostring __len __gc __add __sub __mul __div __mod __pow __concat __unm __eq __lt __le assert collectgarbage dofile error getfenv getmetatable ipairs load loadfile loadstringmodule next pairs pcall print rawequal rawget rawset require select setfenvsetmetatable tonumber tostring type unpack xpcall arg selfcoroutine resume yield status wrap create running debug getupvalue debug sethook getmetatable gethook setmetatable setlocal traceback setfenv getinfo setupvalue getlocal getregistry getfenv io lines write close flush open output type read stderr stdin input stdout popen tmpfile math log max acos huge ldexp pi cos tanh pow deg tan cosh sinh random randomseed frexp ceil floor rad abs sqrt modf asin min mod fmod log10 atan2 exp sin atan os exit setlocale date getenv difftime remove time clock tmpname rename execute package preload loadlib loaded loaders cpath config path seeall string sub upper len gfind rep find match char dump gmatch reverse byte format gsub lower table setn insert getn foreachi maxn foreach concat sort remove\"},c:l.concat([{cN:\"function\",bK:\"function\",e:\"\\\\)\",c:[e.inherit(e.TM,{b:\"([_a-zA-Z]\\\\w*\\\\.)*([_a-zA-Z]\\\\w*:)?[_a-zA-Z]\\\\w*\"}),{cN:\"params\",b:\"\\\\(\",eW:!0,c:l}].concat(l)},e.CNM,e.ASM,e.QSM,{cN:\"string\",b:t,e:a,c:[n],relevance:5}])}});hljs.registerLanguage(\"matlab\",function(e){var a=\"('|\\\\.')+\",s={relevance:0,c:[{b:a}]};return{k:{keyword:\"break case catch classdef continue else elseif end enumerated events for function global if methods otherwise parfor persistent properties return spmd switch try while\",built_in:\"sin sind sinh asin asind asinh cos cosd cosh acos acosd acosh tan tand tanh atan atand atan2 atanh sec secd sech asec asecd asech csc cscd csch acsc acscd acsch cot cotd coth acot acotd acoth hypot exp expm1 log log1p log10 log2 pow2 realpow reallog realsqrt sqrt nthroot nextpow2 abs angle complex conj imag real unwrap isreal cplxpair fix floor ceil round mod rem sign airy besselj bessely besselh besseli besselk beta betainc betaln ellipj ellipke erf erfc erfcx erfinv expint gamma gammainc gammaln psi legendre cross dot factor isprime primes gcd lcm rat rats perms nchoosek factorial cart2sph cart2pol pol2cart sph2cart hsv2rgb rgb2hsv zeros ones eye repmat rand randn linspace logspace freqspace meshgrid accumarray size length ndims numel disp isempty isequal isequalwithequalnans cat reshape diag blkdiag tril triu fliplr flipud flipdim rot90 find sub2ind ind2sub bsxfun ndgrid permute ipermute shiftdim circshift squeeze isscalar isvector ans eps realmax realmin pi i inf nan isnan isinf isfinite j why compan gallery hadamard hankel hilb invhilb magic pascal rosser toeplitz vander wilkinson max min nanmax nanmin mean nanmean type table readtable writetable sortrows sort figure plot plot3 scatter scatter3 cellfun legend intersect ismember procrustes hold num2cell \"},i:'(//|\"|#|/\\\\*|\\\\s+/\\\\w+)',c:[{cN:\"function\",bK:\"function\",e:\"$\",c:[e.UTM,{cN:\"params\",v:[{b:\"\\\\(\",e:\"\\\\)\"},{b:\"\\\\[\",e:\"\\\\]\"}]}]},{cN:\"built_in\",b:/true|false/,relevance:0,starts:s},{b:\"[a-zA-Z][a-zA-Z_0-9]*\"+a,relevance:0},{cN:\"number\",b:e.CNR,relevance:0,starts:s},{cN:\"string\",b:\"'\",e:\"'\",c:[e.BE,{b:\"''\"}]},{b:/\\]|}|\\)/,relevance:0,starts:s},{cN:\"string\",b:'\"',e:'\"',c:[e.BE,{b:'\"\"'}],starts:s},e.C(\"^\\\\s*\\\\%\\\\{\\\\s*$\",\"^\\\\s*\\\\%\\\\}\\\\s*$\"),e.C(\"\\\\%\",\"$\")]}});hljs.registerLanguage(\"apache\",function(e){var r={cN:\"number\",b:\"[\\\\$%]\\\\d+\"};return{aliases:[\"apacheconf\"],cI:!0,c:[e.HCM,{cN:\"section\",b:\"</?\",e:\">\"},{cN:\"attribute\",b:/\\w+/,relevance:0,k:{nomarkup:\"order deny allow setenv rewriterule rewriteengine rewritecond documentroot sethandler errordocument loadmodule options header listen serverroot servername\"},starts:{e:/$/,relevance:0,k:{literal:\"on off all\"},c:[{cN:\"meta\",b:\"\\\\s\\\\[\",e:\"\\\\]$\"},{cN:\"variable\",b:\"[\\\\$%]\\\\{\",e:\"\\\\}\",c:[\"self\",r]},r,e.QSM]}}],i:/\\S/}});hljs.registerLanguage(\"yaml\",function(e){var b=\"true false yes no null\",a={cN:\"string\",relevance:0,v:[{b:/'/,e:/'/},{b:/\"/,e:/\"/},{b:/\\S+/}],c:[e.BE,{cN:\"template-variable\",v:[{b:\"{{\",e:\"}}\"},{b:\"%{\",e:\"}\"}]}]};return{cI:!0,aliases:[\"yml\",\"YAML\",\"yaml\"],c:[{cN:\"attr\",v:[{b:\"\\\\w[\\\\w :\\\\/.-]*:(?=[ \\t]|$)\"},{b:'\"\\\\w[\\\\w :\\\\/.-]*\":(?=[ \\t]|$)'},{b:\"'\\\\w[\\\\w :\\\\/.-]*':(?=[ \\t]|$)\"}]},{cN:\"meta\",b:\"^---s*$\",relevance:10},{cN:\"string\",b:\"[\\\\|>]([0-9]?[+-])?[ ]*\\\\n( *)[\\\\S ]+\\\\n(\\\\2[\\\\S ]+\\\\n?)*\"},{b:\"<%[%=-]?\",e:\"[%-]?%>\",sL:\"ruby\",eB:!0,eE:!0,relevance:0},{cN:\"type\",b:\"!\"+e.UIR},{cN:\"type\",b:\"!!\"+e.UIR},{cN:\"meta\",b:\"&\"+e.UIR+\"$\"},{cN:\"meta\",b:\"\\\\*\"+e.UIR+\"$\"},{cN:\"bullet\",b:\"\\\\-(?=[ ]|$)\",relevance:0},e.HCM,{bK:b,k:{literal:b}},{cN:\"number\",b:e.CNR+\"\\\\b\"},a]}});hljs.registerLanguage(\"plaintext\",function(e){return{disableAutodetect:!0}});hljs.registerLanguage(\"erlang-repl\",function(e){return{k:{built_in:\"spawn spawn_link self\",keyword:\"after and andalso|10 band begin bnot bor bsl bsr bxor case catch cond div end fun if let not of or orelse|10 query receive rem try when xor\"},c:[{cN:\"meta\",b:\"^[0-9]+> \",relevance:10},e.C(\"%\",\"$\"),{cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},e.ASM,e.QSM,{b:\"\\\\?(::)?([A-Z]\\\\w*(::)?)+\"},{b:\"->\"},{b:\"ok\"},{b:\"!\"},{b:\"(\\\\b[a-z'][a-zA-Z0-9_']*:[a-z'][a-zA-Z0-9_']*)|(\\\\b[a-z'][a-zA-Z0-9_']*)\",relevance:0},{b:\"[A-Z][a-zA-Z0-9_']*\",relevance:0}]}});hljs.registerLanguage(\"cmake\",function(e){return{aliases:[\"cmake.in\"],cI:!0,k:{keyword:\"break cmake_host_system_information cmake_minimum_required cmake_parse_arguments cmake_policy configure_file continue elseif else endforeach endfunction endif endmacro endwhile execute_process file find_file find_library find_package find_path find_program foreach function get_cmake_property get_directory_property get_filename_component get_property if include include_guard list macro mark_as_advanced math message option return separate_arguments set_directory_properties set_property set site_name string unset variable_watch while add_compile_definitions add_compile_options add_custom_command add_custom_target add_definitions add_dependencies add_executable add_library add_link_options add_subdirectory add_test aux_source_directory build_command create_test_sourcelist define_property enable_language enable_testing export fltk_wrap_ui get_source_file_property get_target_property get_test_property include_directories include_external_msproject include_regular_expression install link_directories link_libraries load_cache project qt_wrap_cpp qt_wrap_ui remove_definitions set_source_files_properties set_target_properties set_tests_properties source_group target_compile_definitions target_compile_features target_compile_options target_include_directories target_link_directories target_link_libraries target_link_options target_sources try_compile try_run ctest_build ctest_configure ctest_coverage ctest_empty_binary_directory ctest_memcheck ctest_read_custom_files ctest_run_script ctest_sleep ctest_start ctest_submit ctest_test ctest_update ctest_upload build_name exec_program export_library_dependencies install_files install_programs install_targets load_command make_directory output_required_files remove subdir_depends subdirs use_mangled_mesa utility_source variable_requires write_file qt5_use_modules qt5_use_package qt5_wrap_cpp on off true false and or not command policy target test exists is_newer_than is_directory is_symlink is_absolute matches less greater equal less_equal greater_equal strless strgreater strequal strless_equal strgreater_equal version_less version_greater version_equal version_less_equal version_greater_equal in_list defined\"},c:[{cN:\"variable\",b:\"\\\\${\",e:\"}\"},e.HCM,e.QSM,e.NM]}});hljs.registerLanguage(\"kotlin\",function(e){var t={keyword:\"abstract as val var vararg get set class object open private protected public noinline crossinline dynamic final enum if else do while for when throw try catch finally import package is in fun override companion reified inline lateinit init interface annotation data sealed internal infix operator out by constructor super tailrec where const inner suspend typealias external expect actual trait volatile transient native default\",built_in:\"Byte Short Char Int Long Boolean Float Double Void Unit Nothing\",literal:\"true false null\"},a={cN:\"symbol\",b:e.UIR+\"@\"},n={cN:\"subst\",b:\"\\\\${\",e:\"}\",c:[e.CNM]},c={cN:\"variable\",b:\"\\\\$\"+e.UIR},r={cN:\"string\",v:[{b:'\"\"\"',e:'\"\"\"(?=[^\"])',c:[c,n]},{b:\"'\",e:\"'\",i:/\\n/,c:[e.BE]},{b:'\"',e:'\"',i:/\\n/,c:[e.BE,c,n]}]};n.c.push(r);var i={cN:\"meta\",b:\"@(?:file|property|field|get|set|receiver|param|setparam|delegate)\\\\s*:(?:\\\\s*\"+e.UIR+\")?\"},l={cN:\"meta\",b:\"@\"+e.UIR,c:[{b:/\\(/,e:/\\)/,c:[e.inherit(r,{cN:\"meta-string\"})]}]},s={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0},b=e.C(\"/\\\\*\",\"\\\\*/\",{c:[e.CBCM]}),o={v:[{cN:\"type\",b:e.UIR},{b:/\\(/,e:/\\)/,c:[]}]},d=o;return d.v[1].c=[o],o.v[1].c=[d],{aliases:[\"kt\"],k:t,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,b,{cN:\"keyword\",b:/\\b(break|continue|return|this)\\b/,starts:{c:[{cN:\"symbol\",b:/@\\w+/}]}},a,i,l,{cN:\"function\",bK:\"fun\",e:\"[(]|$\",rB:!0,eE:!0,k:t,i:/fun\\s+(<.*>)?[^\\s\\(]+(\\s+[^\\s\\(]+)\\s*=/,relevance:5,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"type\",b:/</,e:/>/,k:\"reified\",relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,endsParent:!0,k:t,relevance:0,c:[{b:/:/,e:/[=,\\/]/,eW:!0,c:[o,e.CLCM,b],relevance:0},e.CLCM,b,i,l,r,e.CNM]},b]},{cN:\"class\",bK:\"class interface trait\",e:/[:\\{(]|$/,eE:!0,i:\"extends implements\",c:[{bK:\"public protected internal private constructor\"},e.UTM,{cN:\"type\",b:/</,e:/>/,eB:!0,eE:!0,relevance:0},{cN:\"type\",b:/[,:]\\s*/,e:/[<\\(,]|$/,eB:!0,rE:!0},i,l]},r,{cN:\"meta\",b:\"^#!/usr/bin/env\",e:\"$\",i:\"\\n\"},s]}});hljs.registerLanguage(\"javascript\",function(e){var r=\"<>\",a=\"</>\",t={b:/<[A-Za-z0-9\\\\._:-]+/,e:/\\/[A-Za-z0-9\\\\._:-]+>|\\/>/},c=\"[A-Za-z$_][0-9A-Za-z$_]*\",n={keyword:\"in of if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const export super debugger as async await static import from as\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document Symbol Set Map WeakSet WeakMap Proxy Reflect Promise\"},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:n,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},b={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},l={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};o.c=[e.ASM,e.QSM,i,b,l,s,e.RM];var u=o.c.concat([e.CBCM,e.CLCM]);return{aliases:[\"js\",\"jsx\",\"mjs\",\"cjs\"],k:n,c:[{cN:\"meta\",relevance:10,b:/^\\s*['\"]use (strict|asm)['\"]/},{cN:\"meta\",b:/^#!/,e:/$/},e.ASM,e.QSM,i,b,l,e.CLCM,e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{cN:\"doctag\",b:\"@[A-Za-z]+\",c:[{cN:\"type\",b:\"\\\\{\",e:\"\\\\}\",relevance:0},{cN:\"variable\",b:c+\"(?=\\\\s*(-)|$)\",endsParent:!0,relevance:0},{b:/(?=[^\\n])\\s/,relevance:0}]}]}),e.CBCM,s,{b:/[{,\\n]\\s*/,relevance:0,c:[{b:c+\"\\\\s*:\",rB:!0,relevance:0,c:[{cN:\"attr\",b:c,relevance:0}]}]},{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+c+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:c},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:n,c:u}]}]},{cN:\"\",b:/\\s/,e:/\\s*/,skip:!0},{v:[{b:r,e:a},{b:t.b,e:t.e}],sL:\"xml\",c:[{b:t.b,e:t.e,skip:!0,c:[\"self\"]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/\\{/,eE:!0,c:[e.inherit(e.TM,{b:c}),{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,c:u}],i:/\\[|%/},{b:/\\$[(.]/},e.METHOD_GUARD,{cN:\"class\",bK:\"class\",e:/[{;=]/,eE:!0,i:/[:\"\\[\\]]/,c:[{bK:\"extends\"},e.UTM]},{bK:\"constructor get set\",e:/\\{/,eE:!0}],i:/#(?!!)/}});hljs.registerLanguage(\"scss\",function(e){var t=\"@[a-z-]+\",r={cN:\"variable\",b:\"(\\\\$[a-zA-Z-][a-zA-Z0-9_-]*)\\\\b\"},i={cN:\"number\",b:\"#[0-9A-Fa-f]+\"};e.CSSNM,e.QSM,e.ASM,e.CBCM;return{cI:!0,i:\"[=/|']\",c:[e.CLCM,e.CBCM,{cN:\"selector-id\",b:\"\\\\#[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-class\",b:\"\\\\.[A-Za-z0-9_-]+\",relevance:0},{cN:\"selector-attr\",b:\"\\\\[\",e:\"\\\\]\",i:\"$\"},{cN:\"selector-tag\",b:\"\\\\b(a|abbr|acronym|address|area|article|aside|audio|b|base|big|blockquote|body|br|button|canvas|caption|cite|code|col|colgroup|command|datalist|dd|del|details|dfn|div|dl|dt|em|embed|fieldset|figcaption|figure|footer|form|frame|frameset|(h[1-6])|head|header|hgroup|hr|html|i|iframe|img|input|ins|kbd|keygen|label|legend|li|link|map|mark|meta|meter|nav|noframes|noscript|object|ol|optgroup|option|output|p|param|pre|progress|q|rp|rt|ruby|samp|script|section|select|small|span|strike|strong|style|sub|sup|table|tbody|td|textarea|tfoot|th|thead|time|title|tr|tt|ul|var|video)\\\\b\",relevance:0},{cN:\"selector-pseudo\",b:\":(visited|valid|root|right|required|read-write|read-only|out-range|optional|only-of-type|only-child|nth-of-type|nth-last-of-type|nth-last-child|nth-child|not|link|left|last-of-type|last-child|lang|invalid|indeterminate|in-range|hover|focus|first-of-type|first-line|first-letter|first-child|first|enabled|empty|disabled|default|checked|before|after|active)\"},{cN:\"selector-pseudo\",b:\"::(after|before|choices|first-letter|first-line|repeat-index|repeat-item|selection|value)\"},r,{cN:\"attribute\",b:\"\\\\b(src|z-index|word-wrap|word-spacing|word-break|width|widows|white-space|visibility|vertical-align|unicode-bidi|transition-timing-function|transition-property|transition-duration|transition-delay|transition|transform-style|transform-origin|transform|top|text-underline-position|text-transform|text-shadow|text-rendering|text-overflow|text-indent|text-decoration-style|text-decoration-line|text-decoration-color|text-decoration|text-align-last|text-align|tab-size|table-layout|right|resize|quotes|position|pointer-events|perspective-origin|perspective|page-break-inside|page-break-before|page-break-after|padding-top|padding-right|padding-left|padding-bottom|padding|overflow-y|overflow-x|overflow-wrap|overflow|outline-width|outline-style|outline-offset|outline-color|outline|orphans|order|opacity|object-position|object-fit|normal|none|nav-up|nav-right|nav-left|nav-index|nav-down|min-width|min-height|max-width|max-height|mask|marks|margin-top|margin-right|margin-left|margin-bottom|margin|list-style-type|list-style-position|list-style-image|list-style|line-height|letter-spacing|left|justify-content|initial|inherit|ime-mode|image-orientation|image-resolution|image-rendering|icon|hyphens|height|font-weight|font-variant-ligatures|font-variant|font-style|font-stretch|font-size-adjust|font-size|font-language-override|font-kerning|font-feature-settings|font-family|font|float|flex-wrap|flex-shrink|flex-grow|flex-flow|flex-direction|flex-basis|flex|filter|empty-cells|display|direction|cursor|counter-reset|counter-increment|content|column-width|column-span|column-rule-width|column-rule-style|column-rule-color|column-rule|column-gap|column-fill|column-count|columns|color|clip-path|clip|clear|caption-side|break-inside|break-before|break-after|box-sizing|box-shadow|box-decoration-break|bottom|border-width|border-top-width|border-top-style|border-top-right-radius|border-top-left-radius|border-top-color|border-top|border-style|border-spacing|border-right-width|border-right-style|border-right-color|border-right|border-radius|border-left-width|border-left-style|border-left-color|border-left|border-image-width|border-image-source|border-image-slice|border-image-repeat|border-image-outset|border-image|border-color|border-collapse|border-bottom-width|border-bottom-style|border-bottom-right-radius|border-bottom-left-radius|border-bottom-color|border-bottom|border|background-size|background-repeat|background-position|background-origin|background-image|background-color|background-clip|background-attachment|background-blend-mode|background|backface-visibility|auto|animation-timing-function|animation-play-state|animation-name|animation-iteration-count|animation-fill-mode|animation-duration|animation-direction|animation-delay|animation|align-self|align-items|align-content)\\\\b\",i:\"[^\\\\s]\"},{b:\"\\\\b(whitespace|wait|w-resize|visible|vertical-text|vertical-ideographic|uppercase|upper-roman|upper-alpha|underline|transparent|top|thin|thick|text|text-top|text-bottom|tb-rl|table-header-group|table-footer-group|sw-resize|super|strict|static|square|solid|small-caps|separate|se-resize|scroll|s-resize|rtl|row-resize|ridge|right|repeat|repeat-y|repeat-x|relative|progress|pointer|overline|outside|outset|oblique|nowrap|not-allowed|normal|none|nw-resize|no-repeat|no-drop|newspaper|ne-resize|n-resize|move|middle|medium|ltr|lr-tb|lowercase|lower-roman|lower-alpha|loose|list-item|line|line-through|line-edge|lighter|left|keep-all|justify|italic|inter-word|inter-ideograph|inside|inset|inline|inline-block|inherit|inactive|ideograph-space|ideograph-parenthesis|ideograph-numeric|ideograph-alpha|horizontal|hidden|help|hand|groove|fixed|ellipsis|e-resize|double|dotted|distribute|distribute-space|distribute-letter|distribute-all-lines|disc|disabled|default|decimal|dashed|crosshair|collapse|col-resize|circle|char|center|capitalize|break-word|break-all|bottom|both|bolder|bold|block|bidi-override|below|baseline|auto|always|all-scroll|absolute|table|table-cell)\\\\b\"},{b:\":\",e:\";\",c:[r,i,e.CSSNM,e.QSM,e.ASM,{cN:\"meta\",b:\"!important\"}]},{b:\"@(page|font-face)\",l:t,k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",rB:!0,k:\"and or not only\",c:[{b:t,cN:\"keyword\"},r,e.QSM,e.ASM,i,e.CSSNM]}]}});hljs.registerLanguage(\"perl\",function(e){var t=\"getpwent getservent quotemeta msgrcv scalar kill dbmclose undef lc ma syswrite tr send umask sysopen shmwrite vec qx utime local oct semctl localtime readpipe do return format read sprintf dbmopen pop getpgrp not getpwnam rewinddir qqfileno qw endprotoent wait sethostent bless s|0 opendir continue each sleep endgrent shutdown dump chomp connect getsockname die socketpair close flock exists index shmgetsub for endpwent redo lstat msgctl setpgrp abs exit select print ref gethostbyaddr unshift fcntl syscall goto getnetbyaddr join gmtime symlink semget splice x|0 getpeername recv log setsockopt cos last reverse gethostbyname getgrnam study formline endhostent times chop length gethostent getnetent pack getprotoent getservbyname rand mkdir pos chmod y|0 substr endnetent printf next open msgsnd readdir use unlink getsockopt getpriority rindex wantarray hex system getservbyport endservent int chr untie rmdir prototype tell listen fork shmread ucfirst setprotoent else sysseek link getgrgid shmctl waitpid unpack getnetbyname reset chdir grep split require caller lcfirst until warn while values shift telldir getpwuid my getprotobynumber delete and sort uc defined srand accept package seekdir getprotobyname semop our rename seek if q|0 chroot sysread setpwent no crypt getc chown sqrt write setnetent setpriority foreach tie sin msgget map stat getlogin unless elsif truncate exec keys glob tied closedirioctl socket readlink eval xor readline binmode setservent eof ord bind alarm pipe atan2 getgrent exp time push setgrent gt lt or ne m|0 break given say state when\",r={cN:\"subst\",b:\"[$@]\\\\{\",e:\"\\\\}\",k:t},s={b:\"->{\",e:\"}\"},n={v:[{b:/\\$\\d/},{b:/[\\$%@](\\^\\w\\b|#\\w+(::\\w+)*|{\\w+}|\\w+(::\\w*)*)/},{b:/[\\$%@][^\\s\\w{]/,relevance:0}]},c=[e.BE,r,n],a=[n,e.HCM,e.C(\"^\\\\=\\\\w\",\"\\\\=cut\",{eW:!0}),s,{cN:\"string\",c:c,v:[{b:\"q[qwxr]?\\\\s*\\\\(\",e:\"\\\\)\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\[\",e:\"\\\\]\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\{\",e:\"\\\\}\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\|\",e:\"\\\\|\",relevance:5},{b:\"q[qwxr]?\\\\s*\\\\<\",e:\"\\\\>\",relevance:5},{b:\"qw\\\\s+q\",e:\"q\",relevance:5},{b:\"'\",e:\"'\",c:[e.BE]},{b:'\"',e:'\"'},{b:\"`\",e:\"`\",c:[e.BE]},{b:\"{\\\\w+}\",c:[],relevance:0},{b:\"-?\\\\w+\\\\s*\\\\=\\\\>\",c:[],relevance:0}]},{cN:\"number\",b:\"(\\\\b0[0-7_]+)|(\\\\b0x[0-9a-fA-F_]+)|(\\\\b[1-9][0-9_]*(\\\\.[0-9_]+)?)|[0_]\\\\b\",relevance:0},{b:\"(\\\\/\\\\/|\"+e.RSR+\"|\\\\b(split|return|print|reverse|grep)\\\\b)\\\\s*\",k:\"split return print reverse grep\",relevance:0,c:[e.HCM,{cN:\"regexp\",b:\"(s|tr|y)/(\\\\\\\\.|[^/])*/(\\\\\\\\.|[^/])*/[a-z]*\",relevance:10},{cN:\"regexp\",b:\"(m|qr)?/\",e:\"/[a-z]*\",c:[e.BE],relevance:0}]},{cN:\"function\",bK:\"sub\",e:\"(\\\\s*\\\\(.*?\\\\))?[;{]\",eE:!0,relevance:5,c:[e.TM]},{b:\"-\\\\w\\\\b\",relevance:0},{b:\"^__DATA__$\",e:\"^__END__$\",sL:\"mojolicious\",c:[{b:\"^@@.*\",e:\"$\",cN:\"comment\"}]}];return r.c=a,{aliases:[\"pl\",\"pm\"],l:/[\\w\\.]+/,k:t,c:s.c=a}});hljs.registerLanguage(\"go\",function(e){var n={keyword:\"break default func interface select case map struct chan else goto package switch const fallthrough if range type continue for import return var go defer bool byte complex64 complex128 float32 float64 int8 int16 int32 int64 string uint8 uint16 uint32 uint64 int uint uintptr rune\",literal:\"true false iota nil\",built_in:\"append cap close complex copy imag len make new panic print println real recover delete\"};return{aliases:[\"golang\"],k:n,i:\"</\",c:[e.CLCM,e.CBCM,{cN:\"string\",v:[e.QSM,e.ASM,{b:\"`\",e:\"`\"}]},{cN:\"number\",v:[{b:e.CNR+\"[i]\",relevance:1},e.CNM]},{b:/:=/},{cN:\"function\",bK:\"func\",e:\"\\\\s*(\\\\{|$)\",eE:!0,c:[e.TM,{cN:\"params\",b:/\\(/,e:/\\)/,k:n,i:/[\"']/}]}]}});hljs.registerLanguage(\"x86asm\",function(s){return{cI:!0,l:\"[.%]?\"+s.IR,k:{keyword:\"lock rep repe repz repne repnz xaquire xrelease bnd nobnd aaa aad aam aas adc add and arpl bb0_reset bb1_reset bound bsf bsr bswap bt btc btr bts call cbw cdq cdqe clc cld cli clts cmc cmp cmpsb cmpsd cmpsq cmpsw cmpxchg cmpxchg486 cmpxchg8b cmpxchg16b cpuid cpu_read cpu_write cqo cwd cwde daa das dec div dmint emms enter equ f2xm1 fabs fadd faddp fbld fbstp fchs fclex fcmovb fcmovbe fcmove fcmovnb fcmovnbe fcmovne fcmovnu fcmovu fcom fcomi fcomip fcomp fcompp fcos fdecstp fdisi fdiv fdivp fdivr fdivrp femms feni ffree ffreep fiadd ficom ficomp fidiv fidivr fild fimul fincstp finit fist fistp fisttp fisub fisubr fld fld1 fldcw fldenv fldl2e fldl2t fldlg2 fldln2 fldpi fldz fmul fmulp fnclex fndisi fneni fninit fnop fnsave fnstcw fnstenv fnstsw fpatan fprem fprem1 fptan frndint frstor fsave fscale fsetpm fsin fsincos fsqrt fst fstcw fstenv fstp fstsw fsub fsubp fsubr fsubrp ftst fucom fucomi fucomip fucomp fucompp fxam fxch fxtract fyl2x fyl2xp1 hlt ibts icebp idiv imul in inc incbin insb insd insw int int01 int1 int03 int3 into invd invpcid invlpg invlpga iret iretd iretq iretw jcxz jecxz jrcxz jmp jmpe lahf lar lds lea leave les lfence lfs lgdt lgs lidt lldt lmsw loadall loadall286 lodsb lodsd lodsq lodsw loop loope loopne loopnz loopz lsl lss ltr mfence monitor mov movd movq movsb movsd movsq movsw movsx movsxd movzx mul mwait neg nop not or out outsb outsd outsw packssdw packsswb packuswb paddb paddd paddsb paddsiw paddsw paddusb paddusw paddw pand pandn pause paveb pavgusb pcmpeqb pcmpeqd pcmpeqw pcmpgtb pcmpgtd pcmpgtw pdistib pf2id pfacc pfadd pfcmpeq pfcmpge pfcmpgt pfmax pfmin pfmul pfrcp pfrcpit1 pfrcpit2 pfrsqit1 pfrsqrt pfsub pfsubr pi2fd pmachriw pmaddwd pmagw pmulhriw pmulhrwa pmulhrwc pmulhw pmullw pmvgezb pmvlzb pmvnzb pmvzb pop popa popad popaw popf popfd popfq popfw por prefetch prefetchw pslld psllq psllw psrad psraw psrld psrlq psrlw psubb psubd psubsb psubsiw psubsw psubusb psubusw psubw punpckhbw punpckhdq punpckhwd punpcklbw punpckldq punpcklwd push pusha pushad pushaw pushf pushfd pushfq pushfw pxor rcl rcr rdshr rdmsr rdpmc rdtsc rdtscp ret retf retn rol ror rdm rsdc rsldt rsm rsts sahf sal salc sar sbb scasb scasd scasq scasw sfence sgdt shl shld shr shrd sidt sldt skinit smi smint smintold smsw stc std sti stosb stosd stosq stosw str sub svdc svldt svts swapgs syscall sysenter sysexit sysret test ud0 ud1 ud2b ud2 ud2a umov verr verw fwait wbinvd wrshr wrmsr xadd xbts xchg xlatb xlat xor cmove cmovz cmovne cmovnz cmova cmovnbe cmovae cmovnb cmovb cmovnae cmovbe cmovna cmovg cmovnle cmovge cmovnl cmovl cmovnge cmovle cmovng cmovc cmovnc cmovo cmovno cmovs cmovns cmovp cmovpe cmovnp cmovpo je jz jne jnz ja jnbe jae jnb jb jnae jbe jna jg jnle jge jnl jl jnge jle jng jc jnc jo jno js jns jpo jnp jpe jp sete setz setne setnz seta setnbe setae setnb setnc setb setnae setcset setbe setna setg setnle setge setnl setl setnge setle setng sets setns seto setno setpe setp setpo setnp addps addss andnps andps cmpeqps cmpeqss cmpleps cmpless cmpltps cmpltss cmpneqps cmpneqss cmpnleps cmpnless cmpnltps cmpnltss cmpordps cmpordss cmpunordps cmpunordss cmpps cmpss comiss cvtpi2ps cvtps2pi cvtsi2ss cvtss2si cvttps2pi cvttss2si divps divss ldmxcsr maxps maxss minps minss movaps movhps movlhps movlps movhlps movmskps movntps movss movups mulps mulss orps rcpps rcpss rsqrtps rsqrtss shufps sqrtps sqrtss stmxcsr subps subss ucomiss unpckhps unpcklps xorps fxrstor fxrstor64 fxsave fxsave64 xgetbv xsetbv xsave xsave64 xsaveopt xsaveopt64 xrstor xrstor64 prefetchnta prefetcht0 prefetcht1 prefetcht2 maskmovq movntq pavgb pavgw pextrw pinsrw pmaxsw pmaxub pminsw pminub pmovmskb pmulhuw psadbw pshufw pf2iw pfnacc pfpnacc pi2fw pswapd maskmovdqu clflush movntdq movnti movntpd movdqa movdqu movdq2q movq2dq paddq pmuludq pshufd pshufhw pshuflw pslldq psrldq psubq punpckhqdq punpcklqdq addpd addsd andnpd andpd cmpeqpd cmpeqsd cmplepd cmplesd cmpltpd cmpltsd cmpneqpd cmpneqsd cmpnlepd cmpnlesd cmpnltpd cmpnltsd cmpordpd cmpordsd cmpunordpd cmpunordsd cmppd comisd cvtdq2pd cvtdq2ps cvtpd2dq cvtpd2pi cvtpd2ps cvtpi2pd cvtps2dq cvtps2pd cvtsd2si cvtsd2ss cvtsi2sd cvtss2sd cvttpd2pi cvttpd2dq cvttps2dq cvttsd2si divpd divsd maxpd maxsd minpd minsd movapd movhpd movlpd movmskpd movupd mulpd mulsd orpd shufpd sqrtpd sqrtsd subpd subsd ucomisd unpckhpd unpcklpd xorpd addsubpd addsubps haddpd haddps hsubpd hsubps lddqu movddup movshdup movsldup clgi stgi vmcall vmclear vmfunc vmlaunch vmload vmmcall vmptrld vmptrst vmread vmresume vmrun vmsave vmwrite vmxoff vmxon invept invvpid pabsb pabsw pabsd palignr phaddw phaddd phaddsw phsubw phsubd phsubsw pmaddubsw pmulhrsw pshufb psignb psignw psignd extrq insertq movntsd movntss lzcnt blendpd blendps blendvpd blendvps dppd dpps extractps insertps movntdqa mpsadbw packusdw pblendvb pblendw pcmpeqq pextrb pextrd pextrq phminposuw pinsrb pinsrd pinsrq pmaxsb pmaxsd pmaxud pmaxuw pminsb pminsd pminud pminuw pmovsxbw pmovsxbd pmovsxbq pmovsxwd pmovsxwq pmovsxdq pmovzxbw pmovzxbd pmovzxbq pmovzxwd pmovzxwq pmovzxdq pmuldq pmulld ptest roundpd roundps roundsd roundss crc32 pcmpestri pcmpestrm pcmpistri pcmpistrm pcmpgtq popcnt getsec pfrcpv pfrsqrtv movbe aesenc aesenclast aesdec aesdeclast aesimc aeskeygenassist vaesenc vaesenclast vaesdec vaesdeclast vaesimc vaeskeygenassist vaddpd vaddps vaddsd vaddss vaddsubpd vaddsubps vandpd vandps vandnpd vandnps vblendpd vblendps vblendvpd vblendvps vbroadcastss vbroadcastsd vbroadcastf128 vcmpeq_ospd vcmpeqpd vcmplt_ospd vcmpltpd vcmple_ospd vcmplepd vcmpunord_qpd vcmpunordpd vcmpneq_uqpd vcmpneqpd vcmpnlt_uspd vcmpnltpd vcmpnle_uspd vcmpnlepd vcmpord_qpd vcmpordpd vcmpeq_uqpd vcmpnge_uspd vcmpngepd vcmpngt_uspd vcmpngtpd vcmpfalse_oqpd vcmpfalsepd vcmpneq_oqpd vcmpge_ospd vcmpgepd vcmpgt_ospd vcmpgtpd vcmptrue_uqpd vcmptruepd vcmplt_oqpd vcmple_oqpd vcmpunord_spd vcmpneq_uspd vcmpnlt_uqpd vcmpnle_uqpd vcmpord_spd vcmpeq_uspd vcmpnge_uqpd vcmpngt_uqpd vcmpfalse_ospd vcmpneq_ospd vcmpge_oqpd vcmpgt_oqpd vcmptrue_uspd vcmppd vcmpeq_osps vcmpeqps vcmplt_osps vcmpltps vcmple_osps vcmpleps vcmpunord_qps vcmpunordps vcmpneq_uqps vcmpneqps vcmpnlt_usps vcmpnltps vcmpnle_usps vcmpnleps vcmpord_qps vcmpordps vcmpeq_uqps vcmpnge_usps vcmpngeps vcmpngt_usps vcmpngtps vcmpfalse_oqps vcmpfalseps vcmpneq_oqps vcmpge_osps vcmpgeps vcmpgt_osps vcmpgtps vcmptrue_uqps vcmptrueps vcmplt_oqps vcmple_oqps vcmpunord_sps vcmpneq_usps vcmpnlt_uqps vcmpnle_uqps vcmpord_sps vcmpeq_usps vcmpnge_uqps vcmpngt_uqps vcmpfalse_osps vcmpneq_osps vcmpge_oqps vcmpgt_oqps vcmptrue_usps vcmpps vcmpeq_ossd vcmpeqsd vcmplt_ossd vcmpltsd vcmple_ossd vcmplesd vcmpunord_qsd vcmpunordsd vcmpneq_uqsd vcmpneqsd vcmpnlt_ussd vcmpnltsd vcmpnle_ussd vcmpnlesd vcmpord_qsd vcmpordsd vcmpeq_uqsd vcmpnge_ussd vcmpngesd vcmpngt_ussd vcmpngtsd vcmpfalse_oqsd vcmpfalsesd vcmpneq_oqsd vcmpge_ossd vcmpgesd vcmpgt_ossd vcmpgtsd vcmptrue_uqsd vcmptruesd vcmplt_oqsd vcmple_oqsd vcmpunord_ssd vcmpneq_ussd vcmpnlt_uqsd vcmpnle_uqsd vcmpord_ssd vcmpeq_ussd vcmpnge_uqsd vcmpngt_uqsd vcmpfalse_ossd vcmpneq_ossd vcmpge_oqsd vcmpgt_oqsd vcmptrue_ussd vcmpsd vcmpeq_osss vcmpeqss vcmplt_osss vcmpltss vcmple_osss vcmpless vcmpunord_qss vcmpunordss vcmpneq_uqss vcmpneqss vcmpnlt_usss vcmpnltss vcmpnle_usss vcmpnless vcmpord_qss vcmpordss vcmpeq_uqss vcmpnge_usss vcmpngess vcmpngt_usss vcmpngtss vcmpfalse_oqss vcmpfalsess vcmpneq_oqss vcmpge_osss vcmpgess vcmpgt_osss vcmpgtss vcmptrue_uqss vcmptruess vcmplt_oqss vcmple_oqss vcmpunord_sss vcmpneq_usss vcmpnlt_uqss vcmpnle_uqss vcmpord_sss vcmpeq_usss vcmpnge_uqss vcmpngt_uqss vcmpfalse_osss vcmpneq_osss vcmpge_oqss vcmpgt_oqss vcmptrue_usss vcmpss vcomisd vcomiss vcvtdq2pd vcvtdq2ps vcvtpd2dq vcvtpd2ps vcvtps2dq vcvtps2pd vcvtsd2si vcvtsd2ss vcvtsi2sd vcvtsi2ss vcvtss2sd vcvtss2si vcvttpd2dq vcvttps2dq vcvttsd2si vcvttss2si vdivpd vdivps vdivsd vdivss vdppd vdpps vextractf128 vextractps vhaddpd vhaddps vhsubpd vhsubps vinsertf128 vinsertps vlddqu vldqqu vldmxcsr vmaskmovdqu vmaskmovps vmaskmovpd vmaxpd vmaxps vmaxsd vmaxss vminpd vminps vminsd vminss vmovapd vmovaps vmovd vmovq vmovddup vmovdqa vmovqqa vmovdqu vmovqqu vmovhlps vmovhpd vmovhps vmovlhps vmovlpd vmovlps vmovmskpd vmovmskps vmovntdq vmovntqq vmovntdqa vmovntpd vmovntps vmovsd vmovshdup vmovsldup vmovss vmovupd vmovups vmpsadbw vmulpd vmulps vmulsd vmulss vorpd vorps vpabsb vpabsw vpabsd vpacksswb vpackssdw vpackuswb vpackusdw vpaddb vpaddw vpaddd vpaddq vpaddsb vpaddsw vpaddusb vpaddusw vpalignr vpand vpandn vpavgb vpavgw vpblendvb vpblendw vpcmpestri vpcmpestrm vpcmpistri vpcmpistrm vpcmpeqb vpcmpeqw vpcmpeqd vpcmpeqq vpcmpgtb vpcmpgtw vpcmpgtd vpcmpgtq vpermilpd vpermilps vperm2f128 vpextrb vpextrw vpextrd vpextrq vphaddw vphaddd vphaddsw vphminposuw vphsubw vphsubd vphsubsw vpinsrb vpinsrw vpinsrd vpinsrq vpmaddwd vpmaddubsw vpmaxsb vpmaxsw vpmaxsd vpmaxub vpmaxuw vpmaxud vpminsb vpminsw vpminsd vpminub vpminuw vpminud vpmovmskb vpmovsxbw vpmovsxbd vpmovsxbq vpmovsxwd vpmovsxwq vpmovsxdq vpmovzxbw vpmovzxbd vpmovzxbq vpmovzxwd vpmovzxwq vpmovzxdq vpmulhuw vpmulhrsw vpmulhw vpmullw vpmulld vpmuludq vpmuldq vpor vpsadbw vpshufb vpshufd vpshufhw vpshuflw vpsignb vpsignw vpsignd vpslldq vpsrldq vpsllw vpslld vpsllq vpsraw vpsrad vpsrlw vpsrld vpsrlq vptest vpsubb vpsubw vpsubd vpsubq vpsubsb vpsubsw vpsubusb vpsubusw vpunpckhbw vpunpckhwd vpunpckhdq vpunpckhqdq vpunpcklbw vpunpcklwd vpunpckldq vpunpcklqdq vpxor vrcpps vrcpss vrsqrtps vrsqrtss vroundpd vroundps vroundsd vroundss vshufpd vshufps vsqrtpd vsqrtps vsqrtsd vsqrtss vstmxcsr vsubpd vsubps vsubsd vsubss vtestps vtestpd vucomisd vucomiss vunpckhpd vunpckhps vunpcklpd vunpcklps vxorpd vxorps vzeroall vzeroupper pclmullqlqdq pclmulhqlqdq pclmullqhqdq pclmulhqhqdq pclmulqdq vpclmullqlqdq vpclmulhqlqdq vpclmullqhqdq vpclmulhqhqdq vpclmulqdq vfmadd132ps vfmadd132pd vfmadd312ps vfmadd312pd vfmadd213ps vfmadd213pd vfmadd123ps vfmadd123pd vfmadd231ps vfmadd231pd vfmadd321ps vfmadd321pd vfmaddsub132ps vfmaddsub132pd vfmaddsub312ps vfmaddsub312pd vfmaddsub213ps vfmaddsub213pd vfmaddsub123ps vfmaddsub123pd vfmaddsub231ps vfmaddsub231pd vfmaddsub321ps vfmaddsub321pd vfmsub132ps vfmsub132pd vfmsub312ps vfmsub312pd vfmsub213ps vfmsub213pd vfmsub123ps vfmsub123pd vfmsub231ps vfmsub231pd vfmsub321ps vfmsub321pd vfmsubadd132ps vfmsubadd132pd vfmsubadd312ps vfmsubadd312pd vfmsubadd213ps vfmsubadd213pd vfmsubadd123ps vfmsubadd123pd vfmsubadd231ps vfmsubadd231pd vfmsubadd321ps vfmsubadd321pd vfnmadd132ps vfnmadd132pd vfnmadd312ps vfnmadd312pd vfnmadd213ps vfnmadd213pd vfnmadd123ps vfnmadd123pd vfnmadd231ps vfnmadd231pd vfnmadd321ps vfnmadd321pd vfnmsub132ps vfnmsub132pd vfnmsub312ps vfnmsub312pd vfnmsub213ps vfnmsub213pd vfnmsub123ps vfnmsub123pd vfnmsub231ps vfnmsub231pd vfnmsub321ps vfnmsub321pd vfmadd132ss vfmadd132sd vfmadd312ss vfmadd312sd vfmadd213ss vfmadd213sd vfmadd123ss vfmadd123sd vfmadd231ss vfmadd231sd vfmadd321ss vfmadd321sd vfmsub132ss vfmsub132sd vfmsub312ss vfmsub312sd vfmsub213ss vfmsub213sd vfmsub123ss vfmsub123sd vfmsub231ss vfmsub231sd vfmsub321ss vfmsub321sd vfnmadd132ss vfnmadd132sd vfnmadd312ss vfnmadd312sd vfnmadd213ss vfnmadd213sd vfnmadd123ss vfnmadd123sd vfnmadd231ss vfnmadd231sd vfnmadd321ss vfnmadd321sd vfnmsub132ss vfnmsub132sd vfnmsub312ss vfnmsub312sd vfnmsub213ss vfnmsub213sd vfnmsub123ss vfnmsub123sd vfnmsub231ss vfnmsub231sd vfnmsub321ss vfnmsub321sd rdfsbase rdgsbase rdrand wrfsbase wrgsbase vcvtph2ps vcvtps2ph adcx adox rdseed clac stac xstore xcryptecb xcryptcbc xcryptctr xcryptcfb xcryptofb montmul xsha1 xsha256 llwpcb slwpcb lwpval lwpins vfmaddpd vfmaddps vfmaddsd vfmaddss vfmaddsubpd vfmaddsubps vfmsubaddpd vfmsubaddps vfmsubpd vfmsubps vfmsubsd vfmsubss vfnmaddpd vfnmaddps vfnmaddsd vfnmaddss vfnmsubpd vfnmsubps vfnmsubsd vfnmsubss vfrczpd vfrczps vfrczsd vfrczss vpcmov vpcomb vpcomd vpcomq vpcomub vpcomud vpcomuq vpcomuw vpcomw vphaddbd vphaddbq vphaddbw vphadddq vphaddubd vphaddubq vphaddubw vphaddudq vphadduwd vphadduwq vphaddwd vphaddwq vphsubbw vphsubdq vphsubwd vpmacsdd vpmacsdqh vpmacsdql vpmacssdd vpmacssdqh vpmacssdql vpmacsswd vpmacssww vpmacswd vpmacsww vpmadcsswd vpmadcswd vpperm vprotb vprotd vprotq vprotw vpshab vpshad vpshaq vpshaw vpshlb vpshld vpshlq vpshlw vbroadcasti128 vpblendd vpbroadcastb vpbroadcastw vpbroadcastd vpbroadcastq vpermd vpermpd vpermps vpermq vperm2i128 vextracti128 vinserti128 vpmaskmovd vpmaskmovq vpsllvd vpsllvq vpsravd vpsrlvd vpsrlvq vgatherdpd vgatherqpd vgatherdps vgatherqps vpgatherdd vpgatherqd vpgatherdq vpgatherqq xabort xbegin xend xtest andn bextr blci blcic blsi blsic blcfill blsfill blcmsk blsmsk blsr blcs bzhi mulx pdep pext rorx sarx shlx shrx tzcnt tzmsk t1mskc valignd valignq vblendmpd vblendmps vbroadcastf32x4 vbroadcastf64x4 vbroadcasti32x4 vbroadcasti64x4 vcompresspd vcompressps vcvtpd2udq vcvtps2udq vcvtsd2usi vcvtss2usi vcvttpd2udq vcvttps2udq vcvttsd2usi vcvttss2usi vcvtudq2pd vcvtudq2ps vcvtusi2sd vcvtusi2ss vexpandpd vexpandps vextractf32x4 vextractf64x4 vextracti32x4 vextracti64x4 vfixupimmpd vfixupimmps vfixupimmsd vfixupimmss vgetexppd vgetexpps vgetexpsd vgetexpss vgetmantpd vgetmantps vgetmantsd vgetmantss vinsertf32x4 vinsertf64x4 vinserti32x4 vinserti64x4 vmovdqa32 vmovdqa64 vmovdqu32 vmovdqu64 vpabsq vpandd vpandnd vpandnq vpandq vpblendmd vpblendmq vpcmpltd vpcmpled vpcmpneqd vpcmpnltd vpcmpnled vpcmpd vpcmpltq vpcmpleq vpcmpneqq vpcmpnltq vpcmpnleq vpcmpq vpcmpequd vpcmpltud vpcmpleud vpcmpnequd vpcmpnltud vpcmpnleud vpcmpud vpcmpequq vpcmpltuq vpcmpleuq vpcmpnequq vpcmpnltuq vpcmpnleuq vpcmpuq vpcompressd vpcompressq vpermi2d vpermi2pd vpermi2ps vpermi2q vpermt2d vpermt2pd vpermt2ps vpermt2q vpexpandd vpexpandq vpmaxsq vpmaxuq vpminsq vpminuq vpmovdb vpmovdw vpmovqb vpmovqd vpmovqw vpmovsdb vpmovsdw vpmovsqb vpmovsqd vpmovsqw vpmovusdb vpmovusdw vpmovusqb vpmovusqd vpmovusqw vpord vporq vprold vprolq vprolvd vprolvq vprord vprorq vprorvd vprorvq vpscatterdd vpscatterdq vpscatterqd vpscatterqq vpsraq vpsravq vpternlogd vpternlogq vptestmd vptestmq vptestnmd vptestnmq vpxord vpxorq vrcp14pd vrcp14ps vrcp14sd vrcp14ss vrndscalepd vrndscaleps vrndscalesd vrndscaless vrsqrt14pd vrsqrt14ps vrsqrt14sd vrsqrt14ss vscalefpd vscalefps vscalefsd vscalefss vscatterdpd vscatterdps vscatterqpd vscatterqps vshuff32x4 vshuff64x2 vshufi32x4 vshufi64x2 kandnw kandw kmovw knotw kortestw korw kshiftlw kshiftrw kunpckbw kxnorw kxorw vpbroadcastmb2q vpbroadcastmw2d vpconflictd vpconflictq vplzcntd vplzcntq vexp2pd vexp2ps vrcp28pd vrcp28ps vrcp28sd vrcp28ss vrsqrt28pd vrsqrt28ps vrsqrt28sd vrsqrt28ss vgatherpf0dpd vgatherpf0dps vgatherpf0qpd vgatherpf0qps vgatherpf1dpd vgatherpf1dps vgatherpf1qpd vgatherpf1qps vscatterpf0dpd vscatterpf0dps vscatterpf0qpd vscatterpf0qps vscatterpf1dpd vscatterpf1dps vscatterpf1qpd vscatterpf1qps prefetchwt1 bndmk bndcl bndcu bndcn bndmov bndldx bndstx sha1rnds4 sha1nexte sha1msg1 sha1msg2 sha256rnds2 sha256msg1 sha256msg2 hint_nop0 hint_nop1 hint_nop2 hint_nop3 hint_nop4 hint_nop5 hint_nop6 hint_nop7 hint_nop8 hint_nop9 hint_nop10 hint_nop11 hint_nop12 hint_nop13 hint_nop14 hint_nop15 hint_nop16 hint_nop17 hint_nop18 hint_nop19 hint_nop20 hint_nop21 hint_nop22 hint_nop23 hint_nop24 hint_nop25 hint_nop26 hint_nop27 hint_nop28 hint_nop29 hint_nop30 hint_nop31 hint_nop32 hint_nop33 hint_nop34 hint_nop35 hint_nop36 hint_nop37 hint_nop38 hint_nop39 hint_nop40 hint_nop41 hint_nop42 hint_nop43 hint_nop44 hint_nop45 hint_nop46 hint_nop47 hint_nop48 hint_nop49 hint_nop50 hint_nop51 hint_nop52 hint_nop53 hint_nop54 hint_nop55 hint_nop56 hint_nop57 hint_nop58 hint_nop59 hint_nop60 hint_nop61 hint_nop62 hint_nop63\",built_in:\"ip eip rip al ah bl bh cl ch dl dh sil dil bpl spl r8b r9b r10b r11b r12b r13b r14b r15b ax bx cx dx si di bp sp r8w r9w r10w r11w r12w r13w r14w r15w eax ebx ecx edx esi edi ebp esp eip r8d r9d r10d r11d r12d r13d r14d r15d rax rbx rcx rdx rsi rdi rbp rsp r8 r9 r10 r11 r12 r13 r14 r15 cs ds es fs gs ss st st0 st1 st2 st3 st4 st5 st6 st7 mm0 mm1 mm2 mm3 mm4 mm5 mm6 mm7 xmm0 xmm1 xmm2 xmm3 xmm4 xmm5 xmm6 xmm7 xmm8 xmm9 xmm10 xmm11 xmm12 xmm13 xmm14 xmm15 xmm16 xmm17 xmm18 xmm19 xmm20 xmm21 xmm22 xmm23 xmm24 xmm25 xmm26 xmm27 xmm28 xmm29 xmm30 xmm31 ymm0 ymm1 ymm2 ymm3 ymm4 ymm5 ymm6 ymm7 ymm8 ymm9 ymm10 ymm11 ymm12 ymm13 ymm14 ymm15 ymm16 ymm17 ymm18 ymm19 ymm20 ymm21 ymm22 ymm23 ymm24 ymm25 ymm26 ymm27 ymm28 ymm29 ymm30 ymm31 zmm0 zmm1 zmm2 zmm3 zmm4 zmm5 zmm6 zmm7 zmm8 zmm9 zmm10 zmm11 zmm12 zmm13 zmm14 zmm15 zmm16 zmm17 zmm18 zmm19 zmm20 zmm21 zmm22 zmm23 zmm24 zmm25 zmm26 zmm27 zmm28 zmm29 zmm30 zmm31 k0 k1 k2 k3 k4 k5 k6 k7 bnd0 bnd1 bnd2 bnd3 cr0 cr1 cr2 cr3 cr4 cr8 dr0 dr1 dr2 dr3 dr8 tr3 tr4 tr5 tr6 tr7 r0 r1 r2 r3 r4 r5 r6 r7 r0b r1b r2b r3b r4b r5b r6b r7b r0w r1w r2w r3w r4w r5w r6w r7w r0d r1d r2d r3d r4d r5d r6d r7d r0h r1h r2h r3h r0l r1l r2l r3l r4l r5l r6l r7l r8l r9l r10l r11l r12l r13l r14l r15l db dw dd dq dt ddq do dy dz resb resw resd resq rest resdq reso resy resz incbin equ times byte word dword qword nosplit rel abs seg wrt strict near far a32 ptr\",meta:\"%define %xdefine %+ %undef %defstr %deftok %assign %strcat %strlen %substr %rotate %elif %else %endif %if %ifmacro %ifctx %ifidn %ifidni %ifid %ifnum %ifstr %iftoken %ifempty %ifenv %error %warning %fatal %rep %endrep %include %push %pop %repl %pathsearch %depend %use %arg %stacksize %local %line %comment %endcomment .nolist __FILE__ __LINE__ __SECT__ __BITS__ __OUTPUT_FORMAT__ __DATE__ __TIME__ __DATE_NUM__ __TIME_NUM__ __UTC_DATE__ __UTC_TIME__ __UTC_DATE_NUM__ __UTC_TIME_NUM__ __PASS__ struc endstruc istruc at iend align alignb sectalign daz nodaz up down zero default option assume public bits use16 use32 use64 default section segment absolute extern global common cpu float __utf16__ __utf16le__ __utf16be__ __utf32__ __utf32le__ __utf32be__ __float8__ __float16__ __float32__ __float64__ __float80m__ __float80e__ __float128l__ __float128h__ __Infinity__ __QNaN__ __SNaN__ Inf NaN QNaN SNaN float8 float16 float32 float64 float80m float80e float128l float128h __FLOAT_DAZ__ __FLOAT_ROUND__ __FLOAT__\"},c:[s.C(\";\",\"$\",{relevance:0}),{cN:\"number\",v:[{b:\"\\\\b(?:([0-9][0-9_]*)?\\\\.[0-9_]*(?:[eE][+-]?[0-9_]+)?|(0[Xx])?[0-9][0-9_]*\\\\.?[0-9_]*(?:[pP](?:[+-]?[0-9_]+)?)?)\\\\b\",relevance:0},{b:\"\\\\$[0-9][0-9A-Fa-f]*\",relevance:0},{b:\"\\\\b(?:[0-9A-Fa-f][0-9A-Fa-f_]*[Hh]|[0-9][0-9_]*[DdTt]?|[0-7][0-7_]*[QqOo]|[0-1][0-1_]*[BbYy])\\\\b\"},{b:\"\\\\b(?:0[Xx][0-9A-Fa-f_]+|0[DdTt][0-9_]+|0[QqOo][0-7_]+|0[BbYy][0-1_]+)\\\\b\"}]},s.QSM,{cN:\"string\",v:[{b:\"'\",e:\"[^\\\\\\\\]'\"},{b:\"`\",e:\"[^\\\\\\\\]`\"}],relevance:0},{cN:\"symbol\",v:[{b:\"^\\\\s*[A-Za-z._?][A-Za-z0-9_$#@~.?]*(:|\\\\s+label)\"},{b:\"^\\\\s*%%[A-Za-z0-9_$#@~.?]*:\"}],relevance:0},{cN:\"subst\",b:\"%[0-9]+\",relevance:0},{cN:\"subst\",b:\"%!S+\",relevance:0},{cN:\"meta\",b:/^\\s*\\.[\\w_-]+/}]}});hljs.registerLanguage(\"cpp\",function(e){function t(e){return\"(?:\"+e+\")?\"}var r=\"decltype\\\\(auto\\\\)\",a=\"[a-zA-Z_]\\\\w*::\",i=\"(\"+r+\"|\"+t(a)+\"[a-zA-Z_]\\\\w*\"+t(\"<.*?>\")+\")\",c={cN:\"keyword\",b:\"\\\\b[a-z\\\\d_]*_t\\\\b\"},s={cN:\"string\",v:[{b:'(u8?|U|L)?\"',e:'\"',i:\"\\\\n\",c:[e.BE]},{b:\"(u8?|U|L)?'(\\\\\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4,8}|[0-7]{3}|\\\\S)|.)\",e:\"'\",i:\".\"},{b:/(?:u8?|U|L)?R\"([^()\\\\ ]{0,16})\\((?:.|\\n)*?\\)\\1\"/}]},n={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},o={cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma _Pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(s,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},l={cN:\"title\",b:t(a)+e.IR,relevance:0},u=t(a)+e.IR+\"\\\\s*\\\\(\",p={keyword:\"int float while private char char8_t char16_t char32_t catch import module export virtual operator sizeof dynamic_cast|10 typedef const_cast|10 const for static_cast|10 union namespace unsigned long volatile static protected bool template mutable if public friend do goto auto void enum else break extern using asm case typeid wchar_tshort reinterpret_cast|10 default double register explicit signed typename try this switch continue inline delete alignas alignof constexpr consteval constinit decltype concept co_await co_return co_yield requires noexcept static_assert thread_local restrict final override atomic_bool atomic_char atomic_schar atomic_uchar atomic_short atomic_ushort atomic_int atomic_uint atomic_long atomic_ulong atomic_llong atomic_ullong new throw return and and_eq bitand bitor compl not not_eq or or_eq xor xor_eq\",built_in:\"std string wstring cin cout cerr clog stdin stdout stderr stringstream istringstream ostringstream auto_ptr deque list queue stack vector map set bitset multiset multimap unordered_set unordered_map unordered_multiset unordered_multimap array shared_ptr abort terminate abs acos asin atan2 atan calloc ceil cosh cos exit exp fabs floor fmod fprintf fputs free frexp fscanf future isalnum isalpha iscntrl isdigit isgraph islower isprint ispunct isspace isupper isxdigit tolower toupper labs ldexp log10 log malloc realloc memchr memcmp memcpy memset modf pow printf putchar puts scanf sinh sin snprintf sprintf sqrt sscanf strcat strchr strcmp strcpy strcspn strlen strncat strncmp strncpy strpbrk strrchr strspn strstr tanh tan vfprintf vprintf vsprintf endl initializer_list unique_ptr _Bool complex _Complex imaginary _Imaginary\",literal:\"true false nullptr NULL\"},m=[c,e.CLCM,e.CBCM,n,s],d={v:[{b:/=/,e:/;/},{b:/\\(/,e:/\\)/},{bK:\"new throw return else\",e:/;/}],k:p,c:m.concat([{b:/\\(/,e:/\\)/,k:p,c:m.concat([\"self\"]),relevance:0}]),relevance:0},b={cN:\"function\",b:\"(\"+i+\"[\\\\*&\\\\s]+)+\"+u,rB:!0,e:/[{;=]/,eE:!0,k:p,i:/[^\\w\\s\\*&:<>]/,c:[{b:r,k:p,relevance:0},{b:u,rB:!0,c:[l],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,k:p,relevance:0,c:[e.CLCM,e.CBCM,s,n,c,{b:/\\(/,e:/\\)/,k:p,relevance:0,c:[\"self\",e.CLCM,e.CBCM,s,n,c]}]},c,e.CLCM,e.CBCM,o]};return{aliases:[\"c\",\"cc\",\"h\",\"c++\",\"h++\",\"hpp\",\"hh\",\"hxx\",\"cxx\"],k:p,i:\"</\",c:[].concat(d,b,m,[o,{b:\"\\\\b(deque|list|queue|stack|vector|map|set|bitset|multiset|multimap|unordered_map|unordered_set|unordered_multiset|unordered_multimap|array)\\\\s*<\",e:\">\",k:p,c:[\"self\",c]},{b:e.IR+\"::\",k:p},{cN:\"class\",bK:\"class struct\",e:/[{;:]/,c:[{b:/</,e:/>/,c:[\"self\"]},e.TM]}]),exports:{preprocessor:o,strings:s,k:p}}});hljs.registerLanguage(\"arduino\",function(e){var t=\"boolean byte word String\",r=\"setup loopKeyboardController MouseController SoftwareSerial EthernetServer EthernetClient LiquidCrystal RobotControl GSMVoiceCall EthernetUDP EsploraTFT HttpClient RobotMotor WiFiClient GSMScanner FileSystem Scheduler GSMServer YunClient YunServer IPAddress GSMClient GSMModem Keyboard Ethernet Console GSMBand Esplora Stepper Process WiFiUDP GSM_SMS Mailbox USBHost Firmata PImage Client Server GSMPIN FileIO Bridge Serial EEPROM Stream Mouse Audio Servo File Task GPRS WiFi Wire TFT GSM SPI SD runShellCommandAsynchronously analogWriteResolution retrieveCallingNumber printFirmwareVersion analogReadResolution sendDigitalPortPair noListenOnLocalhost readJoystickButton setFirmwareVersion readJoystickSwitch scrollDisplayRight getVoiceCallStatus scrollDisplayLeft writeMicroseconds delayMicroseconds beginTransmission getSignalStrength runAsynchronously getAsynchronously listenOnLocalhost getCurrentCarrier readAccelerometer messageAvailable sendDigitalPorts lineFollowConfig countryNameWrite runShellCommand readStringUntil rewindDirectory readTemperature setClockDivider readLightSensor endTransmission analogReference detachInterrupt countryNameRead attachInterrupt encryptionType readBytesUntil robotNameWrite readMicrophone robotNameRead cityNameWrite userNameWrite readJoystickY readJoystickX mouseReleased openNextFile scanNetworks noInterrupts digitalWrite beginSpeaker mousePressed isActionDone mouseDragged displayLogos noAutoscroll addParameter remoteNumber getModifiers keyboardRead userNameRead waitContinue processInput parseCommand printVersion readNetworks writeMessage blinkVersion cityNameRead readMessage setDataMode parsePacket isListening setBitOrder beginPacket isDirectory motorsWrite drawCompass digitalRead clearScreen serialEvent rightToLeft setTextSize leftToRight requestFrom keyReleased compassRead analogWrite interrupts WiFiServer disconnect playMelody parseFloat autoscroll getPINUsed setPINUsed setTimeout sendAnalog readSlider analogRead beginWrite createChar motorsStop keyPressed tempoWrite readButton subnetMask debugPrint macAddress writeGreen randomSeed attachGPRS readString sendString remotePort releaseAll mouseMoved background getXChange getYChange answerCall getResult voiceCall endPacket constrain getSocket writeJSON getButton available connected findUntil readBytes exitValue readGreen writeBlue startLoop IPAddress isPressed sendSysex pauseMode gatewayIP setCursor getOemKey tuneWrite noDisplay loadImage switchPIN onRequest onReceive changePIN playFile noBuffer parseInt overflow checkPIN knobRead beginTFT bitClear updateIR bitWrite position writeRGB highByte writeRed setSpeed readBlue noStroke remoteIP transfer shutdown hangCall beginSMS endWrite attached maintain noCursor checkReg checkPUK shiftOut isValid shiftIn pulseIn connect println localIP pinMode getIMEI display noBlink process getBand running beginSD drawBMP lowByte setBand release bitRead prepare pointTo readRed setMode noFill remove listen stroke detach attach noTone exists buffer height bitSet circle config cursor random IRread setDNS endSMS getKey micros millis begin print write ready flush width isPIN blink clear press mkdir rmdir close point yield image BSSID click delay read text move peek beep rect line open seek fill size turn stop home find step tone sqrt RSSI SSID end bit tan cos sin pow map abs max min get run put\",i=\"DIGITAL_MESSAGE FIRMATA_STRING ANALOG_MESSAGE REPORT_DIGITAL REPORT_ANALOG INPUT_PULLUP SET_PIN_MODE INTERNAL2V56 SYSTEM_RESET LED_BUILTIN INTERNAL1V1 SYSEX_START INTERNAL EXTERNAL DEFAULT OUTPUT INPUT HIGH LOW\",o=e.requireLanguage(\"cpp\").rawDefinition(),a=o.k;return a.keyword+=\" \"+t,a.literal+=\" \"+i,a.built_in+=\" \"+r,o});hljs.registerLanguage(\"nginx\",function(e){var r={cN:\"variable\",v:[{b:/\\$\\d+/},{b:/\\$\\{/,e:/}/},{b:\"[\\\\$\\\\@]\"+e.UIR}]},b={eW:!0,l:\"[a-z/_]+\",k:{literal:\"on off yes no true false none blocked debug info notice warn error crit select break last permanent redirect kqueue rtsig epoll poll /dev/poll\"},relevance:0,i:\"=>\",c:[e.HCM,{cN:\"string\",c:[e.BE,r],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/}]},{b:\"([a-z]+):/\",e:\"\\\\s\",eW:!0,eE:!0,c:[r]},{cN:\"regexp\",c:[e.BE,r],v:[{b:\"\\\\s\\\\^\",e:\"\\\\s|{|;\",rE:!0},{b:\"~\\\\*?\\\\s+\",e:\"\\\\s|{|;\",rE:!0},{b:\"\\\\*(\\\\.[a-z\\\\-]+)+\"},{b:\"([a-z\\\\-]+\\\\.)+\\\\*\"}]},{cN:\"number\",b:\"\\\\b\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}\\\\.\\\\d{1,3}(:\\\\d{1,5})?\\\\b\"},{cN:\"number\",b:\"\\\\b\\\\d+[kKmMgGdshdwy]*\\\\b\",relevance:0},r]};return{aliases:[\"nginxconf\"],c:[e.HCM,{b:e.UIR+\"\\\\s+{\",rB:!0,e:\"{\",c:[{cN:\"section\",b:e.UIR}],relevance:0},{b:e.UIR+\"\\\\s\",e:\";|{\",rB:!0,c:[{cN:\"attribute\",b:e.UIR,starts:b}],relevance:0}],i:\"[^\\\\s\\\\}]\"}});hljs.registerLanguage(\"xml\",function(e){var c={cN:\"symbol\",b:\"&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;\"},s={b:\"\\\\s\",c:[{cN:\"meta-keyword\",b:\"#?[a-z_][a-z1-9_-]+\",i:\"\\\\n\"}]},a=e.inherit(s,{b:\"\\\\(\",e:\"\\\\)\"}),t=e.inherit(e.ASM,{cN:\"meta-string\"}),l=e.inherit(e.QSM,{cN:\"meta-string\"}),r={eW:!0,i:/</,relevance:0,c:[{cN:\"attr\",b:\"[A-Za-z0-9\\\\._:-]+\",relevance:0},{b:/=\\s*/,relevance:0,c:[{cN:\"string\",endsParent:!0,v:[{b:/\"/,e:/\"/,c:[c]},{b:/'/,e:/'/,c:[c]},{b:/[^\\s\"'=<>`]+/}]}]}]};return{aliases:[\"html\",\"xhtml\",\"rss\",\"atom\",\"xjb\",\"xsd\",\"xsl\",\"plist\",\"wsf\",\"svg\"],cI:!0,c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",relevance:10,c:[s,l,t,a,{b:\"\\\\[\",e:\"\\\\]\",c:[{cN:\"meta\",b:\"<![a-z]\",e:\">\",c:[s,a,l,t]}]}]},e.C(\"\\x3c!--\",\"--\\x3e\",{relevance:10}),{b:\"<\\\\!\\\\[CDATA\\\\[\",e:\"\\\\]\\\\]>\",relevance:10},c,{cN:\"meta\",b:/<\\?xml/,e:/\\?>/,relevance:10},{b:/<\\?(php)?/,e:/\\?>/,sL:\"php\",c:[{b:\"/\\\\*\",e:\"\\\\*/\",skip:!0},{b:'b\"',e:'\"',skip:!0},{b:\"b'\",e:\"'\",skip:!0},e.inherit(e.ASM,{i:null,cN:null,c:null,skip:!0}),e.inherit(e.QSM,{i:null,cN:null,c:null,skip:!0})]},{cN:\"tag\",b:\"<style(?=\\\\s|>)\",e:\">\",k:{name:\"style\"},c:[r],starts:{e:\"</style>\",rE:!0,sL:[\"css\",\"xml\"]}},{cN:\"tag\",b:\"<script(?=\\\\s|>)\",e:\">\",k:{name:\"script\"},c:[r],starts:{e:\"<\\/script>\",rE:!0,sL:[\"actionscript\",\"javascript\",\"handlebars\",\"xml\"]}},{cN:\"tag\",b:\"</?\",e:\"/?>\",c:[{cN:\"name\",b:/[^\\/><\\s]+/,relevance:0},r]}]}});hljs.registerLanguage(\"markdown\",function(e){return{aliases:[\"md\",\"mkdown\",\"mkd\"],c:[{cN:\"section\",v:[{b:\"^#{1,6}\",e:\"$\"},{b:\"^.+?\\\\n[=-]{2,}$\"}]},{b:\"<\",e:\">\",sL:\"xml\",relevance:0},{cN:\"bullet\",b:\"^\\\\s*([*+-]|(\\\\d+\\\\.))\\\\s+\"},{cN:\"strong\",b:\"[*_]{2}.+?[*_]{2}\"},{cN:\"emphasis\",v:[{b:\"\\\\*.+?\\\\*\"},{b:\"_.+?_\",relevance:0}]},{cN:\"quote\",b:\"^>\\\\s+\",e:\"$\"},{cN:\"code\",v:[{b:\"^```\\\\w*\\\\s*$\",e:\"^```[ ]*$\"},{b:\"`.+?`\"},{b:\"^( {4}|\\\\t)\",e:\"$\",relevance:0}]},{b:\"^[-\\\\*]{3,}\",e:\"$\"},{b:\"\\\\[.+?\\\\][\\\\(\\\\[].*?[\\\\)\\\\]]\",rB:!0,c:[{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,rE:!0,relevance:0},{cN:\"link\",b:\"\\\\]\\\\(\",e:\"\\\\)\",eB:!0,eE:!0},{cN:\"symbol\",b:\"\\\\]\\\\[\",e:\"\\\\]\",eB:!0,eE:!0}],relevance:10},{b:/^\\[[^\\n]+\\]:/,rB:!0,c:[{cN:\"symbol\",b:/\\[/,e:/\\]/,eB:!0,eE:!0},{cN:\"link\",b:/:\\s*/,e:/$/,eB:!0}]}]}});hljs.registerLanguage(\"properties\",function(e){var r=\"[ \\\\t\\\\f]*\",t=\"(\"+r+\"[:=]\"+r+\"|[ \\\\t\\\\f]+)\",n=\"([^\\\\\\\\\\\\W:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",a=\"([^\\\\\\\\:= \\\\t\\\\f\\\\n]|\\\\\\\\.)+\",c={e:t,relevance:0,starts:{cN:\"string\",e:/$/,relevance:0,c:[{b:\"\\\\\\\\\\\\n\"}]}};return{cI:!0,i:/\\S/,c:[e.C(\"^\\\\s*[!#]\",\"$\"),{b:n+t,rB:!0,c:[{cN:\"attr\",b:n,endsParent:!0,relevance:0}],starts:c},{b:a+t,rB:!0,relevance:0,c:[{cN:\"meta\",b:a,endsParent:!0,relevance:0}],starts:c},{cN:\"attr\",relevance:0,b:a+r+\"$\"}]}});hljs.registerLanguage(\"bash\",function(e){var t={cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},a={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,t,{cN:\"variable\",b:/\\$\\(/,e:/\\)/,c:[e.BE]}]};return{aliases:[\"sh\",\"zsh\"],l:/\\b-?[a-z\\._]+\\b/,k:{keyword:\"if then else elif fi for while in do done case esac function\",literal:\"true false\",built_in:\"break cd continue eval exec exit export getopts hash pwd readonly return shift test times trap umask unset alias bind builtin caller command declare echo enable help let local logout mapfile printf read readarray source type typeset ulimit unalias set shopt autoload bg bindkey bye cap chdir clone comparguments compcall compctl compdescribe compfiles compgroups compquote comptags comptry compvalues dirs disable disown echotc echoti emulate fc fg float functions getcap getln history integer jobs kill limit log noglob popd print pushd pushln rehash sched setcap setopt stat suspend ttyctl unfunction unhash unlimit unsetopt vared wait whence where which zcompile zformat zftp zle zmodload zparseopts zprof zpty zregexparse zsocket zstyle ztcp\",_:\"-ne -eq -lt -gt -f -d -e -s -l -a\"},c:[{cN:\"meta\",b:/^#![^\\n]+sh\\s*$/,relevance:10},{cN:\"function\",b:/\\w[\\w\\d_]*\\s*\\(\\s*\\)\\s*\\{/,rB:!0,c:[e.inherit(e.TM,{b:/\\w[\\w\\d_]*/})],relevance:0},e.HCM,a,{cN:\"\",b:/\\\\\"/},{cN:\"string\",b:/'/,e:/'/},t]}});hljs.registerLanguage(\"dockerfile\",function(e){return{aliases:[\"docker\"],cI:!0,k:\"from maintainer expose env arg user onbuild stopsignal\",c:[e.HCM,e.ASM,e.QSM,e.NM,{bK:\"run cmd entrypoint volume add copy workdir label healthcheck shell\",starts:{e:/[^\\\\]$/,sL:\"bash\"}}],i:\"</\"}});hljs.registerLanguage(\"python\",function(e){var r={keyword:\"and elif is global as in if from raise for except finally print import pass return exec else break not with class assert yield try while continue del or def lambda async await nonlocal|10\",built_in:\"Ellipsis NotImplemented\",literal:\"False None True\"},b={cN:\"meta\",b:/^(>>>|\\.\\.\\.) /},c={cN:\"subst\",b:/\\{/,e:/\\}/,k:r,i:/#/},a={b:/\\{\\{/,relevance:0},l={cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,c:[e.BE,b],relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,c:[e.BE,b],relevance:10},{b:/(fr|rf|f)'''/,e:/'''/,c:[e.BE,b,a,c]},{b:/(fr|rf|f)\"\"\"/,e:/\"\"\"/,c:[e.BE,b,a,c]},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},{b:/(fr|rf|f)'/,e:/'/,c:[e.BE,a,c]},{b:/(fr|rf|f)\"/,e:/\"/,c:[e.BE,a,c]},e.ASM,e.QSM]},n={cN:\"number\",relevance:0,v:[{b:e.BNR+\"[lLjJ]?\"},{b:\"\\\\b(0o[0-7]+)[lLjJ]?\"},{b:e.CNR+\"[lLjJ]?\"}]},i={cN:\"params\",b:/\\(/,e:/\\)/,c:[\"self\",b,n,l,e.HCM]};return c.c=[l,n,b],{aliases:[\"py\",\"gyp\",\"ipython\"],k:r,i:/(<\\/|->|\\?)|=>/,c:[b,n,{bK:\"if\",relevance:0},l,e.HCM,{v:[{cN:\"function\",bK:\"def\"},{cN:\"class\",bK:\"class\"}],e:/:/,i:/[${=;\\n,]/,c:[e.UTM,i,{b:/->/,eW:!0,k:\"None\"}]},{cN:\"meta\",b:/^[\\t ]*@/,e:/$/},{b:/\\b(print|exec)\\(/}]}});hljs.registerLanguage(\"ini\",function(e){var b={cN:\"number\",relevance:0,v:[{b:/([\\+\\-]+)?[\\d]+_[\\d_]+/},{b:e.NR}]},a=e.C();a.v=[{b:/;/,e:/$/},{b:/#/,e:/$/}];var c={cN:\"variable\",v:[{b:/\\$[\\w\\d\"][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},r={cN:\"literal\",b:/\\bon|off|true|false|yes|no\\b/},n={cN:\"string\",c:[e.BE],v:[{b:\"'''\",e:\"'''\",relevance:10},{b:'\"\"\"',e:'\"\"\"',relevance:10},{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]};return{aliases:[\"toml\"],cI:!0,i:/\\S/,c:[a,{cN:\"section\",b:/\\[+/,e:/\\]+/},{b:/^[a-z0-9\\[\\]_\\.-]+(?=\\s*=\\s*)/,cN:\"attr\",starts:{e:/$/,c:[a,{b:/\\[/,e:/\\]/,c:[a,r,c,n,b,\"self\"],relevance:0},r,c,n,b]}}]}});hljs.registerLanguage(\"diff\",function(e){return{aliases:[\"patch\"],c:[{cN:\"meta\",relevance:10,v:[{b:/^@@ +\\-\\d+,\\d+ +\\+\\d+,\\d+ +@@$/},{b:/^\\*\\*\\* +\\d+,\\d+ +\\*\\*\\*\\*$/},{b:/^\\-\\-\\- +\\d+,\\d+ +\\-\\-\\-\\-$/}]},{cN:\"comment\",v:[{b:/Index: /,e:/$/},{b:/={3,}/,e:/$/},{b:/^\\-{3}/,e:/$/},{b:/^\\*{3} /,e:/$/},{b:/^\\+{3}/,e:/$/},{b:/^\\*{15}$/}]},{cN:\"addition\",b:\"^\\\\+\",e:\"$\"},{cN:\"deletion\",b:\"^\\\\-\",e:\"$\"},{cN:\"addition\",b:\"^\\\\!\",e:\"$\"}]}});hljs.registerLanguage(\"http\",function(e){var t=\"HTTP/[0-9\\\\.]+\";return{aliases:[\"https\"],i:\"\\\\S\",c:[{b:\"^\"+t,e:\"$\",c:[{cN:\"number\",b:\"\\\\b\\\\d{3}\\\\b\"}]},{b:\"^[A-Z]+ (.*?) \"+t+\"$\",rB:!0,e:\"$\",c:[{cN:\"string\",b:\" \",e:\" \",eB:!0,eE:!0},{b:t},{cN:\"keyword\",b:\"[A-Z]+\"}]},{cN:\"attribute\",b:\"^\\\\w\",e:\": \",eE:!0,i:\"\\\\n|\\\\s|=\",starts:{e:\"$\",relevance:0}},{b:\"\\\\n\\\\n\",starts:{sL:[],eW:!0}}]}});hljs.registerLanguage(\"sql\",function(e){var t=e.C(\"--\",\"$\");return{cI:!0,i:/[<>{}*]/,c:[{bK:\"begin end start commit rollback savepoint lock alter create drop rename call delete do handler insert load replace select truncate update set show pragma grant merge describe use explain help declare prepare execute deallocate release unlock purge reset change stop analyze cache flush optimize repair kill install uninstall checksum restore check backup revoke comment values with\",e:/;/,eW:!0,l:/[\\w\\.]+/,k:{keyword:\"as abort abs absolute acc acce accep accept access accessed accessible account acos action activate add addtime admin administer advanced advise aes_decrypt aes_encrypt after agent aggregate ali alia alias all allocate allow alter always analyze ancillary and anti any anydata anydataset anyschema anytype apply archive archived archivelog are as asc ascii asin assembly assertion associate asynchronous at atan atn2 attr attri attrib attribu attribut attribute attributes audit authenticated authentication authid authors auto autoallocate autodblink autoextend automatic availability avg backup badfile basicfile before begin beginning benchmark between bfile bfile_base big bigfile bin binary_double binary_float binlog bit_and bit_count bit_length bit_or bit_xor bitmap blob_base block blocksize body both bound bucket buffer_cache buffer_pool build bulk by byte byteordermark bytes cache caching call calling cancel capacity cascade cascaded case cast catalog category ceil ceiling chain change changed char_base char_length character_length characters characterset charindex charset charsetform charsetid check checksum checksum_agg child choose chr chunk class cleanup clear client clob clob_base clone close cluster_id cluster_probability cluster_set clustering coalesce coercibility col collate collation collect colu colum column column_value columns columns_updated comment commit compact compatibility compiled complete composite_limit compound compress compute concat concat_ws concurrent confirm conn connec connect connect_by_iscycle connect_by_isleaf connect_by_root connect_time connection consider consistent constant constraint constraints constructor container content contents context contributors controlfile conv convert convert_tz corr corr_k corr_s corresponding corruption cos cost count count_big counted covar_pop covar_samp cpu_per_call cpu_per_session crc32 create creation critical cross cube cume_dist curdate current current_date current_time current_timestamp current_user cursor curtime customdatum cycle data database databases datafile datafiles datalength date_add date_cache date_format date_sub dateadd datediff datefromparts datename datepart datetime2fromparts day day_to_second dayname dayofmonth dayofweek dayofyear days db_role_change dbtimezone ddl deallocate declare decode decompose decrement decrypt deduplicate def defa defau defaul default defaults deferred defi defin define degrees delayed delegate delete delete_all delimited demand dense_rank depth dequeue des_decrypt des_encrypt des_key_file desc descr descri describ describe descriptor deterministic diagnostics difference dimension direct_load directory disable disable_all disallow disassociate discardfile disconnect diskgroup distinct distinctrow distribute distributed div do document domain dotnet double downgrade drop dumpfile duplicate duration each edition editionable editions element ellipsis else elsif elt empty enable enable_all enclosed encode encoding encrypt end end-exec endian enforced engine engines enqueue enterprise entityescaping eomonth error errors escaped evalname evaluate event eventdata events except exception exceptions exchange exclude excluding execu execut execute exempt exists exit exp expire explain explode export export_set extended extent external external_1 external_2 externally extract failed failed_login_attempts failover failure far fast feature_set feature_value fetch field fields file file_name_convert filesystem_like_logging final finish first first_value fixed flash_cache flashback floor flush following follows for forall force foreign form forma format found found_rows freelist freelists freepools fresh from from_base64 from_days ftp full function general generated get get_format get_lock getdate getutcdate global global_name globally go goto grant grants greatest group group_concat group_id grouping grouping_id groups gtid_subtract guarantee guard handler hash hashkeys having hea head headi headin heading heap help hex hierarchy high high_priority hosts hour hours http id ident_current ident_incr ident_seed identified identity idle_time if ifnull ignore iif ilike ilm immediate import in include including increment index indexes indexing indextype indicator indices inet6_aton inet6_ntoa inet_aton inet_ntoa infile initial initialized initially initrans inmemory inner innodb input insert install instance instantiable instr interface interleaved intersect into invalidate invisible is is_free_lock is_ipv4 is_ipv4_compat is_not is_not_null is_used_lock isdate isnull isolation iterate java join json json_exists keep keep_duplicates key keys kill language large last last_day last_insert_id last_value lateral lax lcase lead leading least leaves left len lenght length less level levels library like like2 like4 likec limit lines link list listagg little ln load load_file lob lobs local localtime localtimestamp locate locator lock locked log log10 log2 logfile logfiles logging logical logical_reads_per_call logoff logon logs long loop low low_priority lower lpad lrtrim ltrim main make_set makedate maketime managed management manual map mapping mask master master_pos_wait match matched materialized max maxextents maximize maxinstances maxlen maxlogfiles maxloghistory maxlogmembers maxsize maxtrans md5 measures median medium member memcompress memory merge microsecond mid migration min minextents minimum mining minus minute minutes minvalue missing mod mode model modification modify module monitoring month months mount move movement multiset mutex name name_const names nan national native natural nav nchar nclob nested never new newline next nextval no no_write_to_binlog noarchivelog noaudit nobadfile nocheck nocompress nocopy nocycle nodelay nodiscardfile noentityescaping noguarantee nokeep nologfile nomapping nomaxvalue nominimize nominvalue nomonitoring none noneditionable nonschema noorder nopr nopro noprom nopromp noprompt norely noresetlogs noreverse normal norowdependencies noschemacheck noswitch not nothing notice notnull notrim novalidate now nowait nth_value nullif nulls num numb numbe nvarchar nvarchar2 object ocicoll ocidate ocidatetime ociduration ociinterval ociloblocator ocinumber ociref ocirefcursor ocirowid ocistring ocitype oct octet_length of off offline offset oid oidindex old on online only opaque open operations operator optimal optimize option optionally or oracle oracle_date oradata ord ordaudio orddicom orddoc order ordimage ordinality ordvideo organization orlany orlvary out outer outfile outline output over overflow overriding package pad parallel parallel_enable parameters parent parse partial partition partitions pascal passing password password_grace_time password_lock_time password_reuse_max password_reuse_time password_verify_function patch path patindex pctincrease pctthreshold pctused pctversion percent percent_rank percentile_cont percentile_disc performance period period_add period_diff permanent physical pi pipe pipelined pivot pluggable plugin policy position post_transaction pow power pragma prebuilt precedes preceding precision prediction prediction_cost prediction_details prediction_probability prediction_set prepare present preserve prior priority private private_sga privileges procedural procedure procedure_analyze processlist profiles project prompt protection public publishingservername purge quarter query quick quiesce quota quotename radians raise rand range rank raw read reads readsize rebuild record records recover recovery recursive recycle redo reduced ref reference referenced references referencing refresh regexp_like register regr_avgx regr_avgy regr_count regr_intercept regr_r2 regr_slope regr_sxx regr_sxy reject rekey relational relative relaylog release release_lock relies_on relocate rely rem remainder rename repair repeat replace replicate replication required reset resetlogs resize resource respect restore restricted result result_cache resumable resume retention return returning returns reuse reverse revoke right rlike role roles rollback rolling rollup round row row_count rowdependencies rowid rownum rows rtrim rules safe salt sample save savepoint sb1 sb2 sb4 scan schema schemacheck scn scope scroll sdo_georaster sdo_topo_geometry search sec_to_time second seconds section securefile security seed segment select self semi sequence sequential serializable server servererror session session_user sessions_per_user set sets settings sha sha1 sha2 share shared shared_pool short show shrink shutdown si_averagecolor si_colorhistogram si_featurelist si_positionalcolor si_stillimage si_texture siblings sid sign sin size size_t sizes skip slave sleep smalldatetimefromparts smallfile snapshot some soname sort soundex source space sparse spfile split sql sql_big_result sql_buffer_result sql_cache sql_calc_found_rows sql_small_result sql_variant_property sqlcode sqldata sqlerror sqlname sqlstate sqrt square standalone standby start starting startup statement static statistics stats_binomial_test stats_crosstab stats_ks_test stats_mode stats_mw_test stats_one_way_anova stats_t_test_ stats_t_test_indep stats_t_test_one stats_t_test_paired stats_wsr_test status std stddev stddev_pop stddev_samp stdev stop storage store stored str str_to_date straight_join strcmp strict string struct stuff style subdate subpartition subpartitions substitutable substr substring subtime subtring_index subtype success sum suspend switch switchoffset switchover sync synchronous synonym sys sys_xmlagg sysasm sysaux sysdate sysdatetimeoffset sysdba sysoper system system_user sysutcdatetime table tables tablespace tablesample tan tdo template temporary terminated tertiary_weights test than then thread through tier ties time time_format time_zone timediff timefromparts timeout timestamp timestampadd timestampdiff timezone_abbr timezone_minute timezone_region to to_base64 to_date to_days to_seconds todatetimeoffset trace tracking transaction transactional translate translation treat trigger trigger_nestlevel triggers trim truncate try_cast try_convert try_parse type ub1 ub2 ub4 ucase unarchived unbounded uncompress under undo unhex unicode uniform uninstall union unique unix_timestamp unknown unlimited unlock unnest unpivot unrecoverable unsafe unsigned until untrusted unusable unused update updated upgrade upped upper upsert url urowid usable usage use use_stored_outlines user user_data user_resources users using utc_date utc_timestamp uuid uuid_short validate validate_password_strength validation valist value values var var_samp varcharc vari varia variab variabl variable variables variance varp varraw varrawc varray verify version versions view virtual visible void wait wallet warning warnings week weekday weekofyear wellformed when whene whenev wheneve whenever where while whitespace window with within without work wrapped xdb xml xmlagg xmlattributes xmlcast xmlcolattval xmlelement xmlexists xmlforest xmlindex xmlnamespaces xmlpi xmlquery xmlroot xmlschema xmlserialize xmltable xmltype xor year year_to_month years yearweek\",literal:\"true false null unknown\",built_in:\"array bigint binary bit blob bool boolean char character date dec decimal float int int8 integer interval number numeric real record serial serial8 smallint text time timestamp tinyint varchar varchar2 varying void\"},c:[{cN:\"string\",b:\"'\",e:\"'\",c:[{b:\"''\"}]},{cN:\"string\",b:'\"',e:'\"',c:[{b:'\"\"'}]},{cN:\"string\",b:\"`\",e:\"`\"},e.CNM,e.CBCM,t,e.HCM]},e.CBCM,t,e.HCM]}});hljs.registerLanguage(\"vala\",function(e){return{k:{keyword:\"char uchar unichar int uint long ulong short ushort int8 int16 int32 int64 uint8 uint16 uint32 uint64 float double bool struct enum string void weak unowned owned async signal static abstract interface override virtual delegate if while do for foreach else switch case break default return try catch public private protected internal using new this get set const stdout stdin stderr var\",built_in:\"DBus GLib CCode Gee Object Gtk Posix\",literal:\"false true null\"},c:[{cN:\"class\",bK:\"class interface namespace\",e:\"{\",eE:!0,i:\"[^,:\\\\n\\\\s\\\\.]\",c:[e.UTM]},e.CLCM,e.CBCM,{cN:\"string\",b:'\"\"\"',e:'\"\"\"',relevance:5},e.ASM,e.QSM,e.CNM,{cN:\"meta\",b:\"^#\",e:\"$\",relevance:2}]}});hljs.registerLanguage(\"asciidoc\",function(e){return{aliases:[\"adoc\"],c:[e.C(\"^/{4,}\\\\n\",\"\\\\n/{4,}$\",{relevance:10}),e.C(\"^//\",\"$\",{relevance:0}),{cN:\"title\",b:\"^\\\\.\\\\w.*$\"},{b:\"^[=\\\\*]{4,}\\\\n\",e:\"\\\\n^[=\\\\*]{4,}$\",relevance:10},{cN:\"section\",relevance:10,v:[{b:\"^(={1,5}) .+?( \\\\1)?$\"},{b:\"^[^\\\\[\\\\]\\\\n]+?\\\\n[=\\\\-~\\\\^\\\\+]{2,}$\"}]},{cN:\"meta\",b:\"^:.+?:\",e:\"\\\\s\",eE:!0,relevance:10},{cN:\"meta\",b:\"^\\\\[.+?\\\\]$\",relevance:0},{cN:\"quote\",b:\"^_{4,}\\\\n\",e:\"\\\\n_{4,}$\",relevance:10},{cN:\"code\",b:\"^[\\\\-\\\\.]{4,}\\\\n\",e:\"\\\\n[\\\\-\\\\.]{4,}$\",relevance:10},{b:\"^\\\\+{4,}\\\\n\",e:\"\\\\n\\\\+{4,}$\",c:[{b:\"<\",e:\">\",sL:\"xml\",relevance:0}],relevance:10},{cN:\"bullet\",b:\"^(\\\\*+|\\\\-+|\\\\.+|[^\\\\n]+?::)\\\\s+\"},{cN:\"symbol\",b:\"^(NOTE|TIP|IMPORTANT|WARNING|CAUTION):\\\\s+\",relevance:10},{cN:\"strong\",b:\"\\\\B\\\\*(?![\\\\*\\\\s])\",e:\"(\\\\n{2}|\\\\*)\",c:[{b:\"\\\\\\\\*\\\\w\",relevance:0}]},{cN:\"emphasis\",b:\"\\\\B'(?!['\\\\s])\",e:\"(\\\\n{2}|')\",c:[{b:\"\\\\\\\\'\\\\w\",relevance:0}],relevance:0},{cN:\"emphasis\",b:\"_(?![_\\\\s])\",e:\"(\\\\n{2}|_)\",relevance:0},{cN:\"string\",v:[{b:\"``.+?''\"},{b:\"`.+?'\"}]},{cN:\"code\",b:\"(`.+?`|\\\\+.+?\\\\+)\",relevance:0},{cN:\"code\",b:\"^[ \\\\t]\",e:\"$\",relevance:0},{b:\"^'{3,}[ \\\\t]*$\",relevance:10},{b:\"(link:)?(http|https|ftp|file|irc|image:?):\\\\S+\\\\[.*?\\\\]\",rB:!0,c:[{b:\"(link|image:?):\",relevance:0},{cN:\"link\",b:\"\\\\w\",e:\"[^\\\\[]+\",relevance:0},{cN:\"string\",b:\"\\\\[\",e:\"\\\\]\",eB:!0,eE:!0,relevance:0}],relevance:10}]}});hljs.registerLanguage(\"json\",function(e){var i={literal:\"true false null\"},n=[e.CLCM,e.CBCM],c=[e.QSM,e.CNM],r={e:\",\",eW:!0,eE:!0,c:c,k:i},t={b:\"{\",e:\"}\",c:[{cN:\"attr\",b:/\"/,e:/\"/,c:[e.BE],i:\"\\\\n\"},e.inherit(r,{b:/:/})].concat(n),i:\"\\\\S\"},a={b:\"\\\\[\",e:\"\\\\]\",c:[e.inherit(r)],i:\"\\\\S\"};return c.push(t,a),n.forEach(function(e){c.push(e)}),{c:c,k:i,i:\"\\\\S\"}});hljs.registerLanguage(\"rust\",function(e){var t=\"([ui](8|16|32|64|128|size)|f(32|64))?\",r=\"drop i8 i16 i32 i64 i128 isize u8 u16 u32 u64 u128 usize f32 f64 str char bool Box Option Result String Vec Copy Send Sized Sync Drop Fn FnMut FnOnce ToOwned Clone Debug PartialEq PartialOrd Eq Ord AsRef AsMut Into From Default Iterator Extend IntoIterator DoubleEndedIterator ExactSizeIterator SliceConcatExt ToString assert! assert_eq! bitflags! bytes! cfg! col! concat! concat_idents! debug_assert! debug_assert_eq! env! panic! file! format! format_args! include_bin! include_str! line! local_data_key! module_path! option_env! print! println! select! stringify! try! unimplemented! unreachable! vec! write! writeln! macro_rules! assert_ne! debug_assert_ne!\";return{aliases:[\"rs\"],k:{keyword:\"abstract as async await become box break const continue crate do dyn else enum extern false final fn for if impl in let loop macro match mod move mut override priv pub ref return self Self static struct super trait true try type typeof unsafe unsized use virtual where while yield\",literal:\"true false Some None Ok Err\",built_in:r},l:e.IR+\"!?\",i:\"</\",c:[e.CLCM,e.C(\"/\\\\*\",\"\\\\*/\",{c:[\"self\"]}),e.inherit(e.QSM,{b:/b?\"/,i:null}),{cN:\"string\",v:[{b:/r(#*)\"(.|\\n)*?\"\\1(?!#)/},{b:/b?'\\\\?(x\\w{2}|u\\w{4}|U\\w{8}|.)'/}]},{cN:\"symbol\",b:/'[a-zA-Z_][a-zA-Z0-9_]*/},{cN:\"number\",v:[{b:\"\\\\b0b([01_]+)\"+t},{b:\"\\\\b0o([0-7_]+)\"+t},{b:\"\\\\b0x([A-Fa-f0-9_]+)\"+t},{b:\"\\\\b(\\\\d[\\\\d_]*(\\\\.[0-9_]+)?([eE][+-]?[0-9_]+)?)\"+t}],relevance:0},{cN:\"function\",bK:\"fn\",e:\"(\\\\(|<)\",eE:!0,c:[e.UTM]},{cN:\"meta\",b:\"#\\\\!?\\\\[\",e:\"\\\\]\",c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{cN:\"class\",bK:\"type\",e:\";\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"\\\\S\"},{cN:\"class\",bK:\"trait enum struct union\",e:\"{\",c:[e.inherit(e.UTM,{endsParent:!0})],i:\"[\\\\w\\\\d]\"},{b:e.IR+\"::\",k:{built_in:r}},{b:\"->\"}]}});hljs.registerLanguage(\"awk\",function(e){return{k:{keyword:\"BEGIN END if else while do for in break continue delete next nextfile function func exit|10\"},c:[{cN:\"variable\",v:[{b:/\\$[\\w\\d#@][\\w\\d_]*/},{b:/\\$\\{(.*?)}/}]},{cN:\"string\",c:[e.BE],v:[{b:/(u|b)?r?'''/,e:/'''/,relevance:10},{b:/(u|b)?r?\"\"\"/,e:/\"\"\"/,relevance:10},{b:/(u|r|ur)'/,e:/'/,relevance:10},{b:/(u|r|ur)\"/,e:/\"/,relevance:10},{b:/(b|br)'/,e:/'/},{b:/(b|br)\"/,e:/\"/},e.ASM,e.QSM]},e.RM,e.HCM,e.NM]}});hljs.registerLanguage(\"java\",function(e){var a=\"false synchronized int abstract float private char boolean var static null if const for true while long strictfp finally protected import native final void enum else break transient catch instanceof byte super volatile case assert short package default double public try this switch continue throws protected public private module requires exports do\",t={cN:\"number\",b:\"\\\\b(0[bB]([01]+[01_]+[01]+|[01]+)|0[xX]([a-fA-F0-9]+[a-fA-F0-9_]+[a-fA-F0-9]+|[a-fA-F0-9]+)|(([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+)(\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))?|\\\\.([\\\\d]+[\\\\d_]+[\\\\d]+|[\\\\d]+))([eE][-+]?\\\\d+)?)[lLfF]?\",relevance:0};return{aliases:[\"jsp\"],k:a,i:/<\\/|#/,c:[e.C(\"/\\\\*\\\\*\",\"\\\\*/\",{relevance:0,c:[{b:/\\w+@/,relevance:0},{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.CLCM,e.CBCM,e.ASM,e.QSM,{cN:\"class\",bK:\"class interface\",e:/[{;=]/,eE:!0,k:\"class interface\",i:/[:\"\\[\\]]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"new throw return else\",relevance:0},{cN:\"function\",b:\"([À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(<[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*(\\\\s*,\\\\s*[À-ʸa-zA-Z_$][À-ʸa-zA-Z_$0-9]*)*>)?\\\\s+)+\"+e.UIR+\"\\\\s*\\\\(\",rB:!0,e:/[{;=]/,eE:!0,k:a,c:[{b:e.UIR+\"\\\\s*\\\\(\",rB:!0,relevance:0,c:[e.UTM]},{cN:\"params\",b:/\\(/,e:/\\)/,k:a,relevance:0,c:[e.ASM,e.QSM,e.CNM,e.CBCM]},e.CLCM,e.CBCM]},t,{cN:\"meta\",b:\"@[A-Za-z]+\"}]}});hljs.registerLanguage(\"cs\",function(e){var a={keyword:\"abstract as base bool break byte case catch char checked const continue decimal default delegate do double enum event explicit extern finally fixed float for foreach goto if implicit in int interface internal is lock long object operator out override params private protected public readonly ref sbyte sealed short sizeof stackalloc static string struct switch this try typeof uint ulong unchecked unsafe ushort using virtual void volatile while add alias ascending async await by descending dynamic equals from get global group into join let nameof on orderby partial remove select set value var when where yield\",literal:\"null false true\"},i={cN:\"number\",v:[{b:\"\\\\b(0b[01']+)\"},{b:\"(-?)\\\\b([\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)(u|U|l|L|ul|UL|f|F|b|B)\"},{b:\"(-?)(\\\\b0[xX][a-fA-F0-9']+|(\\\\b[\\\\d']+(\\\\.[\\\\d']*)?|\\\\.[\\\\d']+)([eE][-+]?[\\\\d']+)?)\"}],relevance:0},c={cN:\"string\",b:'@\"',e:'\"',c:[{b:'\"\"'}]},r=e.inherit(c,{i:/\\n/}),n={cN:\"subst\",b:\"{\",e:\"}\",k:a},t=e.inherit(n,{i:/\\n/}),s={cN:\"string\",b:/\\$\"/,e:'\"',i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},e.BE,t]},l={cN:\"string\",b:/\\$@\"/,e:'\"',c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},n]},b=e.inherit(l,{i:/\\n/,c:[{b:\"{{\"},{b:\"}}\"},{b:'\"\"'},t]});n.c=[l,s,c,e.ASM,e.QSM,i,e.CBCM],t.c=[b,s,r,e.ASM,e.QSM,i,e.inherit(e.CBCM,{i:/\\n/})];var o={v:[l,s,c,e.ASM,e.QSM]},d=e.IR+\"(<\"+e.IR+\"(\\\\s*,\\\\s*\"+e.IR+\")*>)?(\\\\[\\\\])?\";return{aliases:[\"csharp\",\"c#\"],k:a,i:/::/,c:[e.C(\"///\",\"$\",{rB:!0,c:[{cN:\"doctag\",v:[{b:\"///\",relevance:0},{b:\"\\x3c!--|--\\x3e\"},{b:\"</?\",e:\">\"}]}]}),e.CLCM,e.CBCM,{cN:\"meta\",b:\"#\",e:\"$\",k:{\"meta-keyword\":\"if else elif endif define undef warning error line region endregion pragma checksum\"}},o,i,{bK:\"class interface\",e:/[{;=]/,i:/[^\\s:,]/,c:[e.TM,e.CLCM,e.CBCM]},{bK:\"namespace\",e:/[{;=]/,i:/[^\\s:]/,c:[e.inherit(e.TM,{b:\"[a-zA-Z](\\\\.?\\\\w)*\"}),e.CLCM,e.CBCM]},{cN:\"meta\",b:\"^\\\\s*\\\\[\",eB:!0,e:\"\\\\]\",eE:!0,c:[{cN:\"meta-string\",b:/\"/,e:/\"/}]},{bK:\"new return throw await else\",relevance:0},{cN:\"function\",b:\"(\"+d+\"\\\\s+)+\"+e.IR+\"\\\\s*\\\\(\",rB:!0,e:/\\s*[{;=]/,eE:!0,k:a,c:[{b:e.IR+\"\\\\s*\\\\(\",rB:!0,c:[e.TM],relevance:0},{cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:a,relevance:0,c:[o,i,e.CBCM]},e.CLCM,e.CBCM]}]}});hljs.registerLanguage(\"mathematica\",function(e){return{aliases:[\"mma\",\"wl\"],l:\"(\\\\$|\\\\b)\"+e.IR+\"\\\\b\",k:\"AASTriangle AbelianGroup Abort AbortKernels AbortProtect AbortScheduledTask Above Abs AbsArg AbsArgPlot Absolute AbsoluteCorrelation AbsoluteCorrelationFunction AbsoluteCurrentValue AbsoluteDashing AbsoluteFileName AbsoluteOptions AbsolutePointSize AbsoluteThickness AbsoluteTime AbsoluteTiming AcceptanceThreshold AccountingForm Accumulate Accuracy AccuracyGoal ActionDelay ActionMenu ActionMenuBox ActionMenuBoxOptions Activate Active ActiveClassification ActiveClassificationObject ActiveItem ActivePrediction ActivePredictionObject ActiveStyle AcyclicGraphQ AddOnHelpPath AddSides AddTo AddToSearchIndex AddUsers AdjacencyGraph AdjacencyList AdjacencyMatrix AdjustmentBox AdjustmentBoxOptions AdjustTimeSeriesForecast AdministrativeDivisionData AffineHalfSpace AffineSpace AffineStateSpaceModel AffineTransform After AggregatedEntityClass AggregationLayer AircraftData AirportData AirPressureData AirTemperatureData AiryAi AiryAiPrime AiryAiZero AiryBi AiryBiPrime AiryBiZero AlgebraicIntegerQ AlgebraicNumber AlgebraicNumberDenominator AlgebraicNumberNorm AlgebraicNumberPolynomial AlgebraicNumberTrace AlgebraicRules AlgebraicRulesData Algebraics AlgebraicUnitQ Alignment AlignmentMarker AlignmentPoint All AllowAdultContent AllowedCloudExtraParameters AllowedCloudParameterExtensions AllowedDimensions AllowedFrequencyRange AllowedHeads AllowGroupClose AllowIncomplete AllowInlineCells AllowKernelInitialization AllowLooseGrammar AllowReverseGroupClose AllowScriptLevelChange AllTrue Alphabet AlphabeticOrder AlphabeticSort AlphaChannel AlternateImage AlternatingFactorial AlternatingGroup AlternativeHypothesis Alternatives AltitudeMethod AmbientLight AmbiguityFunction AmbiguityList Analytic AnatomyData AnatomyForm AnatomyPlot3D AnatomySkinStyle AnatomyStyling AnchoredSearch And AndersonDarlingTest AngerJ AngleBisector AngleBracket AnglePath AnglePath3D AngleVector AngularGauge Animate AnimationCycleOffset AnimationCycleRepetitions AnimationDirection AnimationDisplayTime AnimationRate AnimationRepetitions AnimationRunning AnimationRunTime AnimationTimeIndex Animator AnimatorBox AnimatorBoxOptions AnimatorElements Annotate Annotation AnnotationDelete AnnotationNames AnnotationRules AnnotationValue Annuity AnnuityDue Annulus AnomalyDetection AnomalyDetectorFunction Anonymous Antialiasing AntihermitianMatrixQ Antisymmetric AntisymmetricMatrixQ Antonyms AnyOrder AnySubset AnyTrue Apart ApartSquareFree APIFunction Appearance AppearanceElements AppearanceRules AppellF1 Append AppendCheck AppendLayer AppendTo ApplicationIdentificationKey Apply ApplySides ArcCos ArcCosh ArcCot ArcCoth ArcCsc ArcCsch ArcCurvature ARCHProcess ArcLength ArcSec ArcSech ArcSin ArcSinDistribution ArcSinh ArcTan ArcTanh Area Arg ArgMax ArgMin ArgumentCountQ ARIMAProcess ArithmeticGeometricMean ARMAProcess Around AroundReplace ARProcess Array ArrayComponents ArrayDepth ArrayFilter ArrayFlatten ArrayMesh ArrayPad ArrayPlot ArrayQ ArrayResample ArrayReshape ArrayRules Arrays Arrow Arrow3DBox ArrowBox Arrowheads ASATriangle Ask AskAppend AskConfirm AskDisplay AskedQ AskedValue AskFunction AskState AskTemplateDisplay AspectRatio AspectRatioFixed Assert AssociateTo Association AssociationFormat AssociationMap AssociationQ AssociationThread AssumeDeterministic Assuming Assumptions AstronomicalData AsymptoticDSolveValue AsymptoticEqual AsymptoticEquivalent AsymptoticGreater AsymptoticGreaterEqual AsymptoticIntegrate AsymptoticLess AsymptoticLessEqual AsymptoticOutputTracker AsymptoticRSolveValue AsymptoticSolve AsymptoticSum Asynchronous AsynchronousTaskObject AsynchronousTasks Atom AtomCoordinates AtomCount AtomDiagramCoordinates AtomList AtomQ AttentionLayer Attributes Audio AudioAmplify AudioAnnotate AudioAnnotationLookup AudioBlockMap AudioCapture AudioChannelAssignment AudioChannelCombine AudioChannelMix AudioChannels AudioChannelSeparate AudioData AudioDelay AudioDelete AudioDevice AudioDistance AudioFade AudioFrequencyShift AudioGenerator AudioIdentify AudioInputDevice AudioInsert AudioIntervals AudioJoin AudioLabel AudioLength AudioLocalMeasurements AudioLooping AudioLoudness AudioMeasurements AudioNormalize AudioOutputDevice AudioOverlay AudioPad AudioPan AudioPartition AudioPause AudioPitchShift AudioPlay AudioPlot AudioQ AudioRecord AudioReplace AudioResample AudioReverb AudioSampleRate AudioSpectralMap AudioSpectralTransformation AudioSplit AudioStop AudioStream AudioStreams AudioTimeStretch AudioTrim AudioType AugmentedPolyhedron AugmentedSymmetricPolynomial Authenticate Authentication AuthenticationDialog AutoAction Autocomplete AutocompletionFunction AutoCopy AutocorrelationTest AutoDelete AutoEvaluateEvents AutoGeneratedPackage AutoIndent AutoIndentSpacings AutoItalicWords AutoloadPath AutoMatch Automatic AutomaticImageSize AutoMultiplicationSymbol AutoNumberFormatting AutoOpenNotebooks AutoOpenPalettes AutoQuoteCharacters AutoRefreshed AutoRemove AutorunSequencing AutoScaling AutoScroll AutoSpacing AutoStyleOptions AutoStyleWords AutoSubmitting Axes AxesEdge AxesLabel AxesOrigin AxesStyle AxiomaticTheory AxisBabyMonsterGroupB Back Background BackgroundAppearance BackgroundTasksSettings Backslash Backsubstitution Backward Ball Band BandpassFilter BandstopFilter BarabasiAlbertGraphDistribution BarChart BarChart3D BarcodeImage BarcodeRecognize BaringhausHenzeTest BarLegend BarlowProschanImportance BarnesG BarOrigin BarSpacing BartlettHannWindow BartlettWindow BaseDecode BaseEncode BaseForm Baseline BaselinePosition BaseStyle BasicRecurrentLayer BatchNormalizationLayer BatchSize BatesDistribution BattleLemarieWavelet BayesianMaximization BayesianMaximizationObject BayesianMinimization BayesianMinimizationObject Because BeckmannDistribution Beep Before Begin BeginDialogPacket BeginFrontEndInteractionPacket BeginPackage BellB BellY Below BenfordDistribution BeniniDistribution BenktanderGibratDistribution BenktanderWeibullDistribution BernoulliB BernoulliDistribution BernoulliGraphDistribution BernoulliProcess BernsteinBasis BesselFilterModel BesselI BesselJ BesselJZero BesselK BesselY BesselYZero Beta BetaBinomialDistribution BetaDistribution BetaNegativeBinomialDistribution BetaPrimeDistribution BetaRegularized Between BetweennessCentrality BeveledPolyhedron BezierCurve BezierCurve3DBox BezierCurve3DBoxOptions BezierCurveBox BezierCurveBoxOptions BezierFunction BilateralFilter Binarize BinaryDeserialize BinaryDistance BinaryFormat BinaryImageQ BinaryRead BinaryReadList BinarySerialize BinaryWrite BinCounts BinLists Binomial BinomialDistribution BinomialProcess BinormalDistribution BiorthogonalSplineWavelet BipartiteGraphQ BiquadraticFilterModel BirnbaumImportance BirnbaumSaundersDistribution BitAnd BitClear BitGet BitLength BitNot BitOr BitSet BitShiftLeft BitShiftRight BitXor BiweightLocation BiweightMidvariance Black BlackmanHarrisWindow BlackmanNuttallWindow BlackmanWindow Blank BlankForm BlankNullSequence BlankSequence Blend Block BlockchainAddressData BlockchainBase BlockchainBlockData BlockchainContractValue BlockchainData BlockchainGet BlockchainKeyEncode BlockchainPut BlockchainTokenData BlockchainTransaction BlockchainTransactionData BlockchainTransactionSign BlockchainTransactionSubmit BlockMap BlockRandom BlomqvistBeta BlomqvistBetaTest Blue Blur BodePlot BohmanWindow Bold Bond BondCount BondList BondQ Bookmarks Boole BooleanConsecutiveFunction BooleanConvert BooleanCountingFunction BooleanFunction BooleanGraph BooleanMaxterms BooleanMinimize BooleanMinterms BooleanQ BooleanRegion Booleans BooleanStrings BooleanTable BooleanVariables BorderDimensions BorelTannerDistribution Bottom BottomHatTransform BoundaryDiscretizeGraphics BoundaryDiscretizeRegion BoundaryMesh BoundaryMeshRegion BoundaryMeshRegionQ BoundaryStyle BoundedRegionQ BoundingRegion Bounds Box BoxBaselineShift BoxData BoxDimensions Boxed Boxes BoxForm BoxFormFormatTypes BoxFrame BoxID BoxMargins BoxMatrix BoxObject BoxRatios BoxRotation BoxRotationPoint BoxStyle BoxWhiskerChart Bra BracketingBar BraKet BrayCurtisDistance BreadthFirstScan Break BridgeData BrightnessEqualize BroadcastStationData Brown BrownForsytheTest BrownianBridgeProcess BrowserCategory BSplineBasis BSplineCurve BSplineCurve3DBox BSplineCurve3DBoxOptions BSplineCurveBox BSplineCurveBoxOptions BSplineFunction BSplineSurface BSplineSurface3DBox BSplineSurface3DBoxOptions BubbleChart BubbleChart3D BubbleScale BubbleSizes BuildingData BulletGauge BusinessDayQ ButterflyGraph ButterworthFilterModel Button ButtonBar ButtonBox ButtonBoxOptions ButtonCell ButtonContents ButtonData ButtonEvaluator ButtonExpandable ButtonFrame ButtonFunction ButtonMargins ButtonMinHeight ButtonNote ButtonNotebook ButtonSource ButtonStyle ButtonStyleMenuListing Byte ByteArray ByteArrayFormat ByteArrayQ ByteArrayToString ByteCount ByteOrderingC CachedValue CacheGraphics CachePersistence CalendarConvert CalendarData CalendarType Callout CalloutMarker CalloutStyle CallPacket CanberraDistance Cancel CancelButton CandlestickChart CanonicalGraph CanonicalizePolygon CanonicalizePolyhedron CanonicalName CanonicalWarpingCorrespondence CanonicalWarpingDistance CantorMesh CantorStaircase Cap CapForm CapitalDifferentialD Capitalize CapsuleShape CaptureRunning CardinalBSplineBasis CarlemanLinearize CarmichaelLambda CaseOrdering Cases CaseSensitive Cashflow Casoratian Catalan CatalanNumber Catch Catenate CatenateLayer CauchyDistribution CauchyWindow CayleyGraph CDF CDFDeploy CDFInformation CDFWavelet Ceiling CelestialSystem Cell CellAutoOverwrite CellBaseline CellBoundingBox CellBracketOptions CellChangeTimes CellContents CellContext CellDingbat CellDynamicExpression CellEditDuplicate CellElementsBoundingBox CellElementSpacings CellEpilog CellEvaluationDuplicate CellEvaluationFunction CellEvaluationLanguage CellEventActions CellFrame CellFrameColor CellFrameLabelMargins CellFrameLabels CellFrameMargins CellGroup CellGroupData CellGrouping CellGroupingRules CellHorizontalScrolling CellID CellLabel CellLabelAutoDelete CellLabelMargins CellLabelPositioning CellLabelStyle CellLabelTemplate CellMargins CellObject CellOpen CellPrint CellProlog Cells CellSize CellStyle CellTags CellularAutomaton CensoredDistribution Censoring Center CenterArray CenterDot CentralFeature CentralMoment CentralMomentGeneratingFunction Cepstrogram CepstrogramArray CepstrumArray CForm ChampernowneNumber ChangeOptions ChannelBase ChannelBrokerAction ChannelDatabin ChannelHistoryLength ChannelListen ChannelListener ChannelListeners ChannelListenerWait ChannelObject ChannelPreSendFunction ChannelReceiverFunction ChannelSend ChannelSubscribers ChanVeseBinarize Character CharacterCounts CharacterEncoding CharacterEncodingsPath CharacteristicFunction CharacteristicPolynomial CharacterName CharacterRange Characters ChartBaseStyle ChartElementData ChartElementDataFunction ChartElementFunction ChartElements ChartLabels ChartLayout ChartLegends ChartStyle Chebyshev1FilterModel Chebyshev2FilterModel ChebyshevDistance ChebyshevT ChebyshevU Check CheckAbort CheckAll Checkbox CheckboxBar CheckboxBox CheckboxBoxOptions ChemicalData ChessboardDistance ChiDistribution ChineseRemainder ChiSquareDistribution ChoiceButtons ChoiceDialog CholeskyDecomposition Chop ChromaticityPlot ChromaticityPlot3D ChromaticPolynomial Circle CircleBox CircleDot CircleMinus CirclePlus CirclePoints CircleThrough CircleTimes CirculantGraph CircularOrthogonalMatrixDistribution CircularQuaternionMatrixDistribution CircularRealMatrixDistribution CircularSymplecticMatrixDistribution CircularUnitaryMatrixDistribution Circumsphere CityData ClassifierFunction ClassifierInformation ClassifierMeasurements ClassifierMeasurementsObject Classify ClassPriors Clear ClearAll ClearAttributes ClearCookies ClearPermissions ClearSystemCache ClebschGordan ClickPane Clip ClipboardNotebook ClipFill ClippingStyle ClipPlanes ClipPlanesStyle ClipRange Clock ClockGauge ClockwiseContourIntegral Close Closed CloseKernels ClosenessCentrality Closing ClosingAutoSave ClosingEvent CloudAccountData CloudBase CloudConnect CloudDeploy CloudDirectory CloudDisconnect CloudEvaluate CloudExport CloudExpression CloudExpressions CloudFunction CloudGet CloudImport CloudLoggingData CloudObject CloudObjectInformation CloudObjectInformationData CloudObjectNameFormat CloudObjects CloudObjectURLType CloudPublish CloudPut CloudRenderingMethod CloudSave CloudShare CloudSubmit CloudSymbol CloudUnshare ClusterClassify ClusterDissimilarityFunction ClusteringComponents ClusteringTree CMYKColor Coarse CodeAssistOptions Coefficient CoefficientArrays CoefficientDomain CoefficientList CoefficientRules CoifletWavelet Collect Colon ColonForm ColorBalance ColorCombine ColorConvert ColorCoverage ColorData ColorDataFunction ColorDetect ColorDistance ColorFunction ColorFunctionScaling Colorize ColorNegate ColorOutput ColorProfileData ColorQ ColorQuantize ColorReplace ColorRules ColorSelectorSettings ColorSeparate ColorSetter ColorSetterBox ColorSetterBoxOptions ColorSlider ColorsNear ColorSpace ColorToneMapping Column ColumnAlignments ColumnBackgrounds ColumnForm ColumnLines ColumnsEqual ColumnSpacings ColumnWidths CombinedEntityClass CombinerFunction CometData CommonDefaultFormatTypes Commonest CommonestFilter CommonName CommonUnits CommunityBoundaryStyle CommunityGraphPlot CommunityLabels CommunityRegionStyle CompanyData CompatibleUnitQ CompilationOptions CompilationTarget Compile Compiled CompiledCodeFunction CompiledFunction CompilerOptions Complement CompleteGraph CompleteGraphQ CompleteKaryTree CompletionsListPacket Complex Complexes ComplexExpand ComplexInfinity ComplexityFunction ComplexListPlot ComplexPlot ComplexPlot3D ComponentMeasurements ComponentwiseContextMenu Compose ComposeList ComposeSeries CompositeQ Composition CompoundElement CompoundExpression CompoundPoissonDistribution CompoundPoissonProcess CompoundRenewalProcess Compress CompressedData ComputeUncertainty Condition ConditionalExpression Conditioned Cone ConeBox ConfidenceLevel ConfidenceRange ConfidenceTransform ConfigurationPath ConformAudio ConformImages Congruent ConicHullRegion ConicHullRegion3DBox ConicHullRegionBox ConicOptimization Conjugate ConjugateTranspose Conjunction Connect ConnectedComponents ConnectedGraphComponents ConnectedGraphQ ConnectedMeshComponents ConnectedMoleculeComponents ConnectedMoleculeQ ConnectionSettings ConnectLibraryCallbackFunction ConnectSystemModelComponents ConnesWindow ConoverTest ConsoleMessage ConsoleMessagePacket ConsolePrint Constant ConstantArray ConstantArrayLayer ConstantImage ConstantPlusLayer ConstantRegionQ Constants ConstantTimesLayer ConstellationData ConstrainedMax ConstrainedMin Construct Containing ContainsAll ContainsAny ContainsExactly ContainsNone ContainsOnly ContentFieldOptions ContentLocationFunction ContentObject ContentPadding ContentsBoundingBox ContentSelectable ContentSize Context ContextMenu Contexts ContextToFileName Continuation Continue ContinuedFraction ContinuedFractionK ContinuousAction ContinuousMarkovProcess ContinuousTask ContinuousTimeModelQ ContinuousWaveletData ContinuousWaveletTransform ContourDetect ContourGraphics ContourIntegral ContourLabels ContourLines ContourPlot ContourPlot3D Contours ContourShading ContourSmoothing ContourStyle ContraharmonicMean ContrastiveLossLayer Control ControlActive ControlAlignment ControlGroupContentsBox ControllabilityGramian ControllabilityMatrix ControllableDecomposition ControllableModelQ ControllerDuration ControllerInformation ControllerInformationData ControllerLinking ControllerManipulate ControllerMethod ControllerPath ControllerState ControlPlacement ControlsRendering ControlType Convergents ConversionOptions ConversionRules ConvertToBitmapPacket ConvertToPostScript ConvertToPostScriptPacket ConvexHullMesh ConvexPolygonQ ConvexPolyhedronQ ConvolutionLayer Convolve ConwayGroupCo1 ConwayGroupCo2 ConwayGroupCo3 CookieFunction Cookies CoordinateBoundingBox CoordinateBoundingBoxArray CoordinateBounds CoordinateBoundsArray CoordinateChartData CoordinatesToolOptions CoordinateTransform CoordinateTransformData CoprimeQ Coproduct CopulaDistribution Copyable CopyDatabin CopyDirectory CopyFile CopyTag CopyToClipboard CornerFilter CornerNeighbors Correlation CorrelationDistance CorrelationFunction CorrelationTest Cos Cosh CoshIntegral CosineDistance CosineWindow CosIntegral Cot Coth Count CountDistinct CountDistinctBy CounterAssignments CounterBox CounterBoxOptions CounterClockwiseContourIntegral CounterEvaluator CounterFunction CounterIncrements CounterStyle CounterStyleMenuListing CountRoots CountryData Counts CountsBy Covariance CovarianceEstimatorFunction CovarianceFunction CoxianDistribution CoxIngersollRossProcess CoxModel CoxModelFit CramerVonMisesTest CreateArchive CreateCellID CreateChannel CreateCloudExpression CreateDatabin CreateDataSystemModel CreateDialog CreateDirectory CreateDocument CreateFile CreateIntermediateDirectories CreateManagedLibraryExpression CreateNotebook CreatePalette CreatePalettePacket CreatePermissionsGroup CreateScheduledTask CreateSearchIndex CreateSystemModel CreateTemporary CreateUUID CreateWindow CriterionFunction CriticalityFailureImportance CriticalitySuccessImportance CriticalSection Cross CrossEntropyLossLayer CrossingCount CrossingDetect CrossingPolygon CrossMatrix Csc Csch CTCLossLayer Cube CubeRoot Cubics Cuboid CuboidBox Cumulant CumulantGeneratingFunction Cup CupCap Curl CurlyDoubleQuote CurlyQuote CurrencyConvert CurrentDate CurrentImage CurrentlySpeakingPacket CurrentNotebookImage CurrentScreenImage CurrentValue Curry CurvatureFlowFilter CurveClosed Cyan CycleGraph CycleIndexPolynomial Cycles CyclicGroup Cyclotomic Cylinder CylinderBox CylindricalDecompositionD DagumDistribution DamData DamerauLevenshteinDistance DampingFactor Darker Dashed Dashing DatabaseConnect DatabaseDisconnect DatabaseReference Databin DatabinAdd DatabinRemove Databins DatabinUpload DataCompression DataDistribution DataRange DataReversed Dataset Date DateBounds Dated DateDelimiters DateDifference DatedUnit DateFormat DateFunction DateHistogram DateList DateListLogPlot DateListPlot DateListStepPlot DateObject DateObjectQ DateOverlapsQ DatePattern DatePlus DateRange DateReduction DateString DateTicksFormat DateValue DateWithinQ DaubechiesWavelet DavisDistribution DawsonF DayCount DayCountConvention DayHemisphere DaylightQ DayMatchQ DayName DayNightTerminator DayPlus DayRange DayRound DeBruijnGraph DeBruijnSequence Debug DebugTag Decapitalize Decimal DecimalForm DeclareKnownSymbols DeclarePackage Decompose DeconvolutionLayer Decrement Decrypt DecryptFile DedekindEta DeepSpaceProbeData Default DefaultAxesStyle DefaultBaseStyle DefaultBoxStyle DefaultButton DefaultColor DefaultControlPlacement DefaultDuplicateCellStyle DefaultDuration DefaultElement DefaultFaceGridsStyle DefaultFieldHintStyle DefaultFont DefaultFontProperties DefaultFormatType DefaultFormatTypeForStyle DefaultFrameStyle DefaultFrameTicksStyle DefaultGridLinesStyle DefaultInlineFormatType DefaultInputFormatType DefaultLabelStyle DefaultMenuStyle DefaultNaturalLanguage DefaultNewCellStyle DefaultNewInlineCellStyle DefaultNotebook DefaultOptions DefaultOutputFormatType DefaultPrintPrecision DefaultStyle DefaultStyleDefinitions DefaultTextFormatType DefaultTextInlineFormatType DefaultTicksStyle DefaultTooltipStyle DefaultValue DefaultValues Defer DefineExternal DefineInputStreamMethod DefineOutputStreamMethod DefineResourceFunction Definition Degree DegreeCentrality DegreeGraphDistribution DegreeLexicographic DegreeReverseLexicographic DEigensystem DEigenvalues Deinitialization Del DelaunayMesh Delayed Deletable Delete DeleteAnomalies DeleteBorderComponents DeleteCases DeleteChannel DeleteCloudExpression DeleteContents DeleteDirectory DeleteDuplicates DeleteDuplicatesBy DeleteFile DeleteMissing DeleteObject DeletePermissionsKey DeleteSearchIndex DeleteSmallComponents DeleteStopwords DeleteWithContents DeletionWarning DelimitedArray DelimitedSequence Delimiter DelimiterFlashTime DelimiterMatching Delimiters DeliveryFunction Dendrogram Denominator DensityGraphics DensityHistogram DensityPlot DensityPlot3D DependentVariables Deploy Deployed Depth DepthFirstScan Derivative DerivativeFilter DerivedKey DescriptorStateSpace DesignMatrix DestroyAfterEvaluation Det DeviceClose DeviceConfigure DeviceExecute DeviceExecuteAsynchronous DeviceObject DeviceOpen DeviceOpenQ DeviceRead DeviceReadBuffer DeviceReadLatest DeviceReadList DeviceReadTimeSeries Devices DeviceStreams DeviceWrite DeviceWriteBuffer DGaussianWavelet DiacriticalPositioning Diagonal DiagonalizableMatrixQ DiagonalMatrix DiagonalMatrixQ Dialog DialogIndent DialogInput DialogLevel DialogNotebook DialogProlog DialogReturn DialogSymbols Diamond DiamondMatrix DiceDissimilarity DictionaryLookup DictionaryWordQ DifferenceDelta DifferenceOrder DifferenceQuotient DifferenceRoot DifferenceRootReduce Differences DifferentialD DifferentialRoot DifferentialRootReduce DifferentiatorFilter DigitalSignature DigitBlock DigitBlockMinimum DigitCharacter DigitCount DigitQ DihedralAngle DihedralGroup Dilation DimensionalCombinations DimensionalMeshComponents DimensionReduce DimensionReducerFunction DimensionReduction Dimensions DiracComb DiracDelta DirectedEdge DirectedEdges DirectedGraph DirectedGraphQ DirectedInfinity Direction Directive Directory DirectoryName DirectoryQ DirectoryStack DirichletBeta DirichletCharacter DirichletCondition DirichletConvolve DirichletDistribution DirichletEta DirichletL DirichletLambda DirichletTransform DirichletWindow DisableConsolePrintPacket DisableFormatting DiscreteChirpZTransform DiscreteConvolve DiscreteDelta DiscreteHadamardTransform DiscreteIndicator DiscreteLimit DiscreteLQEstimatorGains DiscreteLQRegulatorGains DiscreteLyapunovSolve DiscreteMarkovProcess DiscreteMaxLimit DiscreteMinLimit DiscretePlot DiscretePlot3D DiscreteRatio DiscreteRiccatiSolve DiscreteShift DiscreteTimeModelQ DiscreteUniformDistribution DiscreteVariables DiscreteWaveletData DiscreteWaveletPacketTransform DiscreteWaveletTransform DiscretizeGraphics DiscretizeRegion Discriminant DisjointQ Disjunction Disk DiskBox DiskMatrix DiskSegment Dispatch DispatchQ DispersionEstimatorFunction Display DisplayAllSteps DisplayEndPacket DisplayFlushImagePacket DisplayForm DisplayFunction DisplayPacket DisplayRules DisplaySetSizePacket DisplayString DisplayTemporary DisplayWith DisplayWithRef DisplayWithVariable DistanceFunction DistanceMatrix DistanceTransform Distribute Distributed DistributedContexts DistributeDefinitions DistributionChart DistributionDomain DistributionFitTest DistributionParameterAssumptions DistributionParameterQ Dithering Div Divergence Divide DivideBy Dividers DivideSides Divisible Divisors DivisorSigma DivisorSum DMSList DMSString Do DockedCells DocumentGenerator DocumentGeneratorInformation DocumentGeneratorInformationData DocumentGenerators DocumentNotebook DocumentWeightingRules Dodecahedron DomainRegistrationInformation DominantColors DOSTextFormat Dot DotDashed DotEqual DotLayer DotPlusLayer Dotted DoubleBracketingBar DoubleContourIntegral DoubleDownArrow DoubleLeftArrow DoubleLeftRightArrow DoubleLeftTee DoubleLongLeftArrow DoubleLongLeftRightArrow DoubleLongRightArrow DoubleRightArrow DoubleRightTee DoubleUpArrow DoubleUpDownArrow DoubleVerticalBar DoublyInfinite Down DownArrow DownArrowBar DownArrowUpArrow DownLeftRightVector DownLeftTeeVector DownLeftVector DownLeftVectorBar DownRightTeeVector DownRightVector DownRightVectorBar Downsample DownTee DownTeeArrow DownValues DragAndDrop DrawEdges DrawFrontFaces DrawHighlighted Drop DropoutLayer DSolve DSolveValue Dt DualLinearProgramming DualPolyhedron DualSystemsModel DumpGet DumpSave DuplicateFreeQ Duration Dynamic DynamicBox DynamicBoxOptions DynamicEvaluationTimeout DynamicGeoGraphics DynamicImage DynamicLocation DynamicModule DynamicModuleBox DynamicModuleBoxOptions DynamicModuleParent DynamicModuleValues DynamicName DynamicNamespace DynamicReference DynamicSetting DynamicUpdating DynamicWrapper DynamicWrapperBox DynamicWrapperBoxOptionsE EarthImpactData EarthquakeData EccentricityCentrality Echo EchoFunction EclipseType EdgeAdd EdgeBetweennessCentrality EdgeCapacity EdgeCapForm EdgeColor EdgeConnectivity EdgeContract EdgeCost EdgeCount EdgeCoverQ EdgeCycleMatrix EdgeDashing EdgeDelete EdgeDetect EdgeForm EdgeIndex EdgeJoinForm EdgeLabeling EdgeLabels EdgeLabelStyle EdgeList EdgeOpacity EdgeQ EdgeRenderingFunction EdgeRules EdgeShapeFunction EdgeStyle EdgeThickness EdgeWeight EdgeWeightedGraphQ Editable EditButtonSettings EditCellTagsSettings EditDistance EffectiveInterest Eigensystem Eigenvalues EigenvectorCentrality Eigenvectors Element ElementData ElementwiseLayer ElidedForms Eliminate EliminationOrder Ellipsoid EllipticE EllipticExp EllipticExpPrime EllipticF EllipticFilterModel EllipticK EllipticLog EllipticNomeQ EllipticPi EllipticReducedHalfPeriods EllipticTheta EllipticThetaPrime EmbedCode EmbeddedHTML EmbeddedService EmbeddingLayer EmbeddingObject EmitSound EmphasizeSyntaxErrors EmpiricalDistribution Empty EmptyGraphQ EmptyRegion EnableConsolePrintPacket Enabled Encode Encrypt EncryptedObject EncryptFile End EndAdd EndDialogPacket EndFrontEndInteractionPacket EndOfBuffer EndOfFile EndOfLine EndOfString EndPackage EngineEnvironment EngineeringForm Enter EnterExpressionPacket EnterTextPacket Entity EntityClass EntityClassList EntityCopies EntityFunction EntityGroup EntityInstance EntityList EntityPrefetch EntityProperties EntityProperty EntityPropertyClass EntityRegister EntityStore EntityStores EntityTypeName EntityUnregister EntityValue Entropy EntropyFilter Environment Epilog EpilogFunction Equal EqualColumns EqualRows EqualTilde EqualTo EquatedTo Equilibrium EquirippleFilterKernel Equivalent Erf Erfc Erfi ErlangB ErlangC ErlangDistribution Erosion ErrorBox ErrorBoxOptions ErrorNorm ErrorPacket ErrorsDialogSettings EscapeRadius EstimatedBackground EstimatedDistribution EstimatedProcess EstimatorGains EstimatorRegulator EuclideanDistance EulerAngles EulerCharacteristic EulerE EulerGamma EulerianGraphQ EulerMatrix EulerPhi Evaluatable Evaluate Evaluated EvaluatePacket EvaluateScheduledTask EvaluationBox EvaluationCell EvaluationCompletionAction EvaluationData EvaluationElements EvaluationEnvironment EvaluationMode EvaluationMonitor EvaluationNotebook EvaluationObject EvaluationOrder Evaluator EvaluatorNames EvenQ EventData EventEvaluator EventHandler EventHandlerTag EventLabels EventSeries ExactBlackmanWindow ExactNumberQ ExactRootIsolation ExampleData Except ExcludedForms ExcludedLines ExcludedPhysicalQuantities ExcludePods Exclusions ExclusionsStyle Exists Exit ExitDialog ExoplanetData Exp Expand ExpandAll ExpandDenominator ExpandFileName ExpandNumerator Expectation ExpectationE ExpectedValue ExpGammaDistribution ExpIntegralE ExpIntegralEi ExpirationDate Exponent ExponentFunction ExponentialDistribution ExponentialFamily ExponentialGeneratingFunction ExponentialMovingAverage ExponentialPowerDistribution ExponentPosition ExponentStep Export ExportAutoReplacements ExportByteArray ExportForm ExportPacket ExportString Expression ExpressionCell ExpressionPacket ExpressionUUID ExpToTrig ExtendedEntityClass ExtendedGCD Extension ExtentElementFunction ExtentMarkers ExtentSize ExternalBundle ExternalCall ExternalDataCharacterEncoding ExternalEvaluate ExternalFunction ExternalFunctionName ExternalObject ExternalOptions ExternalSessionObject ExternalSessions ExternalTypeSignature ExternalValue Extract ExtractArchive ExtractLayer ExtremeValueDistributionFaceForm FaceGrids FaceGridsStyle FacialFeatures Factor FactorComplete Factorial Factorial2 FactorialMoment FactorialMomentGeneratingFunction FactorialPower FactorInteger FactorList FactorSquareFree FactorSquareFreeList FactorTerms FactorTermsList Fail Failure FailureAction FailureDistribution FailureQ False FareySequence FARIMAProcess FeatureDistance FeatureExtract FeatureExtraction FeatureExtractor FeatureExtractorFunction FeatureNames FeatureNearest FeatureSpacePlot FeatureSpacePlot3D FeatureTypes FEDisableConsolePrintPacket FeedbackLinearize FeedbackSector FeedbackSectorStyle FeedbackType FEEnableConsolePrintPacket FetalGrowthData Fibonacci Fibonorial FieldCompletionFunction FieldHint FieldHintStyle FieldMasked FieldSize File FileBaseName FileByteCount FileConvert FileDate FileExistsQ FileExtension FileFormat FileHandler FileHash FileInformation FileName FileNameDepth FileNameDialogSettings FileNameDrop FileNameForms FileNameJoin FileNames FileNameSetter FileNameSplit FileNameTake FilePrint FileSize FileSystemMap FileSystemScan FileTemplate FileTemplateApply FileType FilledCurve FilledCurveBox FilledCurveBoxOptions Filling FillingStyle FillingTransform FilteredEntityClass FilterRules FinancialBond FinancialData FinancialDerivative FinancialIndicator Find FindAnomalies FindArgMax FindArgMin FindChannels FindClique FindClusters FindCookies FindCurvePath FindCycle FindDevices FindDistribution FindDistributionParameters FindDivisions FindEdgeCover FindEdgeCut FindEdgeIndependentPaths FindEquationalProof FindEulerianCycle FindExternalEvaluators FindFaces FindFile FindFit FindFormula FindFundamentalCycles FindGeneratingFunction FindGeoLocation FindGeometricConjectures FindGeometricTransform FindGraphCommunities FindGraphIsomorphism FindGraphPartition FindHamiltonianCycle FindHamiltonianPath FindHiddenMarkovStates FindIndependentEdgeSet FindIndependentVertexSet FindInstance FindIntegerNullVector FindKClan FindKClique FindKClub FindKPlex FindLibrary FindLinearRecurrence FindList FindMatchingColor FindMaximum FindMaximumFlow FindMaxValue FindMeshDefects FindMinimum FindMinimumCostFlow FindMinimumCut FindMinValue FindMoleculeSubstructure FindPath FindPeaks FindPermutation FindPostmanTour FindProcessParameters FindRepeat FindRoot FindSequenceFunction FindSettings FindShortestPath FindShortestTour FindSpanningTree FindSystemModelEquilibrium FindTextualAnswer FindThreshold FindTransientRepeat FindVertexCover FindVertexCut FindVertexIndependentPaths Fine FinishDynamic FiniteAbelianGroupCount FiniteGroupCount FiniteGroupData First FirstCase FirstPassageTimeDistribution FirstPosition FischerGroupFi22 FischerGroupFi23 FischerGroupFi24Prime FisherHypergeometricDistribution FisherRatioTest FisherZDistribution Fit FitAll FitRegularization FittedModel FixedOrder FixedPoint FixedPointList FlashSelection Flat Flatten FlattenAt FlattenLayer FlatTopWindow FlipView Floor FlowPolynomial FlushPrintOutputPacket Fold FoldList FoldPair FoldPairList FollowRedirects Font FontColor FontFamily FontForm FontName FontOpacity FontPostScriptName FontProperties FontReencoding FontSize FontSlant FontSubstitutions FontTracking FontVariations FontWeight For ForAll Format FormatRules FormatType FormatTypeAutoConvert FormatValues FormBox FormBoxOptions FormControl FormFunction FormLayoutFunction FormObject FormPage FormTheme FormulaData FormulaLookup FortranForm Forward ForwardBackward Fourier FourierCoefficient FourierCosCoefficient FourierCosSeries FourierCosTransform FourierDCT FourierDCTFilter FourierDCTMatrix FourierDST FourierDSTMatrix FourierMatrix FourierParameters FourierSequenceTransform FourierSeries FourierSinCoefficient FourierSinSeries FourierSinTransform FourierTransform FourierTrigSeries FractionalBrownianMotionProcess FractionalGaussianNoiseProcess FractionalPart FractionBox FractionBoxOptions FractionLine Frame FrameBox FrameBoxOptions Framed FrameInset FrameLabel Frameless FrameMargins FrameRate FrameStyle FrameTicks FrameTicksStyle FRatioDistribution FrechetDistribution FreeQ FrenetSerretSystem FrequencySamplingFilterKernel FresnelC FresnelF FresnelG FresnelS Friday FrobeniusNumber FrobeniusSolve FromAbsoluteTime FromCharacterCode FromCoefficientRules FromContinuedFraction FromDate FromDigits FromDMS FromEntity FromJulianDate FromLetterNumber FromPolarCoordinates FromRomanNumeral FromSphericalCoordinates FromUnixTime Front FrontEndDynamicExpression FrontEndEventActions FrontEndExecute FrontEndObject FrontEndResource FrontEndResourceString FrontEndStackSize FrontEndToken FrontEndTokenExecute FrontEndValueCache FrontEndVersion FrontFaceColor FrontFaceOpacity Full FullAxes FullDefinition FullForm FullGraphics FullInformationOutputRegulator FullOptions FullRegion FullSimplify Function FunctionCompile FunctionCompileExport FunctionCompileExportByteArray FunctionCompileExportLibrary FunctionCompileExportString FunctionDomain FunctionExpand FunctionInterpolation FunctionPeriod FunctionRange FunctionSpace FussellVeselyImportanceGaborFilter GaborMatrix GaborWavelet GainMargins GainPhaseMargins GalaxyData GalleryView Gamma GammaDistribution GammaRegularized GapPenalty GARCHProcess GatedRecurrentLayer Gather GatherBy GaugeFaceElementFunction GaugeFaceStyle GaugeFrameElementFunction GaugeFrameSize GaugeFrameStyle GaugeLabels GaugeMarkers GaugeStyle GaussianFilter GaussianIntegers GaussianMatrix GaussianOrthogonalMatrixDistribution GaussianSymplecticMatrixDistribution GaussianUnitaryMatrixDistribution GaussianWindow GCD GegenbauerC General GeneralizedLinearModelFit GenerateAsymmetricKeyPair GenerateConditions GeneratedCell GeneratedDocumentBinding GenerateDerivedKey GenerateDigitalSignature GenerateDocument GeneratedParameters GeneratedQuantityMagnitudes GenerateHTTPResponse GenerateSecuredAuthenticationKey GenerateSymmetricKey GeneratingFunction GeneratorDescription GeneratorHistoryLength GeneratorOutputType Generic GenericCylindricalDecomposition GenomeData GenomeLookup GeoAntipode GeoArea GeoArraySize GeoBackground GeoBoundingBox GeoBounds GeoBoundsRegion GeoBubbleChart GeoCenter GeoCircle GeodesicClosing GeodesicDilation GeodesicErosion GeodesicOpening GeoDestination GeodesyData GeoDirection GeoDisk GeoDisplacement GeoDistance GeoDistanceList GeoElevationData GeoEntities GeoGraphics GeogravityModelData GeoGridDirectionDifference GeoGridLines GeoGridLinesStyle GeoGridPosition GeoGridRange GeoGridRangePadding GeoGridUnitArea GeoGridUnitDistance GeoGridVector GeoGroup GeoHemisphere GeoHemisphereBoundary GeoHistogram GeoIdentify GeoImage GeoLabels GeoLength GeoListPlot GeoLocation GeologicalPeriodData GeomagneticModelData GeoMarker GeometricAssertion GeometricBrownianMotionProcess GeometricDistribution GeometricMean GeometricMeanFilter GeometricScene GeometricTransformation GeometricTransformation3DBox GeometricTransformation3DBoxOptions GeometricTransformationBox GeometricTransformationBoxOptions GeoModel GeoNearest GeoPath GeoPosition GeoPositionENU GeoPositionXYZ GeoProjection GeoProjectionData GeoRange GeoRangePadding GeoRegionValuePlot GeoResolution GeoScaleBar GeoServer GeoSmoothHistogram GeoStreamPlot GeoStyling GeoStylingImageFunction GeoVariant GeoVector GeoVectorENU GeoVectorPlot GeoVectorXYZ GeoVisibleRegion GeoVisibleRegionBoundary GeoWithinQ GeoZoomLevel GestureHandler GestureHandlerTag Get GetBoundingBoxSizePacket GetContext GetEnvironment GetFileName GetFrontEndOptionsDataPacket GetLinebreakInformationPacket GetMenusPacket GetPageBreakInformationPacket Glaisher GlobalClusteringCoefficient GlobalPreferences GlobalSession Glow GoldenAngle GoldenRatio GompertzMakehamDistribution GoodmanKruskalGamma GoodmanKruskalGammaTest Goto Grad Gradient GradientFilter GradientOrientationFilter GrammarApply GrammarRules GrammarToken Graph Graph3D GraphAssortativity GraphAutomorphismGroup GraphCenter GraphComplement GraphData GraphDensity GraphDiameter GraphDifference GraphDisjointUnion GraphDistance GraphDistanceMatrix GraphElementData GraphEmbedding GraphHighlight GraphHighlightStyle GraphHub Graphics Graphics3D Graphics3DBox Graphics3DBoxOptions GraphicsArray GraphicsBaseline GraphicsBox GraphicsBoxOptions GraphicsColor GraphicsColumn GraphicsComplex GraphicsComplex3DBox GraphicsComplex3DBoxOptions GraphicsComplexBox GraphicsComplexBoxOptions GraphicsContents GraphicsData GraphicsGrid GraphicsGridBox GraphicsGroup GraphicsGroup3DBox GraphicsGroup3DBoxOptions GraphicsGroupBox GraphicsGroupBoxOptions GraphicsGrouping GraphicsHighlightColor GraphicsRow GraphicsSpacing GraphicsStyle GraphIntersection GraphLayout GraphLinkEfficiency GraphPeriphery GraphPlot GraphPlot3D GraphPower GraphPropertyDistribution GraphQ GraphRadius GraphReciprocity GraphRoot GraphStyle GraphUnion Gray GrayLevel Greater GreaterEqual GreaterEqualLess GreaterEqualThan GreaterFullEqual GreaterGreater GreaterLess GreaterSlantEqual GreaterThan GreaterTilde Green GreenFunction Grid GridBaseline GridBox GridBoxAlignment GridBoxBackground GridBoxDividers GridBoxFrame GridBoxItemSize GridBoxItemStyle GridBoxOptions GridBoxSpacings GridCreationSettings GridDefaultElement GridElementStyleOptions GridFrame GridFrameMargins GridGraph GridLines GridLinesStyle GroebnerBasis GroupActionBase GroupBy GroupCentralizer GroupElementFromWord GroupElementPosition GroupElementQ GroupElements GroupElementToWord GroupGenerators Groupings GroupMultiplicationTable GroupOrbits GroupOrder GroupPageBreakWithin GroupSetwiseStabilizer GroupStabilizer GroupStabilizerChain GroupTogetherGrouping GroupTogetherNestedGrouping GrowCutComponents Gudermannian GuidedFilter GumbelDistributionHaarWavelet HadamardMatrix HalfLine HalfNormalDistribution HalfPlane HalfSpace HamiltonianGraphQ HammingDistance HammingWindow HandlerFunctions HandlerFunctionsKeys HankelH1 HankelH2 HankelMatrix HankelTransform HannPoissonWindow HannWindow HaradaNortonGroupHN HararyGraph HarmonicMean HarmonicMeanFilter HarmonicNumber Hash Haversine HazardFunction Head HeadCompose HeaderLines Heads HeavisideLambda HeavisidePi HeavisideTheta HeldGroupHe HeldPart HelpBrowserLookup HelpBrowserNotebook HelpBrowserSettings Here HermiteDecomposition HermiteH HermitianMatrixQ HessenbergDecomposition Hessian HexadecimalCharacter Hexahedron HexahedronBox HexahedronBoxOptions HiddenMarkovProcess HiddenSurface Highlighted HighlightGraph HighlightImage HighlightMesh HighpassFilter HigmanSimsGroupHS HilbertCurve HilbertFilter HilbertMatrix Histogram Histogram3D HistogramDistribution HistogramList HistogramTransform HistogramTransformInterpolation HistoricalPeriodData HitMissTransform HITSCentrality HjorthDistribution HodgeDual HoeffdingD HoeffdingDTest Hold HoldAll HoldAllComplete HoldComplete HoldFirst HoldForm HoldPattern HoldRest HolidayCalendar HomeDirectory HomePage Horizontal HorizontalForm HorizontalGauge HorizontalScrollPosition HornerForm HostLookup HotellingTSquareDistribution HoytDistribution HTMLSave HTTPErrorResponse HTTPRedirect HTTPRequest HTTPRequestData HTTPResponse Hue HumanGrowthData HumpDownHump HumpEqual HurwitzLerchPhi HurwitzZeta HyperbolicDistribution HypercubeGraph HyperexponentialDistribution Hyperfactorial Hypergeometric0F1 Hypergeometric0F1Regularized Hypergeometric1F1 Hypergeometric1F1Regularized Hypergeometric2F1 Hypergeometric2F1Regularized HypergeometricDistribution HypergeometricPFQ HypergeometricPFQRegularized HypergeometricU Hyperlink HyperlinkCreationSettings Hyperplane Hyphenation HyphenationOptions HypoexponentialDistribution HypothesisTestDataI IconData Iconize IconizedObject IconRules Icosahedron Identity IdentityMatrix If IgnoreCase IgnoreDiacritics IgnorePunctuation IgnoreSpellCheck IgnoringInactive Im Image Image3D Image3DProjection Image3DSlices ImageAccumulate ImageAdd ImageAdjust ImageAlign ImageApply ImageApplyIndexed ImageAspectRatio ImageAssemble ImageAugmentationLayer ImageBoundingBoxes ImageCache ImageCacheValid ImageCapture ImageCaptureFunction ImageCases ImageChannels ImageClip ImageCollage ImageColorSpace ImageCompose ImageContainsQ ImageContents ImageConvolve ImageCooccurrence ImageCorners ImageCorrelate ImageCorrespondingPoints ImageCrop ImageData ImageDeconvolve ImageDemosaic ImageDifference ImageDimensions ImageDisplacements ImageDistance ImageEffect ImageExposureCombine ImageFeatureTrack ImageFileApply ImageFileFilter ImageFileScan ImageFilter ImageFocusCombine ImageForestingComponents ImageFormattingWidth ImageForwardTransformation ImageGraphics ImageHistogram ImageIdentify ImageInstanceQ ImageKeypoints ImageLevels ImageLines ImageMargins ImageMarker ImageMarkers ImageMeasurements ImageMesh ImageMultiply ImageOffset ImagePad ImagePadding ImagePartition ImagePeriodogram ImagePerspectiveTransformation ImagePosition ImagePreviewFunction ImagePyramid ImagePyramidApply ImageQ ImageRangeCache ImageRecolor ImageReflect ImageRegion ImageResize ImageResolution ImageRestyle ImageRotate ImageRotated ImageSaliencyFilter ImageScaled ImageScan ImageSize ImageSizeAction ImageSizeCache ImageSizeMultipliers ImageSizeRaw ImageSubtract ImageTake ImageTransformation ImageTrim ImageType ImageValue ImageValuePositions ImagingDevice ImplicitRegion Implies Import ImportAutoReplacements ImportByteArray ImportOptions ImportString ImprovementImportance In Inactivate Inactive IncidenceGraph IncidenceList IncidenceMatrix IncludeAromaticBonds IncludeConstantBasis IncludeDefinitions IncludeDirectories IncludeFileExtension IncludeGeneratorTasks IncludeHydrogens IncludeInflections IncludeMetaInformation IncludePods IncludeQuantities IncludeRelatedTables IncludeSingularTerm IncludeWindowTimes Increment IndefiniteMatrixQ Indent IndentingNewlineSpacings IndentMaxFraction IndependenceTest IndependentEdgeSetQ IndependentPhysicalQuantity IndependentUnit IndependentUnitDimension IndependentVertexSetQ Indeterminate IndeterminateThreshold IndexCreationOptions Indexed IndexGraph IndexTag Inequality InexactNumberQ InexactNumbers InfiniteLine InfinitePlane Infinity Infix InflationAdjust InflationMethod Information InformationData InformationDataGrid Inherited InheritScope InhomogeneousPoissonProcess InitialEvaluationHistory Initialization InitializationCell InitializationCellEvaluation InitializationCellWarning InitializationObjects InitializationValue Initialize InitialSeeding InlineCounterAssignments InlineCounterIncrements InlineRules Inner InnerPolygon InnerPolyhedron Inpaint Input InputAliases InputAssumptions InputAutoReplacements InputField InputFieldBox InputFieldBoxOptions InputForm InputGrouping InputNamePacket InputNotebook InputPacket InputSettings InputStream InputString InputStringPacket InputToBoxFormPacket Insert InsertionFunction InsertionPointObject InsertLinebreaks InsertResults Inset Inset3DBox Inset3DBoxOptions InsetBox InsetBoxOptions Insphere Install InstallService InstanceNormalizationLayer InString Integer IntegerDigits IntegerExponent IntegerLength IntegerName IntegerPart IntegerPartitions IntegerQ IntegerReverse Integers IntegerString Integral Integrate Interactive InteractiveTradingChart Interlaced Interleaving InternallyBalancedDecomposition InterpolatingFunction InterpolatingPolynomial Interpolation InterpolationOrder InterpolationPoints InterpolationPrecision Interpretation InterpretationBox InterpretationBoxOptions InterpretationFunction Interpreter InterpretTemplate InterquartileRange Interrupt InterruptSettings IntersectingQ Intersection Interval IntervalIntersection IntervalMarkers IntervalMarkersStyle IntervalMemberQ IntervalSlider IntervalUnion Into Inverse InverseBetaRegularized InverseCDF InverseChiSquareDistribution InverseContinuousWaveletTransform InverseDistanceTransform InverseEllipticNomeQ InverseErf InverseErfc InverseFourier InverseFourierCosTransform InverseFourierSequenceTransform InverseFourierSinTransform InverseFourierTransform InverseFunction InverseFunctions InverseGammaDistribution InverseGammaRegularized InverseGaussianDistribution InverseGudermannian InverseHankelTransform InverseHaversine InverseImagePyramid InverseJacobiCD InverseJacobiCN InverseJacobiCS InverseJacobiDC InverseJacobiDN InverseJacobiDS InverseJacobiNC InverseJacobiND InverseJacobiNS InverseJacobiSC InverseJacobiSD InverseJacobiSN InverseLaplaceTransform InverseMellinTransform InversePermutation InverseRadon InverseRadonTransform InverseSeries InverseShortTimeFourier InverseSpectrogram InverseSurvivalFunction InverseTransformedRegion InverseWaveletTransform InverseWeierstrassP InverseWishartMatrixDistribution InverseZTransform Invisible InvisibleApplication InvisibleTimes IPAddress IrreduciblePolynomialQ IslandData IsolatingInterval IsomorphicGraphQ IsotopeData Italic Item ItemAspectRatio ItemBox ItemBoxOptions ItemSize ItemStyle ItoProcessJaccardDissimilarity JacobiAmplitude Jacobian JacobiCD JacobiCN JacobiCS JacobiDC JacobiDN JacobiDS JacobiNC JacobiND JacobiNS JacobiP JacobiSC JacobiSD JacobiSN JacobiSymbol JacobiZeta JankoGroupJ1 JankoGroupJ2 JankoGroupJ3 JankoGroupJ4 JarqueBeraALMTest JohnsonDistribution Join JoinAcross Joined JoinedCurve JoinedCurveBox JoinedCurveBoxOptions JoinForm JordanDecomposition JordanModelDecomposition JulianDate JuliaSetBoettcher JuliaSetIterationCount JuliaSetPlot JuliaSetPointsK KagiChart KaiserBesselWindow KaiserWindow KalmanEstimator KalmanFilter KarhunenLoeveDecomposition KaryTree KatzCentrality KCoreComponents KDistribution KEdgeConnectedComponents KEdgeConnectedGraphQ KelvinBei KelvinBer KelvinKei KelvinKer KendallTau KendallTauTest KernelExecute KernelFunction KernelMixtureDistribution Kernels Ket Key KeyCollisionFunction KeyComplement KeyDrop KeyDropFrom KeyExistsQ KeyFreeQ KeyIntersection KeyMap KeyMemberQ KeypointStrength Keys KeySelect KeySort KeySortBy KeyTake KeyUnion KeyValueMap KeyValuePattern Khinchin KillProcess KirchhoffGraph KirchhoffMatrix KleinInvariantJ KnapsackSolve KnightTourGraph KnotData KnownUnitQ KochCurve KolmogorovSmirnovTest KroneckerDelta KroneckerModelDecomposition KroneckerProduct KroneckerSymbol KuiperTest KumaraswamyDistribution Kurtosis KuwaharaFilter KVertexConnectedComponents KVertexConnectedGraphQLABColor Label Labeled LabeledSlider LabelingFunction LabelingSize LabelStyle LabelVisibility LaguerreL LakeData LambdaComponents LambertW LaminaData LanczosWindow LandauDistribution Language LanguageCategory LanguageData LanguageIdentify LanguageOptions LaplaceDistribution LaplaceTransform Laplacian LaplacianFilter LaplacianGaussianFilter Large Larger Last Latitude LatitudeLongitude LatticeData LatticeReduce Launch LaunchKernels LayeredGraphPlot LayerSizeFunction LayoutInformation LCHColor LCM LeaderSize LeafCount LeapYearQ LearnDistribution LearnedDistribution LearningRate LearningRateMultipliers LeastSquares LeastSquaresFilterKernel Left LeftArrow LeftArrowBar LeftArrowRightArrow LeftDownTeeVector LeftDownVector LeftDownVectorBar LeftRightArrow LeftRightVector LeftTee LeftTeeArrow LeftTeeVector LeftTriangle LeftTriangleBar LeftTriangleEqual LeftUpDownVector LeftUpTeeVector LeftUpVector LeftUpVectorBar LeftVector LeftVectorBar LegendAppearance Legended LegendFunction LegendLabel LegendLayout LegendMargins LegendMarkers LegendMarkerSize LegendreP LegendreQ LegendreType Length LengthWhile LerchPhi Less LessEqual LessEqualGreater LessEqualThan LessFullEqual LessGreater LessLess LessSlantEqual LessThan LessTilde LetterCharacter LetterCounts LetterNumber LetterQ Level LeveneTest LeviCivitaTensor LevyDistribution Lexicographic LibraryDataType LibraryFunction LibraryFunctionError LibraryFunctionInformation LibraryFunctionLoad LibraryFunctionUnload LibraryLoad LibraryUnload LicenseID LiftingFilterData LiftingWaveletTransform LightBlue LightBrown LightCyan Lighter LightGray LightGreen Lighting LightingAngle LightMagenta LightOrange LightPink LightPurple LightRed LightSources LightYellow Likelihood Limit LimitsPositioning LimitsPositioningTokens LindleyDistribution Line Line3DBox Line3DBoxOptions LinearFilter LinearFractionalOptimization LinearFractionalTransform LinearGradientImage LinearizingTransformationData LinearLayer LinearModelFit LinearOffsetFunction LinearOptimization LinearProgramming LinearRecurrence LinearSolve LinearSolveFunction LineBox LineBoxOptions LineBreak LinebreakAdjustments LineBreakChart LinebreakSemicolonWeighting LineBreakWithin LineColor LineGraph LineIndent LineIndentMaxFraction LineIntegralConvolutionPlot LineIntegralConvolutionScale LineLegend LineOpacity LineSpacing LineWrapParts LinkActivate LinkClose LinkConnect LinkConnectedQ LinkCreate LinkError LinkFlush LinkFunction LinkHost LinkInterrupt LinkLaunch LinkMode LinkObject LinkOpen LinkOptions LinkPatterns LinkProtocol LinkRankCentrality LinkRead LinkReadHeld LinkReadyQ Links LinkService LinkWrite LinkWriteHeld LiouvilleLambda List Listable ListAnimate ListContourPlot ListContourPlot3D ListConvolve ListCorrelate ListCurvePathPlot ListDeconvolve ListDensityPlot ListDensityPlot3D Listen ListFormat ListFourierSequenceTransform ListInterpolation ListLineIntegralConvolutionPlot ListLinePlot ListLogLinearPlot ListLogLogPlot ListLogPlot ListPicker ListPickerBox ListPickerBoxBackground ListPickerBoxOptions ListPlay ListPlot ListPlot3D ListPointPlot3D ListPolarPlot ListQ ListSliceContourPlot3D ListSliceDensityPlot3D ListSliceVectorPlot3D ListStepPlot ListStreamDensityPlot ListStreamPlot ListSurfacePlot3D ListVectorDensityPlot ListVectorPlot ListVectorPlot3D ListZTransform Literal LiteralSearch LocalAdaptiveBinarize LocalCache LocalClusteringCoefficient LocalizeDefinitions LocalizeVariables LocalObject LocalObjects LocalResponseNormalizationLayer LocalSubmit LocalSymbol LocalTime LocalTimeZone LocationEquivalenceTest LocationTest Locator LocatorAutoCreate LocatorBox LocatorBoxOptions LocatorCentering LocatorPane LocatorPaneBox LocatorPaneBoxOptions LocatorRegion Locked Log Log10 Log2 LogBarnesG LogGamma LogGammaDistribution LogicalExpand LogIntegral LogisticDistribution LogisticSigmoid LogitModelFit LogLikelihood LogLinearPlot LogLogisticDistribution LogLogPlot LogMultinormalDistribution LogNormalDistribution LogPlot LogRankTest LogSeriesDistribution LongEqual Longest LongestCommonSequence LongestCommonSequencePositions LongestCommonSubsequence LongestCommonSubsequencePositions LongestMatch LongestOrderedSequence LongForm Longitude LongLeftArrow LongLeftRightArrow LongRightArrow LongShortTermMemoryLayer Lookup Loopback LoopFreeGraphQ LossFunction LowerCaseQ LowerLeftArrow LowerRightArrow LowerTriangularize LowerTriangularMatrixQ LowpassFilter LQEstimatorGains LQGRegulator LQOutputRegulatorGains LQRegulatorGains LUBackSubstitution LucasL LuccioSamiComponents LUDecomposition LunarEclipse LUVColor LyapunovSolve LyonsGroupLyMachineID MachineName MachineNumberQ MachinePrecision MacintoshSystemPageSetup Magenta Magnification Magnify MailAddressValidation MailExecute MailFolder MailItem MailReceiverFunction MailResponseFunction MailSearch MailServerConnect MailServerConnection MailSettings MainSolve MaintainDynamicCaches Majority MakeBoxes MakeExpression MakeRules ManagedLibraryExpressionID ManagedLibraryExpressionQ MandelbrotSetBoettcher MandelbrotSetDistance MandelbrotSetIterationCount MandelbrotSetMemberQ MandelbrotSetPlot MangoldtLambda ManhattanDistance Manipulate Manipulator MannedSpaceMissionData MannWhitneyTest MantissaExponent Manual Map MapAll MapAt MapIndexed MAProcess MapThread MarchenkoPasturDistribution MarcumQ MardiaCombinedTest MardiaKurtosisTest MardiaSkewnessTest MarginalDistribution MarkovProcessProperties Masking MatchingDissimilarity MatchLocalNameQ MatchLocalNames MatchQ Material MathematicalFunctionData MathematicaNotation MathieuC MathieuCharacteristicA MathieuCharacteristicB MathieuCharacteristicExponent MathieuCPrime MathieuGroupM11 MathieuGroupM12 MathieuGroupM22 MathieuGroupM23 MathieuGroupM24 MathieuS MathieuSPrime MathMLForm MathMLText Matrices MatrixExp MatrixForm MatrixFunction MatrixLog MatrixNormalDistribution MatrixPlot MatrixPower MatrixPropertyDistribution MatrixQ MatrixRank MatrixTDistribution Max MaxBend MaxCellMeasure MaxColorDistance MaxDetect MaxDuration MaxExtraBandwidths MaxExtraConditions MaxFeatureDisplacement MaxFeatures MaxFilter MaximalBy Maximize MaxItems MaxIterations MaxLimit MaxMemoryUsed MaxMixtureKernels MaxOverlapFraction MaxPlotPoints MaxPoints MaxRecursion MaxStableDistribution MaxStepFraction MaxSteps MaxStepSize MaxTrainingRounds MaxValue MaxwellDistribution MaxWordGap McLaughlinGroupMcL Mean MeanAbsoluteLossLayer MeanAround MeanClusteringCoefficient MeanDegreeConnectivity MeanDeviation MeanFilter MeanGraphDistance MeanNeighborDegree MeanShift MeanShiftFilter MeanSquaredLossLayer Median MedianDeviation MedianFilter MedicalTestData Medium MeijerG MeijerGReduce MeixnerDistribution MellinConvolve MellinTransform MemberQ MemoryAvailable MemoryConstrained MemoryConstraint MemoryInUse MengerMesh Menu MenuAppearance MenuCommandKey MenuEvaluator MenuItem MenuList MenuPacket MenuSortingValue MenuStyle MenuView Merge MergeDifferences MergingFunction MersennePrimeExponent MersennePrimeExponentQ Mesh MeshCellCentroid MeshCellCount MeshCellHighlight MeshCellIndex MeshCellLabel MeshCellMarker MeshCellMeasure MeshCellQuality MeshCells MeshCellShapeFunction MeshCellStyle MeshCoordinates MeshFunctions MeshPrimitives MeshQualityGoal MeshRange MeshRefinementFunction MeshRegion MeshRegionQ MeshShading MeshStyle Message MessageDialog MessageList MessageName MessageObject MessageOptions MessagePacket Messages MessagesNotebook MetaCharacters MetaInformation MeteorShowerData Method MethodOptions MexicanHatWavelet MeyerWavelet Midpoint Min MinColorDistance MinDetect MineralData MinFilter MinimalBy MinimalPolynomial MinimalStateSpaceModel Minimize MinimumTimeIncrement MinIntervalSize MinkowskiQuestionMark MinLimit MinMax MinorPlanetData Minors MinRecursion MinSize MinStableDistribution Minus MinusPlus MinValue Missing MissingBehavior MissingDataMethod MissingDataRules MissingQ MissingString MissingStyle MissingValuePattern MittagLefflerE MixedFractionParts MixedGraphQ MixedMagnitude MixedRadix MixedRadixQuantity MixedUnit MixtureDistribution Mod Modal Mode Modular ModularInverse ModularLambda Module Modulus MoebiusMu Molecule MoleculeContainsQ MoleculeEquivalentQ MoleculeGraph MoleculeModify MoleculePattern MoleculePlot MoleculePlot3D MoleculeProperty MoleculeQ MoleculeValue Moment Momentary MomentConvert MomentEvaluate MomentGeneratingFunction MomentOfInertia Monday Monitor MonomialList MonomialOrder MonsterGroupM MoonPhase MoonPosition MorletWavelet MorphologicalBinarize MorphologicalBranchPoints MorphologicalComponents MorphologicalEulerNumber MorphologicalGraph MorphologicalPerimeter MorphologicalTransform MortalityData Most MountainData MouseAnnotation MouseAppearance MouseAppearanceTag MouseButtons Mouseover MousePointerNote MousePosition MovieData MovingAverage MovingMap MovingMedian MoyalDistribution Multicolumn MultiedgeStyle MultigraphQ MultilaunchWarning MultiLetterItalics MultiLetterStyle MultilineFunction Multinomial MultinomialDistribution MultinormalDistribution MultiplicativeOrder Multiplicity MultiplySides Multiselection MultivariateHypergeometricDistribution MultivariatePoissonDistribution MultivariateTDistributionN NakagamiDistribution NameQ Names NamespaceBox NamespaceBoxOptions Nand NArgMax NArgMin NBernoulliB NBodySimulation NBodySimulationData NCache NDEigensystem NDEigenvalues NDSolve NDSolveValue Nearest NearestFunction NearestNeighborGraph NearestTo NebulaData NeedCurrentFrontEndPackagePacket NeedCurrentFrontEndSymbolsPacket NeedlemanWunschSimilarity Needs Negative NegativeBinomialDistribution NegativeDefiniteMatrixQ NegativeIntegers NegativeMultinomialDistribution NegativeRationals NegativeReals NegativeSemidefiniteMatrixQ NeighborhoodData NeighborhoodGraph Nest NestedGreaterGreater NestedLessLess NestedScriptRules NestGraph NestList NestWhile NestWhileList NetAppend NetBidirectionalOperator NetChain NetDecoder NetDelete NetDrop NetEncoder NetEvaluationMode NetExtract NetFlatten NetFoldOperator NetGraph NetInformation NetInitialize NetInsert NetInsertSharedArrays NetJoin NetMapOperator NetMapThreadOperator NetMeasurements NetModel NetNestOperator NetPairEmbeddingOperator NetPort NetPortGradient NetPrepend NetRename NetReplace NetReplacePart NetSharedArray NetStateObject NetTake NetTrain NetTrainResultsObject NetworkPacketCapture NetworkPacketRecording NetworkPacketRecordingDuring NetworkPacketTrace NeumannValue NevilleThetaC NevilleThetaD NevilleThetaN NevilleThetaS NewPrimitiveStyle NExpectation Next NextCell NextDate NextPrime NextScheduledTaskTime NHoldAll NHoldFirst NHoldRest NicholsGridLines NicholsPlot NightHemisphere NIntegrate NMaximize NMaxValue NMinimize NMinValue NominalVariables NonAssociative NoncentralBetaDistribution NoncentralChiSquareDistribution NoncentralFRatioDistribution NoncentralStudentTDistribution NonCommutativeMultiply NonConstants NondimensionalizationTransform None NoneTrue NonlinearModelFit NonlinearStateSpaceModel NonlocalMeansFilter NonNegative NonNegativeIntegers NonNegativeRationals NonNegativeReals NonPositive NonPositiveIntegers NonPositiveRationals NonPositiveReals Nor NorlundB Norm Normal NormalDistribution NormalGrouping NormalizationLayer Normalize Normalized NormalizedSquaredEuclideanDistance NormalMatrixQ NormalsFunction NormFunction Not NotCongruent NotCupCap NotDoubleVerticalBar Notebook NotebookApply NotebookAutoSave NotebookClose NotebookConvertSettings NotebookCreate NotebookCreateReturnObject NotebookDefault NotebookDelete NotebookDirectory NotebookDynamicExpression NotebookEvaluate NotebookEventActions NotebookFileName NotebookFind NotebookFindReturnObject NotebookGet NotebookGetLayoutInformationPacket NotebookGetMisspellingsPacket NotebookImport NotebookInformation NotebookInterfaceObject NotebookLocate NotebookObject NotebookOpen NotebookOpenReturnObject NotebookPath NotebookPrint NotebookPut NotebookPutReturnObject NotebookRead NotebookResetGeneratedCells Notebooks NotebookSave NotebookSaveAs NotebookSelection NotebookSetupLayoutInformationPacket NotebooksMenu NotebookTemplate NotebookWrite NotElement NotEqualTilde NotExists NotGreater NotGreaterEqual NotGreaterFullEqual NotGreaterGreater NotGreaterLess NotGreaterSlantEqual NotGreaterTilde Nothing NotHumpDownHump NotHumpEqual NotificationFunction NotLeftTriangle NotLeftTriangleBar NotLeftTriangleEqual NotLess NotLessEqual NotLessFullEqual NotLessGreater NotLessLess NotLessSlantEqual NotLessTilde NotNestedGreaterGreater NotNestedLessLess NotPrecedes NotPrecedesEqual NotPrecedesSlantEqual NotPrecedesTilde NotReverseElement NotRightTriangle NotRightTriangleBar NotRightTriangleEqual NotSquareSubset NotSquareSubsetEqual NotSquareSuperset NotSquareSupersetEqual NotSubset NotSubsetEqual NotSucceeds NotSucceedsEqual NotSucceedsSlantEqual NotSucceedsTilde NotSuperset NotSupersetEqual NotTilde NotTildeEqual NotTildeFullEqual NotTildeTilde NotVerticalBar Now NoWhitespace NProbability NProduct NProductFactors NRoots NSolve NSum NSumTerms NuclearExplosionData NuclearReactorData Null NullRecords NullSpace NullWords Number NumberCompose NumberDecompose NumberExpand NumberFieldClassNumber NumberFieldDiscriminant NumberFieldFundamentalUnits NumberFieldIntegralBasis NumberFieldNormRepresentatives NumberFieldRegulator NumberFieldRootsOfUnity NumberFieldSignature NumberForm NumberFormat NumberLinePlot NumberMarks NumberMultiplier NumberPadding NumberPoint NumberQ NumberSeparator NumberSigns NumberString Numerator NumeratorDenominator NumericalOrder NumericalSort NumericArray NumericArrayQ NumericArrayType NumericFunction NumericQ NuttallWindow NValues NyquistGridLines NyquistPlotO ObservabilityGramian ObservabilityMatrix ObservableDecomposition ObservableModelQ OceanData Octahedron OddQ Off Offset OLEData On ONanGroupON Once OneIdentity Opacity OpacityFunction OpacityFunctionScaling Open OpenAppend Opener OpenerBox OpenerBoxOptions OpenerView OpenFunctionInspectorPacket Opening OpenRead OpenSpecialOptions OpenTemporary OpenWrite Operate OperatingSystem OptimumFlowData Optional OptionalElement OptionInspectorSettings OptionQ Options OptionsPacket OptionsPattern OptionValue OptionValueBox OptionValueBoxOptions Or Orange Order OrderDistribution OrderedQ Ordering OrderingBy OrderingLayer Orderless OrderlessPatternSequence OrnsteinUhlenbeckProcess Orthogonalize OrthogonalMatrixQ Out Outer OuterPolygon OuterPolyhedron OutputAutoOverwrite OutputControllabilityMatrix OutputControllableModelQ OutputForm OutputFormData OutputGrouping OutputMathEditExpression OutputNamePacket OutputResponse OutputSizeLimit OutputStream Over OverBar OverDot Overflow OverHat Overlaps Overlay OverlayBox OverlayBoxOptions Overscript OverscriptBox OverscriptBoxOptions OverTilde OverVector OverwriteTarget OwenT OwnValuesPackage PackingMethod PaddedForm Padding PaddingLayer PaddingSize PadeApproximant PadLeft PadRight PageBreakAbove PageBreakBelow PageBreakWithin PageFooterLines PageFooters PageHeaderLines PageHeaders PageHeight PageRankCentrality PageTheme PageWidth Pagination PairedBarChart PairedHistogram PairedSmoothHistogram PairedTTest PairedZTest PaletteNotebook PalettePath PalindromeQ Pane PaneBox PaneBoxOptions Panel PanelBox PanelBoxOptions Paneled PaneSelector PaneSelectorBox PaneSelectorBoxOptions PaperWidth ParabolicCylinderD ParagraphIndent ParagraphSpacing ParallelArray ParallelCombine ParallelDo Parallelepiped ParallelEvaluate Parallelization Parallelize ParallelMap ParallelNeeds Parallelogram ParallelProduct ParallelSubmit ParallelSum ParallelTable ParallelTry Parameter ParameterEstimator ParameterMixtureDistribution ParameterVariables ParametricFunction ParametricNDSolve ParametricNDSolveValue ParametricPlot ParametricPlot3D ParametricRegion ParentBox ParentCell ParentConnect ParentDirectory ParentForm Parenthesize ParentList ParentNotebook ParetoDistribution ParetoPickandsDistribution ParkData Part PartBehavior PartialCorrelationFunction PartialD ParticleAcceleratorData ParticleData Partition PartitionGranularity PartitionsP PartitionsQ PartLayer PartOfSpeech PartProtection ParzenWindow PascalDistribution PassEventsDown PassEventsUp Paste PasteAutoQuoteCharacters PasteBoxFormInlineCells PasteButton Path PathGraph PathGraphQ Pattern PatternSequence PatternTest PauliMatrix PaulWavelet Pause PausedTime PDF PeakDetect PeanoCurve PearsonChiSquareTest PearsonCorrelationTest PearsonDistribution PercentForm PerfectNumber PerfectNumberQ PerformanceGoal Perimeter PeriodicBoundaryCondition PeriodicInterpolation Periodogram PeriodogramArray Permanent Permissions PermissionsGroup PermissionsGroupMemberQ PermissionsGroups PermissionsKey PermissionsKeys PermutationCycles PermutationCyclesQ PermutationGroup PermutationLength PermutationList PermutationListQ PermutationMax PermutationMin PermutationOrder PermutationPower PermutationProduct PermutationReplace Permutations PermutationSupport Permute PeronaMalikFilter Perpendicular PerpendicularBisector PersistenceLocation PersistenceTime PersistentObject PersistentObjects PersistentValue PersonData PERTDistribution PetersenGraph PhaseMargins PhaseRange PhysicalSystemData Pi Pick PIDData PIDDerivativeFilter PIDFeedforward PIDTune Piecewise PiecewiseExpand PieChart PieChart3D PillaiTrace PillaiTraceTest PingTime Pink PitchRecognize Pivoting PixelConstrained PixelValue PixelValuePositions Placed Placeholder PlaceholderReplace Plain PlanarAngle PlanarGraph PlanarGraphQ PlanckRadiationLaw PlaneCurveData PlanetaryMoonData PlanetData PlantData Play PlayRange Plot Plot3D Plot3Matrix PlotDivision PlotJoined PlotLabel PlotLabels PlotLayout PlotLegends PlotMarkers PlotPoints PlotRange PlotRangeClipping PlotRangeClipPlanesStyle PlotRangePadding PlotRegion PlotStyle PlotTheme Pluralize Plus PlusMinus Pochhammer PodStates PodWidth Point Point3DBox Point3DBoxOptions PointBox PointBoxOptions PointFigureChart PointLegend PointSize PoissonConsulDistribution PoissonDistribution PoissonProcess PoissonWindow PolarAxes PolarAxesOrigin PolarGridLines PolarPlot PolarTicks PoleZeroMarkers PolyaAeppliDistribution PolyGamma Polygon Polygon3DBox Polygon3DBoxOptions PolygonalNumber PolygonAngle PolygonBox PolygonBoxOptions PolygonCoordinates PolygonDecomposition PolygonHoleScale PolygonIntersections PolygonScale Polyhedron PolyhedronAngle PolyhedronCoordinates PolyhedronData PolyhedronDecomposition PolyhedronGenus PolyLog PolynomialExtendedGCD PolynomialForm PolynomialGCD PolynomialLCM PolynomialMod PolynomialQ PolynomialQuotient PolynomialQuotientRemainder PolynomialReduce PolynomialRemainder Polynomials PoolingLayer PopupMenu PopupMenuBox PopupMenuBoxOptions PopupView PopupWindow Position PositionIndex Positive PositiveDefiniteMatrixQ PositiveIntegers PositiveRationals PositiveReals PositiveSemidefiniteMatrixQ PossibleZeroQ Postfix PostScript Power PowerDistribution PowerExpand PowerMod PowerModList PowerRange PowerSpectralDensity PowersRepresentations PowerSymmetricPolynomial Precedence PrecedenceForm Precedes PrecedesEqual PrecedesSlantEqual PrecedesTilde Precision PrecisionGoal PreDecrement Predict PredictionRoot PredictorFunction PredictorInformation PredictorMeasurements PredictorMeasurementsObject PreemptProtect PreferencesPath Prefix PreIncrement Prepend PrependLayer PrependTo PreprocessingRules PreserveColor PreserveImageOptions Previous PreviousCell PreviousDate PriceGraphDistribution PrimaryPlaceholder Prime PrimeNu PrimeOmega PrimePi PrimePowerQ PrimeQ Primes PrimeZetaP PrimitivePolynomialQ PrimitiveRoot PrimitiveRootList PrincipalComponents PrincipalValue Print PrintableASCIIQ PrintAction PrintForm PrintingCopies PrintingOptions PrintingPageRange PrintingStartingPageNumber PrintingStyleEnvironment Printout3D Printout3DPreviewer PrintPrecision PrintTemporary Prism PrismBox PrismBoxOptions PrivateCellOptions PrivateEvaluationOptions PrivateFontOptions PrivateFrontEndOptions PrivateKey PrivateNotebookOptions PrivatePaths Probability ProbabilityDistribution ProbabilityPlot ProbabilityPr ProbabilityScalePlot ProbitModelFit ProcessConnection ProcessDirectory ProcessEnvironment Processes ProcessEstimator ProcessInformation ProcessObject ProcessParameterAssumptions ProcessParameterQ ProcessStateDomain ProcessStatus ProcessTimeDomain Product ProductDistribution ProductLog ProgressIndicator ProgressIndicatorBox ProgressIndicatorBoxOptions Projection Prolog PromptForm ProofObject Properties Property PropertyList PropertyValue Proportion Proportional Protect Protected ProteinData Pruning PseudoInverse PsychrometricPropertyData PublicKey PublisherID PulsarData PunctuationCharacter Purple Put PutAppend Pyramid PyramidBox PyramidBoxOptionsQBinomial QFactorial QGamma QHypergeometricPFQ QnDispersion QPochhammer QPolyGamma QRDecomposition QuadraticIrrationalQ QuadraticOptimization Quantile QuantilePlot Quantity QuantityArray QuantityDistribution QuantityForm QuantityMagnitude QuantityQ QuantityUnit QuantityVariable QuantityVariableCanonicalUnit QuantityVariableDimensions QuantityVariableIdentifier QuantityVariablePhysicalQuantity Quartics QuartileDeviation Quartiles QuartileSkewness Query QueueingNetworkProcess QueueingProcess QueueProperties Quiet Quit Quotient QuotientRemainderRadialGradientImage RadialityCentrality RadicalBox RadicalBoxOptions RadioButton RadioButtonBar RadioButtonBox RadioButtonBoxOptions Radon RadonTransform RamanujanTau RamanujanTauL RamanujanTauTheta RamanujanTauZ Ramp Random RandomChoice RandomColor RandomComplex RandomEntity RandomFunction RandomGeoPosition RandomGraph RandomImage RandomInstance RandomInteger RandomPermutation RandomPoint RandomPolygon RandomPolyhedron RandomPrime RandomReal RandomSample RandomSeed RandomSeeding RandomVariate RandomWalkProcess RandomWord Range RangeFilter RangeSpecification RankedMax RankedMin RarerProbability Raster Raster3D Raster3DBox Raster3DBoxOptions RasterArray RasterBox RasterBoxOptions Rasterize RasterSize Rational RationalFunctions Rationalize Rationals Ratios RawArray RawBoxes RawData RawMedium RayleighDistribution Re Read ReadByteArray ReadLine ReadList ReadProtected ReadString Real RealAbs RealBlockDiagonalForm RealDigits RealExponent Reals RealSign Reap RecognitionPrior RecognitionThreshold Record RecordLists RecordSeparators Rectangle RectangleBox RectangleBoxOptions RectangleChart RectangleChart3D RectangularRepeatingElement RecurrenceFilter RecurrenceTable RecurringDigitsForm Red Reduce RefBox ReferenceLineStyle ReferenceMarkers ReferenceMarkerStyle Refine ReflectionMatrix ReflectionTransform Refresh RefreshRate Region RegionBinarize RegionBoundary RegionBounds RegionCentroid RegionDifference RegionDimension RegionDisjoint RegionDistance RegionDistanceFunction RegionEmbeddingDimension RegionEqual RegionFunction RegionImage RegionIntersection RegionMeasure RegionMember RegionMemberFunction RegionMoment RegionNearest RegionNearestFunction RegionPlot RegionPlot3D RegionProduct RegionQ RegionResize RegionSize RegionSymmetricDifference RegionUnion RegionWithin RegisterExternalEvaluator RegularExpression Regularization RegularlySampledQ RegularPolygon ReIm ReImLabels ReImPlot ReImStyle Reinstall RelationalDatabase RelationGraph Release ReleaseHold ReliabilityDistribution ReliefImage ReliefPlot RemoteAuthorizationCaching RemoteConnect RemoteConnectionObject RemoteFile RemoteRun RemoteRunProcess Remove RemoveAlphaChannel RemoveAsynchronousTask RemoveAudioStream RemoveBackground RemoveChannelListener RemoveChannelSubscribers Removed RemoveDiacritics RemoveInputStreamMethod RemoveOutputStreamMethod RemoveProperty RemoveScheduledTask RemoveUsers RenameDirectory RenameFile RenderAll RenderingOptions RenewalProcess RenkoChart RepairMesh Repeated RepeatedNull RepeatedString RepeatedTiming RepeatingElement Replace ReplaceAll ReplaceHeldPart ReplaceImageValue ReplaceList ReplacePart ReplacePixelValue ReplaceRepeated ReplicateLayer RequiredPhysicalQuantities Resampling ResamplingAlgorithmData ResamplingMethod Rescale RescalingTransform ResetDirectory ResetMenusPacket ResetScheduledTask ReshapeLayer Residue ResizeLayer Resolve ResourceAcquire ResourceData ResourceFunction ResourceObject ResourceRegister ResourceRemove ResourceSearch ResourceSubmissionObject ResourceSubmit ResourceSystemBase ResourceUpdate ResponseForm Rest RestartInterval Restricted Resultant ResumePacket Return ReturnEntersInput ReturnExpressionPacket ReturnInputFormPacket ReturnPacket ReturnReceiptFunction ReturnTextPacket Reverse ReverseBiorthogonalSplineWavelet ReverseElement ReverseEquilibrium ReverseGraph ReverseSort ReverseSortBy ReverseUpEquilibrium RevolutionAxis RevolutionPlot3D RGBColor RiccatiSolve RiceDistribution RidgeFilter RiemannR RiemannSiegelTheta RiemannSiegelZ RiemannXi Riffle Right RightArrow RightArrowBar RightArrowLeftArrow RightComposition RightCosetRepresentative RightDownTeeVector RightDownVector RightDownVectorBar RightTee RightTeeArrow RightTeeVector RightTriangle RightTriangleBar RightTriangleEqual RightUpDownVector RightUpTeeVector RightUpVector RightUpVectorBar RightVector RightVectorBar RiskAchievementImportance RiskReductionImportance RogersTanimotoDissimilarity RollPitchYawAngles RollPitchYawMatrix RomanNumeral Root RootApproximant RootIntervals RootLocusPlot RootMeanSquare RootOfUnityQ RootReduce Roots RootSum Rotate RotateLabel RotateLeft RotateRight RotationAction RotationBox RotationBoxOptions RotationMatrix RotationTransform Round RoundImplies RoundingRadius Row RowAlignments RowBackgrounds RowBox RowHeights RowLines RowMinHeight RowReduce RowsEqual RowSpacings RSolve RSolveValue RudinShapiro RudvalisGroupRu Rule RuleCondition RuleDelayed RuleForm RulePlot RulerUnits Run RunProcess RunScheduledTask RunThrough RuntimeAttributes RuntimeOptions RussellRaoDissimilaritySameQ SameTest SampledEntityClass SampleDepth SampledSoundFunction SampledSoundList SampleRate SamplingPeriod SARIMAProcess SARMAProcess SASTriangle SatelliteData SatisfiabilityCount SatisfiabilityInstances SatisfiableQ Saturday Save Saveable SaveAutoDelete SaveConnection SaveDefinitions SavitzkyGolayMatrix SawtoothWave Scale Scaled ScaleDivisions ScaledMousePosition ScaleOrigin ScalePadding ScaleRanges ScaleRangeStyle ScalingFunctions ScalingMatrix ScalingTransform Scan ScheduledTask ScheduledTaskActiveQ ScheduledTaskInformation ScheduledTaskInformationData ScheduledTaskObject ScheduledTasks SchurDecomposition ScientificForm ScientificNotationThreshold ScorerGi ScorerGiPrime ScorerHi ScorerHiPrime ScreenRectangle ScreenStyleEnvironment ScriptBaselineShifts ScriptForm ScriptLevel ScriptMinSize ScriptRules ScriptSizeMultipliers Scrollbars ScrollingOptions ScrollPosition SearchAdjustment SearchIndexObject SearchIndices SearchQueryString SearchResultObject Sec Sech SechDistribution SecondOrderConeOptimization SectionGrouping SectorChart SectorChart3D SectorOrigin SectorSpacing SecuredAuthenticationKey SecuredAuthenticationKeys SeedRandom Select Selectable SelectComponents SelectedCells SelectedNotebook SelectFirst Selection SelectionAnimate SelectionCell SelectionCellCreateCell SelectionCellDefaultStyle SelectionCellParentStyle SelectionCreateCell SelectionDebuggerTag SelectionDuplicateCell SelectionEvaluate SelectionEvaluateCreateCell SelectionMove SelectionPlaceholder SelectionSetStyle SelectWithContents SelfLoops SelfLoopStyle SemanticImport SemanticImportString SemanticInterpretation SemialgebraicComponentInstances SemidefiniteOptimization SendMail SendMessage Sequence SequenceAlignment SequenceAttentionLayer SequenceCases SequenceCount SequenceFold SequenceFoldList SequenceForm SequenceHold SequenceLastLayer SequenceMostLayer SequencePosition SequencePredict SequencePredictorFunction SequenceReplace SequenceRestLayer SequenceReverseLayer SequenceSplit Series SeriesCoefficient SeriesData ServiceConnect ServiceDisconnect ServiceExecute ServiceObject ServiceRequest ServiceResponse ServiceSubmit SessionSubmit SessionTime Set SetAccuracy SetAlphaChannel SetAttributes Setbacks SetBoxFormNamesPacket SetCloudDirectory SetCookies SetDelayed SetDirectory SetEnvironment SetEvaluationNotebook SetFileDate SetFileLoadingContext SetNotebookStatusLine SetOptions SetOptionsPacket SetPermissions SetPrecision SetProperty SetSecuredAuthenticationKey SetSelectedNotebook SetSharedFunction SetSharedVariable SetSpeechParametersPacket SetStreamPosition SetSystemModel SetSystemOptions Setter SetterBar SetterBox SetterBoxOptions Setting SetUsers SetValue Shading Shallow ShannonWavelet ShapiroWilkTest Share SharingList Sharpen ShearingMatrix ShearingTransform ShellRegion ShenCastanMatrix ShiftedGompertzDistribution ShiftRegisterSequence Short ShortDownArrow Shortest ShortestMatch ShortestPathFunction ShortLeftArrow ShortRightArrow ShortTimeFourier ShortTimeFourierData ShortUpArrow Show ShowAutoConvert ShowAutoSpellCheck ShowAutoStyles ShowCellBracket ShowCellLabel ShowCellTags ShowClosedCellArea ShowCodeAssist ShowContents ShowControls ShowCursorTracker ShowGroupOpenCloseIcon ShowGroupOpener ShowInvisibleCharacters ShowPageBreaks ShowPredictiveInterface ShowSelection ShowShortBoxForm ShowSpecialCharacters ShowStringCharacters ShowSyntaxStyles ShrinkingDelay ShrinkWrapBoundingBox SiderealTime SiegelTheta SiegelTukeyTest SierpinskiCurve SierpinskiMesh Sign Signature SignedRankTest SignedRegionDistance SignificanceLevel SignPadding SignTest SimilarityRules SimpleGraph SimpleGraphQ SimplePolygonQ SimplePolyhedronQ Simplex Simplify Sin Sinc SinghMaddalaDistribution SingleEvaluation SingleLetterItalics SingleLetterStyle SingularValueDecomposition SingularValueList SingularValuePlot SingularValues Sinh SinhIntegral SinIntegral SixJSymbol Skeleton SkeletonTransform SkellamDistribution Skewness SkewNormalDistribution SkinStyle Skip SliceContourPlot3D SliceDensityPlot3D SliceDistribution SliceVectorPlot3D Slider Slider2D Slider2DBox Slider2DBoxOptions SliderBox SliderBoxOptions SlideView Slot SlotSequence Small SmallCircle Smaller SmithDecomposition SmithDelayCompensator SmithWatermanSimilarity SmoothDensityHistogram SmoothHistogram SmoothHistogram3D SmoothKernelDistribution SnDispersion Snippet SnubPolyhedron SocialMediaData Socket SocketConnect SocketListen SocketListener SocketObject SocketOpen SocketReadMessage SocketReadyQ Sockets SocketWaitAll SocketWaitNext SoftmaxLayer SokalSneathDissimilarity SolarEclipse SolarSystemFeatureData SolidAngle SolidData SolidRegionQ Solve SolveAlways SolveDelayed Sort SortBy SortedBy SortedEntityClass Sound SoundAndGraphics SoundNote SoundVolume SourceLink Sow Space SpaceCurveData SpaceForm Spacer Spacings Span SpanAdjustments SpanCharacterRounding SpanFromAbove SpanFromBoth SpanFromLeft SpanLineThickness SpanMaxSize SpanMinSize SpanningCharacters SpanSymmetric SparseArray SpatialGraphDistribution SpatialMedian SpatialTransformationLayer Speak SpeakTextPacket SpearmanRankTest SpearmanRho SpeciesData SpecificityGoal SpectralLineData Spectrogram SpectrogramArray Specularity SpeechRecognize SpeechSynthesize SpellingCorrection SpellingCorrectionList SpellingDictionaries SpellingDictionariesPath SpellingOptions SpellingSuggestionsPacket Sphere SphereBox SpherePoints SphericalBesselJ SphericalBesselY SphericalHankelH1 SphericalHankelH2 SphericalHarmonicY SphericalPlot3D SphericalRegion SphericalShell SpheroidalEigenvalue SpheroidalJoiningFactor SpheroidalPS SpheroidalPSPrime SpheroidalQS SpheroidalQSPrime SpheroidalRadialFactor SpheroidalS1 SpheroidalS1Prime SpheroidalS2 SpheroidalS2Prime Splice SplicedDistribution SplineClosed SplineDegree SplineKnots SplineWeights Split SplitBy SpokenString Sqrt SqrtBox SqrtBoxOptions Square SquaredEuclideanDistance SquareFreeQ SquareIntersection SquareMatrixQ SquareRepeatingElement SquaresR SquareSubset SquareSubsetEqual SquareSuperset SquareSupersetEqual SquareUnion SquareWave SSSTriangle StabilityMargins StabilityMarginsStyle StableDistribution Stack StackBegin StackComplete StackedDateListPlot StackedListPlot StackInhibit StadiumShape StandardAtmosphereData StandardDeviation StandardDeviationFilter StandardForm Standardize Standardized StandardOceanData StandbyDistribution Star StarClusterData StarData StarGraph StartAsynchronousTask StartExternalSession StartingStepSize StartOfLine StartOfString StartProcess StartScheduledTask StartupSound StartWebSession StateDimensions StateFeedbackGains StateOutputEstimator StateResponse StateSpaceModel StateSpaceRealization StateSpaceTransform StateTransformationLinearize StationaryDistribution StationaryWaveletPacketTransform StationaryWaveletTransform StatusArea StatusCentrality StepMonitor StereochemistryElements StieltjesGamma StirlingS1 StirlingS2 StopAsynchronousTask StoppingPowerData StopScheduledTask StrataVariables StratonovichProcess StreamColorFunction StreamColorFunctionScaling StreamDensityPlot StreamMarkers StreamPlot StreamPoints StreamPosition Streams StreamScale StreamStyle String StringBreak StringByteCount StringCases StringContainsQ StringCount StringDelete StringDrop StringEndsQ StringExpression StringExtract StringForm StringFormat StringFreeQ StringInsert StringJoin StringLength StringMatchQ StringPadLeft StringPadRight StringPart StringPartition StringPosition StringQ StringRepeat StringReplace StringReplaceList StringReplacePart StringReverse StringRiffle StringRotateLeft StringRotateRight StringSkeleton StringSplit StringStartsQ StringTake StringTemplate StringToByteArray StringToStream StringTrim StripBoxes StripOnInput StripWrapperBoxes StrokeForm StructuralImportance StructuredArray StructuredSelection StruveH StruveL Stub StudentTDistribution Style StyleBox StyleBoxAutoDelete StyleData StyleDefinitions StyleForm StyleHints StyleKeyMapping StyleMenuListing StyleNameDialogSettings StyleNames StylePrint StyleSheetPath Subdivide Subfactorial Subgraph SubMinus SubPlus SubresultantPolynomialRemainders SubresultantPolynomials Subresultants Subscript SubscriptBox SubscriptBoxOptions Subscripted Subsequences Subset SubsetEqual SubsetMap SubsetQ Subsets SubStar SubstitutionSystem Subsuperscript SubsuperscriptBox SubsuperscriptBoxOptions Subtract SubtractFrom SubtractSides SubValues Succeeds SucceedsEqual SucceedsSlantEqual SucceedsTilde Success SuchThat Sum SumConvergence SummationLayer Sunday SunPosition Sunrise Sunset SuperDagger SuperMinus SupernovaData SuperPlus Superscript SuperscriptBox SuperscriptBoxOptions Superset SupersetEqual SuperStar Surd SurdForm SurfaceArea SurfaceColor SurfaceData SurfaceGraphics SurvivalDistribution SurvivalFunction SurvivalModel SurvivalModelFit SuspendPacket SuzukiDistribution SuzukiGroupSuz SwatchLegend Switch Symbol SymbolName SymletWavelet Symmetric SymmetricGroup SymmetricKey SymmetricMatrixQ SymmetricPolynomial SymmetricReduction Symmetrize SymmetrizedArray SymmetrizedArrayRules SymmetrizedDependentComponents SymmetrizedIndependentComponents SymmetrizedReplacePart SynchronousInitialization SynchronousUpdating Synonyms Syntax SyntaxForm SyntaxInformation SyntaxLength SyntaxPacket SyntaxQ SynthesizeMissingValues SystemDialogInput SystemException SystemGet SystemHelpPath SystemInformation SystemInformationData SystemInstall SystemModel SystemModeler SystemModelExamples SystemModelLinearize SystemModelParametricSimulate SystemModelPlot SystemModelProgressReporting SystemModelReliability SystemModels SystemModelSimulate SystemModelSimulateSensitivity SystemModelSimulationData SystemOpen SystemOptions SystemProcessData SystemProcesses SystemsConnectionsModel SystemsModelDelay SystemsModelDelayApproximate SystemsModelDelete SystemsModelDimensions SystemsModelExtract SystemsModelFeedbackConnect SystemsModelLabels SystemsModelLinearity SystemsModelMerge SystemsModelOrder SystemsModelParallelConnect SystemsModelSeriesConnect SystemsModelStateFeedbackConnect SystemsModelVectorRelativeOrders SystemStub SystemTestTab TabFilling Table TableAlignments TableDepth TableDirections TableForm TableHeadings TableSpacing TableView TableViewBox TableViewBoxBackground TableViewBoxOptions TabSpacings TabView TabViewBox TabViewBoxOptions TagBox TagBoxNote TagBoxOptions TaggingRules TagSet TagSetDelayed TagStyle TagUnset Take TakeDrop TakeLargest TakeLargestBy TakeList TakeSmallest TakeSmallestBy TakeWhile Tally Tan Tanh TargetDevice TargetFunctions TargetSystem TargetUnits TaskAbort TaskExecute TaskObject TaskRemove TaskResume Tasks TaskSuspend TaskWait TautologyQ TelegraphProcess TemplateApply TemplateArgBox TemplateBox TemplateBoxOptions TemplateEvaluate TemplateExpression TemplateIf TemplateObject TemplateSequence TemplateSlot TemplateSlotSequence TemplateUnevaluated TemplateVerbatim TemplateWith TemporalData TemporalRegularity Temporary TemporaryVariable TensorContract TensorDimensions TensorExpand TensorProduct TensorQ TensorRank TensorReduce TensorSymmetry TensorTranspose TensorWedge TestID TestReport TestReportObject TestResultObject Tetrahedron TetrahedronBox TetrahedronBoxOptions TeXForm TeXSave Text Text3DBox Text3DBoxOptions TextAlignment TextBand TextBoundingBox TextBox TextCases TextCell TextClipboardType TextContents TextData TextElement TextForm TextGrid TextJustification TextLine TextPacket TextParagraph TextPosition TextRecognize TextSearch TextSearchReport TextSentences TextString TextStructure TextStyle TextTranslation Texture TextureCoordinateFunction TextureCoordinateScaling TextWords Therefore ThermodynamicData ThermometerGauge Thick Thickness Thin Thinning ThisLink ThompsonGroupTh Thread ThreadingLayer ThreeJSymbol Threshold Through Throw ThueMorse Thumbnail Thursday Ticks TicksStyle TideData Tilde TildeEqual TildeFullEqual TildeTilde TimeConstrained TimeConstraint TimeDirection TimeFormat TimeGoal TimelinePlot TimeObject TimeObjectQ Times TimesBy TimeSeries TimeSeriesAggregate TimeSeriesForecast TimeSeriesInsert TimeSeriesInvertibility TimeSeriesMap TimeSeriesMapThread TimeSeriesModel TimeSeriesModelFit TimeSeriesResample TimeSeriesRescale TimeSeriesShift TimeSeriesThread TimeSeriesWindow TimeUsed TimeValue TimeWarpingCorrespondence TimeWarpingDistance TimeZone TimeZoneConvert TimeZoneOffset Timing Tiny TitleGrouping TitsGroupT ToBoxes ToCharacterCode ToColor ToContinuousTimeModel ToDate Today ToDiscreteTimeModel ToEntity ToeplitzMatrix ToExpression ToFileName Together Toggle ToggleFalse Toggler TogglerBar TogglerBox TogglerBoxOptions ToHeldExpression ToInvertibleTimeSeries TokenWords Tolerance ToLowerCase Tomorrow ToNumberField TooBig Tooltip TooltipBox TooltipBoxOptions TooltipDelay TooltipStyle Top TopHatTransform ToPolarCoordinates TopologicalSort ToRadicals ToRules ToSphericalCoordinates ToString Total TotalHeight TotalLayer TotalVariationFilter TotalWidth TouchPosition TouchscreenAutoZoom TouchscreenControlPlacement ToUpperCase Tr Trace TraceAbove TraceAction TraceBackward TraceDepth TraceDialog TraceForward TraceInternal TraceLevel TraceOff TraceOn TraceOriginal TracePrint TraceScan TrackedSymbols TrackingFunction TracyWidomDistribution TradingChart TraditionalForm TraditionalFunctionNotation TraditionalNotation TraditionalOrder TrainingProgressCheckpointing TrainingProgressFunction TrainingProgressMeasurements TrainingProgressReporting TrainingStoppingCriterion TransferFunctionCancel TransferFunctionExpand TransferFunctionFactor TransferFunctionModel TransferFunctionPoles TransferFunctionTransform TransferFunctionZeros TransformationClass TransformationFunction TransformationFunctions TransformationMatrix TransformedDistribution TransformedField TransformedProcess TransformedRegion TransitionDirection TransitionDuration TransitionEffect TransitiveClosureGraph TransitiveReductionGraph Translate TranslationOptions TranslationTransform Transliterate Transparent TransparentColor Transpose TransposeLayer TrapSelection TravelDirections TravelDirectionsData TravelDistance TravelDistanceList TravelMethod TravelTime TreeForm TreeGraph TreeGraphQ TreePlot TrendStyle Triangle TriangleCenter TriangleConstruct TriangleMeasurement TriangleWave TriangularDistribution TriangulateMesh Trig TrigExpand TrigFactor TrigFactorList Trigger TrigReduce TrigToExp TrimmedMean TrimmedVariance TropicalStormData True TrueQ TruncatedDistribution TruncatedPolyhedron TsallisQExponentialDistribution TsallisQGaussianDistribution TTest Tube TubeBezierCurveBox TubeBezierCurveBoxOptions TubeBox TubeBoxOptions TubeBSplineCurveBox TubeBSplineCurveBoxOptions Tuesday TukeyLambdaDistribution TukeyWindow TunnelData Tuples TuranGraph TuringMachine TuttePolynomial TwoWayRule Typed TypeSpecifierUnateQ Uncompress UnconstrainedParameters Undefined UnderBar Underflow Underlined Underoverscript UnderoverscriptBox UnderoverscriptBoxOptions Underscript UnderscriptBox UnderscriptBoxOptions UnderseaFeatureData UndirectedEdge UndirectedGraph UndirectedGraphQ UndoOptions UndoTrackedVariables Unequal UnequalTo Unevaluated UniformDistribution UniformGraphDistribution UniformPolyhedron UniformSumDistribution Uninstall Union UnionPlus Unique UnitaryMatrixQ UnitBox UnitConvert UnitDimensions Unitize UnitRootTest UnitSimplify UnitStep UnitSystem UnitTriangle UnitVector UnitVectorLayer UnityDimensions UniverseModelData UniversityData UnixTime Unprotect UnregisterExternalEvaluator UnsameQ UnsavedVariables Unset UnsetShared UntrackedVariables Up UpArrow UpArrowBar UpArrowDownArrow Update UpdateDynamicObjects UpdateDynamicObjectsSynchronous UpdateInterval UpdateSearchIndex UpDownArrow UpEquilibrium UpperCaseQ UpperLeftArrow UpperRightArrow UpperTriangularize UpperTriangularMatrixQ Upsample UpSet UpSetDelayed UpTee UpTeeArrow UpTo UpValues URL URLBuild URLDecode URLDispatcher URLDownload URLDownloadSubmit URLEncode URLExecute URLExpand URLFetch URLFetchAsynchronous URLParse URLQueryDecode URLQueryEncode URLRead URLResponseTime URLSave URLSaveAsynchronous URLShorten URLSubmit UseGraphicsRange UserDefinedWavelet Using UsingFrontEnd UtilityFunctionV2Get ValenceErrorHandling ValidationLength ValidationSet Value ValueBox ValueBoxOptions ValueDimensions ValueForm ValuePreprocessingFunction ValueQ Values ValuesData Variables Variance VarianceEquivalenceTest VarianceEstimatorFunction VarianceGammaDistribution VarianceTest VectorAngle VectorAround VectorColorFunction VectorColorFunctionScaling VectorDensityPlot VectorGlyphData VectorGreater VectorGreaterEqual VectorLess VectorLessEqual VectorMarkers VectorPlot VectorPlot3D VectorPoints VectorQ Vectors VectorScale VectorStyle Vee Verbatim Verbose VerboseConvertToPostScriptPacket VerificationTest VerifyConvergence VerifyDerivedKey VerifyDigitalSignature VerifyInterpretation VerifySecurityCertificates VerifySolutions VerifyTestAssumptions Version VersionNumber VertexAdd VertexCapacity VertexColors VertexComponent VertexConnectivity VertexContract VertexCoordinateRules VertexCoordinates VertexCorrelationSimilarity VertexCosineSimilarity VertexCount VertexCoverQ VertexDataCoordinates VertexDegree VertexDelete VertexDiceSimilarity VertexEccentricity VertexInComponent VertexInDegree VertexIndex VertexJaccardSimilarity VertexLabeling VertexLabels VertexLabelStyle VertexList VertexNormals VertexOutComponent VertexOutDegree VertexQ VertexRenderingFunction VertexReplace VertexShape VertexShapeFunction VertexSize VertexStyle VertexTextureCoordinates VertexWeight VertexWeightedGraphQ Vertical VerticalBar VerticalForm VerticalGauge VerticalSeparator VerticalSlider VerticalTilde ViewAngle ViewCenter ViewMatrix ViewPoint ViewPointSelectorSettings ViewPort ViewProjection ViewRange ViewVector ViewVertical VirtualGroupData Visible VisibleCell VoiceStyleData VoigtDistribution VolcanoData Volume VonMisesDistribution VoronoiMeshWaitAll WaitAsynchronousTask WaitNext WaitUntil WakebyDistribution WalleniusHypergeometricDistribution WaringYuleDistribution WarpingCorrespondence WarpingDistance WatershedComponents WatsonUSquareTest WattsStrogatzGraphDistribution WaveletBestBasis WaveletFilterCoefficients WaveletImagePlot WaveletListPlot WaveletMapIndexed WaveletMatrixPlot WaveletPhi WaveletPsi WaveletScale WaveletScalogram WaveletThreshold WeaklyConnectedComponents WeaklyConnectedGraphComponents WeaklyConnectedGraphQ WeakStationarity WeatherData WeatherForecastData WebAudioSearch WebElementObject WeberE WebExecute WebImage WebImageSearch WebSearch WebSessionObject WebSessions WebWindowObject Wedge Wednesday WeibullDistribution WeierstrassE1 WeierstrassE2 WeierstrassE3 WeierstrassEta1 WeierstrassEta2 WeierstrassEta3 WeierstrassHalfPeriods WeierstrassHalfPeriodW1 WeierstrassHalfPeriodW2 WeierstrassHalfPeriodW3 WeierstrassInvariantG2 WeierstrassInvariantG3 WeierstrassInvariants WeierstrassP WeierstrassPPrime WeierstrassSigma WeierstrassZeta WeightedAdjacencyGraph WeightedAdjacencyMatrix WeightedData WeightedGraphQ Weights WelchWindow WheelGraph WhenEvent Which While White WhiteNoiseProcess WhitePoint Whitespace WhitespaceCharacter WhittakerM WhittakerW WienerFilter WienerProcess WignerD WignerSemicircleDistribution WikipediaData WikipediaSearch WilksW WilksWTest WindDirectionData WindingCount WindingPolygon WindowClickSelect WindowElements WindowFloating WindowFrame WindowFrameElements WindowMargins WindowMovable WindowOpacity WindowPersistentStyles WindowSelected WindowSize WindowStatusArea WindowTitle WindowToolbars WindowWidth WindSpeedData WindVectorData WinsorizedMean WinsorizedVariance WishartMatrixDistribution With WolframAlpha WolframAlphaDate WolframAlphaQuantity WolframAlphaResult WolframLanguageData Word WordBoundary WordCharacter WordCloud WordCount WordCounts WordData WordDefinition WordFrequency WordFrequencyData WordList WordOrientation WordSearch WordSelectionFunction WordSeparators WordSpacings WordStem WordTranslation WorkingPrecision WrapAround Write WriteLine WriteString WronskianXMLElement XMLObject XMLTemplate Xnor Xor XYZColorYellow Yesterday YuleDissimilarityZernikeR ZeroSymmetric ZeroTest ZeroWidthTimes Zeta ZetaZero ZIPCodeData ZipfDistribution ZoomCenter ZoomFactor ZTest ZTransform$Aborted $ActivationGroupID $ActivationKey $ActivationUserRegistered $AddOnsDirectory $AllowExternalChannelFunctions $AssertFunction $Assumptions $AsynchronousTask $AudioInputDevices $AudioOutputDevices $BaseDirectory $BatchInput $BatchOutput $BlockchainBase $BoxForms $ByteOrdering $CacheBaseDirectory $Canceled $ChannelBase $CharacterEncoding $CharacterEncodings $CloudBase $CloudConnected $CloudCreditsAvailable $CloudEvaluation $CloudExpressionBase $CloudObjectNameFormat $CloudObjectURLType $CloudRootDirectory $CloudSymbolBase $CloudUserID $CloudUserUUID $CloudVersion $CloudVersionNumber $CloudWolframEngineVersionNumber $CommandLine $CompilationTarget $ConditionHold $ConfiguredKernels $Context $ContextPath $ControlActiveSetting $Cookies $CookieStore $CreationDate $CurrentLink $CurrentTask $CurrentWebSession $DateStringFormat $DefaultAudioInputDevice $DefaultAudioOutputDevice $DefaultFont $DefaultFrontEnd $DefaultImagingDevice $DefaultLocalBase $DefaultMailbox $DefaultNetworkInterface $DefaultPath $Display $DisplayFunction $DistributedContexts $DynamicEvaluation $Echo $EmbedCodeEnvironments $EmbeddableServices $EntityStores $Epilog $EvaluationCloudBase $EvaluationCloudObject $EvaluationEnvironment $ExportFormats $Failed $FinancialDataSource $FontFamilies $FormatType $FrontEnd $FrontEndSession $GeoEntityTypes $GeoLocation $GeoLocationCity $GeoLocationCountry $GeoLocationPrecision $GeoLocationSource $HistoryLength $HomeDirectory $HTMLExportRules $HTTPCookies $HTTPRequest $IgnoreEOF $ImageFormattingWidth $ImagingDevice $ImagingDevices $ImportFormats $IncomingMailSettings $InitialDirectory $Initialization $InitializationContexts $Input $InputFileName $InputStreamMethods $Inspector $InstallationDate $InstallationDirectory $InterfaceEnvironment $InterpreterTypes $IterationLimit $KernelCount $KernelID $Language $LaunchDirectory $LibraryPath $LicenseExpirationDate $LicenseID $LicenseProcesses $LicenseServer $LicenseSubprocesses $LicenseType $Line $Linked $LinkSupported $LoadedFiles $LocalBase $LocalSymbolBase $MachineAddresses $MachineDomain $MachineDomains $MachineEpsilon $MachineID $MachineName $MachinePrecision $MachineType $MaxExtraPrecision $MaxLicenseProcesses $MaxLicenseSubprocesses $MaxMachineNumber $MaxNumber $MaxPiecewiseCases $MaxPrecision $MaxRootDegree $MessageGroups $MessageList $MessagePrePrint $Messages $MinMachineNumber $MinNumber $MinorReleaseNumber $MinPrecision $MobilePhone $ModuleNumber $NetworkConnected $NetworkInterfaces $NetworkLicense $NewMessage $NewSymbol $Notebooks $NoValue $NumberMarks $Off $OperatingSystem $Output $OutputForms $OutputSizeLimit $OutputStreamMethods $Packages $ParentLink $ParentProcessID $PasswordFile $PatchLevelID $Path $PathnameSeparator $PerformanceGoal $Permissions $PermissionsGroupBase $PersistenceBase $PersistencePath $PipeSupported $PlotTheme $Post $Pre $PreferencesDirectory $PreInitialization $PrePrint $PreRead $PrintForms $PrintLiteral $Printout3DPreviewer $ProcessID $ProcessorCount $ProcessorType $ProductInformation $ProgramName $PublisherID $RandomState $RecursionLimit $RegisteredDeviceClasses $RegisteredUserName $ReleaseNumber $RequesterAddress $RequesterWolframID $RequesterWolframUUID $ResourceSystemBase $RootDirectory $ScheduledTask $ScriptCommandLine $ScriptInputString $SecuredAuthenticationKeyTokens $ServiceCreditsAvailable $Services $SessionID $SetParentLink $SharedFunctions $SharedVariables $SoundDisplay $SoundDisplayFunction $SourceLink $SSHAuthentication $SummaryBoxDataSizeLimit $SuppressInputFormHeads $SynchronousEvaluation $SyntaxHandler $System $SystemCharacterEncoding $SystemID $SystemMemory $SystemShell $SystemTimeZone $SystemWordLength $TemplatePath $TemporaryDirectory $TemporaryPrefix $TestFileName $TextStyle $TimedOut $TimeUnit $TimeZone $TimeZoneEntity $TopDirectory $TraceOff $TraceOn $TracePattern $TracePostAction $TracePreAction $UnitSystem $Urgent $UserAddOnsDirectory $UserAgentLanguages $UserAgentMachine $UserAgentName $UserAgentOperatingSystem $UserAgentString $UserAgentVersion $UserBaseDirectory $UserDocumentsDirectory $Username $UserName $UserURLBase $Version $VersionNumber $VoiceStyles $WolframID $WolframUUID\",c:[e.C(\"\\\\(\\\\*\",\"\\\\*\\\\)\",{c:[\"self\"]}),e.QSM,e.CNM]}});hljs.registerLanguage(\"vim\",function(e){return{l:/[!#@\\w]+/,k:{keyword:\"N|0 P|0 X|0 a|0 ab abc abo al am an|0 ar arga argd arge argdo argg argl argu as au aug aun b|0 bN ba bad bd be bel bf bl bm bn bo bp br brea breaka breakd breakl bro bufdo buffers bun bw c|0 cN cNf ca cabc caddb cad caddf cal cat cb cc ccl cd ce cex cf cfir cgetb cgete cg changes chd che checkt cl cla clo cm cmapc cme cn cnew cnf cno cnorea cnoreme co col colo com comc comp con conf cope cp cpf cq cr cs cst cu cuna cunme cw delm deb debugg delc delf dif diffg diffo diffp diffpu diffs diffthis dig di dl dell dj dli do doautoa dp dr ds dsp e|0 ea ec echoe echoh echom echon el elsei em en endfo endf endt endw ene ex exe exi exu f|0 files filet fin fina fini fir fix fo foldc foldd folddoc foldo for fu go gr grepa gu gv ha helpf helpg helpt hi hid his ia iabc if ij il im imapc ime ino inorea inoreme int is isp iu iuna iunme j|0 ju k|0 keepa kee keepj lN lNf l|0 lad laddb laddf la lan lat lb lc lch lcl lcs le lefta let lex lf lfir lgetb lgete lg lgr lgrepa lh ll lla lli lmak lm lmapc lne lnew lnf ln loadk lo loc lockv lol lope lp lpf lr ls lt lu lua luad luaf lv lvimgrepa lw m|0 ma mak map mapc marks mat me menut mes mk mks mksp mkv mkvie mod mz mzf nbc nb nbs new nm nmapc nme nn nnoreme noa no noh norea noreme norm nu nun nunme ol o|0 om omapc ome on ono onoreme opt ou ounme ow p|0 profd prof pro promptr pc ped pe perld po popu pp pre prev ps pt ptN ptf ptj ptl ptn ptp ptr pts pu pw py3 python3 py3d py3f py pyd pyf quita qa rec red redi redr redraws reg res ret retu rew ri rightb rub rubyd rubyf rund ru rv sN san sa sal sav sb sbN sba sbf sbl sbm sbn sbp sbr scrip scripte scs se setf setg setl sf sfir sh sim sig sil sl sla sm smap smapc sme sn sni sno snor snoreme sor so spelld spe spelli spellr spellu spellw sp spr sre st sta startg startr star stopi stj sts sun sunm sunme sus sv sw sy synti sync tN tabN tabc tabdo tabe tabf tabfir tabl tabm tabnew tabn tabo tabp tabr tabs tab ta tags tc tcld tclf te tf th tj tl tm tn to tp tr try ts tu u|0 undoj undol una unh unl unlo unm unme uns up ve verb vert vim vimgrepa vi viu vie vm vmapc vme vne vn vnoreme vs vu vunme windo w|0 wN wa wh wi winc winp wn wp wq wqa ws wu wv x|0 xa xmapc xm xme xn xnoreme xu xunme y|0 z|0 ~ Next Print append abbreviate abclear aboveleft all amenu anoremenu args argadd argdelete argedit argglobal arglocal argument ascii autocmd augroup aunmenu buffer bNext ball badd bdelete behave belowright bfirst blast bmodified bnext botright bprevious brewind break breakadd breakdel breaklist browse bunload bwipeout change cNext cNfile cabbrev cabclear caddbuffer caddexpr caddfile call catch cbuffer cclose center cexpr cfile cfirst cgetbuffer cgetexpr cgetfile chdir checkpath checktime clist clast close cmap cmapclear cmenu cnext cnewer cnfile cnoremap cnoreabbrev cnoremenu copy colder colorscheme command comclear compiler continue confirm copen cprevious cpfile cquit crewind cscope cstag cunmap cunabbrev cunmenu cwindow delete delmarks debug debuggreedy delcommand delfunction diffupdate diffget diffoff diffpatch diffput diffsplit digraphs display deletel djump dlist doautocmd doautoall deletep drop dsearch dsplit edit earlier echo echoerr echohl echomsg else elseif emenu endif endfor endfunction endtry endwhile enew execute exit exusage file filetype find finally finish first fixdel fold foldclose folddoopen folddoclosed foldopen function global goto grep grepadd gui gvim hardcopy help helpfind helpgrep helptags highlight hide history insert iabbrev iabclear ijump ilist imap imapclear imenu inoremap inoreabbrev inoremenu intro isearch isplit iunmap iunabbrev iunmenu join jumps keepalt keepmarks keepjumps lNext lNfile list laddexpr laddbuffer laddfile last language later lbuffer lcd lchdir lclose lcscope left leftabove lexpr lfile lfirst lgetbuffer lgetexpr lgetfile lgrep lgrepadd lhelpgrep llast llist lmake lmap lmapclear lnext lnewer lnfile lnoremap loadkeymap loadview lockmarks lockvar lolder lopen lprevious lpfile lrewind ltag lunmap luado luafile lvimgrep lvimgrepadd lwindow move mark make mapclear match menu menutranslate messages mkexrc mksession mkspell mkvimrc mkview mode mzscheme mzfile nbclose nbkey nbsart next nmap nmapclear nmenu nnoremap nnoremenu noautocmd noremap nohlsearch noreabbrev noremenu normal number nunmap nunmenu oldfiles open omap omapclear omenu only onoremap onoremenu options ounmap ounmenu ownsyntax print profdel profile promptfind promptrepl pclose pedit perl perldo pop popup ppop preserve previous psearch ptag ptNext ptfirst ptjump ptlast ptnext ptprevious ptrewind ptselect put pwd py3do py3file python pydo pyfile quit quitall qall read recover redo redir redraw redrawstatus registers resize retab return rewind right rightbelow ruby rubydo rubyfile rundo runtime rviminfo substitute sNext sandbox sargument sall saveas sbuffer sbNext sball sbfirst sblast sbmodified sbnext sbprevious sbrewind scriptnames scriptencoding scscope set setfiletype setglobal setlocal sfind sfirst shell simalt sign silent sleep slast smagic smapclear smenu snext sniff snomagic snoremap snoremenu sort source spelldump spellgood spellinfo spellrepall spellundo spellwrong split sprevious srewind stop stag startgreplace startreplace startinsert stopinsert stjump stselect sunhide sunmap sunmenu suspend sview swapname syntax syntime syncbind tNext tabNext tabclose tabedit tabfind tabfirst tablast tabmove tabnext tabonly tabprevious tabrewind tag tcl tcldo tclfile tearoff tfirst throw tjump tlast tmenu tnext topleft tprevious trewind tselect tunmenu undo undojoin undolist unabbreviate unhide unlet unlockvar unmap unmenu unsilent update vglobal version verbose vertical vimgrep vimgrepadd visual viusage view vmap vmapclear vmenu vnew vnoremap vnoremenu vsplit vunmap vunmenu write wNext wall while winsize wincmd winpos wnext wprevious wqall wsverb wundo wviminfo xit xall xmapclear xmap xmenu xnoremap xnoremenu xunmap xunmenu yank\",built_in:\"synIDtrans atan2 range matcharg did_filetype asin feedkeys xor argv complete_check add getwinposx getqflist getwinposy screencol clearmatches empty extend getcmdpos mzeval garbagecollect setreg ceil sqrt diff_hlID inputsecret get getfperm getpid filewritable shiftwidth max sinh isdirectory synID system inputrestore winline atan visualmode inputlist tabpagewinnr round getregtype mapcheck hasmapto histdel argidx findfile sha256 exists toupper getcmdline taglist string getmatches bufnr strftime winwidth bufexists strtrans tabpagebuflist setcmdpos remote_read printf setloclist getpos getline bufwinnr float2nr len getcmdtype diff_filler luaeval resolve libcallnr foldclosedend reverse filter has_key bufname str2float strlen setline getcharmod setbufvar index searchpos shellescape undofile foldclosed setqflist buflisted strchars str2nr virtcol floor remove undotree remote_expr winheight gettabwinvar reltime cursor tabpagenr finddir localtime acos getloclist search tanh matchend rename gettabvar strdisplaywidth type abs py3eval setwinvar tolower wildmenumode log10 spellsuggest bufloaded synconcealed nextnonblank server2client complete settabwinvar executable input wincol setmatches getftype hlID inputsave searchpair or screenrow line settabvar histadd deepcopy strpart remote_peek and eval getftime submatch screenchar winsaveview matchadd mkdir screenattr getfontname libcall reltimestr getfsize winnr invert pow getbufline byte2line soundfold repeat fnameescape tagfiles sin strwidth spellbadword trunc maparg log lispindent hostname setpos globpath remote_foreground getchar synIDattr fnamemodify cscope_connection stridx winbufnr indent min complete_add nr2char searchpairpos inputdialog values matchlist items hlexists strridx browsedir expand fmod pathshorten line2byte argc count getwinvar glob foldtextresult getreg foreground cosh matchdelete has char2nr simplify histget searchdecl iconv winrestcmd pumvisible writefile foldlevel haslocaldir keys cos matchstr foldtext histnr tan tempname getcwd byteidx getbufvar islocked escape eventhandler remote_send serverlist winrestview synstack pyeval prevnonblank readfile cindent filereadable changenr exp\"},i:/;/,c:[e.NM,{cN:\"string\",b:\"'\",e:\"'\",i:\"\\\\n\"},{cN:\"string\",b:/\"(\\\\\"|\\n\\\\|[^\"\\n])*\"/},e.C('\"',\"$\"),{cN:\"variable\",b:/[bwtglsav]:[\\w\\d_]*/},{cN:\"function\",bK:\"function function!\",e:\"$\",relevance:0,c:[e.TM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},{cN:\"symbol\",b:/<[\\w-]+>/}]}});hljs.registerLanguage(\"makefile\",function(e){var i={cN:\"variable\",v:[{b:\"\\\\$\\\\(\"+e.UIR+\"\\\\)\",c:[e.BE]},{b:/\\$[@%<?\\^\\+\\*]/}]},r={cN:\"string\",b:/\"/,e:/\"/,c:[e.BE,i]},a={cN:\"variable\",b:/\\$\\([\\w-]+\\s/,e:/\\)/,k:{built_in:\"subst patsubst strip findstring filter filter-out sort word wordlist firstword lastword dir notdir suffix basename addsuffix addprefix join wildcard realpath abspath error warning shell origin flavor foreach if or and call eval file value\"},c:[i]},n={b:\"^\"+e.UIR+\"\\\\s*(?=[:+?]?=)\"},t={cN:\"section\",b:/^[^\\s]+:/,e:/$/,c:[i]};return{aliases:[\"mk\",\"mak\"],k:\"define endef undefine ifdef ifndef ifeq ifneq else endif include -include sinclude override export unexport private vpath\",l:/[\\w-]+/,c:[e.HCM,i,r,a,n,{cN:\"meta\",b:/^\\.PHONY:/,e:/$/,k:{\"meta-keyword\":\".PHONY\"},l:/[\\.\\w]+/},t]}});hljs.registerLanguage(\"objectivec\",function(e){var t=/[a-zA-Z@][a-zA-Z0-9_]*/,i=\"@interface @class @protocol @implementation\";return{aliases:[\"mm\",\"objc\",\"obj-c\"],k:{keyword:\"int float while char export sizeof typedef const struct for union unsigned long volatile static bool mutable if do return goto void enum else break extern asm case short default double register explicit signed typename this switch continue wchar_t inline readonly assign readwrite self @synchronized id typeof nonatomic super unichar IBOutlet IBAction strong weak copy in out inout bycopy byref oneway __strong __weak __block __autoreleasing @private @protected @public @try @property @end @throw @catch @finally @autoreleasepool @synthesize @dynamic @selector @optional @required @encode @package @import @defs @compatibility_alias __bridge __bridge_transfer __bridge_retained __bridge_retain __covariant __contravariant __kindof _Nonnull _Nullable _Null_unspecified __FUNCTION__ __PRETTY_FUNCTION__ __attribute__ getter setter retain unsafe_unretained nonnull nullable null_unspecified null_resettable class instancetype NS_DESIGNATED_INITIALIZER NS_UNAVAILABLE NS_REQUIRES_SUPER NS_RETURNS_INNER_POINTER NS_INLINE NS_AVAILABLE NS_DEPRECATED NS_ENUM NS_OPTIONS NS_SWIFT_UNAVAILABLE NS_ASSUME_NONNULL_BEGIN NS_ASSUME_NONNULL_END NS_REFINED_FOR_SWIFT NS_SWIFT_NAME NS_SWIFT_NOTHROW NS_DURING NS_HANDLER NS_ENDHANDLER NS_VALUERETURN NS_VOIDRETURN\",literal:\"false true FALSE TRUE nil YES NO NULL\",built_in:\"BOOL dispatch_once_t dispatch_queue_t dispatch_sync dispatch_async dispatch_once\"},l:t,i:\"</\",c:[{cN:\"built_in\",b:\"\\\\b(AV|CA|CF|CG|CI|CL|CM|CN|CT|MK|MP|MTK|MTL|NS|SCN|SK|UI|WK|XC)\\\\w+\"},e.CLCM,e.CBCM,e.CNM,e.QSM,e.ASM,{cN:\"string\",v:[{b:'@\"',e:'\"',i:\"\\\\n\",c:[e.BE]}]},{cN:\"meta\",b:/#\\s*[a-z]+\\b/,e:/$/,k:{\"meta-keyword\":\"if else elif endif define undef warning error line pragma ifdef ifndef include\"},c:[{b:/\\\\\\n/,relevance:0},e.inherit(e.QSM,{cN:\"meta-string\"}),{cN:\"meta-string\",b:/<.*?>/,e:/$/,i:\"\\\\n\"},e.CLCM,e.CBCM]},{cN:\"class\",b:\"(\"+i.split(\" \").join(\"|\")+\")\\\\b\",e:\"({|$)\",eE:!0,k:i,l:t,c:[e.UTM]},{b:\"\\\\.\"+e.UIR,relevance:0}]}});hljs.registerLanguage(\"shell\",function(s){return{aliases:[\"console\"],c:[{cN:\"meta\",b:\"^\\\\s{0,3}[/\\\\w\\\\d\\\\[\\\\]()@-]*[>%$#]\",starts:{e:\"$\",sL:\"bash\"}}]}});hljs.registerLanguage(\"erlang\",function(e){var r=\"[a-z'][a-zA-Z0-9_']*\",c=\"(\"+r+\":\"+r+\"|\"+r+\")\",n={keyword:\"after and andalso|10 band begin bnot bor bsl bzr bxor case catch cond div end fun if let not of orelse|10 query receive rem try when xor\",literal:\"false true\"},a=e.C(\"%\",\"$\"),b={cN:\"number\",b:\"\\\\b(\\\\d+#[a-fA-F0-9]+|\\\\d+(\\\\.\\\\d+)?([eE][-+]?\\\\d+)?)\",relevance:0},i={b:\"fun\\\\s+\"+r+\"/\\\\d+\"},l={b:c+\"\\\\(\",e:\"\\\\)\",rB:!0,relevance:0,c:[{b:c,relevance:0},{b:\"\\\\(\",e:\"\\\\)\",eW:!0,rE:!0,relevance:0}]},d={b:\"{\",e:\"}\",relevance:0},o={b:\"\\\\b_([A-Z][A-Za-z0-9_]*)?\",relevance:0},t={b:\"[A-Z][a-zA-Z0-9_]*\",relevance:0},v={b:\"#\"+e.UIR,relevance:0,rB:!0,c:[{b:\"#\"+e.UIR,relevance:0},{b:\"{\",e:\"}\",relevance:0}]},f={bK:\"fun receive if try case\",e:\"end\",k:n};f.c=[a,i,e.inherit(e.ASM,{cN:\"\"}),f,l,e.QSM,b,d,o,t,v];var s=[a,i,f,l,e.QSM,b,d,o,t,v];l.c[1].c=s,d.c=s;var u={cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:v.c[1].c=s};return{aliases:[\"erl\"],k:n,i:\"(</|\\\\*=|\\\\+=|-=|/\\\\*|\\\\*/|\\\\(\\\\*|\\\\*\\\\))\",c:[{cN:\"function\",b:\"^\"+r+\"\\\\s*\\\\(\",e:\"->\",rB:!0,i:\"\\\\(|#|//|/\\\\*|\\\\\\\\|:|;\",c:[u,e.inherit(e.TM,{b:r})],starts:{e:\";|\\\\.\",k:n,c:s}},a,{b:\"^-\",e:\"\\\\.\",relevance:0,eE:!0,rB:!0,l:\"-\"+e.IR,k:\"-module -record -undef -export -ifdef -ifndef -author -copyright -doc -vsn -import -include -include_lib -compile -define -else -endif -file -behaviour -behavior -spec\",c:[u]},b,e.QSM,v,o,t,d,{b:/\\.$/}]}});hljs.registerLanguage(\"powershell\",function(e){var t={keyword:\"if else foreach return do while until elseif begin for trap data dynamicparam end break throw param continue finally in switch exit filter try process catch hidden static parameter\"},n={b:\"`[\\\\s\\\\S]\",relevance:0},c={cN:\"variable\",v:[{b:/\\$\\B/},{cN:\"keyword\",b:/\\$this/},{b:/\\$[\\w\\d][\\w\\d_:]*/}]},i={cN:\"string\",v:[{b:/\"/,e:/\"/},{b:/@\"/,e:/^\"@/}],c:[n,c,{cN:\"variable\",b:/\\$[A-z]/,e:/[^A-z]/}]},a={cN:\"string\",v:[{b:/'/,e:/'/},{b:/@'/,e:/^'@/}]},r=e.inherit(e.C(null,null),{v:[{b:/#/,e:/$/},{b:/<#/,e:/#>/}],c:[{cN:\"doctag\",v:[{b:/\\.(synopsis|description|example|inputs|outputs|notes|link|component|role|functionality)/},{b:/\\.(parameter|forwardhelptargetname|forwardhelpcategory|remotehelprunspace|externalhelp)\\s+\\S+/}]}]}),o={cN:\"built_in\",v:[{b:\"(\".concat(\"Add|Clear|Close|Copy|Enter|Exit|Find|Format|Get|Hide|Join|Lock|Move|New|Open|Optimize|Pop|Push|Redo|Remove|Rename|Reset|Resize|Search|Select|Set|Show|Skip|Split|Step|Switch|Undo|Unlock|Watch|Backup|Checkpoint|Compare|Compress|Convert|ConvertFrom|ConvertTo|Dismount|Edit|Expand|Export|Group|Import|Initialize|Limit|Merge|New|Out|Publish|Restore|Save|Sync|Unpublish|Update|Approve|Assert|Complete|Confirm|Deny|Disable|Enable|Install|Invoke|Register|Request|Restart|Resume|Start|Stop|Submit|Suspend|Uninstall|Unregister|Wait|Debug|Measure|Ping|Repair|Resolve|Test|Trace|Connect|Disconnect|Read|Receive|Send|Write|Block|Grant|Protect|Revoke|Unblock|Unprotect|Use|ForEach|Sort|Tee|Where\",\")+(-)[\\\\w\\\\d]+\")}]},l={cN:\"class\",bK:\"class enum\",e:/\\s*[{]/,eE:!0,relevance:0,c:[e.TM]},s={cN:\"function\",b:/function\\s+/,e:/\\s*\\{|$/,eE:!0,rB:!0,relevance:0,c:[{b:\"function\",relevance:0,cN:\"keyword\"},{cN:\"title\",b:/\\w[\\w\\d]*((-)[\\w\\d]+)*/,relevance:0},{b:/\\(/,e:/\\)/,cN:\"params\",relevance:0,c:[c]}]},p={b:/using\\s/,e:/$/,rB:!0,c:[i,a,{cN:\"keyword\",b:/(using|assembly|command|module|namespace|type)/}]},b={v:[{cN:\"operator\",b:\"(\".concat(\"-and|-as|-band|-bnot|-bor|-bxor|-casesensitive|-ccontains|-ceq|-cge|-cgt|-cle|-clike|-clt|-cmatch|-cne|-cnotcontains|-cnotlike|-cnotmatch|-contains|-creplace|-csplit|-eq|-exact|-f|-file|-ge|-gt|-icontains|-ieq|-ige|-igt|-ile|-ilike|-ilt|-imatch|-in|-ine|-inotcontains|-inotlike|-inotmatch|-ireplace|-is|-isnot|-isplit|-join|-le|-like|-lt|-match|-ne|-not|-notcontains|-notin|-notlike|-notmatch|-or|-regex|-replace|-shl|-shr|-split|-wildcard|-xor\",\")\\\\b\")},{cN:\"literal\",b:/(-)[\\w\\d]+/,relevance:0}]},d={cN:\"function\",b:/\\[.*\\]\\s*[\\w]+[ ]??\\(/,e:/$/,rB:!0,relevance:0,c:[{cN:\"keyword\",b:\"(\".concat(t.keyword.toString().replace(/\\s/g,\"|\"),\")\\\\b\"),endsParent:!0,relevance:0},e.inherit(e.TM,{endsParent:!0})]},u=[d,r,n,e.NM,i,a,o,c,{cN:\"literal\",b:/\\$(null|true|false)\\b/},{cN:\"selector-tag\",b:/\\@\\B/,relevance:0}],m={b:/\\[/,e:/\\]/,eB:!0,eE:!0,relevance:0,c:[].concat(\"self\",u,{b:\"(\"+[\"string\",\"char\",\"byte\",\"int\",\"long\",\"bool\",\"decimal\",\"single\",\"double\",\"DateTime\",\"xml\",\"array\",\"hashtable\",\"void\"].join(\"|\")+\")\",cN:\"built_in\",relevance:0},{cN:\"type\",b:/[\\.\\w\\d]+/,relevance:0})};return d.c.unshift(m),{aliases:[\"ps\",\"ps1\"],l:/-?[A-z\\.\\-]+/,cI:!0,k:t,c:u.concat(l,s,p,b,m)}});hljs.registerLanguage(\"typescript\",function(e){var r=\"[A-Za-z$_][0-9A-Za-z$_]*\",t={keyword:\"in if for while finally var new function do return void else break catch instanceof with throw case default try this switch continue typeof delete let yield const class public private protected get set super static implements enum export import declare type namespace abstract as from extends async await\",literal:\"true false null undefined NaN Infinity\",built_in:\"eval isFinite isNaN parseFloat parseInt decodeURI decodeURIComponent encodeURI encodeURIComponent escape unescape Object Function Boolean Error EvalError InternalError RangeError ReferenceError StopIteration SyntaxError TypeError URIError Number Math Date String RegExp Array Float32Array Float64Array Int16Array Int32Array Int8Array Uint16Array Uint32Array Uint8Array Uint8ClampedArray ArrayBuffer DataView JSON Intl arguments require module console window document any number boolean string void Promise\"},n={cN:\"meta\",b:\"@\"+r},a={b:\"\\\\(\",e:/\\)/,k:t,c:[\"self\",e.QSM,e.ASM,e.NM]},c={cN:\"params\",b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[e.CLCM,e.CBCM,n,a]},s={cN:\"number\",v:[{b:\"\\\\b(0[bB][01]+)n?\"},{b:\"\\\\b(0[oO][0-7]+)n?\"},{b:e.CNR+\"n?\"}],relevance:0},o={cN:\"subst\",b:\"\\\\$\\\\{\",e:\"\\\\}\",k:t,c:[]},i={b:\"html`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"xml\"}},l={b:\"css`\",e:\"\",starts:{e:\"`\",rE:!1,c:[e.BE,o],sL:\"css\"}},b={cN:\"string\",b:\"`\",e:\"`\",c:[e.BE,o]};return o.c=[e.ASM,e.QSM,i,l,b,s,e.RM],{aliases:[\"ts\"],k:t,c:[{cN:\"meta\",b:/^\\s*['\"]use strict['\"]/},e.ASM,e.QSM,i,l,b,e.CLCM,e.CBCM,s,{b:\"(\"+e.RSR+\"|\\\\b(case|return|throw)\\\\b)\\\\s*\",k:\"return throw case\",c:[e.CLCM,e.CBCM,e.RM,{cN:\"function\",b:\"(\\\\(.*?\\\\)|\"+e.IR+\")\\\\s*=>\",rB:!0,e:\"\\\\s*=>\",c:[{cN:\"params\",v:[{b:e.IR},{b:/\\(\\s*\\)/},{b:/\\(/,e:/\\)/,eB:!0,eE:!0,k:t,c:[\"self\",e.CLCM,e.CBCM]}]}]}],relevance:0},{cN:\"function\",bK:\"function\",e:/[\\{;]/,eE:!0,k:t,c:[\"self\",e.inherit(e.TM,{b:r}),c],i:/%/,relevance:0},{bK:\"constructor\",e:/[\\{;]/,eE:!0,c:[\"self\",c]},{b:/module\\./,k:{built_in:\"module\"},relevance:0},{bK:\"module\",e:/\\{/,eE:!0},{bK:\"interface\",e:/\\{/,eE:!0,k:\"interface extends\"},{b:/\\$[(.]/},{b:\"\\\\.\"+e.IR,relevance:0},n,a]}});hljs.registerLanguage(\"fortran\",function(e){return{cI:!0,aliases:[\"f90\",\"f95\"],k:{literal:\".False. .True.\",keyword:\"kind do while private call intrinsic where elsewhere type endtype endmodule endselect endinterface end enddo endif if forall endforall only contains default return stop then block endblock public subroutine|10 function program .and. .or. .not. .le. .eq. .ge. .gt. .lt. goto save else use module select case access blank direct exist file fmt form formatted iostat name named nextrec number opened rec recl sequential status unformatted unit continue format pause cycle exit c_null_char c_alert c_backspace c_form_feed flush wait decimal round iomsg synchronous nopass non_overridable pass protected volatile abstract extends import non_intrinsic value deferred generic final enumerator class associate bind enum c_int c_short c_long c_long_long c_signed_char c_size_t c_int8_t c_int16_t c_int32_t c_int64_t c_int_least8_t c_int_least16_t c_int_least32_t c_int_least64_t c_int_fast8_t c_int_fast16_t c_int_fast32_t c_int_fast64_t c_intmax_t C_intptr_t c_float c_double c_long_double c_float_complex c_double_complex c_long_double_complex c_bool c_char c_null_ptr c_null_funptr c_new_line c_carriage_return c_horizontal_tab c_vertical_tab iso_c_binding c_loc c_funloc c_associated c_f_pointer c_ptr c_funptr iso_fortran_env character_storage_size error_unit file_storage_size input_unit iostat_end iostat_eor numeric_storage_size output_unit c_f_procpointer ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode newunit contiguous recursive pad position action delim readwrite eor advance nml interface procedure namelist include sequence elemental pure integer real character complex logical dimension allocatable|10 parameter external implicit|10 none double precision assign intent optional pointer target in out common equivalence data\",built_in:\"alog alog10 amax0 amax1 amin0 amin1 amod cabs ccos cexp clog csin csqrt dabs dacos dasin datan datan2 dcos dcosh ddim dexp dint dlog dlog10 dmax1 dmin1 dmod dnint dsign dsin dsinh dsqrt dtan dtanh float iabs idim idint idnint ifix isign max0 max1 min0 min1 sngl algama cdabs cdcos cdexp cdlog cdsin cdsqrt cqabs cqcos cqexp cqlog cqsin cqsqrt dcmplx dconjg derf derfc dfloat dgamma dimag dlgama iqint qabs qacos qasin qatan qatan2 qcmplx qconjg qcos qcosh qdim qerf qerfc qexp qgamma qimag qlgama qlog qlog10 qmax1 qmin1 qmod qnint qsign qsin qsinh qsqrt qtan qtanh abs acos aimag aint anint asin atan atan2 char cmplx conjg cos cosh exp ichar index int log log10 max min nint sign sin sinh sqrt tan tanh print write dim lge lgt lle llt mod nullify allocate deallocate adjustl adjustr all allocated any associated bit_size btest ceiling count cshift date_and_time digits dot_product eoshift epsilon exponent floor fraction huge iand ibclr ibits ibset ieor ior ishft ishftc lbound len_trim matmul maxexponent maxloc maxval merge minexponent minloc minval modulo mvbits nearest pack present product radix random_number random_seed range repeat reshape rrspacing scale scan selected_int_kind selected_real_kind set_exponent shape size spacing spread sum system_clock tiny transpose trim ubound unpack verify achar iachar transfer dble entry dprod cpu_time command_argument_count get_command get_command_argument get_environment_variable is_iostat_end ieee_arithmetic ieee_support_underflow_control ieee_get_underflow_mode ieee_set_underflow_mode is_iostat_eor move_alloc new_line selected_char_kind same_type_as extends_type_ofacosh asinh atanh bessel_j0 bessel_j1 bessel_jn bessel_y0 bessel_y1 bessel_yn erf erfc erfc_scaled gamma log_gamma hypot norm2 atomic_define atomic_ref execute_command_line leadz trailz storage_size merge_bits bge bgt ble blt dshiftl dshiftr findloc iall iany iparity image_index lcobound ucobound maskl maskr num_images parity popcnt poppar shifta shiftl shiftr this_image\"},i:/\\/\\*/,c:[e.inherit(e.ASM,{cN:\"string\",relevance:0}),e.inherit(e.QSM,{cN:\"string\",relevance:0}),{cN:\"function\",bK:\"subroutine function program\",i:\"[${=\\\\n]\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\"}]},e.C(\"!\",\"$\",{relevance:0}),{cN:\"number\",b:\"(?=\\\\b|\\\\+|\\\\-|\\\\.)(?=\\\\.\\\\d|\\\\d)(?:\\\\d+)?(?:\\\\.?\\\\d*)(?:[de][+-]?\\\\d+)?\\\\b\\\\.?\",relevance:0}]}});hljs.registerLanguage(\"php\",function(e){var c={b:\"\\\\$+[a-zA-Z_-ÿ][a-zA-Z0-9_-ÿ]*\"},i={cN:\"meta\",b:/<\\?(php)?|\\?>/},t={cN:\"string\",c:[e.BE,i],v:[{b:'b\"',e:'\"'},{b:\"b'\",e:\"'\"},e.inherit(e.ASM,{i:null}),e.inherit(e.QSM,{i:null})]},a={v:[e.BNM,e.CNM]};return{aliases:[\"php\",\"php3\",\"php4\",\"php5\",\"php6\",\"php7\"],cI:!0,k:\"and include_once list abstract global private echo interface as static endswitch array null if endwhile or const for endforeach self var while isset public protected exit foreach throw elseif include __FILE__ empty require_once do xor return parent clone use __CLASS__ __LINE__ else break print eval new catch __METHOD__ case exception default die require __FUNCTION__ enddeclare final try switch continue endfor endif declare unset true false trait goto instanceof insteadof __DIR__ __NAMESPACE__ yield finally\",c:[e.HCM,e.C(\"//\",\"$\",{c:[i]}),e.C(\"/\\\\*\",\"\\\\*/\",{c:[{cN:\"doctag\",b:\"@[A-Za-z]+\"}]}),e.C(\"__halt_compiler.+?;\",!1,{eW:!0,k:\"__halt_compiler\",l:e.UIR}),{cN:\"string\",b:/<<<['\"]?\\w+['\"]?$/,e:/^\\w+;?$/,c:[e.BE,{cN:\"subst\",v:[{b:/\\$\\w+/},{b:/\\{\\$/,e:/\\}/}]}]},i,{cN:\"keyword\",b:/\\$this\\b/},c,{b:/(::|->)+[a-zA-Z_\\x7f-\\xff][a-zA-Z0-9_\\x7f-\\xff]*/},{cN:\"function\",bK:\"function\",e:/[;{]/,eE:!0,i:\"\\\\$|\\\\[|%\",c:[e.UTM,{cN:\"params\",b:\"\\\\(\",e:\"\\\\)\",c:[\"self\",c,e.CBCM,t,a]}]},{cN:\"class\",bK:\"class interface\",e:\"{\",eE:!0,i:/[:\\(\\$\"]/,c:[{bK:\"extends implements\"},e.UTM]},{bK:\"namespace\",e:\";\",i:/[\\.']/,c:[e.UTM]},{bK:\"use\",e:\";\",c:[e.UTM]},{b:\"=>\"},t,a]}});hljs.registerLanguage(\"haskell\",function(e){var i={v:[e.C(\"--\",\"$\"),e.C(\"{-\",\"-}\",{c:[\"self\"]})]},a={cN:\"meta\",b:\"{-#\",e:\"#-}\"},l={cN:\"meta\",b:\"^#\",e:\"$\"},c={cN:\"type\",b:\"\\\\b[A-Z][\\\\w']*\",relevance:0},n={b:\"\\\\(\",e:\"\\\\)\",i:'\"',c:[a,l,{cN:\"type\",b:\"\\\\b[A-Z][\\\\w]*(\\\\((\\\\.\\\\.|,|\\\\w+)\\\\))?\"},e.inherit(e.TM,{b:\"[_a-z][\\\\w']*\"}),i]};return{aliases:[\"hs\"],k:\"let in if then else case of where do module import hiding qualified type data newtype deriving class instance as default infix infixl infixr foreign export ccall stdcall cplusplus jvm dotnet safe unsafe family forall mdo proc rec\",c:[{bK:\"module\",e:\"where\",k:\"module where\",c:[n,i],i:\"\\\\W\\\\.|;\"},{b:\"\\\\bimport\\\\b\",e:\"$\",k:\"import qualified as hiding\",c:[n,i],i:\"\\\\W\\\\.|;\"},{cN:\"class\",b:\"^(\\\\s*)?(class|instance)\\\\b\",e:\"where\",k:\"class family instance where\",c:[c,n,i]},{cN:\"class\",b:\"\\\\b(data|(new)?type)\\\\b\",e:\"$\",k:\"data family type newtype deriving\",c:[a,c,n,{b:\"{\",e:\"}\",c:n.c},i]},{bK:\"default\",e:\"$\",c:[c,n,i]},{bK:\"infix infixl infixr\",e:\"$\",c:[e.CNM,i]},{b:\"\\\\bforeign\\\\b\",e:\"$\",k:\"foreign import export ccall stdcall cplusplus jvm dotnet safe unsafe\",c:[c,e.QSM,i]},{cN:\"meta\",b:\"#!\\\\/usr\\\\/bin\\\\/env runhaskell\",e:\"$\"},a,l,e.QSM,e.CNM,c,e.inherit(e.TM,{b:\"^[_a-z][\\\\w']*\"}),i,{b:\"->|<-\"}]}});hljs.registerLanguage(\"coffeescript\",function(e){var c={keyword:\"in if for while finally new do return else break catch instanceof throw try this switch continue typeof delete debugger super yield import export from as default await then unless until loop of by when and or is isnt not\",literal:\"true false null undefined yes no on off\",built_in:\"npm require console print module global window document\"},n=\"[A-Za-z$_][0-9A-Za-z$_]*\",r={cN:\"subst\",b:/#\\{/,e:/}/,k:c},i=[e.BNM,e.inherit(e.CNM,{starts:{e:\"(\\\\s*/)?\",relevance:0}}),{cN:\"string\",v:[{b:/'''/,e:/'''/,c:[e.BE]},{b:/'/,e:/'/,c:[e.BE]},{b:/\"\"\"/,e:/\"\"\"/,c:[e.BE,r]},{b:/\"/,e:/\"/,c:[e.BE,r]}]},{cN:\"regexp\",v:[{b:\"///\",e:\"///\",c:[r,e.HCM]},{b:\"//[gim]{0,3}(?=\\\\W)\",relevance:0},{b:/\\/(?![ *]).*?(?![\\\\]).\\/[gim]{0,3}(?=\\W)/}]},{b:\"@\"+n},{sL:\"javascript\",eB:!0,eE:!0,v:[{b:\"```\",e:\"```\"},{b:\"`\",e:\"`\"}]}];r.c=i;var s=e.inherit(e.TM,{b:n}),t=\"(\\\\(.*\\\\))?\\\\s*\\\\B[-=]>\",a={cN:\"params\",b:\"\\\\([^\\\\(]\",rB:!0,c:[{b:/\\(/,e:/\\)/,k:c,c:[\"self\"].concat(i)}]};return{aliases:[\"coffee\",\"cson\",\"iced\"],k:c,i:/\\/\\*/,c:i.concat([e.C(\"###\",\"###\"),e.HCM,{cN:\"function\",b:\"^\\\\s*\"+n+\"\\\\s*=\\\\s*\"+t,e:\"[-=]>\",rB:!0,c:[s,a]},{b:/[:\\(,=]\\s*/,relevance:0,c:[{cN:\"function\",b:t,e:\"[-=]>\",rB:!0,c:[a]}]},{cN:\"class\",bK:\"class\",e:\"$\",i:/[:=\"\\[\\]]/,c:[{bK:\"extends\",eW:!0,i:/[:=\"\\[\\]]/,c:[s]},s]},{b:n+\":\",e:\":\",rB:!0,rE:!0,relevance:0}])}});hljs.registerLanguage(\"r\",function(e){var r=\"([a-zA-Z]|\\\\.[a-zA-Z.])[a-zA-Z0-9._]*\";return{c:[e.HCM,{b:r,l:r,k:{keyword:\"function if in break next repeat else for return switch while try tryCatch stop warning require library attach detach source setMethod setGeneric setGroupGeneric setClass ...\",literal:\"NULL NA TRUE FALSE T F Inf NaN NA_integer_|10 NA_real_|10 NA_character_|10 NA_complex_|10\"},relevance:0},{cN:\"number\",b:\"0[xX][0-9a-fA-F]+[Li]?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:[eE][+\\\\-]?\\\\d*)?L\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\d+\\\\.(?!\\\\d)(?:i\\\\b)?\",relevance:0},{cN:\"number\",b:\"\\\\d+(?:\\\\.\\\\d*)?(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{cN:\"number\",b:\"\\\\.\\\\d+(?:[eE][+\\\\-]?\\\\d*)?i?\\\\b\",relevance:0},{b:\"`\",e:\"`\",relevance:0},{cN:\"string\",c:[e.BE],v:[{b:'\"',e:'\"'},{b:\"'\",e:\"'\"}]}]}});hljs.registerLanguage(\"autohotkey\",function(e){var a={b:\"`[\\\\s\\\\S]\"};return{cI:!0,aliases:[\"ahk\"],k:{keyword:\"Break Continue Critical Exit ExitApp Gosub Goto New OnExit Pause return SetBatchLines SetTimer Suspend Thread Throw Until ahk_id ahk_class ahk_pid ahk_exe ahk_group\",literal:\"true false NOT AND OR\",built_in:\"ComSpec Clipboard ClipboardAll ErrorLevel\"},c:[a,e.inherit(e.QSM,{c:[a]}),e.C(\";\",\"$\",{relevance:0}),e.CBCM,{cN:\"number\",b:e.NR,relevance:0},{cN:\"variable\",b:\"%[a-zA-Z0-9#_$@]+%\"},{cN:\"built_in\",b:\"^\\\\s*\\\\w+\\\\s*(,|%)\"},{cN:\"title\",v:[{b:'^[^\\\\n\";]+::(?!=)'},{b:'^[^\\\\n\";]+:(?!=)',relevance:0}]},{cN:\"meta\",b:\"^\\\\s*#\\\\w+\",e:\"$\",relevance:0},{cN:\"built_in\",b:\"A_[a-zA-Z0-9]+\"},{b:\",\\\\s*,\"}]}});hljs.registerLanguage(\"elixir\",function(e){var b=\"[a-zA-Z_][a-zA-Z0-9_.]*(\\\\!|\\\\?)?\",c=\"and false then defined module in return redo retry end for true self when next until do begin unless nil break not case cond alias while ensure or include use alias fn quote require import with|0\",n={cN:\"subst\",b:\"#\\\\{\",e:\"}\",l:b,k:c},r=\"[/|([{<\\\"']\",a={cN:\"string\",b:\"~[a-z](?=\"+r+\")\",c:[{endsParent:!0,c:[{c:[e.BE,n],v:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/</,e:/>/}]}]}]},i={cN:\"string\",b:\"~[A-Z](?=\"+r+\")\",c:[{b:/\"/,e:/\"/},{b:/'/,e:/'/},{b:/\\//,e:/\\//},{b:/\\|/,e:/\\|/},{b:/\\(/,e:/\\)/},{b:/\\[/,e:/\\]/},{b:/\\{/,e:/\\}/},{b:/\\</,e:/\\>/}]},l={cN:\"string\",c:[e.BE,n],v:[{b:/\"\"\"/,e:/\"\"\"/},{b:/'''/,e:/'''/},{b:/~S\"\"\"/,e:/\"\"\"/,c:[]},{b:/~S\"/,e:/\"/,c:[]},{b:/~S'''/,e:/'''/,c:[]},{b:/~S'/,e:/'/,c:[]},{b:/'/,e:/'/},{b:/\"/,e:/\"/}]},s={cN:\"function\",bK:\"def defp defmacro\",e:/\\B\\b/,c:[e.inherit(e.TM,{b:b,endsParent:!0})]},t=e.inherit(s,{cN:\"class\",bK:\"defimpl defmodule defprotocol defrecord\",e:/\\bdo\\b|$|;/}),d=[l,i,a,e.HCM,t,s,{b:\"::\"},{cN:\"symbol\",b:\":(?![\\\\s:])\",c:[l,{b:\"[a-zA-Z_]\\\\w*[!?=]?|[-+~]\\\\@|<<|>>|=~|===?|<=>|[<>]=?|\\\\*\\\\*|[-/+%^&*~`|]|\\\\[\\\\]=?\"}],relevance:0},{cN:\"symbol\",b:b+\":(?!:)\",relevance:0},{cN:\"number\",b:\"(\\\\b0o[0-7_]+)|(\\\\b0b[01_]+)|(\\\\b0x[0-9a-fA-F_]+)|(-?\\\\b[1-9][0-9_]*(.[0-9_]+([eE][-+]?[0-9]+)?)?)\",relevance:0},{cN:\"variable\",b:\"(\\\\$\\\\W)|((\\\\$|\\\\@\\\\@?)(\\\\w+))\"},{b:\"->\"},{b:\"(\"+e.RSR+\")\\\\s*\",c:[e.HCM,{cN:\"regexp\",i:\"\\\\n\",c:[e.BE,n],v:[{b:\"/\",e:\"/[a-z]*\"},{b:\"%r\\\\[\",e:\"\\\\][a-z]*\"}]}],relevance:0}];return{l:b,k:c,c:n.c=d}});hljs.registerLanguage(\"gradle\",function(e){return{cI:!0,k:{keyword:\"task project allprojects subprojects artifacts buildscript configurations dependencies repositories sourceSets description delete from into include exclude source classpath destinationDir includes options sourceCompatibility targetCompatibility group flatDir doLast doFirst flatten todir fromdir ant def abstract break case catch continue default do else extends final finally for if implements instanceof native new private protected public return static switch synchronized throw throws transient try volatile while strictfp package import false null super this true antlrtask checkstyle codenarc copy boolean byte char class double float int interface long short void compile runTime file fileTree abs any append asList asWritable call collect compareTo count div dump each eachByte eachFile eachLine every find findAll flatten getAt getErr getIn getOut getText grep immutable inject inspect intersect invokeMethods isCase join leftShift minus multiply newInputStream newOutputStream newPrintWriter newReader newWriter next plus pop power previous print println push putAt read readBytes readLines reverse reverseEach round size sort splitEachLine step subMap times toInteger toList tokenize upto waitForOrKill withPrintWriter withReader withStream withWriter withWriterAppend write writeLine\"},c:[e.CLCM,e.CBCM,e.ASM,e.QSM,e.NM,e.RM]}});hljs.registerLanguage(\"css\",function(e){var c={b:/(?:[A-Z\\_\\.\\-]+|--[a-zA-Z0-9_-]+)\\s*:/,rB:!0,e:\";\",eW:!0,c:[{cN:\"attribute\",b:/\\S/,e:\":\",eE:!0,starts:{eW:!0,eE:!0,c:[{b:/[\\w-]+\\(/,rB:!0,c:[{cN:\"built_in\",b:/[\\w-]+/},{b:/\\(/,e:/\\)/,c:[e.ASM,e.QSM,e.CSSNM]}]},e.CSSNM,e.QSM,e.ASM,e.CBCM,{cN:\"number\",b:\"#[0-9A-Fa-f]+\"},{cN:\"meta\",b:\"!important\"}]}}]};return{cI:!0,i:/[=\\/|'\\$]/,c:[e.CBCM,{cN:\"selector-id\",b:/#[A-Za-z0-9_-]+/},{cN:\"selector-class\",b:/\\.[A-Za-z0-9_-]+/},{cN:\"selector-attr\",b:/\\[/,e:/\\]/,i:\"$\",c:[e.ASM,e.QSM]},{cN:\"selector-pseudo\",b:/:(:)?[a-zA-Z0-9\\_\\-\\+\\(\\)\"'.]+/},{b:\"@(page|font-face)\",l:\"@[a-z-]+\",k:\"@page @font-face\"},{b:\"@\",e:\"[{;]\",i:/:/,rB:!0,c:[{cN:\"keyword\",b:/@\\-?\\w[\\w]*(\\-\\w+)*/},{b:/\\s/,eW:!0,eE:!0,relevance:0,k:\"and or not only\",c:[{b:/[a-z-]+:/,cN:\"attribute\"},e.ASM,e.QSM,e.CSSNM]}]},{cN:\"selector-tag\",b:\"[a-zA-Z-][a-zA-Z0-9_-]*\",relevance:0},{b:\"{\",e:\"}\",i:/\\S/,c:[e.CBCM,c]}]}});\n\nexports.hljs = hljs;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/highlight/highlight.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/highlight/highlight.css": {
"text": "/*\n\nOriginal highlight.js style (c) Ivan Sagalaev <maniac@softwaremaniacs.org>\n\n*/\n\n.hljs {\n display: block;\n overflow-x: auto;\n padding: 0.5em;\n background: #F0F0F0;\n}\n\n\n/* Base color: saturation 0; */\n\n.hljs,\n.hljs-subst {\n color: #444;\n}\n\n.hljs-comment {\n color: #888888;\n}\n\n.hljs-keyword,\n.hljs-attribute,\n.hljs-selector-tag,\n.hljs-meta-keyword,\n.hljs-doctag,\n.hljs-name {\n font-weight: bold;\n}\n\n\n/* User color: hue: 0 */\n\n.hljs-type,\n.hljs-string,\n.hljs-number,\n.hljs-selector-id,\n.hljs-selector-class,\n.hljs-quote,\n.hljs-template-tag,\n.hljs-deletion {\n color: #880000;\n}\n\n.hljs-title,\n.hljs-section {\n color: #880000;\n font-weight: bold;\n}\n\n.hljs-regexp,\n.hljs-symbol,\n.hljs-variable,\n.hljs-template-variable,\n.hljs-link,\n.hljs-selector-attr,\n.hljs-selector-pseudo {\n color: #BC6060;\n}\n\n\n/* Language color: hue: 90; */\n\n.hljs-literal {\n color: #78A960;\n}\n\n.hljs-built_in,\n.hljs-bullet,\n.hljs-code,\n.hljs-addition {\n color: #397300;\n}\n\n\n/* Meta color: hue: 200 */\n\n.hljs-meta {\n color: #1f7199;\n}\n\n.hljs-meta-string {\n color: #4d99bf;\n}\n\n\n/* Misc effects */\n\n.hljs-emphasis {\n font-style: italic;\n}\n\n.hljs-strong {\n font-weight: bold;\n}\n",
"type": "text/css",
"title": "$:/plugins/tiddlywiki/highlight/highlight.css",
"tags": "[[$:/tags/Stylesheet]]"
},
"$:/plugins/tiddlywiki/highlight/highlightblock.js": {
"title": "$:/plugins/tiddlywiki/highlight/highlightblock.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/highlight/highlightblock.js\ntype: application/javascript\nmodule-type: widget\n\nWraps up the fenced code blocks parser for highlight and use in TiddlyWiki5\n\n\\*/\n(function() {\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar TYPE_MAPPINGS_BASE = \"$:/config/HighlightPlugin/TypeMappings/\";\n\nvar CodeBlockWidget = require(\"$:/core/modules/widgets/codeblock.js\").codeblock;\n\nvar hljs = require(\"$:/plugins/tiddlywiki/highlight/highlight.js\");\n\nhljs.configure({tabReplace: \" \"});\t\n\nCodeBlockWidget.prototype.postRender = function() {\n\tvar domNode = this.domNodes[0],\n\t\tlanguage = this.language,\n\t\ttiddler = this.wiki.getTiddler(TYPE_MAPPINGS_BASE + language);\n\tif(tiddler) {\n\t\tlanguage = tiddler.fields.text || \"\";\n\t}\n\tif(language && hljs.getLanguage(language)) {\n\t\tdomNode.className = language.toLowerCase() + \" hljs\";\n\t\tif($tw.browser && !domNode.isTiddlyWikiFakeDom) {\n\t\t\thljs.highlightBlock(domNode);\t\t\t\n\t\t} else {\n\t\t\tvar text = domNode.textContent;\n\t\t\tdomNode.children[0].innerHTML = hljs.fixMarkup(hljs.highlight(language,text).value);\n\t\t\t// If we're using the fakedom then specially save the original raw text\n\t\t\tif(domNode.isTiddlyWikiFakeDom) {\n\t\t\t\tdomNode.children[0].textInnerHTML = text;\n\t\t\t}\n\t\t}\n\t}\t\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/highlight/howto": {
"title": "$:/plugins/tiddlywiki/highlight/howto",
"text": "! Supporting Additional Languages\n \nThe [[highlight.js|https://github.com/highlightjs/highlight.js]] project supports many languages. Only a subset of these languages are supported by the plugin. It is possible for users to change the set of languages supported by the plugin by following these steps:\n \n# Go to the highlight.js project [[download page|https://highlightjs.org/download/]], select the language definitions to include, and press the Download button to download a zip archive containing customised support files for a highlight.js syntax highlighting server.\n# Locate the `highlight.pack.js` file in the highlight plugin -- on a stock Debian 8 system running Tiddlywiki5 under node-js it is located at `/usr/local/lib/node_modules/tiddlywiki/plugins/tiddlywiki/highlight/files/highlight.pack.js`.\n# Replace the plugin `highlight.pack.js` file located in step 2 with the one from the downloaded archive obtained in step 1.\n# Restart the Tiddlywiki server.\n"
},
"$:/plugins/tiddlywiki/highlight/license": {
"title": "$:/plugins/tiddlywiki/highlight/license",
"type": "text/plain",
"text": "Copyright (c) 2006, Ivan Sagalaev\nAll rights reserved.\nRedistribution and use in source and binary forms, with or without\nmodification, are permitted provided that the following conditions are met:\n\n * Redistributions of source code must retain the above copyright\n notice, this list of conditions and the following disclaimer.\n * Redistributions in binary form must reproduce the above copyright\n notice, this list of conditions and the following disclaimer in the\n documentation and/or other materials provided with the distribution.\n * Neither the name of highlight.js nor the names of its contributors\n may be used to endorse or promote products derived from this software\n without specific prior written permission.\n\nTHIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND ANY\nEXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\nWARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\nDISCLAIMED. IN NO EVENT SHALL THE REGENTS AND CONTRIBUTORS BE LIABLE FOR ANY\nDIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\nLOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\nON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\nSOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n"
},
"$:/plugins/tiddlywiki/highlight/readme": {
"title": "$:/plugins/tiddlywiki/highlight/readme",
"text": "This plugin provides syntax highlighting of code blocks using v9.18.1 of [[highlight.js|https://github.com/isagalaev/highlight.js]] from Ivan Sagalaev.\n\n! Usage\n\nWhen the plugin is installed it automatically applies highlighting to all codeblocks defined with triple backticks or with the CodeBlockWidget.\n\nThe language can optionally be specified after the opening triple braces:\n\n<$codeblock code=\"\"\"```css\n * { margin: 0; padding: 0; } /* micro reset */\n\nhtml { font-size: 62.5%; }\nbody { font-size: 14px; font-size: 1.4rem; } /* =14px */\nh1 { font-size: 24px; font-size: 2.4rem; } /* =24px */\n```\"\"\"/>\n\nIf no language is specified highlight.js will attempt to automatically detect the language.\n\n! Built-in Language Brushes\n\nThe plugin includes support for the following languages (referred to as \"brushes\" by highlight.js):\n\n* apache\n* arduino\n* arm assembly\n* asciidoc\n* autohotkey\n* awk\n* bash\n* cmake\n* coffeescript\n* cpp\n* cs\n* css\n* diff\n* dockerfile\n* erlang\n* elixir\n* fortran\n* go\n* gradle\n* haskell\n* html\n* http\n* ini\n* intel x86 assembly\n* java\n* javascript\n* json\n* kotlin\n* less\n* lua\n* makefile\n* markdown\n* mathematica\n* matlab\n* nginx\n* objectivec\n* perl\n* php\n* plaintext\n* powershell\n* properties\n* python\n* R\n* ruby\n* rust\n* scss\n* shell session\n* sql\n* swift\n* toml\n* typescript\n* vala\n* vim script\n* xml\n* yaml\n\nYou can also specify the language as a MIME content type (eg `text/html` or `text/css`). The mapping is accomplished via mapping tiddlers whose titles start with `$:/config/HighlightPlugin/TypeMappings/`.\n"
},
"$:/plugins/tiddlywiki/highlight/styles": {
"title": "$:/plugins/tiddlywiki/highlight/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": ".hljs{display:block;overflow-x:auto;padding:.5em;color:#333;background:#f8f8f8;-webkit-text-size-adjust:none}.hljs-comment,.diff .hljs-header,.hljs-javadoc{color:#998;font-style:italic}.hljs-keyword,.css .rule .hljs-keyword,.hljs-winutils,.nginx .hljs-title,.hljs-subst,.hljs-request,.hljs-status{color:#333;font-weight:bold}.hljs-number,.hljs-hexcolor,.ruby .hljs-constant{color:teal}.hljs-string,.hljs-tag .hljs-value,.hljs-phpdoc,.hljs-dartdoc,.tex .hljs-formula{color:#d14}.hljs-title,.hljs-id,.scss .hljs-preprocessor{color:#900;font-weight:bold}.hljs-list .hljs-keyword,.hljs-subst{font-weight:normal}.hljs-class .hljs-title,.hljs-type,.vhdl .hljs-literal,.tex .hljs-command{color:#458;font-weight:bold}.hljs-tag,.hljs-tag .hljs-title,.hljs-rule .hljs-property,.django .hljs-tag .hljs-keyword{color:navy;font-weight:normal}.hljs-attribute,.hljs-variable,.lisp .hljs-body,.hljs-name{color:teal}.hljs-regexp{color:#009926}.hljs-symbol,.ruby .hljs-symbol .hljs-string,.lisp .hljs-keyword,.clojure .hljs-keyword,.scheme .hljs-keyword,.tex .hljs-special,.hljs-prompt{color:#990073}.hljs-built_in{color:#0086b3}.hljs-preprocessor,.hljs-pragma,.hljs-pi,.hljs-doctype,.hljs-shebang,.hljs-cdata{color:#999;font-weight:bold}.hljs-deletion{background:#fdd}.hljs-addition{background:#dfd}.diff .hljs-change{background:#0086b3}.hljs-chunk{color:#aaa}"
},
"$:/plugins/tiddlywiki/highlight/usage": {
"title": "$:/plugins/tiddlywiki/highlight/usage",
"text": "! Usage\n\nFenced code blocks can have a language specifier added to trigger highlighting in a specific language. Otherwise heuristics are used to detect the language.\n\n```\n ```js\n var a = b + c; // Highlighted as JavaScript\n ```\n```\n! Adding Themes\n\nYou can add themes from highlight.js by copying the CSS to a new tiddler and tagging it with [[$:/tags/Stylesheet]]. The available themes can be found on GitHub:\n\nhttps://github.com/isagalaev/highlight.js/tree/master/src/styles\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree": {
"title": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree",
"tags": "$:/tags/EditPreview",
"list-after": "$:/core/ui/EditTemplate/body/preview/output",
"caption": "parse tree",
"text": "\\define preview(mode)\n<$wikify name=\"preview-text\" text={{!!text}} type={{!!type}} mode=\"$mode$\" output=\"parsetree\">\n<pre>\n<code>\n<$text text=<<preview-text>>/>\n</code>\n</pre>\n</$wikify>\n\\end\n\n{{||$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared}}\n"
},
"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw": {
"title": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/raw",
"tags": "$:/tags/EditPreview",
"caption": "raw HTML",
"list-after": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree",
"text": "<pre><code><$view field=\"text\" format=\"htmlwikified\" /></code></pre>\n"
},
"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared": {
"title": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared",
"text": "\\define body()\n\nMode: <$select tiddler=\"$(tv-mode-configuration)$\" default=\"block\">\n<option value=\"inline\">Inline</option>\n<option value=\"block\">Block</option>\n</$select>\n\n<$macrocall $name=\"preview\" mode={{$(tv-mode-configuration)$}}/>\n\\end\n\n<div class=\"tc-internal-tree-preview-wrapper\">\n\n<div class=\"tc-internal-tree-preview\">\n\n<$vars tv-mode-configuration=<<qualify \"$:/state/internals/preview/mode\">>>\n\n<<body>>\n\n</$vars>\n\n</div>\n\n</div>\n"
},
"$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree": {
"title": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/widget-tree",
"tags": "$:/tags/EditPreview",
"caption": "widget tree",
"list-after": "$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/parse-tree",
"text": "\\define preview(mode)\n<$wikify name=\"preview-text\" text={{!!text}} type={{!!type}} mode=\"$mode$\" output=\"widgettree\">\n<pre>\n<code>\n<$text text=<<preview-text>>/>\n</code>\n</pre>\n</$wikify>\n\\end\n\n{{||$:/plugins/tiddlywiki/internals/EditTemplate/body/preview/shared}}\n"
},
"$:/plugins/tiddlywiki/internals/readme": {
"title": "$:/plugins/tiddlywiki/internals/readme",
"text": "This plugin adds features to help explore the internals of TiddlyWiki:\n\n* New preview panes showing:\n** the parse tree\n** the widget tree\n** the raw HTML output\n\nThe first two include a dropdown for choosing block vs. inline parsing mode.\n"
},
"$:/plugins/tiddlywiki/internals/styles": {
"title": "$:/plugins/tiddlywiki/internals/styles",
"tags": "$:/tags/Stylesheet",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/jszip/jszip.js": {
"text": "/*!\n\nJSZip - A Javascript class for generating and reading zip files\n<http://stuartk.com/jszip>\n\n(c) 2009-2014 Stuart Knightley <stuart [at] stuartk.com>\nDual licenced under the MIT license or GPLv3. See https://raw.github.com/Stuk/jszip/master/LICENSE.markdown.\n\nJSZip uses the library pako released under the MIT license :\nhttps://github.com/nodeca/pako/blob/master/LICENSE\n*/\n!function(a){if(\"object\"==typeof exports&&\"undefined\"!=typeof module)module.exports=a();else if(\"function\"==typeof define&&define.amd)define([],a);else{var b;b=\"undefined\"!=typeof window?window:\"undefined\"!=typeof global?global:\"undefined\"!=typeof self?self:this,b.JSZip=a()}}(function(){return function a(b,c,d){function e(g,h){if(!c[g]){if(!b[g]){var i=\"function\"==typeof require&&require;if(!h&&i)return i(g,!0);if(f)return f(g,!0);var j=new Error(\"Cannot find module '\"+g+\"'\");throw j.code=\"MODULE_NOT_FOUND\",j}var k=c[g]={exports:{}};b[g][0].call(k.exports,function(a){var c=b[g][1][a];return e(c?c:a)},k,k.exports,a,b,c,d)}return c[g].exports}for(var f=\"function\"==typeof require&&require,g=0;g<d.length;g++)e(d[g]);return e}({1:[function(a,b,c){\"use strict\";function d(a){if(a){this.data=a,this.length=this.data.length,this.index=0,this.zero=0;for(var b=0;b<this.data.length;b++)a[b]=255&a[b]}}var e=a(\"./dataReader\");d.prototype=new e,d.prototype.byteAt=function(a){return this.data[this.zero+a]},d.prototype.lastIndexOfSignature=function(a){for(var b=a.charCodeAt(0),c=a.charCodeAt(1),d=a.charCodeAt(2),e=a.charCodeAt(3),f=this.length-4;f>=0;--f)if(this.data[f]===b&&this.data[f+1]===c&&this.data[f+2]===d&&this.data[f+3]===e)return f-this.zero;return-1},d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return[];var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./dataReader\":6}],2:[function(a,b,c){\"use strict\";var d=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";c.encode=function(a,b){for(var c,e,f,g,h,i,j,k=\"\",l=0;l<a.length;)c=a.charCodeAt(l++),e=a.charCodeAt(l++),f=a.charCodeAt(l++),g=c>>2,h=(3&c)<<4|e>>4,i=(15&e)<<2|f>>6,j=63&f,isNaN(e)?i=j=64:isNaN(f)&&(j=64),k=k+d.charAt(g)+d.charAt(h)+d.charAt(i)+d.charAt(j);return k},c.decode=function(a,b){var c,e,f,g,h,i,j,k=\"\",l=0;for(a=a.replace(/[^A-Za-z0-9\\+\\/\\=]/g,\"\");l<a.length;)g=d.indexOf(a.charAt(l++)),h=d.indexOf(a.charAt(l++)),i=d.indexOf(a.charAt(l++)),j=d.indexOf(a.charAt(l++)),c=g<<2|h>>4,e=(15&h)<<4|i>>2,f=(3&i)<<6|j,k+=String.fromCharCode(c),64!=i&&(k+=String.fromCharCode(e)),64!=j&&(k+=String.fromCharCode(f));return k}},{}],3:[function(a,b,c){\"use strict\";function d(){this.compressedSize=0,this.uncompressedSize=0,this.crc32=0,this.compressionMethod=null,this.compressedContent=null}d.prototype={getContent:function(){return null},getCompressedContent:function(){return null}},b.exports=d},{}],4:[function(a,b,c){\"use strict\";c.STORE={magic:\"\\0\\0\",compress:function(a,b){return a},uncompress:function(a){return a},compressInputType:null,uncompressInputType:null},c.DEFLATE=a(\"./flate\")},{\"./flate\":9}],5:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=[0,1996959894,3993919788,2567524794,124634137,1886057615,3915621685,2657392035,249268274,2044508324,3772115230,2547177864,162941995,2125561021,3887607047,2428444049,498536548,1789927666,4089016648,2227061214,450548861,1843258603,4107580753,2211677639,325883990,1684777152,4251122042,2321926636,335633487,1661365465,4195302755,2366115317,997073096,1281953886,3579855332,2724688242,1006888145,1258607687,3524101629,2768942443,901097722,1119000684,3686517206,2898065728,853044451,1172266101,3705015759,2882616665,651767980,1373503546,3369554304,3218104598,565507253,1454621731,3485111705,3099436303,671266974,1594198024,3322730930,2970347812,795835527,1483230225,3244367275,3060149565,1994146192,31158534,2563907772,4023717930,1907459465,112637215,2680153253,3904427059,2013776290,251722036,2517215374,3775830040,2137656763,141376813,2439277719,3865271297,1802195444,476864866,2238001368,4066508878,1812370925,453092731,2181625025,4111451223,1706088902,314042704,2344532202,4240017532,1658658271,366619977,2362670323,4224994405,1303535960,984961486,2747007092,3569037538,1256170817,1037604311,2765210733,3554079995,1131014506,879679996,2909243462,3663771856,1141124467,855842277,2852801631,3708648649,1342533948,654459306,3188396048,3373015174,1466479909,544179635,3110523913,3462522015,1591671054,702138776,2966460450,3352799412,1504918807,783551873,3082640443,3233442989,3988292384,2596254646,62317068,1957810842,3939845945,2647816111,81470997,1943803523,3814918930,2489596804,225274430,2053790376,3826175755,2466906013,167816743,2097651377,4027552580,2265490386,503444072,1762050814,4150417245,2154129355,426522225,1852507879,4275313526,2312317920,282753626,1742555852,4189708143,2394877945,397917763,1622183637,3604390888,2714866558,953729732,1340076626,3518719985,2797360999,1068828381,1219638859,3624741850,2936675148,906185462,1090812512,3747672003,2825379669,829329135,1181335161,3412177804,3160834842,628085408,1382605366,3423369109,3138078467,570562233,1426400815,3317316542,2998733608,733239954,1555261956,3268935591,3050360625,752459403,1541320221,2607071920,3965973030,1969922972,40735498,2617837225,3943577151,1913087877,83908371,2512341634,3803740692,2075208622,213261112,2463272603,3855990285,2094854071,198958881,2262029012,4057260610,1759359992,534414190,2176718541,4139329115,1873836001,414664567,2282248934,4279200368,1711684554,285281116,2405801727,4167216745,1634467795,376229701,2685067896,3608007406,1308918612,956543938,2808555105,3495958263,1231636301,1047427035,2932959818,3654703836,1088359270,936918e3,2847714899,3736837829,1202900863,817233897,3183342108,3401237130,1404277552,615818150,3134207493,3453421203,1423857449,601450431,3009837614,3294710456,1567103746,711928724,3020668471,3272380065,1510334235,755167117];b.exports=function(a,b){if(\"undefined\"==typeof a||!a.length)return 0;var c=\"string\"!==d.getTypeOf(a);\"undefined\"==typeof b&&(b=0);var f=0,g=0,h=0;b^=-1;for(var i=0,j=a.length;i<j;i++)h=c?a[i]:a.charCodeAt(i),g=255&(b^h),f=e[g],b=b>>>8^f;return b^-1}},{\"./utils\":22}],6:[function(a,b,c){\"use strict\";function d(a){this.data=null,this.length=0,this.index=0,this.zero=0}var e=a(\"./utils\");d.prototype={checkOffset:function(a){this.checkIndex(this.index+a)},checkIndex:function(a){if(this.length<this.zero+a||a<0)throw new Error(\"End of data reached (data length = \"+this.length+\", asked index = \"+a+\"). Corrupted zip ?\")},setIndex:function(a){this.checkIndex(a),this.index=a},skip:function(a){this.setIndex(this.index+a)},byteAt:function(a){},readInt:function(a){var b,c=0;for(this.checkOffset(a),b=this.index+a-1;b>=this.index;b--)c=(c<<8)+this.byteAt(b);return this.index+=a,c},readString:function(a){return e.transformTo(\"string\",this.readData(a))},readData:function(a){},lastIndexOfSignature:function(a){},readDate:function(){var a=this.readInt(4);return new Date((a>>25&127)+1980,(a>>21&15)-1,a>>16&31,a>>11&31,a>>5&63,(31&a)<<1)}},b.exports=d},{\"./utils\":22}],7:[function(a,b,c){\"use strict\";c.base64=!1,c.binary=!1,c.dir=!1,c.createFolders=!1,c.date=null,c.compression=null,c.compressionOptions=null,c.comment=null,c.unixPermissions=null,c.dosPermissions=null},{}],8:[function(a,b,c){\"use strict\";var d=a(\"./utils\");c.string2binary=function(a){return d.string2binary(a)},c.string2Uint8Array=function(a){return d.transformTo(\"uint8array\",a)},c.uint8Array2String=function(a){return d.transformTo(\"string\",a)},c.string2Blob=function(a){var b=d.transformTo(\"arraybuffer\",a);return d.arrayBuffer2Blob(b)},c.arrayBuffer2Blob=function(a){return d.arrayBuffer2Blob(a)},c.transformTo=function(a,b){return d.transformTo(a,b)},c.getTypeOf=function(a){return d.getTypeOf(a)},c.checkSupport=function(a){return d.checkSupport(a)},c.MAX_VALUE_16BITS=d.MAX_VALUE_16BITS,c.MAX_VALUE_32BITS=d.MAX_VALUE_32BITS,c.pretty=function(a){return d.pretty(a)},c.findCompression=function(a){return d.findCompression(a)},c.isRegExp=function(a){return d.isRegExp(a)}},{\"./utils\":22}],9:[function(a,b,c){\"use strict\";var d=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Uint32Array,e=a(\"pako\");c.uncompressInputType=d?\"uint8array\":\"array\",c.compressInputType=d?\"uint8array\":\"array\",c.magic=\"\\b\\0\",c.compress=function(a,b){return e.deflateRaw(a,{level:b.level||-1})},c.uncompress=function(a){return e.inflateRaw(a)}},{pako:25}],10:[function(a,b,c){\"use strict\";function d(a,b){return this instanceof d?(this.files={},this.comment=null,this.root=\"\",a&&this.load(a,b),void(this.clone=function(){var a=new d;for(var b in this)\"function\"!=typeof this[b]&&(a[b]=this[b]);return a})):new d(a,b)}var e=a(\"./base64\");d.prototype=a(\"./object\"),d.prototype.load=a(\"./load\"),d.support=a(\"./support\"),d.defaults=a(\"./defaults\"),d.utils=a(\"./deprecatedPublicUtils\"),d.base64={encode:function(a){return e.encode(a)},decode:function(a){return e.decode(a)}},d.compressions=a(\"./compressions\"),b.exports=d},{\"./base64\":2,\"./compressions\":4,\"./defaults\":7,\"./deprecatedPublicUtils\":8,\"./load\":11,\"./object\":14,\"./support\":18}],11:[function(a,b,c){\"use strict\";var d=a(\"./base64\"),e=a(\"./utf8\"),f=a(\"./utils\"),g=a(\"./zipEntries\");b.exports=function(a,b){var c,h,i,j;for(b=f.extend(b||{},{base64:!1,checkCRC32:!1,optimizedBinaryString:!1,createFolders:!1,decodeFileName:e.utf8decode}),b.base64&&(a=d.decode(a)),h=new g(a,b),c=h.files,i=0;i<c.length;i++)j=c[i],this.file(j.fileNameStr,j.decompressed,{binary:!0,optimizedBinaryString:!0,date:j.date,dir:j.dir,comment:j.fileCommentStr.length?j.fileCommentStr:null,unixPermissions:j.unixPermissions,dosPermissions:j.dosPermissions,createFolders:b.createFolders});return h.zipComment.length&&(this.comment=h.zipComment),this}},{\"./base64\":2,\"./utf8\":21,\"./utils\":22,\"./zipEntries\":23}],12:[function(a,b,c){(function(a){\"use strict\";b.exports=function(b,c){return new a(b,c)},b.exports.test=function(b){return a.isBuffer(b)}}).call(this,\"undefined\"!=typeof Buffer?Buffer:void 0)},{}],13:[function(a,b,c){\"use strict\";function d(a){this.data=a,this.length=this.data.length,this.index=0,this.zero=0}var e=a(\"./uint8ArrayReader\");d.prototype=new e,d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./uint8ArrayReader\":19}],14:[function(a,b,c){\"use strict\";var d=a(\"./support\"),e=a(\"./utils\"),f=a(\"./crc32\"),g=a(\"./signature\"),h=a(\"./defaults\"),i=a(\"./base64\"),j=a(\"./compressions\"),k=a(\"./compressedObject\"),l=a(\"./nodeBuffer\"),m=a(\"./utf8\"),n=a(\"./stringWriter\"),o=a(\"./uint8ArrayWriter\"),p=function(a){if(a._data instanceof k&&(a._data=a._data.getContent(),a.options.binary=!0,a.options.base64=!1,\"uint8array\"===e.getTypeOf(a._data))){var b=a._data;a._data=new Uint8Array(b.length),0!==b.length&&a._data.set(b,0)}return a._data},q=function(a){var b=p(a),c=e.getTypeOf(b);return\"string\"===c?!a.options.binary&&d.nodebuffer?l(b,\"utf-8\"):a.asBinary():b},r=function(a){var b=p(this);return null===b||\"undefined\"==typeof b?\"\":(this.options.base64&&(b=i.decode(b)),b=a&&this.options.binary?D.utf8decode(b):e.transformTo(\"string\",b),a||this.options.binary||(b=e.transformTo(\"string\",D.utf8encode(b))),b)},s=function(a,b,c){this.name=a,this.dir=c.dir,this.date=c.date,this.comment=c.comment,this.unixPermissions=c.unixPermissions,this.dosPermissions=c.dosPermissions,this._data=b,this.options=c,this._initialMetadata={dir:c.dir,date:c.date}};s.prototype={asText:function(){return r.call(this,!0)},asBinary:function(){return r.call(this,!1)},asNodeBuffer:function(){var a=q(this);return e.transformTo(\"nodebuffer\",a)},asUint8Array:function(){var a=q(this);return e.transformTo(\"uint8array\",a)},asArrayBuffer:function(){return this.asUint8Array().buffer}};var t=function(a,b){var c,d=\"\";for(c=0;c<b;c++)d+=String.fromCharCode(255&a),a>>>=8;return d},u=function(a){return a=a||{},a.base64!==!0||null!==a.binary&&void 0!==a.binary||(a.binary=!0),a=e.extend(a,h),a.date=a.date||new Date,null!==a.compression&&(a.compression=a.compression.toUpperCase()),a},v=function(a,b,c){var d,f=e.getTypeOf(b);if(c=u(c),\"string\"==typeof c.unixPermissions&&(c.unixPermissions=parseInt(c.unixPermissions,8)),c.unixPermissions&&16384&c.unixPermissions&&(c.dir=!0),c.dosPermissions&&16&c.dosPermissions&&(c.dir=!0),c.dir&&(a=x(a)),c.createFolders&&(d=w(a))&&y.call(this,d,!0),c.dir||null===b||\"undefined\"==typeof b)c.base64=!1,c.binary=!1,b=null,f=null;else if(\"string\"===f)c.binary&&!c.base64&&c.optimizedBinaryString!==!0&&(b=e.string2binary(b));else{if(c.base64=!1,c.binary=!0,!(f||b instanceof k))throw new Error(\"The data of '\"+a+\"' is in an unsupported format !\");\"arraybuffer\"===f&&(b=e.transformTo(\"uint8array\",b))}var g=new s(a,b,c);return this.files[a]=g,g},w=function(a){\"/\"==a.slice(-1)&&(a=a.substring(0,a.length-1));var b=a.lastIndexOf(\"/\");return b>0?a.substring(0,b):\"\"},x=function(a){return\"/\"!=a.slice(-1)&&(a+=\"/\"),a},y=function(a,b){return b=\"undefined\"!=typeof b&&b,a=x(a),this.files[a]||v.call(this,a,null,{dir:!0,createFolders:b}),this.files[a]},z=function(a,b,c){var d,g=new k;return a._data instanceof k?(g.uncompressedSize=a._data.uncompressedSize,g.crc32=a._data.crc32,0===g.uncompressedSize||a.dir?(b=j.STORE,g.compressedContent=\"\",g.crc32=0):a._data.compressionMethod===b.magic?g.compressedContent=a._data.getCompressedContent():(d=a._data.getContent(),g.compressedContent=b.compress(e.transformTo(b.compressInputType,d),c))):(d=q(a),d&&0!==d.length&&!a.dir||(b=j.STORE,d=\"\"),g.uncompressedSize=d.length,g.crc32=f(d),g.compressedContent=b.compress(e.transformTo(b.compressInputType,d),c)),g.compressedSize=g.compressedContent.length,g.compressionMethod=b.magic,g},A=function(a,b){var c=a;return a||(c=b?16893:33204),(65535&c)<<16},B=function(a,b){return 63&(a||0)},C=function(a,b,c,d,h,i){var j,k,l,n,o=(c.compressedContent,i!==m.utf8encode),p=e.transformTo(\"string\",i(b.name)),q=e.transformTo(\"string\",m.utf8encode(b.name)),r=b.comment||\"\",s=e.transformTo(\"string\",i(r)),u=e.transformTo(\"string\",m.utf8encode(r)),v=q.length!==b.name.length,w=u.length!==r.length,x=b.options,y=\"\",z=\"\",C=\"\";l=b._initialMetadata.dir!==b.dir?b.dir:x.dir,n=b._initialMetadata.date!==b.date?b.date:x.date;var D=0,E=0;l&&(D|=16),\"UNIX\"===h?(E=798,D|=A(b.unixPermissions,l)):(E=20,D|=B(b.dosPermissions,l)),j=n.getHours(),j<<=6,j|=n.getMinutes(),j<<=5,j|=n.getSeconds()/2,k=n.getFullYear()-1980,k<<=4,k|=n.getMonth()+1,k<<=5,k|=n.getDate(),v&&(z=t(1,1)+t(f(p),4)+q,y+=\"up\"+t(z.length,2)+z),w&&(C=t(1,1)+t(this.crc32(s),4)+u,y+=\"uc\"+t(C.length,2)+C);var F=\"\";F+=\"\\n\\0\",F+=o||!v&&!w?\"\\0\\0\":\"\\0\\b\",F+=c.compressionMethod,F+=t(j,2),F+=t(k,2),F+=t(c.crc32,4),F+=t(c.compressedSize,4),F+=t(c.uncompressedSize,4),F+=t(p.length,2),F+=t(y.length,2);var G=g.LOCAL_FILE_HEADER+F+p+y,H=g.CENTRAL_FILE_HEADER+t(E,2)+F+t(s.length,2)+\"\\0\\0\\0\\0\"+t(D,4)+t(d,4)+p+y+s;return{fileRecord:G,dirRecord:H,compressedObject:c}},D={load:function(a,b){throw new Error(\"Load method is not defined. Is the file jszip-load.js included ?\")},filter:function(a){var b,c,d,f,g=[];for(b in this.files)this.files.hasOwnProperty(b)&&(d=this.files[b],f=new s(d.name,d._data,e.extend(d.options)),c=b.slice(this.root.length,b.length),b.slice(0,this.root.length)===this.root&&a(c,f)&&g.push(f));return g},file:function(a,b,c){if(1===arguments.length){if(e.isRegExp(a)){var d=a;return this.filter(function(a,b){return!b.dir&&d.test(a)})}return this.filter(function(b,c){return!c.dir&&b===a})[0]||null}return a=this.root+a,v.call(this,a,b,c),this},folder:function(a){if(!a)return this;if(e.isRegExp(a))return this.filter(function(b,c){return c.dir&&a.test(b)});var b=this.root+a,c=y.call(this,b),d=this.clone();return d.root=c.name,d},remove:function(a){a=this.root+a;var b=this.files[a];if(b||(\"/\"!=a.slice(-1)&&(a+=\"/\"),b=this.files[a]),b&&!b.dir)delete this.files[a];else for(var c=this.filter(function(b,c){return c.name.slice(0,a.length)===a}),d=0;d<c.length;d++)delete this.files[c[d].name];return this},generate:function(a){a=e.extend(a||{},{base64:!0,compression:\"STORE\",compressionOptions:null,type:\"base64\",platform:\"DOS\",comment:null,mimeType:\"application/zip\",encodeFileName:m.utf8encode}),e.checkSupport(a.type),\"darwin\"!==a.platform&&\"freebsd\"!==a.platform&&\"linux\"!==a.platform&&\"sunos\"!==a.platform||(a.platform=\"UNIX\"),\"win32\"===a.platform&&(a.platform=\"DOS\");var b,c,d=[],f=0,h=0,k=e.transformTo(\"string\",a.encodeFileName(a.comment||this.comment||\"\"));for(var l in this.files)if(this.files.hasOwnProperty(l)){var p=this.files[l],q=p.options.compression||a.compression.toUpperCase(),r=j[q];if(!r)throw new Error(q+\" is not a valid compression method !\");var s=p.options.compressionOptions||a.compressionOptions||{},u=z.call(this,p,r,s),v=C.call(this,l,p,u,f,a.platform,a.encodeFileName);f+=v.fileRecord.length+u.compressedSize,h+=v.dirRecord.length,d.push(v)}var w=\"\";w=g.CENTRAL_DIRECTORY_END+\"\\0\\0\\0\\0\"+t(d.length,2)+t(d.length,2)+t(h,4)+t(f,4)+t(k.length,2)+k;var x=a.type.toLowerCase();for(b=\"uint8array\"===x||\"arraybuffer\"===x||\"blob\"===x||\"nodebuffer\"===x?new o(f+h+w.length):new n(f+h+w.length),c=0;c<d.length;c++)b.append(d[c].fileRecord),b.append(d[c].compressedObject.compressedContent);for(c=0;c<d.length;c++)b.append(d[c].dirRecord);b.append(w);var y=b.finalize();switch(a.type.toLowerCase()){case\"uint8array\":case\"arraybuffer\":case\"nodebuffer\":return e.transformTo(a.type.toLowerCase(),y);case\"blob\":return e.arrayBuffer2Blob(e.transformTo(\"arraybuffer\",y),a.mimeType);case\"base64\":return a.base64?i.encode(y):y;default:return y}},crc32:function(a,b){return f(a,b)},utf8encode:function(a){return e.transformTo(\"string\",m.utf8encode(a))},utf8decode:function(a){return m.utf8decode(a)}};b.exports=D},{\"./base64\":2,\"./compressedObject\":3,\"./compressions\":4,\"./crc32\":5,\"./defaults\":7,\"./nodeBuffer\":12,\"./signature\":15,\"./stringWriter\":17,\"./support\":18,\"./uint8ArrayWriter\":20,\"./utf8\":21,\"./utils\":22}],15:[function(a,b,c){\"use strict\";c.LOCAL_FILE_HEADER=\"PK\u0003\u0004\",c.CENTRAL_FILE_HEADER=\"PK\u0001\u0002\",c.CENTRAL_DIRECTORY_END=\"PK\u0005\u0006\",c.ZIP64_CENTRAL_DIRECTORY_LOCATOR=\"PK\u0006\u0007\",c.ZIP64_CENTRAL_DIRECTORY_END=\"PK\u0006\u0006\",c.DATA_DESCRIPTOR=\"PK\u0007\\b\"},{}],16:[function(a,b,c){\"use strict\";function d(a,b){this.data=a,b||(this.data=f.string2binary(this.data)),this.length=this.data.length,this.index=0,this.zero=0}var e=a(\"./dataReader\"),f=a(\"./utils\");d.prototype=new e,d.prototype.byteAt=function(a){return this.data.charCodeAt(this.zero+a)},d.prototype.lastIndexOfSignature=function(a){return this.data.lastIndexOf(a)-this.zero},d.prototype.readData=function(a){this.checkOffset(a);var b=this.data.slice(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./dataReader\":6,\"./utils\":22}],17:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=function(){this.data=[]};e.prototype={append:function(a){a=d.transformTo(\"string\",a),this.data.push(a)},finalize:function(){return this.data.join(\"\")}},b.exports=e},{\"./utils\":22}],18:[function(a,b,c){(function(a){\"use strict\";if(c.base64=!0,c.array=!0,c.string=!0,c.arraybuffer=\"undefined\"!=typeof ArrayBuffer&&\"undefined\"!=typeof Uint8Array,c.nodebuffer=\"undefined\"!=typeof a,c.uint8array=\"undefined\"!=typeof Uint8Array,\"undefined\"==typeof ArrayBuffer)c.blob=!1;else{var b=new ArrayBuffer(0);try{c.blob=0===new Blob([b],{type:\"application/zip\"}).size}catch(d){try{var e=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,f=new e;f.append(b),c.blob=0===f.getBlob(\"application/zip\").size}catch(d){c.blob=!1}}}}).call(this,\"undefined\"!=typeof Buffer?Buffer:void 0)},{}],19:[function(a,b,c){\"use strict\";function d(a){a&&(this.data=a,this.length=this.data.length,this.index=0,this.zero=0)}var e=a(\"./arrayReader\");d.prototype=new e,d.prototype.readData=function(a){if(this.checkOffset(a),0===a)return new Uint8Array(0);var b=this.data.subarray(this.zero+this.index,this.zero+this.index+a);return this.index+=a,b},b.exports=d},{\"./arrayReader\":1}],20:[function(a,b,c){\"use strict\";var d=a(\"./utils\"),e=function(a){this.data=new Uint8Array(a),this.index=0};e.prototype={append:function(a){0!==a.length&&(a=d.transformTo(\"uint8array\",a),this.data.set(a,this.index),this.index+=a.length)},finalize:function(){return this.data}},b.exports=e},{\"./utils\":22}],21:[function(a,b,c){\"use strict\";for(var d=a(\"./utils\"),e=a(\"./support\"),f=a(\"./nodeBuffer\"),g=new Array(256),h=0;h<256;h++)g[h]=h>=252?6:h>=248?5:h>=240?4:h>=224?3:h>=192?2:1;g[254]=g[254]=1;var i=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=e.uint8array?new Uint8Array(i):new Array(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},j=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+g[a[c]]>b?c:b},k=function(a){var b,c,e,f,h=a.length,i=new Array(2*h);for(c=0,b=0;b<h;)if(e=a[b++],e<128)i[c++]=e;else if(f=g[e],f>4)i[c++]=65533,b+=f-1;else{for(e&=2===f?31:3===f?15:7;f>1&&b<h;)e=e<<6|63&a[b++],f--;f>1?i[c++]=65533:e<65536?i[c++]=e:(e-=65536,i[c++]=55296|e>>10&1023,i[c++]=56320|1023&e)}return i.length!==c&&(i.subarray?i=i.subarray(0,c):i.length=c),d.applyFromCharCode(i)};c.utf8encode=function(a){return e.nodebuffer?f(a,\"utf-8\"):i(a)},c.utf8decode=function(a){if(e.nodebuffer)return d.transformTo(\"nodebuffer\",a).toString(\"utf-8\");a=d.transformTo(e.uint8array?\"uint8array\":\"array\",a);for(var b=[],c=0,f=a.length,g=65536;c<f;){var h=j(a,Math.min(c+g,f));e.uint8array?b.push(k(a.subarray(c,h))):b.push(k(a.slice(c,h))),c=h}return b.join(\"\")}},{\"./nodeBuffer\":12,\"./support\":18,\"./utils\":22}],22:[function(a,b,c){\"use strict\";function d(a){return a}function e(a,b){for(var c=0;c<a.length;++c)b[c]=255&a.charCodeAt(c);return b}function f(a){var b=65536,d=[],e=a.length,f=c.getTypeOf(a),g=0,h=!0;try{switch(f){case\"uint8array\":String.fromCharCode.apply(null,new Uint8Array(0));break;case\"nodebuffer\":String.fromCharCode.apply(null,j(0))}}catch(i){h=!1}if(!h){for(var k=\"\",l=0;l<a.length;l++)k+=String.fromCharCode(a[l]);return k}for(;g<e&&b>1;)try{\"array\"===f||\"nodebuffer\"===f?d.push(String.fromCharCode.apply(null,a.slice(g,Math.min(g+b,e)))):d.push(String.fromCharCode.apply(null,a.subarray(g,Math.min(g+b,e)))),g+=b}catch(i){b=Math.floor(b/2)}return d.join(\"\")}function g(a,b){for(var c=0;c<a.length;c++)b[c]=a[c];return b}var h=a(\"./support\"),i=a(\"./compressions\"),j=a(\"./nodeBuffer\");c.string2binary=function(a){for(var b=\"\",c=0;c<a.length;c++)b+=String.fromCharCode(255&a.charCodeAt(c));return b},c.arrayBuffer2Blob=function(a,b){c.checkSupport(\"blob\"),b=b||\"application/zip\";try{return new Blob([a],{type:b})}catch(d){try{var e=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,f=new e;return f.append(a),f.getBlob(b)}catch(d){throw new Error(\"Bug : can't construct the Blob.\")}}},c.applyFromCharCode=f;var k={};k.string={string:d,array:function(a){return e(a,new Array(a.length))},arraybuffer:function(a){return k.string.uint8array(a).buffer},uint8array:function(a){return e(a,new Uint8Array(a.length))},nodebuffer:function(a){return e(a,j(a.length))}},k.array={string:f,array:d,arraybuffer:function(a){return new Uint8Array(a).buffer},uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(a)}},k.arraybuffer={string:function(a){return f(new Uint8Array(a))},array:function(a){return g(new Uint8Array(a),new Array(a.byteLength))},arraybuffer:d,uint8array:function(a){return new Uint8Array(a)},nodebuffer:function(a){return j(new Uint8Array(a))}},k.uint8array={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return a.buffer},uint8array:d,nodebuffer:function(a){return j(a)}},k.nodebuffer={string:f,array:function(a){return g(a,new Array(a.length))},arraybuffer:function(a){return k.nodebuffer.uint8array(a).buffer},uint8array:function(a){return g(a,new Uint8Array(a.length))},nodebuffer:d},c.transformTo=function(a,b){if(b||(b=\"\"),!a)return b;c.checkSupport(a);var d=c.getTypeOf(b),e=k[d][a](b);return e},c.getTypeOf=function(a){return\"string\"==typeof a?\"string\":\"[object Array]\"===Object.prototype.toString.call(a)?\"array\":h.nodebuffer&&j.test(a)?\"nodebuffer\":h.uint8array&&a instanceof Uint8Array?\"uint8array\":h.arraybuffer&&a instanceof ArrayBuffer?\"arraybuffer\":void 0},c.checkSupport=function(a){var b=h[a.toLowerCase()];if(!b)throw new Error(a+\" is not supported by this browser\")},c.MAX_VALUE_16BITS=65535,c.MAX_VALUE_32BITS=-1,c.pretty=function(a){var b,c,d=\"\";for(c=0;c<(a||\"\").length;c++)b=a.charCodeAt(c),d+=\"\\\\x\"+(b<16?\"0\":\"\")+b.toString(16).toUpperCase();return d},c.findCompression=function(a){for(var b in i)if(i.hasOwnProperty(b)&&i[b].magic===a)return i[b];return null},c.isRegExp=function(a){return\"[object RegExp]\"===Object.prototype.toString.call(a)},c.extend=function(){var a,b,c={};for(a=0;a<arguments.length;a++)for(b in arguments[a])arguments[a].hasOwnProperty(b)&&\"undefined\"==typeof c[b]&&(c[b]=arguments[a][b]);return c}},{\"./compressions\":4,\"./nodeBuffer\":12,\"./support\":18}],23:[function(a,b,c){\"use strict\";function d(a,b){this.files=[],this.loadOptions=b,a&&this.load(a)}var e=a(\"./stringReader\"),f=a(\"./nodeBufferReader\"),g=a(\"./uint8ArrayReader\"),h=a(\"./arrayReader\"),i=a(\"./utils\"),j=a(\"./signature\"),k=a(\"./zipEntry\"),l=a(\"./support\");a(\"./object\");d.prototype={checkSignature:function(a){var b=this.reader.readString(4);if(b!==a)throw new Error(\"Corrupted zip or bug : unexpected signature (\"+i.pretty(b)+\", expected \"+i.pretty(a)+\")\")},isSignature:function(a,b){var c=this.reader.index;this.reader.setIndex(a);var d=this.reader.readString(4),e=d===b;return this.reader.setIndex(c),e},readBlockEndOfCentral:function(){this.diskNumber=this.reader.readInt(2),this.diskWithCentralDirStart=this.reader.readInt(2),this.centralDirRecordsOnThisDisk=this.reader.readInt(2),this.centralDirRecords=this.reader.readInt(2),this.centralDirSize=this.reader.readInt(4),this.centralDirOffset=this.reader.readInt(4),this.zipCommentLength=this.reader.readInt(2);var a=this.reader.readData(this.zipCommentLength),b=l.uint8array?\"uint8array\":\"array\",c=i.transformTo(b,a);this.zipComment=this.loadOptions.decodeFileName(c)},readBlockZip64EndOfCentral:function(){this.zip64EndOfCentralSize=this.reader.readInt(8),this.versionMadeBy=this.reader.readString(2),this.versionNeeded=this.reader.readInt(2),this.diskNumber=this.reader.readInt(4),this.diskWithCentralDirStart=this.reader.readInt(4),this.centralDirRecordsOnThisDisk=this.reader.readInt(8),this.centralDirRecords=this.reader.readInt(8),this.centralDirSize=this.reader.readInt(8),this.centralDirOffset=this.reader.readInt(8),this.zip64ExtensibleData={};for(var a,b,c,d=this.zip64EndOfCentralSize-44,e=0;e<d;)a=this.reader.readInt(2),b=this.reader.readInt(4),c=this.reader.readString(b),this.zip64ExtensibleData[a]={id:a,length:b,value:c}},readBlockZip64EndOfCentralLocator:function(){if(this.diskWithZip64CentralDirStart=this.reader.readInt(4),this.relativeOffsetEndOfZip64CentralDir=this.reader.readInt(8),this.disksCount=this.reader.readInt(4),this.disksCount>1)throw new Error(\"Multi-volumes zip are not supported\")},readLocalFiles:function(){var a,b;for(a=0;a<this.files.length;a++)b=this.files[a],this.reader.setIndex(b.localHeaderOffset),this.checkSignature(j.LOCAL_FILE_HEADER),b.readLocalPart(this.reader),b.handleUTF8(),b.processAttributes()},readCentralDir:function(){var a;for(this.reader.setIndex(this.centralDirOffset);this.reader.readString(4)===j.CENTRAL_FILE_HEADER;)a=new k({zip64:this.zip64},this.loadOptions),a.readCentralPart(this.reader),this.files.push(a);if(this.centralDirRecords!==this.files.length&&0!==this.centralDirRecords&&0===this.files.length)throw new Error(\"Corrupted zip or bug: expected \"+this.centralDirRecords+\" records in central dir, got \"+this.files.length)},readEndOfCentral:function(){var a=this.reader.lastIndexOfSignature(j.CENTRAL_DIRECTORY_END);if(a<0){var b=!this.isSignature(0,j.LOCAL_FILE_HEADER);throw b?new Error(\"Can't find end of central directory : is this a zip file ? If it is, see http://stuk.github.io/jszip/documentation/howto/read_zip.html\"):new Error(\"Corrupted zip : can't find end of central directory\")}this.reader.setIndex(a);var c=a;if(this.checkSignature(j.CENTRAL_DIRECTORY_END),this.readBlockEndOfCentral(),this.diskNumber===i.MAX_VALUE_16BITS||this.diskWithCentralDirStart===i.MAX_VALUE_16BITS||this.centralDirRecordsOnThisDisk===i.MAX_VALUE_16BITS||this.centralDirRecords===i.MAX_VALUE_16BITS||this.centralDirSize===i.MAX_VALUE_32BITS||this.centralDirOffset===i.MAX_VALUE_32BITS){if(this.zip64=!0,a=this.reader.lastIndexOfSignature(j.ZIP64_CENTRAL_DIRECTORY_LOCATOR),a<0)throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory locator\");if(this.reader.setIndex(a),this.checkSignature(j.ZIP64_CENTRAL_DIRECTORY_LOCATOR),this.readBlockZip64EndOfCentralLocator(),!this.isSignature(this.relativeOffsetEndOfZip64CentralDir,j.ZIP64_CENTRAL_DIRECTORY_END)&&(this.relativeOffsetEndOfZip64CentralDir=this.reader.lastIndexOfSignature(j.ZIP64_CENTRAL_DIRECTORY_END),this.relativeOffsetEndOfZip64CentralDir<0))throw new Error(\"Corrupted zip : can't find the ZIP64 end of central directory\");this.reader.setIndex(this.relativeOffsetEndOfZip64CentralDir),this.checkSignature(j.ZIP64_CENTRAL_DIRECTORY_END),this.readBlockZip64EndOfCentral()}var d=this.centralDirOffset+this.centralDirSize;this.zip64&&(d+=20,d+=12+this.zip64EndOfCentralSize);var e=c-d;if(e>0)this.isSignature(c,j.CENTRAL_FILE_HEADER)||(this.reader.zero=e);else if(e<0)throw new Error(\"Corrupted zip: missing \"+Math.abs(e)+\" bytes.\")},prepareReader:function(a){var b=i.getTypeOf(a);if(i.checkSupport(b),\"string\"!==b||l.uint8array)if(\"nodebuffer\"===b)this.reader=new f(a);else if(l.uint8array)this.reader=new g(i.transformTo(\"uint8array\",a));else{if(!l.array)throw new Error(\"Unexpected error: unsupported type '\"+b+\"'\");this.reader=new h(i.transformTo(\"array\",a))}else this.reader=new e(a,this.loadOptions.optimizedBinaryString)},load:function(a){this.prepareReader(a),this.readEndOfCentral(),this.readCentralDir(),this.readLocalFiles()}},b.exports=d},{\"./arrayReader\":1,\"./nodeBufferReader\":13,\"./object\":14,\"./signature\":15,\"./stringReader\":16,\"./support\":18,\"./uint8ArrayReader\":19,\"./utils\":22,\"./zipEntry\":24}],24:[function(a,b,c){\"use strict\";function d(a,b){this.options=a,this.loadOptions=b}var e=a(\"./stringReader\"),f=a(\"./utils\"),g=a(\"./compressedObject\"),h=a(\"./object\"),i=a(\"./support\"),j=0,k=3;d.prototype={isEncrypted:function(){return 1===(1&this.bitFlag)},useUTF8:function(){return 2048===(2048&this.bitFlag)},prepareCompressedContent:function(a,b,c){return function(){var d=a.index;a.setIndex(b);var e=a.readData(c);return a.setIndex(d),e}},prepareContent:function(a,b,c,d,e){return function(){var a=f.transformTo(d.uncompressInputType,this.getCompressedContent()),b=d.uncompress(a);if(b.length!==e)throw new Error(\"Bug : uncompressed data size mismatch\");return b}},readLocalPart:function(a){var b,c;if(a.skip(22),this.fileNameLength=a.readInt(2),c=a.readInt(2),this.fileName=a.readData(this.fileNameLength),a.skip(c),this.compressedSize==-1||this.uncompressedSize==-1)throw new Error(\"Bug or corrupted zip : didn't get enough informations from the central directory (compressedSize == -1 || uncompressedSize == -1)\");if(b=f.findCompression(this.compressionMethod),null===b)throw new Error(\"Corrupted zip : compression \"+f.pretty(this.compressionMethod)+\" unknown (inner file : \"+f.transformTo(\"string\",this.fileName)+\")\");if(this.decompressed=new g,this.decompressed.compressedSize=this.compressedSize,this.decompressed.uncompressedSize=this.uncompressedSize,this.decompressed.crc32=this.crc32,this.decompressed.compressionMethod=this.compressionMethod,this.decompressed.getCompressedContent=this.prepareCompressedContent(a,a.index,this.compressedSize,b),this.decompressed.getContent=this.prepareContent(a,a.index,this.compressedSize,b,this.uncompressedSize),this.loadOptions.checkCRC32&&(this.decompressed=f.transformTo(\"string\",this.decompressed.getContent()),h.crc32(this.decompressed)!==this.crc32))throw new Error(\"Corrupted zip : CRC32 mismatch\");\n},readCentralPart:function(a){if(this.versionMadeBy=a.readInt(2),this.versionNeeded=a.readInt(2),this.bitFlag=a.readInt(2),this.compressionMethod=a.readString(2),this.date=a.readDate(),this.crc32=a.readInt(4),this.compressedSize=a.readInt(4),this.uncompressedSize=a.readInt(4),this.fileNameLength=a.readInt(2),this.extraFieldsLength=a.readInt(2),this.fileCommentLength=a.readInt(2),this.diskNumberStart=a.readInt(2),this.internalFileAttributes=a.readInt(2),this.externalFileAttributes=a.readInt(4),this.localHeaderOffset=a.readInt(4),this.isEncrypted())throw new Error(\"Encrypted zip are not supported\");this.fileName=a.readData(this.fileNameLength),this.readExtraFields(a),this.parseZIP64ExtraField(a),this.fileComment=a.readData(this.fileCommentLength)},processAttributes:function(){this.unixPermissions=null,this.dosPermissions=null;var a=this.versionMadeBy>>8;this.dir=!!(16&this.externalFileAttributes),a===j&&(this.dosPermissions=63&this.externalFileAttributes),a===k&&(this.unixPermissions=this.externalFileAttributes>>16&65535),this.dir||\"/\"!==this.fileNameStr.slice(-1)||(this.dir=!0)},parseZIP64ExtraField:function(a){if(this.extraFields[1]){var b=new e(this.extraFields[1].value);this.uncompressedSize===f.MAX_VALUE_32BITS&&(this.uncompressedSize=b.readInt(8)),this.compressedSize===f.MAX_VALUE_32BITS&&(this.compressedSize=b.readInt(8)),this.localHeaderOffset===f.MAX_VALUE_32BITS&&(this.localHeaderOffset=b.readInt(8)),this.diskNumberStart===f.MAX_VALUE_32BITS&&(this.diskNumberStart=b.readInt(4))}},readExtraFields:function(a){var b,c,d,e=a.index;for(this.extraFields=this.extraFields||{};a.index<e+this.extraFieldsLength;)b=a.readInt(2),c=a.readInt(2),d=a.readString(c),this.extraFields[b]={id:b,length:c,value:d}},handleUTF8:function(){var a=i.uint8array?\"uint8array\":\"array\";if(this.useUTF8())this.fileNameStr=h.utf8decode(this.fileName),this.fileCommentStr=h.utf8decode(this.fileComment);else{var b=this.findExtraFieldUnicodePath();if(null!==b)this.fileNameStr=b;else{var c=f.transformTo(a,this.fileName);this.fileNameStr=this.loadOptions.decodeFileName(c)}var d=this.findExtraFieldUnicodeComment();if(null!==d)this.fileCommentStr=d;else{var e=f.transformTo(a,this.fileComment);this.fileCommentStr=this.loadOptions.decodeFileName(e)}}},findExtraFieldUnicodePath:function(){var a=this.extraFields[28789];if(a){var b=new e(a.value);return 1!==b.readInt(1)?null:h.crc32(this.fileName)!==b.readInt(4)?null:h.utf8decode(b.readString(a.length-5))}return null},findExtraFieldUnicodeComment:function(){var a=this.extraFields[25461];if(a){var b=new e(a.value);return 1!==b.readInt(1)?null:h.crc32(this.fileComment)!==b.readInt(4)?null:h.utf8decode(b.readString(a.length-5))}return null}},b.exports=d},{\"./compressedObject\":3,\"./object\":14,\"./stringReader\":16,\"./support\":18,\"./utils\":22}],25:[function(a,b,c){\"use strict\";var d=a(\"./lib/utils/common\").assign,e=a(\"./lib/deflate\"),f=a(\"./lib/inflate\"),g=a(\"./lib/zlib/constants\"),h={};d(h,e,f,g),b.exports=h},{\"./lib/deflate\":26,\"./lib/inflate\":27,\"./lib/utils/common\":28,\"./lib/zlib/constants\":31}],26:[function(a,b,c){\"use strict\";function d(a){if(!(this instanceof d))return new d(a);this.options=i.assign({level:s,method:u,chunkSize:16384,windowBits:15,memLevel:8,strategy:t,to:\"\"},a||{});var b=this.options;b.raw&&b.windowBits>0?b.windowBits=-b.windowBits:b.gzip&&b.windowBits>0&&b.windowBits<16&&(b.windowBits+=16),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=h.deflateInit2(this.strm,b.level,b.method,b.windowBits,b.memLevel,b.strategy);if(c!==p)throw new Error(k[c]);if(b.header&&h.deflateSetHeader(this.strm,b.header),b.dictionary){var e;if(e=\"string\"==typeof b.dictionary?j.string2buf(b.dictionary):\"[object ArrayBuffer]\"===m.call(b.dictionary)?new Uint8Array(b.dictionary):b.dictionary,c=h.deflateSetDictionary(this.strm,e),c!==p)throw new Error(k[c]);this._dict_set=!0}}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}function g(a,b){return b=b||{},b.gzip=!0,e(a,b)}var h=a(\"./zlib/deflate\"),i=a(\"./utils/common\"),j=a(\"./utils/strings\"),k=a(\"./zlib/messages\"),l=a(\"./zlib/zstream\"),m=Object.prototype.toString,n=0,o=4,p=0,q=1,r=2,s=-1,t=0,u=8;d.prototype.push=function(a,b){var c,d,e=this.strm,f=this.options.chunkSize;if(this.ended)return!1;d=b===~~b?b:b===!0?o:n,\"string\"==typeof a?e.input=j.string2buf(a):\"[object ArrayBuffer]\"===m.call(a)?e.input=new Uint8Array(a):e.input=a,e.next_in=0,e.avail_in=e.input.length;do{if(0===e.avail_out&&(e.output=new i.Buf8(f),e.next_out=0,e.avail_out=f),c=h.deflate(e,d),c!==q&&c!==p)return this.onEnd(c),this.ended=!0,!1;0!==e.avail_out&&(0!==e.avail_in||d!==o&&d!==r)||(\"string\"===this.options.to?this.onData(j.buf2binstring(i.shrinkBuf(e.output,e.next_out))):this.onData(i.shrinkBuf(e.output,e.next_out)))}while((e.avail_in>0||0===e.avail_out)&&c!==q);return d===o?(c=h.deflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===p):d!==r||(this.onEnd(p),e.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===p&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=i.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Deflate=d,c.deflate=e,c.deflateRaw=f,c.gzip=g},{\"./utils/common\":28,\"./utils/strings\":29,\"./zlib/deflate\":33,\"./zlib/messages\":38,\"./zlib/zstream\":40}],27:[function(a,b,c){\"use strict\";function d(a){if(!(this instanceof d))return new d(a);this.options=h.assign({chunkSize:16384,windowBits:0,to:\"\"},a||{});var b=this.options;b.raw&&b.windowBits>=0&&b.windowBits<16&&(b.windowBits=-b.windowBits,0===b.windowBits&&(b.windowBits=-15)),!(b.windowBits>=0&&b.windowBits<16)||a&&a.windowBits||(b.windowBits+=32),b.windowBits>15&&b.windowBits<48&&0===(15&b.windowBits)&&(b.windowBits|=15),this.err=0,this.msg=\"\",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var c=g.inflateInit2(this.strm,b.windowBits);if(c!==j.Z_OK)throw new Error(k[c]);this.header=new m,g.inflateGetHeader(this.strm,this.header)}function e(a,b){var c=new d(b);if(c.push(a,!0),c.err)throw c.msg;return c.result}function f(a,b){return b=b||{},b.raw=!0,e(a,b)}var g=a(\"./zlib/inflate\"),h=a(\"./utils/common\"),i=a(\"./utils/strings\"),j=a(\"./zlib/constants\"),k=a(\"./zlib/messages\"),l=a(\"./zlib/zstream\"),m=a(\"./zlib/gzheader\"),n=Object.prototype.toString;d.prototype.push=function(a,b){var c,d,e,f,k,l,m=this.strm,o=this.options.chunkSize,p=this.options.dictionary,q=!1;if(this.ended)return!1;d=b===~~b?b:b===!0?j.Z_FINISH:j.Z_NO_FLUSH,\"string\"==typeof a?m.input=i.binstring2buf(a):\"[object ArrayBuffer]\"===n.call(a)?m.input=new Uint8Array(a):m.input=a,m.next_in=0,m.avail_in=m.input.length;do{if(0===m.avail_out&&(m.output=new h.Buf8(o),m.next_out=0,m.avail_out=o),c=g.inflate(m,j.Z_NO_FLUSH),c===j.Z_NEED_DICT&&p&&(l=\"string\"==typeof p?i.string2buf(p):\"[object ArrayBuffer]\"===n.call(p)?new Uint8Array(p):p,c=g.inflateSetDictionary(this.strm,l)),c===j.Z_BUF_ERROR&&q===!0&&(c=j.Z_OK,q=!1),c!==j.Z_STREAM_END&&c!==j.Z_OK)return this.onEnd(c),this.ended=!0,!1;m.next_out&&(0!==m.avail_out&&c!==j.Z_STREAM_END&&(0!==m.avail_in||d!==j.Z_FINISH&&d!==j.Z_SYNC_FLUSH)||(\"string\"===this.options.to?(e=i.utf8border(m.output,m.next_out),f=m.next_out-e,k=i.buf2string(m.output,e),m.next_out=f,m.avail_out=o-f,f&&h.arraySet(m.output,m.output,e,f,0),this.onData(k)):this.onData(h.shrinkBuf(m.output,m.next_out)))),0===m.avail_in&&0===m.avail_out&&(q=!0)}while((m.avail_in>0||0===m.avail_out)&&c!==j.Z_STREAM_END);return c===j.Z_STREAM_END&&(d=j.Z_FINISH),d===j.Z_FINISH?(c=g.inflateEnd(this.strm),this.onEnd(c),this.ended=!0,c===j.Z_OK):d!==j.Z_SYNC_FLUSH||(this.onEnd(j.Z_OK),m.avail_out=0,!0)},d.prototype.onData=function(a){this.chunks.push(a)},d.prototype.onEnd=function(a){a===j.Z_OK&&(\"string\"===this.options.to?this.result=this.chunks.join(\"\"):this.result=h.flattenChunks(this.chunks)),this.chunks=[],this.err=a,this.msg=this.strm.msg},c.Inflate=d,c.inflate=e,c.inflateRaw=f,c.ungzip=e},{\"./utils/common\":28,\"./utils/strings\":29,\"./zlib/constants\":31,\"./zlib/gzheader\":34,\"./zlib/inflate\":36,\"./zlib/messages\":38,\"./zlib/zstream\":40}],28:[function(a,b,c){\"use strict\";var d=\"undefined\"!=typeof Uint8Array&&\"undefined\"!=typeof Uint16Array&&\"undefined\"!=typeof Int32Array;c.assign=function(a){for(var b=Array.prototype.slice.call(arguments,1);b.length;){var c=b.shift();if(c){if(\"object\"!=typeof c)throw new TypeError(c+\"must be non-object\");for(var d in c)c.hasOwnProperty(d)&&(a[d]=c[d])}}return a},c.shrinkBuf=function(a,b){return a.length===b?a:a.subarray?a.subarray(0,b):(a.length=b,a)};var e={arraySet:function(a,b,c,d,e){if(b.subarray&&a.subarray)return void a.set(b.subarray(c,c+d),e);for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){var b,c,d,e,f,g;for(d=0,b=0,c=a.length;b<c;b++)d+=a[b].length;for(g=new Uint8Array(d),e=0,b=0,c=a.length;b<c;b++)f=a[b],g.set(f,e),e+=f.length;return g}},f={arraySet:function(a,b,c,d,e){for(var f=0;f<d;f++)a[e+f]=b[c+f]},flattenChunks:function(a){return[].concat.apply([],a)}};c.setTyped=function(a){a?(c.Buf8=Uint8Array,c.Buf16=Uint16Array,c.Buf32=Int32Array,c.assign(c,e)):(c.Buf8=Array,c.Buf16=Array,c.Buf32=Array,c.assign(c,f))},c.setTyped(d)},{}],29:[function(a,b,c){\"use strict\";function d(a,b){if(b<65537&&(a.subarray&&g||!a.subarray&&f))return String.fromCharCode.apply(null,e.shrinkBuf(a,b));for(var c=\"\",d=0;d<b;d++)c+=String.fromCharCode(a[d]);return c}var e=a(\"./common\"),f=!0,g=!0;try{String.fromCharCode.apply(null,[0])}catch(h){f=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(h){g=!1}for(var i=new e.Buf8(256),j=0;j<256;j++)i[j]=j>=252?6:j>=248?5:j>=240?4:j>=224?3:j>=192?2:1;i[254]=i[254]=1,c.string2buf=function(a){var b,c,d,f,g,h=a.length,i=0;for(f=0;f<h;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),i+=c<128?1:c<2048?2:c<65536?3:4;for(b=new e.Buf8(i),g=0,f=0;g<i;f++)c=a.charCodeAt(f),55296===(64512&c)&&f+1<h&&(d=a.charCodeAt(f+1),56320===(64512&d)&&(c=65536+(c-55296<<10)+(d-56320),f++)),c<128?b[g++]=c:c<2048?(b[g++]=192|c>>>6,b[g++]=128|63&c):c<65536?(b[g++]=224|c>>>12,b[g++]=128|c>>>6&63,b[g++]=128|63&c):(b[g++]=240|c>>>18,b[g++]=128|c>>>12&63,b[g++]=128|c>>>6&63,b[g++]=128|63&c);return b},c.buf2binstring=function(a){return d(a,a.length)},c.binstring2buf=function(a){for(var b=new e.Buf8(a.length),c=0,d=b.length;c<d;c++)b[c]=a.charCodeAt(c);return b},c.buf2string=function(a,b){var c,e,f,g,h=b||a.length,j=new Array(2*h);for(e=0,c=0;c<h;)if(f=a[c++],f<128)j[e++]=f;else if(g=i[f],g>4)j[e++]=65533,c+=g-1;else{for(f&=2===g?31:3===g?15:7;g>1&&c<h;)f=f<<6|63&a[c++],g--;g>1?j[e++]=65533:f<65536?j[e++]=f:(f-=65536,j[e++]=55296|f>>10&1023,j[e++]=56320|1023&f)}return d(j,e)},c.utf8border=function(a,b){var c;for(b=b||a.length,b>a.length&&(b=a.length),c=b-1;c>=0&&128===(192&a[c]);)c--;return c<0?b:0===c?b:c+i[a[c]]>b?c:b}},{\"./common\":28}],30:[function(a,b,c){\"use strict\";function d(a,b,c,d){for(var e=65535&a|0,f=a>>>16&65535|0,g=0;0!==c;){g=c>2e3?2e3:c,c-=g;do e=e+b[d++]|0,f=f+e|0;while(--g);e%=65521,f%=65521}return e|f<<16|0}b.exports=d},{}],31:[function(a,b,c){\"use strict\";b.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],32:[function(a,b,c){\"use strict\";function d(){for(var a,b=[],c=0;c<256;c++){a=c;for(var d=0;d<8;d++)a=1&a?3988292384^a>>>1:a>>>1;b[c]=a}return b}function e(a,b,c,d){var e=f,g=d+c;a^=-1;for(var h=d;h<g;h++)a=a>>>8^e[255&(a^b[h])];return a^-1}var f=d();b.exports=e},{}],33:[function(a,b,c){\"use strict\";function d(a,b){return a.msg=I[b],b}function e(a){return(a<<1)-(a>4?9:0)}function f(a){for(var b=a.length;--b>=0;)a[b]=0}function g(a){var b=a.state,c=b.pending;c>a.avail_out&&(c=a.avail_out),0!==c&&(E.arraySet(a.output,b.pending_buf,b.pending_out,c,a.next_out),a.next_out+=c,b.pending_out+=c,a.total_out+=c,a.avail_out-=c,b.pending-=c,0===b.pending&&(b.pending_out=0))}function h(a,b){F._tr_flush_block(a,a.block_start>=0?a.block_start:-1,a.strstart-a.block_start,b),a.block_start=a.strstart,g(a.strm)}function i(a,b){a.pending_buf[a.pending++]=b}function j(a,b){a.pending_buf[a.pending++]=b>>>8&255,a.pending_buf[a.pending++]=255&b}function k(a,b,c,d){var e=a.avail_in;return e>d&&(e=d),0===e?0:(a.avail_in-=e,E.arraySet(b,a.input,a.next_in,e,c),1===a.state.wrap?a.adler=G(a.adler,b,e,c):2===a.state.wrap&&(a.adler=H(a.adler,b,e,c)),a.next_in+=e,a.total_in+=e,e)}function l(a,b){var c,d,e=a.max_chain_length,f=a.strstart,g=a.prev_length,h=a.nice_match,i=a.strstart>a.w_size-la?a.strstart-(a.w_size-la):0,j=a.window,k=a.w_mask,l=a.prev,m=a.strstart+ka,n=j[f+g-1],o=j[f+g];a.prev_length>=a.good_match&&(e>>=2),h>a.lookahead&&(h=a.lookahead);do if(c=b,j[c+g]===o&&j[c+g-1]===n&&j[c]===j[f]&&j[++c]===j[f+1]){f+=2,c++;do;while(j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&j[++f]===j[++c]&&f<m);if(d=ka-(m-f),f=m-ka,d>g){if(a.match_start=b,g=d,d>=h)break;n=j[f+g-1],o=j[f+g]}}while((b=l[b&k])>i&&0!==--e);return g<=a.lookahead?g:a.lookahead}function m(a){var b,c,d,e,f,g=a.w_size;do{if(e=a.window_size-a.lookahead-a.strstart,a.strstart>=g+(g-la)){E.arraySet(a.window,a.window,g,g,0),a.match_start-=g,a.strstart-=g,a.block_start-=g,c=a.hash_size,b=c;do d=a.head[--b],a.head[b]=d>=g?d-g:0;while(--c);c=g,b=c;do d=a.prev[--b],a.prev[b]=d>=g?d-g:0;while(--c);e+=g}if(0===a.strm.avail_in)break;if(c=k(a.strm,a.window,a.strstart+a.lookahead,e),a.lookahead+=c,a.lookahead+a.insert>=ja)for(f=a.strstart-a.insert,a.ins_h=a.window[f],a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+1])&a.hash_mask;a.insert&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[f+ja-1])&a.hash_mask,a.prev[f&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=f,f++,a.insert--,!(a.lookahead+a.insert<ja)););}while(a.lookahead<la&&0!==a.strm.avail_in)}function n(a,b){var c=65535;for(c>a.pending_buf_size-5&&(c=a.pending_buf_size-5);;){if(a.lookahead<=1){if(m(a),0===a.lookahead&&b===J)return ua;if(0===a.lookahead)break}a.strstart+=a.lookahead,a.lookahead=0;var d=a.block_start+c;if((0===a.strstart||a.strstart>=d)&&(a.lookahead=a.strstart-d,a.strstart=d,h(a,!1),0===a.strm.avail_out))return ua;if(a.strstart-a.block_start>=a.w_size-la&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.strstart>a.block_start&&(h(a,!1),0===a.strm.avail_out)?ua:ua}function o(a,b){for(var c,d;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),0!==c&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c)),a.match_length>=ja)if(d=F._tr_tally(a,a.strstart-a.match_start,a.match_length-ja),a.lookahead-=a.match_length,a.match_length<=a.max_lazy_match&&a.lookahead>=ja){a.match_length--;do a.strstart++,a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart;while(0!==--a.match_length);a.strstart++}else a.strstart+=a.match_length,a.match_length=0,a.ins_h=a.window[a.strstart],a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+1])&a.hash_mask;else d=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++;if(d&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function p(a,b){for(var c,d,e;;){if(a.lookahead<la){if(m(a),a.lookahead<la&&b===J)return ua;if(0===a.lookahead)break}if(c=0,a.lookahead>=ja&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart),a.prev_length=a.match_length,a.prev_match=a.match_start,a.match_length=ja-1,0!==c&&a.prev_length<a.max_lazy_match&&a.strstart-c<=a.w_size-la&&(a.match_length=l(a,c),a.match_length<=5&&(a.strategy===U||a.match_length===ja&&a.strstart-a.match_start>4096)&&(a.match_length=ja-1)),a.prev_length>=ja&&a.match_length<=a.prev_length){e=a.strstart+a.lookahead-ja,d=F._tr_tally(a,a.strstart-1-a.prev_match,a.prev_length-ja),a.lookahead-=a.prev_length-1,a.prev_length-=2;do++a.strstart<=e&&(a.ins_h=(a.ins_h<<a.hash_shift^a.window[a.strstart+ja-1])&a.hash_mask,c=a.prev[a.strstart&a.w_mask]=a.head[a.ins_h],a.head[a.ins_h]=a.strstart);while(0!==--a.prev_length);if(a.match_available=0,a.match_length=ja-1,a.strstart++,d&&(h(a,!1),0===a.strm.avail_out))return ua}else if(a.match_available){if(d=F._tr_tally(a,0,a.window[a.strstart-1]),d&&h(a,!1),a.strstart++,a.lookahead--,0===a.strm.avail_out)return ua}else a.match_available=1,a.strstart++,a.lookahead--}return a.match_available&&(d=F._tr_tally(a,0,a.window[a.strstart-1]),a.match_available=0),a.insert=a.strstart<ja-1?a.strstart:ja-1,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function q(a,b){for(var c,d,e,f,g=a.window;;){if(a.lookahead<=ka){if(m(a),a.lookahead<=ka&&b===J)return ua;if(0===a.lookahead)break}if(a.match_length=0,a.lookahead>=ja&&a.strstart>0&&(e=a.strstart-1,d=g[e],d===g[++e]&&d===g[++e]&&d===g[++e])){f=a.strstart+ka;do;while(d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&d===g[++e]&&e<f);a.match_length=ka-(f-e),a.match_length>a.lookahead&&(a.match_length=a.lookahead)}if(a.match_length>=ja?(c=F._tr_tally(a,1,a.match_length-ja),a.lookahead-=a.match_length,a.strstart+=a.match_length,a.match_length=0):(c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++),c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function r(a,b){for(var c;;){if(0===a.lookahead&&(m(a),0===a.lookahead)){if(b===J)return ua;break}if(a.match_length=0,c=F._tr_tally(a,0,a.window[a.strstart]),a.lookahead--,a.strstart++,c&&(h(a,!1),0===a.strm.avail_out))return ua}return a.insert=0,b===M?(h(a,!0),0===a.strm.avail_out?wa:xa):a.last_lit&&(h(a,!1),0===a.strm.avail_out)?ua:va}function s(a,b,c,d,e){this.good_length=a,this.max_lazy=b,this.nice_length=c,this.max_chain=d,this.func=e}function t(a){a.window_size=2*a.w_size,f(a.head),a.max_lazy_match=D[a.level].max_lazy,a.good_match=D[a.level].good_length,a.nice_match=D[a.level].nice_length,a.max_chain_length=D[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=ja-1,a.match_available=0,a.ins_h=0}function u(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=$,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new E.Buf16(2*ha),this.dyn_dtree=new E.Buf16(2*(2*fa+1)),this.bl_tree=new E.Buf16(2*(2*ga+1)),f(this.dyn_ltree),f(this.dyn_dtree),f(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new E.Buf16(ia+1),this.heap=new E.Buf16(2*ea+1),f(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new E.Buf16(2*ea+1),f(this.depth),this.l_buf=0,this.lit_bufsize=0,this.last_lit=0,this.d_buf=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}function v(a){var b;return a&&a.state?(a.total_in=a.total_out=0,a.data_type=Z,b=a.state,b.pending=0,b.pending_out=0,b.wrap<0&&(b.wrap=-b.wrap),b.status=b.wrap?na:sa,a.adler=2===b.wrap?0:1,b.last_flush=J,F._tr_init(b),O):d(a,Q)}function w(a){var b=v(a);return b===O&&t(a.state),b}function x(a,b){return a&&a.state?2!==a.state.wrap?Q:(a.state.gzhead=b,O):Q}function y(a,b,c,e,f,g){if(!a)return Q;var h=1;if(b===T&&(b=6),e<0?(h=0,e=-e):e>15&&(h=2,e-=16),f<1||f>_||c!==$||e<8||e>15||b<0||b>9||g<0||g>X)return d(a,Q);8===e&&(e=9);var i=new u;return a.state=i,i.strm=a,i.wrap=h,i.gzhead=null,i.w_bits=e,i.w_size=1<<i.w_bits,i.w_mask=i.w_size-1,i.hash_bits=f+7,i.hash_size=1<<i.hash_bits,i.hash_mask=i.hash_size-1,i.hash_shift=~~((i.hash_bits+ja-1)/ja),i.window=new E.Buf8(2*i.w_size),i.head=new E.Buf16(i.hash_size),i.prev=new E.Buf16(i.w_size),i.lit_bufsize=1<<f+6,i.pending_buf_size=4*i.lit_bufsize,i.pending_buf=new E.Buf8(i.pending_buf_size),i.d_buf=1*i.lit_bufsize,i.l_buf=3*i.lit_bufsize,i.level=b,i.strategy=g,i.method=c,w(a)}function z(a,b){return y(a,b,$,aa,ba,Y)}function A(a,b){var c,h,k,l;if(!a||!a.state||b>N||b<0)return a?d(a,Q):Q;if(h=a.state,!a.output||!a.input&&0!==a.avail_in||h.status===ta&&b!==M)return d(a,0===a.avail_out?S:Q);if(h.strm=a,c=h.last_flush,h.last_flush=b,h.status===na)if(2===h.wrap)a.adler=0,i(h,31),i(h,139),i(h,8),h.gzhead?(i(h,(h.gzhead.text?1:0)+(h.gzhead.hcrc?2:0)+(h.gzhead.extra?4:0)+(h.gzhead.name?8:0)+(h.gzhead.comment?16:0)),i(h,255&h.gzhead.time),i(h,h.gzhead.time>>8&255),i(h,h.gzhead.time>>16&255),i(h,h.gzhead.time>>24&255),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,255&h.gzhead.os),h.gzhead.extra&&h.gzhead.extra.length&&(i(h,255&h.gzhead.extra.length),i(h,h.gzhead.extra.length>>8&255)),h.gzhead.hcrc&&(a.adler=H(a.adler,h.pending_buf,h.pending,0)),h.gzindex=0,h.status=oa):(i(h,0),i(h,0),i(h,0),i(h,0),i(h,0),i(h,9===h.level?2:h.strategy>=V||h.level<2?4:0),i(h,ya),h.status=sa);else{var m=$+(h.w_bits-8<<4)<<8,n=-1;n=h.strategy>=V||h.level<2?0:h.level<6?1:6===h.level?2:3,m|=n<<6,0!==h.strstart&&(m|=ma),m+=31-m%31,h.status=sa,j(h,m),0!==h.strstart&&(j(h,a.adler>>>16),j(h,65535&a.adler)),a.adler=1}if(h.status===oa)if(h.gzhead.extra){for(k=h.pending;h.gzindex<(65535&h.gzhead.extra.length)&&(h.pending!==h.pending_buf_size||(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending!==h.pending_buf_size));)i(h,255&h.gzhead.extra[h.gzindex]),h.gzindex++;h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),h.gzindex===h.gzhead.extra.length&&(h.gzindex=0,h.status=pa)}else h.status=pa;if(h.status===pa)if(h.gzhead.name){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.name.length?255&h.gzhead.name.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.gzindex=0,h.status=qa)}else h.status=qa;if(h.status===qa)if(h.gzhead.comment){k=h.pending;do{if(h.pending===h.pending_buf_size&&(h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),g(a),k=h.pending,h.pending===h.pending_buf_size)){l=1;break}l=h.gzindex<h.gzhead.comment.length?255&h.gzhead.comment.charCodeAt(h.gzindex++):0,i(h,l)}while(0!==l);h.gzhead.hcrc&&h.pending>k&&(a.adler=H(a.adler,h.pending_buf,h.pending-k,k)),0===l&&(h.status=ra)}else h.status=ra;if(h.status===ra&&(h.gzhead.hcrc?(h.pending+2>h.pending_buf_size&&g(a),h.pending+2<=h.pending_buf_size&&(i(h,255&a.adler),i(h,a.adler>>8&255),a.adler=0,h.status=sa)):h.status=sa),0!==h.pending){if(g(a),0===a.avail_out)return h.last_flush=-1,O}else if(0===a.avail_in&&e(b)<=e(c)&&b!==M)return d(a,S);if(h.status===ta&&0!==a.avail_in)return d(a,S);if(0!==a.avail_in||0!==h.lookahead||b!==J&&h.status!==ta){var o=h.strategy===V?r(h,b):h.strategy===W?q(h,b):D[h.level].func(h,b);if(o!==wa&&o!==xa||(h.status=ta),o===ua||o===wa)return 0===a.avail_out&&(h.last_flush=-1),O;if(o===va&&(b===K?F._tr_align(h):b!==N&&(F._tr_stored_block(h,0,0,!1),b===L&&(f(h.head),0===h.lookahead&&(h.strstart=0,h.block_start=0,h.insert=0))),g(a),0===a.avail_out))return h.last_flush=-1,O}return b!==M?O:h.wrap<=0?P:(2===h.wrap?(i(h,255&a.adler),i(h,a.adler>>8&255),i(h,a.adler>>16&255),i(h,a.adler>>24&255),i(h,255&a.total_in),i(h,a.total_in>>8&255),i(h,a.total_in>>16&255),i(h,a.total_in>>24&255)):(j(h,a.adler>>>16),j(h,65535&a.adler)),g(a),h.wrap>0&&(h.wrap=-h.wrap),0!==h.pending?O:P)}function B(a){var b;return a&&a.state?(b=a.state.status,b!==na&&b!==oa&&b!==pa&&b!==qa&&b!==ra&&b!==sa&&b!==ta?d(a,Q):(a.state=null,b===sa?d(a,R):O)):Q}function C(a,b){var c,d,e,g,h,i,j,k,l=b.length;if(!a||!a.state)return Q;if(c=a.state,g=c.wrap,2===g||1===g&&c.status!==na||c.lookahead)return Q;for(1===g&&(a.adler=G(a.adler,b,l,0)),c.wrap=0,l>=c.w_size&&(0===g&&(f(c.head),c.strstart=0,c.block_start=0,c.insert=0),k=new E.Buf8(c.w_size),E.arraySet(k,b,l-c.w_size,c.w_size,0),b=k,l=c.w_size),h=a.avail_in,i=a.next_in,j=a.input,a.avail_in=l,a.next_in=0,a.input=b,m(c);c.lookahead>=ja;){d=c.strstart,e=c.lookahead-(ja-1);do c.ins_h=(c.ins_h<<c.hash_shift^c.window[d+ja-1])&c.hash_mask,c.prev[d&c.w_mask]=c.head[c.ins_h],c.head[c.ins_h]=d,d++;while(--e);c.strstart=d,c.lookahead=ja-1,m(c)}return c.strstart+=c.lookahead,c.block_start=c.strstart,c.insert=c.lookahead,c.lookahead=0,c.match_length=c.prev_length=ja-1,c.match_available=0,a.next_in=i,a.input=j,a.avail_in=h,c.wrap=g,O}var D,E=a(\"../utils/common\"),F=a(\"./trees\"),G=a(\"./adler32\"),H=a(\"./crc32\"),I=a(\"./messages\"),J=0,K=1,L=3,M=4,N=5,O=0,P=1,Q=-2,R=-3,S=-5,T=-1,U=1,V=2,W=3,X=4,Y=0,Z=2,$=8,_=9,aa=15,ba=8,ca=29,da=256,ea=da+1+ca,fa=30,ga=19,ha=2*ea+1,ia=15,ja=3,ka=258,la=ka+ja+1,ma=32,na=42,oa=69,pa=73,qa=91,ra=103,sa=113,ta=666,ua=1,va=2,wa=3,xa=4,ya=3;D=[new s(0,0,0,0,n),new s(4,4,8,4,o),new s(4,5,16,8,o),new s(4,6,32,32,o),new s(4,4,16,16,p),new s(8,16,32,32,p),new s(8,16,128,128,p),new s(8,32,128,256,p),new s(32,128,258,1024,p),new s(32,258,258,4096,p)],c.deflateInit=z,c.deflateInit2=y,c.deflateReset=w,c.deflateResetKeep=v,c.deflateSetHeader=x,c.deflate=A,c.deflateEnd=B,c.deflateSetDictionary=C,c.deflateInfo=\"pako deflate (from Nodeca project)\"},{\"../utils/common\":28,\"./adler32\":30,\"./crc32\":32,\"./messages\":38,\"./trees\":39}],34:[function(a,b,c){\"use strict\";function d(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name=\"\",this.comment=\"\",this.hcrc=0,this.done=!1}b.exports=d},{}],35:[function(a,b,c){\"use strict\";var d=30,e=12;b.exports=function(a,b){var c,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u,v,w,x,y,z,A,B,C;c=a.state,f=a.next_in,B=a.input,g=f+(a.avail_in-5),h=a.next_out,C=a.output,i=h-(b-a.avail_out),j=h+(a.avail_out-257),k=c.dmax,l=c.wsize,m=c.whave,n=c.wnext,o=c.window,p=c.hold,q=c.bits,r=c.lencode,s=c.distcode,t=(1<<c.lenbits)-1,u=(1<<c.distbits)-1;a:do{q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=r[p&t];b:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,0===w)C[h++]=65535&v;else{if(!(16&w)){if(0===(64&w)){v=r[(65535&v)+(p&(1<<w)-1)];continue b}if(32&w){c.mode=e;break a}a.msg=\"invalid literal/length code\",c.mode=d;break a}x=65535&v,w&=15,w&&(q<w&&(p+=B[f++]<<q,q+=8),x+=p&(1<<w)-1,p>>>=w,q-=w),q<15&&(p+=B[f++]<<q,q+=8,p+=B[f++]<<q,q+=8),v=s[p&u];c:for(;;){if(w=v>>>24,p>>>=w,q-=w,w=v>>>16&255,!(16&w)){if(0===(64&w)){v=s[(65535&v)+(p&(1<<w)-1)];continue c}a.msg=\"invalid distance code\",c.mode=d;break a}if(y=65535&v,w&=15,q<w&&(p+=B[f++]<<q,q+=8,q<w&&(p+=B[f++]<<q,q+=8)),y+=p&(1<<w)-1,y>k){a.msg=\"invalid distance too far back\",c.mode=d;break a}if(p>>>=w,q-=w,w=h-i,y>w){if(w=y-w,w>m&&c.sane){a.msg=\"invalid distance too far back\",c.mode=d;break a}if(z=0,A=o,0===n){if(z+=l-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}else if(n<w){if(z+=l+n-w,w-=n,w<x){x-=w;do C[h++]=o[z++];while(--w);if(z=0,n<x){w=n,x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}}}else if(z+=n-w,w<x){x-=w;do C[h++]=o[z++];while(--w);z=h-y,A=C}for(;x>2;)C[h++]=A[z++],C[h++]=A[z++],C[h++]=A[z++],x-=3;x&&(C[h++]=A[z++],x>1&&(C[h++]=A[z++]))}else{z=h-y;do C[h++]=C[z++],C[h++]=C[z++],C[h++]=C[z++],x-=3;while(x>2);x&&(C[h++]=C[z++],x>1&&(C[h++]=C[z++]))}break}}break}}while(f<g&&h<j);x=q>>3,f-=x,q-=x<<3,p&=(1<<q)-1,a.next_in=f,a.next_out=h,a.avail_in=f<g?5+(g-f):5-(f-g),a.avail_out=h<j?257+(j-h):257-(h-j),c.hold=p,c.bits=q}},{}],36:[function(a,b,c){\"use strict\";function d(a){return(a>>>24&255)+(a>>>8&65280)+((65280&a)<<8)+((255&a)<<24)}function e(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new s.Buf16(320),this.work=new s.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function f(a){var b;return a&&a.state?(b=a.state,a.total_in=a.total_out=b.total=0,a.msg=\"\",b.wrap&&(a.adler=1&b.wrap),b.mode=L,b.last=0,b.havedict=0,b.dmax=32768,b.head=null,b.hold=0,b.bits=0,b.lencode=b.lendyn=new s.Buf32(pa),b.distcode=b.distdyn=new s.Buf32(qa),b.sane=1,b.back=-1,D):G}function g(a){var b;return a&&a.state?(b=a.state,b.wsize=0,b.whave=0,b.wnext=0,f(a)):G}function h(a,b){var c,d;return a&&a.state?(d=a.state,b<0?(c=0,b=-b):(c=(b>>4)+1,b<48&&(b&=15)),b&&(b<8||b>15)?G:(null!==d.window&&d.wbits!==b&&(d.window=null),d.wrap=c,d.wbits=b,g(a))):G}function i(a,b){var c,d;return a?(d=new e,a.state=d,d.window=null,c=h(a,b),c!==D&&(a.state=null),c):G}function j(a){return i(a,sa)}function k(a){if(ta){var b;for(q=new s.Buf32(512),r=new s.Buf32(32),b=0;b<144;)a.lens[b++]=8;for(;b<256;)a.lens[b++]=9;for(;b<280;)a.lens[b++]=7;for(;b<288;)a.lens[b++]=8;for(w(y,a.lens,0,288,q,0,a.work,{bits:9}),b=0;b<32;)a.lens[b++]=5;w(z,a.lens,0,32,r,0,a.work,{bits:5}),ta=!1}a.lencode=q,a.lenbits=9,a.distcode=r,a.distbits=5}function l(a,b,c,d){var e,f=a.state;return null===f.window&&(f.wsize=1<<f.wbits,f.wnext=0,f.whave=0,f.window=new s.Buf8(f.wsize)),d>=f.wsize?(s.arraySet(f.window,b,c-f.wsize,f.wsize,0),f.wnext=0,f.whave=f.wsize):(e=f.wsize-f.wnext,e>d&&(e=d),s.arraySet(f.window,b,c-d,e,f.wnext),d-=e,d?(s.arraySet(f.window,b,c-d,d,0),f.wnext=d,f.whave=f.wsize):(f.wnext+=e,f.wnext===f.wsize&&(f.wnext=0),f.whave<f.wsize&&(f.whave+=e))),0}function m(a,b){var c,e,f,g,h,i,j,m,n,o,p,q,r,pa,qa,ra,sa,ta,ua,va,wa,xa,ya,za,Aa=0,Ba=new s.Buf8(4),Ca=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!a||!a.state||!a.output||!a.input&&0!==a.avail_in)return G;c=a.state,c.mode===W&&(c.mode=X),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,o=i,p=j,xa=D;a:for(;;)switch(c.mode){case L:if(0===c.wrap){c.mode=X;break}for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(2&c.wrap&&35615===m){c.check=0,Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0),m=0,n=0,c.mode=M;break}if(c.flags=0,c.head&&(c.head.done=!1),!(1&c.wrap)||(((255&m)<<8)+(m>>8))%31){a.msg=\"incorrect header check\",c.mode=ma;break}if((15&m)!==K){a.msg=\"unknown compression method\",c.mode=ma;break}if(m>>>=4,n-=4,wa=(15&m)+8,0===c.wbits)c.wbits=wa;else if(wa>c.wbits){a.msg=\"invalid window size\",c.mode=ma;break}c.dmax=1<<wa,a.adler=c.check=1,c.mode=512&m?U:W,m=0,n=0;break;case M:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.flags=m,(255&c.flags)!==K){a.msg=\"unknown compression method\",c.mode=ma;break}if(57344&c.flags){a.msg=\"unknown header flags set\",c.mode=ma;break}c.head&&(c.head.text=m>>8&1),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=N;case N:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.head&&(c.head.time=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,Ba[2]=m>>>16&255,Ba[3]=m>>>24&255,c.check=u(c.check,Ba,4,0)),m=0,n=0,c.mode=O;case O:for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,\nn+=8}c.head&&(c.head.xflags=255&m,c.head.os=m>>8),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0,c.mode=P;case P:if(1024&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length=m,c.head&&(c.head.extra_len=m),512&c.flags&&(Ba[0]=255&m,Ba[1]=m>>>8&255,c.check=u(c.check,Ba,2,0)),m=0,n=0}else c.head&&(c.head.extra=null);c.mode=Q;case Q:if(1024&c.flags&&(q=c.length,q>i&&(q=i),q&&(c.head&&(wa=c.head.extra_len-c.length,c.head.extra||(c.head.extra=new Array(c.head.extra_len)),s.arraySet(c.head.extra,e,g,q,wa)),512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,c.length-=q),c.length))break a;c.length=0,c.mode=R;case R:if(2048&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.name+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.name=null);c.length=0,c.mode=S;case S:if(4096&c.flags){if(0===i)break a;q=0;do wa=e[g+q++],c.head&&wa&&c.length<65536&&(c.head.comment+=String.fromCharCode(wa));while(wa&&q<i);if(512&c.flags&&(c.check=u(c.check,e,q,g)),i-=q,g+=q,wa)break a}else c.head&&(c.head.comment=null);c.mode=T;case T:if(512&c.flags){for(;n<16;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(65535&c.check)){a.msg=\"header crc mismatch\",c.mode=ma;break}m=0,n=0}c.head&&(c.head.hcrc=c.flags>>9&1,c.head.done=!0),a.adler=c.check=0,c.mode=W;break;case U:for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}a.adler=c.check=d(m),m=0,n=0,c.mode=V;case V:if(0===c.havedict)return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,F;a.adler=c.check=1,c.mode=W;case W:if(b===B||b===C)break a;case X:if(c.last){m>>>=7&n,n-=7&n,c.mode=ja;break}for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}switch(c.last=1&m,m>>>=1,n-=1,3&m){case 0:c.mode=Y;break;case 1:if(k(c),c.mode=ca,b===C){m>>>=2,n-=2;break a}break;case 2:c.mode=_;break;case 3:a.msg=\"invalid block type\",c.mode=ma}m>>>=2,n-=2;break;case Y:for(m>>>=7&n,n-=7&n;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if((65535&m)!==(m>>>16^65535)){a.msg=\"invalid stored block lengths\",c.mode=ma;break}if(c.length=65535&m,m=0,n=0,c.mode=Z,b===C)break a;case Z:c.mode=$;case $:if(q=c.length){if(q>i&&(q=i),q>j&&(q=j),0===q)break a;s.arraySet(f,e,g,q,h),i-=q,g+=q,j-=q,h+=q,c.length-=q;break}c.mode=W;break;case _:for(;n<14;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(c.nlen=(31&m)+257,m>>>=5,n-=5,c.ndist=(31&m)+1,m>>>=5,n-=5,c.ncode=(15&m)+4,m>>>=4,n-=4,c.nlen>286||c.ndist>30){a.msg=\"too many length or distance symbols\",c.mode=ma;break}c.have=0,c.mode=aa;case aa:for(;c.have<c.ncode;){for(;n<3;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.lens[Ca[c.have++]]=7&m,m>>>=3,n-=3}for(;c.have<19;)c.lens[Ca[c.have++]]=0;if(c.lencode=c.lendyn,c.lenbits=7,ya={bits:c.lenbits},xa=w(x,c.lens,0,19,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg=\"invalid code lengths set\",c.mode=ma;break}c.have=0,c.mode=ba;case ba:for(;c.have<c.nlen+c.ndist;){for(;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(sa<16)m>>>=qa,n-=qa,c.lens[c.have++]=sa;else{if(16===sa){for(za=qa+2;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m>>>=qa,n-=qa,0===c.have){a.msg=\"invalid bit length repeat\",c.mode=ma;break}wa=c.lens[c.have-1],q=3+(3&m),m>>>=2,n-=2}else if(17===sa){for(za=qa+3;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=3+(7&m),m>>>=3,n-=3}else{for(za=qa+7;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=qa,n-=qa,wa=0,q=11+(127&m),m>>>=7,n-=7}if(c.have+q>c.nlen+c.ndist){a.msg=\"invalid bit length repeat\",c.mode=ma;break}for(;q--;)c.lens[c.have++]=wa}}if(c.mode===ma)break;if(0===c.lens[256]){a.msg=\"invalid code -- missing end-of-block\",c.mode=ma;break}if(c.lenbits=9,ya={bits:c.lenbits},xa=w(y,c.lens,0,c.nlen,c.lencode,0,c.work,ya),c.lenbits=ya.bits,xa){a.msg=\"invalid literal/lengths set\",c.mode=ma;break}if(c.distbits=6,c.distcode=c.distdyn,ya={bits:c.distbits},xa=w(z,c.lens,c.nlen,c.ndist,c.distcode,0,c.work,ya),c.distbits=ya.bits,xa){a.msg=\"invalid distances set\",c.mode=ma;break}if(c.mode=ca,b===C)break a;case ca:c.mode=da;case da:if(i>=6&&j>=258){a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,v(a,p),h=a.next_out,f=a.output,j=a.avail_out,g=a.next_in,e=a.input,i=a.avail_in,m=c.hold,n=c.bits,c.mode===W&&(c.back=-1);break}for(c.back=0;Aa=c.lencode[m&(1<<c.lenbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(ra&&0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.lencode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,c.length=sa,0===ra){c.mode=ia;break}if(32&ra){c.back=-1,c.mode=W;break}if(64&ra){a.msg=\"invalid literal/length code\",c.mode=ma;break}c.extra=15&ra,c.mode=ea;case ea:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.length+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}c.was=c.length,c.mode=fa;case fa:for(;Aa=c.distcode[m&(1<<c.distbits)-1],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(0===(240&ra)){for(ta=qa,ua=ra,va=sa;Aa=c.distcode[va+((m&(1<<ta+ua)-1)>>ta)],qa=Aa>>>24,ra=Aa>>>16&255,sa=65535&Aa,!(ta+qa<=n);){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}m>>>=ta,n-=ta,c.back+=ta}if(m>>>=qa,n-=qa,c.back+=qa,64&ra){a.msg=\"invalid distance code\",c.mode=ma;break}c.offset=sa,c.extra=15&ra,c.mode=ga;case ga:if(c.extra){for(za=c.extra;n<za;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}c.offset+=m&(1<<c.extra)-1,m>>>=c.extra,n-=c.extra,c.back+=c.extra}if(c.offset>c.dmax){a.msg=\"invalid distance too far back\",c.mode=ma;break}c.mode=ha;case ha:if(0===j)break a;if(q=p-j,c.offset>q){if(q=c.offset-q,q>c.whave&&c.sane){a.msg=\"invalid distance too far back\",c.mode=ma;break}q>c.wnext?(q-=c.wnext,r=c.wsize-q):r=c.wnext-q,q>c.length&&(q=c.length),pa=c.window}else pa=f,r=h-c.offset,q=c.length;q>j&&(q=j),j-=q,c.length-=q;do f[h++]=pa[r++];while(--q);0===c.length&&(c.mode=da);break;case ia:if(0===j)break a;f[h++]=c.length,j--,c.mode=da;break;case ja:if(c.wrap){for(;n<32;){if(0===i)break a;i--,m|=e[g++]<<n,n+=8}if(p-=j,a.total_out+=p,c.total+=p,p&&(a.adler=c.check=c.flags?u(c.check,f,p,h-p):t(c.check,f,p,h-p)),p=j,(c.flags?m:d(m))!==c.check){a.msg=\"incorrect data check\",c.mode=ma;break}m=0,n=0}c.mode=ka;case ka:if(c.wrap&&c.flags){for(;n<32;){if(0===i)break a;i--,m+=e[g++]<<n,n+=8}if(m!==(4294967295&c.total)){a.msg=\"incorrect length check\",c.mode=ma;break}m=0,n=0}c.mode=la;case la:xa=E;break a;case ma:xa=H;break a;case na:return I;case oa:default:return G}return a.next_out=h,a.avail_out=j,a.next_in=g,a.avail_in=i,c.hold=m,c.bits=n,(c.wsize||p!==a.avail_out&&c.mode<ma&&(c.mode<ja||b!==A))&&l(a,a.output,a.next_out,p-a.avail_out)?(c.mode=na,I):(o-=a.avail_in,p-=a.avail_out,a.total_in+=o,a.total_out+=p,c.total+=p,c.wrap&&p&&(a.adler=c.check=c.flags?u(c.check,f,p,a.next_out-p):t(c.check,f,p,a.next_out-p)),a.data_type=c.bits+(c.last?64:0)+(c.mode===W?128:0)+(c.mode===ca||c.mode===Z?256:0),(0===o&&0===p||b===A)&&xa===D&&(xa=J),xa)}function n(a){if(!a||!a.state)return G;var b=a.state;return b.window&&(b.window=null),a.state=null,D}function o(a,b){var c;return a&&a.state?(c=a.state,0===(2&c.wrap)?G:(c.head=b,b.done=!1,D)):G}function p(a,b){var c,d,e,f=b.length;return a&&a.state?(c=a.state,0!==c.wrap&&c.mode!==V?G:c.mode===V&&(d=1,d=t(d,b,f,0),d!==c.check)?H:(e=l(a,b,f,f))?(c.mode=na,I):(c.havedict=1,D)):G}var q,r,s=a(\"../utils/common\"),t=a(\"./adler32\"),u=a(\"./crc32\"),v=a(\"./inffast\"),w=a(\"./inftrees\"),x=0,y=1,z=2,A=4,B=5,C=6,D=0,E=1,F=2,G=-2,H=-3,I=-4,J=-5,K=8,L=1,M=2,N=3,O=4,P=5,Q=6,R=7,S=8,T=9,U=10,V=11,W=12,X=13,Y=14,Z=15,$=16,_=17,aa=18,ba=19,ca=20,da=21,ea=22,fa=23,ga=24,ha=25,ia=26,ja=27,ka=28,la=29,ma=30,na=31,oa=32,pa=852,qa=592,ra=15,sa=ra,ta=!0;c.inflateReset=g,c.inflateReset2=h,c.inflateResetKeep=f,c.inflateInit=j,c.inflateInit2=i,c.inflate=m,c.inflateEnd=n,c.inflateGetHeader=o,c.inflateSetDictionary=p,c.inflateInfo=\"pako inflate (from Nodeca project)\"},{\"../utils/common\":28,\"./adler32\":30,\"./crc32\":32,\"./inffast\":35,\"./inftrees\":37}],37:[function(a,b,c){\"use strict\";var d=a(\"../utils/common\"),e=15,f=852,g=592,h=0,i=1,j=2,k=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],l=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],m=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],n=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];b.exports=function(a,b,c,o,p,q,r,s){var t,u,v,w,x,y,z,A,B,C=s.bits,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=null,O=0,P=new d.Buf16(e+1),Q=new d.Buf16(e+1),R=null,S=0;for(D=0;D<=e;D++)P[D]=0;for(E=0;E<o;E++)P[b[c+E]]++;for(H=C,G=e;G>=1&&0===P[G];G--);if(H>G&&(H=G),0===G)return p[q++]=20971520,p[q++]=20971520,s.bits=1,0;for(F=1;F<G&&0===P[F];F++);for(H<F&&(H=F),K=1,D=1;D<=e;D++)if(K<<=1,K-=P[D],K<0)return-1;if(K>0&&(a===h||1!==G))return-1;for(Q[1]=0,D=1;D<e;D++)Q[D+1]=Q[D]+P[D];for(E=0;E<o;E++)0!==b[c+E]&&(r[Q[b[c+E]]++]=E);if(a===h?(N=R=r,y=19):a===i?(N=k,O-=257,R=l,S-=257,y=256):(N=m,R=n,y=-1),M=0,E=0,D=F,x=q,I=H,J=0,v=-1,L=1<<H,w=L-1,a===i&&L>f||a===j&&L>g)return 1;for(var T=0;;){T++,z=D-J,r[E]<y?(A=0,B=r[E]):r[E]>y?(A=R[S+r[E]],B=N[O+r[E]]):(A=96,B=0),t=1<<D-J,u=1<<I,F=u;do u-=t,p[x+(M>>J)+u]=z<<24|A<<16|B|0;while(0!==u);for(t=1<<D-1;M&t;)t>>=1;if(0!==t?(M&=t-1,M+=t):M=0,E++,0===--P[D]){if(D===G)break;D=b[c+r[E]]}if(D>H&&(M&w)!==v){for(0===J&&(J=H),x+=F,I=D-J,K=1<<I;I+J<G&&(K-=P[I+J],!(K<=0));)I++,K<<=1;if(L+=1<<I,a===i&&L>f||a===j&&L>g)return 1;v=M&w,p[v]=H<<24|I<<16|x-q|0}}return 0!==M&&(p[x+M]=D-J<<24|64<<16|0),s.bits=H,0}},{\"../utils/common\":28}],38:[function(a,b,c){\"use strict\";b.exports={2:\"need dictionary\",1:\"stream end\",0:\"\",\"-1\":\"file error\",\"-2\":\"stream error\",\"-3\":\"data error\",\"-4\":\"insufficient memory\",\"-5\":\"buffer error\",\"-6\":\"incompatible version\"}},{}],39:[function(a,b,c){\"use strict\";function d(a){for(var b=a.length;--b>=0;)a[b]=0}function e(a,b,c,d,e){this.static_tree=a,this.extra_bits=b,this.extra_base=c,this.elems=d,this.max_length=e,this.has_stree=a&&a.length}function f(a,b){this.dyn_tree=a,this.max_code=0,this.stat_desc=b}function g(a){return a<256?ia[a]:ia[256+(a>>>7)]}function h(a,b){a.pending_buf[a.pending++]=255&b,a.pending_buf[a.pending++]=b>>>8&255}function i(a,b,c){a.bi_valid>X-c?(a.bi_buf|=b<<a.bi_valid&65535,h(a,a.bi_buf),a.bi_buf=b>>X-a.bi_valid,a.bi_valid+=c-X):(a.bi_buf|=b<<a.bi_valid&65535,a.bi_valid+=c)}function j(a,b,c){i(a,c[2*b],c[2*b+1])}function k(a,b){var c=0;do c|=1&a,a>>>=1,c<<=1;while(--b>0);return c>>>1}function l(a){16===a.bi_valid?(h(a,a.bi_buf),a.bi_buf=0,a.bi_valid=0):a.bi_valid>=8&&(a.pending_buf[a.pending++]=255&a.bi_buf,a.bi_buf>>=8,a.bi_valid-=8)}function m(a,b){var c,d,e,f,g,h,i=b.dyn_tree,j=b.max_code,k=b.stat_desc.static_tree,l=b.stat_desc.has_stree,m=b.stat_desc.extra_bits,n=b.stat_desc.extra_base,o=b.stat_desc.max_length,p=0;for(f=0;f<=W;f++)a.bl_count[f]=0;for(i[2*a.heap[a.heap_max]+1]=0,c=a.heap_max+1;c<V;c++)d=a.heap[c],f=i[2*i[2*d+1]+1]+1,f>o&&(f=o,p++),i[2*d+1]=f,d>j||(a.bl_count[f]++,g=0,d>=n&&(g=m[d-n]),h=i[2*d],a.opt_len+=h*(f+g),l&&(a.static_len+=h*(k[2*d+1]+g)));if(0!==p){do{for(f=o-1;0===a.bl_count[f];)f--;a.bl_count[f]--,a.bl_count[f+1]+=2,a.bl_count[o]--,p-=2}while(p>0);for(f=o;0!==f;f--)for(d=a.bl_count[f];0!==d;)e=a.heap[--c],e>j||(i[2*e+1]!==f&&(a.opt_len+=(f-i[2*e+1])*i[2*e],i[2*e+1]=f),d--)}}function n(a,b,c){var d,e,f=new Array(W+1),g=0;for(d=1;d<=W;d++)f[d]=g=g+c[d-1]<<1;for(e=0;e<=b;e++){var h=a[2*e+1];0!==h&&(a[2*e]=k(f[h]++,h))}}function o(){var a,b,c,d,f,g=new Array(W+1);for(c=0,d=0;d<Q-1;d++)for(ka[d]=c,a=0;a<1<<ba[d];a++)ja[c++]=d;for(ja[c-1]=d,f=0,d=0;d<16;d++)for(la[d]=f,a=0;a<1<<ca[d];a++)ia[f++]=d;for(f>>=7;d<T;d++)for(la[d]=f<<7,a=0;a<1<<ca[d]-7;a++)ia[256+f++]=d;for(b=0;b<=W;b++)g[b]=0;for(a=0;a<=143;)ga[2*a+1]=8,a++,g[8]++;for(;a<=255;)ga[2*a+1]=9,a++,g[9]++;for(;a<=279;)ga[2*a+1]=7,a++,g[7]++;for(;a<=287;)ga[2*a+1]=8,a++,g[8]++;for(n(ga,S+1,g),a=0;a<T;a++)ha[2*a+1]=5,ha[2*a]=k(a,5);ma=new e(ga,ba,R+1,S,W),na=new e(ha,ca,0,T,W),oa=new e(new Array(0),da,0,U,Y)}function p(a){var b;for(b=0;b<S;b++)a.dyn_ltree[2*b]=0;for(b=0;b<T;b++)a.dyn_dtree[2*b]=0;for(b=0;b<U;b++)a.bl_tree[2*b]=0;a.dyn_ltree[2*Z]=1,a.opt_len=a.static_len=0,a.last_lit=a.matches=0}function q(a){a.bi_valid>8?h(a,a.bi_buf):a.bi_valid>0&&(a.pending_buf[a.pending++]=a.bi_buf),a.bi_buf=0,a.bi_valid=0}function r(a,b,c,d){q(a),d&&(h(a,c),h(a,~c)),G.arraySet(a.pending_buf,a.window,b,c,a.pending),a.pending+=c}function s(a,b,c,d){var e=2*b,f=2*c;return a[e]<a[f]||a[e]===a[f]&&d[b]<=d[c]}function t(a,b,c){for(var d=a.heap[c],e=c<<1;e<=a.heap_len&&(e<a.heap_len&&s(b,a.heap[e+1],a.heap[e],a.depth)&&e++,!s(b,d,a.heap[e],a.depth));)a.heap[c]=a.heap[e],c=e,e<<=1;a.heap[c]=d}function u(a,b,c){var d,e,f,h,k=0;if(0!==a.last_lit)do d=a.pending_buf[a.d_buf+2*k]<<8|a.pending_buf[a.d_buf+2*k+1],e=a.pending_buf[a.l_buf+k],k++,0===d?j(a,e,b):(f=ja[e],j(a,f+R+1,b),h=ba[f],0!==h&&(e-=ka[f],i(a,e,h)),d--,f=g(d),j(a,f,c),h=ca[f],0!==h&&(d-=la[f],i(a,d,h)));while(k<a.last_lit);j(a,Z,b)}function v(a,b){var c,d,e,f=b.dyn_tree,g=b.stat_desc.static_tree,h=b.stat_desc.has_stree,i=b.stat_desc.elems,j=-1;for(a.heap_len=0,a.heap_max=V,c=0;c<i;c++)0!==f[2*c]?(a.heap[++a.heap_len]=j=c,a.depth[c]=0):f[2*c+1]=0;for(;a.heap_len<2;)e=a.heap[++a.heap_len]=j<2?++j:0,f[2*e]=1,a.depth[e]=0,a.opt_len--,h&&(a.static_len-=g[2*e+1]);for(b.max_code=j,c=a.heap_len>>1;c>=1;c--)t(a,f,c);e=i;do c=a.heap[1],a.heap[1]=a.heap[a.heap_len--],t(a,f,1),d=a.heap[1],a.heap[--a.heap_max]=c,a.heap[--a.heap_max]=d,f[2*e]=f[2*c]+f[2*d],a.depth[e]=(a.depth[c]>=a.depth[d]?a.depth[c]:a.depth[d])+1,f[2*c+1]=f[2*d+1]=e,a.heap[1]=e++,t(a,f,1);while(a.heap_len>=2);a.heap[--a.heap_max]=a.heap[1],m(a,b),n(f,j,a.bl_count)}function w(a,b,c){var d,e,f=-1,g=b[1],h=0,i=7,j=4;for(0===g&&(i=138,j=3),b[2*(c+1)+1]=65535,d=0;d<=c;d++)e=g,g=b[2*(d+1)+1],++h<i&&e===g||(h<j?a.bl_tree[2*e]+=h:0!==e?(e!==f&&a.bl_tree[2*e]++,a.bl_tree[2*$]++):h<=10?a.bl_tree[2*_]++:a.bl_tree[2*aa]++,h=0,f=e,0===g?(i=138,j=3):e===g?(i=6,j=3):(i=7,j=4))}function x(a,b,c){var d,e,f=-1,g=b[1],h=0,k=7,l=4;for(0===g&&(k=138,l=3),d=0;d<=c;d++)if(e=g,g=b[2*(d+1)+1],!(++h<k&&e===g)){if(h<l){do j(a,e,a.bl_tree);while(0!==--h)}else 0!==e?(e!==f&&(j(a,e,a.bl_tree),h--),j(a,$,a.bl_tree),i(a,h-3,2)):h<=10?(j(a,_,a.bl_tree),i(a,h-3,3)):(j(a,aa,a.bl_tree),i(a,h-11,7));h=0,f=e,0===g?(k=138,l=3):e===g?(k=6,l=3):(k=7,l=4)}}function y(a){var b;for(w(a,a.dyn_ltree,a.l_desc.max_code),w(a,a.dyn_dtree,a.d_desc.max_code),v(a,a.bl_desc),b=U-1;b>=3&&0===a.bl_tree[2*ea[b]+1];b--);return a.opt_len+=3*(b+1)+5+5+4,b}function z(a,b,c,d){var e;for(i(a,b-257,5),i(a,c-1,5),i(a,d-4,4),e=0;e<d;e++)i(a,a.bl_tree[2*ea[e]+1],3);x(a,a.dyn_ltree,b-1),x(a,a.dyn_dtree,c-1)}function A(a){var b,c=4093624447;for(b=0;b<=31;b++,c>>>=1)if(1&c&&0!==a.dyn_ltree[2*b])return I;if(0!==a.dyn_ltree[18]||0!==a.dyn_ltree[20]||0!==a.dyn_ltree[26])return J;for(b=32;b<R;b++)if(0!==a.dyn_ltree[2*b])return J;return I}function B(a){pa||(o(),pa=!0),a.l_desc=new f(a.dyn_ltree,ma),a.d_desc=new f(a.dyn_dtree,na),a.bl_desc=new f(a.bl_tree,oa),a.bi_buf=0,a.bi_valid=0,p(a)}function C(a,b,c,d){i(a,(L<<1)+(d?1:0),3),r(a,b,c,!0)}function D(a){i(a,M<<1,3),j(a,Z,ga),l(a)}function E(a,b,c,d){var e,f,g=0;a.level>0?(a.strm.data_type===K&&(a.strm.data_type=A(a)),v(a,a.l_desc),v(a,a.d_desc),g=y(a),e=a.opt_len+3+7>>>3,f=a.static_len+3+7>>>3,f<=e&&(e=f)):e=f=c+5,c+4<=e&&b!==-1?C(a,b,c,d):a.strategy===H||f===e?(i(a,(M<<1)+(d?1:0),3),u(a,ga,ha)):(i(a,(N<<1)+(d?1:0),3),z(a,a.l_desc.max_code+1,a.d_desc.max_code+1,g+1),u(a,a.dyn_ltree,a.dyn_dtree)),p(a),d&&q(a)}function F(a,b,c){return a.pending_buf[a.d_buf+2*a.last_lit]=b>>>8&255,a.pending_buf[a.d_buf+2*a.last_lit+1]=255&b,a.pending_buf[a.l_buf+a.last_lit]=255&c,a.last_lit++,0===b?a.dyn_ltree[2*c]++:(a.matches++,b--,a.dyn_ltree[2*(ja[c]+R+1)]++,a.dyn_dtree[2*g(b)]++),a.last_lit===a.lit_bufsize-1}var G=a(\"../utils/common\"),H=4,I=0,J=1,K=2,L=0,M=1,N=2,O=3,P=258,Q=29,R=256,S=R+1+Q,T=30,U=19,V=2*S+1,W=15,X=16,Y=7,Z=256,$=16,_=17,aa=18,ba=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],ca=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],da=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],ea=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],fa=512,ga=new Array(2*(S+2));d(ga);var ha=new Array(2*T);d(ha);var ia=new Array(fa);d(ia);var ja=new Array(P-O+1);d(ja);var ka=new Array(Q);d(ka);var la=new Array(T);d(la);var ma,na,oa,pa=!1;c._tr_init=B,c._tr_stored_block=C,c._tr_flush_block=E,c._tr_tally=F,c._tr_align=D},{\"../utils/common\":28}],40:[function(a,b,c){\"use strict\";function d(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg=\"\",this.state=null,this.data_type=2,this.adler=0}b.exports=d},{}]},{},[10])(10)});",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/jszip/jszip.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/jszip/license": {
"text": "JSZip is dual licensed. You may use it under the MIT license *or* the GPLv3\nlicense.\n\nThe MIT License\n===============\n\nCopyright (c) 2009-2014 Stuart Knightley, David Duponchel, Franz Buchinger, António Afonso\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in\nall copies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\nTHE SOFTWARE.\n\n\nGPL version 3\n=============\n\n GNU GENERAL PUBLIC LICENSE\n Version 3, 29 June 2007\n\n Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>\n Everyone is permitted to copy and distribute verbatim copies\n of this license document, but changing it is not allowed.\n\n Preamble\n\n The GNU General Public License is a free, copyleft license for\nsoftware and other kinds of works.\n\n The licenses for most software and other practical works are designed\nto take away your freedom to share and change the works. By contrast,\nthe GNU General Public License is intended to guarantee your freedom to\nshare and change all versions of a program--to make sure it remains free\nsoftware for all its users. We, the Free Software Foundation, use the\nGNU General Public License for most of our software; it applies also to\nany other work released this way by its authors. You can apply it to\nyour programs, too.\n\n When we speak of free software, we are referring to freedom, not\nprice. Our General Public Licenses are designed to make sure that you\nhave the freedom to distribute copies of free software (and charge for\nthem if you wish), that you receive source code or can get it if you\nwant it, that you can change the software or use pieces of it in new\nfree programs, and that you know you can do these things.\n\n To protect your rights, we need to prevent others from denying you\nthese rights or asking you to surrender the rights. Therefore, you have\ncertain responsibilities if you distribute copies of the software, or if\nyou modify it: responsibilities to respect the freedom of others.\n\n For example, if you distribute copies of such a program, whether\ngratis or for a fee, you must pass on to the recipients the same\nfreedoms that you received. You must make sure that they, too, receive\nor can get the source code. And you must show them these terms so they\nknow their rights.\n\n Developers that use the GNU GPL protect your rights with two steps:\n(1) assert copyright on the software, and (2) offer you this License\ngiving you legal permission to copy, distribute and/or modify it.\n\n For the developers' and authors' protection, the GPL clearly explains\nthat there is no warranty for this free software. For both users' and\nauthors' sake, the GPL requires that modified versions be marked as\nchanged, so that their problems will not be attributed erroneously to\nauthors of previous versions.\n\n Some devices are designed to deny users access to install or run\nmodified versions of the software inside them, although the manufacturer\ncan do so. This is fundamentally incompatible with the aim of\nprotecting users' freedom to change the software. The systematic\npattern of such abuse occurs in the area of products for individuals to\nuse, which is precisely where it is most unacceptable. Therefore, we\nhave designed this version of the GPL to prohibit the practice for those\nproducts. If such problems arise substantially in other domains, we\nstand ready to extend this provision to those domains in future versions\nof the GPL, as needed to protect the freedom of users.\n\n Finally, every program is threatened constantly by software patents.\nStates should not allow patents to restrict development and use of\nsoftware on general-purpose computers, but in those that do, we wish to\navoid the special danger that patents applied to a free program could\nmake it effectively proprietary. To prevent this, the GPL assures that\npatents cannot be used to render the program non-free.\n\n The precise terms and conditions for copying, distribution and\nmodification follow.\n\n TERMS AND CONDITIONS\n\n 0. Definitions.\n\n \"This License\" refers to version 3 of the GNU General Public License.\n\n \"Copyright\" also means copyright-like laws that apply to other kinds of\nworks, such as semiconductor masks.\n\n \"The Program\" refers to any copyrightable work licensed under this\nLicense. Each licensee is addressed as \"you\". \"Licensees\" and\n\"recipients\" may be individuals or organizations.\n\n To \"modify\" a work means to copy from or adapt all or part of the work\nin a fashion requiring copyright permission, other than the making of an\nexact copy. The resulting work is called a \"modified version\" of the\nearlier work or a work \"based on\" the earlier work.\n\n A \"covered work\" means either the unmodified Program or a work based\non the Program.\n\n To \"propagate\" a work means to do anything with it that, without\npermission, would make you directly or secondarily liable for\ninfringement under applicable copyright law, except executing it on a\ncomputer or modifying a private copy. Propagation includes copying,\ndistribution (with or without modification), making available to the\npublic, and in some countries other activities as well.\n\n To \"convey\" a work means any kind of propagation that enables other\nparties to make or receive copies. Mere interaction with a user through\na computer network, with no transfer of a copy, is not conveying.\n\n An interactive user interface displays \"Appropriate Legal Notices\"\nto the extent that it includes a convenient and prominently visible\nfeature that (1) displays an appropriate copyright notice, and (2)\ntells the user that there is no warranty for the work (except to the\nextent that warranties are provided), that licensees may convey the\nwork under this License, and how to view a copy of this License. If\nthe interface presents a list of user commands or options, such as a\nmenu, a prominent item in the list meets this criterion.\n\n 1. Source Code.\n\n The \"source code\" for a work means the preferred form of the work\nfor making modifications to it. \"Object code\" means any non-source\nform of a work.\n\n A \"Standard Interface\" means an interface that either is an official\nstandard defined by a recognized standards body, or, in the case of\ninterfaces specified for a particular programming language, one that\nis widely used among developers working in that language.\n\n The \"System Libraries\" of an executable work include anything, other\nthan the work as a whole, that (a) is included in the normal form of\npackaging a Major Component, but which is not part of that Major\nComponent, and (b) serves only to enable use of the work with that\nMajor Component, or to implement a Standard Interface for which an\nimplementation is available to the public in source code form. A\n\"Major Component\", in this context, means a major essential component\n(kernel, window system, and so on) of the specific operating system\n(if any) on which the executable work runs, or a compiler used to\nproduce the work, or an object code interpreter used to run it.\n\n The \"Corresponding Source\" for a work in object code form means all\nthe source code needed to generate, install, and (for an executable\nwork) run the object code and to modify the work, including scripts to\ncontrol those activities. However, it does not include the work's\nSystem Libraries, or general-purpose tools or generally available free\nprograms which are used unmodified in performing those activities but\nwhich are not part of the work. For example, Corresponding Source\nincludes interface definition files associated with source files for\nthe work, and the source code for shared libraries and dynamically\nlinked subprograms that the work is specifically designed to require,\nsuch as by intimate data communication or control flow between those\nsubprograms and other parts of the work.\n\n The Corresponding Source need not include anything that users\ncan regenerate automatically from other parts of the Corresponding\nSource.\n\n The Corresponding Source for a work in source code form is that\nsame work.\n\n 2. Basic Permissions.\n\n All rights granted under this License are granted for the term of\ncopyright on the Program, and are irrevocable provided the stated\nconditions are met. This License explicitly affirms your unlimited\npermission to run the unmodified Program. The output from running a\ncovered work is covered by this License only if the output, given its\ncontent, constitutes a covered work. This License acknowledges your\nrights of fair use or other equivalent, as provided by copyright law.\n\n You may make, run and propagate covered works that you do not\nconvey, without conditions so long as your license otherwise remains\nin force. You may convey covered works to others for the sole purpose\nof having them make modifications exclusively for you, or provide you\nwith facilities for running those works, provided that you comply with\nthe terms of this License in conveying all material for which you do\nnot control copyright. Those thus making or running the covered works\nfor you must do so exclusively on your behalf, under your direction\nand control, on terms that prohibit them from making any copies of\nyour copyrighted material outside their relationship with you.\n\n Conveying under any other circumstances is permitted solely under\nthe conditions stated below. Sublicensing is not allowed; section 10\nmakes it unnecessary.\n\n 3. Protecting Users' Legal Rights From Anti-Circumvention Law.\n\n No covered work shall be deemed part of an effective technological\nmeasure under any applicable law fulfilling obligations under article\n11 of the WIPO copyright treaty adopted on 20 December 1996, or\nsimilar laws prohibiting or restricting circumvention of such\nmeasures.\n\n When you convey a covered work, you waive any legal power to forbid\ncircumvention of technological measures to the extent such circumvention\nis effected by exercising rights under this License with respect to\nthe covered work, and you disclaim any intention to limit operation or\nmodification of the work as a means of enforcing, against the work's\nusers, your or third parties' legal rights to forbid circumvention of\ntechnological measures.\n\n 4. Conveying Verbatim Copies.\n\n You may convey verbatim copies of the Program's source code as you\nreceive it, in any medium, provided that you conspicuously and\nappropriately publish on each copy an appropriate copyright notice;\nkeep intact all notices stating that this License and any\nnon-permissive terms added in accord with section 7 apply to the code;\nkeep intact all notices of the absence of any warranty; and give all\nrecipients a copy of this License along with the Program.\n\n You may charge any price or no price for each copy that you convey,\nand you may offer support or warranty protection for a fee.\n\n 5. Conveying Modified Source Versions.\n\n You may convey a work based on the Program, or the modifications to\nproduce it from the Program, in the form of source code under the\nterms of section 4, provided that you also meet all of these conditions:\n\n a) The work must carry prominent notices stating that you modified\n it, and giving a relevant date.\n\n b) The work must carry prominent notices stating that it is\n released under this License and any conditions added under section\n 7. This requirement modifies the requirement in section 4 to\n \"keep intact all notices\".\n\n c) You must license the entire work, as a whole, under this\n License to anyone who comes into possession of a copy. This\n License will therefore apply, along with any applicable section 7\n additional terms, to the whole of the work, and all its parts,\n regardless of how they are packaged. This License gives no\n permission to license the work in any other way, but it does not\n invalidate such permission if you have separately received it.\n\n d) If the work has interactive user interfaces, each must display\n Appropriate Legal Notices; however, if the Program has interactive\n interfaces that do not display Appropriate Legal Notices, your\n work need not make them do so.\n\n A compilation of a covered work with other separate and independent\nworks, which are not by their nature extensions of the covered work,\nand which are not combined with it such as to form a larger program,\nin or on a volume of a storage or distribution medium, is called an\n\"aggregate\" if the compilation and its resulting copyright are not\nused to limit the access or legal rights of the compilation's users\nbeyond what the individual works permit. Inclusion of a covered work\nin an aggregate does not cause this License to apply to the other\nparts of the aggregate.\n\n 6. Conveying Non-Source Forms.\n\n You may convey a covered work in object code form under the terms\nof sections 4 and 5, provided that you also convey the\nmachine-readable Corresponding Source under the terms of this License,\nin one of these ways:\n\n a) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by the\n Corresponding Source fixed on a durable physical medium\n customarily used for software interchange.\n\n b) Convey the object code in, or embodied in, a physical product\n (including a physical distribution medium), accompanied by a\n written offer, valid for at least three years and valid for as\n long as you offer spare parts or customer support for that product\n model, to give anyone who possesses the object code either (1) a\n copy of the Corresponding Source for all the software in the\n product that is covered by this License, on a durable physical\n medium customarily used for software interchange, for a price no\n more than your reasonable cost of physically performing this\n conveying of source, or (2) access to copy the\n Corresponding Source from a network server at no charge.\n\n c) Convey individual copies of the object code with a copy of the\n written offer to provide the Corresponding Source. This\n alternative is allowed only occasionally and noncommercially, and\n only if you received the object code with such an offer, in accord\n with subsection 6b.\n\n d) Convey the object code by offering access from a designated\n place (gratis or for a charge), and offer equivalent access to the\n Corresponding Source in the same way through the same place at no\n further charge. You need not require recipients to copy the\n Corresponding Source along with the object code. If the place to\n copy the object code is a network server, the Corresponding Source\n may be on a different server (operated by you or a third party)\n that supports equivalent copying facilities, provided you maintain\n clear directions next to the object code saying where to find the\n Corresponding Source. Regardless of what server hosts the\n Corresponding Source, you remain obligated to ensure that it is\n available for as long as needed to satisfy these requirements.\n\n e) Convey the object code using peer-to-peer transmission, provided\n you inform other peers where the object code and Corresponding\n Source of the work are being offered to the general public at no\n charge under subsection 6d.\n\n A separable portion of the object code, whose source code is excluded\nfrom the Corresponding Source as a System Library, need not be\nincluded in conveying the object code work.\n\n A \"User Product\" is either (1) a \"consumer product\", which means any\ntangible personal property which is normally used for personal, family,\nor household purposes, or (2) anything designed or sold for incorporation\ninto a dwelling. In determining whether a product is a consumer product,\ndoubtful cases shall be resolved in favor of coverage. For a particular\nproduct received by a particular user, \"normally used\" refers to a\ntypical or common use of that class of product, regardless of the status\nof the particular user or of the way in which the particular user\nactually uses, or expects or is expected to use, the product. A product\nis a consumer product regardless of whether the product has substantial\ncommercial, industrial or non-consumer uses, unless such uses represent\nthe only significant mode of use of the product.\n\n \"Installation Information\" for a User Product means any methods,\nprocedures, authorization keys, or other information required to install\nand execute modified versions of a covered work in that User Product from\na modified version of its Corresponding Source. The information must\nsuffice to ensure that the continued functioning of the modified object\ncode is in no case prevented or interfered with solely because\nmodification has been made.\n\n If you convey an object code work under this section in, or with, or\nspecifically for use in, a User Product, and the conveying occurs as\npart of a transaction in which the right of possession and use of the\nUser Product is transferred to the recipient in perpetuity or for a\nfixed term (regardless of how the transaction is characterized), the\nCorresponding Source conveyed under this section must be accompanied\nby the Installation Information. But this requirement does not apply\nif neither you nor any third party retains the ability to install\nmodified object code on the User Product (for example, the work has\nbeen installed in ROM).\n\n The requirement to provide Installation Information does not include a\nrequirement to continue to provide support service, warranty, or updates\nfor a work that has been modified or installed by the recipient, or for\nthe User Product in which it has been modified or installed. Access to a\nnetwork may be denied when the modification itself materially and\nadversely affects the operation of the network or violates the rules and\nprotocols for communication across the network.\n\n Corresponding Source conveyed, and Installation Information provided,\nin accord with this section must be in a format that is publicly\ndocumented (and with an implementation available to the public in\nsource code form), and must require no special password or key for\nunpacking, reading or copying.\n\n 7. Additional Terms.\n\n \"Additional permissions\" are terms that supplement the terms of this\nLicense by making exceptions from one or more of its conditions.\nAdditional permissions that are applicable to the entire Program shall\nbe treated as though they were included in this License, to the extent\nthat they are valid under applicable law. If additional permissions\napply only to part of the Program, that part may be used separately\nunder those permissions, but the entire Program remains governed by\nthis License without regard to the additional permissions.\n\n When you convey a copy of a covered work, you may at your option\nremove any additional permissions from that copy, or from any part of\nit. (Additional permissions may be written to require their own\nremoval in certain cases when you modify the work.) You may place\nadditional permissions on material, added by you to a covered work,\nfor which you have or can give appropriate copyright permission.\n\n Notwithstanding any other provision of this License, for material you\nadd to a covered work, you may (if authorized by the copyright holders of\nthat material) supplement the terms of this License with terms:\n\n a) Disclaiming warranty or limiting liability differently from the\n terms of sections 15 and 16 of this License; or\n\n b) Requiring preservation of specified reasonable legal notices or\n author attributions in that material or in the Appropriate Legal\n Notices displayed by works containing it; or\n\n c) Prohibiting misrepresentation of the origin of that material, or\n requiring that modified versions of such material be marked in\n reasonable ways as different from the original version; or\n\n d) Limiting the use for publicity purposes of names of licensors or\n authors of the material; or\n\n e) Declining to grant rights under trademark law for use of some\n trade names, trademarks, or service marks; or\n\n f) Requiring indemnification of licensors and authors of that\n material by anyone who conveys the material (or modified versions of\n it) with contractual assumptions of liability to the recipient, for\n any liability that these contractual assumptions directly impose on\n those licensors and authors.\n\n All other non-permissive additional terms are considered \"further\nrestrictions\" within the meaning of section 10. If the Program as you\nreceived it, or any part of it, contains a notice stating that it is\ngoverned by this License along with a term that is a further\nrestriction, you may remove that term. If a license document contains\na further restriction but permits relicensing or conveying under this\nLicense, you may add to a covered work material governed by the terms\nof that license document, provided that the further restriction does\nnot survive such relicensing or conveying.\n\n If you add terms to a covered work in accord with this section, you\nmust place, in the relevant source files, a statement of the\nadditional terms that apply to those files, or a notice indicating\nwhere to find the applicable terms.\n\n Additional terms, permissive or non-permissive, may be stated in the\nform of a separately written license, or stated as exceptions;\nthe above requirements apply either way.\n\n 8. Termination.\n\n You may not propagate or modify a covered work except as expressly\nprovided under this License. Any attempt otherwise to propagate or\nmodify it is void, and will automatically terminate your rights under\nthis License (including any patent licenses granted under the third\nparagraph of section 11).\n\n However, if you cease all violation of this License, then your\nlicense from a particular copyright holder is reinstated (a)\nprovisionally, unless and until the copyright holder explicitly and\nfinally terminates your license, and (b) permanently, if the copyright\nholder fails to notify you of the violation by some reasonable means\nprior to 60 days after the cessation.\n\n Moreover, your license from a particular copyright holder is\nreinstated permanently if the copyright holder notifies you of the\nviolation by some reasonable means, this is the first time you have\nreceived notice of violation of this License (for any work) from that\ncopyright holder, and you cure the violation prior to 30 days after\nyour receipt of the notice.\n\n Termination of your rights under this section does not terminate the\nlicenses of parties who have received copies or rights from you under\nthis License. If your rights have been terminated and not permanently\nreinstated, you do not qualify to receive new licenses for the same\nmaterial under section 10.\n\n 9. Acceptance Not Required for Having Copies.\n\n You are not required to accept this License in order to receive or\nrun a copy of the Program. Ancillary propagation of a covered work\noccurring solely as a consequence of using peer-to-peer transmission\nto receive a copy likewise does not require acceptance. However,\nnothing other than this License grants you permission to propagate or\nmodify any covered work. These actions infringe copyright if you do\nnot accept this License. Therefore, by modifying or propagating a\ncovered work, you indicate your acceptance of this License to do so.\n\n 10. Automatic Licensing of Downstream Recipients.\n\n Each time you convey a covered work, the recipient automatically\nreceives a license from the original licensors, to run, modify and\npropagate that work, subject to this License. You are not responsible\nfor enforcing compliance by third parties with this License.\n\n An \"entity transaction\" is a transaction transferring control of an\norganization, or substantially all assets of one, or subdividing an\norganization, or merging organizations. If propagation of a covered\nwork results from an entity transaction, each party to that\ntransaction who receives a copy of the work also receives whatever\nlicenses to the work the party's predecessor in interest had or could\ngive under the previous paragraph, plus a right to possession of the\nCorresponding Source of the work from the predecessor in interest, if\nthe predecessor has it or can get it with reasonable efforts.\n\n You may not impose any further restrictions on the exercise of the\nrights granted or affirmed under this License. For example, you may\nnot impose a license fee, royalty, or other charge for exercise of\nrights granted under this License, and you may not initiate litigation\n(including a cross-claim or counterclaim in a lawsuit) alleging that\nany patent claim is infringed by making, using, selling, offering for\nsale, or importing the Program or any portion of it.\n\n 11. Patents.\n\n A \"contributor\" is a copyright holder who authorizes use under this\nLicense of the Program or a work on which the Program is based. The\nwork thus licensed is called the contributor's \"contributor version\".\n\n A contributor's \"essential patent claims\" are all patent claims\nowned or controlled by the contributor, whether already acquired or\nhereafter acquired, that would be infringed by some manner, permitted\nby this License, of making, using, or selling its contributor version,\nbut do not include claims that would be infringed only as a\nconsequence of further modification of the contributor version. For\npurposes of this definition, \"control\" includes the right to grant\npatent sublicenses in a manner consistent with the requirements of\nthis License.\n\n Each contributor grants you a non-exclusive, worldwide, royalty-free\npatent license under the contributor's essential patent claims, to\nmake, use, sell, offer for sale, import and otherwise run, modify and\npropagate the contents of its contributor version.\n\n In the following three paragraphs, a \"patent license\" is any express\nagreement or commitment, however denominated, not to enforce a patent\n(such as an express permission to practice a patent or covenant not to\nsue for patent infringement). To \"grant\" such a patent license to a\nparty means to make such an agreement or commitment not to enforce a\npatent against the party.\n\n If you convey a covered work, knowingly relying on a patent license,\nand the Corresponding Source of the work is not available for anyone\nto copy, free of charge and under the terms of this License, through a\npublicly available network server or other readily accessible means,\nthen you must either (1) cause the Corresponding Source to be so\navailable, or (2) arrange to deprive yourself of the benefit of the\npatent license for this particular work, or (3) arrange, in a manner\nconsistent with the requirements of this License, to extend the patent\nlicense to downstream recipients. \"Knowingly relying\" means you have\nactual knowledge that, but for the patent license, your conveying the\ncovered work in a country, or your recipient's use of the covered work\nin a country, would infringe one or more identifiable patents in that\ncountry that you have reason to believe are valid.\n\n If, pursuant to or in connection with a single transaction or\narrangement, you convey, or propagate by procuring conveyance of, a\ncovered work, and grant a patent license to some of the parties\nreceiving the covered work authorizing them to use, propagate, modify\nor convey a specific copy of the covered work, then the patent license\nyou grant is automatically extended to all recipients of the covered\nwork and works based on it.\n\n A patent license is \"discriminatory\" if it does not include within\nthe scope of its coverage, prohibits the exercise of, or is\nconditioned on the non-exercise of one or more of the rights that are\nspecifically granted under this License. You may not convey a covered\nwork if you are a party to an arrangement with a third party that is\nin the business of distributing software, under which you make payment\nto the third party based on the extent of your activity of conveying\nthe work, and under which the third party grants, to any of the\nparties who would receive the covered work from you, a discriminatory\npatent license (a) in connection with copies of the covered work\nconveyed by you (or copies made from those copies), or (b) primarily\nfor and in connection with specific products or compilations that\ncontain the covered work, unless you entered into that arrangement,\nor that patent license was granted, prior to 28 March 2007.\n\n Nothing in this License shall be construed as excluding or limiting\nany implied license or other defenses to infringement that may\notherwise be available to you under applicable patent law.\n\n 12. No Surrender of Others' Freedom.\n\n If conditions are imposed on you (whether by court order, agreement or\notherwise) that contradict the conditions of this License, they do not\nexcuse you from the conditions of this License. If you cannot convey a\ncovered work so as to satisfy simultaneously your obligations under this\nLicense and any other pertinent obligations, then as a consequence you may\nnot convey it at all. For example, if you agree to terms that obligate you\nto collect a royalty for further conveying from those to whom you convey\nthe Program, the only way you could satisfy both those terms and this\nLicense would be to refrain entirely from conveying the Program.\n\n 13. Use with the GNU Affero General Public License.\n\n Notwithstanding any other provision of this License, you have\npermission to link or combine any covered work with a work licensed\nunder version 3 of the GNU Affero General Public License into a single\ncombined work, and to convey the resulting work. The terms of this\nLicense will continue to apply to the part which is the covered work,\nbut the special requirements of the GNU Affero General Public License,\nsection 13, concerning interaction through a network will apply to the\ncombination as such.\n\n 14. Revised Versions of this License.\n\n The Free Software Foundation may publish revised and/or new versions of\nthe GNU General Public License from time to time. Such new versions will\nbe similar in spirit to the present version, but may differ in detail to\naddress new problems or concerns.\n\n Each version is given a distinguishing version number. If the\nProgram specifies that a certain numbered version of the GNU General\nPublic License \"or any later version\" applies to it, you have the\noption of following the terms and conditions either of that numbered\nversion or of any later version published by the Free Software\nFoundation. If the Program does not specify a version number of the\nGNU General Public License, you may choose any version ever published\nby the Free Software Foundation.\n\n If the Program specifies that a proxy can decide which future\nversions of the GNU General Public License can be used, that proxy's\npublic statement of acceptance of a version permanently authorizes you\nto choose that version for the Program.\n\n Later license versions may give you additional or different\npermissions. However, no additional obligations are imposed on any\nauthor or copyright holder as a result of your choosing to follow a\nlater version.\n\n 15. Disclaimer of Warranty.\n\n THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY\nAPPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT\nHOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM \"AS IS\" WITHOUT WARRANTY\nOF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,\nTHE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR\nPURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM\nIS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF\nALL NECESSARY SERVICING, REPAIR OR CORRECTION.\n\n 16. Limitation of Liability.\n\n IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING\nWILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS\nTHE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY\nGENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE\nUSE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF\nDATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD\nPARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),\nEVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF\nSUCH DAMAGES.\n\n 17. Interpretation of Sections 15 and 16.\n\n If the disclaimer of warranty and limitation of liability provided\nabove cannot be given local legal effect according to their terms,\nreviewing courts shall apply local law that most closely approximates\nan absolute waiver of all civil liability in connection with the\nProgram, unless a warranty or assumption of liability accompanies a\ncopy of the Program in return for a fee.\n\n END OF TERMS AND CONDITIONS\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/jszip/license"
},
"$:/plugins/tiddlywiki/jszip/readme": {
"title": "$:/plugins/tiddlywiki/jszip/readme",
"text": "This plugin packages [[JSZip|https://stuk.github.io/jszip/]] for use by other plugins. It does not provide any end-user visible features.\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/katex/katex.min.css": {
"text": ".katex{font:normal 1.21em KaTeX_Main,Times New Roman,serif;line-height:1.2;text-indent:0;text-rendering:auto}.katex *{-ms-high-contrast-adjust:none!important}.katex .katex-version:after{content:\"0.10.2\"}.katex .katex-mathml{position:absolute;clip:rect(1px,1px,1px,1px);padding:0;border:0;height:1px;width:1px;overflow:hidden}.katex .katex-html>.newline{display:block}.katex .base{position:relative;white-space:nowrap;width:min-content}.katex .base,.katex .strut{display:inline-block}.katex .textbf{font-weight:700}.katex .textit{font-style:italic}.katex .textrm{font-family:KaTeX_Main}.katex .textsf{font-family:KaTeX_SansSerif}.katex .texttt{font-family:KaTeX_Typewriter}.katex .mathdefault{font-family:KaTeX_Math;font-style:italic}.katex .mathit{font-family:KaTeX_Main;font-style:italic}.katex .mathrm{font-style:normal}.katex .mathbf{font-family:KaTeX_Main;font-weight:700}.katex .boldsymbol{font-family:KaTeX_Math;font-weight:700;font-style:italic}.katex .amsrm,.katex .mathbb,.katex .textbb{font-family:KaTeX_AMS}.katex .mathcal{font-family:KaTeX_Caligraphic}.katex .mathfrak,.katex .textfrak{font-family:KaTeX_Fraktur}.katex .mathtt{font-family:KaTeX_Typewriter}.katex .mathscr,.katex .textscr{font-family:KaTeX_Script}.katex .mathsf,.katex .textsf{font-family:KaTeX_SansSerif}.katex .mathboldsf,.katex .textboldsf{font-family:KaTeX_SansSerif;font-weight:700}.katex .mathitsf,.katex .textitsf{font-family:KaTeX_SansSerif;font-style:italic}.katex .mainrm{font-family:KaTeX_Main;font-style:normal}.katex .vlist-t{display:inline-table;table-layout:fixed}.katex .vlist-r{display:table-row}.katex .vlist{display:table-cell;vertical-align:bottom;position:relative}.katex .vlist>span{display:block;height:0;position:relative}.katex .vlist>span>span{display:inline-block}.katex .vlist>span>.pstrut{overflow:hidden;width:0}.katex .vlist-t2{margin-right:-2px}.katex .vlist-s{display:table-cell;vertical-align:bottom;font-size:1px;width:2px;min-width:2px}.katex .msupsub{text-align:left}.katex .mfrac>span>span{text-align:center}.katex .mfrac .frac-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline,.katex .hline,.katex .mfrac .frac-line,.katex .overline .overline-line,.katex .rule,.katex .underline .underline-line{min-height:1px}.katex .mspace{display:inline-block}.katex .clap,.katex .llap,.katex .rlap{width:0;position:relative}.katex .clap>.inner,.katex .llap>.inner,.katex .rlap>.inner{position:absolute}.katex .clap>.fix,.katex .llap>.fix,.katex .rlap>.fix{display:inline-block}.katex .llap>.inner{right:0}.katex .clap>.inner,.katex .rlap>.inner{left:0}.katex .clap>.inner>span{margin-left:-50%;margin-right:50%}.katex .rule{display:inline-block;border:0 solid;position:relative}.katex .hline,.katex .overline .overline-line,.katex .underline .underline-line{display:inline-block;width:100%;border-bottom-style:solid}.katex .hdashline{display:inline-block;width:100%;border-bottom-style:dashed}.katex .sqrt>.root{margin-left:.27777778em;margin-right:-.55555556em}.katex .fontsize-ensurer,.katex .sizing{display:inline-block}.katex .fontsize-ensurer.reset-size1.size1,.katex .sizing.reset-size1.size1{font-size:1em}.katex .fontsize-ensurer.reset-size1.size2,.katex .sizing.reset-size1.size2{font-size:1.2em}.katex .fontsize-ensurer.reset-size1.size3,.katex .sizing.reset-size1.size3{font-size:1.4em}.katex .fontsize-ensurer.reset-size1.size4,.katex .sizing.reset-size1.size4{font-size:1.6em}.katex .fontsize-ensurer.reset-size1.size5,.katex .sizing.reset-size1.size5{font-size:1.8em}.katex .fontsize-ensurer.reset-size1.size6,.katex .sizing.reset-size1.size6{font-size:2em}.katex .fontsize-ensurer.reset-size1.size7,.katex .sizing.reset-size1.size7{font-size:2.4em}.katex .fontsize-ensurer.reset-size1.size8,.katex .sizing.reset-size1.size8{font-size:2.88em}.katex .fontsize-ensurer.reset-size1.size9,.katex .sizing.reset-size1.size9{font-size:3.456em}.katex .fontsize-ensurer.reset-size1.size10,.katex .sizing.reset-size1.size10{font-size:4.148em}.katex .fontsize-ensurer.reset-size1.size11,.katex .sizing.reset-size1.size11{font-size:4.976em}.katex .fontsize-ensurer.reset-size2.size1,.katex .sizing.reset-size2.size1{font-size:.83333333em}.katex .fontsize-ensurer.reset-size2.size2,.katex .sizing.reset-size2.size2{font-size:1em}.katex .fontsize-ensurer.reset-size2.size3,.katex .sizing.reset-size2.size3{font-size:1.16666667em}.katex .fontsize-ensurer.reset-size2.size4,.katex .sizing.reset-size2.size4{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size2.size5,.katex .sizing.reset-size2.size5{font-size:1.5em}.katex .fontsize-ensurer.reset-size2.size6,.katex .sizing.reset-size2.size6{font-size:1.66666667em}.katex .fontsize-ensurer.reset-size2.size7,.katex .sizing.reset-size2.size7{font-size:2em}.katex .fontsize-ensurer.reset-size2.size8,.katex .sizing.reset-size2.size8{font-size:2.4em}.katex .fontsize-ensurer.reset-size2.size9,.katex .sizing.reset-size2.size9{font-size:2.88em}.katex .fontsize-ensurer.reset-size2.size10,.katex .sizing.reset-size2.size10{font-size:3.45666667em}.katex .fontsize-ensurer.reset-size2.size11,.katex .sizing.reset-size2.size11{font-size:4.14666667em}.katex .fontsize-ensurer.reset-size3.size1,.katex .sizing.reset-size3.size1{font-size:.71428571em}.katex .fontsize-ensurer.reset-size3.size2,.katex .sizing.reset-size3.size2{font-size:.85714286em}.katex .fontsize-ensurer.reset-size3.size3,.katex .sizing.reset-size3.size3{font-size:1em}.katex .fontsize-ensurer.reset-size3.size4,.katex .sizing.reset-size3.size4{font-size:1.14285714em}.katex .fontsize-ensurer.reset-size3.size5,.katex .sizing.reset-size3.size5{font-size:1.28571429em}.katex .fontsize-ensurer.reset-size3.size6,.katex .sizing.reset-size3.size6{font-size:1.42857143em}.katex .fontsize-ensurer.reset-size3.size7,.katex .sizing.reset-size3.size7{font-size:1.71428571em}.katex .fontsize-ensurer.reset-size3.size8,.katex .sizing.reset-size3.size8{font-size:2.05714286em}.katex .fontsize-ensurer.reset-size3.size9,.katex .sizing.reset-size3.size9{font-size:2.46857143em}.katex .fontsize-ensurer.reset-size3.size10,.katex .sizing.reset-size3.size10{font-size:2.96285714em}.katex .fontsize-ensurer.reset-size3.size11,.katex .sizing.reset-size3.size11{font-size:3.55428571em}.katex .fontsize-ensurer.reset-size4.size1,.katex .sizing.reset-size4.size1{font-size:.625em}.katex .fontsize-ensurer.reset-size4.size2,.katex .sizing.reset-size4.size2{font-size:.75em}.katex .fontsize-ensurer.reset-size4.size3,.katex .sizing.reset-size4.size3{font-size:.875em}.katex .fontsize-ensurer.reset-size4.size4,.katex .sizing.reset-size4.size4{font-size:1em}.katex .fontsize-ensurer.reset-size4.size5,.katex .sizing.reset-size4.size5{font-size:1.125em}.katex .fontsize-ensurer.reset-size4.size6,.katex .sizing.reset-size4.size6{font-size:1.25em}.katex .fontsize-ensurer.reset-size4.size7,.katex .sizing.reset-size4.size7{font-size:1.5em}.katex .fontsize-ensurer.reset-size4.size8,.katex .sizing.reset-size4.size8{font-size:1.8em}.katex .fontsize-ensurer.reset-size4.size9,.katex .sizing.reset-size4.size9{font-size:2.16em}.katex .fontsize-ensurer.reset-size4.size10,.katex .sizing.reset-size4.size10{font-size:2.5925em}.katex .fontsize-ensurer.reset-size4.size11,.katex .sizing.reset-size4.size11{font-size:3.11em}.katex .fontsize-ensurer.reset-size5.size1,.katex .sizing.reset-size5.size1{font-size:.55555556em}.katex .fontsize-ensurer.reset-size5.size2,.katex .sizing.reset-size5.size2{font-size:.66666667em}.katex .fontsize-ensurer.reset-size5.size3,.katex .sizing.reset-size5.size3{font-size:.77777778em}.katex .fontsize-ensurer.reset-size5.size4,.katex .sizing.reset-size5.size4{font-size:.88888889em}.katex .fontsize-ensurer.reset-size5.size5,.katex .sizing.reset-size5.size5{font-size:1em}.katex .fontsize-ensurer.reset-size5.size6,.katex .sizing.reset-size5.size6{font-size:1.11111111em}.katex .fontsize-ensurer.reset-size5.size7,.katex .sizing.reset-size5.size7{font-size:1.33333333em}.katex .fontsize-ensurer.reset-size5.size8,.katex .sizing.reset-size5.size8{font-size:1.6em}.katex .fontsize-ensurer.reset-size5.size9,.katex .sizing.reset-size5.size9{font-size:1.92em}.katex .fontsize-ensurer.reset-size5.size10,.katex .sizing.reset-size5.size10{font-size:2.30444444em}.katex .fontsize-ensurer.reset-size5.size11,.katex .sizing.reset-size5.size11{font-size:2.76444444em}.katex .fontsize-ensurer.reset-size6.size1,.katex .sizing.reset-size6.size1{font-size:.5em}.katex .fontsize-ensurer.reset-size6.size2,.katex .sizing.reset-size6.size2{font-size:.6em}.katex .fontsize-ensurer.reset-size6.size3,.katex .sizing.reset-size6.size3{font-size:.7em}.katex .fontsize-ensurer.reset-size6.size4,.katex .sizing.reset-size6.size4{font-size:.8em}.katex .fontsize-ensurer.reset-size6.size5,.katex .sizing.reset-size6.size5{font-size:.9em}.katex .fontsize-ensurer.reset-size6.size6,.katex .sizing.reset-size6.size6{font-size:1em}.katex .fontsize-ensurer.reset-size6.size7,.katex .sizing.reset-size6.size7{font-size:1.2em}.katex .fontsize-ensurer.reset-size6.size8,.katex .sizing.reset-size6.size8{font-size:1.44em}.katex .fontsize-ensurer.reset-size6.size9,.katex .sizing.reset-size6.size9{font-size:1.728em}.katex .fontsize-ensurer.reset-size6.size10,.katex .sizing.reset-size6.size10{font-size:2.074em}.katex .fontsize-ensurer.reset-size6.size11,.katex .sizing.reset-size6.size11{font-size:2.488em}.katex .fontsize-ensurer.reset-size7.size1,.katex .sizing.reset-size7.size1{font-size:.41666667em}.katex .fontsize-ensurer.reset-size7.size2,.katex .sizing.reset-size7.size2{font-size:.5em}.katex .fontsize-ensurer.reset-size7.size3,.katex .sizing.reset-size7.size3{font-size:.58333333em}.katex .fontsize-ensurer.reset-size7.size4,.katex .sizing.reset-size7.size4{font-size:.66666667em}.katex .fontsize-ensurer.reset-size7.size5,.katex .sizing.reset-size7.size5{font-size:.75em}.katex .fontsize-ensurer.reset-size7.size6,.katex .sizing.reset-size7.size6{font-size:.83333333em}.katex .fontsize-ensurer.reset-size7.size7,.katex .sizing.reset-size7.size7{font-size:1em}.katex .fontsize-ensurer.reset-size7.size8,.katex .sizing.reset-size7.size8{font-size:1.2em}.katex .fontsize-ensurer.reset-size7.size9,.katex .sizing.reset-size7.size9{font-size:1.44em}.katex .fontsize-ensurer.reset-size7.size10,.katex .sizing.reset-size7.size10{font-size:1.72833333em}.katex .fontsize-ensurer.reset-size7.size11,.katex .sizing.reset-size7.size11{font-size:2.07333333em}.katex .fontsize-ensurer.reset-size8.size1,.katex .sizing.reset-size8.size1{font-size:.34722222em}.katex .fontsize-ensurer.reset-size8.size2,.katex .sizing.reset-size8.size2{font-size:.41666667em}.katex .fontsize-ensurer.reset-size8.size3,.katex .sizing.reset-size8.size3{font-size:.48611111em}.katex .fontsize-ensurer.reset-size8.size4,.katex .sizing.reset-size8.size4{font-size:.55555556em}.katex .fontsize-ensurer.reset-size8.size5,.katex .sizing.reset-size8.size5{font-size:.625em}.katex .fontsize-ensurer.reset-size8.size6,.katex .sizing.reset-size8.size6{font-size:.69444444em}.katex .fontsize-ensurer.reset-size8.size7,.katex .sizing.reset-size8.size7{font-size:.83333333em}.katex .fontsize-ensurer.reset-size8.size8,.katex .sizing.reset-size8.size8{font-size:1em}.katex .fontsize-ensurer.reset-size8.size9,.katex .sizing.reset-size8.size9{font-size:1.2em}.katex .fontsize-ensurer.reset-size8.size10,.katex .sizing.reset-size8.size10{font-size:1.44027778em}.katex .fontsize-ensurer.reset-size8.size11,.katex .sizing.reset-size8.size11{font-size:1.72777778em}.katex .fontsize-ensurer.reset-size9.size1,.katex .sizing.reset-size9.size1{font-size:.28935185em}.katex .fontsize-ensurer.reset-size9.size2,.katex .sizing.reset-size9.size2{font-size:.34722222em}.katex .fontsize-ensurer.reset-size9.size3,.katex .sizing.reset-size9.size3{font-size:.40509259em}.katex .fontsize-ensurer.reset-size9.size4,.katex .sizing.reset-size9.size4{font-size:.46296296em}.katex .fontsize-ensurer.reset-size9.size5,.katex .sizing.reset-size9.size5{font-size:.52083333em}.katex .fontsize-ensurer.reset-size9.size6,.katex .sizing.reset-size9.size6{font-size:.5787037em}.katex .fontsize-ensurer.reset-size9.size7,.katex .sizing.reset-size9.size7{font-size:.69444444em}.katex .fontsize-ensurer.reset-size9.size8,.katex .sizing.reset-size9.size8{font-size:.83333333em}.katex .fontsize-ensurer.reset-size9.size9,.katex .sizing.reset-size9.size9{font-size:1em}.katex .fontsize-ensurer.reset-size9.size10,.katex .sizing.reset-size9.size10{font-size:1.20023148em}.katex .fontsize-ensurer.reset-size9.size11,.katex .sizing.reset-size9.size11{font-size:1.43981481em}.katex .fontsize-ensurer.reset-size10.size1,.katex .sizing.reset-size10.size1{font-size:.24108004em}.katex .fontsize-ensurer.reset-size10.size2,.katex .sizing.reset-size10.size2{font-size:.28929605em}.katex .fontsize-ensurer.reset-size10.size3,.katex .sizing.reset-size10.size3{font-size:.33751205em}.katex .fontsize-ensurer.reset-size10.size4,.katex .sizing.reset-size10.size4{font-size:.38572806em}.katex .fontsize-ensurer.reset-size10.size5,.katex .sizing.reset-size10.size5{font-size:.43394407em}.katex .fontsize-ensurer.reset-size10.size6,.katex .sizing.reset-size10.size6{font-size:.48216008em}.katex .fontsize-ensurer.reset-size10.size7,.katex .sizing.reset-size10.size7{font-size:.57859209em}.katex .fontsize-ensurer.reset-size10.size8,.katex .sizing.reset-size10.size8{font-size:.69431051em}.katex .fontsize-ensurer.reset-size10.size9,.katex .sizing.reset-size10.size9{font-size:.83317261em}.katex .fontsize-ensurer.reset-size10.size10,.katex .sizing.reset-size10.size10{font-size:1em}.katex .fontsize-ensurer.reset-size10.size11,.katex .sizing.reset-size10.size11{font-size:1.19961427em}.katex .fontsize-ensurer.reset-size11.size1,.katex .sizing.reset-size11.size1{font-size:.20096463em}.katex .fontsize-ensurer.reset-size11.size2,.katex .sizing.reset-size11.size2{font-size:.24115756em}.katex .fontsize-ensurer.reset-size11.size3,.katex .sizing.reset-size11.size3{font-size:.28135048em}.katex .fontsize-ensurer.reset-size11.size4,.katex .sizing.reset-size11.size4{font-size:.32154341em}.katex .fontsize-ensurer.reset-size11.size5,.katex .sizing.reset-size11.size5{font-size:.36173633em}.katex .fontsize-ensurer.reset-size11.size6,.katex .sizing.reset-size11.size6{font-size:.40192926em}.katex .fontsize-ensurer.reset-size11.size7,.katex .sizing.reset-size11.size7{font-size:.48231511em}.katex .fontsize-ensurer.reset-size11.size8,.katex .sizing.reset-size11.size8{font-size:.57877814em}.katex .fontsize-ensurer.reset-size11.size9,.katex .sizing.reset-size11.size9{font-size:.69453376em}.katex .fontsize-ensurer.reset-size11.size10,.katex .sizing.reset-size11.size10{font-size:.83360129em}.katex .fontsize-ensurer.reset-size11.size11,.katex .sizing.reset-size11.size11{font-size:1em}.katex .delimsizing.size1{font-family:KaTeX_Size1}.katex .delimsizing.size2{font-family:KaTeX_Size2}.katex .delimsizing.size3{font-family:KaTeX_Size3}.katex .delimsizing.size4{font-family:KaTeX_Size4}.katex .delimsizing.mult .delim-size1>span{font-family:KaTeX_Size1}.katex .delimsizing.mult .delim-size4>span{font-family:KaTeX_Size4}.katex .nulldelimiter{display:inline-block;width:.12em}.katex .delimcenter,.katex .op-symbol{position:relative}.katex .op-symbol.small-op{font-family:KaTeX_Size1}.katex .op-symbol.large-op{font-family:KaTeX_Size2}.katex .op-limits>.vlist-t{text-align:center}.katex .accent>.vlist-t{text-align:center}.katex .accent .accent-body{position:relative}.katex .accent .accent-body:not(.accent-full){width:0}.katex .overlay{display:block}.katex .mtable .vertical-separator{display:inline-block;margin:0 -.025em;border-right:.05em solid;min-width:1px}.katex .mtable .vs-dashed{border-right:.05em dashed}.katex .mtable .arraycolsep{display:inline-block}.katex .mtable .col-align-c>.vlist-t{text-align:center}.katex .mtable .col-align-l>.vlist-t{text-align:left}.katex .mtable .col-align-r>.vlist-t{text-align:right}.katex .svg-align{text-align:left}.katex svg{display:block;position:absolute;width:100%;height:inherit;fill:currentColor;stroke:currentColor;fill-rule:nonzero;fill-opacity:1;stroke-width:1;stroke-linecap:butt;stroke-linejoin:miter;stroke-miterlimit:4;stroke-dasharray:none;stroke-dashoffset:0;stroke-opacity:1}.katex svg path{stroke:none}.katex img{border-style:none;min-width:0;min-height:0;max-width:none;max-height:none}.katex .stretchy{width:100%;display:block;position:relative;overflow:hidden}.katex .stretchy:after,.katex .stretchy:before{content:\"\"}.katex .hide-tail{width:100%;position:relative;overflow:hidden}.katex .halfarrow-left{position:absolute;left:0;width:50.2%;overflow:hidden}.katex .halfarrow-right{position:absolute;right:0;width:50.2%;overflow:hidden}.katex .brace-left{position:absolute;left:0;width:25.1%;overflow:hidden}.katex .brace-center{position:absolute;left:25%;width:50%;overflow:hidden}.katex .brace-right{position:absolute;right:0;width:25.1%;overflow:hidden}.katex .x-arrow-pad{padding:0 .5em}.katex .mover,.katex .munder,.katex .x-arrow{text-align:center}.katex .boxpad{padding:0 .3em}.katex .fbox,.katex .fcolorbox{box-sizing:border-box;border:.04em solid}.katex .cancel-pad{padding:0 .2em}.katex .cancel-lap{margin-left:-.2em;margin-right:-.2em}.katex .sout{border-bottom-style:solid;border-bottom-width:.08em}.katex-display{display:block;margin:1em 0;text-align:center}.katex-display>.katex{display:block;text-align:center;white-space:nowrap}.katex-display>.katex>.katex-html{display:block;position:relative}.katex-display>.katex>.katex-html>.tag{position:absolute;right:0}.katex-display.leqno>.katex>.katex-html>.tag{left:0;right:auto}.katex-display.fleqn>.katex{text-align:left}\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/katex/katex.min.css"
},
"$:/plugins/tiddlywiki/katex/katex.min.js": {
"text": "(function(document) {\n!function(t,e){\"object\"==typeof exports&&\"object\"==typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define([],e):\"object\"==typeof exports?exports.katex=e():t.katex=e()}(\"undefined\"!=typeof self?self:this,function(){return function(t){var e={};function r(a){if(e[a])return e[a].exports;var n=e[a]={i:a,l:!1,exports:{}};return t[a].call(n.exports,n,n.exports,r),n.l=!0,n.exports}return r.m=t,r.c=e,r.d=function(t,e,a){r.o(t,e)||Object.defineProperty(t,e,{enumerable:!0,get:a})},r.r=function(t){\"undefined\"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(t,Symbol.toStringTag,{value:\"Module\"}),Object.defineProperty(t,\"__esModule\",{value:!0})},r.t=function(t,e){if(1&e&&(t=r(t)),8&e)return t;if(4&e&&\"object\"==typeof t&&t&&t.__esModule)return t;var a=Object.create(null);if(r.r(a),Object.defineProperty(a,\"default\",{enumerable:!0,value:t}),2&e&&\"string\"!=typeof t)for(var n in t)r.d(a,n,function(e){return t[e]}.bind(null,n));return a},r.n=function(t){var e=t&&t.__esModule?function(){return t.default}:function(){return t};return r.d(e,\"a\",e),e},r.o=function(t,e){return Object.prototype.hasOwnProperty.call(t,e)},r.p=\"\",r(r.s=1)}([function(t,e,r){},function(t,e,r){\"use strict\";r.r(e);r(0);var a=function(){function t(t,e,r){this.lexer=void 0,this.start=void 0,this.end=void 0,this.lexer=t,this.start=e,this.end=r}return t.range=function(e,r){return r?e&&e.loc&&r.loc&&e.loc.lexer===r.loc.lexer?new t(e.loc.lexer,e.loc.start,r.loc.end):null:e&&e.loc},t}(),n=function(){function t(t,e){this.text=void 0,this.loc=void 0,this.text=t,this.loc=e}return t.prototype.range=function(e,r){return new t(r,a.range(this,e))},t}(),o=function t(e,r){this.position=void 0;var a,n=\"KaTeX parse error: \"+e,o=r&&r.loc;if(o&&o.start<=o.end){var i=o.lexer.input;a=o.start;var s=o.end;a===i.length?n+=\" at end of input: \":n+=\" at position \"+(a+1)+\": \";var h=i.slice(a,s).replace(/[^]/g,\"$&\\u0332\");n+=(a>15?\"\\u2026\"+i.slice(a-15,a):i.slice(0,a))+h+(s+15<i.length?i.slice(s,s+15)+\"\\u2026\":i.slice(s))}var l=new Error(n);return l.name=\"ParseError\",l.__proto__=t.prototype,l.position=a,l};o.prototype.__proto__=Error.prototype;var i=o,s=/([A-Z])/g,h={\"&\":\"&\",\">\":\">\",\"<\":\"<\",'\"':\""\",\"'\":\"'\"},l=/[&><\"']/g;var m=function t(e){return\"ordgroup\"===e.type?1===e.body.length?t(e.body[0]):e:\"color\"===e.type?1===e.body.length?t(e.body[0]):e:\"font\"===e.type?t(e.body):e},c={contains:function(t,e){return-1!==t.indexOf(e)},deflt:function(t,e){return void 0===t?e:t},escape:function(t){return String(t).replace(l,function(t){return h[t]})},hyphenate:function(t){return t.replace(s,\"-$1\").toLowerCase()},getBaseElem:m,isCharacterBox:function(t){var e=m(t);return\"mathord\"===e.type||\"textord\"===e.type||\"atom\"===e.type}},u=function(){function t(t){this.displayMode=void 0,this.leqno=void 0,this.fleqn=void 0,this.throwOnError=void 0,this.errorColor=void 0,this.macros=void 0,this.colorIsTextColor=void 0,this.strict=void 0,this.maxSize=void 0,this.maxExpand=void 0,this.allowedProtocols=void 0,t=t||{},this.displayMode=c.deflt(t.displayMode,!1),this.leqno=c.deflt(t.leqno,!1),this.fleqn=c.deflt(t.fleqn,!1),this.throwOnError=c.deflt(t.throwOnError,!0),this.errorColor=c.deflt(t.errorColor,\"#cc0000\"),this.macros=t.macros||{},this.colorIsTextColor=c.deflt(t.colorIsTextColor,!1),this.strict=c.deflt(t.strict,\"warn\"),this.maxSize=Math.max(0,c.deflt(t.maxSize,1/0)),this.maxExpand=Math.max(0,c.deflt(t.maxExpand,1e3)),this.allowedProtocols=c.deflt(t.allowedProtocols,[\"http\",\"https\",\"mailto\",\"_relative\"])}var e=t.prototype;return e.reportNonstrict=function(t,e,r){var a=this.strict;if(\"function\"==typeof a&&(a=a(t,e,r)),a&&\"ignore\"!==a){if(!0===a||\"error\"===a)throw new i(\"LaTeX-incompatible input and strict mode is set to 'error': \"+e+\" [\"+t+\"]\",r);\"warn\"===a?\"undefined\"!=typeof console&&console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \"+e+\" [\"+t+\"]\"):\"undefined\"!=typeof console&&console.warn(\"LaTeX-incompatible input and strict mode is set to unrecognized '\"+a+\"': \"+e+\" [\"+t+\"]\")}},e.useStrictBehavior=function(t,e,r){var a=this.strict;if(\"function\"==typeof a)try{a=a(t,e,r)}catch(t){a=\"error\"}return!(!a||\"ignore\"===a)&&(!0===a||\"error\"===a||(\"warn\"===a?(\"undefined\"!=typeof console&&console.warn(\"LaTeX-incompatible input and strict mode is set to 'warn': \"+e+\" [\"+t+\"]\"),!1):(\"undefined\"!=typeof console&&console.warn(\"LaTeX-incompatible input and strict mode is set to unrecognized '\"+a+\"': \"+e+\" [\"+t+\"]\"),!1)))},t}(),d=function(){function t(t,e,r){this.id=void 0,this.size=void 0,this.cramped=void 0,this.id=t,this.size=e,this.cramped=r}var e=t.prototype;return e.sup=function(){return p[f[this.id]]},e.sub=function(){return p[g[this.id]]},e.fracNum=function(){return p[x[this.id]]},e.fracDen=function(){return p[v[this.id]]},e.cramp=function(){return p[b[this.id]]},e.text=function(){return p[y[this.id]]},e.isTight=function(){return this.size>=2},t}(),p=[new d(0,0,!1),new d(1,0,!0),new d(2,1,!1),new d(3,1,!0),new d(4,2,!1),new d(5,2,!0),new d(6,3,!1),new d(7,3,!0)],f=[4,5,4,5,6,7,6,7],g=[5,5,5,5,7,7,7,7],x=[2,3,4,5,6,7,6,7],v=[3,3,5,5,7,7,7,7],b=[1,1,3,3,5,5,7,7],y=[0,1,2,3,2,3,2,3],w={DISPLAY:p[0],TEXT:p[2],SCRIPT:p[4],SCRIPTSCRIPT:p[6]},k=[{name:\"latin\",blocks:[[256,591],[768,879]]},{name:\"cyrillic\",blocks:[[1024,1279]]},{name:\"brahmic\",blocks:[[2304,4255]]},{name:\"georgian\",blocks:[[4256,4351]]},{name:\"cjk\",blocks:[[12288,12543],[19968,40879],[65280,65376]]},{name:\"hangul\",blocks:[[44032,55215]]}];var S=[];function z(t){for(var e=0;e<S.length;e+=2)if(t>=S[e]&&t<=S[e+1])return!0;return!1}k.forEach(function(t){return t.blocks.forEach(function(t){return S.push.apply(S,t)})});var M={path:{sqrtMain:\"M95,702c-2.7,0,-7.17,-2.7,-13.5,-8c-5.8,-5.3,-9.5,\\n-10,-9.5,-14c0,-2,0.3,-3.3,1,-4c1.3,-2.7,23.83,-20.7,67.5,-54c44.2,-33.3,65.8,\\n-50.3,66.5,-51c1.3,-1.3,3,-2,5,-2c4.7,0,8.7,3.3,12,10s173,378,173,378c0.7,0,\\n35.3,-71,104,-213c68.7,-142,137.5,-285,206.5,-429c69,-144,104.5,-217.7,106.5,\\n-221c5.3,-9.3,12,-14,20,-14H400000v40H845.2724s-225.272,467,-225.272,467\\ns-235,486,-235,486c-2.7,4.7,-9,7,-19,7c-6,0,-10,-1,-12,-3s-194,-422,-194,-422\\ns-65,47,-65,47z M834 80H400000v40H845z\",sqrtSize1:\"M263,681c0.7,0,18,39.7,52,119c34,79.3,68.167,\\n158.7,102.5,238c34.3,79.3,51.8,119.3,52.5,120c340,-704.7,510.7,-1060.3,512,-1067\\nc4.7,-7.3,11,-11,19,-11H40000v40H1012.3s-271.3,567,-271.3,567c-38.7,80.7,-84,\\n175,-136,283c-52,108,-89.167,185.3,-111.5,232c-22.3,46.7,-33.8,70.3,-34.5,71\\nc-4.7,4.7,-12.3,7,-23,7s-12,-1,-12,-1s-109,-253,-109,-253c-72.7,-168,-109.3,\\n-252,-110,-252c-10.7,8,-22,16.7,-34,26c-22,17.3,-33.3,26,-34,26s-26,-26,-26,-26\\ns76,-59,76,-59s76,-60,76,-60z M1001 80H40000v40H1012z\",sqrtSize2:\"M1001,80H400000v40H1013.1s-83.4,268,-264.1,840c-180.7,\\n572,-277,876.3,-289,913c-4.7,4.7,-12.7,7,-24,7s-12,0,-12,0c-1.3,-3.3,-3.7,-11.7,\\n-7,-25c-35.3,-125.3,-106.7,-373.3,-214,-744c-10,12,-21,25,-33,39s-32,39,-32,39\\nc-6,-5.3,-15,-14,-27,-26s25,-30,25,-30c26.7,-32.7,52,-63,76,-91s52,-60,52,-60\\ns208,722,208,722c56,-175.3,126.3,-397.3,211,-666c84.7,-268.7,153.8,-488.2,207.5,\\n-658.5c53.7,-170.3,84.5,-266.8,92.5,-289.5c4,-6.7,10,-10,18,-10z\\nM1001 80H400000v40H1013z\",sqrtSize3:\"M424,2478c-1.3,-0.7,-38.5,-172,-111.5,-514c-73,\\n-342,-109.8,-513.3,-110.5,-514c0,-2,-10.7,14.3,-32,49c-4.7,7.3,-9.8,15.7,-15.5,\\n25c-5.7,9.3,-9.8,16,-12.5,20s-5,7,-5,7c-4,-3.3,-8.3,-7.7,-13,-13s-13,-13,-13,\\n-13s76,-122,76,-122s77,-121,77,-121s209,968,209,968c0,-2,84.7,-361.7,254,-1079\\nc169.3,-717.3,254.7,-1077.7,256,-1081c4,-6.7,10,-10,18,-10H400000v40H1014.6\\ns-87.3,378.7,-272.6,1166c-185.3,787.3,-279.3,1182.3,-282,1185c-2,6,-10,9,-24,9\\nc-8,0,-12,-0.7,-12,-2z M1001 80H400000v40H1014z\",sqrtSize4:\"M473,2793c339.3,-1799.3,509.3,-2700,510,-2702\\nc3.3,-7.3,9.3,-11,18,-11H400000v40H1017.7s-90.5,478,-276.2,1466c-185.7,988,\\n-279.5,1483,-281.5,1485c-2,6,-10,9,-24,9c-8,0,-12,-0.7,-12,-2c0,-1.3,-5.3,-32,\\n-16,-92c-50.7,-293.3,-119.7,-693.3,-207,-1200c0,-1.3,-5.3,8.7,-16,30c-10.7,\\n21.3,-21.3,42.7,-32,64s-16,33,-16,33s-26,-26,-26,-26s76,-153,76,-153s77,-151,\\n77,-151c0.7,0.7,35.7,202,105,604c67.3,400.7,102,602.7,104,606z\\nM1001 80H400000v40H1017z\",doubleleftarrow:\"M262 157\\nl10-10c34-36 62.7-77 86-123 3.3-8 5-13.3 5-16 0-5.3-6.7-8-20-8-7.3\\n 0-12.2.5-14.5 1.5-2.3 1-4.8 4.5-7.5 10.5-49.3 97.3-121.7 169.3-217 216-28\\n 14-57.3 25-88 33-6.7 2-11 3.8-13 5.5-2 1.7-3 4.2-3 7.5s1 5.8 3 7.5\\nc2 1.7 6.3 3.5 13 5.5 68 17.3 128.2 47.8 180.5 91.5 52.3 43.7 93.8 96.2 124.5\\n 157.5 9.3 8 15.3 12.3 18 13h6c12-.7 18-4 18-10 0-2-1.7-7-5-15-23.3-46-52-87\\n-86-123l-10-10h399738v-40H218c328 0 0 0 0 0l-10-8c-26.7-20-65.7-43-117-69 2.7\\n-2 6-3.7 10-5 36.7-16 72.3-37.3 107-64l10-8h399782v-40z\\nm8 0v40h399730v-40zm0 194v40h399730v-40z\",doublerightarrow:\"M399738 392l\\n-10 10c-34 36-62.7 77-86 123-3.3 8-5 13.3-5 16 0 5.3 6.7 8 20 8 7.3 0 12.2-.5\\n 14.5-1.5 2.3-1 4.8-4.5 7.5-10.5 49.3-97.3 121.7-169.3 217-216 28-14 57.3-25 88\\n-33 6.7-2 11-3.8 13-5.5 2-1.7 3-4.2 3-7.5s-1-5.8-3-7.5c-2-1.7-6.3-3.5-13-5.5-68\\n-17.3-128.2-47.8-180.5-91.5-52.3-43.7-93.8-96.2-124.5-157.5-9.3-8-15.3-12.3-18\\n-13h-6c-12 .7-18 4-18 10 0 2 1.7 7 5 15 23.3 46 52 87 86 123l10 10H0v40h399782\\nc-328 0 0 0 0 0l10 8c26.7 20 65.7 43 117 69-2.7 2-6 3.7-10 5-36.7 16-72.3 37.3\\n-107 64l-10 8H0v40zM0 157v40h399730v-40zm0 194v40h399730v-40z\",leftarrow:\"M400000 241H110l3-3c68.7-52.7 113.7-120\\n 135-202 4-14.7 6-23 6-25 0-7.3-7-11-21-11-8 0-13.2.8-15.5 2.5-2.3 1.7-4.2 5.8\\n-5.5 12.5-1.3 4.7-2.7 10.3-4 17-12 48.7-34.8 92-68.5 130S65.3 228.3 18 247\\nc-10 4-16 7.7-18 11 0 8.7 6 14.3 18 17 47.3 18.7 87.8 47 121.5 85S196 441.3 208\\n 490c.7 2 1.3 5 2 9s1.2 6.7 1.5 8c.3 1.3 1 3.3 2 6s2.2 4.5 3.5 5.5c1.3 1 3.3\\n 1.8 6 2.5s6 1 10 1c14 0 21-3.7 21-11 0-2-2-10.3-6-25-20-79.3-65-146.7-135-202\\n l-3-3h399890zM100 241v40h399900v-40z\",leftbrace:\"M6 548l-6-6v-35l6-11c56-104 135.3-181.3 238-232 57.3-28.7 117\\n-45 179-50h399577v120H403c-43.3 7-81 15-113 26-100.7 33-179.7 91-237 174-2.7\\n 5-6 9-10 13-.7 1-7.3 1-20 1H6z\",leftbraceunder:\"M0 6l6-6h17c12.688 0 19.313.3 20 1 4 4 7.313 8.3 10 13\\n 35.313 51.3 80.813 93.8 136.5 127.5 55.688 33.7 117.188 55.8 184.5 66.5.688\\n 0 2 .3 4 1 18.688 2.7 76 4.3 172 5h399450v120H429l-6-1c-124.688-8-235-61.7\\n-331-161C60.687 138.7 32.312 99.3 7 54L0 41V6z\",leftgroup:\"M400000 80\\nH435C64 80 168.3 229.4 21 260c-5.9 1.2-18 0-18 0-2 0-3-1-3-3v-38C76 61 257 0\\n 435 0h399565z\",leftgroupunder:\"M400000 262\\nH435C64 262 168.3 112.6 21 82c-5.9-1.2-18 0-18 0-2 0-3 1-3 3v38c76 158 257 219\\n 435 219h399565z\",leftharpoon:\"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3\\n-3.3 10.2-9.5 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5\\n-18.3 3-21-1.3-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7\\n-196 228-6.7 4.7-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40z\",leftharpoonplus:\"M0 267c.7 5.3 3 10 7 14h399993v-40H93c3.3-3.3 10.2-9.5\\n 20.5-18.5s17.8-15.8 22.5-20.5c50.7-52 88-110.3 112-175 4-11.3 5-18.3 3-21-1.3\\n-4-7.3-6-18-6-8 0-13 .7-15 2s-4.7 6.7-8 16c-42 98.7-107.3 174.7-196 228-6.7 4.7\\n-10.7 8-12 10-1.3 2-2 5.7-2 11zm100-26v40h399900v-40zM0 435v40h400000v-40z\\nm0 0v40h400000v-40z\",leftharpoondown:\"M7 241c-4 4-6.333 8.667-7 14 0 5.333.667 9 2 11s5.333\\n 5.333 12 10c90.667 54 156 130 196 228 3.333 10.667 6.333 16.333 9 17 2 .667 5\\n 1 9 1h5c10.667 0 16.667-2 18-6 2-2.667 1-9.667-3-21-32-87.333-82.667-157.667\\n-152-211l-3-3h399907v-40zM93 281 H400000 v-40L7 241z\",leftharpoondownplus:\"M7 435c-4 4-6.3 8.7-7 14 0 5.3.7 9 2 11s5.3 5.3 12\\n 10c90.7 54 156 130 196 228 3.3 10.7 6.3 16.3 9 17 2 .7 5 1 9 1h5c10.7 0 16.7\\n-2 18-6 2-2.7 1-9.7-3-21-32-87.3-82.7-157.7-152-211l-3-3h399907v-40H7zm93 0\\nv40h399900v-40zM0 241v40h399900v-40zm0 0v40h399900v-40z\",lefthook:\"M400000 281 H103s-33-11.2-61-33.5S0 197.3 0 164s14.2-61.2 42.5\\n-83.5C70.8 58.2 104 47 142 47 c16.7 0 25 6.7 25 20 0 12-8.7 18.7-26 20-40 3.3\\n-68.7 15.7-86 37-10 12-15 25.3-15 40 0 22.7 9.8 40.7 29.5 54 19.7 13.3 43.5 21\\n 71.5 23h399859zM103 281v-40h399897v40z\",leftlinesegment:\"M40 281 V428 H0 V94 H40 V241 H400000 v40z\\nM40 281 V428 H0 V94 H40 V241 H400000 v40z\",leftmapsto:\"M40 281 V448H0V74H40V241H400000v40z\\nM40 281 V448H0V74H40V241H400000v40z\",leftToFrom:\"M0 147h400000v40H0zm0 214c68 40 115.7 95.7 143 167h22c15.3 0 23\\n-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69-70-101l-7-8h399905v-40H95l7-8\\nc28.7-32 52-65.7 70-101 10.7-23.3 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 265.3\\n 68 321 0 361zm0-174v-40h399900v40zm100 154v40h399900v-40z\",longequal:\"M0 50 h400000 v40H0z m0 194h40000v40H0z\\nM0 50 h400000 v40H0z m0 194h40000v40H0z\",midbrace:\"M200428 334\\nc-100.7-8.3-195.3-44-280-108-55.3-42-101.7-93-139-153l-9-14c-2.7 4-5.7 8.7-9 14\\n-53.3 86.7-123.7 153-211 199-66.7 36-137.3 56.3-212 62H0V214h199568c178.3-11.7\\n 311.7-78.3 403-201 6-8 9.7-12 11-12 .7-.7 6.7-1 18-1s17.3.3 18 1c1.3 0 5 4 11\\n 12 44.7 59.3 101.3 106.3 170 141s145.3 54.3 229 60h199572v120z\",midbraceunder:\"M199572 214\\nc100.7 8.3 195.3 44 280 108 55.3 42 101.7 93 139 153l9 14c2.7-4 5.7-8.7 9-14\\n 53.3-86.7 123.7-153 211-199 66.7-36 137.3-56.3 212-62h199568v120H200432c-178.3\\n 11.7-311.7 78.3-403 201-6 8-9.7 12-11 12-.7.7-6.7 1-18 1s-17.3-.3-18-1c-1.3 0\\n-5-4-11-12-44.7-59.3-101.3-106.3-170-141s-145.3-54.3-229-60H0V214z\",oiintSize1:\"M512.6 71.6c272.6 0 320.3 106.8 320.3 178.2 0 70.8-47.7 177.6\\n-320.3 177.6S193.1 320.6 193.1 249.8c0-71.4 46.9-178.2 319.5-178.2z\\nm368.1 178.2c0-86.4-60.9-215.4-368.1-215.4-306.4 0-367.3 129-367.3 215.4 0 85.8\\n60.9 214.8 367.3 214.8 307.2 0 368.1-129 368.1-214.8z\",oiintSize2:\"M757.8 100.1c384.7 0 451.1 137.6 451.1 230 0 91.3-66.4 228.8\\n-451.1 228.8-386.3 0-452.7-137.5-452.7-228.8 0-92.4 66.4-230 452.7-230z\\nm502.4 230c0-111.2-82.4-277.2-502.4-277.2s-504 166-504 277.2\\nc0 110 84 276 504 276s502.4-166 502.4-276z\",oiiintSize1:\"M681.4 71.6c408.9 0 480.5 106.8 480.5 178.2 0 70.8-71.6 177.6\\n-480.5 177.6S202.1 320.6 202.1 249.8c0-71.4 70.5-178.2 479.3-178.2z\\nm525.8 178.2c0-86.4-86.8-215.4-525.7-215.4-437.9 0-524.7 129-524.7 215.4 0\\n85.8 86.8 214.8 524.7 214.8 438.9 0 525.7-129 525.7-214.8z\",oiiintSize2:\"M1021.2 53c603.6 0 707.8 165.8 707.8 277.2 0 110-104.2 275.8\\n-707.8 275.8-606 0-710.2-165.8-710.2-275.8C311 218.8 415.2 53 1021.2 53z\\nm770.4 277.1c0-131.2-126.4-327.6-770.5-327.6S248.4 198.9 248.4 330.1\\nc0 130 128.8 326.4 772.7 326.4s770.5-196.4 770.5-326.4z\",rightarrow:\"M0 241v40h399891c-47.3 35.3-84 78-110 128\\n-16.7 32-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20\\n 11 8 0 13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7\\n 39-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85\\n-40.5-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n 151.7 139 205zm0 0v40h399900v-40z\",rightbrace:\"M400000 542l\\n-6 6h-17c-12.7 0-19.3-.3-20-1-4-4-7.3-8.3-10-13-35.3-51.3-80.8-93.8-136.5-127.5\\ns-117.2-55.8-184.5-66.5c-.7 0-2-.3-4-1-18.7-2.7-76-4.3-172-5H0V214h399571l6 1\\nc124.7 8 235 61.7 331 161 31.3 33.3 59.7 72.7 85 118l7 13v35z\",rightbraceunder:\"M399994 0l6 6v35l-6 11c-56 104-135.3 181.3-238 232-57.3\\n 28.7-117 45-179 50H-300V214h399897c43.3-7 81-15 113-26 100.7-33 179.7-91 237\\n-174 2.7-5 6-9 10-13 .7-1 7.3-1 20-1h17z\",rightgroup:\"M0 80h399565c371 0 266.7 149.4 414 180 5.9 1.2 18 0 18 0 2 0\\n 3-1 3-3v-38c-76-158-257-219-435-219H0z\",rightgroupunder:\"M0 262h399565c371 0 266.7-149.4 414-180 5.9-1.2 18 0 18\\n 0 2 0 3 1 3 3v38c-76 158-257 219-435 219H0z\",rightharpoon:\"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3\\n-3.7-15.3-11-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2\\n-10.7 0-16.7 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58\\n 69.2 92 94.5zm0 0v40h399900v-40z\",rightharpoonplus:\"M0 241v40h399993c4.7-4.7 7-9.3 7-14 0-9.3-3.7-15.3-11\\n-18-92.7-56.7-159-133.7-199-231-3.3-9.3-6-14.7-8-16-2-1.3-7-2-15-2-10.7 0-16.7\\n 2-18 6-2 2.7-1 9.7 3 21 15.3 42 36.7 81.8 64 119.5 27.3 37.7 58 69.2 92 94.5z\\nm0 0v40h399900v-40z m100 194v40h399900v-40zm0 0v40h399900v-40z\",rightharpoondown:\"M399747 511c0 7.3 6.7 11 20 11 8 0 13-.8 15-2.5s4.7-6.8\\n 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3 8.5-5.8 9.5\\n-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3-64.7 57-92 95\\n-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 241v40h399900v-40z\",rightharpoondownplus:\"M399747 705c0 7.3 6.7 11 20 11 8 0 13-.8\\n 15-2.5s4.7-6.8 8-15.5c40-94 99.3-166.3 178-217 13.3-8 20.3-12.3 21-13 5.3-3.3\\n 8.5-5.8 9.5-7.5 1-1.7 1.5-5.2 1.5-10.5s-2.3-10.3-7-15H0v40h399908c-34 25.3\\n-64.7 57-92 95-27.3 38-48.7 77.7-64 119-3.3 8.7-5 14-5 16zM0 435v40h399900v-40z\\nm0-194v40h400000v-40zm0 0v40h400000v-40z\",righthook:\"M399859 241c-764 0 0 0 0 0 40-3.3 68.7-15.7 86-37 10-12 15-25.3\\n 15-40 0-22.7-9.8-40.7-29.5-54-19.7-13.3-43.5-21-71.5-23-17.3-1.3-26-8-26-20 0\\n-13.3 8.7-20 26-20 38 0 71 11.2 99 33.5 0 0 7 5.6 21 16.7 14 11.2 21 33.5 21\\n 66.8s-14 61.2-42 83.5c-28 22.3-61 33.5-99 33.5L0 241z M0 281v-40h399859v40z\",rightlinesegment:\"M399960 241 V94 h40 V428 h-40 V281 H0 v-40z\\nM399960 241 V94 h40 V428 h-40 V281 H0 v-40z\",rightToFrom:\"M400000 167c-70.7-42-118-97.7-142-167h-23c-15.3 0-23 .3-23\\n 1 0 1.3 5.3 13.7 16 37 18 35.3 41.3 69 70 101l7 8H0v40h399905l-7 8c-28.7 32\\n-52 65.7-70 101-10.7 23.3-16 35.7-16 37 0 .7 7.7 1 23 1h23c24-69.3 71.3-125 142\\n-167z M100 147v40h399900v-40zM0 341v40h399900v-40z\",twoheadleftarrow:\"M0 167c68 40\\n 115.7 95.7 143 167h22c15.3 0 23-.3 23-1 0-1.3-5.3-13.7-16-37-18-35.3-41.3-69\\n-70-101l-7-8h125l9 7c50.7 39.3 85 86 103 140h46c0-4.7-6.3-18.7-19-42-18-35.3\\n-40-67.3-66-96l-9-9h399716v-40H284l9-9c26-28.7 48-60.7 66-96 12.7-23.333 19\\n-37.333 19-42h-46c-18 54-52.3 100.7-103 140l-9 7H95l7-8c28.7-32 52-65.7 70-101\\n 10.7-23.333 16-35.7 16-37 0-.7-7.7-1-23-1h-22C115.7 71.3 68 127 0 167z\",twoheadrightarrow:\"M400000 167\\nc-68-40-115.7-95.7-143-167h-22c-15.3 0-23 .3-23 1 0 1.3 5.3 13.7 16 37 18 35.3\\n 41.3 69 70 101l7 8h-125l-9-7c-50.7-39.3-85-86-103-140h-46c0 4.7 6.3 18.7 19 42\\n 18 35.3 40 67.3 66 96l9 9H0v40h399716l-9 9c-26 28.7-48 60.7-66 96-12.7 23.333\\n-19 37.333-19 42h46c18-54 52.3-100.7 103-140l9-7h125l-7 8c-28.7 32-52 65.7-70\\n 101-10.7 23.333-16 35.7-16 37 0 .7 7.7 1 23 1h22c27.3-71.3 75-127 143-167z\",tilde1:\"M200 55.538c-77 0-168 73.953-177 73.953-3 0-7\\n-2.175-9-5.437L2 97c-1-2-2-4-2-6 0-4 2-7 5-9l20-12C116 12 171 0 207 0c86 0\\n 114 68 191 68 78 0 168-68 177-68 4 0 7 2 9 5l12 19c1 2.175 2 4.35 2 6.525 0\\n 4.35-2 7.613-5 9.788l-19 13.05c-92 63.077-116.937 75.308-183 76.128\\n-68.267.847-113-73.952-191-73.952z\",tilde2:\"M344 55.266c-142 0-300.638 81.316-311.5 86.418\\n-8.01 3.762-22.5 10.91-23.5 5.562L1 120c-1-2-1-3-1-4 0-5 3-9 8-10l18.4-9C160.9\\n 31.9 283 0 358 0c148 0 188 122 331 122s314-97 326-97c4 0 8 2 10 7l7 21.114\\nc1 2.14 1 3.21 1 4.28 0 5.347-3 9.626-7 10.696l-22.3 12.622C852.6 158.372 751\\n 181.476 676 181.476c-149 0-189-126.21-332-126.21z\",tilde3:\"M786 59C457 59 32 175.242 13 175.242c-6 0-10-3.457\\n-11-10.37L.15 138c-1-7 3-12 10-13l19.2-6.4C378.4 40.7 634.3 0 804.3 0c337 0\\n 411.8 157 746.8 157 328 0 754-112 773-112 5 0 10 3 11 9l1 14.075c1 8.066-.697\\n 16.595-6.697 17.492l-21.052 7.31c-367.9 98.146-609.15 122.696-778.15 122.696\\n -338 0-409-156.573-744-156.573z\",tilde4:\"M786 58C457 58 32 177.487 13 177.487c-6 0-10-3.345\\n-11-10.035L.15 143c-1-7 3-12 10-13l22-6.7C381.2 35 637.15 0 807.15 0c337 0 409\\n 177 744 177 328 0 754-127 773-127 5 0 10 3 11 9l1 14.794c1 7.805-3 13.38-9\\n 14.495l-20.7 5.574c-366.85 99.79-607.3 139.372-776.3 139.372-338 0-409\\n -175.236-744-175.236z\",vec:\"M377 20c0-5.333 1.833-10 5.5-14S391 0 397 0c4.667 0 8.667 1.667 12 5\\n3.333 2.667 6.667 9 10 19 6.667 24.667 20.333 43.667 41 57 7.333 4.667 11\\n10.667 11 18 0 6-1 10-3 12s-6.667 5-14 9c-28.667 14.667-53.667 35.667-75 63\\n-1.333 1.333-3.167 3.5-5.5 6.5s-4 4.833-5 5.5c-1 .667-2.5 1.333-4.5 2s-4.333 1\\n-7 1c-4.667 0-9.167-1.833-13.5-5.5S337 184 337 178c0-12.667 15.667-32.333 47-59\\nH213l-171-1c-8.667-6-13-12.333-13-19 0-4.667 4.333-11.333 13-20h359\\nc-16-25.333-24-45-24-59z\",widehat1:\"M529 0h5l519 115c5 1 9 5 9 10 0 1-1 2-1 3l-4 22\\nc-1 5-5 9-11 9h-2L532 67 19 159h-2c-5 0-9-4-11-9l-5-22c-1-6 2-12 8-13z\",widehat2:\"M1181 0h2l1171 176c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 220h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",widehat3:\"M1181 0h2l1171 236c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 280h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",widehat4:\"M1181 0h2l1171 296c6 0 10 5 10 11l-2 23c-1 6-5 10\\n-11 10h-1L1182 67 15 340h-1c-6 0-10-4-11-10l-2-23c-1-6 4-11 10-11z\",widecheck1:\"M529,159h5l519,-115c5,-1,9,-5,9,-10c0,-1,-1,-2,-1,-3l-4,-22c-1,\\n-5,-5,-9,-11,-9h-2l-512,92l-513,-92h-2c-5,0,-9,4,-11,9l-5,22c-1,6,2,12,8,13z\",widecheck2:\"M1181,220h2l1171,-176c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,153l-1167,-153h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",widecheck3:\"M1181,280h2l1171,-236c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,213l-1167,-213h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",widecheck4:\"M1181,340h2l1171,-296c6,0,10,-5,10,-11l-2,-23c-1,-6,-5,-10,\\n-11,-10h-1l-1168,273l-1167,-273h-1c-6,0,-10,4,-11,10l-2,23c-1,6,4,11,10,11z\",baraboveleftarrow:\"M400000 620h-399890l3 -3c68.7 -52.7 113.7 -120 135 -202\\nc4 -14.7 6 -23 6 -25c0 -7.3 -7 -11 -21 -11c-8 0 -13.2 0.8 -15.5 2.5\\nc-2.3 1.7 -4.2 5.8 -5.5 12.5c-1.3 4.7 -2.7 10.3 -4 17c-12 48.7 -34.8 92 -68.5 130\\ns-74.2 66.3 -121.5 85c-10 4 -16 7.7 -18 11c0 8.7 6 14.3 18 17c47.3 18.7 87.8 47\\n121.5 85s56.5 81.3 68.5 130c0.7 2 1.3 5 2 9s1.2 6.7 1.5 8c0.3 1.3 1 3.3 2 6\\ns2.2 4.5 3.5 5.5c1.3 1 3.3 1.8 6 2.5s6 1 10 1c14 0 21 -3.7 21 -11\\nc0 -2 -2 -10.3 -6 -25c-20 -79.3 -65 -146.7 -135 -202l-3 -3h399890z\\nM100 620v40h399900v-40z M0 241v40h399900v-40zM0 241v40h399900v-40z\",rightarrowabovebar:\"M0 241v40h399891c-47.3 35.3-84 78-110 128-16.7 32\\n-27.7 63.7-33 95 0 1.3-.2 2.7-.5 4-.3 1.3-.5 2.3-.5 3 0 7.3 6.7 11 20 11 8 0\\n13.2-.8 15.5-2.5 2.3-1.7 4.2-5.5 5.5-11.5 2-13.3 5.7-27 11-41 14.7-44.7 39\\n-84.5 73-119.5s73.7-60.2 119-75.5c6-2 9-5.7 9-11s-3-9-9-11c-45.3-15.3-85-40.5\\n-119-75.5s-58.3-74.8-73-119.5c-4.7-14-8.3-27.3-11-40-1.3-6.7-3.2-10.8-5.5\\n-12.5-2.3-1.7-7.5-2.5-15.5-2.5-14 0-21 3.7-21 11 0 2 2 10.3 6 25 20.7 83.3 67\\n151.7 139 205zm96 379h399894v40H0zm0 0h399904v40H0z\",baraboveshortleftharpoon:\"M507,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17\\nc2,0.7,5,1,9,1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21\\nc-32,-87.3,-82.7,-157.7,-152,-211c0,0,-3,-3,-3,-3l399351,0l0,-40\\nc-398570,0,-399437,0,-399437,0z M593 435 v40 H399500 v-40z\\nM0 281 v-40 H399908 v40z M0 281 v-40 H399908 v40z\",rightharpoonaboveshortbar:\"M0,241 l0,40c399126,0,399993,0,399993,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM0 241 v40 H399908 v-40z M0 475 v-40 H399500 v40z M0 475 v-40 H399500 v40z\",shortbaraboveleftharpoon:\"M7,435c-4,4,-6.3,8.7,-7,14c0,5.3,0.7,9,2,11\\nc1.3,2,5.3,5.3,12,10c90.7,54,156,130,196,228c3.3,10.7,6.3,16.3,9,17c2,0.7,5,1,9,\\n1c0,0,5,0,5,0c10.7,0,16.7,-2,18,-6c2,-2.7,1,-9.7,-3,-21c-32,-87.3,-82.7,-157.7,\\n-152,-211c0,0,-3,-3,-3,-3l399907,0l0,-40c-399126,0,-399993,0,-399993,0z\\nM93 435 v40 H400000 v-40z M500 241 v40 H400000 v-40z M500 241 v40 H400000 v-40z\",shortrightharpoonabovebar:\"M53,241l0,40c398570,0,399437,0,399437,0\\nc4.7,-4.7,7,-9.3,7,-14c0,-9.3,-3.7,-15.3,-11,-18c-92.7,-56.7,-159,-133.7,-199,\\n-231c-3.3,-9.3,-6,-14.7,-8,-16c-2,-1.3,-7,-2,-15,-2c-10.7,0,-16.7,2,-18,6\\nc-2,2.7,-1,9.7,3,21c15.3,42,36.7,81.8,64,119.5c27.3,37.7,58,69.2,92,94.5z\\nM500 241 v40 H399408 v-40z M500 435 v40 H400000 v-40z\"}},T=function(){function t(t){this.children=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,this.children=t,this.classes=[],this.height=0,this.depth=0,this.maxFontSize=0,this.style={}}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){for(var t=document.createDocumentFragment(),e=0;e<this.children.length;e++)t.appendChild(this.children[e].toNode());return t},e.toMarkup=function(){for(var t=\"\",e=0;e<this.children.length;e++)t+=this.children[e].toMarkup();return t},e.toText=function(){var t=function(t){return t.toText()};return this.children.map(t).join(\"\")},t}(),A=function(t){return t.filter(function(t){return t}).join(\" \")},B=function(t,e,r){if(this.classes=t||[],this.attributes={},this.height=0,this.depth=0,this.maxFontSize=0,this.style=r||{},e){e.style.isTight()&&this.classes.push(\"mtight\");var a=e.getColor();a&&(this.style.color=a)}},q=function(t){var e=document.createElement(t);for(var r in e.className=A(this.classes),this.style)this.style.hasOwnProperty(r)&&(e.style[r]=this.style[r]);for(var a in this.attributes)this.attributes.hasOwnProperty(a)&&e.setAttribute(a,this.attributes[a]);for(var n=0;n<this.children.length;n++)e.appendChild(this.children[n].toNode());return e},C=function(t){var e=\"<\"+t;this.classes.length&&(e+=' class=\"'+c.escape(A(this.classes))+'\"');var r=\"\";for(var a in this.style)this.style.hasOwnProperty(a)&&(r+=c.hyphenate(a)+\":\"+this.style[a]+\";\");for(var n in r&&(e+=' style=\"'+c.escape(r)+'\"'),this.attributes)this.attributes.hasOwnProperty(n)&&(e+=\" \"+n+'=\"'+c.escape(this.attributes[n])+'\"');e+=\">\";for(var o=0;o<this.children.length;o++)e+=this.children[o].toMarkup();return e+=\"</\"+t+\">\"},N=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.width=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,t,r,a),this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return q.call(this,\"span\")},e.toMarkup=function(){return C.call(this,\"span\")},t}(),I=function(){function t(t,e,r,a){this.children=void 0,this.attributes=void 0,this.classes=void 0,this.height=void 0,this.depth=void 0,this.maxFontSize=void 0,this.style=void 0,B.call(this,e,a),this.children=r||[],this.setAttribute(\"href\",t)}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){return q.call(this,\"a\")},e.toMarkup=function(){return C.call(this,\"a\")},t}(),O={\"\\xee\":\"\\u0131\\u0302\",\"\\xef\":\"\\u0131\\u0308\",\"\\xed\":\"\\u0131\\u0301\",\"\\xec\":\"\\u0131\\u0300\"},E=function(){function t(t,e,r,a,n,o,i,s){this.text=void 0,this.height=void 0,this.depth=void 0,this.italic=void 0,this.skew=void 0,this.width=void 0,this.maxFontSize=void 0,this.classes=void 0,this.style=void 0,this.text=t,this.height=e||0,this.depth=r||0,this.italic=a||0,this.skew=n||0,this.width=o||0,this.classes=i||[],this.style=s||{},this.maxFontSize=0;var h=function(t){for(var e=0;e<k.length;e++)for(var r=k[e],a=0;a<r.blocks.length;a++){var n=r.blocks[a];if(t>=n[0]&&t<=n[1])return r.name}return null}(this.text.charCodeAt(0));h&&this.classes.push(h+\"_fallback\"),/[\\xee\\xef\\xed\\xec]/.test(this.text)&&(this.text=O[this.text])}var e=t.prototype;return e.hasClass=function(t){return c.contains(this.classes,t)},e.toNode=function(){var t=document.createTextNode(this.text),e=null;for(var r in this.italic>0&&((e=document.createElement(\"span\")).style.marginRight=this.italic+\"em\"),this.classes.length>0&&((e=e||document.createElement(\"span\")).className=A(this.classes)),this.style)this.style.hasOwnProperty(r)&&((e=e||document.createElement(\"span\")).style[r]=this.style[r]);return e?(e.appendChild(t),e):t},e.toMarkup=function(){var t=!1,e=\"<span\";this.classes.length&&(t=!0,e+=' class=\"',e+=c.escape(A(this.classes)),e+='\"');var r=\"\";for(var a in this.italic>0&&(r+=\"margin-right:\"+this.italic+\"em;\"),this.style)this.style.hasOwnProperty(a)&&(r+=c.hyphenate(a)+\":\"+this.style[a]+\";\");r&&(t=!0,e+=' style=\"'+c.escape(r)+'\"');var n=c.escape(this.text);return t?(e+=\">\",e+=n,e+=\"</span>\"):n},t}(),R=function(){function t(t,e){this.children=void 0,this.attributes=void 0,this.children=t||[],this.attributes=e||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"svg\");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t},e.toMarkup=function(){var t=\"<svg\";for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&(t+=\" \"+e+\"='\"+this.attributes[e]+\"'\");t+=\">\";for(var r=0;r<this.children.length;r++)t+=this.children[r].toMarkup();return t+=\"</svg>\"},t}(),L=function(){function t(t,e){this.pathName=void 0,this.alternate=void 0,this.pathName=t,this.alternate=e}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"path\");return this.alternate?t.setAttribute(\"d\",this.alternate):t.setAttribute(\"d\",M.path[this.pathName]),t},e.toMarkup=function(){return this.alternate?\"<path d='\"+this.alternate+\"'/>\":\"<path d='\"+M.path[this.pathName]+\"'/>\"},t}(),H=function(){function t(t){this.attributes=void 0,this.attributes=t||{}}var e=t.prototype;return e.toNode=function(){var t=document.createElementNS(\"http://www.w3.org/2000/svg\",\"line\");for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);return t},e.toMarkup=function(){var t=\"<line\";for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&(t+=\" \"+e+\"='\"+this.attributes[e]+\"'\");return t+=\"/>\"},t}();var P={\"AMS-Regular\":{65:[0,.68889,0,0,.72222],66:[0,.68889,0,0,.66667],67:[0,.68889,0,0,.72222],68:[0,.68889,0,0,.72222],69:[0,.68889,0,0,.66667],70:[0,.68889,0,0,.61111],71:[0,.68889,0,0,.77778],72:[0,.68889,0,0,.77778],73:[0,.68889,0,0,.38889],74:[.16667,.68889,0,0,.5],75:[0,.68889,0,0,.77778],76:[0,.68889,0,0,.66667],77:[0,.68889,0,0,.94445],78:[0,.68889,0,0,.72222],79:[.16667,.68889,0,0,.77778],80:[0,.68889,0,0,.61111],81:[.16667,.68889,0,0,.77778],82:[0,.68889,0,0,.72222],83:[0,.68889,0,0,.55556],84:[0,.68889,0,0,.66667],85:[0,.68889,0,0,.72222],86:[0,.68889,0,0,.72222],87:[0,.68889,0,0,1],88:[0,.68889,0,0,.72222],89:[0,.68889,0,0,.72222],90:[0,.68889,0,0,.66667],107:[0,.68889,0,0,.55556],165:[0,.675,.025,0,.75],174:[.15559,.69224,0,0,.94666],240:[0,.68889,0,0,.55556],295:[0,.68889,0,0,.54028],710:[0,.825,0,0,2.33334],732:[0,.9,0,0,2.33334],770:[0,.825,0,0,2.33334],771:[0,.9,0,0,2.33334],989:[.08167,.58167,0,0,.77778],1008:[0,.43056,.04028,0,.66667],8245:[0,.54986,0,0,.275],8463:[0,.68889,0,0,.54028],8487:[0,.68889,0,0,.72222],8498:[0,.68889,0,0,.55556],8502:[0,.68889,0,0,.66667],8503:[0,.68889,0,0,.44445],8504:[0,.68889,0,0,.66667],8513:[0,.68889,0,0,.63889],8592:[-.03598,.46402,0,0,.5],8594:[-.03598,.46402,0,0,.5],8602:[-.13313,.36687,0,0,1],8603:[-.13313,.36687,0,0,1],8606:[.01354,.52239,0,0,1],8608:[.01354,.52239,0,0,1],8610:[.01354,.52239,0,0,1.11111],8611:[.01354,.52239,0,0,1.11111],8619:[0,.54986,0,0,1],8620:[0,.54986,0,0,1],8621:[-.13313,.37788,0,0,1.38889],8622:[-.13313,.36687,0,0,1],8624:[0,.69224,0,0,.5],8625:[0,.69224,0,0,.5],8630:[0,.43056,0,0,1],8631:[0,.43056,0,0,1],8634:[.08198,.58198,0,0,.77778],8635:[.08198,.58198,0,0,.77778],8638:[.19444,.69224,0,0,.41667],8639:[.19444,.69224,0,0,.41667],8642:[.19444,.69224,0,0,.41667],8643:[.19444,.69224,0,0,.41667],8644:[.1808,.675,0,0,1],8646:[.1808,.675,0,0,1],8647:[.1808,.675,0,0,1],8648:[.19444,.69224,0,0,.83334],8649:[.1808,.675,0,0,1],8650:[.19444,.69224,0,0,.83334],8651:[.01354,.52239,0,0,1],8652:[.01354,.52239,0,0,1],8653:[-.13313,.36687,0,0,1],8654:[-.13313,.36687,0,0,1],8655:[-.13313,.36687,0,0,1],8666:[.13667,.63667,0,0,1],8667:[.13667,.63667,0,0,1],8669:[-.13313,.37788,0,0,1],8672:[-.064,.437,0,0,1.334],8674:[-.064,.437,0,0,1.334],8705:[0,.825,0,0,.5],8708:[0,.68889,0,0,.55556],8709:[.08167,.58167,0,0,.77778],8717:[0,.43056,0,0,.42917],8722:[-.03598,.46402,0,0,.5],8724:[.08198,.69224,0,0,.77778],8726:[.08167,.58167,0,0,.77778],8733:[0,.69224,0,0,.77778],8736:[0,.69224,0,0,.72222],8737:[0,.69224,0,0,.72222],8738:[.03517,.52239,0,0,.72222],8739:[.08167,.58167,0,0,.22222],8740:[.25142,.74111,0,0,.27778],8741:[.08167,.58167,0,0,.38889],8742:[.25142,.74111,0,0,.5],8756:[0,.69224,0,0,.66667],8757:[0,.69224,0,0,.66667],8764:[-.13313,.36687,0,0,.77778],8765:[-.13313,.37788,0,0,.77778],8769:[-.13313,.36687,0,0,.77778],8770:[-.03625,.46375,0,0,.77778],8774:[.30274,.79383,0,0,.77778],8776:[-.01688,.48312,0,0,.77778],8778:[.08167,.58167,0,0,.77778],8782:[.06062,.54986,0,0,.77778],8783:[.06062,.54986,0,0,.77778],8785:[.08198,.58198,0,0,.77778],8786:[.08198,.58198,0,0,.77778],8787:[.08198,.58198,0,0,.77778],8790:[0,.69224,0,0,.77778],8791:[.22958,.72958,0,0,.77778],8796:[.08198,.91667,0,0,.77778],8806:[.25583,.75583,0,0,.77778],8807:[.25583,.75583,0,0,.77778],8808:[.25142,.75726,0,0,.77778],8809:[.25142,.75726,0,0,.77778],8812:[.25583,.75583,0,0,.5],8814:[.20576,.70576,0,0,.77778],8815:[.20576,.70576,0,0,.77778],8816:[.30274,.79383,0,0,.77778],8817:[.30274,.79383,0,0,.77778],8818:[.22958,.72958,0,0,.77778],8819:[.22958,.72958,0,0,.77778],8822:[.1808,.675,0,0,.77778],8823:[.1808,.675,0,0,.77778],8828:[.13667,.63667,0,0,.77778],8829:[.13667,.63667,0,0,.77778],8830:[.22958,.72958,0,0,.77778],8831:[.22958,.72958,0,0,.77778],8832:[.20576,.70576,0,0,.77778],8833:[.20576,.70576,0,0,.77778],8840:[.30274,.79383,0,0,.77778],8841:[.30274,.79383,0,0,.77778],8842:[.13597,.63597,0,0,.77778],8843:[.13597,.63597,0,0,.77778],8847:[.03517,.54986,0,0,.77778],8848:[.03517,.54986,0,0,.77778],8858:[.08198,.58198,0,0,.77778],8859:[.08198,.58198,0,0,.77778],8861:[.08198,.58198,0,0,.77778],8862:[0,.675,0,0,.77778],8863:[0,.675,0,0,.77778],8864:[0,.675,0,0,.77778],8865:[0,.675,0,0,.77778],8872:[0,.69224,0,0,.61111],8873:[0,.69224,0,0,.72222],8874:[0,.69224,0,0,.88889],8876:[0,.68889,0,0,.61111],8877:[0,.68889,0,0,.61111],8878:[0,.68889,0,0,.72222],8879:[0,.68889,0,0,.72222],8882:[.03517,.54986,0,0,.77778],8883:[.03517,.54986,0,0,.77778],8884:[.13667,.63667,0,0,.77778],8885:[.13667,.63667,0,0,.77778],8888:[0,.54986,0,0,1.11111],8890:[.19444,.43056,0,0,.55556],8891:[.19444,.69224,0,0,.61111],8892:[.19444,.69224,0,0,.61111],8901:[0,.54986,0,0,.27778],8903:[.08167,.58167,0,0,.77778],8905:[.08167,.58167,0,0,.77778],8906:[.08167,.58167,0,0,.77778],8907:[0,.69224,0,0,.77778],8908:[0,.69224,0,0,.77778],8909:[-.03598,.46402,0,0,.77778],8910:[0,.54986,0,0,.76042],8911:[0,.54986,0,0,.76042],8912:[.03517,.54986,0,0,.77778],8913:[.03517,.54986,0,0,.77778],8914:[0,.54986,0,0,.66667],8915:[0,.54986,0,0,.66667],8916:[0,.69224,0,0,.66667],8918:[.0391,.5391,0,0,.77778],8919:[.0391,.5391,0,0,.77778],8920:[.03517,.54986,0,0,1.33334],8921:[.03517,.54986,0,0,1.33334],8922:[.38569,.88569,0,0,.77778],8923:[.38569,.88569,0,0,.77778],8926:[.13667,.63667,0,0,.77778],8927:[.13667,.63667,0,0,.77778],8928:[.30274,.79383,0,0,.77778],8929:[.30274,.79383,0,0,.77778],8934:[.23222,.74111,0,0,.77778],8935:[.23222,.74111,0,0,.77778],8936:[.23222,.74111,0,0,.77778],8937:[.23222,.74111,0,0,.77778],8938:[.20576,.70576,0,0,.77778],8939:[.20576,.70576,0,0,.77778],8940:[.30274,.79383,0,0,.77778],8941:[.30274,.79383,0,0,.77778],8994:[.19444,.69224,0,0,.77778],8995:[.19444,.69224,0,0,.77778],9416:[.15559,.69224,0,0,.90222],9484:[0,.69224,0,0,.5],9488:[0,.69224,0,0,.5],9492:[0,.37788,0,0,.5],9496:[0,.37788,0,0,.5],9585:[.19444,.68889,0,0,.88889],9586:[.19444,.74111,0,0,.88889],9632:[0,.675,0,0,.77778],9633:[0,.675,0,0,.77778],9650:[0,.54986,0,0,.72222],9651:[0,.54986,0,0,.72222],9654:[.03517,.54986,0,0,.77778],9660:[0,.54986,0,0,.72222],9661:[0,.54986,0,0,.72222],9664:[.03517,.54986,0,0,.77778],9674:[.11111,.69224,0,0,.66667],9733:[.19444,.69224,0,0,.94445],10003:[0,.69224,0,0,.83334],10016:[0,.69224,0,0,.83334],10731:[.11111,.69224,0,0,.66667],10846:[.19444,.75583,0,0,.61111],10877:[.13667,.63667,0,0,.77778],10878:[.13667,.63667,0,0,.77778],10885:[.25583,.75583,0,0,.77778],10886:[.25583,.75583,0,0,.77778],10887:[.13597,.63597,0,0,.77778],10888:[.13597,.63597,0,0,.77778],10889:[.26167,.75726,0,0,.77778],10890:[.26167,.75726,0,0,.77778],10891:[.48256,.98256,0,0,.77778],10892:[.48256,.98256,0,0,.77778],10901:[.13667,.63667,0,0,.77778],10902:[.13667,.63667,0,0,.77778],10933:[.25142,.75726,0,0,.77778],10934:[.25142,.75726,0,0,.77778],10935:[.26167,.75726,0,0,.77778],10936:[.26167,.75726,0,0,.77778],10937:[.26167,.75726,0,0,.77778],10938:[.26167,.75726,0,0,.77778],10949:[.25583,.75583,0,0,.77778],10950:[.25583,.75583,0,0,.77778],10955:[.28481,.79383,0,0,.77778],10956:[.28481,.79383,0,0,.77778],57350:[.08167,.58167,0,0,.22222],57351:[.08167,.58167,0,0,.38889],57352:[.08167,.58167,0,0,.77778],57353:[0,.43056,.04028,0,.66667],57356:[.25142,.75726,0,0,.77778],57357:[.25142,.75726,0,0,.77778],57358:[.41951,.91951,0,0,.77778],57359:[.30274,.79383,0,0,.77778],57360:[.30274,.79383,0,0,.77778],57361:[.41951,.91951,0,0,.77778],57366:[.25142,.75726,0,0,.77778],57367:[.25142,.75726,0,0,.77778],57368:[.25142,.75726,0,0,.77778],57369:[.25142,.75726,0,0,.77778],57370:[.13597,.63597,0,0,.77778],57371:[.13597,.63597,0,0,.77778]},\"Caligraphic-Regular\":{48:[0,.43056,0,0,.5],49:[0,.43056,0,0,.5],50:[0,.43056,0,0,.5],51:[.19444,.43056,0,0,.5],52:[.19444,.43056,0,0,.5],53:[.19444,.43056,0,0,.5],54:[0,.64444,0,0,.5],55:[.19444,.43056,0,0,.5],56:[0,.64444,0,0,.5],57:[.19444,.43056,0,0,.5],65:[0,.68333,0,.19445,.79847],66:[0,.68333,.03041,.13889,.65681],67:[0,.68333,.05834,.13889,.52653],68:[0,.68333,.02778,.08334,.77139],69:[0,.68333,.08944,.11111,.52778],70:[0,.68333,.09931,.11111,.71875],71:[.09722,.68333,.0593,.11111,.59487],72:[0,.68333,.00965,.11111,.84452],73:[0,.68333,.07382,0,.54452],74:[.09722,.68333,.18472,.16667,.67778],75:[0,.68333,.01445,.05556,.76195],76:[0,.68333,0,.13889,.68972],77:[0,.68333,0,.13889,1.2009],78:[0,.68333,.14736,.08334,.82049],79:[0,.68333,.02778,.11111,.79611],80:[0,.68333,.08222,.08334,.69556],81:[.09722,.68333,0,.11111,.81667],82:[0,.68333,0,.08334,.8475],83:[0,.68333,.075,.13889,.60556],84:[0,.68333,.25417,0,.54464],85:[0,.68333,.09931,.08334,.62583],86:[0,.68333,.08222,0,.61278],87:[0,.68333,.08222,.08334,.98778],88:[0,.68333,.14643,.13889,.7133],89:[.09722,.68333,.08222,.08334,.66834],90:[0,.68333,.07944,.13889,.72473]},\"Fraktur-Regular\":{33:[0,.69141,0,0,.29574],34:[0,.69141,0,0,.21471],38:[0,.69141,0,0,.73786],39:[0,.69141,0,0,.21201],40:[.24982,.74947,0,0,.38865],41:[.24982,.74947,0,0,.38865],42:[0,.62119,0,0,.27764],43:[.08319,.58283,0,0,.75623],44:[0,.10803,0,0,.27764],45:[.08319,.58283,0,0,.75623],46:[0,.10803,0,0,.27764],47:[.24982,.74947,0,0,.50181],48:[0,.47534,0,0,.50181],49:[0,.47534,0,0,.50181],50:[0,.47534,0,0,.50181],51:[.18906,.47534,0,0,.50181],52:[.18906,.47534,0,0,.50181],53:[.18906,.47534,0,0,.50181],54:[0,.69141,0,0,.50181],55:[.18906,.47534,0,0,.50181],56:[0,.69141,0,0,.50181],57:[.18906,.47534,0,0,.50181],58:[0,.47534,0,0,.21606],59:[.12604,.47534,0,0,.21606],61:[-.13099,.36866,0,0,.75623],63:[0,.69141,0,0,.36245],65:[0,.69141,0,0,.7176],66:[0,.69141,0,0,.88397],67:[0,.69141,0,0,.61254],68:[0,.69141,0,0,.83158],69:[0,.69141,0,0,.66278],70:[.12604,.69141,0,0,.61119],71:[0,.69141,0,0,.78539],72:[.06302,.69141,0,0,.7203],73:[0,.69141,0,0,.55448],74:[.12604,.69141,0,0,.55231],75:[0,.69141,0,0,.66845],76:[0,.69141,0,0,.66602],77:[0,.69141,0,0,1.04953],78:[0,.69141,0,0,.83212],79:[0,.69141,0,0,.82699],80:[.18906,.69141,0,0,.82753],81:[.03781,.69141,0,0,.82699],82:[0,.69141,0,0,.82807],83:[0,.69141,0,0,.82861],84:[0,.69141,0,0,.66899],85:[0,.69141,0,0,.64576],86:[0,.69141,0,0,.83131],87:[0,.69141,0,0,1.04602],88:[0,.69141,0,0,.71922],89:[.18906,.69141,0,0,.83293],90:[.12604,.69141,0,0,.60201],91:[.24982,.74947,0,0,.27764],93:[.24982,.74947,0,0,.27764],94:[0,.69141,0,0,.49965],97:[0,.47534,0,0,.50046],98:[0,.69141,0,0,.51315],99:[0,.47534,0,0,.38946],100:[0,.62119,0,0,.49857],101:[0,.47534,0,0,.40053],102:[.18906,.69141,0,0,.32626],103:[.18906,.47534,0,0,.5037],104:[.18906,.69141,0,0,.52126],105:[0,.69141,0,0,.27899],106:[0,.69141,0,0,.28088],107:[0,.69141,0,0,.38946],108:[0,.69141,0,0,.27953],109:[0,.47534,0,0,.76676],110:[0,.47534,0,0,.52666],111:[0,.47534,0,0,.48885],112:[.18906,.52396,0,0,.50046],113:[.18906,.47534,0,0,.48912],114:[0,.47534,0,0,.38919],115:[0,.47534,0,0,.44266],116:[0,.62119,0,0,.33301],117:[0,.47534,0,0,.5172],118:[0,.52396,0,0,.5118],119:[0,.52396,0,0,.77351],120:[.18906,.47534,0,0,.38865],121:[.18906,.47534,0,0,.49884],122:[.18906,.47534,0,0,.39054],8216:[0,.69141,0,0,.21471],8217:[0,.69141,0,0,.21471],58112:[0,.62119,0,0,.49749],58113:[0,.62119,0,0,.4983],58114:[.18906,.69141,0,0,.33328],58115:[.18906,.69141,0,0,.32923],58116:[.18906,.47534,0,0,.50343],58117:[0,.69141,0,0,.33301],58118:[0,.62119,0,0,.33409],58119:[0,.47534,0,0,.50073]},\"Main-Bold\":{33:[0,.69444,0,0,.35],34:[0,.69444,0,0,.60278],35:[.19444,.69444,0,0,.95833],36:[.05556,.75,0,0,.575],37:[.05556,.75,0,0,.95833],38:[0,.69444,0,0,.89444],39:[0,.69444,0,0,.31944],40:[.25,.75,0,0,.44722],41:[.25,.75,0,0,.44722],42:[0,.75,0,0,.575],43:[.13333,.63333,0,0,.89444],44:[.19444,.15556,0,0,.31944],45:[0,.44444,0,0,.38333],46:[0,.15556,0,0,.31944],47:[.25,.75,0,0,.575],48:[0,.64444,0,0,.575],49:[0,.64444,0,0,.575],50:[0,.64444,0,0,.575],51:[0,.64444,0,0,.575],52:[0,.64444,0,0,.575],53:[0,.64444,0,0,.575],54:[0,.64444,0,0,.575],55:[0,.64444,0,0,.575],56:[0,.64444,0,0,.575],57:[0,.64444,0,0,.575],58:[0,.44444,0,0,.31944],59:[.19444,.44444,0,0,.31944],60:[.08556,.58556,0,0,.89444],61:[-.10889,.39111,0,0,.89444],62:[.08556,.58556,0,0,.89444],63:[0,.69444,0,0,.54305],64:[0,.69444,0,0,.89444],65:[0,.68611,0,0,.86944],66:[0,.68611,0,0,.81805],67:[0,.68611,0,0,.83055],68:[0,.68611,0,0,.88194],69:[0,.68611,0,0,.75555],70:[0,.68611,0,0,.72361],71:[0,.68611,0,0,.90416],72:[0,.68611,0,0,.9],73:[0,.68611,0,0,.43611],74:[0,.68611,0,0,.59444],75:[0,.68611,0,0,.90138],76:[0,.68611,0,0,.69166],77:[0,.68611,0,0,1.09166],78:[0,.68611,0,0,.9],79:[0,.68611,0,0,.86388],80:[0,.68611,0,0,.78611],81:[.19444,.68611,0,0,.86388],82:[0,.68611,0,0,.8625],83:[0,.68611,0,0,.63889],84:[0,.68611,0,0,.8],85:[0,.68611,0,0,.88472],86:[0,.68611,.01597,0,.86944],87:[0,.68611,.01597,0,1.18888],88:[0,.68611,0,0,.86944],89:[0,.68611,.02875,0,.86944],90:[0,.68611,0,0,.70277],91:[.25,.75,0,0,.31944],92:[.25,.75,0,0,.575],93:[.25,.75,0,0,.31944],94:[0,.69444,0,0,.575],95:[.31,.13444,.03194,0,.575],97:[0,.44444,0,0,.55902],98:[0,.69444,0,0,.63889],99:[0,.44444,0,0,.51111],100:[0,.69444,0,0,.63889],101:[0,.44444,0,0,.52708],102:[0,.69444,.10903,0,.35139],103:[.19444,.44444,.01597,0,.575],104:[0,.69444,0,0,.63889],105:[0,.69444,0,0,.31944],106:[.19444,.69444,0,0,.35139],107:[0,.69444,0,0,.60694],108:[0,.69444,0,0,.31944],109:[0,.44444,0,0,.95833],110:[0,.44444,0,0,.63889],111:[0,.44444,0,0,.575],112:[.19444,.44444,0,0,.63889],113:[.19444,.44444,0,0,.60694],114:[0,.44444,0,0,.47361],115:[0,.44444,0,0,.45361],116:[0,.63492,0,0,.44722],117:[0,.44444,0,0,.63889],118:[0,.44444,.01597,0,.60694],119:[0,.44444,.01597,0,.83055],120:[0,.44444,0,0,.60694],121:[.19444,.44444,.01597,0,.60694],122:[0,.44444,0,0,.51111],123:[.25,.75,0,0,.575],124:[.25,.75,0,0,.31944],125:[.25,.75,0,0,.575],126:[.35,.34444,0,0,.575],168:[0,.69444,0,0,.575],172:[0,.44444,0,0,.76666],176:[0,.69444,0,0,.86944],177:[.13333,.63333,0,0,.89444],184:[.17014,0,0,0,.51111],198:[0,.68611,0,0,1.04166],215:[.13333,.63333,0,0,.89444],216:[.04861,.73472,0,0,.89444],223:[0,.69444,0,0,.59722],230:[0,.44444,0,0,.83055],247:[.13333,.63333,0,0,.89444],248:[.09722,.54167,0,0,.575],305:[0,.44444,0,0,.31944],338:[0,.68611,0,0,1.16944],339:[0,.44444,0,0,.89444],567:[.19444,.44444,0,0,.35139],710:[0,.69444,0,0,.575],711:[0,.63194,0,0,.575],713:[0,.59611,0,0,.575],714:[0,.69444,0,0,.575],715:[0,.69444,0,0,.575],728:[0,.69444,0,0,.575],729:[0,.69444,0,0,.31944],730:[0,.69444,0,0,.86944],732:[0,.69444,0,0,.575],733:[0,.69444,0,0,.575],915:[0,.68611,0,0,.69166],916:[0,.68611,0,0,.95833],920:[0,.68611,0,0,.89444],923:[0,.68611,0,0,.80555],926:[0,.68611,0,0,.76666],928:[0,.68611,0,0,.9],931:[0,.68611,0,0,.83055],933:[0,.68611,0,0,.89444],934:[0,.68611,0,0,.83055],936:[0,.68611,0,0,.89444],937:[0,.68611,0,0,.83055],8211:[0,.44444,.03194,0,.575],8212:[0,.44444,.03194,0,1.14999],8216:[0,.69444,0,0,.31944],8217:[0,.69444,0,0,.31944],8220:[0,.69444,0,0,.60278],8221:[0,.69444,0,0,.60278],8224:[.19444,.69444,0,0,.51111],8225:[.19444,.69444,0,0,.51111],8242:[0,.55556,0,0,.34444],8407:[0,.72444,.15486,0,.575],8463:[0,.69444,0,0,.66759],8465:[0,.69444,0,0,.83055],8467:[0,.69444,0,0,.47361],8472:[.19444,.44444,0,0,.74027],8476:[0,.69444,0,0,.83055],8501:[0,.69444,0,0,.70277],8592:[-.10889,.39111,0,0,1.14999],8593:[.19444,.69444,0,0,.575],8594:[-.10889,.39111,0,0,1.14999],8595:[.19444,.69444,0,0,.575],8596:[-.10889,.39111,0,0,1.14999],8597:[.25,.75,0,0,.575],8598:[.19444,.69444,0,0,1.14999],8599:[.19444,.69444,0,0,1.14999],8600:[.19444,.69444,0,0,1.14999],8601:[.19444,.69444,0,0,1.14999],8636:[-.10889,.39111,0,0,1.14999],8637:[-.10889,.39111,0,0,1.14999],8640:[-.10889,.39111,0,0,1.14999],8641:[-.10889,.39111,0,0,1.14999],8656:[-.10889,.39111,0,0,1.14999],8657:[.19444,.69444,0,0,.70277],8658:[-.10889,.39111,0,0,1.14999],8659:[.19444,.69444,0,0,.70277],8660:[-.10889,.39111,0,0,1.14999],8661:[.25,.75,0,0,.70277],8704:[0,.69444,0,0,.63889],8706:[0,.69444,.06389,0,.62847],8707:[0,.69444,0,0,.63889],8709:[.05556,.75,0,0,.575],8711:[0,.68611,0,0,.95833],8712:[.08556,.58556,0,0,.76666],8715:[.08556,.58556,0,0,.76666],8722:[.13333,.63333,0,0,.89444],8723:[.13333,.63333,0,0,.89444],8725:[.25,.75,0,0,.575],8726:[.25,.75,0,0,.575],8727:[-.02778,.47222,0,0,.575],8728:[-.02639,.47361,0,0,.575],8729:[-.02639,.47361,0,0,.575],8730:[.18,.82,0,0,.95833],8733:[0,.44444,0,0,.89444],8734:[0,.44444,0,0,1.14999],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.31944],8741:[.25,.75,0,0,.575],8743:[0,.55556,0,0,.76666],8744:[0,.55556,0,0,.76666],8745:[0,.55556,0,0,.76666],8746:[0,.55556,0,0,.76666],8747:[.19444,.69444,.12778,0,.56875],8764:[-.10889,.39111,0,0,.89444],8768:[.19444,.69444,0,0,.31944],8771:[.00222,.50222,0,0,.89444],8776:[.02444,.52444,0,0,.89444],8781:[.00222,.50222,0,0,.89444],8801:[.00222,.50222,0,0,.89444],8804:[.19667,.69667,0,0,.89444],8805:[.19667,.69667,0,0,.89444],8810:[.08556,.58556,0,0,1.14999],8811:[.08556,.58556,0,0,1.14999],8826:[.08556,.58556,0,0,.89444],8827:[.08556,.58556,0,0,.89444],8834:[.08556,.58556,0,0,.89444],8835:[.08556,.58556,0,0,.89444],8838:[.19667,.69667,0,0,.89444],8839:[.19667,.69667,0,0,.89444],8846:[0,.55556,0,0,.76666],8849:[.19667,.69667,0,0,.89444],8850:[.19667,.69667,0,0,.89444],8851:[0,.55556,0,0,.76666],8852:[0,.55556,0,0,.76666],8853:[.13333,.63333,0,0,.89444],8854:[.13333,.63333,0,0,.89444],8855:[.13333,.63333,0,0,.89444],8856:[.13333,.63333,0,0,.89444],8857:[.13333,.63333,0,0,.89444],8866:[0,.69444,0,0,.70277],8867:[0,.69444,0,0,.70277],8868:[0,.69444,0,0,.89444],8869:[0,.69444,0,0,.89444],8900:[-.02639,.47361,0,0,.575],8901:[-.02639,.47361,0,0,.31944],8902:[-.02778,.47222,0,0,.575],8968:[.25,.75,0,0,.51111],8969:[.25,.75,0,0,.51111],8970:[.25,.75,0,0,.51111],8971:[.25,.75,0,0,.51111],8994:[-.13889,.36111,0,0,1.14999],8995:[-.13889,.36111,0,0,1.14999],9651:[.19444,.69444,0,0,1.02222],9657:[-.02778,.47222,0,0,.575],9661:[.19444,.69444,0,0,1.02222],9667:[-.02778,.47222,0,0,.575],9711:[.19444,.69444,0,0,1.14999],9824:[.12963,.69444,0,0,.89444],9825:[.12963,.69444,0,0,.89444],9826:[.12963,.69444,0,0,.89444],9827:[.12963,.69444,0,0,.89444],9837:[0,.75,0,0,.44722],9838:[.19444,.69444,0,0,.44722],9839:[.19444,.69444,0,0,.44722],10216:[.25,.75,0,0,.44722],10217:[.25,.75,0,0,.44722],10815:[0,.68611,0,0,.9],10927:[.19667,.69667,0,0,.89444],10928:[.19667,.69667,0,0,.89444],57376:[.19444,.69444,0,0,0]},\"Main-BoldItalic\":{33:[0,.69444,.11417,0,.38611],34:[0,.69444,.07939,0,.62055],35:[.19444,.69444,.06833,0,.94444],37:[.05556,.75,.12861,0,.94444],38:[0,.69444,.08528,0,.88555],39:[0,.69444,.12945,0,.35555],40:[.25,.75,.15806,0,.47333],41:[.25,.75,.03306,0,.47333],42:[0,.75,.14333,0,.59111],43:[.10333,.60333,.03306,0,.88555],44:[.19444,.14722,0,0,.35555],45:[0,.44444,.02611,0,.41444],46:[0,.14722,0,0,.35555],47:[.25,.75,.15806,0,.59111],48:[0,.64444,.13167,0,.59111],49:[0,.64444,.13167,0,.59111],50:[0,.64444,.13167,0,.59111],51:[0,.64444,.13167,0,.59111],52:[.19444,.64444,.13167,0,.59111],53:[0,.64444,.13167,0,.59111],54:[0,.64444,.13167,0,.59111],55:[.19444,.64444,.13167,0,.59111],56:[0,.64444,.13167,0,.59111],57:[0,.64444,.13167,0,.59111],58:[0,.44444,.06695,0,.35555],59:[.19444,.44444,.06695,0,.35555],61:[-.10889,.39111,.06833,0,.88555],63:[0,.69444,.11472,0,.59111],64:[0,.69444,.09208,0,.88555],65:[0,.68611,0,0,.86555],66:[0,.68611,.0992,0,.81666],67:[0,.68611,.14208,0,.82666],68:[0,.68611,.09062,0,.87555],69:[0,.68611,.11431,0,.75666],70:[0,.68611,.12903,0,.72722],71:[0,.68611,.07347,0,.89527],72:[0,.68611,.17208,0,.8961],73:[0,.68611,.15681,0,.47166],74:[0,.68611,.145,0,.61055],75:[0,.68611,.14208,0,.89499],76:[0,.68611,0,0,.69777],77:[0,.68611,.17208,0,1.07277],78:[0,.68611,.17208,0,.8961],79:[0,.68611,.09062,0,.85499],80:[0,.68611,.0992,0,.78721],81:[.19444,.68611,.09062,0,.85499],82:[0,.68611,.02559,0,.85944],83:[0,.68611,.11264,0,.64999],84:[0,.68611,.12903,0,.7961],85:[0,.68611,.17208,0,.88083],86:[0,.68611,.18625,0,.86555],87:[0,.68611,.18625,0,1.15999],88:[0,.68611,.15681,0,.86555],89:[0,.68611,.19803,0,.86555],90:[0,.68611,.14208,0,.70888],91:[.25,.75,.1875,0,.35611],93:[.25,.75,.09972,0,.35611],94:[0,.69444,.06709,0,.59111],95:[.31,.13444,.09811,0,.59111],97:[0,.44444,.09426,0,.59111],98:[0,.69444,.07861,0,.53222],99:[0,.44444,.05222,0,.53222],100:[0,.69444,.10861,0,.59111],101:[0,.44444,.085,0,.53222],102:[.19444,.69444,.21778,0,.4],103:[.19444,.44444,.105,0,.53222],104:[0,.69444,.09426,0,.59111],105:[0,.69326,.11387,0,.35555],106:[.19444,.69326,.1672,0,.35555],107:[0,.69444,.11111,0,.53222],108:[0,.69444,.10861,0,.29666],109:[0,.44444,.09426,0,.94444],110:[0,.44444,.09426,0,.64999],111:[0,.44444,.07861,0,.59111],112:[.19444,.44444,.07861,0,.59111],113:[.19444,.44444,.105,0,.53222],114:[0,.44444,.11111,0,.50167],115:[0,.44444,.08167,0,.48694],116:[0,.63492,.09639,0,.385],117:[0,.44444,.09426,0,.62055],118:[0,.44444,.11111,0,.53222],119:[0,.44444,.11111,0,.76777],120:[0,.44444,.12583,0,.56055],121:[.19444,.44444,.105,0,.56166],122:[0,.44444,.13889,0,.49055],126:[.35,.34444,.11472,0,.59111],163:[0,.69444,0,0,.86853],168:[0,.69444,.11473,0,.59111],176:[0,.69444,0,0,.94888],184:[.17014,0,0,0,.53222],198:[0,.68611,.11431,0,1.02277],216:[.04861,.73472,.09062,0,.88555],223:[.19444,.69444,.09736,0,.665],230:[0,.44444,.085,0,.82666],248:[.09722,.54167,.09458,0,.59111],305:[0,.44444,.09426,0,.35555],338:[0,.68611,.11431,0,1.14054],339:[0,.44444,.085,0,.82666],567:[.19444,.44444,.04611,0,.385],710:[0,.69444,.06709,0,.59111],711:[0,.63194,.08271,0,.59111],713:[0,.59444,.10444,0,.59111],714:[0,.69444,.08528,0,.59111],715:[0,.69444,0,0,.59111],728:[0,.69444,.10333,0,.59111],729:[0,.69444,.12945,0,.35555],730:[0,.69444,0,0,.94888],732:[0,.69444,.11472,0,.59111],733:[0,.69444,.11472,0,.59111],915:[0,.68611,.12903,0,.69777],916:[0,.68611,0,0,.94444],920:[0,.68611,.09062,0,.88555],923:[0,.68611,0,0,.80666],926:[0,.68611,.15092,0,.76777],928:[0,.68611,.17208,0,.8961],931:[0,.68611,.11431,0,.82666],933:[0,.68611,.10778,0,.88555],934:[0,.68611,.05632,0,.82666],936:[0,.68611,.10778,0,.88555],937:[0,.68611,.0992,0,.82666],8211:[0,.44444,.09811,0,.59111],8212:[0,.44444,.09811,0,1.18221],8216:[0,.69444,.12945,0,.35555],8217:[0,.69444,.12945,0,.35555],8220:[0,.69444,.16772,0,.62055],8221:[0,.69444,.07939,0,.62055]},\"Main-Italic\":{33:[0,.69444,.12417,0,.30667],34:[0,.69444,.06961,0,.51444],35:[.19444,.69444,.06616,0,.81777],37:[.05556,.75,.13639,0,.81777],38:[0,.69444,.09694,0,.76666],39:[0,.69444,.12417,0,.30667],40:[.25,.75,.16194,0,.40889],41:[.25,.75,.03694,0,.40889],42:[0,.75,.14917,0,.51111],43:[.05667,.56167,.03694,0,.76666],44:[.19444,.10556,0,0,.30667],45:[0,.43056,.02826,0,.35778],46:[0,.10556,0,0,.30667],47:[.25,.75,.16194,0,.51111],48:[0,.64444,.13556,0,.51111],49:[0,.64444,.13556,0,.51111],50:[0,.64444,.13556,0,.51111],51:[0,.64444,.13556,0,.51111],52:[.19444,.64444,.13556,0,.51111],53:[0,.64444,.13556,0,.51111],54:[0,.64444,.13556,0,.51111],55:[.19444,.64444,.13556,0,.51111],56:[0,.64444,.13556,0,.51111],57:[0,.64444,.13556,0,.51111],58:[0,.43056,.0582,0,.30667],59:[.19444,.43056,.0582,0,.30667],61:[-.13313,.36687,.06616,0,.76666],63:[0,.69444,.1225,0,.51111],64:[0,.69444,.09597,0,.76666],65:[0,.68333,0,0,.74333],66:[0,.68333,.10257,0,.70389],67:[0,.68333,.14528,0,.71555],68:[0,.68333,.09403,0,.755],69:[0,.68333,.12028,0,.67833],70:[0,.68333,.13305,0,.65277],71:[0,.68333,.08722,0,.77361],72:[0,.68333,.16389,0,.74333],73:[0,.68333,.15806,0,.38555],74:[0,.68333,.14028,0,.525],75:[0,.68333,.14528,0,.76888],76:[0,.68333,0,0,.62722],77:[0,.68333,.16389,0,.89666],78:[0,.68333,.16389,0,.74333],79:[0,.68333,.09403,0,.76666],80:[0,.68333,.10257,0,.67833],81:[.19444,.68333,.09403,0,.76666],82:[0,.68333,.03868,0,.72944],83:[0,.68333,.11972,0,.56222],84:[0,.68333,.13305,0,.71555],85:[0,.68333,.16389,0,.74333],86:[0,.68333,.18361,0,.74333],87:[0,.68333,.18361,0,.99888],88:[0,.68333,.15806,0,.74333],89:[0,.68333,.19383,0,.74333],90:[0,.68333,.14528,0,.61333],91:[.25,.75,.1875,0,.30667],93:[.25,.75,.10528,0,.30667],94:[0,.69444,.06646,0,.51111],95:[.31,.12056,.09208,0,.51111],97:[0,.43056,.07671,0,.51111],98:[0,.69444,.06312,0,.46],99:[0,.43056,.05653,0,.46],100:[0,.69444,.10333,0,.51111],101:[0,.43056,.07514,0,.46],102:[.19444,.69444,.21194,0,.30667],103:[.19444,.43056,.08847,0,.46],104:[0,.69444,.07671,0,.51111],105:[0,.65536,.1019,0,.30667],106:[.19444,.65536,.14467,0,.30667],107:[0,.69444,.10764,0,.46],108:[0,.69444,.10333,0,.25555],109:[0,.43056,.07671,0,.81777],110:[0,.43056,.07671,0,.56222],111:[0,.43056,.06312,0,.51111],112:[.19444,.43056,.06312,0,.51111],113:[.19444,.43056,.08847,0,.46],114:[0,.43056,.10764,0,.42166],115:[0,.43056,.08208,0,.40889],116:[0,.61508,.09486,0,.33222],117:[0,.43056,.07671,0,.53666],118:[0,.43056,.10764,0,.46],119:[0,.43056,.10764,0,.66444],120:[0,.43056,.12042,0,.46389],121:[.19444,.43056,.08847,0,.48555],122:[0,.43056,.12292,0,.40889],126:[.35,.31786,.11585,0,.51111],163:[0,.69444,0,0,.76909],168:[0,.66786,.10474,0,.51111],176:[0,.69444,0,0,.83129],184:[.17014,0,0,0,.46],198:[0,.68333,.12028,0,.88277],216:[.04861,.73194,.09403,0,.76666],223:[.19444,.69444,.10514,0,.53666],230:[0,.43056,.07514,0,.71555],248:[.09722,.52778,.09194,0,.51111],305:[0,.43056,0,.02778,.32246],338:[0,.68333,.12028,0,.98499],339:[0,.43056,.07514,0,.71555],567:[.19444,.43056,0,.08334,.38403],710:[0,.69444,.06646,0,.51111],711:[0,.62847,.08295,0,.51111],713:[0,.56167,.10333,0,.51111],714:[0,.69444,.09694,0,.51111],715:[0,.69444,0,0,.51111],728:[0,.69444,.10806,0,.51111],729:[0,.66786,.11752,0,.30667],730:[0,.69444,0,0,.83129],732:[0,.66786,.11585,0,.51111],733:[0,.69444,.1225,0,.51111],915:[0,.68333,.13305,0,.62722],916:[0,.68333,0,0,.81777],920:[0,.68333,.09403,0,.76666],923:[0,.68333,0,0,.69222],926:[0,.68333,.15294,0,.66444],928:[0,.68333,.16389,0,.74333],931:[0,.68333,.12028,0,.71555],933:[0,.68333,.11111,0,.76666],934:[0,.68333,.05986,0,.71555],936:[0,.68333,.11111,0,.76666],937:[0,.68333,.10257,0,.71555],8211:[0,.43056,.09208,0,.51111],8212:[0,.43056,.09208,0,1.02222],8216:[0,.69444,.12417,0,.30667],8217:[0,.69444,.12417,0,.30667],8220:[0,.69444,.1685,0,.51444],8221:[0,.69444,.06961,0,.51444],8463:[0,.68889,0,0,.54028]},\"Main-Regular\":{32:[0,0,0,0,.25],33:[0,.69444,0,0,.27778],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.77778],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.19444,.10556,0,0,.27778],45:[0,.43056,0,0,.33333],46:[0,.10556,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.64444,0,0,.5],49:[0,.64444,0,0,.5],50:[0,.64444,0,0,.5],51:[0,.64444,0,0,.5],52:[0,.64444,0,0,.5],53:[0,.64444,0,0,.5],54:[0,.64444,0,0,.5],55:[0,.64444,0,0,.5],56:[0,.64444,0,0,.5],57:[0,.64444,0,0,.5],58:[0,.43056,0,0,.27778],59:[.19444,.43056,0,0,.27778],60:[.0391,.5391,0,0,.77778],61:[-.13313,.36687,0,0,.77778],62:[.0391,.5391,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.77778],65:[0,.68333,0,0,.75],66:[0,.68333,0,0,.70834],67:[0,.68333,0,0,.72222],68:[0,.68333,0,0,.76389],69:[0,.68333,0,0,.68056],70:[0,.68333,0,0,.65278],71:[0,.68333,0,0,.78472],72:[0,.68333,0,0,.75],73:[0,.68333,0,0,.36111],74:[0,.68333,0,0,.51389],75:[0,.68333,0,0,.77778],76:[0,.68333,0,0,.625],77:[0,.68333,0,0,.91667],78:[0,.68333,0,0,.75],79:[0,.68333,0,0,.77778],80:[0,.68333,0,0,.68056],81:[.19444,.68333,0,0,.77778],82:[0,.68333,0,0,.73611],83:[0,.68333,0,0,.55556],84:[0,.68333,0,0,.72222],85:[0,.68333,0,0,.75],86:[0,.68333,.01389,0,.75],87:[0,.68333,.01389,0,1.02778],88:[0,.68333,0,0,.75],89:[0,.68333,.025,0,.75],90:[0,.68333,0,0,.61111],91:[.25,.75,0,0,.27778],92:[.25,.75,0,0,.5],93:[.25,.75,0,0,.27778],94:[0,.69444,0,0,.5],95:[.31,.12056,.02778,0,.5],97:[0,.43056,0,0,.5],98:[0,.69444,0,0,.55556],99:[0,.43056,0,0,.44445],100:[0,.69444,0,0,.55556],101:[0,.43056,0,0,.44445],102:[0,.69444,.07778,0,.30556],103:[.19444,.43056,.01389,0,.5],104:[0,.69444,0,0,.55556],105:[0,.66786,0,0,.27778],106:[.19444,.66786,0,0,.30556],107:[0,.69444,0,0,.52778],108:[0,.69444,0,0,.27778],109:[0,.43056,0,0,.83334],110:[0,.43056,0,0,.55556],111:[0,.43056,0,0,.5],112:[.19444,.43056,0,0,.55556],113:[.19444,.43056,0,0,.52778],114:[0,.43056,0,0,.39167],115:[0,.43056,0,0,.39445],116:[0,.61508,0,0,.38889],117:[0,.43056,0,0,.55556],118:[0,.43056,.01389,0,.52778],119:[0,.43056,.01389,0,.72222],120:[0,.43056,0,0,.52778],121:[.19444,.43056,.01389,0,.52778],122:[0,.43056,0,0,.44445],123:[.25,.75,0,0,.5],124:[.25,.75,0,0,.27778],125:[.25,.75,0,0,.5],126:[.35,.31786,0,0,.5],160:[0,0,0,0,.25],167:[.19444,.69444,0,0,.44445],168:[0,.66786,0,0,.5],172:[0,.43056,0,0,.66667],176:[0,.69444,0,0,.75],177:[.08333,.58333,0,0,.77778],182:[.19444,.69444,0,0,.61111],184:[.17014,0,0,0,.44445],198:[0,.68333,0,0,.90278],215:[.08333,.58333,0,0,.77778],216:[.04861,.73194,0,0,.77778],223:[0,.69444,0,0,.5],230:[0,.43056,0,0,.72222],247:[.08333,.58333,0,0,.77778],248:[.09722,.52778,0,0,.5],305:[0,.43056,0,0,.27778],338:[0,.68333,0,0,1.01389],339:[0,.43056,0,0,.77778],567:[.19444,.43056,0,0,.30556],710:[0,.69444,0,0,.5],711:[0,.62847,0,0,.5],713:[0,.56778,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.66786,0,0,.27778],730:[0,.69444,0,0,.75],732:[0,.66786,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.68333,0,0,.625],916:[0,.68333,0,0,.83334],920:[0,.68333,0,0,.77778],923:[0,.68333,0,0,.69445],926:[0,.68333,0,0,.66667],928:[0,.68333,0,0,.75],931:[0,.68333,0,0,.72222],933:[0,.68333,0,0,.77778],934:[0,.68333,0,0,.72222],936:[0,.68333,0,0,.77778],937:[0,.68333,0,0,.72222],8211:[0,.43056,.02778,0,.5],8212:[0,.43056,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5],8224:[.19444,.69444,0,0,.44445],8225:[.19444,.69444,0,0,.44445],8230:[0,.12,0,0,1.172],8242:[0,.55556,0,0,.275],8407:[0,.71444,.15382,0,.5],8463:[0,.68889,0,0,.54028],8465:[0,.69444,0,0,.72222],8467:[0,.69444,0,.11111,.41667],8472:[.19444,.43056,0,.11111,.63646],8476:[0,.69444,0,0,.72222],8501:[0,.69444,0,0,.61111],8592:[-.13313,.36687,0,0,1],8593:[.19444,.69444,0,0,.5],8594:[-.13313,.36687,0,0,1],8595:[.19444,.69444,0,0,.5],8596:[-.13313,.36687,0,0,1],8597:[.25,.75,0,0,.5],8598:[.19444,.69444,0,0,1],8599:[.19444,.69444,0,0,1],8600:[.19444,.69444,0,0,1],8601:[.19444,.69444,0,0,1],8614:[.011,.511,0,0,1],8617:[.011,.511,0,0,1.126],8618:[.011,.511,0,0,1.126],8636:[-.13313,.36687,0,0,1],8637:[-.13313,.36687,0,0,1],8640:[-.13313,.36687,0,0,1],8641:[-.13313,.36687,0,0,1],8652:[.011,.671,0,0,1],8656:[-.13313,.36687,0,0,1],8657:[.19444,.69444,0,0,.61111],8658:[-.13313,.36687,0,0,1],8659:[.19444,.69444,0,0,.61111],8660:[-.13313,.36687,0,0,1],8661:[.25,.75,0,0,.61111],8704:[0,.69444,0,0,.55556],8706:[0,.69444,.05556,.08334,.5309],8707:[0,.69444,0,0,.55556],8709:[.05556,.75,0,0,.5],8711:[0,.68333,0,0,.83334],8712:[.0391,.5391,0,0,.66667],8715:[.0391,.5391,0,0,.66667],8722:[.08333,.58333,0,0,.77778],8723:[.08333,.58333,0,0,.77778],8725:[.25,.75,0,0,.5],8726:[.25,.75,0,0,.5],8727:[-.03472,.46528,0,0,.5],8728:[-.05555,.44445,0,0,.5],8729:[-.05555,.44445,0,0,.5],8730:[.2,.8,0,0,.83334],8733:[0,.43056,0,0,.77778],8734:[0,.43056,0,0,1],8736:[0,.69224,0,0,.72222],8739:[.25,.75,0,0,.27778],8741:[.25,.75,0,0,.5],8743:[0,.55556,0,0,.66667],8744:[0,.55556,0,0,.66667],8745:[0,.55556,0,0,.66667],8746:[0,.55556,0,0,.66667],8747:[.19444,.69444,.11111,0,.41667],8764:[-.13313,.36687,0,0,.77778],8768:[.19444,.69444,0,0,.27778],8771:[-.03625,.46375,0,0,.77778],8773:[-.022,.589,0,0,1],8776:[-.01688,.48312,0,0,.77778],8781:[-.03625,.46375,0,0,.77778],8784:[-.133,.67,0,0,.778],8801:[-.03625,.46375,0,0,.77778],8804:[.13597,.63597,0,0,.77778],8805:[.13597,.63597,0,0,.77778],8810:[.0391,.5391,0,0,1],8811:[.0391,.5391,0,0,1],8826:[.0391,.5391,0,0,.77778],8827:[.0391,.5391,0,0,.77778],8834:[.0391,.5391,0,0,.77778],8835:[.0391,.5391,0,0,.77778],8838:[.13597,.63597,0,0,.77778],8839:[.13597,.63597,0,0,.77778],8846:[0,.55556,0,0,.66667],8849:[.13597,.63597,0,0,.77778],8850:[.13597,.63597,0,0,.77778],8851:[0,.55556,0,0,.66667],8852:[0,.55556,0,0,.66667],8853:[.08333,.58333,0,0,.77778],8854:[.08333,.58333,0,0,.77778],8855:[.08333,.58333,0,0,.77778],8856:[.08333,.58333,0,0,.77778],8857:[.08333,.58333,0,0,.77778],8866:[0,.69444,0,0,.61111],8867:[0,.69444,0,0,.61111],8868:[0,.69444,0,0,.77778],8869:[0,.69444,0,0,.77778],8872:[.249,.75,0,0,.867],8900:[-.05555,.44445,0,0,.5],8901:[-.05555,.44445,0,0,.27778],8902:[-.03472,.46528,0,0,.5],8904:[.005,.505,0,0,.9],8942:[.03,.9,0,0,.278],8943:[-.19,.31,0,0,1.172],8945:[-.1,.82,0,0,1.282],8968:[.25,.75,0,0,.44445],8969:[.25,.75,0,0,.44445],8970:[.25,.75,0,0,.44445],8971:[.25,.75,0,0,.44445],8994:[-.14236,.35764,0,0,1],8995:[-.14236,.35764,0,0,1],9136:[.244,.744,0,0,.412],9137:[.244,.744,0,0,.412],9651:[.19444,.69444,0,0,.88889],9657:[-.03472,.46528,0,0,.5],9661:[.19444,.69444,0,0,.88889],9667:[-.03472,.46528,0,0,.5],9711:[.19444,.69444,0,0,1],9824:[.12963,.69444,0,0,.77778],9825:[.12963,.69444,0,0,.77778],9826:[.12963,.69444,0,0,.77778],9827:[.12963,.69444,0,0,.77778],9837:[0,.75,0,0,.38889],9838:[.19444,.69444,0,0,.38889],9839:[.19444,.69444,0,0,.38889],10216:[.25,.75,0,0,.38889],10217:[.25,.75,0,0,.38889],10222:[.244,.744,0,0,.412],10223:[.244,.744,0,0,.412],10229:[.011,.511,0,0,1.609],10230:[.011,.511,0,0,1.638],10231:[.011,.511,0,0,1.859],10232:[.024,.525,0,0,1.609],10233:[.024,.525,0,0,1.638],10234:[.024,.525,0,0,1.858],10236:[.011,.511,0,0,1.638],10815:[0,.68333,0,0,.75],10927:[.13597,.63597,0,0,.77778],10928:[.13597,.63597,0,0,.77778],57376:[.19444,.69444,0,0,0]},\"Math-BoldItalic\":{65:[0,.68611,0,0,.86944],66:[0,.68611,.04835,0,.8664],67:[0,.68611,.06979,0,.81694],68:[0,.68611,.03194,0,.93812],69:[0,.68611,.05451,0,.81007],70:[0,.68611,.15972,0,.68889],71:[0,.68611,0,0,.88673],72:[0,.68611,.08229,0,.98229],73:[0,.68611,.07778,0,.51111],74:[0,.68611,.10069,0,.63125],75:[0,.68611,.06979,0,.97118],76:[0,.68611,0,0,.75555],77:[0,.68611,.11424,0,1.14201],78:[0,.68611,.11424,0,.95034],79:[0,.68611,.03194,0,.83666],80:[0,.68611,.15972,0,.72309],81:[.19444,.68611,0,0,.86861],82:[0,.68611,.00421,0,.87235],83:[0,.68611,.05382,0,.69271],84:[0,.68611,.15972,0,.63663],85:[0,.68611,.11424,0,.80027],86:[0,.68611,.25555,0,.67778],87:[0,.68611,.15972,0,1.09305],88:[0,.68611,.07778,0,.94722],89:[0,.68611,.25555,0,.67458],90:[0,.68611,.06979,0,.77257],97:[0,.44444,0,0,.63287],98:[0,.69444,0,0,.52083],99:[0,.44444,0,0,.51342],100:[0,.69444,0,0,.60972],101:[0,.44444,0,0,.55361],102:[.19444,.69444,.11042,0,.56806],103:[.19444,.44444,.03704,0,.5449],104:[0,.69444,0,0,.66759],105:[0,.69326,0,0,.4048],106:[.19444,.69326,.0622,0,.47083],107:[0,.69444,.01852,0,.6037],108:[0,.69444,.0088,0,.34815],109:[0,.44444,0,0,1.0324],110:[0,.44444,0,0,.71296],111:[0,.44444,0,0,.58472],112:[.19444,.44444,0,0,.60092],113:[.19444,.44444,.03704,0,.54213],114:[0,.44444,.03194,0,.5287],115:[0,.44444,0,0,.53125],116:[0,.63492,0,0,.41528],117:[0,.44444,0,0,.68102],118:[0,.44444,.03704,0,.56666],119:[0,.44444,.02778,0,.83148],120:[0,.44444,0,0,.65903],121:[.19444,.44444,.03704,0,.59028],122:[0,.44444,.04213,0,.55509],915:[0,.68611,.15972,0,.65694],916:[0,.68611,0,0,.95833],920:[0,.68611,.03194,0,.86722],923:[0,.68611,0,0,.80555],926:[0,.68611,.07458,0,.84125],928:[0,.68611,.08229,0,.98229],931:[0,.68611,.05451,0,.88507],933:[0,.68611,.15972,0,.67083],934:[0,.68611,0,0,.76666],936:[0,.68611,.11653,0,.71402],937:[0,.68611,.04835,0,.8789],945:[0,.44444,0,0,.76064],946:[.19444,.69444,.03403,0,.65972],947:[.19444,.44444,.06389,0,.59003],948:[0,.69444,.03819,0,.52222],949:[0,.44444,0,0,.52882],950:[.19444,.69444,.06215,0,.50833],951:[.19444,.44444,.03704,0,.6],952:[0,.69444,.03194,0,.5618],953:[0,.44444,0,0,.41204],954:[0,.44444,0,0,.66759],955:[0,.69444,0,0,.67083],956:[.19444,.44444,0,0,.70787],957:[0,.44444,.06898,0,.57685],958:[.19444,.69444,.03021,0,.50833],959:[0,.44444,0,0,.58472],960:[0,.44444,.03704,0,.68241],961:[.19444,.44444,0,0,.6118],962:[.09722,.44444,.07917,0,.42361],963:[0,.44444,.03704,0,.68588],964:[0,.44444,.13472,0,.52083],965:[0,.44444,.03704,0,.63055],966:[.19444,.44444,0,0,.74722],967:[.19444,.44444,0,0,.71805],968:[.19444,.69444,.03704,0,.75833],969:[0,.44444,.03704,0,.71782],977:[0,.69444,0,0,.69155],981:[.19444,.69444,0,0,.7125],982:[0,.44444,.03194,0,.975],1009:[.19444,.44444,0,0,.6118],1013:[0,.44444,0,0,.48333]},\"Math-Italic\":{65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},\"Math-Regular\":{65:[0,.68333,0,.13889,.75],66:[0,.68333,.05017,.08334,.75851],67:[0,.68333,.07153,.08334,.71472],68:[0,.68333,.02778,.05556,.82792],69:[0,.68333,.05764,.08334,.7382],70:[0,.68333,.13889,.08334,.64306],71:[0,.68333,0,.08334,.78625],72:[0,.68333,.08125,.05556,.83125],73:[0,.68333,.07847,.11111,.43958],74:[0,.68333,.09618,.16667,.55451],75:[0,.68333,.07153,.05556,.84931],76:[0,.68333,0,.02778,.68056],77:[0,.68333,.10903,.08334,.97014],78:[0,.68333,.10903,.08334,.80347],79:[0,.68333,.02778,.08334,.76278],80:[0,.68333,.13889,.08334,.64201],81:[.19444,.68333,0,.08334,.79056],82:[0,.68333,.00773,.08334,.75929],83:[0,.68333,.05764,.08334,.6132],84:[0,.68333,.13889,.08334,.58438],85:[0,.68333,.10903,.02778,.68278],86:[0,.68333,.22222,0,.58333],87:[0,.68333,.13889,0,.94445],88:[0,.68333,.07847,.08334,.82847],89:[0,.68333,.22222,0,.58056],90:[0,.68333,.07153,.08334,.68264],97:[0,.43056,0,0,.52859],98:[0,.69444,0,0,.42917],99:[0,.43056,0,.05556,.43276],100:[0,.69444,0,.16667,.52049],101:[0,.43056,0,.05556,.46563],102:[.19444,.69444,.10764,.16667,.48959],103:[.19444,.43056,.03588,.02778,.47697],104:[0,.69444,0,0,.57616],105:[0,.65952,0,0,.34451],106:[.19444,.65952,.05724,0,.41181],107:[0,.69444,.03148,0,.5206],108:[0,.69444,.01968,.08334,.29838],109:[0,.43056,0,0,.87801],110:[0,.43056,0,0,.60023],111:[0,.43056,0,.05556,.48472],112:[.19444,.43056,0,.08334,.50313],113:[.19444,.43056,.03588,.08334,.44641],114:[0,.43056,.02778,.05556,.45116],115:[0,.43056,0,.05556,.46875],116:[0,.61508,0,.08334,.36111],117:[0,.43056,0,.02778,.57246],118:[0,.43056,.03588,.02778,.48472],119:[0,.43056,.02691,.08334,.71592],120:[0,.43056,0,.02778,.57153],121:[.19444,.43056,.03588,.05556,.49028],122:[0,.43056,.04398,.05556,.46505],915:[0,.68333,.13889,.08334,.61528],916:[0,.68333,0,.16667,.83334],920:[0,.68333,.02778,.08334,.76278],923:[0,.68333,0,.16667,.69445],926:[0,.68333,.07569,.08334,.74236],928:[0,.68333,.08125,.05556,.83125],931:[0,.68333,.05764,.08334,.77986],933:[0,.68333,.13889,.05556,.58333],934:[0,.68333,0,.08334,.66667],936:[0,.68333,.11,.05556,.61222],937:[0,.68333,.05017,.08334,.7724],945:[0,.43056,.0037,.02778,.6397],946:[.19444,.69444,.05278,.08334,.56563],947:[.19444,.43056,.05556,0,.51773],948:[0,.69444,.03785,.05556,.44444],949:[0,.43056,0,.08334,.46632],950:[.19444,.69444,.07378,.08334,.4375],951:[.19444,.43056,.03588,.05556,.49653],952:[0,.69444,.02778,.08334,.46944],953:[0,.43056,0,.05556,.35394],954:[0,.43056,0,0,.57616],955:[0,.69444,0,0,.58334],956:[.19444,.43056,0,.02778,.60255],957:[0,.43056,.06366,.02778,.49398],958:[.19444,.69444,.04601,.11111,.4375],959:[0,.43056,0,.05556,.48472],960:[0,.43056,.03588,0,.57003],961:[.19444,.43056,0,.08334,.51702],962:[.09722,.43056,.07986,.08334,.36285],963:[0,.43056,.03588,0,.57141],964:[0,.43056,.1132,.02778,.43715],965:[0,.43056,.03588,.02778,.54028],966:[.19444,.43056,0,.08334,.65417],967:[.19444,.43056,0,.05556,.62569],968:[.19444,.69444,.03588,.11111,.65139],969:[0,.43056,.03588,0,.62245],977:[0,.69444,0,.08334,.59144],981:[.19444,.69444,0,.08334,.59583],982:[0,.43056,.02778,0,.82813],1009:[.19444,.43056,0,.08334,.51702],1013:[0,.43056,0,.05556,.4059]},\"SansSerif-Bold\":{33:[0,.69444,0,0,.36667],34:[0,.69444,0,0,.55834],35:[.19444,.69444,0,0,.91667],36:[.05556,.75,0,0,.55],37:[.05556,.75,0,0,1.02912],38:[0,.69444,0,0,.83056],39:[0,.69444,0,0,.30556],40:[.25,.75,0,0,.42778],41:[.25,.75,0,0,.42778],42:[0,.75,0,0,.55],43:[.11667,.61667,0,0,.85556],44:[.10556,.13056,0,0,.30556],45:[0,.45833,0,0,.36667],46:[0,.13056,0,0,.30556],47:[.25,.75,0,0,.55],48:[0,.69444,0,0,.55],49:[0,.69444,0,0,.55],50:[0,.69444,0,0,.55],51:[0,.69444,0,0,.55],52:[0,.69444,0,0,.55],53:[0,.69444,0,0,.55],54:[0,.69444,0,0,.55],55:[0,.69444,0,0,.55],56:[0,.69444,0,0,.55],57:[0,.69444,0,0,.55],58:[0,.45833,0,0,.30556],59:[.10556,.45833,0,0,.30556],61:[-.09375,.40625,0,0,.85556],63:[0,.69444,0,0,.51945],64:[0,.69444,0,0,.73334],65:[0,.69444,0,0,.73334],66:[0,.69444,0,0,.73334],67:[0,.69444,0,0,.70278],68:[0,.69444,0,0,.79445],69:[0,.69444,0,0,.64167],70:[0,.69444,0,0,.61111],71:[0,.69444,0,0,.73334],72:[0,.69444,0,0,.79445],73:[0,.69444,0,0,.33056],74:[0,.69444,0,0,.51945],75:[0,.69444,0,0,.76389],76:[0,.69444,0,0,.58056],77:[0,.69444,0,0,.97778],78:[0,.69444,0,0,.79445],79:[0,.69444,0,0,.79445],80:[0,.69444,0,0,.70278],81:[.10556,.69444,0,0,.79445],82:[0,.69444,0,0,.70278],83:[0,.69444,0,0,.61111],84:[0,.69444,0,0,.73334],85:[0,.69444,0,0,.76389],86:[0,.69444,.01528,0,.73334],87:[0,.69444,.01528,0,1.03889],88:[0,.69444,0,0,.73334],89:[0,.69444,.0275,0,.73334],90:[0,.69444,0,0,.67223],91:[.25,.75,0,0,.34306],93:[.25,.75,0,0,.34306],94:[0,.69444,0,0,.55],95:[.35,.10833,.03056,0,.55],97:[0,.45833,0,0,.525],98:[0,.69444,0,0,.56111],99:[0,.45833,0,0,.48889],100:[0,.69444,0,0,.56111],101:[0,.45833,0,0,.51111],102:[0,.69444,.07639,0,.33611],103:[.19444,.45833,.01528,0,.55],104:[0,.69444,0,0,.56111],105:[0,.69444,0,0,.25556],106:[.19444,.69444,0,0,.28611],107:[0,.69444,0,0,.53056],108:[0,.69444,0,0,.25556],109:[0,.45833,0,0,.86667],110:[0,.45833,0,0,.56111],111:[0,.45833,0,0,.55],112:[.19444,.45833,0,0,.56111],113:[.19444,.45833,0,0,.56111],114:[0,.45833,.01528,0,.37222],115:[0,.45833,0,0,.42167],116:[0,.58929,0,0,.40417],117:[0,.45833,0,0,.56111],118:[0,.45833,.01528,0,.5],119:[0,.45833,.01528,0,.74445],120:[0,.45833,0,0,.5],121:[.19444,.45833,.01528,0,.5],122:[0,.45833,0,0,.47639],126:[.35,.34444,0,0,.55],168:[0,.69444,0,0,.55],176:[0,.69444,0,0,.73334],180:[0,.69444,0,0,.55],184:[.17014,0,0,0,.48889],305:[0,.45833,0,0,.25556],567:[.19444,.45833,0,0,.28611],710:[0,.69444,0,0,.55],711:[0,.63542,0,0,.55],713:[0,.63778,0,0,.55],728:[0,.69444,0,0,.55],729:[0,.69444,0,0,.30556],730:[0,.69444,0,0,.73334],732:[0,.69444,0,0,.55],733:[0,.69444,0,0,.55],915:[0,.69444,0,0,.58056],916:[0,.69444,0,0,.91667],920:[0,.69444,0,0,.85556],923:[0,.69444,0,0,.67223],926:[0,.69444,0,0,.73334],928:[0,.69444,0,0,.79445],931:[0,.69444,0,0,.79445],933:[0,.69444,0,0,.85556],934:[0,.69444,0,0,.79445],936:[0,.69444,0,0,.85556],937:[0,.69444,0,0,.79445],8211:[0,.45833,.03056,0,.55],8212:[0,.45833,.03056,0,1.10001],8216:[0,.69444,0,0,.30556],8217:[0,.69444,0,0,.30556],8220:[0,.69444,0,0,.55834],8221:[0,.69444,0,0,.55834]},\"SansSerif-Italic\":{33:[0,.69444,.05733,0,.31945],34:[0,.69444,.00316,0,.5],35:[.19444,.69444,.05087,0,.83334],36:[.05556,.75,.11156,0,.5],37:[.05556,.75,.03126,0,.83334],38:[0,.69444,.03058,0,.75834],39:[0,.69444,.07816,0,.27778],40:[.25,.75,.13164,0,.38889],41:[.25,.75,.02536,0,.38889],42:[0,.75,.11775,0,.5],43:[.08333,.58333,.02536,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,.01946,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,.13164,0,.5],48:[0,.65556,.11156,0,.5],49:[0,.65556,.11156,0,.5],50:[0,.65556,.11156,0,.5],51:[0,.65556,.11156,0,.5],52:[0,.65556,.11156,0,.5],53:[0,.65556,.11156,0,.5],54:[0,.65556,.11156,0,.5],55:[0,.65556,.11156,0,.5],56:[0,.65556,.11156,0,.5],57:[0,.65556,.11156,0,.5],58:[0,.44444,.02502,0,.27778],59:[.125,.44444,.02502,0,.27778],61:[-.13,.37,.05087,0,.77778],63:[0,.69444,.11809,0,.47222],64:[0,.69444,.07555,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,.08293,0,.66667],67:[0,.69444,.11983,0,.63889],68:[0,.69444,.07555,0,.72223],69:[0,.69444,.11983,0,.59722],70:[0,.69444,.13372,0,.56945],71:[0,.69444,.11983,0,.66667],72:[0,.69444,.08094,0,.70834],73:[0,.69444,.13372,0,.27778],74:[0,.69444,.08094,0,.47222],75:[0,.69444,.11983,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,.08094,0,.875],78:[0,.69444,.08094,0,.70834],79:[0,.69444,.07555,0,.73611],80:[0,.69444,.08293,0,.63889],81:[.125,.69444,.07555,0,.73611],82:[0,.69444,.08293,0,.64584],83:[0,.69444,.09205,0,.55556],84:[0,.69444,.13372,0,.68056],85:[0,.69444,.08094,0,.6875],86:[0,.69444,.1615,0,.66667],87:[0,.69444,.1615,0,.94445],88:[0,.69444,.13372,0,.66667],89:[0,.69444,.17261,0,.66667],90:[0,.69444,.11983,0,.61111],91:[.25,.75,.15942,0,.28889],93:[.25,.75,.08719,0,.28889],94:[0,.69444,.0799,0,.5],95:[.35,.09444,.08616,0,.5],97:[0,.44444,.00981,0,.48056],98:[0,.69444,.03057,0,.51667],99:[0,.44444,.08336,0,.44445],100:[0,.69444,.09483,0,.51667],101:[0,.44444,.06778,0,.44445],102:[0,.69444,.21705,0,.30556],103:[.19444,.44444,.10836,0,.5],104:[0,.69444,.01778,0,.51667],105:[0,.67937,.09718,0,.23889],106:[.19444,.67937,.09162,0,.26667],107:[0,.69444,.08336,0,.48889],108:[0,.69444,.09483,0,.23889],109:[0,.44444,.01778,0,.79445],110:[0,.44444,.01778,0,.51667],111:[0,.44444,.06613,0,.5],112:[.19444,.44444,.0389,0,.51667],113:[.19444,.44444,.04169,0,.51667],114:[0,.44444,.10836,0,.34167],115:[0,.44444,.0778,0,.38333],116:[0,.57143,.07225,0,.36111],117:[0,.44444,.04169,0,.51667],118:[0,.44444,.10836,0,.46111],119:[0,.44444,.10836,0,.68334],120:[0,.44444,.09169,0,.46111],121:[.19444,.44444,.10836,0,.46111],122:[0,.44444,.08752,0,.43472],126:[.35,.32659,.08826,0,.5],168:[0,.67937,.06385,0,.5],176:[0,.69444,0,0,.73752],184:[.17014,0,0,0,.44445],305:[0,.44444,.04169,0,.23889],567:[.19444,.44444,.04169,0,.26667],710:[0,.69444,.0799,0,.5],711:[0,.63194,.08432,0,.5],713:[0,.60889,.08776,0,.5],714:[0,.69444,.09205,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,.09483,0,.5],729:[0,.67937,.07774,0,.27778],730:[0,.69444,0,0,.73752],732:[0,.67659,.08826,0,.5],733:[0,.69444,.09205,0,.5],915:[0,.69444,.13372,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,.07555,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,.12816,0,.66667],928:[0,.69444,.08094,0,.70834],931:[0,.69444,.11983,0,.72222],933:[0,.69444,.09031,0,.77778],934:[0,.69444,.04603,0,.72222],936:[0,.69444,.09031,0,.77778],937:[0,.69444,.08293,0,.72222],8211:[0,.44444,.08616,0,.5],8212:[0,.44444,.08616,0,1],8216:[0,.69444,.07816,0,.27778],8217:[0,.69444,.07816,0,.27778],8220:[0,.69444,.14205,0,.5],8221:[0,.69444,.00316,0,.5]},\"SansSerif-Regular\":{33:[0,.69444,0,0,.31945],34:[0,.69444,0,0,.5],35:[.19444,.69444,0,0,.83334],36:[.05556,.75,0,0,.5],37:[.05556,.75,0,0,.83334],38:[0,.69444,0,0,.75834],39:[0,.69444,0,0,.27778],40:[.25,.75,0,0,.38889],41:[.25,.75,0,0,.38889],42:[0,.75,0,0,.5],43:[.08333,.58333,0,0,.77778],44:[.125,.08333,0,0,.27778],45:[0,.44444,0,0,.33333],46:[0,.08333,0,0,.27778],47:[.25,.75,0,0,.5],48:[0,.65556,0,0,.5],49:[0,.65556,0,0,.5],50:[0,.65556,0,0,.5],51:[0,.65556,0,0,.5],52:[0,.65556,0,0,.5],53:[0,.65556,0,0,.5],54:[0,.65556,0,0,.5],55:[0,.65556,0,0,.5],56:[0,.65556,0,0,.5],57:[0,.65556,0,0,.5],58:[0,.44444,0,0,.27778],59:[.125,.44444,0,0,.27778],61:[-.13,.37,0,0,.77778],63:[0,.69444,0,0,.47222],64:[0,.69444,0,0,.66667],65:[0,.69444,0,0,.66667],66:[0,.69444,0,0,.66667],67:[0,.69444,0,0,.63889],68:[0,.69444,0,0,.72223],69:[0,.69444,0,0,.59722],70:[0,.69444,0,0,.56945],71:[0,.69444,0,0,.66667],72:[0,.69444,0,0,.70834],73:[0,.69444,0,0,.27778],74:[0,.69444,0,0,.47222],75:[0,.69444,0,0,.69445],76:[0,.69444,0,0,.54167],77:[0,.69444,0,0,.875],78:[0,.69444,0,0,.70834],79:[0,.69444,0,0,.73611],80:[0,.69444,0,0,.63889],81:[.125,.69444,0,0,.73611],82:[0,.69444,0,0,.64584],83:[0,.69444,0,0,.55556],84:[0,.69444,0,0,.68056],85:[0,.69444,0,0,.6875],86:[0,.69444,.01389,0,.66667],87:[0,.69444,.01389,0,.94445],88:[0,.69444,0,0,.66667],89:[0,.69444,.025,0,.66667],90:[0,.69444,0,0,.61111],91:[.25,.75,0,0,.28889],93:[.25,.75,0,0,.28889],94:[0,.69444,0,0,.5],95:[.35,.09444,.02778,0,.5],97:[0,.44444,0,0,.48056],98:[0,.69444,0,0,.51667],99:[0,.44444,0,0,.44445],100:[0,.69444,0,0,.51667],101:[0,.44444,0,0,.44445],102:[0,.69444,.06944,0,.30556],103:[.19444,.44444,.01389,0,.5],104:[0,.69444,0,0,.51667],105:[0,.67937,0,0,.23889],106:[.19444,.67937,0,0,.26667],107:[0,.69444,0,0,.48889],108:[0,.69444,0,0,.23889],109:[0,.44444,0,0,.79445],110:[0,.44444,0,0,.51667],111:[0,.44444,0,0,.5],112:[.19444,.44444,0,0,.51667],113:[.19444,.44444,0,0,.51667],114:[0,.44444,.01389,0,.34167],115:[0,.44444,0,0,.38333],116:[0,.57143,0,0,.36111],117:[0,.44444,0,0,.51667],118:[0,.44444,.01389,0,.46111],119:[0,.44444,.01389,0,.68334],120:[0,.44444,0,0,.46111],121:[.19444,.44444,.01389,0,.46111],122:[0,.44444,0,0,.43472],126:[.35,.32659,0,0,.5],168:[0,.67937,0,0,.5],176:[0,.69444,0,0,.66667],184:[.17014,0,0,0,.44445],305:[0,.44444,0,0,.23889],567:[.19444,.44444,0,0,.26667],710:[0,.69444,0,0,.5],711:[0,.63194,0,0,.5],713:[0,.60889,0,0,.5],714:[0,.69444,0,0,.5],715:[0,.69444,0,0,.5],728:[0,.69444,0,0,.5],729:[0,.67937,0,0,.27778],730:[0,.69444,0,0,.66667],732:[0,.67659,0,0,.5],733:[0,.69444,0,0,.5],915:[0,.69444,0,0,.54167],916:[0,.69444,0,0,.83334],920:[0,.69444,0,0,.77778],923:[0,.69444,0,0,.61111],926:[0,.69444,0,0,.66667],928:[0,.69444,0,0,.70834],931:[0,.69444,0,0,.72222],933:[0,.69444,0,0,.77778],934:[0,.69444,0,0,.72222],936:[0,.69444,0,0,.77778],937:[0,.69444,0,0,.72222],8211:[0,.44444,.02778,0,.5],8212:[0,.44444,.02778,0,1],8216:[0,.69444,0,0,.27778],8217:[0,.69444,0,0,.27778],8220:[0,.69444,0,0,.5],8221:[0,.69444,0,0,.5]},\"Script-Regular\":{65:[0,.7,.22925,0,.80253],66:[0,.7,.04087,0,.90757],67:[0,.7,.1689,0,.66619],68:[0,.7,.09371,0,.77443],69:[0,.7,.18583,0,.56162],70:[0,.7,.13634,0,.89544],71:[0,.7,.17322,0,.60961],72:[0,.7,.29694,0,.96919],73:[0,.7,.19189,0,.80907],74:[.27778,.7,.19189,0,1.05159],75:[0,.7,.31259,0,.91364],76:[0,.7,.19189,0,.87373],77:[0,.7,.15981,0,1.08031],78:[0,.7,.3525,0,.9015],79:[0,.7,.08078,0,.73787],80:[0,.7,.08078,0,1.01262],81:[0,.7,.03305,0,.88282],82:[0,.7,.06259,0,.85],83:[0,.7,.19189,0,.86767],84:[0,.7,.29087,0,.74697],85:[0,.7,.25815,0,.79996],86:[0,.7,.27523,0,.62204],87:[0,.7,.27523,0,.80532],88:[0,.7,.26006,0,.94445],89:[0,.7,.2939,0,.70961],90:[0,.7,.24037,0,.8212]},\"Size1-Regular\":{40:[.35001,.85,0,0,.45834],41:[.35001,.85,0,0,.45834],47:[.35001,.85,0,0,.57778],91:[.35001,.85,0,0,.41667],92:[.35001,.85,0,0,.57778],93:[.35001,.85,0,0,.41667],123:[.35001,.85,0,0,.58334],125:[.35001,.85,0,0,.58334],710:[0,.72222,0,0,.55556],732:[0,.72222,0,0,.55556],770:[0,.72222,0,0,.55556],771:[0,.72222,0,0,.55556],8214:[-99e-5,.601,0,0,.77778],8593:[1e-5,.6,0,0,.66667],8595:[1e-5,.6,0,0,.66667],8657:[1e-5,.6,0,0,.77778],8659:[1e-5,.6,0,0,.77778],8719:[.25001,.75,0,0,.94445],8720:[.25001,.75,0,0,.94445],8721:[.25001,.75,0,0,1.05556],8730:[.35001,.85,0,0,1],8739:[-.00599,.606,0,0,.33333],8741:[-.00599,.606,0,0,.55556],8747:[.30612,.805,.19445,0,.47222],8748:[.306,.805,.19445,0,.47222],8749:[.306,.805,.19445,0,.47222],8750:[.30612,.805,.19445,0,.47222],8896:[.25001,.75,0,0,.83334],8897:[.25001,.75,0,0,.83334],8898:[.25001,.75,0,0,.83334],8899:[.25001,.75,0,0,.83334],8968:[.35001,.85,0,0,.47222],8969:[.35001,.85,0,0,.47222],8970:[.35001,.85,0,0,.47222],8971:[.35001,.85,0,0,.47222],9168:[-99e-5,.601,0,0,.66667],10216:[.35001,.85,0,0,.47222],10217:[.35001,.85,0,0,.47222],10752:[.25001,.75,0,0,1.11111],10753:[.25001,.75,0,0,1.11111],10754:[.25001,.75,0,0,1.11111],10756:[.25001,.75,0,0,.83334],10758:[.25001,.75,0,0,.83334]},\"Size2-Regular\":{40:[.65002,1.15,0,0,.59722],41:[.65002,1.15,0,0,.59722],47:[.65002,1.15,0,0,.81111],91:[.65002,1.15,0,0,.47222],92:[.65002,1.15,0,0,.81111],93:[.65002,1.15,0,0,.47222],123:[.65002,1.15,0,0,.66667],125:[.65002,1.15,0,0,.66667],710:[0,.75,0,0,1],732:[0,.75,0,0,1],770:[0,.75,0,0,1],771:[0,.75,0,0,1],8719:[.55001,1.05,0,0,1.27778],8720:[.55001,1.05,0,0,1.27778],8721:[.55001,1.05,0,0,1.44445],8730:[.65002,1.15,0,0,1],8747:[.86225,1.36,.44445,0,.55556],8748:[.862,1.36,.44445,0,.55556],8749:[.862,1.36,.44445,0,.55556],8750:[.86225,1.36,.44445,0,.55556],8896:[.55001,1.05,0,0,1.11111],8897:[.55001,1.05,0,0,1.11111],8898:[.55001,1.05,0,0,1.11111],8899:[.55001,1.05,0,0,1.11111],8968:[.65002,1.15,0,0,.52778],8969:[.65002,1.15,0,0,.52778],8970:[.65002,1.15,0,0,.52778],8971:[.65002,1.15,0,0,.52778],10216:[.65002,1.15,0,0,.61111],10217:[.65002,1.15,0,0,.61111],10752:[.55001,1.05,0,0,1.51112],10753:[.55001,1.05,0,0,1.51112],10754:[.55001,1.05,0,0,1.51112],10756:[.55001,1.05,0,0,1.11111],10758:[.55001,1.05,0,0,1.11111]},\"Size3-Regular\":{40:[.95003,1.45,0,0,.73611],41:[.95003,1.45,0,0,.73611],47:[.95003,1.45,0,0,1.04445],91:[.95003,1.45,0,0,.52778],92:[.95003,1.45,0,0,1.04445],93:[.95003,1.45,0,0,.52778],123:[.95003,1.45,0,0,.75],125:[.95003,1.45,0,0,.75],710:[0,.75,0,0,1.44445],732:[0,.75,0,0,1.44445],770:[0,.75,0,0,1.44445],771:[0,.75,0,0,1.44445],8730:[.95003,1.45,0,0,1],8968:[.95003,1.45,0,0,.58334],8969:[.95003,1.45,0,0,.58334],8970:[.95003,1.45,0,0,.58334],8971:[.95003,1.45,0,0,.58334],10216:[.95003,1.45,0,0,.75],10217:[.95003,1.45,0,0,.75]},\"Size4-Regular\":{40:[1.25003,1.75,0,0,.79167],41:[1.25003,1.75,0,0,.79167],47:[1.25003,1.75,0,0,1.27778],91:[1.25003,1.75,0,0,.58334],92:[1.25003,1.75,0,0,1.27778],93:[1.25003,1.75,0,0,.58334],123:[1.25003,1.75,0,0,.80556],125:[1.25003,1.75,0,0,.80556],710:[0,.825,0,0,1.8889],732:[0,.825,0,0,1.8889],770:[0,.825,0,0,1.8889],771:[0,.825,0,0,1.8889],8730:[1.25003,1.75,0,0,1],8968:[1.25003,1.75,0,0,.63889],8969:[1.25003,1.75,0,0,.63889],8970:[1.25003,1.75,0,0,.63889],8971:[1.25003,1.75,0,0,.63889],9115:[.64502,1.155,0,0,.875],9116:[1e-5,.6,0,0,.875],9117:[.64502,1.155,0,0,.875],9118:[.64502,1.155,0,0,.875],9119:[1e-5,.6,0,0,.875],9120:[.64502,1.155,0,0,.875],9121:[.64502,1.155,0,0,.66667],9122:[-99e-5,.601,0,0,.66667],9123:[.64502,1.155,0,0,.66667],9124:[.64502,1.155,0,0,.66667],9125:[-99e-5,.601,0,0,.66667],9126:[.64502,1.155,0,0,.66667],9127:[1e-5,.9,0,0,.88889],9128:[.65002,1.15,0,0,.88889],9129:[.90001,0,0,0,.88889],9130:[0,.3,0,0,.88889],9131:[1e-5,.9,0,0,.88889],9132:[.65002,1.15,0,0,.88889],9133:[.90001,0,0,0,.88889],9143:[.88502,.915,0,0,1.05556],10216:[1.25003,1.75,0,0,.80556],10217:[1.25003,1.75,0,0,.80556],57344:[-.00499,.605,0,0,1.05556],57345:[-.00499,.605,0,0,1.05556],57680:[0,.12,0,0,.45],57681:[0,.12,0,0,.45],57682:[0,.12,0,0,.45],57683:[0,.12,0,0,.45]},\"Typewriter-Regular\":{32:[0,0,0,0,.525],33:[0,.61111,0,0,.525],34:[0,.61111,0,0,.525],35:[0,.61111,0,0,.525],36:[.08333,.69444,0,0,.525],37:[.08333,.69444,0,0,.525],38:[0,.61111,0,0,.525],39:[0,.61111,0,0,.525],40:[.08333,.69444,0,0,.525],41:[.08333,.69444,0,0,.525],42:[0,.52083,0,0,.525],43:[-.08056,.53055,0,0,.525],44:[.13889,.125,0,0,.525],45:[-.08056,.53055,0,0,.525],46:[0,.125,0,0,.525],47:[.08333,.69444,0,0,.525],48:[0,.61111,0,0,.525],49:[0,.61111,0,0,.525],50:[0,.61111,0,0,.525],51:[0,.61111,0,0,.525],52:[0,.61111,0,0,.525],53:[0,.61111,0,0,.525],54:[0,.61111,0,0,.525],55:[0,.61111,0,0,.525],56:[0,.61111,0,0,.525],57:[0,.61111,0,0,.525],58:[0,.43056,0,0,.525],59:[.13889,.43056,0,0,.525],60:[-.05556,.55556,0,0,.525],61:[-.19549,.41562,0,0,.525],62:[-.05556,.55556,0,0,.525],63:[0,.61111,0,0,.525],64:[0,.61111,0,0,.525],65:[0,.61111,0,0,.525],66:[0,.61111,0,0,.525],67:[0,.61111,0,0,.525],68:[0,.61111,0,0,.525],69:[0,.61111,0,0,.525],70:[0,.61111,0,0,.525],71:[0,.61111,0,0,.525],72:[0,.61111,0,0,.525],73:[0,.61111,0,0,.525],74:[0,.61111,0,0,.525],75:[0,.61111,0,0,.525],76:[0,.61111,0,0,.525],77:[0,.61111,0,0,.525],78:[0,.61111,0,0,.525],79:[0,.61111,0,0,.525],80:[0,.61111,0,0,.525],81:[.13889,.61111,0,0,.525],82:[0,.61111,0,0,.525],83:[0,.61111,0,0,.525],84:[0,.61111,0,0,.525],85:[0,.61111,0,0,.525],86:[0,.61111,0,0,.525],87:[0,.61111,0,0,.525],88:[0,.61111,0,0,.525],89:[0,.61111,0,0,.525],90:[0,.61111,0,0,.525],91:[.08333,.69444,0,0,.525],92:[.08333,.69444,0,0,.525],93:[.08333,.69444,0,0,.525],94:[0,.61111,0,0,.525],95:[.09514,0,0,0,.525],96:[0,.61111,0,0,.525],97:[0,.43056,0,0,.525],98:[0,.61111,0,0,.525],99:[0,.43056,0,0,.525],100:[0,.61111,0,0,.525],101:[0,.43056,0,0,.525],102:[0,.61111,0,0,.525],103:[.22222,.43056,0,0,.525],104:[0,.61111,0,0,.525],105:[0,.61111,0,0,.525],106:[.22222,.61111,0,0,.525],107:[0,.61111,0,0,.525],108:[0,.61111,0,0,.525],109:[0,.43056,0,0,.525],110:[0,.43056,0,0,.525],111:[0,.43056,0,0,.525],112:[.22222,.43056,0,0,.525],113:[.22222,.43056,0,0,.525],114:[0,.43056,0,0,.525],115:[0,.43056,0,0,.525],116:[0,.55358,0,0,.525],117:[0,.43056,0,0,.525],118:[0,.43056,0,0,.525],119:[0,.43056,0,0,.525],120:[0,.43056,0,0,.525],121:[.22222,.43056,0,0,.525],122:[0,.43056,0,0,.525],123:[.08333,.69444,0,0,.525],124:[.08333,.69444,0,0,.525],125:[.08333,.69444,0,0,.525],126:[0,.61111,0,0,.525],127:[0,.61111,0,0,.525],160:[0,0,0,0,.525],176:[0,.61111,0,0,.525],184:[.19445,0,0,0,.525],305:[0,.43056,0,0,.525],567:[.22222,.43056,0,0,.525],711:[0,.56597,0,0,.525],713:[0,.56555,0,0,.525],714:[0,.61111,0,0,.525],715:[0,.61111,0,0,.525],728:[0,.61111,0,0,.525],730:[0,.61111,0,0,.525],770:[0,.61111,0,0,.525],771:[0,.61111,0,0,.525],776:[0,.61111,0,0,.525],915:[0,.61111,0,0,.525],916:[0,.61111,0,0,.525],920:[0,.61111,0,0,.525],923:[0,.61111,0,0,.525],926:[0,.61111,0,0,.525],928:[0,.61111,0,0,.525],931:[0,.61111,0,0,.525],933:[0,.61111,0,0,.525],934:[0,.61111,0,0,.525],936:[0,.61111,0,0,.525],937:[0,.61111,0,0,.525],8216:[0,.61111,0,0,.525],8217:[0,.61111,0,0,.525],8242:[0,.61111,0,0,.525],9251:[.11111,.21944,0,0,.525]}},D={slant:[.25,.25,.25],space:[0,0,0],stretch:[0,0,0],shrink:[0,0,0],xHeight:[.431,.431,.431],quad:[1,1.171,1.472],extraSpace:[0,0,0],num1:[.677,.732,.925],num2:[.394,.384,.387],num3:[.444,.471,.504],denom1:[.686,.752,1.025],denom2:[.345,.344,.532],sup1:[.413,.503,.504],sup2:[.363,.431,.404],sup3:[.289,.286,.294],sub1:[.15,.143,.2],sub2:[.247,.286,.4],supDrop:[.386,.353,.494],subDrop:[.05,.071,.1],delim1:[2.39,1.7,1.98],delim2:[1.01,1.157,1.42],axisHeight:[.25,.25,.25],defaultRuleThickness:[.04,.049,.049],bigOpSpacing1:[.111,.111,.111],bigOpSpacing2:[.166,.166,.166],bigOpSpacing3:[.2,.2,.2],bigOpSpacing4:[.6,.611,.611],bigOpSpacing5:[.1,.143,.143],sqrtRuleThickness:[.04,.04,.04],ptPerEm:[10,10,10],doubleRuleSep:[.2,.2,.2]},F={\"\\xc5\":\"A\",\"\\xc7\":\"C\",\"\\xd0\":\"D\",\"\\xde\":\"o\",\"\\xe5\":\"a\",\"\\xe7\":\"c\",\"\\xf0\":\"d\",\"\\xfe\":\"o\",\"\\u0410\":\"A\",\"\\u0411\":\"B\",\"\\u0412\":\"B\",\"\\u0413\":\"F\",\"\\u0414\":\"A\",\"\\u0415\":\"E\",\"\\u0416\":\"K\",\"\\u0417\":\"3\",\"\\u0418\":\"N\",\"\\u0419\":\"N\",\"\\u041a\":\"K\",\"\\u041b\":\"N\",\"\\u041c\":\"M\",\"\\u041d\":\"H\",\"\\u041e\":\"O\",\"\\u041f\":\"N\",\"\\u0420\":\"P\",\"\\u0421\":\"C\",\"\\u0422\":\"T\",\"\\u0423\":\"y\",\"\\u0424\":\"O\",\"\\u0425\":\"X\",\"\\u0426\":\"U\",\"\\u0427\":\"h\",\"\\u0428\":\"W\",\"\\u0429\":\"W\",\"\\u042a\":\"B\",\"\\u042b\":\"X\",\"\\u042c\":\"B\",\"\\u042d\":\"3\",\"\\u042e\":\"X\",\"\\u042f\":\"R\",\"\\u0430\":\"a\",\"\\u0431\":\"b\",\"\\u0432\":\"a\",\"\\u0433\":\"r\",\"\\u0434\":\"y\",\"\\u0435\":\"e\",\"\\u0436\":\"m\",\"\\u0437\":\"e\",\"\\u0438\":\"n\",\"\\u0439\":\"n\",\"\\u043a\":\"n\",\"\\u043b\":\"n\",\"\\u043c\":\"m\",\"\\u043d\":\"n\",\"\\u043e\":\"o\",\"\\u043f\":\"n\",\"\\u0440\":\"p\",\"\\u0441\":\"c\",\"\\u0442\":\"o\",\"\\u0443\":\"y\",\"\\u0444\":\"b\",\"\\u0445\":\"x\",\"\\u0446\":\"n\",\"\\u0447\":\"n\",\"\\u0448\":\"w\",\"\\u0449\":\"w\",\"\\u044a\":\"a\",\"\\u044b\":\"m\",\"\\u044c\":\"a\",\"\\u044d\":\"e\",\"\\u044e\":\"m\",\"\\u044f\":\"r\"};function V(t,e,r){if(!P[e])throw new Error(\"Font metrics not found for font: \"+e+\".\");var a=t.charCodeAt(0),n=P[e][a];if(!n&&t[0]in F&&(a=F[t[0]].charCodeAt(0),n=P[e][a]),n||\"text\"!==r||z(a)&&(n=P[e][77]),n)return{depth:n[0],height:n[1],italic:n[2],skew:n[3],width:n[4]}}var U={};var G={bin:1,close:1,inner:1,open:1,punct:1,rel:1},X={\"accent-token\":1,mathord:1,\"op-token\":1,spacing:1,textord:1},Y={math:{},text:{}},_=Y;function W(t,e,r,a,n,o){Y[t][n]={font:e,group:r,replace:a},o&&a&&(Y[t][a]=Y[t][n])}var j=\"main\",$=\"ams\",Z=\"bin\",K=\"mathord\",J=\"op-token\",Q=\"rel\";W(\"math\",j,Q,\"\\u2261\",\"\\\\equiv\",!0),W(\"math\",j,Q,\"\\u227a\",\"\\\\prec\",!0),W(\"math\",j,Q,\"\\u227b\",\"\\\\succ\",!0),W(\"math\",j,Q,\"\\u223c\",\"\\\\sim\",!0),W(\"math\",j,Q,\"\\u22a5\",\"\\\\perp\"),W(\"math\",j,Q,\"\\u2aaf\",\"\\\\preceq\",!0),W(\"math\",j,Q,\"\\u2ab0\",\"\\\\succeq\",!0),W(\"math\",j,Q,\"\\u2243\",\"\\\\simeq\",!0),W(\"math\",j,Q,\"\\u2223\",\"\\\\mid\",!0),W(\"math\",j,Q,\"\\u226a\",\"\\\\ll\",!0),W(\"math\",j,Q,\"\\u226b\",\"\\\\gg\",!0),W(\"math\",j,Q,\"\\u224d\",\"\\\\asymp\",!0),W(\"math\",j,Q,\"\\u2225\",\"\\\\parallel\"),W(\"math\",j,Q,\"\\u22c8\",\"\\\\bowtie\",!0),W(\"math\",j,Q,\"\\u2323\",\"\\\\smile\",!0),W(\"math\",j,Q,\"\\u2291\",\"\\\\sqsubseteq\",!0),W(\"math\",j,Q,\"\\u2292\",\"\\\\sqsupseteq\",!0),W(\"math\",j,Q,\"\\u2250\",\"\\\\doteq\",!0),W(\"math\",j,Q,\"\\u2322\",\"\\\\frown\",!0),W(\"math\",j,Q,\"\\u220b\",\"\\\\ni\",!0),W(\"math\",j,Q,\"\\u221d\",\"\\\\propto\",!0),W(\"math\",j,Q,\"\\u22a2\",\"\\\\vdash\",!0),W(\"math\",j,Q,\"\\u22a3\",\"\\\\dashv\",!0),W(\"math\",j,Q,\"\\u220b\",\"\\\\owns\"),W(\"math\",j,\"punct\",\".\",\"\\\\ldotp\"),W(\"math\",j,\"punct\",\"\\u22c5\",\"\\\\cdotp\"),W(\"math\",j,\"textord\",\"#\",\"\\\\#\"),W(\"text\",j,\"textord\",\"#\",\"\\\\#\"),W(\"math\",j,\"textord\",\"&\",\"\\\\&\"),W(\"text\",j,\"textord\",\"&\",\"\\\\&\"),W(\"math\",j,\"textord\",\"\\u2135\",\"\\\\aleph\",!0),W(\"math\",j,\"textord\",\"\\u2200\",\"\\\\forall\",!0),W(\"math\",j,\"textord\",\"\\u210f\",\"\\\\hbar\",!0),W(\"math\",j,\"textord\",\"\\u2203\",\"\\\\exists\",!0),W(\"math\",j,\"textord\",\"\\u2207\",\"\\\\nabla\",!0),W(\"math\",j,\"textord\",\"\\u266d\",\"\\\\flat\",!0),W(\"math\",j,\"textord\",\"\\u2113\",\"\\\\ell\",!0),W(\"math\",j,\"textord\",\"\\u266e\",\"\\\\natural\",!0),W(\"math\",j,\"textord\",\"\\u2663\",\"\\\\clubsuit\",!0),W(\"math\",j,\"textord\",\"\\u2118\",\"\\\\wp\",!0),W(\"math\",j,\"textord\",\"\\u266f\",\"\\\\sharp\",!0),W(\"math\",j,\"textord\",\"\\u2662\",\"\\\\diamondsuit\",!0),W(\"math\",j,\"textord\",\"\\u211c\",\"\\\\Re\",!0),W(\"math\",j,\"textord\",\"\\u2661\",\"\\\\heartsuit\",!0),W(\"math\",j,\"textord\",\"\\u2111\",\"\\\\Im\",!0),W(\"math\",j,\"textord\",\"\\u2660\",\"\\\\spadesuit\",!0),W(\"text\",j,\"textord\",\"\\xa7\",\"\\\\S\",!0),W(\"text\",j,\"textord\",\"\\xb6\",\"\\\\P\",!0),W(\"math\",j,\"textord\",\"\\u2020\",\"\\\\dag\"),W(\"text\",j,\"textord\",\"\\u2020\",\"\\\\dag\"),W(\"text\",j,\"textord\",\"\\u2020\",\"\\\\textdagger\"),W(\"math\",j,\"textord\",\"\\u2021\",\"\\\\ddag\"),W(\"text\",j,\"textord\",\"\\u2021\",\"\\\\ddag\"),W(\"text\",j,\"textord\",\"\\u2021\",\"\\\\textdaggerdbl\"),W(\"math\",j,\"close\",\"\\u23b1\",\"\\\\rmoustache\",!0),W(\"math\",j,\"open\",\"\\u23b0\",\"\\\\lmoustache\",!0),W(\"math\",j,\"close\",\"\\u27ef\",\"\\\\rgroup\",!0),W(\"math\",j,\"open\",\"\\u27ee\",\"\\\\lgroup\",!0),W(\"math\",j,Z,\"\\u2213\",\"\\\\mp\",!0),W(\"math\",j,Z,\"\\u2296\",\"\\\\ominus\",!0),W(\"math\",j,Z,\"\\u228e\",\"\\\\uplus\",!0),W(\"math\",j,Z,\"\\u2293\",\"\\\\sqcap\",!0),W(\"math\",j,Z,\"\\u2217\",\"\\\\ast\"),W(\"math\",j,Z,\"\\u2294\",\"\\\\sqcup\",!0),W(\"math\",j,Z,\"\\u25ef\",\"\\\\bigcirc\"),W(\"math\",j,Z,\"\\u2219\",\"\\\\bullet\"),W(\"math\",j,Z,\"\\u2021\",\"\\\\ddagger\"),W(\"math\",j,Z,\"\\u2240\",\"\\\\wr\",!0),W(\"math\",j,Z,\"\\u2a3f\",\"\\\\amalg\"),W(\"math\",j,Z,\"&\",\"\\\\And\"),W(\"math\",j,Q,\"\\u27f5\",\"\\\\longleftarrow\",!0),W(\"math\",j,Q,\"\\u21d0\",\"\\\\Leftarrow\",!0),W(\"math\",j,Q,\"\\u27f8\",\"\\\\Longleftarrow\",!0),W(\"math\",j,Q,\"\\u27f6\",\"\\\\longrightarrow\",!0),W(\"math\",j,Q,\"\\u21d2\",\"\\\\Rightarrow\",!0),W(\"math\",j,Q,\"\\u27f9\",\"\\\\Longrightarrow\",!0),W(\"math\",j,Q,\"\\u2194\",\"\\\\leftrightarrow\",!0),W(\"math\",j,Q,\"\\u27f7\",\"\\\\longleftrightarrow\",!0),W(\"math\",j,Q,\"\\u21d4\",\"\\\\Leftrightarrow\",!0),W(\"math\",j,Q,\"\\u27fa\",\"\\\\Longleftrightarrow\",!0),W(\"math\",j,Q,\"\\u21a6\",\"\\\\mapsto\",!0),W(\"math\",j,Q,\"\\u27fc\",\"\\\\longmapsto\",!0),W(\"math\",j,Q,\"\\u2197\",\"\\\\nearrow\",!0),W(\"math\",j,Q,\"\\u21a9\",\"\\\\hookleftarrow\",!0),W(\"math\",j,Q,\"\\u21aa\",\"\\\\hookrightarrow\",!0),W(\"math\",j,Q,\"\\u2198\",\"\\\\searrow\",!0),W(\"math\",j,Q,\"\\u21bc\",\"\\\\leftharpoonup\",!0),W(\"math\",j,Q,\"\\u21c0\",\"\\\\rightharpoonup\",!0),W(\"math\",j,Q,\"\\u2199\",\"\\\\swarrow\",!0),W(\"math\",j,Q,\"\\u21bd\",\"\\\\leftharpoondown\",!0),W(\"math\",j,Q,\"\\u21c1\",\"\\\\rightharpoondown\",!0),W(\"math\",j,Q,\"\\u2196\",\"\\\\nwarrow\",!0),W(\"math\",j,Q,\"\\u21cc\",\"\\\\rightleftharpoons\",!0),W(\"math\",$,Q,\"\\u226e\",\"\\\\nless\",!0),W(\"math\",$,Q,\"\\ue010\",\"\\\\@nleqslant\"),W(\"math\",$,Q,\"\\ue011\",\"\\\\@nleqq\"),W(\"math\",$,Q,\"\\u2a87\",\"\\\\lneq\",!0),W(\"math\",$,Q,\"\\u2268\",\"\\\\lneqq\",!0),W(\"math\",$,Q,\"\\ue00c\",\"\\\\@lvertneqq\"),W(\"math\",$,Q,\"\\u22e6\",\"\\\\lnsim\",!0),W(\"math\",$,Q,\"\\u2a89\",\"\\\\lnapprox\",!0),W(\"math\",$,Q,\"\\u2280\",\"\\\\nprec\",!0),W(\"math\",$,Q,\"\\u22e0\",\"\\\\npreceq\",!0),W(\"math\",$,Q,\"\\u22e8\",\"\\\\precnsim\",!0),W(\"math\",$,Q,\"\\u2ab9\",\"\\\\precnapprox\",!0),W(\"math\",$,Q,\"\\u2241\",\"\\\\nsim\",!0),W(\"math\",$,Q,\"\\ue006\",\"\\\\@nshortmid\"),W(\"math\",$,Q,\"\\u2224\",\"\\\\nmid\",!0),W(\"math\",$,Q,\"\\u22ac\",\"\\\\nvdash\",!0),W(\"math\",$,Q,\"\\u22ad\",\"\\\\nvDash\",!0),W(\"math\",$,Q,\"\\u22ea\",\"\\\\ntriangleleft\"),W(\"math\",$,Q,\"\\u22ec\",\"\\\\ntrianglelefteq\",!0),W(\"math\",$,Q,\"\\u228a\",\"\\\\subsetneq\",!0),W(\"math\",$,Q,\"\\ue01a\",\"\\\\@varsubsetneq\"),W(\"math\",$,Q,\"\\u2acb\",\"\\\\subsetneqq\",!0),W(\"math\",$,Q,\"\\ue017\",\"\\\\@varsubsetneqq\"),W(\"math\",$,Q,\"\\u226f\",\"\\\\ngtr\",!0),W(\"math\",$,Q,\"\\ue00f\",\"\\\\@ngeqslant\"),W(\"math\",$,Q,\"\\ue00e\",\"\\\\@ngeqq\"),W(\"math\",$,Q,\"\\u2a88\",\"\\\\gneq\",!0),W(\"math\",$,Q,\"\\u2269\",\"\\\\gneqq\",!0),W(\"math\",$,Q,\"\\ue00d\",\"\\\\@gvertneqq\"),W(\"math\",$,Q,\"\\u22e7\",\"\\\\gnsim\",!0),W(\"math\",$,Q,\"\\u2a8a\",\"\\\\gnapprox\",!0),W(\"math\",$,Q,\"\\u2281\",\"\\\\nsucc\",!0),W(\"math\",$,Q,\"\\u22e1\",\"\\\\nsucceq\",!0),W(\"math\",$,Q,\"\\u22e9\",\"\\\\succnsim\",!0),W(\"math\",$,Q,\"\\u2aba\",\"\\\\succnapprox\",!0),W(\"math\",$,Q,\"\\u2246\",\"\\\\ncong\",!0),W(\"math\",$,Q,\"\\ue007\",\"\\\\@nshortparallel\"),W(\"math\",$,Q,\"\\u2226\",\"\\\\nparallel\",!0),W(\"math\",$,Q,\"\\u22af\",\"\\\\nVDash\",!0),W(\"math\",$,Q,\"\\u22eb\",\"\\\\ntriangleright\"),W(\"math\",$,Q,\"\\u22ed\",\"\\\\ntrianglerighteq\",!0),W(\"math\",$,Q,\"\\ue018\",\"\\\\@nsupseteqq\"),W(\"math\",$,Q,\"\\u228b\",\"\\\\supsetneq\",!0),W(\"math\",$,Q,\"\\ue01b\",\"\\\\@varsupsetneq\"),W(\"math\",$,Q,\"\\u2acc\",\"\\\\supsetneqq\",!0),W(\"math\",$,Q,\"\\ue019\",\"\\\\@varsupsetneqq\"),W(\"math\",$,Q,\"\\u22ae\",\"\\\\nVdash\",!0),W(\"math\",$,Q,\"\\u2ab5\",\"\\\\precneqq\",!0),W(\"math\",$,Q,\"\\u2ab6\",\"\\\\succneqq\",!0),W(\"math\",$,Q,\"\\ue016\",\"\\\\@nsubseteqq\"),W(\"math\",$,Z,\"\\u22b4\",\"\\\\unlhd\"),W(\"math\",$,Z,\"\\u22b5\",\"\\\\unrhd\"),W(\"math\",$,Q,\"\\u219a\",\"\\\\nleftarrow\",!0),W(\"math\",$,Q,\"\\u219b\",\"\\\\nrightarrow\",!0),W(\"math\",$,Q,\"\\u21cd\",\"\\\\nLeftarrow\",!0),W(\"math\",$,Q,\"\\u21cf\",\"\\\\nRightarrow\",!0),W(\"math\",$,Q,\"\\u21ae\",\"\\\\nleftrightarrow\",!0),W(\"math\",$,Q,\"\\u21ce\",\"\\\\nLeftrightarrow\",!0),W(\"math\",$,Q,\"\\u25b3\",\"\\\\vartriangle\"),W(\"math\",$,\"textord\",\"\\u210f\",\"\\\\hslash\"),W(\"math\",$,\"textord\",\"\\u25bd\",\"\\\\triangledown\"),W(\"math\",$,\"textord\",\"\\u25ca\",\"\\\\lozenge\"),W(\"math\",$,\"textord\",\"\\u24c8\",\"\\\\circledS\"),W(\"math\",$,\"textord\",\"\\xae\",\"\\\\circledR\"),W(\"text\",$,\"textord\",\"\\xae\",\"\\\\circledR\"),W(\"math\",$,\"textord\",\"\\u2221\",\"\\\\measuredangle\",!0),W(\"math\",$,\"textord\",\"\\u2204\",\"\\\\nexists\"),W(\"math\",$,\"textord\",\"\\u2127\",\"\\\\mho\"),W(\"math\",$,\"textord\",\"\\u2132\",\"\\\\Finv\",!0),W(\"math\",$,\"textord\",\"\\u2141\",\"\\\\Game\",!0),W(\"math\",$,\"textord\",\"\\u2035\",\"\\\\backprime\"),W(\"math\",$,\"textord\",\"\\u25b2\",\"\\\\blacktriangle\"),W(\"math\",$,\"textord\",\"\\u25bc\",\"\\\\blacktriangledown\"),W(\"math\",$,\"textord\",\"\\u25a0\",\"\\\\blacksquare\"),W(\"math\",$,\"textord\",\"\\u29eb\",\"\\\\blacklozenge\"),W(\"math\",$,\"textord\",\"\\u2605\",\"\\\\bigstar\"),W(\"math\",$,\"textord\",\"\\u2222\",\"\\\\sphericalangle\",!0),W(\"math\",$,\"textord\",\"\\u2201\",\"\\\\complement\",!0),W(\"math\",$,\"textord\",\"\\xf0\",\"\\\\eth\",!0),W(\"math\",$,\"textord\",\"\\u2571\",\"\\\\diagup\"),W(\"math\",$,\"textord\",\"\\u2572\",\"\\\\diagdown\"),W(\"math\",$,\"textord\",\"\\u25a1\",\"\\\\square\"),W(\"math\",$,\"textord\",\"\\u25a1\",\"\\\\Box\"),W(\"math\",$,\"textord\",\"\\u25ca\",\"\\\\Diamond\"),W(\"math\",$,\"textord\",\"\\xa5\",\"\\\\yen\",!0),W(\"text\",$,\"textord\",\"\\xa5\",\"\\\\yen\",!0),W(\"math\",$,\"textord\",\"\\u2713\",\"\\\\checkmark\",!0),W(\"text\",$,\"textord\",\"\\u2713\",\"\\\\checkmark\"),W(\"math\",$,\"textord\",\"\\u2136\",\"\\\\beth\",!0),W(\"math\",$,\"textord\",\"\\u2138\",\"\\\\daleth\",!0),W(\"math\",$,\"textord\",\"\\u2137\",\"\\\\gimel\",!0),W(\"math\",$,\"textord\",\"\\u03dd\",\"\\\\digamma\"),W(\"math\",$,\"textord\",\"\\u03f0\",\"\\\\varkappa\"),W(\"math\",$,\"open\",\"\\u250c\",\"\\\\ulcorner\",!0),W(\"math\",$,\"close\",\"\\u2510\",\"\\\\urcorner\",!0),W(\"math\",$,\"open\",\"\\u2514\",\"\\\\llcorner\",!0),W(\"math\",$,\"close\",\"\\u2518\",\"\\\\lrcorner\",!0),W(\"math\",$,Q,\"\\u2266\",\"\\\\leqq\",!0),W(\"math\",$,Q,\"\\u2a7d\",\"\\\\leqslant\",!0),W(\"math\",$,Q,\"\\u2a95\",\"\\\\eqslantless\",!0),W(\"math\",$,Q,\"\\u2272\",\"\\\\lesssim\",!0),W(\"math\",$,Q,\"\\u2a85\",\"\\\\lessapprox\",!0),W(\"math\",$,Q,\"\\u224a\",\"\\\\approxeq\",!0),W(\"math\",$,Z,\"\\u22d6\",\"\\\\lessdot\"),W(\"math\",$,Q,\"\\u22d8\",\"\\\\lll\",!0),W(\"math\",$,Q,\"\\u2276\",\"\\\\lessgtr\",!0),W(\"math\",$,Q,\"\\u22da\",\"\\\\lesseqgtr\",!0),W(\"math\",$,Q,\"\\u2a8b\",\"\\\\lesseqqgtr\",!0),W(\"math\",$,Q,\"\\u2251\",\"\\\\doteqdot\"),W(\"math\",$,Q,\"\\u2253\",\"\\\\risingdotseq\",!0),W(\"math\",$,Q,\"\\u2252\",\"\\\\fallingdotseq\",!0),W(\"math\",$,Q,\"\\u223d\",\"\\\\backsim\",!0),W(\"math\",$,Q,\"\\u22cd\",\"\\\\backsimeq\",!0),W(\"math\",$,Q,\"\\u2ac5\",\"\\\\subseteqq\",!0),W(\"math\",$,Q,\"\\u22d0\",\"\\\\Subset\",!0),W(\"math\",$,Q,\"\\u228f\",\"\\\\sqsubset\",!0),W(\"math\",$,Q,\"\\u227c\",\"\\\\preccurlyeq\",!0),W(\"math\",$,Q,\"\\u22de\",\"\\\\curlyeqprec\",!0),W(\"math\",$,Q,\"\\u227e\",\"\\\\precsim\",!0),W(\"math\",$,Q,\"\\u2ab7\",\"\\\\precapprox\",!0),W(\"math\",$,Q,\"\\u22b2\",\"\\\\vartriangleleft\"),W(\"math\",$,Q,\"\\u22b4\",\"\\\\trianglelefteq\"),W(\"math\",$,Q,\"\\u22a8\",\"\\\\vDash\",!0),W(\"math\",$,Q,\"\\u22aa\",\"\\\\Vvdash\",!0),W(\"math\",$,Q,\"\\u2323\",\"\\\\smallsmile\"),W(\"math\",$,Q,\"\\u2322\",\"\\\\smallfrown\"),W(\"math\",$,Q,\"\\u224f\",\"\\\\bumpeq\",!0),W(\"math\",$,Q,\"\\u224e\",\"\\\\Bumpeq\",!0),W(\"math\",$,Q,\"\\u2267\",\"\\\\geqq\",!0),W(\"math\",$,Q,\"\\u2a7e\",\"\\\\geqslant\",!0),W(\"math\",$,Q,\"\\u2a96\",\"\\\\eqslantgtr\",!0),W(\"math\",$,Q,\"\\u2273\",\"\\\\gtrsim\",!0),W(\"math\",$,Q,\"\\u2a86\",\"\\\\gtrapprox\",!0),W(\"math\",$,Z,\"\\u22d7\",\"\\\\gtrdot\"),W(\"math\",$,Q,\"\\u22d9\",\"\\\\ggg\",!0),W(\"math\",$,Q,\"\\u2277\",\"\\\\gtrless\",!0),W(\"math\",$,Q,\"\\u22db\",\"\\\\gtreqless\",!0),W(\"math\",$,Q,\"\\u2a8c\",\"\\\\gtreqqless\",!0),W(\"math\",$,Q,\"\\u2256\",\"\\\\eqcirc\",!0),W(\"math\",$,Q,\"\\u2257\",\"\\\\circeq\",!0),W(\"math\",$,Q,\"\\u225c\",\"\\\\triangleq\",!0),W(\"math\",$,Q,\"\\u223c\",\"\\\\thicksim\"),W(\"math\",$,Q,\"\\u2248\",\"\\\\thickapprox\"),W(\"math\",$,Q,\"\\u2ac6\",\"\\\\supseteqq\",!0),W(\"math\",$,Q,\"\\u22d1\",\"\\\\Supset\",!0),W(\"math\",$,Q,\"\\u2290\",\"\\\\sqsupset\",!0),W(\"math\",$,Q,\"\\u227d\",\"\\\\succcurlyeq\",!0),W(\"math\",$,Q,\"\\u22df\",\"\\\\curlyeqsucc\",!0),W(\"math\",$,Q,\"\\u227f\",\"\\\\succsim\",!0),W(\"math\",$,Q,\"\\u2ab8\",\"\\\\succapprox\",!0),W(\"math\",$,Q,\"\\u22b3\",\"\\\\vartriangleright\"),W(\"math\",$,Q,\"\\u22b5\",\"\\\\trianglerighteq\"),W(\"math\",$,Q,\"\\u22a9\",\"\\\\Vdash\",!0),W(\"math\",$,Q,\"\\u2223\",\"\\\\shortmid\"),W(\"math\",$,Q,\"\\u2225\",\"\\\\shortparallel\"),W(\"math\",$,Q,\"\\u226c\",\"\\\\between\",!0),W(\"math\",$,Q,\"\\u22d4\",\"\\\\pitchfork\",!0),W(\"math\",$,Q,\"\\u221d\",\"\\\\varpropto\"),W(\"math\",$,Q,\"\\u25c0\",\"\\\\blacktriangleleft\"),W(\"math\",$,Q,\"\\u2234\",\"\\\\therefore\",!0),W(\"math\",$,Q,\"\\u220d\",\"\\\\backepsilon\"),W(\"math\",$,Q,\"\\u25b6\",\"\\\\blacktriangleright\"),W(\"math\",$,Q,\"\\u2235\",\"\\\\because\",!0),W(\"math\",$,Q,\"\\u22d8\",\"\\\\llless\"),W(\"math\",$,Q,\"\\u22d9\",\"\\\\gggtr\"),W(\"math\",$,Z,\"\\u22b2\",\"\\\\lhd\"),W(\"math\",$,Z,\"\\u22b3\",\"\\\\rhd\"),W(\"math\",$,Q,\"\\u2242\",\"\\\\eqsim\",!0),W(\"math\",j,Q,\"\\u22c8\",\"\\\\Join\"),W(\"math\",$,Q,\"\\u2251\",\"\\\\Doteq\",!0),W(\"math\",$,Z,\"\\u2214\",\"\\\\dotplus\",!0),W(\"math\",$,Z,\"\\u2216\",\"\\\\smallsetminus\"),W(\"math\",$,Z,\"\\u22d2\",\"\\\\Cap\",!0),W(\"math\",$,Z,\"\\u22d3\",\"\\\\Cup\",!0),W(\"math\",$,Z,\"\\u2a5e\",\"\\\\doublebarwedge\",!0),W(\"math\",$,Z,\"\\u229f\",\"\\\\boxminus\",!0),W(\"math\",$,Z,\"\\u229e\",\"\\\\boxplus\",!0),W(\"math\",$,Z,\"\\u22c7\",\"\\\\divideontimes\",!0),W(\"math\",$,Z,\"\\u22c9\",\"\\\\ltimes\",!0),W(\"math\",$,Z,\"\\u22ca\",\"\\\\rtimes\",!0),W(\"math\",$,Z,\"\\u22cb\",\"\\\\leftthreetimes\",!0),W(\"math\",$,Z,\"\\u22cc\",\"\\\\rightthreetimes\",!0),W(\"math\",$,Z,\"\\u22cf\",\"\\\\curlywedge\",!0),W(\"math\",$,Z,\"\\u22ce\",\"\\\\curlyvee\",!0),W(\"math\",$,Z,\"\\u229d\",\"\\\\circleddash\",!0),W(\"math\",$,Z,\"\\u229b\",\"\\\\circledast\",!0),W(\"math\",$,Z,\"\\u22c5\",\"\\\\centerdot\"),W(\"math\",$,Z,\"\\u22ba\",\"\\\\intercal\",!0),W(\"math\",$,Z,\"\\u22d2\",\"\\\\doublecap\"),W(\"math\",$,Z,\"\\u22d3\",\"\\\\doublecup\"),W(\"math\",$,Z,\"\\u22a0\",\"\\\\boxtimes\",!0),W(\"math\",$,Q,\"\\u21e2\",\"\\\\dashrightarrow\",!0),W(\"math\",$,Q,\"\\u21e0\",\"\\\\dashleftarrow\",!0),W(\"math\",$,Q,\"\\u21c7\",\"\\\\leftleftarrows\",!0),W(\"math\",$,Q,\"\\u21c6\",\"\\\\leftrightarrows\",!0),W(\"math\",$,Q,\"\\u21da\",\"\\\\Lleftarrow\",!0),W(\"math\",$,Q,\"\\u219e\",\"\\\\twoheadleftarrow\",!0),W(\"math\",$,Q,\"\\u21a2\",\"\\\\leftarrowtail\",!0),W(\"math\",$,Q,\"\\u21ab\",\"\\\\looparrowleft\",!0),W(\"math\",$,Q,\"\\u21cb\",\"\\\\leftrightharpoons\",!0),W(\"math\",$,Q,\"\\u21b6\",\"\\\\curvearrowleft\",!0),W(\"math\",$,Q,\"\\u21ba\",\"\\\\circlearrowleft\",!0),W(\"math\",$,Q,\"\\u21b0\",\"\\\\Lsh\",!0),W(\"math\",$,Q,\"\\u21c8\",\"\\\\upuparrows\",!0),W(\"math\",$,Q,\"\\u21bf\",\"\\\\upharpoonleft\",!0),W(\"math\",$,Q,\"\\u21c3\",\"\\\\downharpoonleft\",!0),W(\"math\",$,Q,\"\\u22b8\",\"\\\\multimap\",!0),W(\"math\",$,Q,\"\\u21ad\",\"\\\\leftrightsquigarrow\",!0),W(\"math\",$,Q,\"\\u21c9\",\"\\\\rightrightarrows\",!0),W(\"math\",$,Q,\"\\u21c4\",\"\\\\rightleftarrows\",!0),W(\"math\",$,Q,\"\\u21a0\",\"\\\\twoheadrightarrow\",!0),W(\"math\",$,Q,\"\\u21a3\",\"\\\\rightarrowtail\",!0),W(\"math\",$,Q,\"\\u21ac\",\"\\\\looparrowright\",!0),W(\"math\",$,Q,\"\\u21b7\",\"\\\\curvearrowright\",!0),W(\"math\",$,Q,\"\\u21bb\",\"\\\\circlearrowright\",!0),W(\"math\",$,Q,\"\\u21b1\",\"\\\\Rsh\",!0),W(\"math\",$,Q,\"\\u21ca\",\"\\\\downdownarrows\",!0),W(\"math\",$,Q,\"\\u21be\",\"\\\\upharpoonright\",!0),W(\"math\",$,Q,\"\\u21c2\",\"\\\\downharpoonright\",!0),W(\"math\",$,Q,\"\\u21dd\",\"\\\\rightsquigarrow\",!0),W(\"math\",$,Q,\"\\u21dd\",\"\\\\leadsto\"),W(\"math\",$,Q,\"\\u21db\",\"\\\\Rrightarrow\",!0),W(\"math\",$,Q,\"\\u21be\",\"\\\\restriction\"),W(\"math\",j,\"textord\",\"\\u2018\",\"`\"),W(\"math\",j,\"textord\",\"$\",\"\\\\$\"),W(\"text\",j,\"textord\",\"$\",\"\\\\$\"),W(\"text\",j,\"textord\",\"$\",\"\\\\textdollar\"),W(\"math\",j,\"textord\",\"%\",\"\\\\%\"),W(\"text\",j,\"textord\",\"%\",\"\\\\%\"),W(\"math\",j,\"textord\",\"_\",\"\\\\_\"),W(\"text\",j,\"textord\",\"_\",\"\\\\_\"),W(\"text\",j,\"textord\",\"_\",\"\\\\textunderscore\"),W(\"math\",j,\"textord\",\"\\u2220\",\"\\\\angle\",!0),W(\"math\",j,\"textord\",\"\\u221e\",\"\\\\infty\",!0),W(\"math\",j,\"textord\",\"\\u2032\",\"\\\\prime\"),W(\"math\",j,\"textord\",\"\\u25b3\",\"\\\\triangle\"),W(\"math\",j,\"textord\",\"\\u0393\",\"\\\\Gamma\",!0),W(\"math\",j,\"textord\",\"\\u0394\",\"\\\\Delta\",!0),W(\"math\",j,\"textord\",\"\\u0398\",\"\\\\Theta\",!0),W(\"math\",j,\"textord\",\"\\u039b\",\"\\\\Lambda\",!0),W(\"math\",j,\"textord\",\"\\u039e\",\"\\\\Xi\",!0),W(\"math\",j,\"textord\",\"\\u03a0\",\"\\\\Pi\",!0),W(\"math\",j,\"textord\",\"\\u03a3\",\"\\\\Sigma\",!0),W(\"math\",j,\"textord\",\"\\u03a5\",\"\\\\Upsilon\",!0),W(\"math\",j,\"textord\",\"\\u03a6\",\"\\\\Phi\",!0),W(\"math\",j,\"textord\",\"\\u03a8\",\"\\\\Psi\",!0),W(\"math\",j,\"textord\",\"\\u03a9\",\"\\\\Omega\",!0),W(\"math\",j,\"textord\",\"A\",\"\\u0391\"),W(\"math\",j,\"textord\",\"B\",\"\\u0392\"),W(\"math\",j,\"textord\",\"E\",\"\\u0395\"),W(\"math\",j,\"textord\",\"Z\",\"\\u0396\"),W(\"math\",j,\"textord\",\"H\",\"\\u0397\"),W(\"math\",j,\"textord\",\"I\",\"\\u0399\"),W(\"math\",j,\"textord\",\"K\",\"\\u039a\"),W(\"math\",j,\"textord\",\"M\",\"\\u039c\"),W(\"math\",j,\"textord\",\"N\",\"\\u039d\"),W(\"math\",j,\"textord\",\"O\",\"\\u039f\"),W(\"math\",j,\"textord\",\"P\",\"\\u03a1\"),W(\"math\",j,\"textord\",\"T\",\"\\u03a4\"),W(\"math\",j,\"textord\",\"X\",\"\\u03a7\"),W(\"math\",j,\"textord\",\"\\xac\",\"\\\\neg\",!0),W(\"math\",j,\"textord\",\"\\xac\",\"\\\\lnot\"),W(\"math\",j,\"textord\",\"\\u22a4\",\"\\\\top\"),W(\"math\",j,\"textord\",\"\\u22a5\",\"\\\\bot\"),W(\"math\",j,\"textord\",\"\\u2205\",\"\\\\emptyset\"),W(\"math\",$,\"textord\",\"\\u2205\",\"\\\\varnothing\"),W(\"math\",j,K,\"\\u03b1\",\"\\\\alpha\",!0),W(\"math\",j,K,\"\\u03b2\",\"\\\\beta\",!0),W(\"math\",j,K,\"\\u03b3\",\"\\\\gamma\",!0),W(\"math\",j,K,\"\\u03b4\",\"\\\\delta\",!0),W(\"math\",j,K,\"\\u03f5\",\"\\\\epsilon\",!0),W(\"math\",j,K,\"\\u03b6\",\"\\\\zeta\",!0),W(\"math\",j,K,\"\\u03b7\",\"\\\\eta\",!0),W(\"math\",j,K,\"\\u03b8\",\"\\\\theta\",!0),W(\"math\",j,K,\"\\u03b9\",\"\\\\iota\",!0),W(\"math\",j,K,\"\\u03ba\",\"\\\\kappa\",!0),W(\"math\",j,K,\"\\u03bb\",\"\\\\lambda\",!0),W(\"math\",j,K,\"\\u03bc\",\"\\\\mu\",!0),W(\"math\",j,K,\"\\u03bd\",\"\\\\nu\",!0),W(\"math\",j,K,\"\\u03be\",\"\\\\xi\",!0),W(\"math\",j,K,\"\\u03bf\",\"\\\\omicron\",!0),W(\"math\",j,K,\"\\u03c0\",\"\\\\pi\",!0),W(\"math\",j,K,\"\\u03c1\",\"\\\\rho\",!0),W(\"math\",j,K,\"\\u03c3\",\"\\\\sigma\",!0),W(\"math\",j,K,\"\\u03c4\",\"\\\\tau\",!0),W(\"math\",j,K,\"\\u03c5\",\"\\\\upsilon\",!0),W(\"math\",j,K,\"\\u03d5\",\"\\\\phi\",!0),W(\"math\",j,K,\"\\u03c7\",\"\\\\chi\",!0),W(\"math\",j,K,\"\\u03c8\",\"\\\\psi\",!0),W(\"math\",j,K,\"\\u03c9\",\"\\\\omega\",!0),W(\"math\",j,K,\"\\u03b5\",\"\\\\varepsilon\",!0),W(\"math\",j,K,\"\\u03d1\",\"\\\\vartheta\",!0),W(\"math\",j,K,\"\\u03d6\",\"\\\\varpi\",!0),W(\"math\",j,K,\"\\u03f1\",\"\\\\varrho\",!0),W(\"math\",j,K,\"\\u03c2\",\"\\\\varsigma\",!0),W(\"math\",j,K,\"\\u03c6\",\"\\\\varphi\",!0),W(\"math\",j,Z,\"\\u2217\",\"*\"),W(\"math\",j,Z,\"+\",\"+\"),W(\"math\",j,Z,\"\\u2212\",\"-\"),W(\"math\",j,Z,\"\\u22c5\",\"\\\\cdot\",!0),W(\"math\",j,Z,\"\\u2218\",\"\\\\circ\"),W(\"math\",j,Z,\"\\xf7\",\"\\\\div\",!0),W(\"math\",j,Z,\"\\xb1\",\"\\\\pm\",!0),W(\"math\",j,Z,\"\\xd7\",\"\\\\times\",!0),W(\"math\",j,Z,\"\\u2229\",\"\\\\cap\",!0),W(\"math\",j,Z,\"\\u222a\",\"\\\\cup\",!0),W(\"math\",j,Z,\"\\u2216\",\"\\\\setminus\"),W(\"math\",j,Z,\"\\u2227\",\"\\\\land\"),W(\"math\",j,Z,\"\\u2228\",\"\\\\lor\"),W(\"math\",j,Z,\"\\u2227\",\"\\\\wedge\",!0),W(\"math\",j,Z,\"\\u2228\",\"\\\\vee\",!0),W(\"math\",j,\"textord\",\"\\u221a\",\"\\\\surd\"),W(\"math\",j,\"open\",\"(\",\"(\"),W(\"math\",j,\"open\",\"[\",\"[\"),W(\"math\",j,\"open\",\"\\u27e8\",\"\\\\langle\",!0),W(\"math\",j,\"open\",\"\\u2223\",\"\\\\lvert\"),W(\"math\",j,\"open\",\"\\u2225\",\"\\\\lVert\"),W(\"math\",j,\"close\",\")\",\")\"),W(\"math\",j,\"close\",\"]\",\"]\"),W(\"math\",j,\"close\",\"?\",\"?\"),W(\"math\",j,\"close\",\"!\",\"!\"),W(\"math\",j,\"close\",\"\\u27e9\",\"\\\\rangle\",!0),W(\"math\",j,\"close\",\"\\u2223\",\"\\\\rvert\"),W(\"math\",j,\"close\",\"\\u2225\",\"\\\\rVert\"),W(\"math\",j,Q,\"=\",\"=\"),W(\"math\",j,Q,\"<\",\"<\"),W(\"math\",j,Q,\">\",\">\"),W(\"math\",j,Q,\":\",\":\"),W(\"math\",j,Q,\"\\u2248\",\"\\\\approx\",!0),W(\"math\",j,Q,\"\\u2245\",\"\\\\cong\",!0),W(\"math\",j,Q,\"\\u2265\",\"\\\\ge\"),W(\"math\",j,Q,\"\\u2265\",\"\\\\geq\",!0),W(\"math\",j,Q,\"\\u2190\",\"\\\\gets\"),W(\"math\",j,Q,\">\",\"\\\\gt\"),W(\"math\",j,Q,\"\\u2208\",\"\\\\in\",!0),W(\"math\",j,Q,\"\\ue020\",\"\\\\@not\"),W(\"math\",j,Q,\"\\u2282\",\"\\\\subset\",!0),W(\"math\",j,Q,\"\\u2283\",\"\\\\supset\",!0),W(\"math\",j,Q,\"\\u2286\",\"\\\\subseteq\",!0),W(\"math\",j,Q,\"\\u2287\",\"\\\\supseteq\",!0),W(\"math\",$,Q,\"\\u2288\",\"\\\\nsubseteq\",!0),W(\"math\",$,Q,\"\\u2289\",\"\\\\nsupseteq\",!0),W(\"math\",j,Q,\"\\u22a8\",\"\\\\models\"),W(\"math\",j,Q,\"\\u2190\",\"\\\\leftarrow\",!0),W(\"math\",j,Q,\"\\u2264\",\"\\\\le\"),W(\"math\",j,Q,\"\\u2264\",\"\\\\leq\",!0),W(\"math\",j,Q,\"<\",\"\\\\lt\"),W(\"math\",j,Q,\"\\u2192\",\"\\\\rightarrow\",!0),W(\"math\",j,Q,\"\\u2192\",\"\\\\to\"),W(\"math\",$,Q,\"\\u2271\",\"\\\\ngeq\",!0),W(\"math\",$,Q,\"\\u2270\",\"\\\\nleq\",!0),W(\"math\",j,\"spacing\",\"\\xa0\",\"\\\\ \"),W(\"math\",j,\"spacing\",\"\\xa0\",\"~\"),W(\"math\",j,\"spacing\",\"\\xa0\",\"\\\\space\"),W(\"math\",j,\"spacing\",\"\\xa0\",\"\\\\nobreakspace\"),W(\"text\",j,\"spacing\",\"\\xa0\",\"\\\\ \"),W(\"text\",j,\"spacing\",\"\\xa0\",\"~\"),W(\"text\",j,\"spacing\",\"\\xa0\",\"\\\\space\"),W(\"text\",j,\"spacing\",\"\\xa0\",\"\\\\nobreakspace\"),W(\"math\",j,\"spacing\",null,\"\\\\nobreak\"),W(\"math\",j,\"spacing\",null,\"\\\\allowbreak\"),W(\"math\",j,\"punct\",\",\",\",\"),W(\"math\",j,\"punct\",\";\",\";\"),W(\"math\",$,Z,\"\\u22bc\",\"\\\\barwedge\",!0),W(\"math\",$,Z,\"\\u22bb\",\"\\\\veebar\",!0),W(\"math\",j,Z,\"\\u2299\",\"\\\\odot\",!0),W(\"math\",j,Z,\"\\u2295\",\"\\\\oplus\",!0),W(\"math\",j,Z,\"\\u2297\",\"\\\\otimes\",!0),W(\"math\",j,\"textord\",\"\\u2202\",\"\\\\partial\",!0),W(\"math\",j,Z,\"\\u2298\",\"\\\\oslash\",!0),W(\"math\",$,Z,\"\\u229a\",\"\\\\circledcirc\",!0),W(\"math\",$,Z,\"\\u22a1\",\"\\\\boxdot\",!0),W(\"math\",j,Z,\"\\u25b3\",\"\\\\bigtriangleup\"),W(\"math\",j,Z,\"\\u25bd\",\"\\\\bigtriangledown\"),W(\"math\",j,Z,\"\\u2020\",\"\\\\dagger\"),W(\"math\",j,Z,\"\\u22c4\",\"\\\\diamond\"),W(\"math\",j,Z,\"\\u22c6\",\"\\\\star\"),W(\"math\",j,Z,\"\\u25c3\",\"\\\\triangleleft\"),W(\"math\",j,Z,\"\\u25b9\",\"\\\\triangleright\"),W(\"math\",j,\"open\",\"{\",\"\\\\{\"),W(\"text\",j,\"textord\",\"{\",\"\\\\{\"),W(\"text\",j,\"textord\",\"{\",\"\\\\textbraceleft\"),W(\"math\",j,\"close\",\"}\",\"\\\\}\"),W(\"text\",j,\"textord\",\"}\",\"\\\\}\"),W(\"text\",j,\"textord\",\"}\",\"\\\\textbraceright\"),W(\"math\",j,\"open\",\"{\",\"\\\\lbrace\"),W(\"math\",j,\"close\",\"}\",\"\\\\rbrace\"),W(\"math\",j,\"open\",\"[\",\"\\\\lbrack\"),W(\"text\",j,\"textord\",\"[\",\"\\\\lbrack\"),W(\"math\",j,\"close\",\"]\",\"\\\\rbrack\"),W(\"text\",j,\"textord\",\"]\",\"\\\\rbrack\"),W(\"math\",j,\"open\",\"(\",\"\\\\lparen\"),W(\"math\",j,\"close\",\")\",\"\\\\rparen\"),W(\"text\",j,\"textord\",\"<\",\"\\\\textless\"),W(\"text\",j,\"textord\",\">\",\"\\\\textgreater\"),W(\"math\",j,\"open\",\"\\u230a\",\"\\\\lfloor\",!0),W(\"math\",j,\"close\",\"\\u230b\",\"\\\\rfloor\",!0),W(\"math\",j,\"open\",\"\\u2308\",\"\\\\lceil\",!0),W(\"math\",j,\"close\",\"\\u2309\",\"\\\\rceil\",!0),W(\"math\",j,\"textord\",\"\\\\\",\"\\\\backslash\"),W(\"math\",j,\"textord\",\"\\u2223\",\"|\"),W(\"math\",j,\"textord\",\"\\u2223\",\"\\\\vert\"),W(\"text\",j,\"textord\",\"|\",\"\\\\textbar\"),W(\"math\",j,\"textord\",\"\\u2225\",\"\\\\|\"),W(\"math\",j,\"textord\",\"\\u2225\",\"\\\\Vert\"),W(\"text\",j,\"textord\",\"\\u2225\",\"\\\\textbardbl\"),W(\"text\",j,\"textord\",\"~\",\"\\\\textasciitilde\"),W(\"text\",j,\"textord\",\"\\\\\",\"\\\\textbackslash\"),W(\"text\",j,\"textord\",\"^\",\"\\\\textasciicircum\"),W(\"math\",j,Q,\"\\u2191\",\"\\\\uparrow\",!0),W(\"math\",j,Q,\"\\u21d1\",\"\\\\Uparrow\",!0),W(\"math\",j,Q,\"\\u2193\",\"\\\\downarrow\",!0),W(\"math\",j,Q,\"\\u21d3\",\"\\\\Downarrow\",!0),W(\"math\",j,Q,\"\\u2195\",\"\\\\updownarrow\",!0),W(\"math\",j,Q,\"\\u21d5\",\"\\\\Updownarrow\",!0),W(\"math\",j,J,\"\\u2210\",\"\\\\coprod\"),W(\"math\",j,J,\"\\u22c1\",\"\\\\bigvee\"),W(\"math\",j,J,\"\\u22c0\",\"\\\\bigwedge\"),W(\"math\",j,J,\"\\u2a04\",\"\\\\biguplus\"),W(\"math\",j,J,\"\\u22c2\",\"\\\\bigcap\"),W(\"math\",j,J,\"\\u22c3\",\"\\\\bigcup\"),W(\"math\",j,J,\"\\u222b\",\"\\\\int\"),W(\"math\",j,J,\"\\u222b\",\"\\\\intop\"),W(\"math\",j,J,\"\\u222c\",\"\\\\iint\"),W(\"math\",j,J,\"\\u222d\",\"\\\\iiint\"),W(\"math\",j,J,\"\\u220f\",\"\\\\prod\"),W(\"math\",j,J,\"\\u2211\",\"\\\\sum\"),W(\"math\",j,J,\"\\u2a02\",\"\\\\bigotimes\"),W(\"math\",j,J,\"\\u2a01\",\"\\\\bigoplus\"),W(\"math\",j,J,\"\\u2a00\",\"\\\\bigodot\"),W(\"math\",j,J,\"\\u222e\",\"\\\\oint\"),W(\"math\",j,J,\"\\u222f\",\"\\\\oiint\"),W(\"math\",j,J,\"\\u2230\",\"\\\\oiiint\"),W(\"math\",j,J,\"\\u2a06\",\"\\\\bigsqcup\"),W(\"math\",j,J,\"\\u222b\",\"\\\\smallint\"),W(\"text\",j,\"inner\",\"\\u2026\",\"\\\\textellipsis\"),W(\"math\",j,\"inner\",\"\\u2026\",\"\\\\mathellipsis\"),W(\"text\",j,\"inner\",\"\\u2026\",\"\\\\ldots\",!0),W(\"math\",j,\"inner\",\"\\u2026\",\"\\\\ldots\",!0),W(\"math\",j,\"inner\",\"\\u22ef\",\"\\\\@cdots\",!0),W(\"math\",j,\"inner\",\"\\u22f1\",\"\\\\ddots\",!0),W(\"math\",j,\"textord\",\"\\u22ee\",\"\\\\varvdots\"),W(\"math\",j,\"accent-token\",\"\\u02ca\",\"\\\\acute\"),W(\"math\",j,\"accent-token\",\"\\u02cb\",\"\\\\grave\"),W(\"math\",j,\"accent-token\",\"\\xa8\",\"\\\\ddot\"),W(\"math\",j,\"accent-token\",\"~\",\"\\\\tilde\"),W(\"math\",j,\"accent-token\",\"\\u02c9\",\"\\\\bar\"),W(\"math\",j,\"accent-token\",\"\\u02d8\",\"\\\\breve\"),W(\"math\",j,\"accent-token\",\"\\u02c7\",\"\\\\check\"),W(\"math\",j,\"accent-token\",\"^\",\"\\\\hat\"),W(\"math\",j,\"accent-token\",\"\\u20d7\",\"\\\\vec\"),W(\"math\",j,\"accent-token\",\"\\u02d9\",\"\\\\dot\"),W(\"math\",j,\"accent-token\",\"\\u02da\",\"\\\\mathring\"),W(\"math\",j,K,\"\\u0131\",\"\\\\imath\",!0),W(\"math\",j,K,\"\\u0237\",\"\\\\jmath\",!0),W(\"text\",j,\"textord\",\"\\u0131\",\"\\\\i\",!0),W(\"text\",j,\"textord\",\"\\u0237\",\"\\\\j\",!0),W(\"text\",j,\"textord\",\"\\xdf\",\"\\\\ss\",!0),W(\"text\",j,\"textord\",\"\\xe6\",\"\\\\ae\",!0),W(\"text\",j,\"textord\",\"\\xe6\",\"\\\\ae\",!0),W(\"text\",j,\"textord\",\"\\u0153\",\"\\\\oe\",!0),W(\"text\",j,\"textord\",\"\\xf8\",\"\\\\o\",!0),W(\"text\",j,\"textord\",\"\\xc6\",\"\\\\AE\",!0),W(\"text\",j,\"textord\",\"\\u0152\",\"\\\\OE\",!0),W(\"text\",j,\"textord\",\"\\xd8\",\"\\\\O\",!0),W(\"text\",j,\"accent-token\",\"\\u02ca\",\"\\\\'\"),W(\"text\",j,\"accent-token\",\"\\u02cb\",\"\\\\`\"),W(\"text\",j,\"accent-token\",\"\\u02c6\",\"\\\\^\"),W(\"text\",j,\"accent-token\",\"\\u02dc\",\"\\\\~\"),W(\"text\",j,\"accent-token\",\"\\u02c9\",\"\\\\=\"),W(\"text\",j,\"accent-token\",\"\\u02d8\",\"\\\\u\"),W(\"text\",j,\"accent-token\",\"\\u02d9\",\"\\\\.\"),W(\"text\",j,\"accent-token\",\"\\u02da\",\"\\\\r\"),W(\"text\",j,\"accent-token\",\"\\u02c7\",\"\\\\v\"),W(\"text\",j,\"accent-token\",\"\\xa8\",'\\\\\"'),W(\"text\",j,\"accent-token\",\"\\u02dd\",\"\\\\H\"),W(\"text\",j,\"accent-token\",\"\\u25ef\",\"\\\\textcircled\");var tt={\"--\":!0,\"---\":!0,\"``\":!0,\"''\":!0};W(\"text\",j,\"textord\",\"\\u2013\",\"--\"),W(\"text\",j,\"textord\",\"\\u2013\",\"\\\\textendash\"),W(\"text\",j,\"textord\",\"\\u2014\",\"---\"),W(\"text\",j,\"textord\",\"\\u2014\",\"\\\\textemdash\"),W(\"text\",j,\"textord\",\"\\u2018\",\"`\"),W(\"text\",j,\"textord\",\"\\u2018\",\"\\\\textquoteleft\"),W(\"text\",j,\"textord\",\"\\u2019\",\"'\"),W(\"text\",j,\"textord\",\"\\u2019\",\"\\\\textquoteright\"),W(\"text\",j,\"textord\",\"\\u201c\",\"``\"),W(\"text\",j,\"textord\",\"\\u201c\",\"\\\\textquotedblleft\"),W(\"text\",j,\"textord\",\"\\u201d\",\"''\"),W(\"text\",j,\"textord\",\"\\u201d\",\"\\\\textquotedblright\"),W(\"math\",j,\"textord\",\"\\xb0\",\"\\\\degree\",!0),W(\"text\",j,\"textord\",\"\\xb0\",\"\\\\degree\"),W(\"text\",j,\"textord\",\"\\xb0\",\"\\\\textdegree\",!0),W(\"math\",j,K,\"\\xa3\",\"\\\\pounds\"),W(\"math\",j,K,\"\\xa3\",\"\\\\mathsterling\",!0),W(\"text\",j,K,\"\\xa3\",\"\\\\pounds\"),W(\"text\",j,K,\"\\xa3\",\"\\\\textsterling\",!0),W(\"math\",$,\"textord\",\"\\u2720\",\"\\\\maltese\"),W(\"text\",$,\"textord\",\"\\u2720\",\"\\\\maltese\"),W(\"text\",j,\"spacing\",\"\\xa0\",\"\\\\ \"),W(\"text\",j,\"spacing\",\"\\xa0\",\" \"),W(\"text\",j,\"spacing\",\"\\xa0\",\"~\");for(var et=0;et<'0123456789/@.\"'.length;et++){var rt='0123456789/@.\"'.charAt(et);W(\"math\",j,\"textord\",rt,rt)}for(var at=0;at<'0123456789!@*()-=+[]<>|\";:?/.,'.length;at++){var nt='0123456789!@*()-=+[]<>|\";:?/.,'.charAt(at);W(\"text\",j,\"textord\",nt,nt)}for(var ot=\"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz\",it=0;it<ot.length;it++){var st=ot.charAt(it);W(\"math\",j,K,st,st),W(\"text\",j,\"textord\",st,st)}W(\"math\",$,\"textord\",\"C\",\"\\u2102\"),W(\"text\",$,\"textord\",\"C\",\"\\u2102\"),W(\"math\",$,\"textord\",\"H\",\"\\u210d\"),W(\"text\",$,\"textord\",\"H\",\"\\u210d\"),W(\"math\",$,\"textord\",\"N\",\"\\u2115\"),W(\"text\",$,\"textord\",\"N\",\"\\u2115\"),W(\"math\",$,\"textord\",\"P\",\"\\u2119\"),W(\"text\",$,\"textord\",\"P\",\"\\u2119\"),W(\"math\",$,\"textord\",\"Q\",\"\\u211a\"),W(\"text\",$,\"textord\",\"Q\",\"\\u211a\"),W(\"math\",$,\"textord\",\"R\",\"\\u211d\"),W(\"text\",$,\"textord\",\"R\",\"\\u211d\"),W(\"math\",$,\"textord\",\"Z\",\"\\u2124\"),W(\"text\",$,\"textord\",\"Z\",\"\\u2124\"),W(\"math\",j,K,\"h\",\"\\u210e\"),W(\"text\",j,K,\"h\",\"\\u210e\");for(var ht=\"\",lt=0;lt<ot.length;lt++){var mt=ot.charAt(lt);W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56320+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56372+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56424+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56580+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56736+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56788+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56840+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56944+lt)),W(\"text\",j,\"textord\",mt,ht),lt<26&&(W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56632+lt)),W(\"text\",j,\"textord\",mt,ht),W(\"math\",j,K,mt,ht=String.fromCharCode(55349,56476+lt)),W(\"text\",j,\"textord\",mt,ht))}W(\"math\",j,K,\"k\",ht=String.fromCharCode(55349,56668)),W(\"text\",j,\"textord\",\"k\",ht);for(var ct=0;ct<10;ct++){var ut=ct.toString();W(\"math\",j,K,ut,ht=String.fromCharCode(55349,57294+ct)),W(\"text\",j,\"textord\",ut,ht),W(\"math\",j,K,ut,ht=String.fromCharCode(55349,57314+ct)),W(\"text\",j,\"textord\",ut,ht),W(\"math\",j,K,ut,ht=String.fromCharCode(55349,57324+ct)),W(\"text\",j,\"textord\",ut,ht),W(\"math\",j,K,ut,ht=String.fromCharCode(55349,57334+ct)),W(\"text\",j,\"textord\",ut,ht)}for(var dt=0;dt<\"\\xc7\\xd0\\xde\\xe7\\xfe\".length;dt++){var pt=\"\\xc7\\xd0\\xde\\xe7\\xfe\".charAt(dt);W(\"math\",j,K,pt,pt),W(\"text\",j,\"textord\",pt,pt)}W(\"text\",j,\"textord\",\"\\xf0\",\"\\xf0\"),W(\"text\",j,\"textord\",\"\\u2013\",\"\\u2013\"),W(\"text\",j,\"textord\",\"\\u2014\",\"\\u2014\"),W(\"text\",j,\"textord\",\"\\u2018\",\"\\u2018\"),W(\"text\",j,\"textord\",\"\\u2019\",\"\\u2019\"),W(\"text\",j,\"textord\",\"\\u201c\",\"\\u201c\"),W(\"text\",j,\"textord\",\"\\u201d\",\"\\u201d\");var ft=[[\"mathbf\",\"textbf\",\"Main-Bold\"],[\"mathbf\",\"textbf\",\"Main-Bold\"],[\"mathdefault\",\"textit\",\"Math-Italic\"],[\"mathdefault\",\"textit\",\"Math-Italic\"],[\"boldsymbol\",\"boldsymbol\",\"Main-BoldItalic\"],[\"boldsymbol\",\"boldsymbol\",\"Main-BoldItalic\"],[\"mathscr\",\"textscr\",\"Script-Regular\"],[\"\",\"\",\"\"],[\"\",\"\",\"\"],[\"\",\"\",\"\"],[\"mathfrak\",\"textfrak\",\"Fraktur-Regular\"],[\"mathfrak\",\"textfrak\",\"Fraktur-Regular\"],[\"mathbb\",\"textbb\",\"AMS-Regular\"],[\"mathbb\",\"textbb\",\"AMS-Regular\"],[\"\",\"\",\"\"],[\"\",\"\",\"\"],[\"mathsf\",\"textsf\",\"SansSerif-Regular\"],[\"mathsf\",\"textsf\",\"SansSerif-Regular\"],[\"mathboldsf\",\"textboldsf\",\"SansSerif-Bold\"],[\"mathboldsf\",\"textboldsf\",\"SansSerif-Bold\"],[\"mathitsf\",\"textitsf\",\"SansSerif-Italic\"],[\"mathitsf\",\"textitsf\",\"SansSerif-Italic\"],[\"\",\"\",\"\"],[\"\",\"\",\"\"],[\"mathtt\",\"texttt\",\"Typewriter-Regular\"],[\"mathtt\",\"texttt\",\"Typewriter-Regular\"]],gt=[[\"mathbf\",\"textbf\",\"Main-Bold\"],[\"\",\"\",\"\"],[\"mathsf\",\"textsf\",\"SansSerif-Regular\"],[\"mathboldsf\",\"textboldsf\",\"SansSerif-Bold\"],[\"mathtt\",\"texttt\",\"Typewriter-Regular\"]],xt=[[1,1,1],[2,1,1],[3,1,1],[4,2,1],[5,2,1],[6,3,1],[7,4,2],[8,6,3],[9,7,6],[10,8,7],[11,10,9]],vt=[.5,.6,.7,.8,.9,1,1.2,1.44,1.728,2.074,2.488],bt=function(t,e){return e.size<2?t:xt[t-1][e.size-1]},yt=function(){function t(e){this.style=void 0,this.color=void 0,this.size=void 0,this.textSize=void 0,this.phantom=void 0,this.font=void 0,this.fontFamily=void 0,this.fontWeight=void 0,this.fontShape=void 0,this.sizeMultiplier=void 0,this.maxSize=void 0,this._fontMetrics=void 0,this.style=e.style,this.color=e.color,this.size=e.size||t.BASESIZE,this.textSize=e.textSize||this.size,this.phantom=!!e.phantom,this.font=e.font||\"\",this.fontFamily=e.fontFamily||\"\",this.fontWeight=e.fontWeight||\"\",this.fontShape=e.fontShape||\"\",this.sizeMultiplier=vt[this.size-1],this.maxSize=e.maxSize,this._fontMetrics=void 0}var e=t.prototype;return e.extend=function(e){var r={style:this.style,size:this.size,textSize:this.textSize,color:this.color,phantom:this.phantom,font:this.font,fontFamily:this.fontFamily,fontWeight:this.fontWeight,fontShape:this.fontShape,maxSize:this.maxSize};for(var a in e)e.hasOwnProperty(a)&&(r[a]=e[a]);return new t(r)},e.havingStyle=function(t){return this.style===t?this:this.extend({style:t,size:bt(this.textSize,t)})},e.havingCrampedStyle=function(){return this.havingStyle(this.style.cramp())},e.havingSize=function(t){return this.size===t&&this.textSize===t?this:this.extend({style:this.style.text(),size:t,textSize:t,sizeMultiplier:vt[t-1]})},e.havingBaseStyle=function(e){e=e||this.style.text();var r=bt(t.BASESIZE,e);return this.size===r&&this.textSize===t.BASESIZE&&this.style===e?this:this.extend({style:e,size:r})},e.havingBaseSizing=function(){var t;switch(this.style.id){case 4:case 5:t=3;break;case 6:case 7:t=1;break;default:t=6}return this.extend({style:this.style.text(),size:t})},e.withColor=function(t){return this.extend({color:t})},e.withPhantom=function(){return this.extend({phantom:!0})},e.withFont=function(t){return this.extend({font:t})},e.withTextFontFamily=function(t){return this.extend({fontFamily:t,font:\"\"})},e.withTextFontWeight=function(t){return this.extend({fontWeight:t,font:\"\"})},e.withTextFontShape=function(t){return this.extend({fontShape:t,font:\"\"})},e.sizingClasses=function(t){return t.size!==this.size?[\"sizing\",\"reset-size\"+t.size,\"size\"+this.size]:[]},e.baseSizingClasses=function(){return this.size!==t.BASESIZE?[\"sizing\",\"reset-size\"+this.size,\"size\"+t.BASESIZE]:[]},e.fontMetrics=function(){return this._fontMetrics||(this._fontMetrics=function(t){var e;if(!U[e=t>=5?0:t>=3?1:2]){var r=U[e]={cssEmPerMu:D.quad[e]/18};for(var a in D)D.hasOwnProperty(a)&&(r[a]=D[a][e])}return U[e]}(this.size)),this._fontMetrics},e.getColor=function(){return this.phantom?\"transparent\":this.color},t}();yt.BASESIZE=6;var wt=yt,kt={pt:1,mm:7227/2540,cm:7227/254,in:72.27,bp:1.00375,pc:12,dd:1238/1157,cc:14856/1157,nd:685/642,nc:1370/107,sp:1/65536,px:1.00375},St={ex:!0,em:!0,mu:!0},zt=function(t,e){var r;if(t.unit in kt)r=kt[t.unit]/e.fontMetrics().ptPerEm/e.sizeMultiplier;else if(\"mu\"===t.unit)r=e.fontMetrics().cssEmPerMu;else{var a;if(a=e.style.isTight()?e.havingStyle(e.style.text()):e,\"ex\"===t.unit)r=a.fontMetrics().xHeight;else{if(\"em\"!==t.unit)throw new i(\"Invalid unit: '\"+t.unit+\"'\");r=a.fontMetrics().quad}a!==e&&(r*=a.sizeMultiplier/e.sizeMultiplier)}return Math.min(t.number*r,e.maxSize)},Mt=[\"\\\\imath\",\"\\u0131\",\"\\\\jmath\",\"\\u0237\",\"\\\\pounds\",\"\\\\mathsterling\",\"\\\\textsterling\",\"\\xa3\"],Tt=function(t,e,r){return _[r][t]&&_[r][t].replace&&(t=_[r][t].replace),{value:t,metrics:V(t,e,r)}},At=function(t,e,r,a,n){var o,i=Tt(t,e,r),s=i.metrics;if(t=i.value,s){var h=s.italic;(\"text\"===r||a&&\"mathit\"===a.font)&&(h=0),o=new E(t,s.height,s.depth,h,s.skew,s.width,n)}else\"undefined\"!=typeof console&&console.warn(\"No character metrics for '\"+t+\"' in style '\"+e+\"'\"),o=new E(t,0,0,0,0,0,n);if(a){o.maxFontSize=a.sizeMultiplier,a.style.isTight()&&o.classes.push(\"mtight\");var l=a.getColor();l&&(o.style.color=l)}return o},Bt=function(t,e){if(A(t.classes)!==A(e.classes)||t.skew!==e.skew||t.maxFontSize!==e.maxFontSize)return!1;for(var r in t.style)if(t.style.hasOwnProperty(r)&&t.style[r]!==e.style[r])return!1;for(var a in e.style)if(e.style.hasOwnProperty(a)&&t.style[a]!==e.style[a])return!1;return!0},qt=function(t){for(var e=0,r=0,a=0,n=0;n<t.children.length;n++){var o=t.children[n];o.height>e&&(e=o.height),o.depth>r&&(r=o.depth),o.maxFontSize>a&&(a=o.maxFontSize)}t.height=e,t.depth=r,t.maxFontSize=a},Ct=function(t,e,r,a){var n=new N(t,e,r,a);return qt(n),n},Nt=function(t,e,r,a){return new N(t,e,r,a)},It=function(t){var e=new T(t);return qt(e),e},Ot=function(t,e,r){var a=\"\";switch(t){case\"amsrm\":a=\"AMS\";break;case\"textrm\":a=\"Main\";break;case\"textsf\":a=\"SansSerif\";break;case\"texttt\":a=\"Typewriter\";break;default:a=t}return a+\"-\"+(\"textbf\"===e&&\"textit\"===r?\"BoldItalic\":\"textbf\"===e?\"Bold\":\"textit\"===e?\"Italic\":\"Regular\")},Et={mathbf:{variant:\"bold\",fontName:\"Main-Bold\"},mathrm:{variant:\"normal\",fontName:\"Main-Regular\"},textit:{variant:\"italic\",fontName:\"Main-Italic\"},mathit:{variant:\"italic\",fontName:\"Main-Italic\"},mathbb:{variant:\"double-struck\",fontName:\"AMS-Regular\"},mathcal:{variant:\"script\",fontName:\"Caligraphic-Regular\"},mathfrak:{variant:\"fraktur\",fontName:\"Fraktur-Regular\"},mathscr:{variant:\"script\",fontName:\"Script-Regular\"},mathsf:{variant:\"sans-serif\",fontName:\"SansSerif-Regular\"},mathtt:{variant:\"monospace\",fontName:\"Typewriter-Regular\"}},Rt={vec:[\"vec\",.471,.714],oiintSize1:[\"oiintSize1\",.957,.499],oiintSize2:[\"oiintSize2\",1.472,.659],oiiintSize1:[\"oiiintSize1\",1.304,.499],oiiintSize2:[\"oiiintSize2\",1.98,.659]},Lt={fontMap:Et,makeSymbol:At,mathsym:function(t,e,r,a){return void 0===a&&(a=[]),r&&r.font&&\"boldsymbol\"===r.font&&Tt(t,\"Main-Bold\",e).metrics?At(t,\"Main-Bold\",e,r,a.concat([\"mathbf\"])):\"\\\\\"===t||\"main\"===_[e][t].font?At(t,\"Main-Regular\",e,r,a):At(t,\"AMS-Regular\",e,r,a.concat([\"amsrm\"]))},makeSpan:Ct,makeSvgSpan:Nt,makeLineSpan:function(t,e,r){var a=Ct([t],[],e);return a.height=r||e.fontMetrics().defaultRuleThickness,a.style.borderBottomWidth=a.height+\"em\",a.maxFontSize=1,a},makeAnchor:function(t,e,r,a){var n=new I(t,e,r,a);return qt(n),n},makeFragment:It,wrapFragment:function(t,e){return t instanceof T?Ct([],[t],e):t},makeVList:function(t,e){for(var r=function(t){if(\"individualShift\"===t.positionType){for(var e=t.children,r=[e[0]],a=-e[0].shift-e[0].elem.depth,n=a,o=1;o<e.length;o++){var i=-e[o].shift-n-e[o].elem.depth,s=i-(e[o-1].elem.height+e[o-1].elem.depth);n+=i,r.push({type:\"kern\",size:s}),r.push(e[o])}return{children:r,depth:a}}var h;if(\"top\"===t.positionType){for(var l=t.positionData,m=0;m<t.children.length;m++){var c=t.children[m];l-=\"kern\"===c.type?c.size:c.elem.height+c.elem.depth}h=l}else if(\"bottom\"===t.positionType)h=-t.positionData;else{var u=t.children[0];if(\"elem\"!==u.type)throw new Error('First child must have type \"elem\".');if(\"shift\"===t.positionType)h=-u.elem.depth-t.positionData;else{if(\"firstBaseline\"!==t.positionType)throw new Error(\"Invalid positionType \"+t.positionType+\".\");h=-u.elem.depth}}return{children:t.children,depth:h}}(t),a=r.children,n=r.depth,o=0,i=0;i<a.length;i++){var s=a[i];if(\"elem\"===s.type){var h=s.elem;o=Math.max(o,h.maxFontSize,h.height)}}o+=2;var l=Ct([\"pstrut\"],[]);l.style.height=o+\"em\";for(var m=[],c=n,u=n,d=n,p=0;p<a.length;p++){var f=a[p];if(\"kern\"===f.type)d+=f.size;else{var g=f.elem,x=f.wrapperClasses||[],v=f.wrapperStyle||{},b=Ct(x,[l,g],void 0,v);b.style.top=-o-d-g.depth+\"em\",f.marginLeft&&(b.style.marginLeft=f.marginLeft),f.marginRight&&(b.style.marginRight=f.marginRight),m.push(b),d+=g.height+g.depth}c=Math.min(c,d),u=Math.max(u,d)}var y,w=Ct([\"vlist\"],m);if(w.style.height=u+\"em\",c<0){var k=Ct([],[]),S=Ct([\"vlist\"],[k]);S.style.height=-c+\"em\";var z=Ct([\"vlist-s\"],[new E(\"\\u200b\")]);y=[Ct([\"vlist-r\"],[w,z]),Ct([\"vlist-r\"],[S])]}else y=[Ct([\"vlist-r\"],[w])];var M=Ct([\"vlist-t\"],y);return 2===y.length&&M.classes.push(\"vlist-t2\"),M.height=u,M.depth=-c,M},makeOrd:function(t,e,r){var a,n=t.mode,o=t.text,s=[\"mord\"],h=\"math\"===n||\"text\"===n&&e.font,l=h?e.font:e.fontFamily;if(55349===o.charCodeAt(0)){var m=function(t,e){var r=1024*(t.charCodeAt(0)-55296)+(t.charCodeAt(1)-56320)+65536,a=\"math\"===e?0:1;if(119808<=r&&r<120484){var n=Math.floor((r-119808)/26);return[ft[n][2],ft[n][a]]}if(120782<=r&&r<=120831){var o=Math.floor((r-120782)/10);return[gt[o][2],gt[o][a]]}if(120485===r||120486===r)return[ft[0][2],ft[0][a]];if(120486<r&&r<120782)return[\"\",\"\"];throw new i(\"Unsupported character: \"+t)}(o,n),u=m[0],d=m[1];return At(o,u,n,e,s.concat(d))}if(l){var p,f;if(\"boldsymbol\"===l||\"mathnormal\"===l){var g=\"boldsymbol\"===l?function(t,e,r,a){return Tt(t,\"Math-BoldItalic\",e).metrics?{fontName:\"Math-BoldItalic\",fontClass:\"boldsymbol\"}:{fontName:\"Main-Bold\",fontClass:\"mathbf\"}}(o,n):(a=o,c.contains(Mt,a)?{fontName:\"Main-Italic\",fontClass:\"mathit\"}:/[0-9]/.test(a.charAt(0))?{fontName:\"Caligraphic-Regular\",fontClass:\"mathcal\"}:{fontName:\"Math-Italic\",fontClass:\"mathdefault\"});p=g.fontName,f=[g.fontClass]}else c.contains(Mt,o)?(p=\"Main-Italic\",f=[\"mathit\"]):h?(p=Et[l].fontName,f=[l]):(p=Ot(l,e.fontWeight,e.fontShape),f=[l,e.fontWeight,e.fontShape]);if(Tt(o,p,n).metrics)return At(o,p,n,e,s.concat(f));if(tt.hasOwnProperty(o)&&\"Typewriter\"===p.substr(0,10)){for(var x=[],v=0;v<o.length;v++)x.push(At(o[v],p,n,e,s.concat(f)));return It(x)}}if(\"mathord\"===r){var b=function(t,e,r,a){return/[0-9]/.test(t.charAt(0))||c.contains(Mt,t)?{fontName:\"Main-Italic\",fontClass:\"mathit\"}:{fontName:\"Math-Italic\",fontClass:\"mathdefault\"}}(o);return At(o,b.fontName,n,e,s.concat([b.fontClass]))}if(\"textord\"===r){var y=_[n][o]&&_[n][o].font;if(\"ams\"===y){var w=Ot(\"amsrm\",e.fontWeight,e.fontShape);return At(o,w,n,e,s.concat(\"amsrm\",e.fontWeight,e.fontShape))}if(\"main\"!==y&&y){var k=Ot(y,e.fontWeight,e.fontShape);return At(o,k,n,e,s.concat(k,e.fontWeight,e.fontShape))}var S=Ot(\"textrm\",e.fontWeight,e.fontShape);return At(o,S,n,e,s.concat(e.fontWeight,e.fontShape))}throw new Error(\"unexpected type: \"+r+\" in makeOrd\")},makeGlue:function(t,e){var r=Ct([\"mspace\"],[],e),a=zt(t,e);return r.style.marginRight=a+\"em\",r},staticSvg:function(t,e){var r=Rt[t],a=r[0],n=r[1],o=r[2],i=new L(a),s=new R([i],{width:n+\"em\",height:o+\"em\",style:\"width:\"+n+\"em\",viewBox:\"0 0 \"+1e3*n+\" \"+1e3*o,preserveAspectRatio:\"xMinYMin\"}),h=Nt([\"overlay\"],[s],e);return h.height=o,h.style.height=o+\"em\",h.style.width=n+\"em\",h},svgData:Rt,tryCombineChars:function(t){for(var e=0;e<t.length-1;e++){var r=t[e],a=t[e+1];r instanceof E&&a instanceof E&&Bt(r,a)&&(r.text+=a.text,r.height=Math.max(r.height,a.height),r.depth=Math.max(r.depth,a.depth),r.italic=a.italic,t.splice(e+1,1),e--)}return t}};function Ht(t,e){var r=Pt(t,e);if(!r)throw new Error(\"Expected node of type \"+e+\", but got \"+(t?\"node of type \"+t.type:String(t)));return r}function Pt(t,e){return t&&t.type===e?t:null}function Dt(t,e){var r=function(t,e){return t&&\"atom\"===t.type&&t.family===e?t:null}(t,e);if(!r)throw new Error('Expected node of type \"atom\" and family \"'+e+'\", but got '+(t?\"atom\"===t.type?\"atom of family \"+t.family:\"node of type \"+t.type:String(t)));return r}function Ft(t){return t&&(\"atom\"===t.type||X.hasOwnProperty(t.type))?t:null}var Vt={number:3,unit:\"mu\"},Ut={number:4,unit:\"mu\"},Gt={number:5,unit:\"mu\"},Xt={mord:{mop:Vt,mbin:Ut,mrel:Gt,minner:Vt},mop:{mord:Vt,mop:Vt,mrel:Gt,minner:Vt},mbin:{mord:Ut,mop:Ut,mopen:Ut,minner:Ut},mrel:{mord:Gt,mop:Gt,mopen:Gt,minner:Gt},mopen:{},mclose:{mop:Vt,mbin:Ut,mrel:Gt,minner:Vt},mpunct:{mord:Vt,mop:Vt,mrel:Gt,mopen:Vt,mclose:Vt,mpunct:Vt,minner:Vt},minner:{mord:Vt,mop:Vt,mbin:Ut,mrel:Gt,mopen:Vt,mpunct:Vt,minner:Vt}},Yt={mord:{mop:Vt},mop:{mord:Vt,mop:Vt},mbin:{},mrel:{},mopen:{},mclose:{mop:Vt},mpunct:{},minner:{mop:Vt}},_t={},Wt={},jt={};function $t(t){for(var e=t.type,r=(t.nodeType,t.names),a=t.props,n=t.handler,o=t.htmlBuilder,i=t.mathmlBuilder,s={type:e,numArgs:a.numArgs,argTypes:a.argTypes,greediness:void 0===a.greediness?1:a.greediness,allowedInText:!!a.allowedInText,allowedInMath:void 0===a.allowedInMath||a.allowedInMath,numOptionalArgs:a.numOptionalArgs||0,infix:!!a.infix,consumeMode:a.consumeMode,handler:n},h=0;h<r.length;++h)_t[r[h]]=s;e&&(o&&(Wt[e]=o),i&&(jt[e]=i))}function Zt(t){$t({type:t.type,names:[],props:{numArgs:0},handler:function(){throw new Error(\"Should never be called.\")},htmlBuilder:t.htmlBuilder,mathmlBuilder:t.mathmlBuilder})}var Kt=function(t){var e=Pt(t,\"ordgroup\");return e?e.body:[t]},Jt=Lt.makeSpan,Qt=[\"leftmost\",\"mbin\",\"mopen\",\"mrel\",\"mop\",\"mpunct\"],te=[\"rightmost\",\"mrel\",\"mclose\",\"mpunct\"],ee={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT},re={mord:\"mord\",mop:\"mop\",mbin:\"mbin\",mrel:\"mrel\",mopen:\"mopen\",mclose:\"mclose\",mpunct:\"mpunct\",minner:\"minner\"},ae=function(t,e,r,a){void 0===a&&(a=[null,null]);for(var n=[],o=0;o<t.length;o++){var i=he(t[o],e);if(i instanceof T){var s=i.children;n.push.apply(n,s)}else n.push(i)}if(!r)return n;var h=e;if(1===t.length){var l=Pt(t[0],\"sizing\")||Pt(t[0],\"styling\");l&&(\"sizing\"===l.type?h=e.havingSize(l.size):\"styling\"===l.type&&(h=e.havingStyle(ee[l.style])))}var m=Jt([a[0]||\"leftmost\"],[],e),u=Jt([a[1]||\"rightmost\"],[],e);return ne(n,function(t,e){var r=e.classes[0],a=t.classes[0];\"mbin\"===r&&c.contains(te,a)?e.classes[0]=\"mord\":\"mbin\"===a&&c.contains(Qt,r)&&(t.classes[0]=\"mord\")},{node:m},u),ne(n,function(t,e){var r=ie(e),a=ie(t),n=r&&a?t.hasClass(\"mtight\")?Yt[r][a]:Xt[r][a]:null;if(n)return Lt.makeGlue(n,h)},{node:m},u),n},ne=function t(e,r,a,n){n&&e.push(n);for(var o=0;o<e.length;o++){var i=e[o],s=oe(i);if(s)t(s.children,r,a);else if(\"mspace\"!==i.classes[0]){var h=r(i,a.node);h&&(a.insertAfter?a.insertAfter(h):(e.unshift(h),o++)),a.node=i,a.insertAfter=function(t){return function(r){e.splice(t+1,0,r),o++}}(o)}}n&&e.pop()},oe=function(t){return t instanceof T||t instanceof I?t:null},ie=function(t,e){return t?(e&&(t=function t(e,r){var a=oe(e);if(a){var n=a.children;if(n.length){if(\"right\"===r)return t(n[n.length-1],\"right\");if(\"left\"===r)return t(n[0],\"left\")}}return e}(t,e)),re[t.classes[0]]||null):null},se=function(t,e){var r=[\"nulldelimiter\"].concat(t.baseSizingClasses());return Jt(e.concat(r))},he=function(t,e,r){if(!t)return Jt();if(Wt[t.type]){var a=Wt[t.type](t,e);if(r&&e.size!==r.size){a=Jt(e.sizingClasses(r),[a],e);var n=e.sizeMultiplier/r.sizeMultiplier;a.height*=n,a.depth*=n}return a}throw new i(\"Got group of unknown type: '\"+t.type+\"'\")};function le(t,e){var r=Jt([\"base\"],t,e),a=Jt([\"strut\"]);return a.style.height=r.height+r.depth+\"em\",a.style.verticalAlign=-r.depth+\"em\",r.children.unshift(a),r}function me(t,e){var r=null;1===t.length&&\"tag\"===t[0].type&&(r=t[0].tag,t=t[0].body);for(var a,n=ae(t,e,!0),o=[],i=[],s=0;s<n.length;s++)if(i.push(n[s]),n[s].hasClass(\"mbin\")||n[s].hasClass(\"mrel\")||n[s].hasClass(\"allowbreak\")){for(var h=!1;s<n.length-1&&n[s+1].hasClass(\"mspace\")&&!n[s+1].hasClass(\"newline\");)s++,i.push(n[s]),n[s].hasClass(\"nobreak\")&&(h=!0);h||(o.push(le(i,e)),i=[])}else n[s].hasClass(\"newline\")&&(i.pop(),i.length>0&&(o.push(le(i,e)),i=[]),o.push(n[s]));i.length>0&&o.push(le(i,e)),r&&((a=le(ae(r,e,!0))).classes=[\"tag\"],o.push(a));var l=Jt([\"katex-html\"],o);if(l.setAttribute(\"aria-hidden\",\"true\"),a){var m=a.children[0];m.style.height=l.height+l.depth+\"em\",m.style.verticalAlign=-l.depth+\"em\"}return l}function ce(t){return new T(t)}var ue=function(){function t(t,e){this.type=void 0,this.attributes=void 0,this.children=void 0,this.type=t,this.attributes={},this.children=e||[]}var e=t.prototype;return e.setAttribute=function(t,e){this.attributes[t]=e},e.getAttribute=function(t){return this.attributes[t]},e.toNode=function(){var t=document.createElementNS(\"http://www.w3.org/1998/Math/MathML\",this.type);for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&t.setAttribute(e,this.attributes[e]);for(var r=0;r<this.children.length;r++)t.appendChild(this.children[r].toNode());return t},e.toMarkup=function(){var t=\"<\"+this.type;for(var e in this.attributes)Object.prototype.hasOwnProperty.call(this.attributes,e)&&(t+=\" \"+e+'=\"',t+=c.escape(this.attributes[e]),t+='\"');t+=\">\";for(var r=0;r<this.children.length;r++)t+=this.children[r].toMarkup();return t+=\"</\"+this.type+\">\"},e.toText=function(){return this.children.map(function(t){return t.toText()}).join(\"\")},t}(),de=function(){function t(t){this.text=void 0,this.text=t}var e=t.prototype;return e.toNode=function(){return document.createTextNode(this.text)},e.toMarkup=function(){return c.escape(this.toText())},e.toText=function(){return this.text},t}(),pe={MathNode:ue,TextNode:de,SpaceNode:function(){function t(t){this.width=void 0,this.character=void 0,this.width=t,this.character=t>=.05555&&t<=.05556?\"\\u200a\":t>=.1666&&t<=.1667?\"\\u2009\":t>=.2222&&t<=.2223?\"\\u2005\":t>=.2777&&t<=.2778?\"\\u2005\\u200a\":t>=-.05556&&t<=-.05555?\"\\u200a\\u2063\":t>=-.1667&&t<=-.1666?\"\\u2009\\u2063\":t>=-.2223&&t<=-.2222?\"\\u205f\\u2063\":t>=-.2778&&t<=-.2777?\"\\u2005\\u2063\":null}var e=t.prototype;return e.toNode=function(){if(this.character)return document.createTextNode(this.character);var t=document.createElementNS(\"http://www.w3.org/1998/Math/MathML\",\"mspace\");return t.setAttribute(\"width\",this.width+\"em\"),t},e.toMarkup=function(){return this.character?\"<mtext>\"+this.character+\"</mtext>\":'<mspace width=\"'+this.width+'em\"/>'},e.toText=function(){return this.character?this.character:\" \"},t}(),newDocumentFragment:ce},fe=function(t,e,r){return!_[e][t]||!_[e][t].replace||55349===t.charCodeAt(0)||tt.hasOwnProperty(t)&&r&&(r.fontFamily&&\"tt\"===r.fontFamily.substr(4,2)||r.font&&\"tt\"===r.font.substr(4,2))||(t=_[e][t].replace),new pe.TextNode(t)},ge=function(t){return 1===t.length?t[0]:new pe.MathNode(\"mrow\",t)},xe=function(t,e){if(\"texttt\"===e.fontFamily)return\"monospace\";if(\"textsf\"===e.fontFamily)return\"textit\"===e.fontShape&&\"textbf\"===e.fontWeight?\"sans-serif-bold-italic\":\"textit\"===e.fontShape?\"sans-serif-italic\":\"textbf\"===e.fontWeight?\"bold-sans-serif\":\"sans-serif\";if(\"textit\"===e.fontShape&&\"textbf\"===e.fontWeight)return\"bold-italic\";if(\"textit\"===e.fontShape)return\"italic\";if(\"textbf\"===e.fontWeight)return\"bold\";var r=e.font;if(!r||\"mathnormal\"===r)return null;var a=t.mode;if(\"mathit\"===r)return\"italic\";if(\"boldsymbol\"===r)return\"bold-italic\";var n=t.text;return c.contains([\"\\\\imath\",\"\\\\jmath\"],n)?null:(_[a][n]&&_[a][n].replace&&(n=_[a][n].replace),V(n,Lt.fontMap[r].fontName,a)?Lt.fontMap[r].variant:null)},ve=function(t,e){for(var r,a=[],n=0;n<t.length;n++){var o=ye(t[n],e);if(o instanceof ue&&r instanceof ue){if(\"mtext\"===o.type&&\"mtext\"===r.type&&o.getAttribute(\"mathvariant\")===r.getAttribute(\"mathvariant\")){var i;(i=r.children).push.apply(i,o.children);continue}if(\"mn\"===o.type&&\"mn\"===r.type){var s;(s=r.children).push.apply(s,o.children);continue}if(\"mi\"===o.type&&1===o.children.length&&\"mn\"===r.type){var h=o.children[0];if(h instanceof de&&\".\"===h.text){var l;(l=r.children).push.apply(l,o.children);continue}}else if(\"mi\"===r.type&&1===r.children.length){var m=r.children[0];if(m instanceof de&&\"\\u0338\"===m.text&&(\"mo\"===o.type||\"mi\"===o.type||\"mn\"===o.type)){var c=o.children[0];c instanceof de&&c.text.length>0&&(c.text=c.text.slice(0,1)+\"\\u0338\"+c.text.slice(1),a.pop())}}}a.push(o),r=o}return a},be=function(t,e){return ge(ve(t,e))},ye=function(t,e){if(!t)return new pe.MathNode(\"mrow\");if(jt[t.type])return jt[t.type](t,e);throw new i(\"Got group of unknown type: '\"+t.type+\"'\")};var we=function(t){return new wt({style:t.displayMode?w.DISPLAY:w.TEXT,maxSize:t.maxSize})},ke=function(t,e){if(e.displayMode){var r=[\"katex-display\"];e.leqno&&r.push(\"leqno\"),e.fleqn&&r.push(\"fleqn\"),t=Lt.makeSpan(r,[t])}return t},Se=function(t,e,r){var a=we(r),n=function(t,e,r){var a,n=ve(t,r);a=1===n.length&&n[0]instanceof ue&&c.contains([\"mrow\",\"mtable\"],n[0].type)?n[0]:new pe.MathNode(\"mrow\",n);var o=new pe.MathNode(\"annotation\",[new pe.TextNode(e)]);o.setAttribute(\"encoding\",\"application/x-tex\");var i=new pe.MathNode(\"semantics\",[a,o]),s=new pe.MathNode(\"math\",[i]);return Lt.makeSpan([\"katex-mathml\"],[s])}(t,e,a),o=me(t,a),i=Lt.makeSpan([\"katex\"],[n,o]);return ke(i,r)},ze={widehat:\"^\",widecheck:\"\\u02c7\",widetilde:\"~\",utilde:\"~\",overleftarrow:\"\\u2190\",underleftarrow:\"\\u2190\",xleftarrow:\"\\u2190\",overrightarrow:\"\\u2192\",underrightarrow:\"\\u2192\",xrightarrow:\"\\u2192\",underbrace:\"\\u23df\",overbrace:\"\\u23de\",overgroup:\"\\u23e0\",undergroup:\"\\u23e1\",overleftrightarrow:\"\\u2194\",underleftrightarrow:\"\\u2194\",xleftrightarrow:\"\\u2194\",Overrightarrow:\"\\u21d2\",xRightarrow:\"\\u21d2\",overleftharpoon:\"\\u21bc\",xleftharpoonup:\"\\u21bc\",overrightharpoon:\"\\u21c0\",xrightharpoonup:\"\\u21c0\",xLeftarrow:\"\\u21d0\",xLeftrightarrow:\"\\u21d4\",xhookleftarrow:\"\\u21a9\",xhookrightarrow:\"\\u21aa\",xmapsto:\"\\u21a6\",xrightharpoondown:\"\\u21c1\",xleftharpoondown:\"\\u21bd\",xrightleftharpoons:\"\\u21cc\",xleftrightharpoons:\"\\u21cb\",xtwoheadleftarrow:\"\\u219e\",xtwoheadrightarrow:\"\\u21a0\",xlongequal:\"=\",xtofrom:\"\\u21c4\",xrightleftarrows:\"\\u21c4\",xrightequilibrium:\"\\u21cc\",xleftequilibrium:\"\\u21cb\"},Me={overrightarrow:[[\"rightarrow\"],.888,522,\"xMaxYMin\"],overleftarrow:[[\"leftarrow\"],.888,522,\"xMinYMin\"],underrightarrow:[[\"rightarrow\"],.888,522,\"xMaxYMin\"],underleftarrow:[[\"leftarrow\"],.888,522,\"xMinYMin\"],xrightarrow:[[\"rightarrow\"],1.469,522,\"xMaxYMin\"],xleftarrow:[[\"leftarrow\"],1.469,522,\"xMinYMin\"],Overrightarrow:[[\"doublerightarrow\"],.888,560,\"xMaxYMin\"],xRightarrow:[[\"doublerightarrow\"],1.526,560,\"xMaxYMin\"],xLeftarrow:[[\"doubleleftarrow\"],1.526,560,\"xMinYMin\"],overleftharpoon:[[\"leftharpoon\"],.888,522,\"xMinYMin\"],xleftharpoonup:[[\"leftharpoon\"],.888,522,\"xMinYMin\"],xleftharpoondown:[[\"leftharpoondown\"],.888,522,\"xMinYMin\"],overrightharpoon:[[\"rightharpoon\"],.888,522,\"xMaxYMin\"],xrightharpoonup:[[\"rightharpoon\"],.888,522,\"xMaxYMin\"],xrightharpoondown:[[\"rightharpoondown\"],.888,522,\"xMaxYMin\"],xlongequal:[[\"longequal\"],.888,334,\"xMinYMin\"],xtwoheadleftarrow:[[\"twoheadleftarrow\"],.888,334,\"xMinYMin\"],xtwoheadrightarrow:[[\"twoheadrightarrow\"],.888,334,\"xMaxYMin\"],overleftrightarrow:[[\"leftarrow\",\"rightarrow\"],.888,522],overbrace:[[\"leftbrace\",\"midbrace\",\"rightbrace\"],1.6,548],underbrace:[[\"leftbraceunder\",\"midbraceunder\",\"rightbraceunder\"],1.6,548],underleftrightarrow:[[\"leftarrow\",\"rightarrow\"],.888,522],xleftrightarrow:[[\"leftarrow\",\"rightarrow\"],1.75,522],xLeftrightarrow:[[\"doubleleftarrow\",\"doublerightarrow\"],1.75,560],xrightleftharpoons:[[\"leftharpoondownplus\",\"rightharpoonplus\"],1.75,716],xleftrightharpoons:[[\"leftharpoonplus\",\"rightharpoondownplus\"],1.75,716],xhookleftarrow:[[\"leftarrow\",\"righthook\"],1.08,522],xhookrightarrow:[[\"lefthook\",\"rightarrow\"],1.08,522],overlinesegment:[[\"leftlinesegment\",\"rightlinesegment\"],.888,522],underlinesegment:[[\"leftlinesegment\",\"rightlinesegment\"],.888,522],overgroup:[[\"leftgroup\",\"rightgroup\"],.888,342],undergroup:[[\"leftgroupunder\",\"rightgroupunder\"],.888,342],xmapsto:[[\"leftmapsto\",\"rightarrow\"],1.5,522],xtofrom:[[\"leftToFrom\",\"rightToFrom\"],1.75,528],xrightleftarrows:[[\"baraboveleftarrow\",\"rightarrowabovebar\"],1.75,901],xrightequilibrium:[[\"baraboveshortleftharpoon\",\"rightharpoonaboveshortbar\"],1.75,716],xleftequilibrium:[[\"shortbaraboveleftharpoon\",\"shortrightharpoonabovebar\"],1.75,716]},Te=function(t){return\"ordgroup\"===t.type?t.body.length:1},Ae=function(t,e,r,a){var n,o=t.height+t.depth+2*r;if(/fbox|color/.test(e)){if(n=Lt.makeSpan([\"stretchy\",e],[],a),\"fbox\"===e){var i=a.color&&a.getColor();i&&(n.style.borderColor=i)}}else{var s=[];/^[bx]cancel$/.test(e)&&s.push(new H({x1:\"0\",y1:\"0\",x2:\"100%\",y2:\"100%\",\"stroke-width\":\"0.046em\"})),/^x?cancel$/.test(e)&&s.push(new H({x1:\"0\",y1:\"100%\",x2:\"100%\",y2:\"0\",\"stroke-width\":\"0.046em\"}));var h=new R(s,{width:\"100%\",height:o+\"em\"});n=Lt.makeSvgSpan([],[h],a)}return n.height=o,n.style.height=o+\"em\",n},Be=function(t){var e=new pe.MathNode(\"mo\",[new pe.TextNode(ze[t.substr(1)])]);return e.setAttribute(\"stretchy\",\"true\"),e},qe=function(t,e){var r=function(){var r=4e5,a=t.label.substr(1);if(c.contains([\"widehat\",\"widecheck\",\"widetilde\",\"utilde\"],a)){var n,o,i,s=Te(t.base);if(s>5)\"widehat\"===a||\"widecheck\"===a?(n=420,r=2364,i=.42,o=a+\"4\"):(n=312,r=2340,i=.34,o=\"tilde4\");else{var h=[1,1,2,2,3,3][s];\"widehat\"===a||\"widecheck\"===a?(r=[0,1062,2364,2364,2364][h],n=[0,239,300,360,420][h],i=[0,.24,.3,.3,.36,.42][h],o=a+h):(r=[0,600,1033,2339,2340][h],n=[0,260,286,306,312][h],i=[0,.26,.286,.3,.306,.34][h],o=\"tilde\"+h)}var l=new L(o),m=new R([l],{width:\"100%\",height:i+\"em\",viewBox:\"0 0 \"+r+\" \"+n,preserveAspectRatio:\"none\"});return{span:Lt.makeSvgSpan([],[m],e),minWidth:0,height:i}}var u,d,p=[],f=Me[a],g=f[0],x=f[1],v=f[2],b=v/1e3,y=g.length;if(1===y)u=[\"hide-tail\"],d=[f[3]];else if(2===y)u=[\"halfarrow-left\",\"halfarrow-right\"],d=[\"xMinYMin\",\"xMaxYMin\"];else{if(3!==y)throw new Error(\"Correct katexImagesData or update code here to support\\n \"+y+\" children.\");u=[\"brace-left\",\"brace-center\",\"brace-right\"],d=[\"xMinYMin\",\"xMidYMin\",\"xMaxYMin\"]}for(var w=0;w<y;w++){var k=new L(g[w]),S=new R([k],{width:\"400em\",height:b+\"em\",viewBox:\"0 0 \"+r+\" \"+v,preserveAspectRatio:d[w]+\" slice\"}),z=Lt.makeSvgSpan([u[w]],[S],e);if(1===y)return{span:z,minWidth:x,height:b};z.style.height=b+\"em\",p.push(z)}return{span:Lt.makeSpan([\"stretchy\"],p,e),minWidth:x,height:b}}(),a=r.span,n=r.minWidth,o=r.height;return a.height=o,a.style.height=o+\"em\",n>0&&(a.style.minWidth=n+\"em\"),a},Ce=function(t,e){var r,a,n,o=Pt(t,\"supsub\");o?(r=(a=Ht(o.base,\"accent\")).base,o.base=r,n=function(t){if(t instanceof N)return t;throw new Error(\"Expected span<HtmlDomNode> but got \"+String(t)+\".\")}(he(o,e)),o.base=a):r=(a=Ht(t,\"accent\")).base;var i=he(r,e.havingCrampedStyle()),s=0;if(a.isShifty&&c.isCharacterBox(r)){var h=c.getBaseElem(r);s=function(t){if(t instanceof E)return t;throw new Error(\"Expected symbolNode but got \"+String(t)+\".\")}(he(h,e.havingCrampedStyle())).skew}var l,m=Math.min(i.height,e.fontMetrics().xHeight);if(a.isStretchy)l=qe(a,e),l=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:i},{type:\"elem\",elem:l,wrapperClasses:[\"svg-align\"],wrapperStyle:s>0?{width:\"calc(100% - \"+2*s+\"em)\",marginLeft:2*s+\"em\"}:void 0}]},e);else{var u,d;\"\\\\vec\"===a.label?(u=Lt.staticSvg(\"vec\",e),d=Lt.svgData.vec[1]):((u=Lt.makeSymbol(a.label,\"Main-Regular\",a.mode,e)).italic=0,d=u.width),l=Lt.makeSpan([\"accent-body\"],[u]);var p=\"\\\\textcircled\"===a.label;p&&(l.classes.push(\"accent-full\"),m=i.height);var f=s;p||(f-=d/2),l.style.left=f+\"em\",\"\\\\textcircled\"===a.label&&(l.style.top=\".2em\"),l=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:i},{type:\"kern\",size:-m},{type:\"elem\",elem:l}]},e)}var g=Lt.makeSpan([\"mord\",\"accent\"],[l],e);return n?(n.children[0]=g,n.height=Math.max(g.height,n.height),n.classes[0]=\"mord\",n):g},Ne=function(t,e){var r=t.isStretchy?Be(t.label):new pe.MathNode(\"mo\",[fe(t.label,t.mode)]),a=new pe.MathNode(\"mover\",[ye(t.base,e),r]);return a.setAttribute(\"accent\",\"true\"),a},Ie=new RegExp([\"\\\\acute\",\"\\\\grave\",\"\\\\ddot\",\"\\\\tilde\",\"\\\\bar\",\"\\\\breve\",\"\\\\check\",\"\\\\hat\",\"\\\\vec\",\"\\\\dot\",\"\\\\mathring\"].map(function(t){return\"\\\\\"+t}).join(\"|\"));$t({type:\"accent\",names:[\"\\\\acute\",\"\\\\grave\",\"\\\\ddot\",\"\\\\tilde\",\"\\\\bar\",\"\\\\breve\",\"\\\\check\",\"\\\\hat\",\"\\\\vec\",\"\\\\dot\",\"\\\\mathring\",\"\\\\widecheck\",\"\\\\widehat\",\"\\\\widetilde\",\"\\\\overrightarrow\",\"\\\\overleftarrow\",\"\\\\Overrightarrow\",\"\\\\overleftrightarrow\",\"\\\\overgroup\",\"\\\\overlinesegment\",\"\\\\overleftharpoon\",\"\\\\overrightharpoon\"],props:{numArgs:1},handler:function(t,e){var r=e[0],a=!Ie.test(t.funcName),n=!a||\"\\\\widehat\"===t.funcName||\"\\\\widetilde\"===t.funcName||\"\\\\widecheck\"===t.funcName;return{type:\"accent\",mode:t.parser.mode,label:t.funcName,isStretchy:a,isShifty:n,base:r}},htmlBuilder:Ce,mathmlBuilder:Ne}),$t({type:\"accent\",names:[\"\\\\'\",\"\\\\`\",\"\\\\^\",\"\\\\~\",\"\\\\=\",\"\\\\u\",\"\\\\.\",'\\\\\"',\"\\\\r\",\"\\\\H\",\"\\\\v\",\"\\\\textcircled\"],props:{numArgs:1,allowedInText:!0,allowedInMath:!1},handler:function(t,e){var r=e[0];return{type:\"accent\",mode:t.parser.mode,label:t.funcName,isStretchy:!1,isShifty:!0,base:r}},htmlBuilder:Ce,mathmlBuilder:Ne}),$t({type:\"accentUnder\",names:[\"\\\\underleftarrow\",\"\\\\underrightarrow\",\"\\\\underleftrightarrow\",\"\\\\undergroup\",\"\\\\underlinesegment\",\"\\\\utilde\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:\"accentUnder\",mode:r.mode,label:a,base:n}},htmlBuilder:function(t,e){var r=he(t.base,e),a=qe(t,e),n=\"\\\\utilde\"===t.label?.12:0,o=Lt.makeVList({positionType:\"bottom\",positionData:a.height+n,children:[{type:\"elem\",elem:a,wrapperClasses:[\"svg-align\"]},{type:\"kern\",size:n},{type:\"elem\",elem:r}]},e);return Lt.makeSpan([\"mord\",\"accentunder\"],[o],e)},mathmlBuilder:function(t,e){var r=Be(t.label),a=new pe.MathNode(\"munder\",[ye(t.base,e),r]);return a.setAttribute(\"accentunder\",\"true\"),a}});var Oe=function(t){var e=new pe.MathNode(\"mpadded\",t?[t]:[]);return e.setAttribute(\"width\",\"+0.6em\"),e.setAttribute(\"lspace\",\"0.3em\"),e};$t({type:\"xArrow\",names:[\"\\\\xleftarrow\",\"\\\\xrightarrow\",\"\\\\xLeftarrow\",\"\\\\xRightarrow\",\"\\\\xleftrightarrow\",\"\\\\xLeftrightarrow\",\"\\\\xhookleftarrow\",\"\\\\xhookrightarrow\",\"\\\\xmapsto\",\"\\\\xrightharpoondown\",\"\\\\xrightharpoonup\",\"\\\\xleftharpoondown\",\"\\\\xleftharpoonup\",\"\\\\xrightleftharpoons\",\"\\\\xleftrightharpoons\",\"\\\\xlongequal\",\"\\\\xtwoheadrightarrow\",\"\\\\xtwoheadleftarrow\",\"\\\\xtofrom\",\"\\\\xrightleftarrows\",\"\\\\xrightequilibrium\",\"\\\\xleftequilibrium\"],props:{numArgs:1,numOptionalArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName;return{type:\"xArrow\",mode:a.mode,label:n,body:e[0],below:r[0]}},htmlBuilder:function(t,e){var r,a=e.style,n=e.havingStyle(a.sup()),o=Lt.wrapFragment(he(t.body,n,e),e);o.classes.push(\"x-arrow-pad\"),t.below&&(n=e.havingStyle(a.sub()),(r=Lt.wrapFragment(he(t.below,n,e),e)).classes.push(\"x-arrow-pad\"));var i,s=qe(t,e),h=-e.fontMetrics().axisHeight+.5*s.height,l=-e.fontMetrics().axisHeight-.5*s.height-.111;if((o.depth>.25||\"\\\\xleftequilibrium\"===t.label)&&(l-=o.depth),r){var m=-e.fontMetrics().axisHeight+r.height+.5*s.height+.111;i=Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:o,shift:l},{type:\"elem\",elem:s,shift:h},{type:\"elem\",elem:r,shift:m}]},e)}else i=Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:o,shift:l},{type:\"elem\",elem:s,shift:h}]},e);return i.children[0].children[0].children[1].classes.push(\"svg-align\"),Lt.makeSpan([\"mrel\",\"x-arrow\"],[i],e)},mathmlBuilder:function(t,e){var r,a=Be(t.label);if(t.body){var n=Oe(ye(t.body,e));if(t.below){var o=Oe(ye(t.below,e));r=new pe.MathNode(\"munderover\",[a,o,n])}else r=new pe.MathNode(\"mover\",[a,n])}else if(t.below){var i=Oe(ye(t.below,e));r=new pe.MathNode(\"munder\",[a,i])}else r=Oe(),r=new pe.MathNode(\"mover\",[a,r]);return r}}),$t({type:\"textord\",names:[\"\\\\@char\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){for(var r=t.parser,a=Ht(e[0],\"ordgroup\").body,n=\"\",o=0;o<a.length;o++){n+=Ht(a[o],\"textord\").text}var s=parseInt(n);if(isNaN(s))throw new i(\"\\\\@char has non-numeric argument \"+n);return{type:\"textord\",mode:r.mode,text:String.fromCharCode(s)}}});var Ee=function(t,e){var r=ae(t.body,e.withColor(t.color),!1);return Lt.makeFragment(r)},Re=function(t,e){var r=ve(t.body,e.withColor(t.color)),a=new pe.MathNode(\"mstyle\",r);return a.setAttribute(\"mathcolor\",t.color),a};$t({type:\"color\",names:[\"\\\\textcolor\"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:[\"color\",\"original\"]},handler:function(t,e){var r=t.parser,a=Ht(e[0],\"color-token\").color,n=e[1];return{type:\"color\",mode:r.mode,color:a,body:Kt(n)}},htmlBuilder:Ee,mathmlBuilder:Re}),$t({type:\"color\",names:[\"\\\\color\"],props:{numArgs:1,allowedInText:!0,greediness:3,argTypes:[\"color\"]},handler:function(t,e){var r=t.parser,a=t.breakOnTokenText,n=Ht(e[0],\"color-token\").color,o=r.parseExpression(!0,a);return{type:\"color\",mode:r.mode,color:n,body:o}},htmlBuilder:Ee,mathmlBuilder:Re}),$t({type:\"cr\",names:[\"\\\\cr\",\"\\\\newline\"],props:{numArgs:0,numOptionalArgs:1,argTypes:[\"size\"],allowedInText:!0},handler:function(t,e,r){var a=t.parser,n=t.funcName,o=r[0],i=\"\\\\cr\"===n,s=!1;return i||(s=!a.settings.displayMode||!a.settings.useStrictBehavior(\"newLineInDisplayMode\",\"In LaTeX, \\\\\\\\ or \\\\newline does nothing in display mode\")),{type:\"cr\",mode:a.mode,newLine:s,newRow:i,size:o&&Ht(o,\"size\").value}},htmlBuilder:function(t,e){if(t.newRow)throw new i(\"\\\\cr valid only within a tabular/array environment\");var r=Lt.makeSpan([\"mspace\"],[],e);return t.newLine&&(r.classes.push(\"newline\"),t.size&&(r.style.marginTop=zt(t.size,e)+\"em\")),r},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mspace\");return t.newLine&&(r.setAttribute(\"linebreak\",\"newline\"),t.size&&r.setAttribute(\"height\",zt(t.size,e)+\"em\")),r}});var Le=function(t,e,r){var a=V(_.math[t]&&_.math[t].replace||t,e,r);if(!a)throw new Error(\"Unsupported symbol \"+t+\" and font size \"+e+\".\");return a},He=function(t,e,r,a){var n=r.havingBaseStyle(e),o=Lt.makeSpan(a.concat(n.sizingClasses(r)),[t],r),i=n.sizeMultiplier/r.sizeMultiplier;return o.height*=i,o.depth*=i,o.maxFontSize=n.sizeMultiplier,o},Pe=function(t,e,r){var a=e.havingBaseStyle(r),n=(1-e.sizeMultiplier/a.sizeMultiplier)*e.fontMetrics().axisHeight;t.classes.push(\"delimcenter\"),t.style.top=n+\"em\",t.height-=n,t.depth+=n},De=function(t,e,r,a,n,o){var i=function(t,e,r,a){return Lt.makeSymbol(t,\"Size\"+e+\"-Regular\",r,a)}(t,e,n,a),s=He(Lt.makeSpan([\"delimsizing\",\"size\"+e],[i],a),w.TEXT,a,o);return r&&Pe(s,a,w.TEXT),s},Fe=function(t,e,r){var a;return a=\"Size1-Regular\"===e?\"delim-size1\":\"delim-size4\",{type:\"elem\",elem:Lt.makeSpan([\"delimsizinginner\",a],[Lt.makeSpan([],[Lt.makeSymbol(t,e,r)])])}},Ve=function(t,e,r,a,n,o){var i,s,h,l;i=h=l=t,s=null;var m=\"Size1-Regular\";\"\\\\uparrow\"===t?h=l=\"\\u23d0\":\"\\\\Uparrow\"===t?h=l=\"\\u2016\":\"\\\\downarrow\"===t?i=h=\"\\u23d0\":\"\\\\Downarrow\"===t?i=h=\"\\u2016\":\"\\\\updownarrow\"===t?(i=\"\\\\uparrow\",h=\"\\u23d0\",l=\"\\\\downarrow\"):\"\\\\Updownarrow\"===t?(i=\"\\\\Uparrow\",h=\"\\u2016\",l=\"\\\\Downarrow\"):\"[\"===t||\"\\\\lbrack\"===t?(i=\"\\u23a1\",h=\"\\u23a2\",l=\"\\u23a3\",m=\"Size4-Regular\"):\"]\"===t||\"\\\\rbrack\"===t?(i=\"\\u23a4\",h=\"\\u23a5\",l=\"\\u23a6\",m=\"Size4-Regular\"):\"\\\\lfloor\"===t||\"\\u230a\"===t?(h=i=\"\\u23a2\",l=\"\\u23a3\",m=\"Size4-Regular\"):\"\\\\lceil\"===t||\"\\u2308\"===t?(i=\"\\u23a1\",h=l=\"\\u23a2\",m=\"Size4-Regular\"):\"\\\\rfloor\"===t||\"\\u230b\"===t?(h=i=\"\\u23a5\",l=\"\\u23a6\",m=\"Size4-Regular\"):\"\\\\rceil\"===t||\"\\u2309\"===t?(i=\"\\u23a4\",h=l=\"\\u23a5\",m=\"Size4-Regular\"):\"(\"===t||\"\\\\lparen\"===t?(i=\"\\u239b\",h=\"\\u239c\",l=\"\\u239d\",m=\"Size4-Regular\"):\")\"===t||\"\\\\rparen\"===t?(i=\"\\u239e\",h=\"\\u239f\",l=\"\\u23a0\",m=\"Size4-Regular\"):\"\\\\{\"===t||\"\\\\lbrace\"===t?(i=\"\\u23a7\",s=\"\\u23a8\",l=\"\\u23a9\",h=\"\\u23aa\",m=\"Size4-Regular\"):\"\\\\}\"===t||\"\\\\rbrace\"===t?(i=\"\\u23ab\",s=\"\\u23ac\",l=\"\\u23ad\",h=\"\\u23aa\",m=\"Size4-Regular\"):\"\\\\lgroup\"===t||\"\\u27ee\"===t?(i=\"\\u23a7\",l=\"\\u23a9\",h=\"\\u23aa\",m=\"Size4-Regular\"):\"\\\\rgroup\"===t||\"\\u27ef\"===t?(i=\"\\u23ab\",l=\"\\u23ad\",h=\"\\u23aa\",m=\"Size4-Regular\"):\"\\\\lmoustache\"===t||\"\\u23b0\"===t?(i=\"\\u23a7\",l=\"\\u23ad\",h=\"\\u23aa\",m=\"Size4-Regular\"):\"\\\\rmoustache\"!==t&&\"\\u23b1\"!==t||(i=\"\\u23ab\",l=\"\\u23a9\",h=\"\\u23aa\",m=\"Size4-Regular\");var c=Le(i,m,n),u=c.height+c.depth,d=Le(h,m,n),p=d.height+d.depth,f=Le(l,m,n),g=f.height+f.depth,x=0,v=1;if(null!==s){var b=Le(s,m,n);x=b.height+b.depth,v=2}var y=u+g+x,k=Math.ceil((e-y)/(v*p)),S=y+k*v*p,z=a.fontMetrics().axisHeight;r&&(z*=a.sizeMultiplier);var M=S/2-z,T=[];if(T.push(Fe(l,m,n)),null===s)for(var A=0;A<k;A++)T.push(Fe(h,m,n));else{for(var B=0;B<k;B++)T.push(Fe(h,m,n));T.push(Fe(s,m,n));for(var q=0;q<k;q++)T.push(Fe(h,m,n))}T.push(Fe(i,m,n));var C=a.havingBaseStyle(w.TEXT),N=Lt.makeVList({positionType:\"bottom\",positionData:M,children:T},C);return He(Lt.makeSpan([\"delimsizing\",\"mult\"],[N],C),w.TEXT,a,o)},Ue=function(t,e,r,a){var n;\"sqrtTall\"===t&&(n=\"M702 80H400000v40H742v\"+(r-54-80)+\"l-4 4-4 4c-.667.7\\n-2 1.5-4 2.5s-4.167 1.833-6.5 2.5-5.5 1-9.5 1h-12l-28-84c-16.667-52-96.667\\n-294.333-240-727l-212 -643 -85 170c-4-3.333-8.333-7.667-13 -13l-13-13l77-155\\n 77-156c66 199.333 139 419.667 219 661 l218 661zM702 80H400000v40H742z\");var o=new L(t,n),i=new R([o],{width:\"400em\",height:e+\"em\",viewBox:\"0 0 400000 \"+r,preserveAspectRatio:\"xMinYMin slice\"});return Lt.makeSvgSpan([\"hide-tail\"],[i],a)},Ge=[\"(\",\"\\\\lparen\",\")\",\"\\\\rparen\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\u230a\",\"\\u230b\",\"\\\\lceil\",\"\\\\rceil\",\"\\u2308\",\"\\u2309\",\"\\\\surd\"],Xe=[\"\\\\uparrow\",\"\\\\downarrow\",\"\\\\updownarrow\",\"\\\\Uparrow\",\"\\\\Downarrow\",\"\\\\Updownarrow\",\"|\",\"\\\\|\",\"\\\\vert\",\"\\\\Vert\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\u27ee\",\"\\u27ef\",\"\\\\lmoustache\",\"\\\\rmoustache\",\"\\u23b0\",\"\\u23b1\"],Ye=[\"<\",\">\",\"\\\\langle\",\"\\\\rangle\",\"/\",\"\\\\backslash\",\"\\\\lt\",\"\\\\gt\"],_e=[0,1.2,1.8,2.4,3],We=[{type:\"small\",style:w.SCRIPTSCRIPT},{type:\"small\",style:w.SCRIPT},{type:\"small\",style:w.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4}],je=[{type:\"small\",style:w.SCRIPTSCRIPT},{type:\"small\",style:w.SCRIPT},{type:\"small\",style:w.TEXT},{type:\"stack\"}],$e=[{type:\"small\",style:w.SCRIPTSCRIPT},{type:\"small\",style:w.SCRIPT},{type:\"small\",style:w.TEXT},{type:\"large\",size:1},{type:\"large\",size:2},{type:\"large\",size:3},{type:\"large\",size:4},{type:\"stack\"}],Ze=function(t){if(\"small\"===t.type)return\"Main-Regular\";if(\"large\"===t.type)return\"Size\"+t.size+\"-Regular\";if(\"stack\"===t.type)return\"Size4-Regular\";throw new Error(\"Add support for delim type '\"+t.type+\"' here.\")},Ke=function(t,e,r,a){for(var n=Math.min(2,3-a.style.size);n<r.length&&\"stack\"!==r[n].type;n++){var o=Le(t,Ze(r[n]),\"math\"),i=o.height+o.depth;if(\"small\"===r[n].type&&(i*=a.havingBaseStyle(r[n].style).sizeMultiplier),i>e)return r[n]}return r[r.length-1]},Je=function(t,e,r,a,n,o){var i;\"<\"===t||\"\\\\lt\"===t||\"\\u27e8\"===t?t=\"\\\\langle\":\">\"!==t&&\"\\\\gt\"!==t&&\"\\u27e9\"!==t||(t=\"\\\\rangle\"),i=c.contains(Ye,t)?We:c.contains(Ge,t)?$e:je;var s=Ke(t,e,i,a);return\"small\"===s.type?function(t,e,r,a,n,o){var i=Lt.makeSymbol(t,\"Main-Regular\",n,a),s=He(i,e,a,o);return r&&Pe(s,a,e),s}(t,s.style,r,a,n,o):\"large\"===s.type?De(t,s.size,r,a,n,o):Ve(t,e,r,a,n,o)},Qe=function(t,e){var r,a,n=e.havingBaseSizing(),o=Ke(\"\\\\surd\",t*n.sizeMultiplier,$e,n),i=n.sizeMultiplier,s=0,h=0,l=0;return\"small\"===o.type?(t<1?i=1:t<1.4&&(i=.7),h=1/i,(r=Ue(\"sqrtMain\",s=1.08/i,l=1080,e)).style.minWidth=\"0.853em\",a=.833/i):\"large\"===o.type?(l=1080*_e[o.size],h=_e[o.size]/i,s=(_e[o.size]+.08)/i,(r=Ue(\"sqrtSize\"+o.size,s,l,e)).style.minWidth=\"1.02em\",a=1/i):(s=t+.08,h=t,l=Math.floor(1e3*t)+80,(r=Ue(\"sqrtTall\",s,l,e)).style.minWidth=\"0.742em\",a=1.056),r.height=h,r.style.height=s+\"em\",{span:r,advanceWidth:a,ruleWidth:e.fontMetrics().sqrtRuleThickness*i}},tr=function(t,e,r,a,n){if(\"<\"===t||\"\\\\lt\"===t||\"\\u27e8\"===t?t=\"\\\\langle\":\">\"!==t&&\"\\\\gt\"!==t&&\"\\u27e9\"!==t||(t=\"\\\\rangle\"),c.contains(Ge,t)||c.contains(Ye,t))return De(t,e,!1,r,a,n);if(c.contains(Xe,t))return Ve(t,_e[e],!1,r,a,n);throw new i(\"Illegal delimiter: '\"+t+\"'\")},er=Je,rr=function(t,e,r,a,n,o){var i=a.fontMetrics().axisHeight*a.sizeMultiplier,s=5/a.fontMetrics().ptPerEm,h=Math.max(e-i,r+i),l=Math.max(h/500*901,2*h-s);return Je(t,l,!0,a,n,o)},ar={\"\\\\bigl\":{mclass:\"mopen\",size:1},\"\\\\Bigl\":{mclass:\"mopen\",size:2},\"\\\\biggl\":{mclass:\"mopen\",size:3},\"\\\\Biggl\":{mclass:\"mopen\",size:4},\"\\\\bigr\":{mclass:\"mclose\",size:1},\"\\\\Bigr\":{mclass:\"mclose\",size:2},\"\\\\biggr\":{mclass:\"mclose\",size:3},\"\\\\Biggr\":{mclass:\"mclose\",size:4},\"\\\\bigm\":{mclass:\"mrel\",size:1},\"\\\\Bigm\":{mclass:\"mrel\",size:2},\"\\\\biggm\":{mclass:\"mrel\",size:3},\"\\\\Biggm\":{mclass:\"mrel\",size:4},\"\\\\big\":{mclass:\"mord\",size:1},\"\\\\Big\":{mclass:\"mord\",size:2},\"\\\\bigg\":{mclass:\"mord\",size:3},\"\\\\Bigg\":{mclass:\"mord\",size:4}},nr=[\"(\",\"\\\\lparen\",\")\",\"\\\\rparen\",\"[\",\"\\\\lbrack\",\"]\",\"\\\\rbrack\",\"\\\\{\",\"\\\\lbrace\",\"\\\\}\",\"\\\\rbrace\",\"\\\\lfloor\",\"\\\\rfloor\",\"\\u230a\",\"\\u230b\",\"\\\\lceil\",\"\\\\rceil\",\"\\u2308\",\"\\u2309\",\"<\",\">\",\"\\\\langle\",\"\\u27e8\",\"\\\\rangle\",\"\\u27e9\",\"\\\\lt\",\"\\\\gt\",\"\\\\lvert\",\"\\\\rvert\",\"\\\\lVert\",\"\\\\rVert\",\"\\\\lgroup\",\"\\\\rgroup\",\"\\u27ee\",\"\\u27ef\",\"\\\\lmoustache\",\"\\\\rmoustache\",\"\\u23b0\",\"\\u23b1\",\"/\",\"\\\\backslash\",\"|\",\"\\\\vert\",\"\\\\|\",\"\\\\Vert\",\"\\\\uparrow\",\"\\\\Uparrow\",\"\\\\downarrow\",\"\\\\Downarrow\",\"\\\\updownarrow\",\"\\\\Updownarrow\",\".\"];function or(t,e){var r=Ft(t);if(r&&c.contains(nr,r.text))return r;throw new i(\"Invalid delimiter: '\"+(r?r.text:JSON.stringify(t))+\"' after '\"+e.funcName+\"'\",t)}function ir(t){if(!t.body)throw new Error(\"Bug: The leftright ParseNode wasn't fully parsed.\")}$t({type:\"delimsizing\",names:[\"\\\\bigl\",\"\\\\Bigl\",\"\\\\biggl\",\"\\\\Biggl\",\"\\\\bigr\",\"\\\\Bigr\",\"\\\\biggr\",\"\\\\Biggr\",\"\\\\bigm\",\"\\\\Bigm\",\"\\\\biggm\",\"\\\\Biggm\",\"\\\\big\",\"\\\\Big\",\"\\\\bigg\",\"\\\\Bigg\"],props:{numArgs:1},handler:function(t,e){var r=or(e[0],t);return{type:\"delimsizing\",mode:t.parser.mode,size:ar[t.funcName].size,mclass:ar[t.funcName].mclass,delim:r.text}},htmlBuilder:function(t,e){return\".\"===t.delim?Lt.makeSpan([t.mclass]):tr(t.delim,t.size,e,t.mode,[t.mclass])},mathmlBuilder:function(t){var e=[];\".\"!==t.delim&&e.push(fe(t.delim,t.mode));var r=new pe.MathNode(\"mo\",e);return\"mopen\"===t.mclass||\"mclose\"===t.mclass?r.setAttribute(\"fence\",\"true\"):r.setAttribute(\"fence\",\"false\"),r}}),$t({type:\"leftright-right\",names:[\"\\\\right\"],props:{numArgs:1},handler:function(t,e){return{type:\"leftright-right\",mode:t.parser.mode,delim:or(e[0],t).text}}}),$t({type:\"leftright\",names:[\"\\\\left\"],props:{numArgs:1},handler:function(t,e){var r=or(e[0],t),a=t.parser;++a.leftrightDepth;var n=a.parseExpression(!1);--a.leftrightDepth,a.expect(\"\\\\right\",!1);var o=Ht(a.parseFunction(),\"leftright-right\");return{type:\"leftright\",mode:a.mode,body:n,left:r.text,right:o.delim}},htmlBuilder:function(t,e){ir(t);for(var r,a,n=ae(t.body,e,!0,[\"mopen\",\"mclose\"]),o=0,i=0,s=!1,h=0;h<n.length;h++)n[h].isMiddle?s=!0:(o=Math.max(n[h].height,o),i=Math.max(n[h].depth,i));if(o*=e.sizeMultiplier,i*=e.sizeMultiplier,r=\".\"===t.left?se(e,[\"mopen\"]):rr(t.left,o,i,e,t.mode,[\"mopen\"]),n.unshift(r),s)for(var l=1;l<n.length;l++){var m=n[l].isMiddle;m&&(n[l]=rr(m.delim,o,i,m.options,t.mode,[]))}return a=\".\"===t.right?se(e,[\"mclose\"]):rr(t.right,o,i,e,t.mode,[\"mclose\"]),n.push(a),Lt.makeSpan([\"minner\"],n,e)},mathmlBuilder:function(t,e){ir(t);var r=ve(t.body,e);if(\".\"!==t.left){var a=new pe.MathNode(\"mo\",[fe(t.left,t.mode)]);a.setAttribute(\"fence\",\"true\"),r.unshift(a)}if(\".\"!==t.right){var n=new pe.MathNode(\"mo\",[fe(t.right,t.mode)]);n.setAttribute(\"fence\",\"true\"),r.push(n)}return ge(r)}}),$t({type:\"middle\",names:[\"\\\\middle\"],props:{numArgs:1},handler:function(t,e){var r=or(e[0],t);if(!t.parser.leftrightDepth)throw new i(\"\\\\middle without preceding \\\\left\",r);return{type:\"middle\",mode:t.parser.mode,delim:r.text}},htmlBuilder:function(t,e){var r;if(\".\"===t.delim)r=se(e,[]);else{r=tr(t.delim,1,e,t.mode,[]);var a={delim:t.delim,options:e};r.isMiddle=a}return r},mathmlBuilder:function(t,e){var r=\"\\\\vert\"===t.delim||\"|\"===t.delim?fe(\"|\",\"text\"):fe(t.delim,t.mode),a=new pe.MathNode(\"mo\",[r]);return a.setAttribute(\"fence\",\"true\"),a.setAttribute(\"lspace\",\"0.05em\"),a.setAttribute(\"rspace\",\"0.05em\"),a}});var sr=function(t,e){var r,a,n=Lt.wrapFragment(he(t.body,e),e),o=t.label.substr(1),i=e.sizeMultiplier,s=0,h=c.isCharacterBox(t.body);if(\"sout\"===o)(r=Lt.makeSpan([\"stretchy\",\"sout\"])).height=e.fontMetrics().defaultRuleThickness/i,s=-.5*e.fontMetrics().xHeight;else{/cancel/.test(o)?h||n.classes.push(\"cancel-pad\"):n.classes.push(\"boxpad\");var l=0;l=/box/.test(o)?\"colorbox\"===o?.3:.34:h?.2:0,r=Ae(n,o,l,e),s=n.depth+l,t.backgroundColor&&(r.style.backgroundColor=t.backgroundColor,t.borderColor&&(r.style.borderColor=t.borderColor))}return a=t.backgroundColor?Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:r,shift:s},{type:\"elem\",elem:n,shift:0}]},e):Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:n,shift:0},{type:\"elem\",elem:r,shift:s,wrapperClasses:/cancel/.test(o)?[\"svg-align\"]:[]}]},e),/cancel/.test(o)&&(a.height=n.height,a.depth=n.depth),/cancel/.test(o)&&!h?Lt.makeSpan([\"mord\",\"cancel-lap\"],[a],e):Lt.makeSpan([\"mord\"],[a],e)},hr=function(t,e){var r=new pe.MathNode(t.label.indexOf(\"colorbox\")>-1?\"mpadded\":\"menclose\",[ye(t.body,e)]);switch(t.label){case\"\\\\cancel\":r.setAttribute(\"notation\",\"updiagonalstrike\");break;case\"\\\\bcancel\":r.setAttribute(\"notation\",\"downdiagonalstrike\");break;case\"\\\\sout\":r.setAttribute(\"notation\",\"horizontalstrike\");break;case\"\\\\fbox\":r.setAttribute(\"notation\",\"box\");break;case\"\\\\fcolorbox\":case\"\\\\colorbox\":if(r.setAttribute(\"width\",\"+6pt\"),r.setAttribute(\"height\",\"+6pt\"),r.setAttribute(\"lspace\",\"3pt\"),r.setAttribute(\"voffset\",\"3pt\"),\"\\\\fcolorbox\"===t.label){var a=e.fontMetrics().defaultRuleThickness;r.setAttribute(\"style\",\"border: \"+a+\"em solid \"+String(t.borderColor))}break;case\"\\\\xcancel\":r.setAttribute(\"notation\",\"updiagonalstrike downdiagonalstrike\")}return t.backgroundColor&&r.setAttribute(\"mathbackground\",t.backgroundColor),r};$t({type:\"enclose\",names:[\"\\\\colorbox\"],props:{numArgs:2,allowedInText:!0,greediness:3,argTypes:[\"color\",\"text\"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,o=Ht(e[0],\"color-token\").color,i=e[1];return{type:\"enclose\",mode:a.mode,label:n,backgroundColor:o,body:i}},htmlBuilder:sr,mathmlBuilder:hr}),$t({type:\"enclose\",names:[\"\\\\fcolorbox\"],props:{numArgs:3,allowedInText:!0,greediness:3,argTypes:[\"color\",\"color\",\"text\"]},handler:function(t,e,r){var a=t.parser,n=t.funcName,o=Ht(e[0],\"color-token\").color,i=Ht(e[1],\"color-token\").color,s=e[2];return{type:\"enclose\",mode:a.mode,label:n,backgroundColor:i,borderColor:o,body:s}},htmlBuilder:sr,mathmlBuilder:hr}),$t({type:\"enclose\",names:[\"\\\\fbox\"],props:{numArgs:1,argTypes:[\"text\"],allowedInText:!0},handler:function(t,e){return{type:\"enclose\",mode:t.parser.mode,label:\"\\\\fbox\",body:e[0]}}}),$t({type:\"enclose\",names:[\"\\\\cancel\",\"\\\\bcancel\",\"\\\\xcancel\",\"\\\\sout\"],props:{numArgs:1},handler:function(t,e,r){var a=t.parser,n=t.funcName,o=e[0];return{type:\"enclose\",mode:a.mode,label:n,body:o}},htmlBuilder:sr,mathmlBuilder:hr});var lr={};function mr(t){for(var e=t.type,r=t.names,a=t.props,n=t.handler,o=t.htmlBuilder,i=t.mathmlBuilder,s={type:e,numArgs:a.numArgs||0,greediness:1,allowedInText:!1,numOptionalArgs:0,handler:n},h=0;h<r.length;++h)lr[r[h]]=s;o&&(Wt[e]=o),i&&(jt[e]=i)}function cr(t){var e=[];t.consumeSpaces();for(var r=t.nextToken.text;\"\\\\hline\"===r||\"\\\\hdashline\"===r;)t.consume(),e.push(\"\\\\hdashline\"===r),t.consumeSpaces(),r=t.nextToken.text;return e}function ur(t,e,r){var a=e.hskipBeforeAndAfter,n=e.addJot,o=e.cols,s=e.arraystretch,h=e.colSeparationType;if(t.gullet.beginGroup(),t.gullet.macros.set(\"\\\\\\\\\",\"\\\\cr\"),!s){var l=t.gullet.expandMacroAsText(\"\\\\arraystretch\");if(null==l)s=1;else if(!(s=parseFloat(l))||s<0)throw new i(\"Invalid \\\\arraystretch: \"+l)}var m=[],c=[m],u=[],d=[];for(d.push(cr(t));;){var p=t.parseExpression(!1,\"\\\\cr\");p={type:\"ordgroup\",mode:t.mode,body:p},r&&(p={type:\"styling\",mode:t.mode,style:r,body:[p]}),m.push(p);var f=t.nextToken.text;if(\"&\"===f)t.consume();else{if(\"\\\\end\"===f){1===m.length&&\"styling\"===p.type&&0===p.body[0].body.length&&c.pop(),d.length<c.length+1&&d.push([]);break}if(\"\\\\cr\"!==f)throw new i(\"Expected & or \\\\\\\\ or \\\\cr or \\\\end\",t.nextToken);var g=Ht(t.parseFunction(),\"cr\");u.push(g.size),d.push(cr(t)),m=[],c.push(m)}}return t.gullet.endGroup(),{type:\"array\",mode:t.mode,addJot:n,arraystretch:s,body:c,cols:o,rowGaps:u,hskipBeforeAndAfter:a,hLinesBeforeRow:d,colSeparationType:h}}function dr(t){return\"d\"===t.substr(0,1)?\"display\":\"text\"}var pr=function(t,e){var r,a,n=t.body.length,o=t.hLinesBeforeRow,s=0,h=new Array(n),l=[],m=1/e.fontMetrics().ptPerEm,u=5*m,d=12*m,p=3*m,f=t.arraystretch*d,g=.7*f,x=.3*f,v=0;function b(t){for(var e=0;e<t.length;++e)e>0&&(v+=.25),l.push({pos:v,isDashed:t[e]})}for(b(o[0]),r=0;r<t.body.length;++r){var y=t.body[r],w=g,k=x;s<y.length&&(s=y.length);var S=new Array(y.length);for(a=0;a<y.length;++a){var z=he(y[a],e);k<z.depth&&(k=z.depth),w<z.height&&(w=z.height),S[a]=z}var M=t.rowGaps[r],T=0;M&&(T=zt(M,e))>0&&(k<(T+=x)&&(k=T),T=0),t.addJot&&(k+=p),S.height=w,S.depth=k,v+=w,S.pos=v,v+=k+T,h[r]=S,b(o[r+1])}var A,B,q=v/2+e.fontMetrics().axisHeight,C=t.cols||[],N=[];for(a=0,B=0;a<s||B<C.length;++a,++B){for(var I=C[B]||{},O=!0;\"separator\"===I.type;){if(O||((A=Lt.makeSpan([\"arraycolsep\"],[])).style.width=e.fontMetrics().doubleRuleSep+\"em\",N.push(A)),\"|\"===I.separator){var E=Lt.makeSpan([\"vertical-separator\"],[],e);E.style.height=v+\"em\",E.style.verticalAlign=-(v-q)+\"em\",N.push(E)}else{if(\":\"!==I.separator)throw new i(\"Invalid separator type: \"+I.separator);var R=Lt.makeSpan([\"vertical-separator\",\"vs-dashed\"],[],e);R.style.height=v+\"em\",R.style.verticalAlign=-(v-q)+\"em\",N.push(R)}I=C[++B]||{},O=!1}if(!(a>=s)){var L=void 0;(a>0||t.hskipBeforeAndAfter)&&0!==(L=c.deflt(I.pregap,u))&&((A=Lt.makeSpan([\"arraycolsep\"],[])).style.width=L+\"em\",N.push(A));var H=[];for(r=0;r<n;++r){var P=h[r],D=P[a];if(D){var F=P.pos-q;D.depth=P.depth,D.height=P.height,H.push({type:\"elem\",elem:D,shift:F})}}H=Lt.makeVList({positionType:\"individualShift\",children:H},e),H=Lt.makeSpan([\"col-align-\"+(I.align||\"c\")],[H]),N.push(H),(a<s-1||t.hskipBeforeAndAfter)&&0!==(L=c.deflt(I.postgap,u))&&((A=Lt.makeSpan([\"arraycolsep\"],[])).style.width=L+\"em\",N.push(A))}}if(h=Lt.makeSpan([\"mtable\"],N),l.length>0){for(var V=Lt.makeLineSpan(\"hline\",e,.05),U=Lt.makeLineSpan(\"hdashline\",e,.05),G=[{type:\"elem\",elem:h,shift:0}];l.length>0;){var X=l.pop(),Y=X.pos-q;X.isDashed?G.push({type:\"elem\",elem:U,shift:Y}):G.push({type:\"elem\",elem:V,shift:Y})}h=Lt.makeVList({positionType:\"individualShift\",children:G},e)}return Lt.makeSpan([\"mord\"],[h],e)},fr={c:\"center \",l:\"left \",r:\"right \"},gr=function(t,e){var r=new pe.MathNode(\"mtable\",t.body.map(function(t){return new pe.MathNode(\"mtr\",t.map(function(t){return new pe.MathNode(\"mtd\",[ye(t,e)])}))})),a=.16+t.arraystretch-1+(t.addJot?.09:0);r.setAttribute(\"rowspacing\",a+\"em\");var n=\"\",o=\"\";if(t.cols){var i=t.cols,s=\"\",h=!1,l=0,m=i.length;\"separator\"===i[0].type&&(n+=\"top \",l=1),\"separator\"===i[i.length-1].type&&(n+=\"bottom \",m-=1);for(var c=l;c<m;c++)\"align\"===i[c].type?(o+=fr[i[c].align],h&&(s+=\"none \"),h=!0):\"separator\"===i[c].type&&h&&(s+=\"|\"===i[c].separator?\"solid \":\"dashed \",h=!1);r.setAttribute(\"columnalign\",o.trim()),/[sd]/.test(s)&&r.setAttribute(\"columnlines\",s.trim())}if(\"align\"===t.colSeparationType){for(var u=t.cols||[],d=\"\",p=1;p<u.length;p++)d+=p%2?\"0em \":\"1em \";r.setAttribute(\"columnspacing\",d.trim())}else\"alignat\"===t.colSeparationType?r.setAttribute(\"columnspacing\",\"0em\"):r.setAttribute(\"columnspacing\",\"1em\");var f=\"\",g=t.hLinesBeforeRow;n+=g[0].length>0?\"left \":\"\",n+=g[g.length-1].length>0?\"right \":\"\";for(var x=1;x<g.length-1;x++)f+=0===g[x].length?\"none \":g[x][0]?\"dashed \":\"solid \";if(/[sd]/.test(f)&&r.setAttribute(\"rowlines\",f.trim()),\"\"===n)return r;var v=new pe.MathNode(\"menclose\",[r]);return v.setAttribute(\"notation\",n.trim()),v},xr=function(t,e){var r,a=[],n=ur(t.parser,{cols:a,addJot:!0},\"display\"),o=0,s={type:\"ordgroup\",mode:t.mode,body:[]},h=Pt(e[0],\"ordgroup\");if(h){for(var l=\"\",m=0;m<h.body.length;m++){l+=Ht(h.body[m],\"textord\").text}r=Number(l),o=2*r}var c=!o;n.body.forEach(function(t){for(var e=1;e<t.length;e+=2){var a=Ht(t[e],\"styling\");Ht(a.body[0],\"ordgroup\").body.unshift(s)}if(c)o<t.length&&(o=t.length);else{var n=t.length/2;if(r<n)throw new i(\"Too many math in a row: expected \"+r+\", but got \"+n,t[0])}});for(var u=0;u<o;++u){var d=\"r\",p=0;u%2==1?d=\"l\":u>0&&c&&(p=1),a[u]={type:\"align\",align:d,pregap:p,postgap:0}}return n.colSeparationType=c?\"align\":\"alignat\",n};mr({type:\"array\",names:[\"array\",\"darray\"],props:{numArgs:1},handler:function(t,e){var r={cols:(Ft(e[0])?[e[0]]:Ht(e[0],\"ordgroup\").body).map(function(t){var e=function(t){var e=Ft(t);if(!e)throw new Error(\"Expected node of symbol group type, but got \"+(t?\"node of type \"+t.type:String(t)));return e}(t).text;if(-1!==\"lcr\".indexOf(e))return{type:\"align\",align:e};if(\"|\"===e)return{type:\"separator\",separator:\"|\"};if(\":\"===e)return{type:\"separator\",separator:\":\"};throw new i(\"Unknown column alignment: \"+e,t)}),hskipBeforeAndAfter:!0};return ur(t.parser,r,dr(t.envName))},htmlBuilder:pr,mathmlBuilder:gr}),mr({type:\"array\",names:[\"matrix\",\"pmatrix\",\"bmatrix\",\"Bmatrix\",\"vmatrix\",\"Vmatrix\"],props:{numArgs:0},handler:function(t){var e={matrix:null,pmatrix:[\"(\",\")\"],bmatrix:[\"[\",\"]\"],Bmatrix:[\"\\\\{\",\"\\\\}\"],vmatrix:[\"|\",\"|\"],Vmatrix:[\"\\\\Vert\",\"\\\\Vert\"]}[t.envName],r=ur(t.parser,{hskipBeforeAndAfter:!1},dr(t.envName));return e?{type:\"leftright\",mode:t.mode,body:[r],left:e[0],right:e[1]}:r},htmlBuilder:pr,mathmlBuilder:gr}),mr({type:\"array\",names:[\"cases\",\"dcases\"],props:{numArgs:0},handler:function(t){var e=ur(t.parser,{arraystretch:1.2,cols:[{type:\"align\",align:\"l\",pregap:0,postgap:1},{type:\"align\",align:\"l\",pregap:0,postgap:0}]},dr(t.envName));return{type:\"leftright\",mode:t.mode,body:[e],left:\"\\\\{\",right:\".\"}},htmlBuilder:pr,mathmlBuilder:gr}),mr({type:\"array\",names:[\"aligned\"],props:{numArgs:0},handler:xr,htmlBuilder:pr,mathmlBuilder:gr}),mr({type:\"array\",names:[\"gathered\"],props:{numArgs:0},handler:function(t){return ur(t.parser,{cols:[{type:\"align\",align:\"c\"}],addJot:!0},\"display\")},htmlBuilder:pr,mathmlBuilder:gr}),mr({type:\"array\",names:[\"alignedat\"],props:{numArgs:1},handler:xr,htmlBuilder:pr,mathmlBuilder:gr}),$t({type:\"text\",names:[\"\\\\hline\",\"\\\\hdashline\"],props:{numArgs:0,allowedInText:!0,allowedInMath:!0},handler:function(t,e){throw new i(t.funcName+\" valid only within array environment\")}});var vr=lr;$t({type:\"environment\",names:[\"\\\\begin\",\"\\\\end\"],props:{numArgs:1,argTypes:[\"text\"]},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];if(\"ordgroup\"!==n.type)throw new i(\"Invalid environment name\",n);for(var o=\"\",s=0;s<n.body.length;++s)o+=Ht(n.body[s],\"textord\").text;if(\"\\\\begin\"===a){if(!vr.hasOwnProperty(o))throw new i(\"No such environment: \"+o,n);var h=vr[o],l=r.parseArguments(\"\\\\begin{\"+o+\"}\",h),m=l.args,c=l.optArgs,u={mode:r.mode,envName:o,parser:r},d=h.handler(u,m,c);r.expect(\"\\\\end\",!1);var p=r.nextToken,f=Ht(r.parseFunction(),\"environment\");if(f.name!==o)throw new i(\"Mismatch: \\\\begin{\"+o+\"} matched by \\\\end{\"+f.name+\"}\",p);return d}return{type:\"environment\",mode:r.mode,name:o,nameGroup:n}}});var br=Lt.makeSpan;function yr(t,e){var r=ae(t.body,e,!0);return br([t.mclass],r,e)}function wr(t,e){var r=ve(t.body,e);return pe.newDocumentFragment(r)}$t({type:\"mclass\",names:[\"\\\\mathord\",\"\\\\mathbin\",\"\\\\mathrel\",\"\\\\mathopen\",\"\\\\mathclose\",\"\\\\mathpunct\",\"\\\\mathinner\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:\"mclass\",mode:r.mode,mclass:\"m\"+a.substr(5),body:Kt(n)}},htmlBuilder:yr,mathmlBuilder:wr});var kr=function(t){var e=\"ordgroup\"===t.type&&t.body.length?t.body[0]:t;return\"atom\"!==e.type||\"bin\"!==e.family&&\"rel\"!==e.family?\"mord\":\"m\"+e.family};$t({type:\"mclass\",names:[\"\\\\@binrel\"],props:{numArgs:2},handler:function(t,e){return{type:\"mclass\",mode:t.parser.mode,mclass:kr(e[0]),body:[e[1]]}}}),$t({type:\"mclass\",names:[\"\\\\stackrel\",\"\\\\overset\",\"\\\\underset\"],props:{numArgs:2},handler:function(t,e){var r,a=t.parser,n=t.funcName,o=e[1],i=e[0];r=\"\\\\stackrel\"!==n?kr(o):\"mrel\";var s={type:\"op\",mode:o.mode,limits:!0,alwaysHandleSupSub:!0,parentIsSupSub:!1,symbol:!1,suppressBaseShift:\"\\\\stackrel\"!==n,body:Kt(o)},h={type:\"supsub\",mode:i.mode,base:s,sup:\"\\\\underset\"===n?null:i,sub:\"\\\\underset\"===n?i:null};return{type:\"mclass\",mode:a.mode,mclass:r,body:[h]}},htmlBuilder:yr,mathmlBuilder:wr});var Sr=function(t,e){var r=t.font,a=e.withFont(r);return he(t.body,a)},zr=function(t,e){var r=t.font,a=e.withFont(r);return ye(t.body,a)},Mr={\"\\\\Bbb\":\"\\\\mathbb\",\"\\\\bold\":\"\\\\mathbf\",\"\\\\frak\":\"\\\\mathfrak\",\"\\\\bm\":\"\\\\boldsymbol\"};$t({type:\"font\",names:[\"\\\\mathrm\",\"\\\\mathit\",\"\\\\mathbf\",\"\\\\mathnormal\",\"\\\\mathbb\",\"\\\\mathcal\",\"\\\\mathfrak\",\"\\\\mathscr\",\"\\\\mathsf\",\"\\\\mathtt\",\"\\\\Bbb\",\"\\\\bold\",\"\\\\frak\"],props:{numArgs:1,greediness:2},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0],o=a;return o in Mr&&(o=Mr[o]),{type:\"font\",mode:r.mode,font:o.slice(1),body:n}},htmlBuilder:Sr,mathmlBuilder:zr}),$t({type:\"mclass\",names:[\"\\\\boldsymbol\",\"\\\\bm\"],props:{numArgs:1,greediness:2},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"mclass\",mode:r.mode,mclass:kr(a),body:[{type:\"font\",mode:r.mode,font:\"boldsymbol\",body:a}]}}}),$t({type:\"font\",names:[\"\\\\rm\",\"\\\\sf\",\"\\\\tt\",\"\\\\bf\",\"\\\\it\"],props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=t.breakOnTokenText,o=r.mode,i=r.parseExpression(!0,n);return{type:\"font\",mode:o,font:\"math\"+a.slice(1),body:{type:\"ordgroup\",mode:r.mode,body:i}}},htmlBuilder:Sr,mathmlBuilder:zr});var Tr=function(t,e){var r=e;return\"display\"===t?r=r.id>=w.SCRIPT.id?r.text():w.DISPLAY:\"text\"===t&&r.size===w.DISPLAY.size?r=w.TEXT:\"script\"===t?r=w.SCRIPT:\"scriptscript\"===t&&(r=w.SCRIPTSCRIPT),r},Ar=function(t,e){var r,a=Tr(t.size,e.style),n=a.fracNum(),o=a.fracDen();r=e.havingStyle(n);var i=he(t.numer,r,e);if(t.continued){var s=8.5/e.fontMetrics().ptPerEm,h=3.5/e.fontMetrics().ptPerEm;i.height=i.height<s?s:i.height,i.depth=i.depth<h?h:i.depth}r=e.havingStyle(o);var l,m,c,u,d,p,f,g,x,v,b=he(t.denom,r,e);if(t.hasBarLine?(t.barSize?(m=zt(t.barSize,e),l=Lt.makeLineSpan(\"frac-line\",e,m)):l=Lt.makeLineSpan(\"frac-line\",e),m=l.height,c=l.height):(l=null,m=0,c=e.fontMetrics().defaultRuleThickness),a.size===w.DISPLAY.size||\"display\"===t.size?(u=e.fontMetrics().num1,d=m>0?3*c:7*c,p=e.fontMetrics().denom1):(m>0?(u=e.fontMetrics().num2,d=c):(u=e.fontMetrics().num3,d=3*c),p=e.fontMetrics().denom2),l){var y=e.fontMetrics().axisHeight;u-i.depth-(y+.5*m)<d&&(u+=d-(u-i.depth-(y+.5*m))),y-.5*m-(b.height-p)<d&&(p+=d-(y-.5*m-(b.height-p)));var k=-(y-.5*m);f=Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:b,shift:p},{type:\"elem\",elem:l,shift:k},{type:\"elem\",elem:i,shift:-u}]},e)}else{var S=u-i.depth-(b.height-p);S<d&&(u+=.5*(d-S),p+=.5*(d-S)),f=Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:b,shift:p},{type:\"elem\",elem:i,shift:-u}]},e)}return r=e.havingStyle(a),f.height*=r.sizeMultiplier/e.sizeMultiplier,f.depth*=r.sizeMultiplier/e.sizeMultiplier,g=a.size===w.DISPLAY.size?e.fontMetrics().delim1:e.fontMetrics().delim2,x=null==t.leftDelim?se(e,[\"mopen\"]):er(t.leftDelim,g,!0,e.havingStyle(a),t.mode,[\"mopen\"]),v=t.continued?Lt.makeSpan([]):null==t.rightDelim?se(e,[\"mclose\"]):er(t.rightDelim,g,!0,e.havingStyle(a),t.mode,[\"mclose\"]),Lt.makeSpan([\"mord\"].concat(r.sizingClasses(e)),[x,Lt.makeSpan([\"mfrac\"],[f]),v],e)},Br=function(t,e){var r=new pe.MathNode(\"mfrac\",[ye(t.numer,e),ye(t.denom,e)]);if(t.hasBarLine){if(t.barSize){var a=zt(t.barSize,e);r.setAttribute(\"linethickness\",a+\"em\")}}else r.setAttribute(\"linethickness\",\"0px\");var n=Tr(t.size,e.style);if(n.size!==e.style.size){r=new pe.MathNode(\"mstyle\",[r]);var o=n.size===w.DISPLAY.size?\"true\":\"false\";r.setAttribute(\"displaystyle\",o),r.setAttribute(\"scriptlevel\",\"0\")}if(null!=t.leftDelim||null!=t.rightDelim){var i=[];if(null!=t.leftDelim){var s=new pe.MathNode(\"mo\",[new pe.TextNode(t.leftDelim.replace(\"\\\\\",\"\"))]);s.setAttribute(\"fence\",\"true\"),i.push(s)}if(i.push(r),null!=t.rightDelim){var h=new pe.MathNode(\"mo\",[new pe.TextNode(t.rightDelim.replace(\"\\\\\",\"\"))]);h.setAttribute(\"fence\",\"true\"),i.push(h)}return ge(i)}return r};$t({type:\"genfrac\",names:[\"\\\\cfrac\",\"\\\\dfrac\",\"\\\\frac\",\"\\\\tfrac\",\"\\\\dbinom\",\"\\\\binom\",\"\\\\tbinom\",\"\\\\\\\\atopfrac\",\"\\\\\\\\bracefrac\",\"\\\\\\\\brackfrac\"],props:{numArgs:2,greediness:2},handler:function(t,e){var r,a=t.parser,n=t.funcName,o=e[0],i=e[1],s=null,h=null,l=\"auto\";switch(n){case\"\\\\cfrac\":case\"\\\\dfrac\":case\"\\\\frac\":case\"\\\\tfrac\":r=!0;break;case\"\\\\\\\\atopfrac\":r=!1;break;case\"\\\\dbinom\":case\"\\\\binom\":case\"\\\\tbinom\":r=!1,s=\"(\",h=\")\";break;case\"\\\\\\\\bracefrac\":r=!1,s=\"\\\\{\",h=\"\\\\}\";break;case\"\\\\\\\\brackfrac\":r=!1,s=\"[\",h=\"]\";break;default:throw new Error(\"Unrecognized genfrac command\")}switch(n){case\"\\\\cfrac\":case\"\\\\dfrac\":case\"\\\\dbinom\":l=\"display\";break;case\"\\\\tfrac\":case\"\\\\tbinom\":l=\"text\"}return{type:\"genfrac\",mode:a.mode,continued:\"\\\\cfrac\"===n,numer:o,denom:i,hasBarLine:r,leftDelim:s,rightDelim:h,size:l,barSize:null}},htmlBuilder:Ar,mathmlBuilder:Br}),$t({type:\"infix\",names:[\"\\\\over\",\"\\\\choose\",\"\\\\atop\",\"\\\\brace\",\"\\\\brack\"],props:{numArgs:0,infix:!0},handler:function(t){var e,r=t.parser,a=t.funcName,n=t.token;switch(a){case\"\\\\over\":e=\"\\\\frac\";break;case\"\\\\choose\":e=\"\\\\binom\";break;case\"\\\\atop\":e=\"\\\\\\\\atopfrac\";break;case\"\\\\brace\":e=\"\\\\\\\\bracefrac\";break;case\"\\\\brack\":e=\"\\\\\\\\brackfrac\";break;default:throw new Error(\"Unrecognized infix genfrac command\")}return{type:\"infix\",mode:r.mode,replaceWith:e,token:n}}});var qr=[\"display\",\"text\",\"script\",\"scriptscript\"],Cr=function(t){var e=null;return t.length>0&&(e=\".\"===(e=t)?null:e),e};$t({type:\"genfrac\",names:[\"\\\\genfrac\"],props:{numArgs:6,greediness:6,argTypes:[\"math\",\"math\",\"size\",\"text\",\"math\",\"math\"]},handler:function(t,e){var r=t.parser,a=e[4],n=e[5],o=Pt(e[0],\"atom\");o&&(o=Dt(e[0],\"open\"));var i=o?Cr(o.text):null,s=Pt(e[1],\"atom\");s&&(s=Dt(e[1],\"close\"));var h,l=s?Cr(s.text):null,m=Ht(e[2],\"size\"),c=null;h=!!m.isBlank||(c=m.value).number>0;var u=\"auto\",d=Pt(e[3],\"ordgroup\");if(d){if(d.body.length>0){var p=Ht(d.body[0],\"textord\");u=qr[Number(p.text)]}}else d=Ht(e[3],\"textord\"),u=qr[Number(d.text)];return{type:\"genfrac\",mode:r.mode,numer:a,denom:n,continued:!1,hasBarLine:h,barSize:c,leftDelim:i,rightDelim:l,size:u}},htmlBuilder:Ar,mathmlBuilder:Br}),$t({type:\"infix\",names:[\"\\\\above\"],props:{numArgs:1,argTypes:[\"size\"],infix:!0},handler:function(t,e){var r=t.parser,a=(t.funcName,t.token);return{type:\"infix\",mode:r.mode,replaceWith:\"\\\\\\\\abovefrac\",size:Ht(e[0],\"size\").value,token:a}}}),$t({type:\"genfrac\",names:[\"\\\\\\\\abovefrac\"],props:{numArgs:3,argTypes:[\"math\",\"size\",\"math\"]},handler:function(t,e){var r=t.parser,a=(t.funcName,e[0]),n=function(t){if(!t)throw new Error(\"Expected non-null, but got \"+String(t));return t}(Ht(e[1],\"infix\").size),o=e[2],i=n.number>0;return{type:\"genfrac\",mode:r.mode,numer:a,denom:o,continued:!1,hasBarLine:i,barSize:n,leftDelim:null,rightDelim:null,size:\"auto\"}},htmlBuilder:Ar,mathmlBuilder:Br});var Nr=function(t,e){var r,a,n=e.style,o=Pt(t,\"supsub\");o?(r=o.sup?he(o.sup,e.havingStyle(n.sup()),e):he(o.sub,e.havingStyle(n.sub()),e),a=Ht(o.base,\"horizBrace\")):a=Ht(t,\"horizBrace\");var i,s=he(a.base,e.havingBaseStyle(w.DISPLAY)),h=qe(a,e);if(a.isOver?(i=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:s},{type:\"kern\",size:.1},{type:\"elem\",elem:h}]},e)).children[0].children[0].children[1].classes.push(\"svg-align\"):(i=Lt.makeVList({positionType:\"bottom\",positionData:s.depth+.1+h.height,children:[{type:\"elem\",elem:h},{type:\"kern\",size:.1},{type:\"elem\",elem:s}]},e)).children[0].children[0].children[0].classes.push(\"svg-align\"),r){var l=Lt.makeSpan([\"mord\",a.isOver?\"mover\":\"munder\"],[i],e);i=a.isOver?Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:l},{type:\"kern\",size:.2},{type:\"elem\",elem:r}]},e):Lt.makeVList({positionType:\"bottom\",positionData:l.depth+.2+r.height+r.depth,children:[{type:\"elem\",elem:r},{type:\"kern\",size:.2},{type:\"elem\",elem:l}]},e)}return Lt.makeSpan([\"mord\",a.isOver?\"mover\":\"munder\"],[i],e)};$t({type:\"horizBrace\",names:[\"\\\\overbrace\",\"\\\\underbrace\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=t.funcName;return{type:\"horizBrace\",mode:r.mode,label:a,isOver:/^\\\\over/.test(a),base:e[0]}},htmlBuilder:Nr,mathmlBuilder:function(t,e){var r=Be(t.label);return new pe.MathNode(t.isOver?\"mover\":\"munder\",[ye(t.base,e),r])}}),$t({type:\"href\",names:[\"\\\\href\"],props:{numArgs:2,argTypes:[\"url\",\"original\"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[1],n=Ht(e[0],\"url\").url;return{type:\"href\",mode:r.mode,href:n,body:Kt(a)}},htmlBuilder:function(t,e){var r=ae(t.body,e,!1);return Lt.makeAnchor(t.href,[],r,e)},mathmlBuilder:function(t,e){var r=be(t.body,e);return r instanceof ue||(r=new ue(\"mrow\",[r])),r.setAttribute(\"href\",t.href),r}}),$t({type:\"href\",names:[\"\\\\url\"],props:{numArgs:1,argTypes:[\"url\"],allowedInText:!0},handler:function(t,e){for(var r=t.parser,a=Ht(e[0],\"url\").url,n=[],o=0;o<a.length;o++){var i=a[o];\"~\"===i&&(i=\"\\\\textasciitilde\"),n.push({type:\"textord\",mode:\"text\",text:i})}var s={type:\"text\",mode:r.mode,font:\"\\\\texttt\",body:n};return{type:\"href\",mode:r.mode,href:a,body:Kt(s)}}}),$t({type:\"htmlmathml\",names:[\"\\\\html@mathml\"],props:{numArgs:2,allowedInText:!0},handler:function(t,e){return{type:\"htmlmathml\",mode:t.parser.mode,html:Kt(e[0]),mathml:Kt(e[1])}},htmlBuilder:function(t,e){var r=ae(t.html,e,!1);return Lt.makeFragment(r)},mathmlBuilder:function(t,e){return be(t.mathml,e)}}),$t({type:\"kern\",names:[\"\\\\kern\",\"\\\\mkern\",\"\\\\hskip\",\"\\\\mskip\"],props:{numArgs:1,argTypes:[\"size\"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=Ht(e[0],\"size\");if(r.settings.strict){var o=\"m\"===a[1],i=\"mu\"===n.value.unit;o?(i||r.settings.reportNonstrict(\"mathVsTextUnits\",\"LaTeX's \"+a+\" supports only mu units, not \"+n.value.unit+\" units\"),\"math\"!==r.mode&&r.settings.reportNonstrict(\"mathVsTextUnits\",\"LaTeX's \"+a+\" works only in math mode\")):i&&r.settings.reportNonstrict(\"mathVsTextUnits\",\"LaTeX's \"+a+\" doesn't support mu units\")}return{type:\"kern\",mode:r.mode,dimension:n.value}},htmlBuilder:function(t,e){return Lt.makeGlue(t.dimension,e)},mathmlBuilder:function(t,e){var r=zt(t.dimension,e);return new pe.SpaceNode(r)}}),$t({type:\"lap\",names:[\"\\\\mathllap\",\"\\\\mathrlap\",\"\\\\mathclap\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:\"lap\",mode:r.mode,alignment:a.slice(5),body:n}},htmlBuilder:function(t,e){var r;\"clap\"===t.alignment?(r=Lt.makeSpan([],[he(t.body,e)]),r=Lt.makeSpan([\"inner\"],[r],e)):r=Lt.makeSpan([\"inner\"],[he(t.body,e)]);var a=Lt.makeSpan([\"fix\"],[]),n=Lt.makeSpan([t.alignment],[r,a],e),o=Lt.makeSpan([\"strut\"]);return o.style.height=n.height+n.depth+\"em\",o.style.verticalAlign=-n.depth+\"em\",n.children.unshift(o),n=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:n}]},e),Lt.makeSpan([\"mord\"],[n],e)},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mpadded\",[ye(t.body,e)]);if(\"rlap\"!==t.alignment){var a=\"llap\"===t.alignment?\"-1\":\"-0.5\";r.setAttribute(\"lspace\",a+\"width\")}return r.setAttribute(\"width\",\"0px\"),r}}),$t({type:\"styling\",names:[\"\\\\(\",\"$\"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1,consumeMode:\"math\"},handler:function(t,e){var r=t.funcName,a=t.parser,n=a.mode;a.switchMode(\"math\");var o=\"\\\\(\"===r?\"\\\\)\":\"$\",i=a.parseExpression(!1,o);return a.expect(o,!1),a.switchMode(n),a.consume(),{type:\"styling\",mode:a.mode,style:\"text\",body:i}}}),$t({type:\"text\",names:[\"\\\\)\",\"\\\\]\"],props:{numArgs:0,allowedInText:!0,allowedInMath:!1},handler:function(t,e){throw new i(\"Mismatched \"+t.funcName)}});var Ir=function(t,e){switch(e.style.size){case w.DISPLAY.size:return t.display;case w.TEXT.size:return t.text;case w.SCRIPT.size:return t.script;case w.SCRIPTSCRIPT.size:return t.scriptscript;default:return t.text}};$t({type:\"mathchoice\",names:[\"\\\\mathchoice\"],props:{numArgs:4},handler:function(t,e){return{type:\"mathchoice\",mode:t.parser.mode,display:Kt(e[0]),text:Kt(e[1]),script:Kt(e[2]),scriptscript:Kt(e[3])}},htmlBuilder:function(t,e){var r=Ir(t,e),a=ae(r,e,!1);return Lt.makeFragment(a)},mathmlBuilder:function(t,e){var r=Ir(t,e);return be(r,e)}});var Or=[\"\\\\smallint\"],Er=function(t,e){var r,a,n,o=!1,i=Pt(t,\"supsub\");i?(r=i.sup,a=i.sub,n=Ht(i.base,\"op\"),o=!0):n=Ht(t,\"op\");var s,h=e.style,l=!1;if(h.size===w.DISPLAY.size&&n.symbol&&!c.contains(Or,n.name)&&(l=!0),n.symbol){var m=l?\"Size2-Regular\":\"Size1-Regular\",u=\"\";if(\"\\\\oiint\"!==n.name&&\"\\\\oiiint\"!==n.name||(u=n.name.substr(1),n.name=\"oiint\"===u?\"\\\\iint\":\"\\\\iiint\"),s=Lt.makeSymbol(n.name,m,\"math\",e,[\"mop\",\"op-symbol\",l?\"large-op\":\"small-op\"]),u.length>0){var d=s.italic,p=Lt.staticSvg(u+\"Size\"+(l?\"2\":\"1\"),e);s=Lt.makeVList({positionType:\"individualShift\",children:[{type:\"elem\",elem:s,shift:0},{type:\"elem\",elem:p,shift:l?.08:0}]},e),n.name=\"\\\\\"+u,s.classes.unshift(\"mop\"),s.italic=d}}else if(n.body){var f=ae(n.body,e,!0);1===f.length&&f[0]instanceof E?(s=f[0]).classes[0]=\"mop\":s=Lt.makeSpan([\"mop\"],Lt.tryCombineChars(f),e)}else{for(var g=[],x=1;x<n.name.length;x++)g.push(Lt.mathsym(n.name[x],n.mode));s=Lt.makeSpan([\"mop\"],g,e)}var v=0,b=0;if((s instanceof E||\"\\\\oiint\"===n.name||\"\\\\oiiint\"===n.name)&&!n.suppressBaseShift&&(v=(s.height-s.depth)/2-e.fontMetrics().axisHeight,b=s.italic),o){var y,k,S;if(s=Lt.makeSpan([],[s]),r){var z=he(r,e.havingStyle(h.sup()),e);k={elem:z,kern:Math.max(e.fontMetrics().bigOpSpacing1,e.fontMetrics().bigOpSpacing3-z.depth)}}if(a){var M=he(a,e.havingStyle(h.sub()),e);y={elem:M,kern:Math.max(e.fontMetrics().bigOpSpacing2,e.fontMetrics().bigOpSpacing4-M.height)}}if(k&&y){var T=e.fontMetrics().bigOpSpacing5+y.elem.height+y.elem.depth+y.kern+s.depth+v;S=Lt.makeVList({positionType:\"bottom\",positionData:T,children:[{type:\"kern\",size:e.fontMetrics().bigOpSpacing5},{type:\"elem\",elem:y.elem,marginLeft:-b+\"em\"},{type:\"kern\",size:y.kern},{type:\"elem\",elem:s},{type:\"kern\",size:k.kern},{type:\"elem\",elem:k.elem,marginLeft:b+\"em\"},{type:\"kern\",size:e.fontMetrics().bigOpSpacing5}]},e)}else if(y){var A=s.height-v;S=Lt.makeVList({positionType:\"top\",positionData:A,children:[{type:\"kern\",size:e.fontMetrics().bigOpSpacing5},{type:\"elem\",elem:y.elem,marginLeft:-b+\"em\"},{type:\"kern\",size:y.kern},{type:\"elem\",elem:s}]},e)}else{if(!k)return s;var B=s.depth+v;S=Lt.makeVList({positionType:\"bottom\",positionData:B,children:[{type:\"elem\",elem:s},{type:\"kern\",size:k.kern},{type:\"elem\",elem:k.elem,marginLeft:b+\"em\"},{type:\"kern\",size:e.fontMetrics().bigOpSpacing5}]},e)}return Lt.makeSpan([\"mop\",\"op-limits\"],[S],e)}return v&&(s.style.position=\"relative\",s.style.top=v+\"em\"),s},Rr=function(t,e){var r;if(t.symbol)r=new ue(\"mo\",[fe(t.name,t.mode)]),c.contains(Or,t.name)&&r.setAttribute(\"largeop\",\"false\");else if(t.body)r=new ue(\"mo\",ve(t.body,e));else{r=new ue(\"mi\",[new de(t.name.slice(1))]);var a=new ue(\"mo\",[fe(\"\\u2061\",\"text\")]);r=t.parentIsSupSub?new ue(\"mo\",[r,a]):ce([r,a])}return r},Lr={\"\\u220f\":\"\\\\prod\",\"\\u2210\":\"\\\\coprod\",\"\\u2211\":\"\\\\sum\",\"\\u22c0\":\"\\\\bigwedge\",\"\\u22c1\":\"\\\\bigvee\",\"\\u22c2\":\"\\\\bigcap\",\"\\u22c3\":\"\\\\bigcup\",\"\\u2a00\":\"\\\\bigodot\",\"\\u2a01\":\"\\\\bigoplus\",\"\\u2a02\":\"\\\\bigotimes\",\"\\u2a04\":\"\\\\biguplus\",\"\\u2a06\":\"\\\\bigsqcup\"};$t({type:\"op\",names:[\"\\\\coprod\",\"\\\\bigvee\",\"\\\\bigwedge\",\"\\\\biguplus\",\"\\\\bigcap\",\"\\\\bigcup\",\"\\\\intop\",\"\\\\prod\",\"\\\\sum\",\"\\\\bigotimes\",\"\\\\bigoplus\",\"\\\\bigodot\",\"\\\\bigsqcup\",\"\\\\smallint\",\"\\u220f\",\"\\u2210\",\"\\u2211\",\"\\u22c0\",\"\\u22c1\",\"\\u22c2\",\"\\u22c3\",\"\\u2a00\",\"\\u2a01\",\"\\u2a02\",\"\\u2a04\",\"\\u2a06\"],props:{numArgs:0},handler:function(t,e){var r=t.parser,a=t.funcName;return 1===a.length&&(a=Lr[a]),{type:\"op\",mode:r.mode,limits:!0,parentIsSupSub:!1,symbol:!0,name:a}},htmlBuilder:Er,mathmlBuilder:Rr}),$t({type:\"op\",names:[\"\\\\mathop\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"op\",mode:r.mode,limits:!1,parentIsSupSub:!1,symbol:!1,body:Kt(a)}},htmlBuilder:Er,mathmlBuilder:Rr});var Hr={\"\\u222b\":\"\\\\int\",\"\\u222c\":\"\\\\iint\",\"\\u222d\":\"\\\\iiint\",\"\\u222e\":\"\\\\oint\",\"\\u222f\":\"\\\\oiint\",\"\\u2230\":\"\\\\oiiint\"};function Pr(t,e,r){for(var a=ae(t,e,!1),n=e.sizeMultiplier/r.sizeMultiplier,o=0;o<a.length;o++){var i=a[o].classes.indexOf(\"sizing\");i<0?Array.prototype.push.apply(a[o].classes,e.sizingClasses(r)):a[o].classes[i+1]===\"reset-size\"+e.size&&(a[o].classes[i+1]=\"reset-size\"+r.size),a[o].height*=n,a[o].depth*=n}return Lt.makeFragment(a)}$t({type:\"op\",names:[\"\\\\arcsin\",\"\\\\arccos\",\"\\\\arctan\",\"\\\\arctg\",\"\\\\arcctg\",\"\\\\arg\",\"\\\\ch\",\"\\\\cos\",\"\\\\cosec\",\"\\\\cosh\",\"\\\\cot\",\"\\\\cotg\",\"\\\\coth\",\"\\\\csc\",\"\\\\ctg\",\"\\\\cth\",\"\\\\deg\",\"\\\\dim\",\"\\\\exp\",\"\\\\hom\",\"\\\\ker\",\"\\\\lg\",\"\\\\ln\",\"\\\\log\",\"\\\\sec\",\"\\\\sin\",\"\\\\sinh\",\"\\\\sh\",\"\\\\tan\",\"\\\\tanh\",\"\\\\tg\",\"\\\\th\"],props:{numArgs:0},handler:function(t){var e=t.parser,r=t.funcName;return{type:\"op\",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Er,mathmlBuilder:Rr}),$t({type:\"op\",names:[\"\\\\det\",\"\\\\gcd\",\"\\\\inf\",\"\\\\lim\",\"\\\\max\",\"\\\\min\",\"\\\\Pr\",\"\\\\sup\"],props:{numArgs:0},handler:function(t){var e=t.parser,r=t.funcName;return{type:\"op\",mode:e.mode,limits:!0,parentIsSupSub:!1,symbol:!1,name:r}},htmlBuilder:Er,mathmlBuilder:Rr}),$t({type:\"op\",names:[\"\\\\int\",\"\\\\iint\",\"\\\\iiint\",\"\\\\oint\",\"\\\\oiint\",\"\\\\oiiint\",\"\\u222b\",\"\\u222c\",\"\\u222d\",\"\\u222e\",\"\\u222f\",\"\\u2230\"],props:{numArgs:0},handler:function(t){var e=t.parser,r=t.funcName;return 1===r.length&&(r=Hr[r]),{type:\"op\",mode:e.mode,limits:!1,parentIsSupSub:!1,symbol:!0,name:r}},htmlBuilder:Er,mathmlBuilder:Rr}),$t({type:\"operatorname\",names:[\"\\\\operatorname\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"operatorname\",mode:r.mode,body:Kt(a)}},htmlBuilder:function(t,e){if(t.body.length>0){for(var r=t.body.map(function(t){var e=t.text;return\"string\"==typeof e?{type:\"textord\",mode:t.mode,text:e}:t}),a=ae(r,e.withFont(\"mathrm\"),!0),n=0;n<a.length;n++){var o=a[n];o instanceof E&&(o.text=o.text.replace(/\\u2212/,\"-\").replace(/\\u2217/,\"*\"))}return Lt.makeSpan([\"mop\"],a,e)}return Lt.makeSpan([\"mop\"],[],e)},mathmlBuilder:function(t,e){for(var r=ve(t.body,e.withFont(\"mathrm\")),a=!0,n=0;n<r.length;n++){var o=r[n];if(o instanceof pe.SpaceNode);else if(o instanceof pe.MathNode)switch(o.type){case\"mi\":case\"mn\":case\"ms\":case\"mspace\":case\"mtext\":break;case\"mo\":var i=o.children[0];1===o.children.length&&i instanceof pe.TextNode?i.text=i.text.replace(/\\u2212/,\"-\").replace(/\\u2217/,\"*\"):a=!1;break;default:a=!1}else a=!1}if(a){var s=r.map(function(t){return t.toText()}).join(\"\");r=[new pe.TextNode(s)]}var h=new pe.MathNode(\"mi\",r);h.setAttribute(\"mathvariant\",\"normal\");var l=new pe.MathNode(\"mo\",[fe(\"\\u2061\",\"text\")]);return pe.newDocumentFragment([h,l])}}),Zt({type:\"ordgroup\",htmlBuilder:function(t,e){return t.semisimple?Lt.makeFragment(ae(t.body,e,!1)):Lt.makeSpan([\"mord\"],ae(t.body,e,!0),e)},mathmlBuilder:function(t,e){return be(t.body,e)}}),$t({type:\"overline\",names:[\"\\\\overline\"],props:{numArgs:1},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"overline\",mode:r.mode,body:a}},htmlBuilder:function(t,e){var r=he(t.body,e.havingCrampedStyle()),a=Lt.makeLineSpan(\"overline-line\",e),n=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:r},{type:\"kern\",size:3*a.height},{type:\"elem\",elem:a},{type:\"kern\",size:a.height}]},e);return Lt.makeSpan([\"mord\",\"overline\"],[n],e)},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mo\",[new pe.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new pe.MathNode(\"mover\",[ye(t.body,e),r]);return a.setAttribute(\"accent\",\"true\"),a}}),$t({type:\"phantom\",names:[\"\\\\phantom\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"phantom\",mode:r.mode,body:Kt(a)}},htmlBuilder:function(t,e){var r=ae(t.body,e.withPhantom(),!1);return Lt.makeFragment(r)},mathmlBuilder:function(t,e){var r=ve(t.body,e);return new pe.MathNode(\"mphantom\",r)}}),$t({type:\"hphantom\",names:[\"\\\\hphantom\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"hphantom\",mode:r.mode,body:a}},htmlBuilder:function(t,e){var r=Lt.makeSpan([],[he(t.body,e.withPhantom())]);if(r.height=0,r.depth=0,r.children)for(var a=0;a<r.children.length;a++)r.children[a].height=0,r.children[a].depth=0;return r=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:r}]},e),Lt.makeSpan([\"mord\"],[r],e)},mathmlBuilder:function(t,e){var r=ve(Kt(t.body),e),a=new pe.MathNode(\"mphantom\",r),n=new pe.MathNode(\"mpadded\",[a]);return n.setAttribute(\"height\",\"0px\"),n.setAttribute(\"depth\",\"0px\"),n}}),$t({type:\"vphantom\",names:[\"\\\\vphantom\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){var r=t.parser,a=e[0];return{type:\"vphantom\",mode:r.mode,body:a}},htmlBuilder:function(t,e){var r=Lt.makeSpan([\"inner\"],[he(t.body,e.withPhantom())]),a=Lt.makeSpan([\"fix\"],[]);return Lt.makeSpan([\"mord\",\"rlap\"],[r,a],e)},mathmlBuilder:function(t,e){var r=ve(Kt(t.body),e),a=new pe.MathNode(\"mphantom\",r),n=new pe.MathNode(\"mpadded\",[a]);return n.setAttribute(\"width\",\"0px\"),n}});var Dr=[\"\\\\tiny\",\"\\\\sixptsize\",\"\\\\scriptsize\",\"\\\\footnotesize\",\"\\\\small\",\"\\\\normalsize\",\"\\\\large\",\"\\\\Large\",\"\\\\LARGE\",\"\\\\huge\",\"\\\\Huge\"],Fr=function(t,e){var r=e.havingSize(t.size);return Pr(t.body,r,e)};$t({type:\"sizing\",names:Dr,props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,o=n.parseExpression(!1,r);return{type:\"sizing\",mode:n.mode,size:Dr.indexOf(a)+1,body:o}},htmlBuilder:Fr,mathmlBuilder:function(t,e){var r=e.havingSize(t.size),a=ve(t.body,r),n=new pe.MathNode(\"mstyle\",a);return n.setAttribute(\"mathsize\",r.sizeMultiplier+\"em\"),n}}),$t({type:\"raisebox\",names:[\"\\\\raisebox\"],props:{numArgs:2,argTypes:[\"size\",\"text\"],allowedInText:!0},handler:function(t,e){var r=t.parser,a=Ht(e[0],\"size\").value,n=e[1];return{type:\"raisebox\",mode:r.mode,dy:a,body:n}},htmlBuilder:function(t,e){var r={type:\"text\",mode:t.mode,body:Kt(t.body),font:\"mathrm\"},a={type:\"sizing\",mode:t.mode,body:[r],size:6},n=Fr(a,e),o=zt(t.dy,e);return Lt.makeVList({positionType:\"shift\",positionData:-o,children:[{type:\"elem\",elem:n}]},e)},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mpadded\",[ye(t.body,e)]),a=t.dy.number+t.dy.unit;return r.setAttribute(\"voffset\",a),r}}),$t({type:\"rule\",names:[\"\\\\rule\"],props:{numArgs:2,numOptionalArgs:1,argTypes:[\"size\",\"size\",\"size\"]},handler:function(t,e,r){var a=t.parser,n=r[0],o=Ht(e[0],\"size\"),i=Ht(e[1],\"size\");return{type:\"rule\",mode:a.mode,shift:n&&Ht(n,\"size\").value,width:o.value,height:i.value}},htmlBuilder:function(t,e){var r=Lt.makeSpan([\"mord\",\"rule\"],[],e),a=zt(t.width,e),n=zt(t.height,e),o=t.shift?zt(t.shift,e):0;return r.style.borderRightWidth=a+\"em\",r.style.borderTopWidth=n+\"em\",r.style.bottom=o+\"em\",r.width=a,r.height=n+o,r.depth=-o,r.maxFontSize=1.125*n*e.sizeMultiplier,r},mathmlBuilder:function(t,e){var r=zt(t.width,e),a=zt(t.height,e),n=t.shift?zt(t.shift,e):0,o=e.color&&e.getColor()||\"black\",i=new pe.MathNode(\"mspace\");i.setAttribute(\"mathbackground\",o),i.setAttribute(\"width\",r+\"em\"),i.setAttribute(\"height\",a+\"em\");var s=new pe.MathNode(\"mpadded\",[i]);return n>=0?s.setAttribute(\"height\",\"+\"+n+\"em\"):(s.setAttribute(\"height\",n+\"em\"),s.setAttribute(\"depth\",\"+\"+-n+\"em\")),s.setAttribute(\"voffset\",n+\"em\"),s}}),$t({type:\"smash\",names:[\"\\\\smash\"],props:{numArgs:1,numOptionalArgs:1,allowedInText:!0},handler:function(t,e,r){var a=t.parser,n=!1,o=!1,i=r[0]&&Ht(r[0],\"ordgroup\");if(i)for(var s=\"\",h=0;h<i.body.length;++h){if(\"t\"===(s=i.body[h].text))n=!0;else{if(\"b\"!==s){n=!1,o=!1;break}o=!0}}else n=!0,o=!0;var l=e[0];return{type:\"smash\",mode:a.mode,body:l,smashHeight:n,smashDepth:o}},htmlBuilder:function(t,e){var r=Lt.makeSpan([],[he(t.body,e)]);if(!t.smashHeight&&!t.smashDepth)return r;if(t.smashHeight&&(r.height=0,r.children))for(var a=0;a<r.children.length;a++)r.children[a].height=0;if(t.smashDepth&&(r.depth=0,r.children))for(var n=0;n<r.children.length;n++)r.children[n].depth=0;var o=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:r}]},e);return Lt.makeSpan([\"mord\"],[o],e)},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mpadded\",[ye(t.body,e)]);return t.smashHeight&&r.setAttribute(\"height\",\"0px\"),t.smashDepth&&r.setAttribute(\"depth\",\"0px\"),r}}),$t({type:\"sqrt\",names:[\"\\\\sqrt\"],props:{numArgs:1,numOptionalArgs:1},handler:function(t,e,r){var a=t.parser,n=r[0],o=e[0];return{type:\"sqrt\",mode:a.mode,body:o,index:n}},htmlBuilder:function(t,e){var r=he(t.body,e.havingCrampedStyle());0===r.height&&(r.height=e.fontMetrics().xHeight),r=Lt.wrapFragment(r,e);var a=e.fontMetrics().defaultRuleThickness,n=a;e.style.id<w.TEXT.id&&(n=e.fontMetrics().xHeight);var o=a+n/4,i=r.height+r.depth+o+a,s=Qe(i,e),h=s.span,l=s.ruleWidth,m=s.advanceWidth,c=h.height-l;c>r.height+r.depth+o&&(o=(o+c-r.height-r.depth)/2);var u=h.height-r.height-o-l;r.style.paddingLeft=m+\"em\";var d=Lt.makeVList({positionType:\"firstBaseline\",children:[{type:\"elem\",elem:r,wrapperClasses:[\"svg-align\"]},{type:\"kern\",size:-(r.height+u)},{type:\"elem\",elem:h},{type:\"kern\",size:l}]},e);if(t.index){var p=e.havingStyle(w.SCRIPTSCRIPT),f=he(t.index,p,e),g=.6*(d.height-d.depth),x=Lt.makeVList({positionType:\"shift\",positionData:-g,children:[{type:\"elem\",elem:f}]},e),v=Lt.makeSpan([\"root\"],[x]);return Lt.makeSpan([\"mord\",\"sqrt\"],[v,d],e)}return Lt.makeSpan([\"mord\",\"sqrt\"],[d],e)},mathmlBuilder:function(t,e){var r=t.body,a=t.index;return a?new pe.MathNode(\"mroot\",[ye(r,e),ye(a,e)]):new pe.MathNode(\"msqrt\",[ye(r,e)])}});var Vr={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT};$t({type:\"styling\",names:[\"\\\\displaystyle\",\"\\\\textstyle\",\"\\\\scriptstyle\",\"\\\\scriptscriptstyle\"],props:{numArgs:0,allowedInText:!0},handler:function(t,e){var r=t.breakOnTokenText,a=t.funcName,n=t.parser,o=n.parseExpression(!0,r),i=a.slice(1,a.length-5);return{type:\"styling\",mode:n.mode,style:i,body:o}},htmlBuilder:function(t,e){var r=Vr[t.style],a=e.havingStyle(r).withFont(\"\");return Pr(t.body,a,e)},mathmlBuilder:function(t,e){var r={display:w.DISPLAY,text:w.TEXT,script:w.SCRIPT,scriptscript:w.SCRIPTSCRIPT}[t.style],a=e.havingStyle(r),n=ve(t.body,a),o=new pe.MathNode(\"mstyle\",n),i={display:[\"0\",\"true\"],text:[\"0\",\"false\"],script:[\"1\",\"false\"],scriptscript:[\"2\",\"false\"]}[t.style];return o.setAttribute(\"scriptlevel\",i[0]),o.setAttribute(\"displaystyle\",i[1]),o}});Zt({type:\"supsub\",htmlBuilder:function(t,e){var r=function(t,e){var r=t.base;return r?\"op\"===r.type?r.limits&&(e.style.size===w.DISPLAY.size||r.alwaysHandleSupSub)?Er:null:\"accent\"===r.type?c.isCharacterBox(r.base)?Ce:null:\"horizBrace\"===r.type&&!t.sub===r.isOver?Nr:null:null}(t,e);if(r)return r(t,e);var a,n,o,i=t.base,s=t.sup,h=t.sub,l=he(i,e),m=e.fontMetrics(),u=0,d=0,p=i&&c.isCharacterBox(i);if(s){var f=e.havingStyle(e.style.sup());a=he(s,f,e),p||(u=l.height-f.fontMetrics().supDrop*f.sizeMultiplier/e.sizeMultiplier)}if(h){var g=e.havingStyle(e.style.sub());n=he(h,g,e),p||(d=l.depth+g.fontMetrics().subDrop*g.sizeMultiplier/e.sizeMultiplier)}o=e.style===w.DISPLAY?m.sup1:e.style.cramped?m.sup3:m.sup2;var x,v=e.sizeMultiplier,b=.5/m.ptPerEm/v+\"em\",y=null;if(n){var k=t.base&&\"op\"===t.base.type&&t.base.name&&(\"\\\\oiint\"===t.base.name||\"\\\\oiiint\"===t.base.name);(l instanceof E||k)&&(y=-l.italic+\"em\")}if(a&&n){u=Math.max(u,o,a.depth+.25*m.xHeight),d=Math.max(d,m.sub2);var S=4*m.defaultRuleThickness;if(u-a.depth-(n.height-d)<S){d=S-(u-a.depth)+n.height;var z=.8*m.xHeight-(u-a.depth);z>0&&(u+=z,d-=z)}var M=[{type:\"elem\",elem:n,shift:d,marginRight:b,marginLeft:y},{type:\"elem\",elem:a,shift:-u,marginRight:b}];x=Lt.makeVList({positionType:\"individualShift\",children:M},e)}else if(n){d=Math.max(d,m.sub1,n.height-.8*m.xHeight);var T=[{type:\"elem\",elem:n,marginLeft:y,marginRight:b}];x=Lt.makeVList({positionType:\"shift\",positionData:d,children:T},e)}else{if(!a)throw new Error(\"supsub must have either sup or sub.\");u=Math.max(u,o,a.depth+.25*m.xHeight),x=Lt.makeVList({positionType:\"shift\",positionData:-u,children:[{type:\"elem\",elem:a,marginRight:b}]},e)}var A=ie(l,\"right\")||\"mord\";return Lt.makeSpan([A],[l,Lt.makeSpan([\"msupsub\"],[x])],e)},mathmlBuilder:function(t,e){var r,a=!1,n=Pt(t.base,\"horizBrace\");n&&!!t.sup===n.isOver&&(a=!0,r=n.isOver),t.base&&\"op\"===t.base.type&&(t.base.parentIsSupSub=!0);var o,i=[ye(t.base,e)];if(t.sub&&i.push(ye(t.sub,e)),t.sup&&i.push(ye(t.sup,e)),a)o=r?\"mover\":\"munder\";else if(t.sub)if(t.sup){var s=t.base;o=s&&\"op\"===s.type&&s.limits&&e.style===w.DISPLAY?\"munderover\":\"msubsup\"}else{var h=t.base;o=h&&\"op\"===h.type&&h.limits&&(e.style===w.DISPLAY||h.alwaysHandleSupSub)?\"munder\":\"msub\"}else{var l=t.base;o=l&&\"op\"===l.type&&l.limits&&(e.style===w.DISPLAY||l.alwaysHandleSupSub)?\"mover\":\"msup\"}return new pe.MathNode(o,i)}}),Zt({type:\"atom\",htmlBuilder:function(t,e){return Lt.mathsym(t.text,t.mode,e,[\"m\"+t.family])},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mo\",[fe(t.text,t.mode)]);if(\"bin\"===t.family){var a=xe(t,e);\"bold-italic\"===a&&r.setAttribute(\"mathvariant\",a)}else\"punct\"===t.family?r.setAttribute(\"separator\",\"true\"):\"open\"!==t.family&&\"close\"!==t.family||r.setAttribute(\"stretchy\",\"false\");return r}});var Ur={mi:\"italic\",mn:\"normal\",mtext:\"normal\"};Zt({type:\"mathord\",htmlBuilder:function(t,e){return Lt.makeOrd(t,e,\"mathord\")},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mi\",[fe(t.text,t.mode,e)]),a=xe(t,e)||\"italic\";return a!==Ur[r.type]&&r.setAttribute(\"mathvariant\",a),r}}),Zt({type:\"textord\",htmlBuilder:function(t,e){return Lt.makeOrd(t,e,\"textord\")},mathmlBuilder:function(t,e){var r,a=fe(t.text,t.mode,e),n=xe(t,e)||\"normal\";return r=\"text\"===t.mode?new pe.MathNode(\"mtext\",[a]):/[0-9]/.test(t.text)?new pe.MathNode(\"mn\",[a]):\"\\\\prime\"===t.text?new pe.MathNode(\"mo\",[a]):new pe.MathNode(\"mi\",[a]),n!==Ur[r.type]&&r.setAttribute(\"mathvariant\",n),r}});var Gr={\"\\\\nobreak\":\"nobreak\",\"\\\\allowbreak\":\"allowbreak\"},Xr={\" \":{},\"\\\\ \":{},\"~\":{className:\"nobreak\"},\"\\\\space\":{},\"\\\\nobreakspace\":{className:\"nobreak\"}};Zt({type:\"spacing\",htmlBuilder:function(t,e){if(Xr.hasOwnProperty(t.text)){var r=Xr[t.text].className||\"\";if(\"text\"===t.mode){var a=Lt.makeOrd(t,e,\"textord\");return a.classes.push(r),a}return Lt.makeSpan([\"mspace\",r],[Lt.mathsym(t.text,t.mode,e)],e)}if(Gr.hasOwnProperty(t.text))return Lt.makeSpan([\"mspace\",Gr[t.text]],[],e);throw new i('Unknown type of space \"'+t.text+'\"')},mathmlBuilder:function(t,e){if(!Xr.hasOwnProperty(t.text)){if(Gr.hasOwnProperty(t.text))return new pe.MathNode(\"mspace\");throw new i('Unknown type of space \"'+t.text+'\"')}return new pe.MathNode(\"mtext\",[new pe.TextNode(\"\\xa0\")])}});var Yr=function(){var t=new pe.MathNode(\"mtd\",[]);return t.setAttribute(\"width\",\"50%\"),t};Zt({type:\"tag\",mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mtable\",[new pe.MathNode(\"mtr\",[Yr(),new pe.MathNode(\"mtd\",[be(t.body,e)]),Yr(),new pe.MathNode(\"mtd\",[be(t.tag,e)])])]);return r.setAttribute(\"width\",\"100%\"),r}});var _r={\"\\\\text\":void 0,\"\\\\textrm\":\"textrm\",\"\\\\textsf\":\"textsf\",\"\\\\texttt\":\"texttt\",\"\\\\textnormal\":\"textrm\"},Wr={\"\\\\textbf\":\"textbf\",\"\\\\textmd\":\"textmd\"},jr={\"\\\\textit\":\"textit\",\"\\\\textup\":\"textup\"},$r=function(t,e){var r=t.font;return r?_r[r]?e.withTextFontFamily(_r[r]):Wr[r]?e.withTextFontWeight(Wr[r]):e.withTextFontShape(jr[r]):e};$t({type:\"text\",names:[\"\\\\text\",\"\\\\textrm\",\"\\\\textsf\",\"\\\\texttt\",\"\\\\textnormal\",\"\\\\textbf\",\"\\\\textmd\",\"\\\\textit\",\"\\\\textup\"],props:{numArgs:1,argTypes:[\"text\"],greediness:2,allowedInText:!0,consumeMode:\"text\"},handler:function(t,e){var r=t.parser,a=t.funcName,n=e[0];return{type:\"text\",mode:r.mode,body:Kt(n),font:a}},htmlBuilder:function(t,e){var r=$r(t,e),a=ae(t.body,r,!0);return Lt.makeSpan([\"mord\",\"text\"],Lt.tryCombineChars(a),r)},mathmlBuilder:function(t,e){var r=$r(t,e);return be(t.body,r)}}),$t({type:\"underline\",names:[\"\\\\underline\"],props:{numArgs:1,allowedInText:!0},handler:function(t,e){return{type:\"underline\",mode:t.parser.mode,body:e[0]}},htmlBuilder:function(t,e){var r=he(t.body,e),a=Lt.makeLineSpan(\"underline-line\",e),n=Lt.makeVList({positionType:\"top\",positionData:r.height,children:[{type:\"kern\",size:a.height},{type:\"elem\",elem:a},{type:\"kern\",size:3*a.height},{type:\"elem\",elem:r}]},e);return Lt.makeSpan([\"mord\",\"underline\"],[n],e)},mathmlBuilder:function(t,e){var r=new pe.MathNode(\"mo\",[new pe.TextNode(\"\\u203e\")]);r.setAttribute(\"stretchy\",\"true\");var a=new pe.MathNode(\"munder\",[ye(t.body,e),r]);return a.setAttribute(\"accentunder\",\"true\"),a}}),$t({type:\"verb\",names:[\"\\\\verb\"],props:{numArgs:0,allowedInText:!0},handler:function(t,e,r){throw new i(\"\\\\verb ended by end of line instead of matching delimiter\")},htmlBuilder:function(t,e){for(var r=Zr(t),a=[],n=e.havingStyle(e.style.text()),o=0;o<r.length;o++){var i=r[o];\"~\"===i&&(i=\"\\\\textasciitilde\"),a.push(Lt.makeSymbol(i,\"Typewriter-Regular\",t.mode,n,[\"mord\",\"texttt\"]))}return Lt.makeSpan([\"mord\",\"text\"].concat(n.sizingClasses(e)),Lt.tryCombineChars(a),n)},mathmlBuilder:function(t,e){var r=new pe.TextNode(Zr(t)),a=new pe.MathNode(\"mtext\",[r]);return a.setAttribute(\"mathvariant\",\"monospace\"),a}});var Zr=function(t){return t.body.replace(/ /g,t.star?\"\\u2423\":\"\\xa0\")},Kr=_t,Jr=new RegExp(\"^(\\\\\\\\[a-zA-Z@]+)[ \\r\\n\\t]*$\"),Qr=new RegExp(\"[\\u0300-\\u036f]+$\"),ta=\"([ \\r\\n\\t]+)|([!-\\\\[\\\\]-\\u2027\\u202a-\\ud7ff\\uf900-\\uffff][\\u0300-\\u036f]*|[\\ud800-\\udbff][\\udc00-\\udfff][\\u0300-\\u036f]*|\\\\\\\\verb\\\\*([^]).*?\\\\3|\\\\\\\\verb([^*a-zA-Z]).*?\\\\4|\\\\\\\\[a-zA-Z@]+[ \\r\\n\\t]*|\\\\\\\\[^\\ud800-\\udfff])\",ea=function(){function t(t,e){this.input=void 0,this.settings=void 0,this.tokenRegex=void 0,this.catcodes=void 0,this.input=t,this.settings=e,this.tokenRegex=new RegExp(ta,\"g\"),this.catcodes={\"%\":14}}var e=t.prototype;return e.setCatcode=function(t,e){this.catcodes[t]=e},e.lex=function(){var t=this.input,e=this.tokenRegex.lastIndex;if(e===t.length)return new n(\"EOF\",new a(this,e,e));var r=this.tokenRegex.exec(t);if(null===r||r.index!==e)throw new i(\"Unexpected character: '\"+t[e]+\"'\",new n(t[e],new a(this,e,e+1)));var o=r[2]||\" \";if(14===this.catcodes[o]){var s=t.indexOf(\"\\n\",this.tokenRegex.lastIndex);return-1===s?(this.tokenRegex.lastIndex=t.length,this.settings.reportNonstrict(\"commentAtEnd\",\"% comment has no terminating newline; LaTeX would fail because of commenting the end of math mode (e.g. $)\")):this.tokenRegex.lastIndex=s+1,this.lex()}var h=o.match(Jr);return h&&(o=h[1]),new n(o,new a(this,e,this.tokenRegex.lastIndex))},t}(),ra=function(){function t(t,e){void 0===t&&(t={}),void 0===e&&(e={}),this.current=void 0,this.builtins=void 0,this.undefStack=void 0,this.current=e,this.builtins=t,this.undefStack=[]}var e=t.prototype;return e.beginGroup=function(){this.undefStack.push({})},e.endGroup=function(){if(0===this.undefStack.length)throw new i(\"Unbalanced namespace destruction: attempt to pop global namespace; please report this as a bug\");var t=this.undefStack.pop();for(var e in t)t.hasOwnProperty(e)&&(void 0===t[e]?delete this.current[e]:this.current[e]=t[e])},e.has=function(t){return this.current.hasOwnProperty(t)||this.builtins.hasOwnProperty(t)},e.get=function(t){return this.current.hasOwnProperty(t)?this.current[t]:this.builtins[t]},e.set=function(t,e,r){if(void 0===r&&(r=!1),r){for(var a=0;a<this.undefStack.length;a++)delete this.undefStack[a][t];this.undefStack.length>0&&(this.undefStack[this.undefStack.length-1][t]=e)}else{var n=this.undefStack[this.undefStack.length-1];n&&!n.hasOwnProperty(t)&&(n[t]=this.current[t])}this.current[t]=e},t}(),aa={},na=aa;function oa(t,e){aa[t]=e}oa(\"\\\\@firstoftwo\",function(t){return{tokens:t.consumeArgs(2)[0],numArgs:0}}),oa(\"\\\\@secondoftwo\",function(t){return{tokens:t.consumeArgs(2)[1],numArgs:0}}),oa(\"\\\\@ifnextchar\",function(t){var e=t.consumeArgs(3),r=t.future();return 1===e[0].length&&e[0][0].text===r.text?{tokens:e[1],numArgs:0}:{tokens:e[2],numArgs:0}}),oa(\"\\\\@ifstar\",\"\\\\@ifnextchar *{\\\\@firstoftwo{#1}}\"),oa(\"\\\\TextOrMath\",function(t){var e=t.consumeArgs(2);return\"text\"===t.mode?{tokens:e[0],numArgs:0}:{tokens:e[1],numArgs:0}});var ia={0:0,1:1,2:2,3:3,4:4,5:5,6:6,7:7,8:8,9:9,a:10,A:10,b:11,B:11,c:12,C:12,d:13,D:13,e:14,E:14,f:15,F:15};oa(\"\\\\char\",function(t){var e,r=t.popToken(),a=\"\";if(\"'\"===r.text)e=8,r=t.popToken();else if('\"'===r.text)e=16,r=t.popToken();else if(\"`\"===r.text)if(\"\\\\\"===(r=t.popToken()).text[0])a=r.text.charCodeAt(1);else{if(\"EOF\"===r.text)throw new i(\"\\\\char` missing argument\");a=r.text.charCodeAt(0)}else e=10;if(e){if(null==(a=ia[r.text])||a>=e)throw new i(\"Invalid base-\"+e+\" digit \"+r.text);for(var n;null!=(n=ia[t.future().text])&&n<e;)a*=e,a+=n,t.popToken()}return\"\\\\@char{\"+a+\"}\"});var sa=function(t,e){var r=t.consumeArgs(1)[0];if(1!==r.length)throw new i(\"\\\\gdef's first argument must be a macro name\");var a=r[0].text,n=0;for(r=t.consumeArgs(1)[0];1===r.length&&\"#\"===r[0].text;){if(1!==(r=t.consumeArgs(1)[0]).length)throw new i('Invalid argument number length \"'+r.length+'\"');if(!/^[1-9]$/.test(r[0].text))throw new i('Invalid argument number \"'+r[0].text+'\"');if(n++,parseInt(r[0].text)!==n)throw new i('Argument number \"'+r[0].text+'\" out of order');r=t.consumeArgs(1)[0]}return t.macros.set(a,{tokens:r,numArgs:n},e),\"\"};oa(\"\\\\gdef\",function(t){return sa(t,!0)}),oa(\"\\\\def\",function(t){return sa(t,!1)}),oa(\"\\\\global\",function(t){var e=t.consumeArgs(1)[0];if(1!==e.length)throw new i(\"Invalid command after \\\\global\");var r=e[0].text;if(\"\\\\def\"===r)return sa(t,!0);throw new i(\"Invalid command '\"+r+\"' after \\\\global\")});var ha=function(t,e,r){var a=t.consumeArgs(1)[0];if(1!==a.length)throw new i(\"\\\\newcommand's first argument must be a macro name\");var n=a[0].text,o=t.isDefined(n);if(o&&!e)throw new i(\"\\\\newcommand{\"+n+\"} attempting to redefine \"+n+\"; use \\\\renewcommand\");if(!o&&!r)throw new i(\"\\\\renewcommand{\"+n+\"} when command \"+n+\" does not yet exist; use \\\\newcommand\");var s=0;if(1===(a=t.consumeArgs(1)[0]).length&&\"[\"===a[0].text){for(var h=\"\",l=t.expandNextToken();\"]\"!==l.text&&\"EOF\"!==l.text;)h+=l.text,l=t.expandNextToken();if(!h.match(/^\\s*[0-9]+\\s*$/))throw new i(\"Invalid number of arguments: \"+h);s=parseInt(h),a=t.consumeArgs(1)[0]}return t.macros.set(n,{tokens:a,numArgs:s}),\"\"};oa(\"\\\\newcommand\",function(t){return ha(t,!1,!0)}),oa(\"\\\\renewcommand\",function(t){return ha(t,!0,!1)}),oa(\"\\\\providecommand\",function(t){return ha(t,!0,!0)}),oa(\"\\\\bgroup\",\"{\"),oa(\"\\\\egroup\",\"}\"),oa(\"\\\\lq\",\"`\"),oa(\"\\\\rq\",\"'\"),oa(\"\\\\aa\",\"\\\\r a\"),oa(\"\\\\AA\",\"\\\\r A\"),oa(\"\\\\textcopyright\",\"\\\\html@mathml{\\\\textcircled{c}}{\\\\char`\\xa9}\"),oa(\"\\\\copyright\",\"\\\\TextOrMath{\\\\textcopyright}{\\\\text{\\\\textcopyright}}\"),oa(\"\\\\textregistered\",\"\\\\html@mathml{\\\\textcircled{\\\\scriptsize R}}{\\\\char`\\xae}\"),oa(\"\\u212c\",\"\\\\mathscr{B}\"),oa(\"\\u2130\",\"\\\\mathscr{E}\"),oa(\"\\u2131\",\"\\\\mathscr{F}\"),oa(\"\\u210b\",\"\\\\mathscr{H}\"),oa(\"\\u2110\",\"\\\\mathscr{I}\"),oa(\"\\u2112\",\"\\\\mathscr{L}\"),oa(\"\\u2133\",\"\\\\mathscr{M}\"),oa(\"\\u211b\",\"\\\\mathscr{R}\"),oa(\"\\u212d\",\"\\\\mathfrak{C}\"),oa(\"\\u210c\",\"\\\\mathfrak{H}\"),oa(\"\\u2128\",\"\\\\mathfrak{Z}\"),oa(\"\\\\Bbbk\",\"\\\\Bbb{k}\"),oa(\"\\xb7\",\"\\\\cdotp\"),oa(\"\\\\llap\",\"\\\\mathllap{\\\\textrm{#1}}\"),oa(\"\\\\rlap\",\"\\\\mathrlap{\\\\textrm{#1}}\"),oa(\"\\\\clap\",\"\\\\mathclap{\\\\textrm{#1}}\"),oa(\"\\\\not\",'\\\\html@mathml{\\\\mathrel{\\\\mathrlap\\\\@not}}{\\\\char\"338}'),oa(\"\\\\neq\",\"\\\\html@mathml{\\\\mathrel{\\\\not=}}{\\\\mathrel{\\\\char`\\u2260}}\"),oa(\"\\\\ne\",\"\\\\neq\"),oa(\"\\u2260\",\"\\\\neq\"),oa(\"\\\\notin\",\"\\\\html@mathml{\\\\mathrel{{\\\\in}\\\\mathllap{/\\\\mskip1mu}}}{\\\\mathrel{\\\\char`\\u2209}}\"),oa(\"\\u2209\",\"\\\\notin\"),oa(\"\\u2258\",\"\\\\html@mathml{\\\\mathrel{=\\\\kern{-1em}\\\\raisebox{0.4em}{$\\\\scriptsize\\\\frown$}}}{\\\\mathrel{\\\\char`\\u2258}}\"),oa(\"\\u2259\",\"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\wedge}{=}}{\\\\mathrel{\\\\char`\\u2258}}\"),oa(\"\\u225a\",\"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\vee}{=}}{\\\\mathrel{\\\\char`\\u225a}}\"),oa(\"\\u225b\",\"\\\\html@mathml{\\\\stackrel{\\\\scriptsize\\\\star}{=}}{\\\\mathrel{\\\\char`\\u225b}}\"),oa(\"\\u225d\",\"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{def}}{=}}{\\\\mathrel{\\\\char`\\u225d}}\"),oa(\"\\u225e\",\"\\\\html@mathml{\\\\stackrel{\\\\tiny\\\\mathrm{m}}{=}}{\\\\mathrel{\\\\char`\\u225e}}\"),oa(\"\\u225f\",\"\\\\html@mathml{\\\\stackrel{\\\\tiny?}{=}}{\\\\mathrel{\\\\char`\\u225f}}\"),oa(\"\\u27c2\",\"\\\\perp\"),oa(\"\\u203c\",\"\\\\mathclose{!\\\\mkern-0.8mu!}\"),oa(\"\\u220c\",\"\\\\notni\"),oa(\"\\u231c\",\"\\\\ulcorner\"),oa(\"\\u231d\",\"\\\\urcorner\"),oa(\"\\u231e\",\"\\\\llcorner\"),oa(\"\\u231f\",\"\\\\lrcorner\"),oa(\"\\xa9\",\"\\\\copyright\"),oa(\"\\xae\",\"\\\\textregistered\"),oa(\"\\ufe0f\",\"\\\\textregistered\"),oa(\"\\\\vdots\",\"\\\\mathord{\\\\varvdots\\\\rule{0pt}{15pt}}\"),oa(\"\\u22ee\",\"\\\\vdots\"),oa(\"\\\\varGamma\",\"\\\\mathit{\\\\Gamma}\"),oa(\"\\\\varDelta\",\"\\\\mathit{\\\\Delta}\"),oa(\"\\\\varTheta\",\"\\\\mathit{\\\\Theta}\"),oa(\"\\\\varLambda\",\"\\\\mathit{\\\\Lambda}\"),oa(\"\\\\varXi\",\"\\\\mathit{\\\\Xi}\"),oa(\"\\\\varPi\",\"\\\\mathit{\\\\Pi}\"),oa(\"\\\\varSigma\",\"\\\\mathit{\\\\Sigma}\"),oa(\"\\\\varUpsilon\",\"\\\\mathit{\\\\Upsilon}\"),oa(\"\\\\varPhi\",\"\\\\mathit{\\\\Phi}\"),oa(\"\\\\varPsi\",\"\\\\mathit{\\\\Psi}\"),oa(\"\\\\varOmega\",\"\\\\mathit{\\\\Omega}\"),oa(\"\\\\colon\",\"\\\\nobreak\\\\mskip2mu\\\\mathpunct{}\\\\mathchoice{\\\\mkern-3mu}{\\\\mkern-3mu}{}{}{:}\\\\mskip6mu\"),oa(\"\\\\boxed\",\"\\\\fbox{$\\\\displaystyle{#1}$}\"),oa(\"\\\\iff\",\"\\\\DOTSB\\\\;\\\\Longleftrightarrow\\\\;\"),oa(\"\\\\implies\",\"\\\\DOTSB\\\\;\\\\Longrightarrow\\\\;\"),oa(\"\\\\impliedby\",\"\\\\DOTSB\\\\;\\\\Longleftarrow\\\\;\");var la={\",\":\"\\\\dotsc\",\"\\\\not\":\"\\\\dotsb\",\"+\":\"\\\\dotsb\",\"=\":\"\\\\dotsb\",\"<\":\"\\\\dotsb\",\">\":\"\\\\dotsb\",\"-\":\"\\\\dotsb\",\"*\":\"\\\\dotsb\",\":\":\"\\\\dotsb\",\"\\\\DOTSB\":\"\\\\dotsb\",\"\\\\coprod\":\"\\\\dotsb\",\"\\\\bigvee\":\"\\\\dotsb\",\"\\\\bigwedge\":\"\\\\dotsb\",\"\\\\biguplus\":\"\\\\dotsb\",\"\\\\bigcap\":\"\\\\dotsb\",\"\\\\bigcup\":\"\\\\dotsb\",\"\\\\prod\":\"\\\\dotsb\",\"\\\\sum\":\"\\\\dotsb\",\"\\\\bigotimes\":\"\\\\dotsb\",\"\\\\bigoplus\":\"\\\\dotsb\",\"\\\\bigodot\":\"\\\\dotsb\",\"\\\\bigsqcup\":\"\\\\dotsb\",\"\\\\And\":\"\\\\dotsb\",\"\\\\longrightarrow\":\"\\\\dotsb\",\"\\\\Longrightarrow\":\"\\\\dotsb\",\"\\\\longleftarrow\":\"\\\\dotsb\",\"\\\\Longleftarrow\":\"\\\\dotsb\",\"\\\\longleftrightarrow\":\"\\\\dotsb\",\"\\\\Longleftrightarrow\":\"\\\\dotsb\",\"\\\\mapsto\":\"\\\\dotsb\",\"\\\\longmapsto\":\"\\\\dotsb\",\"\\\\hookrightarrow\":\"\\\\dotsb\",\"\\\\doteq\":\"\\\\dotsb\",\"\\\\mathbin\":\"\\\\dotsb\",\"\\\\mathrel\":\"\\\\dotsb\",\"\\\\relbar\":\"\\\\dotsb\",\"\\\\Relbar\":\"\\\\dotsb\",\"\\\\xrightarrow\":\"\\\\dotsb\",\"\\\\xleftarrow\":\"\\\\dotsb\",\"\\\\DOTSI\":\"\\\\dotsi\",\"\\\\int\":\"\\\\dotsi\",\"\\\\oint\":\"\\\\dotsi\",\"\\\\iint\":\"\\\\dotsi\",\"\\\\iiint\":\"\\\\dotsi\",\"\\\\iiiint\":\"\\\\dotsi\",\"\\\\idotsint\":\"\\\\dotsi\",\"\\\\DOTSX\":\"\\\\dotsx\"};oa(\"\\\\dots\",function(t){var e=\"\\\\dotso\",r=t.expandAfterFuture().text;return r in la?e=la[r]:\"\\\\not\"===r.substr(0,4)?e=\"\\\\dotsb\":r in _.math&&c.contains([\"bin\",\"rel\"],_.math[r].group)&&(e=\"\\\\dotsb\"),e});var ma={\")\":!0,\"]\":!0,\"\\\\rbrack\":!0,\"\\\\}\":!0,\"\\\\rbrace\":!0,\"\\\\rangle\":!0,\"\\\\rceil\":!0,\"\\\\rfloor\":!0,\"\\\\rgroup\":!0,\"\\\\rmoustache\":!0,\"\\\\right\":!0,\"\\\\bigr\":!0,\"\\\\biggr\":!0,\"\\\\Bigr\":!0,\"\\\\Biggr\":!0,$:!0,\";\":!0,\".\":!0,\",\":!0};oa(\"\\\\dotso\",function(t){return t.future().text in ma?\"\\\\ldots\\\\,\":\"\\\\ldots\"}),oa(\"\\\\dotsc\",function(t){var e=t.future().text;return e in ma&&\",\"!==e?\"\\\\ldots\\\\,\":\"\\\\ldots\"}),oa(\"\\\\cdots\",function(t){return t.future().text in ma?\"\\\\@cdots\\\\,\":\"\\\\@cdots\"}),oa(\"\\\\dotsb\",\"\\\\cdots\"),oa(\"\\\\dotsm\",\"\\\\cdots\"),oa(\"\\\\dotsi\",\"\\\\!\\\\cdots\"),oa(\"\\\\dotsx\",\"\\\\ldots\\\\,\"),oa(\"\\\\DOTSI\",\"\\\\relax\"),oa(\"\\\\DOTSB\",\"\\\\relax\"),oa(\"\\\\DOTSX\",\"\\\\relax\"),oa(\"\\\\tmspace\",\"\\\\TextOrMath{\\\\kern#1#3}{\\\\mskip#1#2}\\\\relax\"),oa(\"\\\\,\",\"\\\\tmspace+{3mu}{.1667em}\"),oa(\"\\\\thinspace\",\"\\\\,\"),oa(\"\\\\>\",\"\\\\mskip{4mu}\"),oa(\"\\\\:\",\"\\\\tmspace+{4mu}{.2222em}\"),oa(\"\\\\medspace\",\"\\\\:\"),oa(\"\\\\;\",\"\\\\tmspace+{5mu}{.2777em}\"),oa(\"\\\\thickspace\",\"\\\\;\"),oa(\"\\\\!\",\"\\\\tmspace-{3mu}{.1667em}\"),oa(\"\\\\negthinspace\",\"\\\\!\"),oa(\"\\\\negmedspace\",\"\\\\tmspace-{4mu}{.2222em}\"),oa(\"\\\\negthickspace\",\"\\\\tmspace-{5mu}{.277em}\"),oa(\"\\\\enspace\",\"\\\\kern.5em \"),oa(\"\\\\enskip\",\"\\\\hskip.5em\\\\relax\"),oa(\"\\\\quad\",\"\\\\hskip1em\\\\relax\"),oa(\"\\\\qquad\",\"\\\\hskip2em\\\\relax\"),oa(\"\\\\tag\",\"\\\\@ifstar\\\\tag@literal\\\\tag@paren\"),oa(\"\\\\tag@paren\",\"\\\\tag@literal{({#1})}\"),oa(\"\\\\tag@literal\",function(t){if(t.macros.get(\"\\\\df@tag\"))throw new i(\"Multiple \\\\tag\");return\"\\\\gdef\\\\df@tag{\\\\text{#1}}\"}),oa(\"\\\\bmod\",\"\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\\\\mathbin{\\\\rm mod}\\\\mathchoice{\\\\mskip1mu}{\\\\mskip1mu}{\\\\mskip5mu}{\\\\mskip5mu}\"),oa(\"\\\\pod\",\"\\\\allowbreak\\\\mathchoice{\\\\mkern18mu}{\\\\mkern8mu}{\\\\mkern8mu}{\\\\mkern8mu}(#1)\"),oa(\"\\\\pmod\",\"\\\\pod{{\\\\rm mod}\\\\mkern6mu#1}\"),oa(\"\\\\mod\",\"\\\\allowbreak\\\\mathchoice{\\\\mkern18mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\mkern12mu}{\\\\rm mod}\\\\,\\\\,#1\"),oa(\"\\\\pmb\",\"\\\\html@mathml{\\\\@binrel{#1}{\\\\mathrlap{#1}\\\\mathrlap{\\\\mkern0.4mu\\\\raisebox{0.4mu}{$#1$}}{\\\\mkern0.8mu#1}}}{\\\\mathbf{#1}}\"),oa(\"\\\\\\\\\",\"\\\\newline\"),oa(\"\\\\TeX\",\"\\\\textrm{\\\\html@mathml{T\\\\kern-.1667em\\\\raisebox{-.5ex}{E}\\\\kern-.125emX}{TeX}}\");var ca=P[\"Main-Regular\"][\"T\".charCodeAt(0)][1]-.7*P[\"Main-Regular\"][\"A\".charCodeAt(0)][1]+\"em\";oa(\"\\\\LaTeX\",\"\\\\textrm{\\\\html@mathml{L\\\\kern-.36em\\\\raisebox{\"+ca+\"}{\\\\scriptsize A}\\\\kern-.15em\\\\TeX}{LaTeX}}\"),oa(\"\\\\KaTeX\",\"\\\\textrm{\\\\html@mathml{K\\\\kern-.17em\\\\raisebox{\"+ca+\"}{\\\\scriptsize A}\\\\kern-.15em\\\\TeX}{KaTeX}}\"),oa(\"\\\\hspace\",\"\\\\@ifstar\\\\@hspacer\\\\@hspace\"),oa(\"\\\\@hspace\",\"\\\\hskip #1\\\\relax\"),oa(\"\\\\@hspacer\",\"\\\\rule{0pt}{0pt}\\\\hskip #1\\\\relax\"),oa(\"\\\\ordinarycolon\",\":\"),oa(\"\\\\vcentcolon\",\"\\\\mathrel{\\\\mathop\\\\ordinarycolon}\"),oa(\"\\\\dblcolon\",'\\\\html@mathml{\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-.9mu}\\\\vcentcolon}}{\\\\mathop{\\\\char\"2237}}'),oa(\"\\\\coloneqq\",'\\\\html@mathml{\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}=}}{\\\\mathop{\\\\char\"2254}}'),oa(\"\\\\Coloneqq\",'\\\\html@mathml{\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}=}}{\\\\mathop{\\\\char\"2237\\\\char\"3d}}'),oa(\"\\\\coloneq\",'\\\\html@mathml{\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}{\\\\mathop{\\\\char\"3a\\\\char\"2212}}'),oa(\"\\\\Coloneq\",'\\\\html@mathml{\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\mathrel{-}}}{\\\\mathop{\\\\char\"2237\\\\char\"2212}}'),oa(\"\\\\eqqcolon\",'\\\\html@mathml{\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}{\\\\mathop{\\\\char\"2255}}'),oa(\"\\\\Eqqcolon\",'\\\\html@mathml{\\\\mathrel{=\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}{\\\\mathop{\\\\char\"3d\\\\char\"2237}}'),oa(\"\\\\eqcolon\",'\\\\html@mathml{\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}}{\\\\mathop{\\\\char\"2239}}'),oa(\"\\\\Eqcolon\",'\\\\html@mathml{\\\\mathrel{\\\\mathrel{-}\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}}{\\\\mathop{\\\\char\"2212\\\\char\"2237}}'),oa(\"\\\\colonapprox\",'\\\\html@mathml{\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}{\\\\mathop{\\\\char\"3a\\\\char\"2248}}'),oa(\"\\\\Colonapprox\",'\\\\html@mathml{\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\approx}}{\\\\mathop{\\\\char\"2237\\\\char\"2248}}'),oa(\"\\\\colonsim\",'\\\\html@mathml{\\\\mathrel{\\\\vcentcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}{\\\\mathop{\\\\char\"3a\\\\char\"223c}}'),oa(\"\\\\Colonsim\",'\\\\html@mathml{\\\\mathrel{\\\\dblcolon\\\\mathrel{\\\\mkern-1.2mu}\\\\sim}}{\\\\mathop{\\\\char\"2237\\\\char\"223c}}'),oa(\"\\u2237\",\"\\\\dblcolon\"),oa(\"\\u2239\",\"\\\\eqcolon\"),oa(\"\\u2254\",\"\\\\coloneqq\"),oa(\"\\u2255\",\"\\\\eqqcolon\"),oa(\"\\u2a74\",\"\\\\Coloneqq\"),oa(\"\\\\ratio\",\"\\\\vcentcolon\"),oa(\"\\\\coloncolon\",\"\\\\dblcolon\"),oa(\"\\\\colonequals\",\"\\\\coloneqq\"),oa(\"\\\\coloncolonequals\",\"\\\\Coloneqq\"),oa(\"\\\\equalscolon\",\"\\\\eqqcolon\"),oa(\"\\\\equalscoloncolon\",\"\\\\Eqqcolon\"),oa(\"\\\\colonminus\",\"\\\\coloneq\"),oa(\"\\\\coloncolonminus\",\"\\\\Coloneq\"),oa(\"\\\\minuscolon\",\"\\\\eqcolon\"),oa(\"\\\\minuscoloncolon\",\"\\\\Eqcolon\"),oa(\"\\\\coloncolonapprox\",\"\\\\Colonapprox\"),oa(\"\\\\coloncolonsim\",\"\\\\Colonsim\"),oa(\"\\\\simcolon\",\"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\"),oa(\"\\\\simcoloncolon\",\"\\\\mathrel{\\\\sim\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"),oa(\"\\\\approxcolon\",\"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\vcentcolon}\"),oa(\"\\\\approxcoloncolon\",\"\\\\mathrel{\\\\approx\\\\mathrel{\\\\mkern-1.2mu}\\\\dblcolon}\"),oa(\"\\\\notni\",\"\\\\html@mathml{\\\\not\\\\ni}{\\\\mathrel{\\\\char`\\u220c}}\"),oa(\"\\\\limsup\",\"\\\\DOTSB\\\\mathop{\\\\operatorname{lim\\\\,sup}}\\\\limits\"),oa(\"\\\\liminf\",\"\\\\DOTSB\\\\mathop{\\\\operatorname{lim\\\\,inf}}\\\\limits\"),oa(\"\\\\gvertneqq\",\"\\\\html@mathml{\\\\@gvertneqq}{\\u2269}\"),oa(\"\\\\lvertneqq\",\"\\\\html@mathml{\\\\@lvertneqq}{\\u2268}\"),oa(\"\\\\ngeqq\",\"\\\\html@mathml{\\\\@ngeqq}{\\u2271}\"),oa(\"\\\\ngeqslant\",\"\\\\html@mathml{\\\\@ngeqslant}{\\u2271}\"),oa(\"\\\\nleqq\",\"\\\\html@mathml{\\\\@nleqq}{\\u2270}\"),oa(\"\\\\nleqslant\",\"\\\\html@mathml{\\\\@nleqslant}{\\u2270}\"),oa(\"\\\\nshortmid\",\"\\\\html@mathml{\\\\@nshortmid}{\\u2224}\"),oa(\"\\\\nshortparallel\",\"\\\\html@mathml{\\\\@nshortparallel}{\\u2226}\"),oa(\"\\\\nsubseteqq\",\"\\\\html@mathml{\\\\@nsubseteqq}{\\u2288}\"),oa(\"\\\\nsupseteqq\",\"\\\\html@mathml{\\\\@nsupseteqq}{\\u2289}\"),oa(\"\\\\varsubsetneq\",\"\\\\html@mathml{\\\\@varsubsetneq}{\\u228a}\"),oa(\"\\\\varsubsetneqq\",\"\\\\html@mathml{\\\\@varsubsetneqq}{\\u2acb}\"),oa(\"\\\\varsupsetneq\",\"\\\\html@mathml{\\\\@varsupsetneq}{\\u228b}\"),oa(\"\\\\varsupsetneqq\",\"\\\\html@mathml{\\\\@varsupsetneqq}{\\u2acc}\"),oa(\"\\\\llbracket\",\"\\\\html@mathml{\\\\mathopen{[\\\\mkern-3.2mu[}}{\\\\mathopen{\\\\char`\\u27e6}}\"),oa(\"\\\\rrbracket\",\"\\\\html@mathml{\\\\mathclose{]\\\\mkern-3.2mu]}}{\\\\mathclose{\\\\char`\\u27e7}}\"),oa(\"\\u27e6\",\"\\\\llbracket\"),oa(\"\\u27e7\",\"\\\\rrbracket\"),oa(\"\\\\lBrace\",\"\\\\html@mathml{\\\\mathopen{\\\\{\\\\mkern-3.2mu[}}{\\\\mathopen{\\\\char`\\u2983}}\"),oa(\"\\\\rBrace\",\"\\\\html@mathml{\\\\mathclose{]\\\\mkern-3.2mu\\\\}}}{\\\\mathclose{\\\\char`\\u2984}}\"),oa(\"\\u2983\",\"\\\\lBrace\"),oa(\"\\u2984\",\"\\\\rBrace\"),oa(\"\\\\darr\",\"\\\\downarrow\"),oa(\"\\\\dArr\",\"\\\\Downarrow\"),oa(\"\\\\Darr\",\"\\\\Downarrow\"),oa(\"\\\\lang\",\"\\\\langle\"),oa(\"\\\\rang\",\"\\\\rangle\"),oa(\"\\\\uarr\",\"\\\\uparrow\"),oa(\"\\\\uArr\",\"\\\\Uparrow\"),oa(\"\\\\Uarr\",\"\\\\Uparrow\"),oa(\"\\\\N\",\"\\\\mathbb{N}\"),oa(\"\\\\R\",\"\\\\mathbb{R}\"),oa(\"\\\\Z\",\"\\\\mathbb{Z}\"),oa(\"\\\\alef\",\"\\\\aleph\"),oa(\"\\\\alefsym\",\"\\\\aleph\"),oa(\"\\\\Alpha\",\"\\\\mathrm{A}\"),oa(\"\\\\Beta\",\"\\\\mathrm{B}\"),oa(\"\\\\bull\",\"\\\\bullet\"),oa(\"\\\\Chi\",\"\\\\mathrm{X}\"),oa(\"\\\\clubs\",\"\\\\clubsuit\"),oa(\"\\\\cnums\",\"\\\\mathbb{C}\"),oa(\"\\\\Complex\",\"\\\\mathbb{C}\"),oa(\"\\\\Dagger\",\"\\\\ddagger\"),oa(\"\\\\diamonds\",\"\\\\diamondsuit\"),oa(\"\\\\empty\",\"\\\\emptyset\"),oa(\"\\\\Epsilon\",\"\\\\mathrm{E}\"),oa(\"\\\\Eta\",\"\\\\mathrm{H}\"),oa(\"\\\\exist\",\"\\\\exists\"),oa(\"\\\\harr\",\"\\\\leftrightarrow\"),oa(\"\\\\hArr\",\"\\\\Leftrightarrow\"),oa(\"\\\\Harr\",\"\\\\Leftrightarrow\"),oa(\"\\\\hearts\",\"\\\\heartsuit\"),oa(\"\\\\image\",\"\\\\Im\"),oa(\"\\\\infin\",\"\\\\infty\"),oa(\"\\\\Iota\",\"\\\\mathrm{I}\"),oa(\"\\\\isin\",\"\\\\in\"),oa(\"\\\\Kappa\",\"\\\\mathrm{K}\"),oa(\"\\\\larr\",\"\\\\leftarrow\"),oa(\"\\\\lArr\",\"\\\\Leftarrow\"),oa(\"\\\\Larr\",\"\\\\Leftarrow\"),oa(\"\\\\lrarr\",\"\\\\leftrightarrow\"),oa(\"\\\\lrArr\",\"\\\\Leftrightarrow\"),oa(\"\\\\Lrarr\",\"\\\\Leftrightarrow\"),oa(\"\\\\Mu\",\"\\\\mathrm{M}\"),oa(\"\\\\natnums\",\"\\\\mathbb{N}\"),oa(\"\\\\Nu\",\"\\\\mathrm{N}\"),oa(\"\\\\Omicron\",\"\\\\mathrm{O}\"),oa(\"\\\\plusmn\",\"\\\\pm\"),oa(\"\\\\rarr\",\"\\\\rightarrow\"),oa(\"\\\\rArr\",\"\\\\Rightarrow\"),oa(\"\\\\Rarr\",\"\\\\Rightarrow\"),oa(\"\\\\real\",\"\\\\Re\"),oa(\"\\\\reals\",\"\\\\mathbb{R}\"),oa(\"\\\\Reals\",\"\\\\mathbb{R}\"),oa(\"\\\\Rho\",\"\\\\mathrm{P}\"),oa(\"\\\\sdot\",\"\\\\cdot\"),oa(\"\\\\sect\",\"\\\\S\"),oa(\"\\\\spades\",\"\\\\spadesuit\"),oa(\"\\\\sub\",\"\\\\subset\"),oa(\"\\\\sube\",\"\\\\subseteq\"),oa(\"\\\\supe\",\"\\\\supseteq\"),oa(\"\\\\Tau\",\"\\\\mathrm{T}\"),oa(\"\\\\thetasym\",\"\\\\vartheta\"),oa(\"\\\\weierp\",\"\\\\wp\"),oa(\"\\\\Zeta\",\"\\\\mathrm{Z}\"),oa(\"\\\\argmin\",\"\\\\DOTSB\\\\mathop{\\\\operatorname{arg\\\\,min}}\\\\limits\"),oa(\"\\\\argmax\",\"\\\\DOTSB\\\\mathop{\\\\operatorname{arg\\\\,max}}\\\\limits\"),oa(\"\\\\blue\",\"\\\\textcolor{##6495ed}{#1}\"),oa(\"\\\\orange\",\"\\\\textcolor{##ffa500}{#1}\"),oa(\"\\\\pink\",\"\\\\textcolor{##ff00af}{#1}\"),oa(\"\\\\red\",\"\\\\textcolor{##df0030}{#1}\"),oa(\"\\\\green\",\"\\\\textcolor{##28ae7b}{#1}\"),oa(\"\\\\gray\",\"\\\\textcolor{gray}{##1}\"),oa(\"\\\\purple\",\"\\\\textcolor{##9d38bd}{#1}\"),oa(\"\\\\blueA\",\"\\\\textcolor{##ccfaff}{#1}\"),oa(\"\\\\blueB\",\"\\\\textcolor{##80f6ff}{#1}\"),oa(\"\\\\blueC\",\"\\\\textcolor{##63d9ea}{#1}\"),oa(\"\\\\blueD\",\"\\\\textcolor{##11accd}{#1}\"),oa(\"\\\\blueE\",\"\\\\textcolor{##0c7f99}{#1}\"),oa(\"\\\\tealA\",\"\\\\textcolor{##94fff5}{#1}\"),oa(\"\\\\tealB\",\"\\\\textcolor{##26edd5}{#1}\"),oa(\"\\\\tealC\",\"\\\\textcolor{##01d1c1}{#1}\"),oa(\"\\\\tealD\",\"\\\\textcolor{##01a995}{#1}\"),oa(\"\\\\tealE\",\"\\\\textcolor{##208170}{#1}\"),oa(\"\\\\greenA\",\"\\\\textcolor{##b6ffb0}{#1}\"),oa(\"\\\\greenB\",\"\\\\textcolor{##8af281}{#1}\"),oa(\"\\\\greenC\",\"\\\\textcolor{##74cf70}{#1}\"),oa(\"\\\\greenD\",\"\\\\textcolor{##1fab54}{#1}\"),oa(\"\\\\greenE\",\"\\\\textcolor{##0d923f}{#1}\"),oa(\"\\\\goldA\",\"\\\\textcolor{##ffd0a9}{#1}\"),oa(\"\\\\goldB\",\"\\\\textcolor{##ffbb71}{#1}\"),oa(\"\\\\goldC\",\"\\\\textcolor{##ff9c39}{#1}\"),oa(\"\\\\goldD\",\"\\\\textcolor{##e07d10}{#1}\"),oa(\"\\\\goldE\",\"\\\\textcolor{##a75a05}{#1}\"),oa(\"\\\\redA\",\"\\\\textcolor{##fca9a9}{#1}\"),oa(\"\\\\redB\",\"\\\\textcolor{##ff8482}{#1}\"),oa(\"\\\\redC\",\"\\\\textcolor{##f9685d}{#1}\"),oa(\"\\\\redD\",\"\\\\textcolor{##e84d39}{#1}\"),oa(\"\\\\redE\",\"\\\\textcolor{##bc2612}{#1}\"),oa(\"\\\\maroonA\",\"\\\\textcolor{##ffbde0}{#1}\"),oa(\"\\\\maroonB\",\"\\\\textcolor{##ff92c6}{#1}\"),oa(\"\\\\maroonC\",\"\\\\textcolor{##ed5fa6}{#1}\"),oa(\"\\\\maroonD\",\"\\\\textcolor{##ca337c}{#1}\"),oa(\"\\\\maroonE\",\"\\\\textcolor{##9e034e}{#1}\"),oa(\"\\\\purpleA\",\"\\\\textcolor{##ddd7ff}{#1}\"),oa(\"\\\\purpleB\",\"\\\\textcolor{##c6b9fc}{#1}\"),oa(\"\\\\purpleC\",\"\\\\textcolor{##aa87ff}{#1}\"),oa(\"\\\\purpleD\",\"\\\\textcolor{##7854ab}{#1}\"),oa(\"\\\\purpleE\",\"\\\\textcolor{##543b78}{#1}\"),oa(\"\\\\mintA\",\"\\\\textcolor{##f5f9e8}{#1}\"),oa(\"\\\\mintB\",\"\\\\textcolor{##edf2df}{#1}\"),oa(\"\\\\mintC\",\"\\\\textcolor{##e0e5cc}{#1}\"),oa(\"\\\\grayA\",\"\\\\textcolor{##f6f7f7}{#1}\"),oa(\"\\\\grayB\",\"\\\\textcolor{##f0f1f2}{#1}\"),oa(\"\\\\grayC\",\"\\\\textcolor{##e3e5e6}{#1}\"),oa(\"\\\\grayD\",\"\\\\textcolor{##d6d8da}{#1}\"),oa(\"\\\\grayE\",\"\\\\textcolor{##babec2}{#1}\"),oa(\"\\\\grayF\",\"\\\\textcolor{##888d93}{#1}\"),oa(\"\\\\grayG\",\"\\\\textcolor{##626569}{#1}\"),oa(\"\\\\grayH\",\"\\\\textcolor{##3b3e40}{#1}\"),oa(\"\\\\grayI\",\"\\\\textcolor{##21242c}{#1}\"),oa(\"\\\\kaBlue\",\"\\\\textcolor{##314453}{#1}\"),oa(\"\\\\kaGreen\",\"\\\\textcolor{##71B307}{#1}\");var ua={\"\\\\relax\":!0,\"^\":!0,_:!0,\"\\\\limits\":!0,\"\\\\nolimits\":!0},da=function(){function t(t,e,r){this.settings=void 0,this.expansionCount=void 0,this.lexer=void 0,this.macros=void 0,this.stack=void 0,this.mode=void 0,this.settings=e,this.expansionCount=0,this.feed(t),this.macros=new ra(na,e.macros),this.mode=r,this.stack=[]}var e=t.prototype;return e.feed=function(t){this.lexer=new ea(t,this.settings)},e.switchMode=function(t){this.mode=t},e.beginGroup=function(){this.macros.beginGroup()},e.endGroup=function(){this.macros.endGroup()},e.future=function(){return 0===this.stack.length&&this.pushToken(this.lexer.lex()),this.stack[this.stack.length-1]},e.popToken=function(){return this.future(),this.stack.pop()},e.pushToken=function(t){this.stack.push(t)},e.pushTokens=function(t){var e;(e=this.stack).push.apply(e,t)},e.consumeSpaces=function(){for(;;){if(\" \"!==this.future().text)break;this.stack.pop()}},e.consumeArgs=function(t){for(var e=[],r=0;r<t;++r){this.consumeSpaces();var a=this.popToken();if(\"{\"===a.text){for(var n=[],o=1;0!==o;){var s=this.popToken();if(n.push(s),\"{\"===s.text)++o;else if(\"}\"===s.text)--o;else if(\"EOF\"===s.text)throw new i(\"End of input in macro argument\",a)}n.pop(),n.reverse(),e[r]=n}else{if(\"EOF\"===a.text)throw new i(\"End of input expecting macro argument\");e[r]=[a]}}return e},e.expandOnce=function(){var t=this.popToken(),e=t.text,r=this._getExpansion(e);if(null==r)return this.pushToken(t),t;if(this.expansionCount++,this.expansionCount>this.settings.maxExpand)throw new i(\"Too many expansions: infinite loop or need to increase maxExpand setting\");var a=r.tokens;if(r.numArgs)for(var n=this.consumeArgs(r.numArgs),o=(a=a.slice()).length-1;o>=0;--o){var s=a[o];if(\"#\"===s.text){if(0===o)throw new i(\"Incomplete placeholder at end of macro body\",s);if(\"#\"===(s=a[--o]).text)a.splice(o+1,1);else{if(!/^[1-9]$/.test(s.text))throw new i(\"Not a valid argument number\",s);var h;(h=a).splice.apply(h,[o,2].concat(n[+s.text-1]))}}}return this.pushTokens(a),a},e.expandAfterFuture=function(){return this.expandOnce(),this.future()},e.expandNextToken=function(){for(;;){var t=this.expandOnce();if(t instanceof n){if(\"\\\\relax\"!==t.text)return this.stack.pop();this.stack.pop()}}throw new Error},e.expandMacro=function(t){if(this.macros.get(t)){var e=[],r=this.stack.length;for(this.pushToken(new n(t));this.stack.length>r;){this.expandOnce()instanceof n&&e.push(this.stack.pop())}return e}},e.expandMacroAsText=function(t){var e=this.expandMacro(t);return e?e.map(function(t){return t.text}).join(\"\"):e},e._getExpansion=function(t){var e=this.macros.get(t);if(null==e)return e;var r=\"function\"==typeof e?e(this):e;if(\"string\"==typeof r){var a=0;if(-1!==r.indexOf(\"#\"))for(var n=r.replace(/##/g,\"\");-1!==n.indexOf(\"#\"+(a+1));)++a;for(var o=new ea(r,this.settings),i=[],s=o.lex();\"EOF\"!==s.text;)i.push(s),s=o.lex();return i.reverse(),{tokens:i,numArgs:a}}return r},e.isDefined=function(t){return this.macros.has(t)||Kr.hasOwnProperty(t)||_.math.hasOwnProperty(t)||_.text.hasOwnProperty(t)||ua.hasOwnProperty(t)},t}(),pa={\"\\u0301\":{text:\"\\\\'\",math:\"\\\\acute\"},\"\\u0300\":{text:\"\\\\`\",math:\"\\\\grave\"},\"\\u0308\":{text:'\\\\\"',math:\"\\\\ddot\"},\"\\u0303\":{text:\"\\\\~\",math:\"\\\\tilde\"},\"\\u0304\":{text:\"\\\\=\",math:\"\\\\bar\"},\"\\u0306\":{text:\"\\\\u\",math:\"\\\\breve\"},\"\\u030c\":{text:\"\\\\v\",math:\"\\\\check\"},\"\\u0302\":{text:\"\\\\^\",math:\"\\\\hat\"},\"\\u0307\":{text:\"\\\\.\",math:\"\\\\dot\"},\"\\u030a\":{text:\"\\\\r\",math:\"\\\\mathring\"},\"\\u030b\":{text:\"\\\\H\"}},fa={\"\\xe1\":\"a\\u0301\",\"\\xe0\":\"a\\u0300\",\"\\xe4\":\"a\\u0308\",\"\\u01df\":\"a\\u0308\\u0304\",\"\\xe3\":\"a\\u0303\",\"\\u0101\":\"a\\u0304\",\"\\u0103\":\"a\\u0306\",\"\\u1eaf\":\"a\\u0306\\u0301\",\"\\u1eb1\":\"a\\u0306\\u0300\",\"\\u1eb5\":\"a\\u0306\\u0303\",\"\\u01ce\":\"a\\u030c\",\"\\xe2\":\"a\\u0302\",\"\\u1ea5\":\"a\\u0302\\u0301\",\"\\u1ea7\":\"a\\u0302\\u0300\",\"\\u1eab\":\"a\\u0302\\u0303\",\"\\u0227\":\"a\\u0307\",\"\\u01e1\":\"a\\u0307\\u0304\",\"\\xe5\":\"a\\u030a\",\"\\u01fb\":\"a\\u030a\\u0301\",\"\\u1e03\":\"b\\u0307\",\"\\u0107\":\"c\\u0301\",\"\\u010d\":\"c\\u030c\",\"\\u0109\":\"c\\u0302\",\"\\u010b\":\"c\\u0307\",\"\\u010f\":\"d\\u030c\",\"\\u1e0b\":\"d\\u0307\",\"\\xe9\":\"e\\u0301\",\"\\xe8\":\"e\\u0300\",\"\\xeb\":\"e\\u0308\",\"\\u1ebd\":\"e\\u0303\",\"\\u0113\":\"e\\u0304\",\"\\u1e17\":\"e\\u0304\\u0301\",\"\\u1e15\":\"e\\u0304\\u0300\",\"\\u0115\":\"e\\u0306\",\"\\u011b\":\"e\\u030c\",\"\\xea\":\"e\\u0302\",\"\\u1ebf\":\"e\\u0302\\u0301\",\"\\u1ec1\":\"e\\u0302\\u0300\",\"\\u1ec5\":\"e\\u0302\\u0303\",\"\\u0117\":\"e\\u0307\",\"\\u1e1f\":\"f\\u0307\",\"\\u01f5\":\"g\\u0301\",\"\\u1e21\":\"g\\u0304\",\"\\u011f\":\"g\\u0306\",\"\\u01e7\":\"g\\u030c\",\"\\u011d\":\"g\\u0302\",\"\\u0121\":\"g\\u0307\",\"\\u1e27\":\"h\\u0308\",\"\\u021f\":\"h\\u030c\",\"\\u0125\":\"h\\u0302\",\"\\u1e23\":\"h\\u0307\",\"\\xed\":\"i\\u0301\",\"\\xec\":\"i\\u0300\",\"\\xef\":\"i\\u0308\",\"\\u1e2f\":\"i\\u0308\\u0301\",\"\\u0129\":\"i\\u0303\",\"\\u012b\":\"i\\u0304\",\"\\u012d\":\"i\\u0306\",\"\\u01d0\":\"i\\u030c\",\"\\xee\":\"i\\u0302\",\"\\u01f0\":\"j\\u030c\",\"\\u0135\":\"j\\u0302\",\"\\u1e31\":\"k\\u0301\",\"\\u01e9\":\"k\\u030c\",\"\\u013a\":\"l\\u0301\",\"\\u013e\":\"l\\u030c\",\"\\u1e3f\":\"m\\u0301\",\"\\u1e41\":\"m\\u0307\",\"\\u0144\":\"n\\u0301\",\"\\u01f9\":\"n\\u0300\",\"\\xf1\":\"n\\u0303\",\"\\u0148\":\"n\\u030c\",\"\\u1e45\":\"n\\u0307\",\"\\xf3\":\"o\\u0301\",\"\\xf2\":\"o\\u0300\",\"\\xf6\":\"o\\u0308\",\"\\u022b\":\"o\\u0308\\u0304\",\"\\xf5\":\"o\\u0303\",\"\\u1e4d\":\"o\\u0303\\u0301\",\"\\u1e4f\":\"o\\u0303\\u0308\",\"\\u022d\":\"o\\u0303\\u0304\",\"\\u014d\":\"o\\u0304\",\"\\u1e53\":\"o\\u0304\\u0301\",\"\\u1e51\":\"o\\u0304\\u0300\",\"\\u014f\":\"o\\u0306\",\"\\u01d2\":\"o\\u030c\",\"\\xf4\":\"o\\u0302\",\"\\u1ed1\":\"o\\u0302\\u0301\",\"\\u1ed3\":\"o\\u0302\\u0300\",\"\\u1ed7\":\"o\\u0302\\u0303\",\"\\u022f\":\"o\\u0307\",\"\\u0231\":\"o\\u0307\\u0304\",\"\\u0151\":\"o\\u030b\",\"\\u1e55\":\"p\\u0301\",\"\\u1e57\":\"p\\u0307\",\"\\u0155\":\"r\\u0301\",\"\\u0159\":\"r\\u030c\",\"\\u1e59\":\"r\\u0307\",\"\\u015b\":\"s\\u0301\",\"\\u1e65\":\"s\\u0301\\u0307\",\"\\u0161\":\"s\\u030c\",\"\\u1e67\":\"s\\u030c\\u0307\",\"\\u015d\":\"s\\u0302\",\"\\u1e61\":\"s\\u0307\",\"\\u1e97\":\"t\\u0308\",\"\\u0165\":\"t\\u030c\",\"\\u1e6b\":\"t\\u0307\",\"\\xfa\":\"u\\u0301\",\"\\xf9\":\"u\\u0300\",\"\\xfc\":\"u\\u0308\",\"\\u01d8\":\"u\\u0308\\u0301\",\"\\u01dc\":\"u\\u0308\\u0300\",\"\\u01d6\":\"u\\u0308\\u0304\",\"\\u01da\":\"u\\u0308\\u030c\",\"\\u0169\":\"u\\u0303\",\"\\u1e79\":\"u\\u0303\\u0301\",\"\\u016b\":\"u\\u0304\",\"\\u1e7b\":\"u\\u0304\\u0308\",\"\\u016d\":\"u\\u0306\",\"\\u01d4\":\"u\\u030c\",\"\\xfb\":\"u\\u0302\",\"\\u016f\":\"u\\u030a\",\"\\u0171\":\"u\\u030b\",\"\\u1e7d\":\"v\\u0303\",\"\\u1e83\":\"w\\u0301\",\"\\u1e81\":\"w\\u0300\",\"\\u1e85\":\"w\\u0308\",\"\\u0175\":\"w\\u0302\",\"\\u1e87\":\"w\\u0307\",\"\\u1e98\":\"w\\u030a\",\"\\u1e8d\":\"x\\u0308\",\"\\u1e8b\":\"x\\u0307\",\"\\xfd\":\"y\\u0301\",\"\\u1ef3\":\"y\\u0300\",\"\\xff\":\"y\\u0308\",\"\\u1ef9\":\"y\\u0303\",\"\\u0233\":\"y\\u0304\",\"\\u0177\":\"y\\u0302\",\"\\u1e8f\":\"y\\u0307\",\"\\u1e99\":\"y\\u030a\",\"\\u017a\":\"z\\u0301\",\"\\u017e\":\"z\\u030c\",\"\\u1e91\":\"z\\u0302\",\"\\u017c\":\"z\\u0307\",\"\\xc1\":\"A\\u0301\",\"\\xc0\":\"A\\u0300\",\"\\xc4\":\"A\\u0308\",\"\\u01de\":\"A\\u0308\\u0304\",\"\\xc3\":\"A\\u0303\",\"\\u0100\":\"A\\u0304\",\"\\u0102\":\"A\\u0306\",\"\\u1eae\":\"A\\u0306\\u0301\",\"\\u1eb0\":\"A\\u0306\\u0300\",\"\\u1eb4\":\"A\\u0306\\u0303\",\"\\u01cd\":\"A\\u030c\",\"\\xc2\":\"A\\u0302\",\"\\u1ea4\":\"A\\u0302\\u0301\",\"\\u1ea6\":\"A\\u0302\\u0300\",\"\\u1eaa\":\"A\\u0302\\u0303\",\"\\u0226\":\"A\\u0307\",\"\\u01e0\":\"A\\u0307\\u0304\",\"\\xc5\":\"A\\u030a\",\"\\u01fa\":\"A\\u030a\\u0301\",\"\\u1e02\":\"B\\u0307\",\"\\u0106\":\"C\\u0301\",\"\\u010c\":\"C\\u030c\",\"\\u0108\":\"C\\u0302\",\"\\u010a\":\"C\\u0307\",\"\\u010e\":\"D\\u030c\",\"\\u1e0a\":\"D\\u0307\",\"\\xc9\":\"E\\u0301\",\"\\xc8\":\"E\\u0300\",\"\\xcb\":\"E\\u0308\",\"\\u1ebc\":\"E\\u0303\",\"\\u0112\":\"E\\u0304\",\"\\u1e16\":\"E\\u0304\\u0301\",\"\\u1e14\":\"E\\u0304\\u0300\",\"\\u0114\":\"E\\u0306\",\"\\u011a\":\"E\\u030c\",\"\\xca\":\"E\\u0302\",\"\\u1ebe\":\"E\\u0302\\u0301\",\"\\u1ec0\":\"E\\u0302\\u0300\",\"\\u1ec4\":\"E\\u0302\\u0303\",\"\\u0116\":\"E\\u0307\",\"\\u1e1e\":\"F\\u0307\",\"\\u01f4\":\"G\\u0301\",\"\\u1e20\":\"G\\u0304\",\"\\u011e\":\"G\\u0306\",\"\\u01e6\":\"G\\u030c\",\"\\u011c\":\"G\\u0302\",\"\\u0120\":\"G\\u0307\",\"\\u1e26\":\"H\\u0308\",\"\\u021e\":\"H\\u030c\",\"\\u0124\":\"H\\u0302\",\"\\u1e22\":\"H\\u0307\",\"\\xcd\":\"I\\u0301\",\"\\xcc\":\"I\\u0300\",\"\\xcf\":\"I\\u0308\",\"\\u1e2e\":\"I\\u0308\\u0301\",\"\\u0128\":\"I\\u0303\",\"\\u012a\":\"I\\u0304\",\"\\u012c\":\"I\\u0306\",\"\\u01cf\":\"I\\u030c\",\"\\xce\":\"I\\u0302\",\"\\u0130\":\"I\\u0307\",\"\\u0134\":\"J\\u0302\",\"\\u1e30\":\"K\\u0301\",\"\\u01e8\":\"K\\u030c\",\"\\u0139\":\"L\\u0301\",\"\\u013d\":\"L\\u030c\",\"\\u1e3e\":\"M\\u0301\",\"\\u1e40\":\"M\\u0307\",\"\\u0143\":\"N\\u0301\",\"\\u01f8\":\"N\\u0300\",\"\\xd1\":\"N\\u0303\",\"\\u0147\":\"N\\u030c\",\"\\u1e44\":\"N\\u0307\",\"\\xd3\":\"O\\u0301\",\"\\xd2\":\"O\\u0300\",\"\\xd6\":\"O\\u0308\",\"\\u022a\":\"O\\u0308\\u0304\",\"\\xd5\":\"O\\u0303\",\"\\u1e4c\":\"O\\u0303\\u0301\",\"\\u1e4e\":\"O\\u0303\\u0308\",\"\\u022c\":\"O\\u0303\\u0304\",\"\\u014c\":\"O\\u0304\",\"\\u1e52\":\"O\\u0304\\u0301\",\"\\u1e50\":\"O\\u0304\\u0300\",\"\\u014e\":\"O\\u0306\",\"\\u01d1\":\"O\\u030c\",\"\\xd4\":\"O\\u0302\",\"\\u1ed0\":\"O\\u0302\\u0301\",\"\\u1ed2\":\"O\\u0302\\u0300\",\"\\u1ed6\":\"O\\u0302\\u0303\",\"\\u022e\":\"O\\u0307\",\"\\u0230\":\"O\\u0307\\u0304\",\"\\u0150\":\"O\\u030b\",\"\\u1e54\":\"P\\u0301\",\"\\u1e56\":\"P\\u0307\",\"\\u0154\":\"R\\u0301\",\"\\u0158\":\"R\\u030c\",\"\\u1e58\":\"R\\u0307\",\"\\u015a\":\"S\\u0301\",\"\\u1e64\":\"S\\u0301\\u0307\",\"\\u0160\":\"S\\u030c\",\"\\u1e66\":\"S\\u030c\\u0307\",\"\\u015c\":\"S\\u0302\",\"\\u1e60\":\"S\\u0307\",\"\\u0164\":\"T\\u030c\",\"\\u1e6a\":\"T\\u0307\",\"\\xda\":\"U\\u0301\",\"\\xd9\":\"U\\u0300\",\"\\xdc\":\"U\\u0308\",\"\\u01d7\":\"U\\u0308\\u0301\",\"\\u01db\":\"U\\u0308\\u0300\",\"\\u01d5\":\"U\\u0308\\u0304\",\"\\u01d9\":\"U\\u0308\\u030c\",\"\\u0168\":\"U\\u0303\",\"\\u1e78\":\"U\\u0303\\u0301\",\"\\u016a\":\"U\\u0304\",\"\\u1e7a\":\"U\\u0304\\u0308\",\"\\u016c\":\"U\\u0306\",\"\\u01d3\":\"U\\u030c\",\"\\xdb\":\"U\\u0302\",\"\\u016e\":\"U\\u030a\",\"\\u0170\":\"U\\u030b\",\"\\u1e7c\":\"V\\u0303\",\"\\u1e82\":\"W\\u0301\",\"\\u1e80\":\"W\\u0300\",\"\\u1e84\":\"W\\u0308\",\"\\u0174\":\"W\\u0302\",\"\\u1e86\":\"W\\u0307\",\"\\u1e8c\":\"X\\u0308\",\"\\u1e8a\":\"X\\u0307\",\"\\xdd\":\"Y\\u0301\",\"\\u1ef2\":\"Y\\u0300\",\"\\u0178\":\"Y\\u0308\",\"\\u1ef8\":\"Y\\u0303\",\"\\u0232\":\"Y\\u0304\",\"\\u0176\":\"Y\\u0302\",\"\\u1e8e\":\"Y\\u0307\",\"\\u0179\":\"Z\\u0301\",\"\\u017d\":\"Z\\u030c\",\"\\u1e90\":\"Z\\u0302\",\"\\u017b\":\"Z\\u0307\",\"\\u03ac\":\"\\u03b1\\u0301\",\"\\u1f70\":\"\\u03b1\\u0300\",\"\\u1fb1\":\"\\u03b1\\u0304\",\"\\u1fb0\":\"\\u03b1\\u0306\",\"\\u03ad\":\"\\u03b5\\u0301\",\"\\u1f72\":\"\\u03b5\\u0300\",\"\\u03ae\":\"\\u03b7\\u0301\",\"\\u1f74\":\"\\u03b7\\u0300\",\"\\u03af\":\"\\u03b9\\u0301\",\"\\u1f76\":\"\\u03b9\\u0300\",\"\\u03ca\":\"\\u03b9\\u0308\",\"\\u0390\":\"\\u03b9\\u0308\\u0301\",\"\\u1fd2\":\"\\u03b9\\u0308\\u0300\",\"\\u1fd1\":\"\\u03b9\\u0304\",\"\\u1fd0\":\"\\u03b9\\u0306\",\"\\u03cc\":\"\\u03bf\\u0301\",\"\\u1f78\":\"\\u03bf\\u0300\",\"\\u03cd\":\"\\u03c5\\u0301\",\"\\u1f7a\":\"\\u03c5\\u0300\",\"\\u03cb\":\"\\u03c5\\u0308\",\"\\u03b0\":\"\\u03c5\\u0308\\u0301\",\"\\u1fe2\":\"\\u03c5\\u0308\\u0300\",\"\\u1fe1\":\"\\u03c5\\u0304\",\"\\u1fe0\":\"\\u03c5\\u0306\",\"\\u03ce\":\"\\u03c9\\u0301\",\"\\u1f7c\":\"\\u03c9\\u0300\",\"\\u038e\":\"\\u03a5\\u0301\",\"\\u1fea\":\"\\u03a5\\u0300\",\"\\u03ab\":\"\\u03a5\\u0308\",\"\\u1fe9\":\"\\u03a5\\u0304\",\"\\u1fe8\":\"\\u03a5\\u0306\",\"\\u038f\":\"\\u03a9\\u0301\",\"\\u1ffa\":\"\\u03a9\\u0300\"},ga=function(){function t(t,e){this.mode=void 0,this.gullet=void 0,this.settings=void 0,this.leftrightDepth=void 0,this.nextToken=void 0,this.mode=\"math\",this.gullet=new da(t,e,this.mode),this.settings=e,this.leftrightDepth=0}var e=t.prototype;return e.expect=function(t,e){if(void 0===e&&(e=!0),this.nextToken.text!==t)throw new i(\"Expected '\"+t+\"', got '\"+this.nextToken.text+\"'\",this.nextToken);e&&this.consume()},e.consume=function(){this.nextToken=this.gullet.expandNextToken()},e.switchMode=function(t){this.mode=t,this.gullet.switchMode(t)},e.parse=function(){this.gullet.beginGroup(),this.settings.colorIsTextColor&&this.gullet.macros.set(\"\\\\color\",\"\\\\textcolor\"),this.consume();var t=this.parseExpression(!1);return this.expect(\"EOF\",!1),this.gullet.endGroup(),t},e.parseExpression=function(e,r){for(var a=[];;){\"math\"===this.mode&&this.consumeSpaces();var n=this.nextToken;if(-1!==t.endOfExpression.indexOf(n.text))break;if(r&&n.text===r)break;if(e&&Kr[n.text]&&Kr[n.text].infix)break;var o=this.parseAtom(r);if(!o)break;a.push(o)}return\"text\"===this.mode&&this.formLigatures(a),this.handleInfixNodes(a)},e.handleInfixNodes=function(t){for(var e,r=-1,a=0;a<t.length;a++){var n=Pt(t[a],\"infix\");if(n){if(-1!==r)throw new i(\"only one infix operator per group\",n.token);r=a,e=n.replaceWith}}if(-1!==r&&e){var o,s,h=t.slice(0,r),l=t.slice(r+1);return o=1===h.length&&\"ordgroup\"===h[0].type?h[0]:{type:\"ordgroup\",mode:this.mode,body:h},s=1===l.length&&\"ordgroup\"===l[0].type?l[0]:{type:\"ordgroup\",mode:this.mode,body:l},[\"\\\\\\\\abovefrac\"===e?this.callFunction(e,[o,t[r],s],[]):this.callFunction(e,[o,s],[])]}return t},e.handleSupSubscript=function(e){var r=this.nextToken,a=r.text;this.consume(),this.consumeSpaces();var n=this.parseGroup(e,!1,t.SUPSUB_GREEDINESS);if(!n)throw new i(\"Expected group after '\"+a+\"'\",r);return n},e.handleUnsupportedCmd=function(){for(var t=this.nextToken.text,e=[],r=0;r<t.length;r++)e.push({type:\"textord\",mode:\"text\",text:t[r]});var a={type:\"text\",mode:this.mode,body:e},n={type:\"color\",mode:this.mode,color:this.settings.errorColor,body:[a]};return this.consume(),n},e.parseAtom=function(t){var e,r,a=this.parseGroup(\"atom\",!1,null,t);if(\"text\"===this.mode)return a;for(;;){this.consumeSpaces();var n=this.nextToken;if(\"\\\\limits\"===n.text||\"\\\\nolimits\"===n.text){var o=Pt(a,\"op\");if(!o)throw new i(\"Limit controls must follow a math operator\",n);var s=\"\\\\limits\"===n.text;o.limits=s,o.alwaysHandleSupSub=!0,this.consume()}else if(\"^\"===n.text){if(e)throw new i(\"Double superscript\",n);e=this.handleSupSubscript(\"superscript\")}else if(\"_\"===n.text){if(r)throw new i(\"Double subscript\",n);r=this.handleSupSubscript(\"subscript\")}else{if(\"'\"!==n.text)break;if(e)throw new i(\"Double superscript\",n);var h={type:\"textord\",mode:this.mode,text:\"\\\\prime\"},l=[h];for(this.consume();\"'\"===this.nextToken.text;)l.push(h),this.consume();\"^\"===this.nextToken.text&&l.push(this.handleSupSubscript(\"superscript\")),e={type:\"ordgroup\",mode:this.mode,body:l}}}return e||r?{type:\"supsub\",mode:this.mode,base:a,sup:e,sub:r}:a},e.parseFunction=function(t,e,r){var a=this.nextToken,n=a.text,o=Kr[n];if(!o)return null;if(null!=r&&o.greediness<=r)throw new i(\"Got function '\"+n+\"' with no arguments\"+(e?\" as \"+e:\"\"),a);if(\"text\"===this.mode&&!o.allowedInText)throw new i(\"Can't use function '\"+n+\"' in text mode\",a);if(\"math\"===this.mode&&!1===o.allowedInMath)throw new i(\"Can't use function '\"+n+\"' in math mode\",a);if(o.argTypes&&\"url\"===o.argTypes[0]&&this.gullet.lexer.setCatcode(\"%\",13),o.consumeMode){var s=this.mode;this.switchMode(o.consumeMode),this.consume(),this.switchMode(s)}else this.consume();var h=this.parseArguments(n,o),l=h.args,m=h.optArgs;return this.callFunction(n,l,m,a,t)},e.callFunction=function(t,e,r,a,n){var o={funcName:t,parser:this,token:a,breakOnTokenText:n},s=Kr[t];if(s&&s.handler)return s.handler(o,e,r);throw new i(\"No function handler for \"+t)},e.parseArguments=function(t,e){var r=e.numArgs+e.numOptionalArgs;if(0===r)return{args:[],optArgs:[]};for(var a=e.greediness,n=[],o=[],s=0;s<r;s++){var h=e.argTypes&&e.argTypes[s],l=s<e.numOptionalArgs;s>0&&!l&&this.consumeSpaces(),0!==s||l||\"math\"!==this.mode||this.consumeSpaces();var m=this.nextToken,c=this.parseGroupOfType(\"argument to '\"+t+\"'\",h,l,a);if(!c){if(l){o.push(null);continue}throw new i(\"Expected group after '\"+t+\"'\",m)}(l?o:n).push(c)}return{args:n,optArgs:o}},e.parseGroupOfType=function(t,e,r,a){switch(e){case\"color\":return this.parseColorGroup(r);case\"size\":return this.parseSizeGroup(r);case\"url\":return this.parseUrlGroup(r);case\"math\":case\"text\":return this.parseGroup(t,r,a,void 0,e);case\"raw\":if(r&&\"{\"===this.nextToken.text)return null;var n=this.parseStringGroup(\"raw\",r,!0);if(n)return{type:\"raw\",mode:\"text\",string:n.text};throw new i(\"Expected raw group\",this.nextToken);case\"original\":case null:case void 0:return this.parseGroup(t,r,a);default:throw new i(\"Unknown group type as \"+t,this.nextToken)}},e.consumeSpaces=function(){for(;\" \"===this.nextToken.text;)this.consume()},e.parseStringGroup=function(t,e,r){var a=e?\"[\":\"{\",n=e?\"]\":\"}\",o=this.nextToken;if(o.text!==a){if(e)return null;if(r&&\"EOF\"!==o.text&&/[^{}[\\]]/.test(o.text))return this.gullet.lexer.setCatcode(\"%\",14),this.consume(),o}var s=this.mode;this.mode=\"text\",this.expect(a);for(var h=\"\",l=this.nextToken,m=0,c=l;r&&m>0||this.nextToken.text!==n;){switch(this.nextToken.text){case\"EOF\":throw new i(\"Unexpected end of input in \"+t,l.range(c,h));case a:m++;break;case n:m--}h+=(c=this.nextToken).text,this.consume()}return this.mode=s,this.gullet.lexer.setCatcode(\"%\",14),this.expect(n),l.range(c,h)},e.parseRegexGroup=function(t,e){var r=this.mode;this.mode=\"text\";for(var a=this.nextToken,n=a,o=\"\";\"EOF\"!==this.nextToken.text&&t.test(o+this.nextToken.text);)o+=(n=this.nextToken).text,this.consume();if(\"\"===o)throw new i(\"Invalid \"+e+\": '\"+a.text+\"'\",a);return this.mode=r,a.range(n,o)},e.parseColorGroup=function(t){var e=this.parseStringGroup(\"color\",t);if(!e)return null;var r=/^(#[a-f0-9]{3}|#?[a-f0-9]{6}|[a-z]+)$/i.exec(e.text);if(!r)throw new i(\"Invalid color: '\"+e.text+\"'\",e);var a=r[0];return/^[0-9a-f]{6}$/i.test(a)&&(a=\"#\"+a),{type:\"color-token\",mode:this.mode,color:a}},e.parseSizeGroup=function(t){var e,r=!1;if(!(e=t||\"{\"===this.nextToken.text?this.parseStringGroup(\"size\",t):this.parseRegexGroup(/^[-+]? *(?:$|\\d+|\\d+\\.\\d*|\\.\\d*) *[a-z]{0,2} *$/,\"size\")))return null;t||0!==e.text.length||(e.text=\"0pt\",r=!0);var a=/([-+]?) *(\\d+(?:\\.\\d*)?|\\.\\d+) *([a-z]{2})/.exec(e.text);if(!a)throw new i(\"Invalid size: '\"+e.text+\"'\",e);var n,o={number:+(a[1]+a[2]),unit:a[3]};if(\"string\"!=typeof(n=o)&&(n=n.unit),!(n in kt||n in St||\"ex\"===n))throw new i(\"Invalid unit: '\"+o.unit+\"'\",e);return{type:\"size\",mode:this.mode,value:o,isBlank:r}},e.parseUrlGroup=function(t){var e=this.parseStringGroup(\"url\",t,!0);if(!e)return null;var r=e.text.replace(/\\\\([#$%&~_^{}])/g,\"$1\"),a=/^\\s*([^\\\\\\/#]*?)(?::|�*58|�*3a)/i.exec(r);a=null!=a?a[1]:\"_relative\";var n=this.settings.allowedProtocols;if(!c.contains(n,\"*\")&&!c.contains(n,a))throw new i(\"Forbidden protocol '\"+a+\"'\",e);return{type:\"url\",mode:this.mode,url:r}},e.parseGroup=function(e,r,n,o,s){var h,l,m=this.mode,c=this.nextToken,u=c.text;if(s&&this.switchMode(s),r?\"[\"===u:\"{\"===u||\"\\\\begingroup\"===u){h=t.endOfGroup[u],this.gullet.beginGroup(),this.consume();var d=this.parseExpression(!1,h),p=this.nextToken;this.gullet.endGroup(),l={type:\"ordgroup\",mode:this.mode,loc:a.range(c,p),body:d,semisimple:\"\\\\begingroup\"===u||void 0}}else if(r)l=null;else if(null==(l=this.parseFunction(o,e,n)||this.parseSymbol())&&\"\\\\\"===u[0]&&!ua.hasOwnProperty(u)){if(this.settings.throwOnError)throw new i(\"Undefined control sequence: \"+u,c);l=this.handleUnsupportedCmd()}return s&&this.switchMode(m),h&&this.expect(h),l},e.formLigatures=function(t){for(var e=t.length-1,r=0;r<e;++r){var n=t[r],o=n.text;\"-\"===o&&\"-\"===t[r+1].text&&(r+1<e&&\"-\"===t[r+2].text?(t.splice(r,3,{type:\"textord\",mode:\"text\",loc:a.range(n,t[r+2]),text:\"---\"}),e-=2):(t.splice(r,2,{type:\"textord\",mode:\"text\",loc:a.range(n,t[r+1]),text:\"--\"}),e-=1)),\"'\"!==o&&\"`\"!==o||t[r+1].text!==o||(t.splice(r,2,{type:\"textord\",mode:\"text\",loc:a.range(n,t[r+1]),text:o+o}),e-=1)}},e.parseSymbol=function(){var t=this.nextToken,e=t.text;if(/^\\\\verb[^a-zA-Z]/.test(e)){this.consume();var r=e.slice(5),n=\"*\"===r.charAt(0);if(n&&(r=r.slice(1)),r.length<2||r.charAt(0)!==r.slice(-1))throw new i(\"\\\\verb assertion failed --\\n please report what input caused this bug\");return{type:\"verb\",mode:\"text\",body:r=r.slice(1,-1),star:n}}fa.hasOwnProperty(e[0])&&!_[this.mode][e[0]]&&(this.settings.strict&&\"math\"===this.mode&&this.settings.reportNonstrict(\"unicodeTextInMathMode\",'Accented Unicode text character \"'+e[0]+'\" used in math mode',t),e=fa[e[0]]+e.substr(1));var o,s=Qr.exec(e);if(s&&(\"i\"===(e=e.substring(0,s.index))?e=\"\\u0131\":\"j\"===e&&(e=\"\\u0237\")),_[this.mode][e]){this.settings.strict&&\"math\"===this.mode&&\"\\xc7\\xd0\\xde\\xe7\\xfe\".indexOf(e)>=0&&this.settings.reportNonstrict(\"unicodeTextInMathMode\",'Latin-1/Unicode text character \"'+e[0]+'\" used in math mode',t);var h,l=_[this.mode][e].group,m=a.range(t);if(G.hasOwnProperty(l)){var c=l;h={type:\"atom\",mode:this.mode,family:c,loc:m,text:e}}else h={type:l,mode:this.mode,loc:m,text:e};o=h}else{if(!(e.charCodeAt(0)>=128))return null;this.settings.strict&&(z(e.charCodeAt(0))?\"math\"===this.mode&&this.settings.reportNonstrict(\"unicodeTextInMathMode\",'Unicode text character \"'+e[0]+'\" used in math mode',t):this.settings.reportNonstrict(\"unknownSymbol\",'Unrecognized Unicode character \"'+e[0]+'\" ('+e.charCodeAt(0)+\")\",t)),o={type:\"textord\",mode:this.mode,loc:a.range(t),text:e}}if(this.consume(),s)for(var u=0;u<s[0].length;u++){var d=s[0][u];if(!pa[d])throw new i(\"Unknown accent ' \"+d+\"'\",t);var p=pa[d][this.mode];if(!p)throw new i(\"Accent \"+d+\" unsupported in \"+this.mode+\" mode\",t);o={type:\"accent\",mode:this.mode,loc:a.range(t),label:p,isStretchy:!1,isShifty:!0,base:o}}return o},t}();ga.endOfExpression=[\"}\",\"\\\\endgroup\",\"\\\\end\",\"\\\\right\",\"&\"],ga.endOfGroup={\"[\":\"]\",\"{\":\"}\",\"\\\\begingroup\":\"\\\\endgroup\"},ga.SUPSUB_GREEDINESS=1;var xa=function(t,e){if(!(\"string\"==typeof t||t instanceof String))throw new TypeError(\"KaTeX can only parse string typed expression\");var r=new ga(t,e);delete r.gullet.macros.current[\"\\\\df@tag\"];var a=r.parse();if(r.gullet.macros.get(\"\\\\df@tag\")){if(!e.displayMode)throw new i(\"\\\\tag works only in display equations\");r.gullet.feed(\"\\\\df@tag\"),a=[{type:\"tag\",mode:\"text\",body:a,tag:r.parse()}]}return a},va=function(t,e,r){e.textContent=\"\";var a=ya(t,r).toNode();e.appendChild(a)};\"undefined\"!=typeof document&&\"CSS1Compat\"!==document.compatMode&&(\"undefined\"!=typeof console&&console.warn(\"Warning: KaTeX doesn't work in quirks mode. Make sure your website has a suitable doctype.\"),va=function(){throw new i(\"KaTeX doesn't work in quirks mode.\")});var ba=function(t,e,r){if(r.throwOnError||!(t instanceof i))throw t;var a=Lt.makeSpan([\"katex-error\"],[new E(e)]);return a.setAttribute(\"title\",t.toString()),a.setAttribute(\"style\",\"color:\"+r.errorColor),a},ya=function(t,e){var r=new u(e);try{var a=xa(t,r);return Se(a,t,r)}catch(e){return ba(e,t,r)}},wa={version:\"0.10.2\",render:va,renderToString:function(t,e){return ya(t,e).toMarkup()},ParseError:i,__parse:function(t,e){var r=new u(e);return xa(t,r)},__renderToDomTree:ya,__renderToHTMLTree:function(t,e){var r=new u(e);try{return function(t,e,r){var a=me(t,we(r)),n=Lt.makeSpan([\"katex\"],[a]);return ke(n,r)}(xa(t,r),0,r)}catch(e){return ba(e,t,r)}},__setFontMetrics:function(t,e){P[t]=e},__defineSymbol:W,__defineMacro:oa,__domTree:{Span:N,Anchor:I,SymbolNode:E,SvgNode:R,PathNode:L,LineNode:H}};e.default=wa}]).default});\n\n})(!$tw.browser ? $tw.fakeDocument : window.document)\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/katex/katex.min.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/katex/mhchem.min.js": {
"text": "/* eslint-disable */\n/* -*- Mode: Javascript; indent-tabs-mode:nil; js-indent-level: 2 -*- */\n/* vim: set ts=2 et sw=2 tw=80: */\n\n/*************************************************************\n *\n * KaTeX mhchem.js\n *\n * This file implements a KaTeX version of mhchem version 3.3.0.\n * It is adapted from MathJax/extensions/TeX/mhchem.js\n * It differs from the MathJax version as follows:\n * 1. The interface is changed so that it can be called from KaTeX, not MathJax.\n * 2. \\rlap and \\llap are replaced with \\mathrlap and \\mathllap.\n * 3. Four lines of code are edited in order to use \\raisebox instead of \\raise.\n * 4. The reaction arrow code is simplified. All reaction arrows are rendered\n * using KaTeX extensible arrows instead of building non-extensible arrows.\n * 5. \\tripledash vertical alignment is slightly adjusted.\n *\n * This code, as other KaTeX code, is released under the MIT license.\n * \n * /*************************************************************\n *\n * MathJax/extensions/TeX/mhchem.js\n *\n * Implements the \\ce command for handling chemical formulas\n * from the mhchem LaTeX package.\n *\n * ---------------------------------------------------------------------\n *\n * Copyright (c) 2011-2015 The MathJax Consortium\n * Copyright (c) 2015-2018 Martin Hensel\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\n//\n// Coding Style\n// - use '' for identifiers that can by minified/uglified\n// - use \"\" for strings that need to stay untouched\n\n// version: \"3.3.0\" for MathJax and KaTeX\n\n/****************************************\n*****************************************\n* TiddlyWiki: moved the katex-module definitions to wrapper.js\n*****************************************\n*****************************************/\n\n //\n // This is the main function for handing the \\ce and \\pu commands.\n // It takes the argument to \\ce or \\pu and returns the corresponding TeX string.\n //\n\n // TiddlyWiki: replaced `var chemParse =` with `module.exports =` ... no more modifications in this file\n module.exports = function (tokens, stateMachine) {\n // Recreate the argument string from KaTeX's array of tokens.\n var str = \"\";\n var expectedLoc = tokens[tokens.length - 1].loc.start\n for (var i = tokens.length - 1; i >= 0; i--) {\n if(tokens[i].loc.start > expectedLoc) {\n // context.consumeArgs has eaten a space.\n str += \" \";\n expectedLoc = tokens[i].loc.start;\n }\n str += tokens[i].text;\n expectedLoc += tokens[i].text.length;\n }\n var tex = texify.go(mhchemParser.go(str, stateMachine));\n return tex;\n };\n\n //\n // Core parser for mhchem syntax (recursive)\n //\n /** @type {MhchemParser} */\n var mhchemParser = {\n //\n // Parses mchem \\ce syntax\n //\n // Call like\n // go(\"H2O\");\n //\n go: function (input, stateMachine) {\n if (!input) { return []; }\n if (stateMachine === undefined) { stateMachine = 'ce'; }\n var state = '0';\n\n //\n // String buffers for parsing:\n //\n // buffer.a == amount\n // buffer.o == element\n // buffer.b == left-side superscript\n // buffer.p == left-side subscript\n // buffer.q == right-side subscript\n // buffer.d == right-side superscript\n //\n // buffer.r == arrow\n // buffer.rdt == arrow, script above, type\n // buffer.rd == arrow, script above, content\n // buffer.rqt == arrow, script below, type\n // buffer.rq == arrow, script below, content\n //\n // buffer.text_\n // buffer.rm\n // etc.\n //\n // buffer.parenthesisLevel == int, starting at 0\n // buffer.sb == bool, space before\n // buffer.beginsWithBond == bool\n //\n // These letters are also used as state names.\n //\n // Other states:\n // 0 == begin of main part (arrow/operator unlikely)\n // 1 == next entity\n // 2 == next entity (arrow/operator unlikely)\n // 3 == next atom\n // c == macro\n //\n /** @type {Buffer} */\n var buffer = {};\n buffer['parenthesisLevel'] = 0;\n\n input = input.replace(/\\n/g, \" \");\n input = input.replace(/[\\u2212\\u2013\\u2014\\u2010]/g, \"-\");\n input = input.replace(/[\\u2026]/g, \"...\");\n\n //\n // Looks through mhchemParser.transitions, to execute a matching action\n // (recursive)\n //\n var lastInput;\n var watchdog = 10;\n /** @type {ParserOutput[]} */\n var output = [];\n while (true) {\n if (lastInput !== input) {\n watchdog = 10;\n lastInput = input;\n } else {\n watchdog--;\n }\n //\n // Find actions in transition table\n //\n var machine = mhchemParser.stateMachines[stateMachine];\n var t = machine.transitions[state] || machine.transitions['*'];\n iterateTransitions:\n for (var i=0; i<t.length; i++) {\n var matches = mhchemParser.patterns.match_(t[i].pattern, input);\n if (matches) {\n //\n // Execute actions\n //\n var task = t[i].task;\n for (var iA=0; iA<task.action_.length; iA++) {\n var o;\n //\n // Find and execute action\n //\n if (machine.actions[task.action_[iA].type_]) {\n o = machine.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n } else if (mhchemParser.actions[task.action_[iA].type_]) {\n o = mhchemParser.actions[task.action_[iA].type_](buffer, matches.match_, task.action_[iA].option);\n } else {\n throw [\"MhchemBugA\", \"mhchem bug A. Please report. (\" + task.action_[iA].type_ + \")\"]; // Trying to use non-existing action\n }\n //\n // Add output\n //\n mhchemParser.concatArray(output, o);\n }\n //\n // Set next state,\n // Shorten input,\n // Continue with next character\n // (= apply only one transition per position)\n //\n state = task.nextState || state;\n if (input.length > 0) {\n if (!task.revisit) {\n input = matches.remainder;\n }\n if (!task.toContinue) {\n break iterateTransitions;\n }\n } else {\n return output;\n }\n }\n }\n //\n // Prevent infinite loop\n //\n if (watchdog <= 0) {\n throw [\"MhchemBugU\", \"mhchem bug U. Please report.\"]; // Unexpected character\n }\n }\n },\n concatArray: function (a, b) {\n if (b) {\n if (Array.isArray(b)) {\n for (var iB=0; iB<b.length; iB++) {\n a.push(b[iB]);\n }\n } else {\n a.push(b);\n }\n }\n },\n\n patterns: {\n //\n // Matching patterns\n // either regexps or function that return null or {match_:\"a\", remainder:\"bc\"}\n //\n patterns: {\n // property names must not look like integers (\"2\") for correct property traversal order, later on\n 'empty': /^$/,\n 'else': /^./,\n 'else2': /^./,\n 'space': /^\\s/,\n 'space A': /^\\s(?=[A-Z\\\\$])/,\n 'space$': /^\\s$/,\n 'a-z': /^[a-z]/,\n 'x': /^x/,\n 'x$': /^x$/,\n 'i$': /^i$/,\n 'letters': /^(?:[a-zA-Z\\u03B1-\\u03C9\\u0391-\\u03A9?@]|(?:\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))))+/,\n '\\\\greek': /^\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega|Gamma|Delta|Theta|Lambda|Xi|Pi|Sigma|Upsilon|Phi|Psi|Omega)(?:\\s+|\\{\\}|(?![a-zA-Z]))/,\n 'one lowercase latin letter $': /^(?:([a-z])(?:$|[^a-zA-Z]))$/,\n '$one lowercase latin letter$ $': /^\\$(?:([a-z])(?:$|[^a-zA-Z]))\\$$/,\n 'one lowercase greek letter $': /^(?:\\$?[\\u03B1-\\u03C9]\\$?|\\$?\\\\(?:alpha|beta|gamma|delta|epsilon|zeta|eta|theta|iota|kappa|lambda|mu|nu|xi|omicron|pi|rho|sigma|tau|upsilon|phi|chi|psi|omega)\\s*\\$?)(?:\\s+|\\{\\}|(?![a-zA-Z]))$/,\n 'digits': /^[0-9]+/,\n '-9.,9': /^[+\\-]?(?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))/,\n '-9.,9 no missing 0': /^[+\\-]?[0-9]+(?:[.,][0-9]+)?/,\n '(-)(9.,9)(e)(99)': function (input) {\n var m = input.match(/^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))?(\\((?:[0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+))\\))?(?:([eE]|\\s*(\\*|x|\\\\times|\\u00D7)\\s*10\\^)([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\}))?/);\n if (m && m[0]) {\n return { match_: m.splice(1), remainder: input.substr(m[0].length) };\n }\n return null;\n },\n '(-)(9)^(-9)': function (input) {\n var m = input.match(/^(\\+\\-|\\+\\/\\-|\\+|\\-|\\\\pm\\s?)?([0-9]+(?:[,.][0-9]+)?|[0-9]*(?:\\.[0-9]+)?)\\^([+\\-]?[0-9]+|\\{[+\\-]?[0-9]+\\})/);\n if (m && m[0]) {\n return { match_: m.splice(1), remainder: input.substr(m[0].length) };\n }\n return null;\n },\n 'state of aggregation $': function (input) { // ... or crystal system\n var a = mhchemParser.patterns.findObserveGroups(input, \"\", /^\\([a-z]{1,3}(?=[\\),])/, \")\", \"\"); // (aq), (aq,$\\infty$), (aq, sat)\n if (a && a.remainder.match(/^($|[\\s,;\\)\\]\\}])/)) { return a; } // AND end of 'phrase'\n var m = input.match(/^(?:\\((?:\\\\ca\\s?)?\\$[amothc]\\$\\))/); // OR crystal system ($o$) (\\ca$c$)\n if (m) {\n return { match_: m[0], remainder: input.substr(m[0].length) };\n }\n return null;\n },\n '_{(state of aggregation)}$': /^_\\{(\\([a-z]{1,3}\\))\\}/,\n '{[(': /^(?:\\\\\\{|\\[|\\()/,\n ')]}': /^(?:\\)|\\]|\\\\\\})/,\n ', ': /^[,;]\\s*/,\n ',': /^[,;]/,\n '.': /^[.]/,\n '. ': /^([.\\u22C5\\u00B7\\u2022])\\s*/,\n '...': /^\\.\\.\\.(?=$|[^.])/,\n '* ': /^([*])\\s*/,\n '^{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"^{\", \"\", \"\", \"}\"); },\n '^($...$)': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"^\", \"$\", \"$\", \"\"); },\n '^a': /^\\^([0-9]+|[^\\\\_])/,\n '^\\\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '^\\\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"^\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '^\\\\x': /^\\^(\\\\[a-zA-Z]+)\\s*/,\n '^(-1)': /^\\^(-?\\d+)/,\n '\\'': /^'/,\n '_{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"_{\", \"\", \"\", \"}\"); },\n '_($...$)': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"_\", \"$\", \"$\", \"\"); },\n '_9': /^_([+\\-]?[0-9]+|[^\\\\])/,\n '_\\\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '_\\\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"_\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '_\\\\x': /^_(\\\\[a-zA-Z]+)\\s*/,\n '^_': /^(?:\\^(?=_)|\\_(?=\\^)|[\\^_]$)/,\n '{}': /^\\{\\}/,\n '{...}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\", \"{\", \"}\", \"\"); },\n '{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"{\", \"\", \"\", \"}\"); },\n '$...$': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\"); },\n '${(...)}$': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"${\", \"\", \"\", \"}$\"); },\n '$(...)$': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"$\", \"\", \"\", \"$\"); },\n '=<>': /^[=<>]/,\n '#': /^[#\\u2261]/,\n '+': /^\\+/,\n '-$': /^-(?=[\\s_},;\\]/]|$|\\([a-z]+\\))/, // -space -, -; -] -/ -$ -state-of-aggregation\n '-9': /^-(?=[0-9])/,\n '- orbital overlap': /^-(?=(?:[spd]|sp)(?:$|[\\s,;\\)\\]\\}]))/,\n '-': /^-/,\n 'pm-operator': /^(?:\\\\pm|\\$\\\\pm\\$|\\+-|\\+\\/-)/,\n 'operator': /^(?:\\+|(?:[\\-=<>]|<<|>>|\\\\approx|\\$\\\\approx\\$)(?=\\s|$|-?[0-9]))/,\n 'arrowUpDown': /^(?:v|\\(v\\)|\\^|\\(\\^\\))(?=$|[\\s,;\\)\\]\\}])/,\n '\\\\bond{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\bond{\", \"\", \"\", \"}\"); },\n '->': /^(?:<->|<-->|->|<-|<=>>|<<=>|<=>|[\\u2192\\u27F6\\u21CC])/,\n 'CMT': /^[CMT](?=\\[)/,\n '[(...)]': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"[\", \"\", \"\", \"]\"); },\n '1st-level escape': /^(&|\\\\\\\\|\\\\hline)\\s*/,\n '\\\\,': /^(?:\\\\[,\\ ;:])/, // \\\\x - but output no space before\n '\\\\x{}{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\", \"\", \"{\", \"}\", \"\", true); },\n '\\\\x{}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\", /^\\\\[a-zA-Z]+\\{/, \"}\", \"\"); },\n '\\\\ca': /^\\\\ca(?:\\s+|(?![a-zA-Z]))/,\n '\\\\x': /^(?:\\\\[a-zA-Z]+\\s*|\\\\[_&{}%])/,\n 'orbital': /^(?:[0-9]{1,2}[spdfgh]|[0-9]{0,2}sp)(?=$|[^a-zA-Z])/, // only those with numbers in front, because the others will be formatted correctly anyway\n 'others': /^[\\/~|]/,\n '\\\\frac{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\frac{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\overset{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\overset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\underset{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\underset{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\underbrace{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\underbrace{\", \"\", \"\", \"}_\", \"{\", \"\", \"\", \"}\"); },\n '\\\\color{(...)}0': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\"); },\n '\\\\color{(...)}{(...)}1': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\color{\", \"\", \"\", \"}\", \"{\", \"\", \"\", \"}\"); },\n '\\\\color(...){(...)}2': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\color\", \"\\\\\", \"\", /^(?=\\{)/, \"{\", \"\", \"\", \"}\"); },\n '\\\\ce{(...)}': function (input) { return mhchemParser.patterns.findObserveGroups(input, \"\\\\ce{\", \"\", \"\", \"}\"); },\n 'oxidation$': /^(?:[+-][IVX]+|\\\\pm\\s*0|\\$\\\\pm\\$\\s*0)$/,\n 'd-oxidation$': /^(?:[+-]?\\s?[IVX]+|\\\\pm\\s*0|\\$\\\\pm\\$\\s*0)$/, // 0 could be oxidation or charge\n 'roman numeral': /^[IVX]+/,\n '1/2$': /^[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+(?:\\$[a-z]\\$|[a-z])?$/,\n 'amount': function (input) {\n var match;\n // e.g. 2, 0.5, 1/2, -2, n/2, +; $a$ could be added later in parsing\n match = input.match(/^(?:(?:(?:\\([+\\-]?[0-9]+\\/[0-9]+\\)|[+\\-]?(?:[0-9]+|\\$[a-z]\\$|[a-z])\\/[0-9]+|[+\\-]?[0-9]+[.,][0-9]+|[+\\-]?\\.[0-9]+|[+\\-]?[0-9]+)(?:[a-z](?=\\s*[A-Z]))?)|[+\\-]?[a-z](?=\\s*[A-Z])|\\+(?!\\s))/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n var a = mhchemParser.patterns.findObserveGroups(input, \"\", \"$\", \"$\", \"\");\n if (a) { // e.g. $2n-1$, $-$\n match = a.match_.match(/^\\$(?:\\(?[+\\-]?(?:[0-9]*[a-z]?[+\\-])?[0-9]*[a-z](?:[+\\-][0-9]*[a-z]?)?\\)?|\\+|-)\\$$/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n }\n return null;\n },\n 'amount2': function (input) { return this['amount'](input); },\n '(KV letters),': /^(?:[A-Z][a-z]{0,2}|i)(?=,)/,\n 'formula$': function (input) {\n if (input.match(/^\\([a-z]+\\)$/)) { return null; } // state of aggregation = no formula\n var match = input.match(/^(?:[a-z]|(?:[0-9\\ \\+\\-\\,\\.\\(\\)]+[a-z])+[0-9\\ \\+\\-\\,\\.\\(\\)]*|(?:[a-z][0-9\\ \\+\\-\\,\\.\\(\\)]+)+[a-z]?)$/);\n if (match) {\n return { match_: match[0], remainder: input.substr(match[0].length) };\n }\n return null;\n },\n 'uprightEntities': /^(?:pH|pOH|pC|pK|iPr|iBu)(?=$|[^a-zA-Z])/,\n '/': /^\\s*(\\/)\\s*/,\n '//': /^\\s*(\\/\\/)\\s*/,\n '*': /^\\s*[*.]\\s*/\n },\n findObserveGroups: function (input, begExcl, begIncl, endIncl, endExcl, beg2Excl, beg2Incl, end2Incl, end2Excl, combine) {\n /** @type {{(input: string, pattern: string | RegExp): string | string[] | null;}} */\n var _match = function (input, pattern) {\n if (typeof pattern === \"string\") {\n if (input.indexOf(pattern) !== 0) { return null; }\n return pattern;\n } else {\n var match = input.match(pattern);\n if (!match) { return null; }\n return match[0];\n }\n };\n /** @type {{(input: string, i: number, endChars: string | RegExp): {endMatchBegin: number, endMatchEnd: number} | null;}} */\n var _findObserveGroups = function (input, i, endChars) {\n var braces = 0;\n while (i < input.length) {\n var a = input.charAt(i);\n var match = _match(input.substr(i), endChars);\n if (match !== null && braces === 0) {\n return { endMatchBegin: i, endMatchEnd: i + match.length };\n } else if (a === \"{\") {\n braces++;\n } else if (a === \"}\") {\n if (braces === 0) {\n throw [\"ExtraCloseMissingOpen\", \"Extra close brace or missing open brace\"];\n } else {\n braces--;\n }\n }\n i++;\n }\n if (braces > 0) {\n return null;\n }\n return null;\n };\n var match = _match(input, begExcl);\n if (match === null) { return null; }\n input = input.substr(match.length);\n match = _match(input, begIncl);\n if (match === null) { return null; }\n var e = _findObserveGroups(input, match.length, endIncl || endExcl);\n if (e === null) { return null; }\n var match1 = input.substring(0, (endIncl ? e.endMatchEnd : e.endMatchBegin));\n if (!(beg2Excl || beg2Incl)) {\n return {\n match_: match1,\n remainder: input.substr(e.endMatchEnd)\n };\n } else {\n var group2 = this.findObserveGroups(input.substr(e.endMatchEnd), beg2Excl, beg2Incl, end2Incl, end2Excl);\n if (group2 === null) { return null; }\n /** @type {string[]} */\n var matchRet = [match1, group2.match_];\n return {\n match_: (combine ? matchRet.join(\"\") : matchRet),\n remainder: group2.remainder\n };\n }\n },\n\n //\n // Matching function\n // e.g. match(\"a\", input) will look for the regexp called \"a\" and see if it matches\n // returns null or {match_:\"a\", remainder:\"bc\"}\n //\n match_: function (m, input) {\n var pattern = mhchemParser.patterns.patterns[m];\n if (pattern === undefined) {\n throw [\"MhchemBugP\", \"mhchem bug P. Please report. (\" + m + \")\"]; // Trying to use non-existing pattern\n } else if (typeof pattern === \"function\") {\n return mhchemParser.patterns.patterns[m](input); // cannot use cached var pattern here, because some pattern functions need this===mhchemParser\n } else { // RegExp\n var match = input.match(pattern);\n if (match) {\n var mm;\n if (match[2]) {\n mm = [ match[1], match[2] ];\n } else if (match[1]) {\n mm = match[1];\n } else {\n mm = match[0];\n }\n return { match_: mm, remainder: input.substr(match[0].length) };\n }\n return null;\n }\n }\n },\n\n //\n // Generic state machine actions\n //\n actions: {\n 'a=': function (buffer, m) { buffer.a = (buffer.a || \"\") + m; },\n 'b=': function (buffer, m) { buffer.b = (buffer.b || \"\") + m; },\n 'p=': function (buffer, m) { buffer.p = (buffer.p || \"\") + m; },\n 'o=': function (buffer, m) { buffer.o = (buffer.o || \"\") + m; },\n 'q=': function (buffer, m) { buffer.q = (buffer.q || \"\") + m; },\n 'd=': function (buffer, m) { buffer.d = (buffer.d || \"\") + m; },\n 'rm=': function (buffer, m) { buffer.rm = (buffer.rm || \"\") + m; },\n 'text=': function (buffer, m) { buffer.text_ = (buffer.text_ || \"\") + m; },\n 'insert': function (buffer, m, a) { return { type_: a }; },\n 'insert+p1': function (buffer, m, a) { return { type_: a, p1: m }; },\n 'insert+p1+p2': function (buffer, m, a) { return { type_: a, p1: m[0], p2: m[1] }; },\n 'copy': function (buffer, m) { return m; },\n 'rm': function (buffer, m) { return { type_: 'rm', p1: m || \"\"}; },\n 'text': function (buffer, m) { return mhchemParser.go(m, 'text'); },\n '{text}': function (buffer, m) {\n var ret = [ \"{\" ];\n mhchemParser.concatArray(ret, mhchemParser.go(m, 'text'));\n ret.push(\"}\");\n return ret;\n },\n 'tex-math': function (buffer, m) { return mhchemParser.go(m, 'tex-math'); },\n 'tex-math tight': function (buffer, m) { return mhchemParser.go(m, 'tex-math tight'); },\n 'bond': function (buffer, m, k) { return { type_: 'bond', kind_: k || m }; },\n 'color0-output': function (buffer, m) { return { type_: 'color0', color: m[0] }; },\n 'ce': function (buffer, m) { return mhchemParser.go(m); },\n '1/2': function (buffer, m) {\n /** @type {ParserOutput[]} */\n var ret = [];\n if (m.match(/^[+\\-]/)) {\n ret.push(m.substr(0, 1));\n m = m.substr(1);\n }\n var n = m.match(/^([0-9]+|\\$[a-z]\\$|[a-z])\\/([0-9]+)(\\$[a-z]\\$|[a-z])?$/);\n n[1] = n[1].replace(/\\$/g, \"\");\n ret.push({ type_: 'frac', p1: n[1], p2: n[2] });\n if (n[3]) {\n n[3] = n[3].replace(/\\$/g, \"\");\n ret.push({ type_: 'tex-math', p1: n[3] });\n }\n return ret;\n },\n '9,9': function (buffer, m) { return mhchemParser.go(m, '9,9'); }\n },\n //\n // createTransitions\n // convert { 'letter': { 'state': { action_: 'output' } } } to { 'state' => [ { pattern: 'letter', task: { action_: [{type_: 'output'}] } } ] }\n // with expansion of 'a|b' to 'a' and 'b' (at 2 places)\n //\n createTransitions: function (o) {\n var pattern, state;\n /** @type {string[]} */\n var stateArray;\n var i;\n //\n // 1. Collect all states\n //\n /** @type {Transitions} */\n var transitions = {};\n for (pattern in o) {\n for (state in o[pattern]) {\n stateArray = state.split(\"|\");\n o[pattern][state].stateArray = stateArray;\n for (i=0; i<stateArray.length; i++) {\n transitions[stateArray[i]] = [];\n }\n }\n }\n //\n // 2. Fill states\n //\n for (pattern in o) {\n for (state in o[pattern]) {\n stateArray = o[pattern][state].stateArray || [];\n for (i=0; i<stateArray.length; i++) {\n //\n // 2a. Normalize actions into array: 'text=' ==> [{type_:'text='}]\n // (Note to myself: Resolving the function here would be problematic. It would need .bind (for *this*) and currying (for *option*).)\n //\n /** @type {any} */\n var p = o[pattern][state];\n if (p.action_) {\n p.action_ = [].concat(p.action_);\n for (var k=0; k<p.action_.length; k++) {\n if (typeof p.action_[k] === \"string\") {\n p.action_[k] = { type_: p.action_[k] };\n }\n }\n } else {\n p.action_ = [];\n }\n //\n // 2.b Multi-insert\n //\n var patternArray = pattern.split(\"|\");\n for (var j=0; j<patternArray.length; j++) {\n if (stateArray[i] === '*') { // insert into all\n for (var t in transitions) {\n transitions[t].push({ pattern: patternArray[j], task: p });\n }\n } else {\n transitions[stateArray[i]].push({ pattern: patternArray[j], task: p });\n }\n }\n }\n }\n }\n return transitions;\n },\n stateMachines: {}\n };\n\n //\n // Definition of state machines\n //\n mhchemParser.stateMachines = {\n //\n // \\ce state machines\n //\n //#region ce\n 'ce': { // main parser\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n 'else': {\n '0|1|2': { action_: 'beginsWithBond=false', revisit: true, toContinue: true } },\n 'oxidation$': {\n '0': { action_: 'oxidation-output' } },\n 'CMT': {\n 'r': { action_: 'rdt=', nextState: 'rt' },\n 'rd': { action_: 'rqt=', nextState: 'rdt' } },\n 'arrowUpDown': {\n '0|1|2|as': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '1' } },\n 'uprightEntities': {\n '0|1|2': { action_: [ 'o=', 'output' ], nextState: '1' } },\n 'orbital': {\n '0|1|2|3': { action_: 'o=', nextState: 'o' } },\n '->': {\n '0|1|2|3': { action_: 'r=', nextState: 'r' },\n 'a|as': { action_: [ 'output', 'r=' ], nextState: 'r' },\n '*': { action_: [ 'output', 'r=' ], nextState: 'r' } },\n '+': {\n 'o': { action_: 'd= kv', nextState: 'd' },\n 'd|D': { action_: 'd=', nextState: 'd' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'qd|qD': { action_: 'd=', nextState: 'qd' },\n 'dq': { action_: [ 'output', 'd=' ], nextState: 'd' },\n '3': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '0' } },\n 'amount': {\n '0|2': { action_: 'a=', nextState: 'a' } },\n 'pm-operator': {\n '0|1|2|a|as': { action_: [ 'sb=false', 'output', { type_: 'operator', option: '\\\\pm' } ], nextState: '0' } },\n 'operator': {\n '0|1|2|a|as': { action_: [ 'sb=false', 'output', 'operator' ], nextState: '0' } },\n '-$': {\n 'o|q': { action_: [ 'charge or bond', 'output' ], nextState: 'qd' },\n 'd': { action_: 'd=', nextState: 'd' },\n 'D': { action_: [ 'output', { type_: 'bond', option: \"-\" } ], nextState: '3' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'qd': { action_: 'd=', nextState: 'qd' },\n 'qD|dq': { action_: [ 'output', { type_: 'bond', option: \"-\" } ], nextState: '3' } },\n '-9': {\n '3|o': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '3' } },\n '- orbital overlap': {\n 'o': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' },\n 'd': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' } },\n '-': {\n '0|1|2': { action_: [ { type_: 'output', option: 1 }, 'beginsWithBond=true', { type_: 'bond', option: \"-\" } ], nextState: '3' },\n '3': { action_: { type_: 'bond', option: \"-\" } },\n 'a': { action_: [ 'output', { type_: 'insert', option: 'hyphen' } ], nextState: '2' },\n 'as': { action_: [ { type_: 'output', option: 2 }, { type_: 'bond', option: \"-\" } ], nextState: '3' },\n 'b': { action_: 'b=' },\n 'o': { action_: { type_: '- after o/d', option: false }, nextState: '2' },\n 'q': { action_: { type_: '- after o/d', option: false }, nextState: '2' },\n 'd|qd|dq': { action_: { type_: '- after o/d', option: true }, nextState: '2' },\n 'D|qD|p': { action_: [ 'output', { type_: 'bond', option: \"-\" } ], nextState: '3' } },\n 'amount2': {\n '1|3': { action_: 'a=', nextState: 'a' } },\n 'letters': {\n '0|1|2|3|a|as|b|p|bp|o': { action_: 'o=', nextState: 'o' },\n 'q|dq': { action_: ['output', 'o='], nextState: 'o' },\n 'd|D|qd|qD': { action_: 'o after d', nextState: 'o' } },\n 'digits': {\n 'o': { action_: 'q=', nextState: 'q' },\n 'd|D': { action_: 'q=', nextState: 'dq' },\n 'q': { action_: [ 'output', 'o=' ], nextState: 'o' },\n 'a': { action_: 'o=', nextState: 'o' } },\n 'space A': {\n 'b|p|bp': {} },\n 'space': {\n 'a': { nextState: 'as' },\n '0': { action_: 'sb=false' },\n '1|2': { action_: 'sb=true' },\n 'r|rt|rd|rdt|rdq': { action_: 'output', nextState: '0' },\n '*': { action_: [ 'output', 'sb=true' ], nextState: '1'} },\n '1st-level escape': {\n '1|2': { action_: [ 'output', { type_: 'insert+p1', option: '1st-level escape' } ] },\n '*': { action_: [ 'output', { type_: 'insert+p1', option: '1st-level escape' } ], nextState: '0' } },\n '[(...)]': {\n 'r|rt': { action_: 'rd=', nextState: 'rd' },\n 'rd|rdt': { action_: 'rq=', nextState: 'rdq' } },\n '...': {\n 'o|d|D|dq|qd|qD': { action_: [ 'output', { type_: 'bond', option: \"...\" } ], nextState: '3' },\n '*': { action_: [ { type_: 'output', option: 1 }, { type_: 'insert', option: 'ellipsis' } ], nextState: '1' } },\n '. |* ': {\n '*': { action_: [ 'output', { type_: 'insert', option: 'addition compound' } ], nextState: '1' } },\n 'state of aggregation $': {\n '*': { action_: [ 'output', 'state of aggregation' ], nextState: '1' } },\n '{[(': {\n 'a|as|o': { action_: [ 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' },\n '0|1|2|3': { action_: [ 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' },\n '*': { action_: [ 'output', 'o=', 'output', 'parenthesisLevel++' ], nextState: '2' } },\n ')]}': {\n '0|1|2|3|b|p|bp|o': { action_: [ 'o=', 'parenthesisLevel--' ], nextState: 'o' },\n 'a|as|d|D|q|qd|qD|dq': { action_: [ 'output', 'o=', 'parenthesisLevel--' ], nextState: 'o' } },\n ', ': {\n '*': { action_: [ 'output', 'comma' ], nextState: '0' } },\n '^_': { // ^ and _ without a sensible argument\n '*': { } },\n '^{(...)}|^($...$)': {\n '0|1|2|as': { action_: 'b=', nextState: 'b' },\n 'p': { action_: 'b=', nextState: 'bp' },\n '3|o': { action_: 'd= kv', nextState: 'D' },\n 'q': { action_: 'd=', nextState: 'qD' },\n 'd|D|qd|qD|dq': { action_: [ 'output', 'd=' ], nextState: 'D' } },\n '^a|^\\\\x{}{}|^\\\\x{}|^\\\\x|\\'': {\n '0|1|2|as': { action_: 'b=', nextState: 'b' },\n 'p': { action_: 'b=', nextState: 'bp' },\n '3|o': { action_: 'd= kv', nextState: 'd' },\n 'q': { action_: 'd=', nextState: 'qd' },\n 'd|qd|D|qD': { action_: 'd=' },\n 'dq': { action_: [ 'output', 'd=' ], nextState: 'd' } },\n '_{(state of aggregation)}$': {\n 'd|D|q|qd|qD|dq': { action_: [ 'output', 'q=' ], nextState: 'q' } },\n '_{(...)}|_($...$)|_9|_\\\\x{}{}|_\\\\x{}|_\\\\x': {\n '0|1|2|as': { action_: 'p=', nextState: 'p' },\n 'b': { action_: 'p=', nextState: 'bp' },\n '3|o': { action_: 'q=', nextState: 'q' },\n 'd|D': { action_: 'q=', nextState: 'dq' },\n 'q|qd|qD|dq': { action_: [ 'output', 'q=' ], nextState: 'q' } },\n '=<>': {\n '0|1|2|3|a|as|o|q|d|D|qd|qD|dq': { action_: [ { type_: 'output', option: 2 }, 'bond' ], nextState: '3' } },\n '#': {\n '0|1|2|3|a|as|o': { action_: [ { type_: 'output', option: 2 }, { type_: 'bond', option: \"#\" } ], nextState: '3' } },\n '{}': {\n '*': { action_: { type_: 'output', option: 1 }, nextState: '1' } },\n '{...}': {\n '0|1|2|3|a|as|b|p|bp': { action_: 'o=', nextState: 'o' },\n 'o|d|D|q|qd|qD|dq': { action_: [ 'output', 'o=' ], nextState: 'o' } },\n '$...$': {\n 'a': { action_: 'a=' }, // 2$n$\n '0|1|2|3|as|b|p|bp|o': { action_: 'o=', nextState: 'o' }, // not 'amount'\n 'as|o': { action_: 'o=' },\n 'q|d|D|qd|qD|dq': { action_: [ 'output', 'o=' ], nextState: 'o' } },\n '\\\\bond{(...)}': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'bond' ], nextState: \"3\" } },\n '\\\\frac{(...)}': {\n '*': { action_: [ { type_: 'output', option: 1 }, 'frac-output' ], nextState: '3' } },\n '\\\\overset{(...)}': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'overset-output' ], nextState: '3' } },\n '\\\\underset{(...)}': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'underset-output' ], nextState: '3' } },\n '\\\\underbrace{(...)}': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'underbrace-output' ], nextState: '3' } },\n '\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'color-output' ], nextState: '3' } },\n '\\\\color{(...)}0': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'color0-output' ] } },\n '\\\\ce{(...)}': {\n '*': { action_: [ { type_: 'output', option: 2 }, 'ce' ], nextState: '3' } },\n '\\\\,': {\n '*': { action_: [ { type_: 'output', option: 1 }, 'copy' ], nextState: '1' } },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '0|1|2|3|a|as|b|p|bp|o|c0': { action_: [ 'o=', 'output' ], nextState: '3' },\n '*': { action_: ['output', 'o=', 'output' ], nextState: '3' } },\n 'others': {\n '*': { action_: [ { type_: 'output', option: 1 }, 'copy' ], nextState: '3' } },\n 'else2': {\n 'a': { action_: 'a to o', nextState: 'o', revisit: true },\n 'as': { action_: [ 'output', 'sb=true' ], nextState: '1', revisit: true },\n 'r|rt|rd|rdt|rdq': { action_: [ 'output' ], nextState: '0', revisit: true },\n '*': { action_: [ 'output', 'copy' ], nextState: '3' } }\n }),\n actions: {\n 'o after d': function (buffer, m) {\n var ret;\n if ((buffer.d || \"\").match(/^[0-9]+$/)) {\n var tmp = buffer.d;\n buffer.d = undefined;\n ret = this['output'](buffer);\n buffer.b = tmp;\n } else {\n ret = this['output'](buffer);\n }\n mhchemParser.actions['o='](buffer, m);\n return ret;\n },\n 'd= kv': function (buffer, m) {\n buffer.d = m;\n buffer.dType = 'kv';\n },\n 'charge or bond': function (buffer, m) {\n if (buffer['beginsWithBond']) {\n /** @type {ParserOutput[]} */\n var ret = [];\n mhchemParser.concatArray(ret, this['output'](buffer));\n mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, \"-\"));\n return ret;\n } else {\n buffer.d = m;\n }\n },\n '- after o/d': function (buffer, m, isAfterD) {\n var c1 = mhchemParser.patterns.match_('orbital', buffer.o || \"\");\n var c2 = mhchemParser.patterns.match_('one lowercase greek letter $', buffer.o || \"\");\n var c3 = mhchemParser.patterns.match_('one lowercase latin letter $', buffer.o || \"\");\n var c4 = mhchemParser.patterns.match_('$one lowercase latin letter$ $', buffer.o || \"\");\n var hyphenFollows = m===\"-\" && ( c1 && c1.remainder===\"\" || c2 || c3 || c4 );\n if (hyphenFollows && !buffer.a && !buffer.b && !buffer.p && !buffer.d && !buffer.q && !c1 && c3) {\n buffer.o = '$' + buffer.o + '$';\n }\n /** @type {ParserOutput[]} */\n var ret = [];\n if (hyphenFollows) {\n mhchemParser.concatArray(ret, this['output'](buffer));\n ret.push({ type_: 'hyphen' });\n } else {\n c1 = mhchemParser.patterns.match_('digits', buffer.d || \"\");\n if (isAfterD && c1 && c1.remainder==='') {\n mhchemParser.concatArray(ret, mhchemParser.actions['d='](buffer, m));\n mhchemParser.concatArray(ret, this['output'](buffer));\n } else {\n mhchemParser.concatArray(ret, this['output'](buffer));\n mhchemParser.concatArray(ret, mhchemParser.actions['bond'](buffer, m, \"-\"));\n }\n }\n return ret;\n },\n 'a to o': function (buffer) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n },\n 'sb=true': function (buffer) { buffer.sb = true; },\n 'sb=false': function (buffer) { buffer.sb = false; },\n 'beginsWithBond=true': function (buffer) { buffer['beginsWithBond'] = true; },\n 'beginsWithBond=false': function (buffer) { buffer['beginsWithBond'] = false; },\n 'parenthesisLevel++': function (buffer) { buffer['parenthesisLevel']++; },\n 'parenthesisLevel--': function (buffer) { buffer['parenthesisLevel']--; },\n 'state of aggregation': function (buffer, m) {\n return { type_: 'state of aggregation', p1: mhchemParser.go(m, 'o') };\n },\n 'comma': function (buffer, m) {\n var a = m.replace(/\\s*$/, '');\n var withSpace = (a !== m);\n if (withSpace && buffer['parenthesisLevel'] === 0) {\n return { type_: 'comma enumeration L', p1: a };\n } else {\n return { type_: 'comma enumeration M', p1: a };\n }\n },\n 'output': function (buffer, m, entityFollows) {\n // entityFollows:\n // undefined = if we have nothing else to output, also ignore the just read space (buffer.sb)\n // 1 = an entity follows, never omit the space if there was one just read before (can only apply to state 1)\n // 2 = 1 + the entity can have an amount, so output a\\, instead of converting it to o (can only apply to states a|as)\n /** @type {ParserOutput | ParserOutput[]} */\n var ret;\n if (!buffer.r) {\n ret = [];\n if (!buffer.a && !buffer.b && !buffer.p && !buffer.o && !buffer.q && !buffer.d && !entityFollows) {\n //ret = [];\n } else {\n if (buffer.sb) {\n ret.push({ type_: 'entitySkip' });\n }\n if (!buffer.o && !buffer.q && !buffer.d && !buffer.b && !buffer.p && entityFollows!==2) {\n buffer.o = buffer.a;\n buffer.a = undefined;\n } else if (!buffer.o && !buffer.q && !buffer.d && (buffer.b || buffer.p)) {\n buffer.o = buffer.a;\n buffer.d = buffer.b;\n buffer.q = buffer.p;\n buffer.a = buffer.b = buffer.p = undefined;\n } else {\n if (buffer.o && buffer.dType==='kv' && mhchemParser.patterns.match_('d-oxidation$', buffer.d || \"\")) {\n buffer.dType = 'oxidation';\n } else if (buffer.o && buffer.dType==='kv' && !buffer.q) {\n buffer.dType = undefined;\n }\n }\n ret.push({\n type_: 'chemfive',\n a: mhchemParser.go(buffer.a, 'a'),\n b: mhchemParser.go(buffer.b, 'bd'),\n p: mhchemParser.go(buffer.p, 'pq'),\n o: mhchemParser.go(buffer.o, 'o'),\n q: mhchemParser.go(buffer.q, 'pq'),\n d: mhchemParser.go(buffer.d, (buffer.dType === 'oxidation' ? 'oxidation' : 'bd')),\n dType: buffer.dType\n });\n }\n } else { // r\n /** @type {ParserOutput[]} */\n var rd;\n if (buffer.rdt === 'M') {\n rd = mhchemParser.go(buffer.rd, 'tex-math');\n } else if (buffer.rdt === 'T') {\n rd = [ { type_: 'text', p1: buffer.rd || \"\" } ];\n } else {\n rd = mhchemParser.go(buffer.rd);\n }\n /** @type {ParserOutput[]} */\n var rq;\n if (buffer.rqt === 'M') {\n rq = mhchemParser.go(buffer.rq, 'tex-math');\n } else if (buffer.rqt === 'T') {\n rq = [ { type_: 'text', p1: buffer.rq || \"\"} ];\n } else {\n rq = mhchemParser.go(buffer.rq);\n }\n ret = {\n type_: 'arrow',\n r: buffer.r,\n rd: rd,\n rq: rq\n };\n }\n for (var p in buffer) {\n if (p !== 'parenthesisLevel' && p !== 'beginsWithBond') {\n delete buffer[p];\n }\n }\n return ret;\n },\n 'oxidation-output': function (buffer, m) {\n var ret = [ \"{\" ];\n mhchemParser.concatArray(ret, mhchemParser.go(m, 'oxidation'));\n ret.push(\"}\");\n return ret;\n },\n 'frac-output': function (buffer, m) {\n return { type_: 'frac-ce', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };\n },\n 'overset-output': function (buffer, m) {\n return { type_: 'overset', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };\n },\n 'underset-output': function (buffer, m) {\n return { type_: 'underset', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };\n },\n 'underbrace-output': function (buffer, m) {\n return { type_: 'underbrace', p1: mhchemParser.go(m[0]), p2: mhchemParser.go(m[1]) };\n },\n 'color-output': function (buffer, m) {\n return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1]) };\n },\n 'r=': function (buffer, m) { buffer.r = m; },\n 'rdt=': function (buffer, m) { buffer.rdt = m; },\n 'rd=': function (buffer, m) { buffer.rd = m; },\n 'rqt=': function (buffer, m) { buffer.rqt = m; },\n 'rq=': function (buffer, m) { buffer.rq = m; },\n 'operator': function (buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; }\n }\n },\n 'a': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n '1/2$': {\n '0': { action_: '1/2' } },\n 'else': {\n '0': { nextState: '1', revisit: true } },\n '$(...)$': {\n '*': { action_: 'tex-math tight', nextState: '1' } },\n ',': {\n '*': { action_: { type_: 'insert', option: 'commaDecimal' } } },\n 'else2': {\n '*': { action_: 'copy' } }\n }),\n actions: {}\n },\n 'o': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n '1/2$': {\n '0': { action_: '1/2' } },\n 'else': {\n '0': { nextState: '1', revisit: true } },\n 'letters': {\n '*': { action_: 'rm' } },\n '\\\\ca': {\n '*': { action_: { type_: 'insert', option: 'circa' } } },\n '\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' } },\n '${(...)}$|$(...)$': {\n '*': { action_: 'tex-math' } },\n '{(...)}': {\n '*': { action_: '{text}' } },\n 'else2': {\n '*': { action_: 'copy' } }\n }),\n actions: {}\n },\n 'text': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n '{...}': {\n '*': { action_: 'text=' } },\n '${(...)}$|$(...)$': {\n '*': { action_: 'tex-math' } },\n '\\\\greek': {\n '*': { action_: [ 'output', 'rm' ] } },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: [ 'output', 'copy' ] } },\n 'else': {\n '*': { action_: 'text=' } }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.text_) {\n /** @type {ParserOutput} */\n var ret = { type_: 'text', p1: buffer.text_ };\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n }\n },\n 'pq': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n 'state of aggregation $': {\n '*': { action_: 'state of aggregation' } },\n 'i$': {\n '0': { nextState: '!f', revisit: true } },\n '(KV letters),': {\n '0': { action_: 'rm', nextState: '0' } },\n 'formula$': {\n '0': { nextState: 'f', revisit: true } },\n '1/2$': {\n '0': { action_: '1/2' } },\n 'else': {\n '0': { nextState: '!f', revisit: true } },\n '${(...)}$|$(...)$': {\n '*': { action_: 'tex-math' } },\n '{(...)}': {\n '*': { action_: 'text' } },\n 'a-z': {\n 'f': { action_: 'tex-math' } },\n 'letters': {\n '*': { action_: 'rm' } },\n '-9.,9': {\n '*': { action_: '9,9' } },\n ',': {\n '*': { action_: { type_: 'insert+p1', option: 'comma enumeration S' } } },\n '\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2': {\n '*': { action_: 'color-output' } },\n '\\\\color{(...)}0': {\n '*': { action_: 'color0-output' } },\n '\\\\ce{(...)}': {\n '*': { action_: 'ce' } },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' } },\n 'else2': {\n '*': { action_: 'copy' } }\n }),\n actions: {\n 'state of aggregation': function (buffer, m) {\n return { type_: 'state of aggregation subscript', p1: mhchemParser.go(m, 'o') };\n },\n 'color-output': function (buffer, m) {\n return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1], 'pq') };\n }\n }\n },\n 'bd': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n 'x$': {\n '0': { nextState: '!f', revisit: true } },\n 'formula$': {\n '0': { nextState: 'f', revisit: true } },\n 'else': {\n '0': { nextState: '!f', revisit: true } },\n '-9.,9 no missing 0': {\n '*': { action_: '9,9' } },\n '.': {\n '*': { action_: { type_: 'insert', option: 'electron dot' } } },\n 'a-z': {\n 'f': { action_: 'tex-math' } },\n 'x': {\n '*': { action_: { type_: 'insert', option: 'KV x' } } },\n 'letters': {\n '*': { action_: 'rm' } },\n '\\'': {\n '*': { action_: { type_: 'insert', option: 'prime' } } },\n '${(...)}$|$(...)$': {\n '*': { action_: 'tex-math' } },\n '{(...)}': {\n '*': { action_: 'text' } },\n '\\\\color{(...)}{(...)}1|\\\\color(...){(...)}2': {\n '*': { action_: 'color-output' } },\n '\\\\color{(...)}0': {\n '*': { action_: 'color0-output' } },\n '\\\\ce{(...)}': {\n '*': { action_: 'ce' } },\n '\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'copy' } },\n 'else2': {\n '*': { action_: 'copy' } }\n }),\n actions: {\n 'color-output': function (buffer, m) {\n return { type_: 'color', color1: m[0], color2: mhchemParser.go(m[1], 'bd') };\n }\n }\n },\n 'oxidation': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n 'roman numeral': {\n '*': { action_: 'roman-numeral' } },\n '${(...)}$|$(...)$': {\n '*': { action_: 'tex-math' } },\n 'else': {\n '*': { action_: 'copy' } }\n }),\n actions: {\n 'roman-numeral': function (buffer, m) { return { type_: 'roman numeral', p1: m || \"\" }; }\n }\n },\n 'tex-math': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n '\\\\ce{(...)}': {\n '*': { action_: [ 'output', 'ce' ] } },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'o=' } },\n 'else': {\n '*': { action_: 'o=' } }\n }),\n actions: {\n 'output': function (buffer) {\n if (buffer.o) {\n /** @type {ParserOutput} */\n var ret = { type_: 'tex-math', p1: buffer.o };\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n }\n },\n 'tex-math tight': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n '\\\\ce{(...)}': {\n '*': { action_: [ 'output', 'ce' ] } },\n '{...}|\\\\,|\\\\x{}{}|\\\\x{}|\\\\x': {\n '*': { action_: 'o=' } },\n '-|+': {\n '*': { action_: 'tight operator' } },\n 'else': {\n '*': { action_: 'o=' } }\n }),\n actions: {\n 'tight operator': function (buffer, m) { buffer.o = (buffer.o || \"\") + \"{\"+m+\"}\"; },\n 'output': function (buffer) {\n if (buffer.o) {\n /** @type {ParserOutput} */\n var ret = { type_: 'tex-math', p1: buffer.o };\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n }\n },\n '9,9': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': {} },\n ',': {\n '*': { action_: 'comma' } },\n 'else': {\n '*': { action_: 'copy' } }\n }),\n actions: {\n 'comma': function () { return { type_: 'commaDecimal' }; }\n }\n },\n //#endregion\n //\n // \\pu state machines\n //\n //#region pu\n 'pu': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n 'space$': {\n '*': { action_: [ 'output', 'space' ] } },\n '{[(|)]}': {\n '0|a': { action_: 'copy' } },\n '(-)(9)^(-9)': {\n '0': { action_: 'number^', nextState: 'a' } },\n '(-)(9.,9)(e)(99)': {\n '0': { action_: 'enumber', nextState: 'a' } },\n 'space': {\n '0|a': {} },\n 'pm-operator': {\n '0|a': { action_: { type_: 'operator', option: '\\\\pm' }, nextState: '0' } },\n 'operator': {\n '0|a': { action_: 'copy', nextState: '0' } },\n '//': {\n 'd': { action_: 'o=', nextState: '/' } },\n '/': {\n 'd': { action_: 'o=', nextState: '/' } },\n '{...}|else': {\n '0|d': { action_: 'd=', nextState: 'd' },\n 'a': { action_: [ 'space', 'd=' ], nextState: 'd' },\n '/|q': { action_: 'q=', nextState: 'q' } }\n }),\n actions: {\n 'enumber': function (buffer, m) {\n /** @type {ParserOutput[]} */\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n if (m[1]) {\n mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9'));\n if (m[2]) {\n if (m[2].match(/[,.]/)) {\n mhchemParser.concatArray(ret, mhchemParser.go(m[2], 'pu-9,9'));\n } else {\n ret.push(m[2]);\n }\n }\n m[3] = m[4] || m[3];\n if (m[3]) {\n m[3] = m[3].trim();\n if (m[3] === \"e\" || m[3].substr(0, 1) === \"*\") {\n ret.push({ type_: 'cdot' });\n } else {\n ret.push({ type_: 'times' });\n }\n }\n }\n if (m[3]) {\n ret.push(\"10^{\"+m[5]+\"}\");\n }\n return ret;\n },\n 'number^': function (buffer, m) {\n /** @type {ParserOutput[]} */\n var ret = [];\n if (m[0] === \"+-\" || m[0] === \"+/-\") {\n ret.push(\"\\\\pm \");\n } else if (m[0]) {\n ret.push(m[0]);\n }\n mhchemParser.concatArray(ret, mhchemParser.go(m[1], 'pu-9,9'));\n ret.push(\"^{\"+m[2]+\"}\");\n return ret;\n },\n 'operator': function (buffer, m, p1) { return { type_: 'operator', kind_: (p1 || m) }; },\n 'space': function () { return { type_: 'pu-space-1' }; },\n 'output': function (buffer) {\n /** @type {ParserOutput | ParserOutput[]} */\n var ret;\n var md = mhchemParser.patterns.match_('{(...)}', buffer.d || \"\");\n if (md && md.remainder === '') { buffer.d = md.match_; }\n var mq = mhchemParser.patterns.match_('{(...)}', buffer.q || \"\");\n if (mq && mq.remainder === '') { buffer.q = mq.match_; }\n if (buffer.d) {\n buffer.d = buffer.d.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.d = buffer.d.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n }\n if (buffer.q) { // fraction\n buffer.q = buffer.q.replace(/\\u00B0C|\\^oC|\\^{o}C/g, \"{}^{\\\\circ}C\");\n buffer.q = buffer.q.replace(/\\u00B0F|\\^oF|\\^{o}F/g, \"{}^{\\\\circ}F\");\n var b5 = {\n d: mhchemParser.go(buffer.d, 'pu'),\n q: mhchemParser.go(buffer.q, 'pu')\n };\n if (buffer.o === '//') {\n ret = { type_: 'pu-frac', p1: b5.d, p2: b5.q };\n } else {\n ret = b5.d;\n if (b5.d.length > 1 || b5.q.length > 1) {\n ret.push({ type_: ' / ' });\n } else {\n ret.push({ type_: '/' });\n }\n mhchemParser.concatArray(ret, b5.q);\n }\n } else { // no fraction\n ret = mhchemParser.go(buffer.d, 'pu-2');\n }\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n },\n 'pu-2': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '*': { action_: 'output' } },\n '*': {\n '*': { action_: [ 'output', 'cdot' ], nextState: '0' } },\n '\\\\x': {\n '*': { action_: 'rm=' } },\n 'space': {\n '*': { action_: [ 'output', 'space' ], nextState: '0' } },\n '^{(...)}|^(-1)': {\n '1': { action_: '^(-1)' } },\n '-9.,9': {\n '0': { action_: 'rm=', nextState: '0' },\n '1': { action_: '^(-1)', nextState: '0' } },\n '{...}|else': {\n '*': { action_: 'rm=', nextState: '1' } }\n }),\n actions: {\n 'cdot': function () { return { type_: 'tight cdot' }; },\n '^(-1)': function (buffer, m) { buffer.rm += \"^{\"+m+\"}\"; },\n 'space': function () { return { type_: 'pu-space-2' }; },\n 'output': function (buffer) {\n /** @type {ParserOutput | ParserOutput[]} */\n var ret = [];\n if (buffer.rm) {\n var mrm = mhchemParser.patterns.match_('{(...)}', buffer.rm || \"\");\n if (mrm && mrm.remainder === '') {\n ret = mhchemParser.go(mrm.match_, 'pu');\n } else {\n ret = { type_: 'rm', p1: buffer.rm };\n }\n }\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n },\n 'pu-9,9': {\n transitions: mhchemParser.createTransitions({\n 'empty': {\n '0': { action_: 'output-0' },\n 'o': { action_: 'output-o' } },\n ',': {\n '0': { action_: [ 'output-0', 'comma' ], nextState: 'o' } },\n '.': {\n '0': { action_: [ 'output-0', 'copy' ], nextState: 'o' } },\n 'else': {\n '*': { action_: 'text=' } }\n }),\n actions: {\n 'comma': function () { return { type_: 'commaDecimal' }; },\n 'output-0': function (buffer) {\n /** @type {ParserOutput[]} */\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length % 3;\n if (a === 0) { a = 3; }\n for (var i=buffer.text_.length-3; i>0; i-=3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({ type_: '1000 separator' });\n }\n ret.push(buffer.text_.substr(0, a));\n ret.reverse();\n } else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n },\n 'output-o': function (buffer) {\n /** @type {ParserOutput[]} */\n var ret = [];\n buffer.text_ = buffer.text_ || \"\";\n if (buffer.text_.length > 4) {\n var a = buffer.text_.length - 3;\n for (var i=0; i<a; i+=3) {\n ret.push(buffer.text_.substr(i, 3));\n ret.push({ type_: '1000 separator' });\n }\n ret.push(buffer.text_.substr(i));\n } else {\n ret.push(buffer.text_);\n }\n for (var p in buffer) { delete buffer[p]; }\n return ret;\n }\n }\n }\n //#endregion\n };\n\n //\n // texify: Take MhchemParser output and convert it to TeX\n //\n /** @type {Texify} */\n var texify = {\n go: function (input, isInner) { // (recursive, max 4 levels)\n if (!input) { return \"\"; }\n var res = \"\";\n var cee = false;\n for (var i=0; i < input.length; i++) {\n var inputi = input[i];\n if (typeof inputi === \"string\") {\n res += inputi;\n } else {\n res += texify._go2(inputi);\n if (inputi.type_ === '1st-level escape') { cee = true; }\n }\n }\n if (!isInner && !cee && res) {\n res = \"{\" + res + \"}\";\n }\n return res;\n },\n _goInner: function (input) {\n if (!input) { return input; }\n return texify.go(input, true);\n },\n _go2: function (buf) {\n /** @type {undefined | string} */\n var res;\n switch (buf.type_) {\n case 'chemfive':\n res = \"\";\n var b5 = {\n a: texify._goInner(buf.a),\n b: texify._goInner(buf.b),\n p: texify._goInner(buf.p),\n o: texify._goInner(buf.o),\n q: texify._goInner(buf.q),\n d: texify._goInner(buf.d)\n };\n //\n // a\n //\n if (b5.a) {\n if (b5.a.match(/^[+\\-]/)) { b5.a = \"{\"+b5.a+\"}\"; }\n res += b5.a + \"\\\\,\";\n }\n //\n // b and p\n //\n if (b5.b || b5.p) {\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\\\\hphantom{\"+(b5.b||\"\")+\"}}_{\\\\hphantom{\"+(b5.p||\"\")+\"}}\";\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\\\\smash[t]{\\\\vphantom{2}}\\\\mathllap{\"+(b5.b||\"\")+\"}}\";\n res += \"_{\\\\vphantom{2}\\\\mathllap{\\\\smash[t]{\"+(b5.p||\"\")+\"}}}\";\n }\n //\n // o\n //\n if (b5.o) {\n if (b5.o.match(/^[+\\-]/)) { b5.o = \"{\"+b5.o+\"}\"; }\n res += b5.o;\n }\n //\n // q and d\n //\n if (buf.dType === 'kv') {\n if (b5.d || b5.q) {\n res += \"{\\\\vphantom{X}}\";\n }\n if (b5.d) {\n res += \"^{\"+b5.d+\"}\";\n }\n if (b5.q) {\n res += \"_{\\\\smash[t]{\"+b5.q+\"}}\";\n }\n } else if (buf.dType === 'oxidation') {\n if (b5.d) {\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\"+b5.d+\"}\";\n }\n if (b5.q) {\n res += \"{\\\\vphantom{X}}\";\n res += \"_{\\\\smash[t]{\"+b5.q+\"}}\";\n }\n } else {\n if (b5.q) {\n res += \"{\\\\vphantom{X}}\";\n res += \"_{\\\\smash[t]{\"+b5.q+\"}}\";\n }\n if (b5.d) {\n res += \"{\\\\vphantom{X}}\";\n res += \"^{\"+b5.d+\"}\";\n }\n }\n break;\n case 'rm':\n res = \"\\\\mathrm{\"+buf.p1+\"}\";\n break;\n case 'text':\n if (buf.p1.match(/[\\^_]/)) {\n buf.p1 = buf.p1.replace(\" \", \"~\").replace(\"-\", \"\\\\text{-}\");\n res = \"\\\\mathrm{\"+buf.p1+\"}\";\n } else {\n res = \"\\\\text{\"+buf.p1+\"}\";\n }\n break;\n case 'roman numeral':\n res = \"\\\\mathrm{\"+buf.p1+\"}\";\n break;\n case 'state of aggregation':\n res = \"\\\\mskip2mu \"+texify._goInner(buf.p1);\n break;\n case 'state of aggregation subscript':\n res = \"\\\\mskip1mu \"+texify._goInner(buf.p1);\n break;\n case 'bond':\n res = texify._getBond(buf.kind_);\n if (!res) {\n throw [\"MhchemErrorBond\", \"mhchem Error. Unknown bond type (\" + buf.kind_ + \")\"];\n }\n break;\n case 'frac':\n var c = \"\\\\frac{\" + buf.p1 + \"}{\" + buf.p2 + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\"+c+\"}{\"+c+\"}{\"+c+\"}{\"+c+\"}\";\n break;\n case 'pu-frac':\n var d = \"\\\\frac{\" + texify._goInner(buf.p1) + \"}{\" + texify._goInner(buf.p2) + \"}\";\n res = \"\\\\mathchoice{\\\\textstyle\"+d+\"}{\"+d+\"}{\"+d+\"}{\"+d+\"}\";\n break;\n case 'tex-math':\n res = buf.p1 + \" \";\n break;\n case 'frac-ce':\n res = \"\\\\frac{\" + texify._goInner(buf.p1) + \"}{\" + texify._goInner(buf.p2) + \"}\";\n break;\n case 'overset':\n res = \"\\\\overset{\" + texify._goInner(buf.p1) + \"}{\" + texify._goInner(buf.p2) + \"}\";\n break;\n case 'underset':\n res = \"\\\\underset{\" + texify._goInner(buf.p1) + \"}{\" + texify._goInner(buf.p2) + \"}\";\n break;\n case 'underbrace':\n res = \"\\\\underbrace{\" + texify._goInner(buf.p1) + \"}_{\" + texify._goInner(buf.p2) + \"}\";\n break;\n case 'color':\n res = \"{\\\\color{\" + buf.color1 + \"}{\" + texify._goInner(buf.color2) + \"}}\";\n break;\n case 'color0':\n res = \"\\\\color{\" + buf.color + \"}\";\n break;\n case 'arrow':\n var b6 = {\n rd: texify._goInner(buf.rd),\n rq: texify._goInner(buf.rq)\n };\n var arrow = \"\\\\x\" + texify._getArrow(buf.r);\n if (b6.rq) { arrow += \"[{\" + b6.rq + \"}]\"; }\n if (b6.rd) {\n arrow += \"{\" + b6.rd + \"}\";\n } else {\n arrow += \"{}\";\n }\n res = arrow;\n break;\n case 'operator':\n res = texify._getOperator(buf.kind_);\n break;\n case '1st-level escape':\n res = buf.p1+\" \"; // &, \\\\\\\\, \\\\hlin\n break;\n case 'space':\n res = \" \";\n break;\n case 'entitySkip':\n res = \"~\";\n break;\n case 'pu-space-1':\n res = \"~\";\n break;\n case 'pu-space-2':\n res = \"\\\\mkern3mu \";\n break;\n case '1000 separator':\n res = \"\\\\mkern2mu \";\n break;\n case 'commaDecimal':\n res = \"{,}\";\n break;\n case 'comma enumeration L':\n res = \"{\"+buf.p1+\"}\\\\mkern6mu \";\n break;\n case 'comma enumeration M':\n res = \"{\"+buf.p1+\"}\\\\mkern3mu \";\n break;\n case 'comma enumeration S':\n res = \"{\"+buf.p1+\"}\\\\mkern1mu \";\n break;\n case 'hyphen':\n res = \"\\\\text{-}\";\n break;\n case 'addition compound':\n res = \"\\\\,{\\\\cdot}\\\\,\";\n break;\n case 'electron dot':\n res = \"\\\\mkern1mu \\\\bullet\\\\mkern1mu \";\n break;\n case 'KV x':\n res = \"{\\\\times}\";\n break;\n case 'prime':\n res = \"\\\\prime \";\n break;\n case 'cdot':\n res = \"\\\\cdot \";\n break;\n case 'tight cdot':\n res = \"\\\\mkern1mu{\\\\cdot}\\\\mkern1mu \";\n break;\n case 'times':\n res = \"\\\\times \";\n break;\n case 'circa':\n res = \"{\\\\sim}\";\n break;\n case '^':\n res = \"uparrow\";\n break;\n case 'v':\n res = \"downarrow\";\n break;\n case 'ellipsis':\n res = \"\\\\ldots \";\n break;\n case '/':\n res = \"/\";\n break;\n case ' / ':\n res = \"\\\\,/\\\\,\";\n break;\n default:\n assertNever(buf);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"]; // Missing texify rule or unknown MhchemParser output\n }\n assertString(res);\n return res;\n },\n _getArrow: function (a) {\n switch (a) {\n case \"->\": return \"rightarrow\";\n case \"\\u2192\": return \"rightarrow\";\n case \"\\u27F6\": return \"rightarrow\";\n case \"<-\": return \"leftarrow\";\n case \"<->\": return \"leftrightarrow\";\n case \"<-->\": return \"rightleftarrows\";\n case \"<=>\": return \"rightleftharpoons\";\n case \"\\u21CC\": return \"rightleftharpoons\";\n case \"<=>>\": return \"rightequilibrium\";\n case \"<<=>\": return \"leftequilibrium\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getBond: function (a) {\n switch (a) {\n case \"-\": return \"{-}\";\n case \"1\": return \"{-}\";\n case \"=\": return \"{=}\";\n case \"2\": return \"{=}\";\n case \"#\": return \"{\\\\equiv}\";\n case \"3\": return \"{\\\\equiv}\";\n case \"~\": return \"{\\\\tripledash}\";\n case \"~-\": return \"{\\\\mathrlap{\\\\raisebox{-.1em}{$-$}}\\\\raisebox{.1em}{$\\\\tripledash$}}\";\n case \"~=\": return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$\\\\tripledash$}}-}\";\n case \"~--\": return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$\\\\tripledash$}}-}\";\n case \"-~-\": return \"{\\\\mathrlap{\\\\raisebox{-.2em}{$-$}}\\\\mathrlap{\\\\raisebox{.2em}{$-$}}\\\\tripledash}\";\n case \"...\": return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"....\": return \"{{\\\\cdot}{\\\\cdot}{\\\\cdot}{\\\\cdot}}\";\n case \"->\": return \"{\\\\rightarrow}\";\n case \"<-\": return \"{\\\\leftarrow}\";\n case \"<\": return \"{<}\";\n case \">\": return \"{>}\";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n },\n _getOperator: function (a) {\n switch (a) {\n case \"+\": return \" {}+{} \";\n case \"-\": return \" {}-{} \";\n case \"=\": return \" {}={} \";\n case \"<\": return \" {}<{} \";\n case \">\": return \" {}>{} \";\n case \"<<\": return \" {}\\\\ll{} \";\n case \">>\": return \" {}\\\\gg{} \";\n case \"\\\\pm\": return \" {}\\\\pm{} \";\n case \"\\\\approx\": return \" {}\\\\approx{} \";\n case \"$\\\\approx$\": return \" {}\\\\approx{} \";\n case \"v\": return \" \\\\downarrow{} \";\n case \"(v)\": return \" \\\\downarrow{} \";\n case \"^\": return \" \\\\uparrow{} \";\n case \"(^)\": return \" \\\\uparrow{} \";\n default:\n assertNever(a);\n throw [\"MhchemBugT\", \"mhchem bug T. Please report.\"];\n }\n }\n };\n\n //\n // Helpers for code anaylsis\n // Will show type error at calling position\n //\n /** @param {number} a */\n function assertNever(a) {}\n /** @param {string} a */\n function assertString(a) {}\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/katex/mhchem.min.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-BoldItalic.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-BoldItalic.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-BoldItalic.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff": {
"text": "d09GRgABAAAAAD9kAA4AAAAAdHQAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAABPUy8yAAAzqAAAAFMAAABgRbRZbGNtYXAAADP8AAABSAAAAhoVQrJlY3Z0IAAAO1AAAAAuAAAAOgKPD8NmcGdtAAA1RAAABYsAAAuX2BTb8Gdhc3AAAD9cAAAACAAAAAgAAAAQZ2x5ZgAAAUQAAC+sAABYhCNUxN9oZWFkAAAyEAAAADYAAAA2FDB052hoZWEAADOIAAAAHwAAACQG9wNFaG10eAAAMkgAAAE+AAAB/P+pG7hsb2NhAAAxEAAAAQAAAAEACVIgS21heHAAADDwAAAAIAAAACABggw1bmFtZQAAO4AAAALEAAAHF3AnSqVwb3N0AAA+RAAAARgAAAGPMPGRenByZXAAADrQAAAAfgAAAIqSjPzKeNrdvAVgXNeVMHzOuY8H39DTiAc0MyJLGtBIMmhkS7YFtmQUmCUldtIwJ02TcjcNNOU2ZXJT+Nvsl1qh8lK5XSwvM+8WvoV4/N/7Zp5GkmUv//CN4ui9e857c+655x6+AoIsAHyFwsBABe2CIiFQb2fOzJnpnJnIvm05m6Xwxb/K4i8CwU0A8B1aARf44JrJp+Izc6UIIMIxAPBMAhGbl5AxL5tqmHwqeQWoyaE1gG8dYH6+5OYfn9sXSCZkxeos5qmQz4ZDFA7F1UIufI+xaOw3Fl9I4adSiKnywRQ+v7gIQNCK38UxmzYL7ljxMSLAicmnDEGFhEiEZ1VZEcPzDAE85NAYFlC8fSNws3EfCQrDbjeA23JbAdPrARe4gqamRDqDnDxFTRT7i/lEbs11bNFszfp86HvauaDDi2c6Dm/fjuT8BoKBSzuYzuk/DdfBgxcAZZt8QWBKIgKvh2QF5EW/z80Ul06qpqhLDBE9kwZqWkDjFF8d0ecgzpeaz5w5c92Zc8tLJ47NHj04vXfPrlKoLZkshsZCcVNp6gzmi7lsIVDsz2UjVojU0OpdOKSo/DYXCalKIqHyGytr8VE1EQ8TH4qnCvn+YjG/8TbBL4q5Ir9OpFPplJwvVh4e8N533yEmuVU3zuDJU4eYYiieTCg0N+8zlBOnFNXnu+N2xfBxLAe0Dsvrf0HRvL477lBlwl/s/Jx44CSe9KiI/ZJuqFL5NxHta13Vntg7jlqdzKLWQBE5c9walr+2CnGu3zk+jqrHJ0cbChxLlv4veq/9ADDouvQV/Cz9LWyBApSgvZQaKvb2tGeSTfWhgJd5CHEChCzSCUC0cKqxIRZiQjQ4E7hE5DirOLPUEGdBIhyxmRlOFFJpwZwih1mFdIrfWQVVCYciVjoeDhf7+wv5VHF+bJxZHa0thtfIbZdHFxZGx+fHXJpqbJvUXcV9Lum9xrb0bTqqTfFWvDh6i7uvx+sJq7QP1Yz+Q9/tU/tv9fX1GFmVMJPWet30v8l3oGgO/7LcPNxaeFy6+WbJO9iWGASQuSR+hWl8ll6IQQ5GYRZeM/mUxQUxLRsEQAxoyY0KaLqiLYOuukjSpVOAyI4BY37kkthdwwQGqDBc+4Qk6bOg69KxyqPT86VEgUsMwv59e3dv35ofLYx2d8ZziVydFfBrCnjR61FCnUEhfkKobH71W6lE3OZTLsvlinMpnWJxGwK2qKoKqApWRFZI4hWf+qWBAwNtXXs76/Jt2zUW8XobI0yrd8myK6GJNX2Oy6fuRirvkiX8zODM0Ba/mRkzPZeh09/eeeTa7anZ7MiZbV37qbFl5+gQGYPBVFtw8GLWo5FC9C+S7ta1F8tMwjffdWjvS0xlOJ/qO719Iz4w6Lj0l/R5+gbsgsOwDJ8vBZZnD+0f2d6XrtOZpCIwmqjoYAskiY4BUXhSRsbgGCJABBwFtyk4aoMza8HWZeBuDg7xQRTCf2oVT+Ir3AAEEiNpiYMB2Ozqowym5/mn5Fk6s3d3aUdrcyam8C0g2+uWTitKZQWry1Esit9V1SI0At8gWb4u9tpkIzk1pIhRsVrZEOYri8c3SgWDpdJxRalsFoFCn80NR/zbCx61QxvdXW92jpqegjeRUSKFdP/wNPnvM6PbBqSEe3ccCXEKkbD3Zld3794uKn+sqbEjoDNT8rYHQhp6D/SiFaXmRKMeGt6l+shI8tVmjZI+kGlOjOe8DS3myN4bt3ct7wpo+xa92X2jCd+ReyRFwjCRwj56k6s5cJB60n09keT2QcOdiNY1yOXpIwuhEDb2xYs6awFAmMfvwmdtu3XiAsOa0QqAbbMYCuMDaw2WCcIurQOsH3MMlQugYp6kDeZp4XJLBAgTlxTcx/e9C8ySV5B2GyBeFw4SfzriLxZzquK3rER64rw5Zbz73caUWaI7Pma6zl+877zLFA8U+RuGrviGdDpnRfwqp+HH4uHz4jXj9Fr+7PmLrz1vusQDw5jFz/A3lGBraUABQijl21uaA6pQXMiITQAgAy5uKCExpCUAEHoH2HRLW3tLG5eH+s5gv2251PVyJeyUkL20FalcpdJFIYxVQUylbZnkj1jWd5jl99WRclzVzXqXVMhbTQXJVW8qxnEkVmf6BUzTNsLom95g0PvACKsL+l1yY6PH1yi7/MGoNNLYuJUFI5vDAJDr3E/Rb9AeCEO21KPLBBj0k8R3OIdJOEsIMjIJ2BlAlI7xIWk6EAgGEgEx3f58MVYQc7XMGDfMMVOJp83YgBc70dA9Knb4fOXfUevV8m//Tb36trd5+J1Wp5V/x+vFDiGBl14Fn4XFK0kgANC8kCyvLYHxVQlcB9g4Zl4ugbnNJLAmfxzxeQwjAwbNXL0AIhwBAJwnRMB9AMBBJlPCncVCLOxC4/nxcUBYALCpZ9BbIc7tPIReYYpqtyZy18eovccmaGFxcdHmv2Jbdh9YpZAtueKJ6wD4iM8SyJaQE2FZIhE1BKoyqbrxOJM9mhvLH5HVf3GrBvucZKBblV8cMwwgSF/6S/wGnYcgZODeyadaha8JRI4/zBgeA8QIOlwNgmMy14Eym4GiYmp1tVFENluFMRQKeCUTzcQkpY7vBdvtWGc6i1UjKMaFHbTN4J2D41u7uxuT+wb2XzuQZ54fKGapsT4U7PCHQ2auqd6iGwdbmrfNPvY7MwPzsx8sxd/QQTuGHn1ox1BI0+pfc9ejQ32CcYcA8FNi1tyLDSDJOFGZer2CADKBvATCaZWQiC2AEyzEBQYg4G2raOswrgB0goYgguk3dE1VZIlBEIOq8Bf4puaBTDhWyHH3wrYjhZMvG1Ktl5Y//jJET9eQh5aVfuXih8bHf/oTlLyI42IGHQD4JfoIpOCakktXScQWjISxbbaXEMBegmpIs24KQUAAQlhaC9ow6hC9YnZn4mKFbLPGiUun+crkspWlqv4UBfkVY4en9gz1bDel+qjcfbd3f/4kecb1jtR4zvXud5dvHesqbG3ow69sO7St5I/FPfd7Y6UHfN6dY3qydazXhUenR7uzhfhWQOFX4Ff5Cg3DL5X8USRpCyJtG8oyQFadZIutB4DwDEiSfAxk2TOpIoByDLgxV5zpNoEMEsnS0ir6BqTM1ZGiHKmU2AyuKDDroIEiBLoURhjoT3EF5/W4DU2BYRzW+CoXs8JBTqe5C5mz+SRuhXirXNZT/J4j5HLZ6g5YZweKRX79j7lt2c6eHvSZmUCss7cj29bcEI5QzFMYI6/EhpdMpc3sbZf2uvDBuZtndFVpUMb69w4VRg1MpZBI825vz3TWB7tbW4iSRoeGI/lQeChXFw+xvinVe/SeGaOtrUEeACBoBMDv0uPggSicLrl8iIATLkQcr7pyCgrlo8pUtW+LjhBtChGCVLK8XgJv1GutbgAPeQRr0Bb/BA8xhAwFTVuk7PgNfXjDsWMny+V777EQ9UcljdhheozKx6be976p7/x6+RTeIStHf6L6ZAkBEGKX/gq/xOkuwG9dyCKQ2NUNIjYVco0EtwADSWaSsE+2vPg3k5fkZdgyCBWxtAG3+9/GdaSn4ypomwtRZ3tzYygYMP0+TYECFqpCVMynbbERejGRMGOcb6Ecl6airT8d8amoUD5a5GO/N1CiXaq3LhAPyu3teKSMSDIl+8LqtoNetTW9p63rmt0RDBm6FJnu3z/yYB3p/naNIb58+tgCIsM69MzvSFjD+Z1N3r0RCeN+v5zsA6ru0Y9ABkrwtxdsC1jdmgmxWUiSb7EzKApWcyt1kyDL7DgwFlnVRjEHVWAhAS5tgpj5txGjNmIPR2y+HFEGJrPTAl94ARmwxVO6BSQZJfmmNXiMybPVN8psxo4RgmJLd3e2NIVMXYUMpoXaxqwlVsDWiUouIrZ0zYJVYodCXgyyuL1gNTtWjeewu7+A2JPbMethiGr/uOL1ezsT2WJsrG84uyV7di5muckl+Yz2QksopXlc7s5ogLt0Hwm2JUNLRwKoZnUkrX/y3PJYR1tH+n3LDz4X95T/iI8dHljoS7qJjGxyYk8ia2vTn/GVehyCNe/JZr4PgN+isM6IXnTEet2wiSIVVnWciGx/h46Jt9B01XsKgmlV/fdYWFWYEubbuaLnimoHvs/4UExdkrTM+2QXnaeho9Oer5T/dajbZY33/N3TiocQgEEnl6avcI2fhB7YAR9bafaQRI5hbhKRnEyS8C0c30SWN/gmDQDACNiSg7weJXM1FNtXab0ciijPVnFktHend2gg19fVkWqzwnG+riJvUtPcaq6yCx2PnbMgLYQhkq1ofCEH1V+2MHCcWw4NnwtqUvCIitkRne4/dPB+0keyJCNlh964PDSQzw0915LNFQ/pwS0tMfzp+HV7Bustd2QiKQXHtxjhhTvuWAgbW8aDSBjet6O/Lz84mO/7YMv40HUWNSVHS7Bmr3bBTniyZDQhkzk+cxwGYf8YyXzmklTLhW7CX0kGaclBXo+SuRqKw9+NUESareJQhb96e1dHWsTj9Ze7hdli0WabLVmFNUE6H7AqmzFk68Fcf9VhfKy3uL2zPlA6N3Jod7+OgWBfV8Ddud2DEhnDh0137x6N6pojn4829Q2qiHIy6q+r88YyqotemWgO1J946rlzuzIyxWJtzHVwh1TnkfTt5LpjJNQ0uDvd2GHtyumn9dSAoaDqm863JkYBqOLv42ftfPUNVaMpIaId9/orPpm8moTu2RTsZKHDABxGgGfWjnNGBSSJg1RJVWQ7WhDCKAJoVo0YkP+vfJ5HDiSipyo9Pvj4BRUlcuKnJmCSxM7K675dmldQkrySs/CNHIndfmWcnqvimJJwjW0wgOxMpQYUix6y5+Lj6k6vzkZ1ZrMuIFt0QrLq5JzATOSm4ZX0G3gbGGBBvNQCANVvYoyOVJ1aYvusUDJghxw8HhWCJcdSYX7ZzPh1LDXgpZf5vOUvl7/s99P9qDLmu/gqr8jVam6XhvJzPhllpkpuTRXfWQTA99MXoQ3a4dSKHwjJUa3NILYXslucaMoS0ZQ0L1e5dlUEwZWSJ5VKtafaw10NKcUmOJXOVw29rWvWatlVf1Kw7FADprdty7h2HxiYdeF+NKLjZJDZl0s2J1oOLlIJJ1AKNqE+Pba3d/K0EmtOD7SfKZGOkVhXwuWqu/icLTUDl35Gy3x222EGZkr7EqgynACFZFJk4cqoGlOXQANSNBKKw97ollDMcEyv5OcQJvaODA8O9Oc7MvEWK2RosB23G9yCyo6CrGxxS9hN1bGcjj0tpGx/p5Y+E9GSmDpbDQ6rajSdwlc//KVA7N1L/plCnX+QSe7ZrWoorIydjGw5pYRTlkwssT3YPHnWgw+ccNWN5H0z3nDDRLshhUODHu+Weisw6Im6fvPNwwPLr9Db/HUznxgI715yIXofnC0Wrgmim1CSB5XQA/NGy63vcSELyL5woBfL5M0s97Yk0/avUsWDpgdoBfzQCi+5EERp1eKGQQJCiRZtHSszcuxucnOgsL7rxn2r48IWATTWgx/8ZrhPUazOHNeYuWDA4q5JOibSksFUOlz1p7OCmY0vYj7/wMuov39n+c9xm/z7JupHZIPRH0vyVrqA5Y+WP0r0DLHzboqWDLnwE3ejSGu5vecBmNBrtMjnVQ/tsBVef8GNEqsJfMW5FSp/rYlWsDbFq2OJuV6O4FuHIPQeQLa3pyvW0tzACamLCU3BY4iIYynUmiMm/guKOkau33G8gqlUJ9n31YGFh95k3ZKNupI3y+kbGmUzPD8Yib/yJer+ifFDDVMt7p1N6Xi2t3PP0WNW76hG8QCtoBSeSKfq6vYkXOkjIX8i3rnDJRTbjYi/jyoPZ0LZVl/5l039RZSNfNxQ2+MBQNjK99MkfQnaIVVKhIIk/OVqZpDxbYNoZ66jNLWnvaMSdKdsMa9lQSou/dokSdbeJ2Hq6dyb96tHt26LpXe3ZwfGtniQWNfw4Y8vjt00cysLqdPTDbS1sQH1/ftvPTw8HQtFmvVgsF2LtDx85r733jDjwqjBAAjmAOgJWgET4nDWqZ+uzwhJtSXdFOo4jbUldAA1ua2LhINggj8mO8tXi19UsWo8vqmaehE6p+be+lbPzQ/7iHxHdp/0vO0+14H9+w+q/fONqT3DKVpBCj55V8iK+l95dNRHfCno4vdQ3tq7a+H461oDAAhHAaiDngYPPOgILAGTyE5XwnyFfkmS5xWUZa/szO5qWCbHuhzBtw6hMlvwgCdmmjFTVaKdORG4pcMx/pMrho/ir336KdxV/tzKCj09g9+d+ms86tDr5fQacHOF3ujllMirJjh5ZQRhfy+H+RyYKIMAgAGGoE9Ymhp95lF89sknMV3+viDtj6fK34CqHM9yu5CBnaXhOpQlQkAVGbAJcDIysiwywJI1qaCQ8EqAhtDaHAm5dDv+z2BGRFJt2WIhUciZG3W/xbWXo/1t3Y+/0Lvzrt90nVru7jn78HDf/p1jC7v6/CjJE4s+de6uE+PNo/6Hp8r/Knd5Wj77sjtOjbfHopZ0Epm0A41337L0pjqjytUbRSWjJtsIEkPpDNlRqiJTrTdgc6jJoesBPgfgrLYLXKb4VFab85P/S5icnedwz7lz5edopfx9TF+cEMsuODoLAF/gVDEYq+WHPZNU22frxkwnZ+xzbufXJ43Fd86eo5WLohJhR1av5m+34OaSywQi8CCSU5jzb+LtJy8bjzouvj3uWzfO5YcACU8JCAh/7kJ7mtNhdbZxOvxiP1dSWaLKbsc92HINMl/g0MD4/gCTJEltnzwSeAUVyn9R/hM11pTpjukRy4qgmhsFtDXSw5z+Opgr6VbYJUm1CNaL9sJIjJzcf3LDqMlHKwM+Z0CwS7CvDurqgqasWIJhYQtztqWMBK1Eegul04oanltGnLn1Va07TbPub703XR/Z3syMmXZa4Vv21EOxsUAgU35X5P2xE1sk3+GOP6iuJf6EU6vCEacQYTMSkRYY1qjcCKgQKsZ868aqMbYKap+Ise21LXK9MXvu+id6+RK/E/EAAMJxAOalFWiHhy4YyGwOhUW6F7Gqmr2TsuSwqSr7TKgFusVGWQtNXgEqaFwP8K0C5quapB3ao2ZLVZPkrGayApbVH9xBxaLYBSzkZaqaSBO3YGElFAqbx39BRpepvdONgbdqpgvlh06gty0+1RCebfyIi5BWvKxpS6h87aC+D98Q2tLEvHzr9GG3J3v9/K/uLY7j89sMDIeunT5Y/nZVXl7CORGAIyumSv9NwhKAgBlxhMWK8EmJTZ3O84mkzbk3m1r/W4dPvNnc8WydRCuJ4I3lbz5CixcnEvhyvGe7cfE9drzAq+VP0tehEXrhXTZNtWpLeEO1JbkpsLYRa0BrA7DProsxQIanVnHo6rUYEXh3dyZiXTE7j7OaT6y55eLH9tgxv04v20b6j3aORkMjt6SHJP+bb/IHQ/7TexLRrDd4EN928kCzbkhHz546rEXC2oFF+nCajOnSqXtj0bs+YRL59iS65m/uH9hzR/lPr30iwNB4//W3PhkgMp+seiN7bE+6Be65UL/G34yCBEgSrkkJybXtdWUEscSXw3wOjDPCB2CFQ6bwqztEX4DjnjjMSJjCpzRrPuXcY2/wHL1Z9t40aSzMfkQ9OD19UL0hhHVx4Zd47poMWDtP6FT+W+Eglv8aMbCgRHpauysS8SpbItpgDwYv1CHJTmQeAybJMjtXybxJkiMHskzHgSiyuovjAlFi8i1XxUz+OzCj5MjW5pjWBkwhaK3rMWUglGl59Qnhe7StRwGQmJ0DIpJnqy+USSRbhfXcNTLY35FprI+EOevD6yVR/IS5Pkmk0rZMOhLJQ+NCjktizVtMxGsdF8JHrsmnbyTYYmB2ULs30eWOpW45XpHTv5y/vrUVFcUn7bjuqOLpO1JfWD5ghCMySbhGYm8+UFevIY7NGH2jkjHnSO7FF+iV2NUtK6Y88+DNT7qxmJm58+b3+gmxKsPX2VFTBl5RMpIoSx4k2THA9VWmnanl3pQ1ceFVMIQfcDnQ5wCFLPsBeKDUCPVQH+rhoZK1GipV2uQEby01ztUYl+g1oZKQ6offoBcz/dsPjbhd7lzoZD6Pc7Nv+V+eQwcPHo8eDhAFaQVRD9Uf6d16qo5r8iOJ9yHiE+8sf51uIPxbVEK7lJQyAQhd3AP5KX0DtsPHSq4mJOxAAnIYEHacifCkEw5FHA9sM2DUqQnUgNYGYLdQgRWH6JSDU1WBaDsrS8BxYbbWmGFLnzFYTCUbonlJFPCLQnpWK8+2/quIW807deRM8NPhaUUuuwJbTzU1uU1/qq/f25gbtnK7jMid07P7QiYyqW13Ib/LReju828vRYu7Xr7cGJ2bUbOntwZlxb09M5wwdI/PXXdsW2vDyP60gWeQsdbGLWkl4JV7Lc3ndzdcu33+QcndJwMgJAHo1fQU6DBfYWlAYlSLV2pacSOkqg6dQce1q1k9HTQzZlu9YEFEBdyAq0k6/cAD5x6g0zMzePF9dAaF18Mt2xytQMLxq03CqnezYUHXA5zFdAC+dYCSFxAYslOEjmu50hlJmSI4FpmuiBMW99u9i6GwWI2KwbLXa/YcopHs2Ln1kFtCPIESeg8PdvdN39/s0xC//NOf/VwvJbvHB8wt3/nZT5ND7zUZ7lgMBw4ON3fqgq9eAHrE9jz3XFCw5ki4ETcy1hlzWGrf1ph5IdwRYIKL+VzOCnCiuSAFee4rrJBwhlLk7e+ve9qL6Ek+0tjTQ5dkdgOTL9FnaHu5a5LJ3bfjzZNEF09rhqHR+yu0sQ9w2nrh5DPtEZ2xWlWHUGaClnV9zuuHRRDjjPicEb7mJoMt3W2JlqaACb2sV1FCNsnCiQtb/YUK1cKh4xeiwij6nhlLpIUXpCpMTTDyZnMUaVJOI2rR5ciZprt1JP1exSuxueWlXC7yco3f39N4ZmmZLqA+uRwpf7Qgo6JvuQdP7D9XPj3tch3Ej4Z7XW5C4gmp8ziBX5rig+VT1+ACzq9Zl1Y4+kwjf/F/k4vXCq3RcMZ28USsIoIA4elZlZyjkguJzrJ0nqtN78jIzpH7mne04n37Z9H4xK3IbssP40MP3Xvt2f4ti8ePHT/+gfShDrrpXvL8nNgHJubwmZU3vQmnR98EgCAB0NttuRp/JmTK7L8kWXVWqy1ZRZtWkSH1SqrKN6pQWtK27X0fkHH0Ef069DXEuiKvv+bhlgmTc378J1666ytetNJ9O2PfKv8VRr695eZ6QV0RgHrtePHWksGQgQ8JHWUdEbLiqA9Emq+RuhnUIboG8K0Caoy3IGjevqplGIVzWa5mRVtJMFAQSjYxhn+68kyXMTDf/GhZXXlGrVdPdNB1+3LlPyv/GSEeKGAUo4Qo6D95SUGD/hZUyJTaNqkDSCgKAZWYyjTtr7VEDwL/d/KTR478C/vzqRefmhJvilxS4Mu1N4kHgfFXIdqvErJIuO5NQi2ZIp8R+eQnj9AHp16sm2IzgDBNPvww52kQshfciKt9825Bs+0UeYCzqXYrtN2FNsusLW1EjSe458OlL8Gr+2/aObmzxJBJLalSi9LdnWpjtHzw4AxDnEgphQIiEzOAS4/hTy794N/uVwtzxuNPbpvi8yZIXfo5vh2/AV2wFZ6+4EG0vVKrmr9VZKasFgrrKulZJ1XhuKSXY3G4QHVynKJsdEVMcx1mqdXxGR3kjSi27W7ramtPiHRwQ9VrFD+iRrIutVTMCWterSqoYjgYqpiQQiEhdvmxkT1xZTjVrOGCa8eRiNaeRU9h711BlDubJktMJUJiPdl4st8lu4bzyUb8eBzdPfGc/sQ70moHufbm/FJ7fVyONsqxrnaSEXmWQCr/uCHWWu9pCpFbDwoeT/Ka/B/SCkShHVtLLkAZ2utJkqkatzcAY3Zy3GGLJAk2O0FehKO0bEQh8lbwwEGz/u03xf99b0pujmZuQOupovmuhlZqAgBZAnlJYF4Gn7c/JT2dNCMdayrBa8PRVDpt79hgpBKBVoNS9fz0sWioa9DtK7VHomODJCGdWGCBTKupFAZyvW5vrk3Ht2aNyD37BhLZCa/WiQwxRSuPl2fq69E1/fKDBrVpAAhxvgvey3fBFpgouRsbNEbYXG2yE7MMA2JtgjWfJQi1/hRnlLstmY7VVsfKAQtO8Pow2j5dwe/XxjbX7Dg41N/h8jIWz2+p17fkOlLhxvGdXkIkIp3tnmpQ9uUH0I0Pj7jrxFkKokiAPAe3Ffb79ZQWDodChBLF0LNt1/EG7SAQxPi8nrP1ezd8r+QDlFh3HcmSjCizCUdmqpluewabbvKWjSiX7/Dk5mjmJopAoPmuhlZqcipDAvMyeEVihsKdCdMUEoOm0MNrWVnNK2+hRK0np9KRU8RTCyeMHfvD+lhbk+IqtjU07t+leAOxENOQefMDS0owoKUbFHwHNl+c6FJ7KDg9NGV19B8IeNr3eb0eZMaBkVdaSK6kLup/nMPvw29CG/TyjhtARlgVmmYFZSDGwzVH3usmnRxEVFiARkC7LWmphlgD8/g4lUr1pnpChVBnRmSX2/ie8NL64woV5ReOrfYcVQIVod3C+GZFiM3OyQZ14hoPkWdo6+Sh3m6p/Buu1inJfXhk0NvbzXQaaHLdupszmySMo+fGff5Q0H90aGD70LmgVN90wIPdT3fn0LU1ZMcfwrIcoy9BCzxaMggR2BqPocneJyoCVA5v0LyCRP5JqLUPXBXJrl808FsZnQqGg1mBVlrm6vimqrbMydCCzVq1TYurBbHaYr3DwsgnhHmuygMq7V2uWJPWWaeTTNefXdi1C9UDQzJ9yXVQclsu2Qjlh8fLj+Lt4715ZetRHQEYX90s/gn+GpRgAk7CcyWz2etmBGFUKSURU1l14h2gApNUtiSmAscQq8pXPwa67rVPutltiPWyw4WrPmGuf6KUQQSOpwItOY9tjiqa2KYmjxyaPDl1MtHRnk4djbS7lMbOYipfLDrHCdJ2c0HOsuJpW1jUtOVEs3aEa0XWtLc5OyovUIX5ZFk7SE6vbXY7GAkpSnRxz2AH8qzLLkVVGUt0Sh4WlHn+f1dXWialee/hukMtEfK/bP/M/X4K08XO9lRHR6rdlZ31m72BvUXNtMhob0s17U/oRvuW8dNxklDi5KKKKFF3YfyUxUg3kzq/9XbHkpaaG96R1/zJJPvL49nC0UL5hURzyB9UiaRYxC2HTQ8gjAPgC7YOfKhkABKYa0oiEZAk29+uqndWq8NcAWo6ts+G+jaBio59sHvqBIIzzJXWM2YkGYrJStTxWuzTdk7hV9i4D207fHNIwhNCvyZCLQqeWMCHt11jffTD73mvPBRq2aq++hV8KkCwCwA+QU/afUev39h3ZNPsn5RrQeGVwCZzZlNrPnKAV29KukpXEtfHu86dWaDSuXMXv4ifLY8CXfqVSzn4ok1vPTxwQUKJHL+4Qd5AF0iS3edZv0pbtNZNtBGh1Oi0eNZwauBKWixqed2b0KhUq1Up3lOWr6jPuXMLC4iKZ7g70xv3E2PNyaxpz+N6CpT/6Q+ygUze9Gg7ZSQpGgdAEMHDd+347sGSboU0JhE6EV7ACY78G6PUjRDTMY42xLcBUhuk+dU4tlbYslYLWyb3eRU70efUtRQ1PDW7tP/GgwcU9hGmLQ374mHSXd1uWilPnj18eE6XfiK5j0eyLczj7nU/DAgTAPDh/+YK5cSCU6EcB6DvcI3aAc9WcnfudkYMOFWiRbGhcqtWb+erm7Rymk9FjYl9ptSKV91XgNb4WQ+q6ndOEmq0DqNUJ0ZkrDSCqirNC5DDXQshk061tTRF6wJ+t0uVoQM7dNvURKziZht4424O92Nv31BQ3Tq3YVPXrmaH8dcSbVpp/RavXeGXh4YdHca51gBnKjosvEaHBWwVJOF6/dWzEeKsVdDWTbNiFOero1XddLCim0QafXP99P7iKHkldnNYWjcJ/IWiis4UHMKh6h19F79h13S2OXqGaDNvKAgIlRN0tdH5lVRb5VAKhFbdu2ofWaULznHs8LsPnGrQJnpHbp93tygHvbt29LVltjWlLf8cDn72deTNjSzPP2yg97t7DicyM8sdQbnVjsx24B9xvkYgie5KMOYClKC5iWSJJkTwVR1itSFrI9Y6BC46TlQn4lxmM3+191houACtjer8kzYeXAHN+rff1PPveVOpabUjtwYSzpeAOz51MmmGBtZFYWEnRknYAl3huhquBGLn9y6F9XyJHdqpBPcOatxY/cHu/lxKbx005Z4SviXH/K+b1g7f78MO5c/pgdDXdhxPar+TR9dhsGOTHfgc530YknCq5NNRgmSEZMmLzI5NelZnjs7M7YChNqVGe0KzNYBAXJ1RSee+sBlOiOkUHamxCpVYQRVOdFstKhMxWezEmKtJGeow7AihwcyP4Q5fezpa19Y1nh9sU3504tU6upLa4MW7/0rpZIr/le9py7iD+3pGFrIaVDQn7uEz8sFrbNV0oXKepkH8ZuhoMxMQV1ezpsguA9R0WLiyuAIKNWAt/DzjLGRFc62YkYBZDUBzYv58uvbqfWLnIdUYOGwQLhzB1+w8KI0W9Hvuxi+PA9o79RzfqQMwJXrGCVtRlG0u37MAa+Nfp8RSG+XKvz/flmisT9mllR2Us3do1Wl0trCtYEKq0/dTq6tUHdFGVBU0xvYM+1i9pzcf6gt5RrfLmu/guMpns2131qM0GX29VjGoze6fGg8kMJNW2lO61uQzdJcR6Yo2Do6p2MKHmdRc73Y3+WRDdzdxOz+6N26vVoDPeB9thWY4csH2rydW25uJ3SajbW0rkYmiwHFHT9XbYA7gGArhmRpQTN0y+SeSF5mpNkt071W1VkFEIjkRlVQrGf04FGzdOuT2utOatG/m8Gtfi6RZsqdzcQ95w2r9aOT194w/+OD4XXe7unRiwgZwel/Az0IUXlcyJEQwkSFVg/gAIYAtI+y4UwuoGs8qhI8JsHQcJCm6GozVoOY6aAXA5jcChBfLN1XStC0Fn5FVTcoUCmuD8PETqLTEpxtkrhPU0ZtaAykF0f3UU0+F3YPuzEvfWR5NS916cFirZPjx83xeJsxcMNZUXjxok1ZrpOlZPyi2gH1PcNv6BhoTzMyI3UBD6TwvvIgOjv6AKGCw//Uh3NJDgdM6Hm9Z+DDXP0SUL5eHY2hMEZV3V+ihd3N62uFQSW9pliWJ1WoOhCS+v8bing2jwmeuDDC4rTrAedaZaKjz2zwTJZWwyETkbHEv5u1rxUeJtHDYKmdLEum09xg7rKE85T0S2KsSar6hwFxz265cjh2VEds63KynZxd+1ij/7VHdGLvUPfyPgwZDd3LvLw8t3/djNLBx3CA59frH0y78MQAC/+A3+LyaYN8zdW6J/cc5ve4w9UpdtM3WMsV0rlKLsESRuZmE7ylydmIa/S9cuGbbtobWob4+9kjr0fCWJjSuGfEmNb0pMbz8wp98d3Iy3j6JysfS10b74+SeC/YZrkzf3B+KdbiUt+WiB3asaCoxcDaoiY7M2g0K9Zw6MSYYvmZsfqUjk+nlBDqFOKtQKcOpCqm1zGI+VajoJyHD6S0s7e3p9dygoHZW6+7O5q6TGpJ1yaihiGjB3ZLwKD6f0uJ293b0ufhujF2CGUOfRTWEr3xl+afargYTkSHifpTcTGt0H6DGxjuWb28UGhYA38Tn44ObK7UW96a1Fv+GWkvPFaAmVSJNDkJgZy6vtPjAa7atVlr4lCund+1zWtfedG3I/dKXll9/xyvuwNsm+t7w2no/7ss9cR4rZ6a/hO/HPdAgupeFa4OzhE5eXmgYGRmymUA4EQjHhXmtVMorIRTXCXZUVdHs4cQhNtBVn4wHJZUbB1bsbGirXn8jv6chKmG32+VcABCcpd34SDWuHa1WM2UmMREi2uVkFDEpoV3fINuHtcGA+64ckQrVe3bxzCLtXuQfIDhAPuymFQjxOQ6Ib7m8jcoj+Ltx0CfkKpBuj9tyJWa9MVViib81FMoeMra2NTa2e4iM7W2ZIYM+vK33Brq7IWkEEprbozYlko2qx+1pb88Ijr/+UglbLv05+CBY8jsnugM4lYoRV2NWRWwVH8ULnNWfTqZSsmSqrR0dshy8/iC5XJ3BA8h/dYETv+Fn18dv/jXxW48ztj5+w/mrxW92GA9YieP528MwdEFGQGdT+u2QFQBqe5IPAd62Zmj+QiocE1UutVKGMdcG4YVioiVV1yZTLQB3n2oJmwqqqK6G3lLq/8UK2zT+Gf/exyAI0VJEs01VxfwA0XWhtpD9+lQxmxPfwB3OSNhW5alp+83d3UpLib+5JL6MHkEsFJTUBPKNxL8JEMYog5+iu//t+p3YzmN4HWWmpwVVv0Y+fD/nhgcyFTa4YA0XxF2NCZ9JmUKgsCj+ko1NHJcnlHecoEDKN5Zq07QYnzhhuNs8gFV5OkQ+7LLf31dls/1GQofNzq39DSUXga6ChzxMNBSkc5W2I5GOOEIndnhimtaWGvOlAvQZOhjocrnwgNkdtjMD+CJ+3N6TAytBRoDOsnqFCAGdYogotv+6AR/yHZlsC/rFjgxkK80hq8eL+E3kO4eLbKqQbu/sak/1TzGaLqZ1OX9Y0HUkJ+tpu5OXSvAFW+sUaqJUTUqhMC+Xrcf6PSKUzOw5kSgSlP0e+fCF/0nt8gf/Me1yiFq4hHyEUzNWOQMaArRV+Gk7vLJX0j65d2Vdz6OpmroP/mfUPXVsqu+vqUqvBibsWK/vjzn6fv2IWPFSQNcBdFM3PQZooPVVGgj7clkRsOaci2sGerawUVqo/CLfR1F9h2r/b7V7+2lQQHkaAXurhyHMWXz3E0+IQxAX3w0EHQAswunTIQLahYBHQertDAbto1ethX5MpexmGCuXT9PX33fD+96PF0OIt5GM5PsV1x/8QfN78DgulM+XzyMi0m7FLxkD5QUL2Q48CgwGLv0V/QZ9AxqgF/JgPJPtSzeFJMa/I1876+8clXFqP7ixKVcEV8jVwsDTL9fM8eEDZ91Evp3NkbE5d1Oz+873+hBv8Nf1dA5P3DqvRTtTew73DZW/gWdx7u3fcWMs88RSpDd02+GEOeAhCvzi/QbuoWji0ZO3vtskf/PjS9fvP1b+wuJixYuh3ZwfEc41GbHKixB3WFPCfxXCytREPP/orWdvubXYL6H1iE4NHddTd5fDCEJD3oOfPuCS6hafKH9eIwAm+Ey30FO23XdxPuiaLCEIPvBpYfVfD20rS/jZi5c4CXNzc+U/nJ0t/+rcHKye9nga1DWrWTmIQZY4hvH0xX109uI7AaFYPfVkcUzVxhSxQTptN71ZFXWlCF+pqPw+u+NOWvrbv9VNMx+9duGg+4c/NHCY0SOPTs+gKxQebn7pK+408Uj1rWIdM/ytFgi+ZC27ByFbSaPVsmh2ICxu+KWoTP3wtUmk+APyyCn5BGWareA2QzqnBGZb/Q3sBKUaOukb30L/ijpbMrTmbq3xFYm//trX/rXrIckfadOM5EigFYCtzqoROmCA869nS0ezDzn/UPg/EasqRQnx/QkuQiLpXcyG8xWyKuF3MMXFf7XVGQcWWaLp3p5wePDTbBFV7czjj5/xIQUa50wi87jZcIcuS13BCR9lMvSKwksUPXOmc6Hjpc0v6S8gmq949hUm/f2HPPGjWpd2NCkruJNh+XmX1rZPi5Q6M7DKtRXYxrnWIqSpzU5ii5/KX2ETCYxKPVPIv2CZvQFSgoWpRKJg6yHnBw8vZsy034Ut/hBrcOUZKtTiIZWaPqMteo9e7+aXnhZSkOULrNHlRpT1+obsC/ivZdn0xYbbpx+JcRcJtT733Z6vxvCGG8h//2nPna4+jY+qmdTyzqZCqtMvKO8CoI/w9d4p1puw11GKtra2V1r4OIJ87nFXebqhh5SDxAyLeSctMtb0nnNvPj6KUryry/CSi7rDB16Ukn5Xj8t9y/zhGzV080t/UnrxQLibPF6ja5dLpui+a0/tnveo3fP7p6MJGfGod2Q+WXe2q6NzZml+t+Lt7Og6W5ecH/EeRZQT0el7RhpCqUpE+Nf4Exz4tz2Ogt0x9NdTU9Wn2J/9e59if1Z9agG/C5+jFXBD/gIgrRp3D4cR0knHXXHuHa/NDAeZYgnu2q15IcHRBS2m94mj4b5FGggfDtt/uvT/Q3+7juBT+F38TXu2URhe8QDVJuyXEGUUU2SOB7V+yPaidDMc4lMX1nbd1Itrbz6lxbUqH76sx7TLWHLGufg/4O/R8g92wXL17wLLlb8L3FeN7ZYrH/h34yGIz7LAc+yFwBGw/xutY+zlAAEAAAB/AGoABQAAAAAAAgAiADIAdwAAAGQLlwAAAAAAAAAWABYAFgAWAGQAxAGWAgkCzQPABAUEJgRHBMMFAQVFBWAFgwWtBigGiQb5B7cIEwjLCaAJ8gqhC1gLoAwSDEwMuw1YDcQOYw62DyIPeg/HECUQcBCfEP8RVhGSEhcSZBL9E20UXxTgFZAV0RY8FooXCBdoF7cYFxg8GGEYnRi4GWoaOxqnG1gb0BxHHSkdlB3sHlgewR7wH4sf5yA3IPUhXiG8IjUijSL5I0EjrSQFJG0kwiUAJQAlMyV7JaEl0CYSJk4mfSaZJskm/Sc7J2Inqif4KDUoSCh4KNAo/CkcKTEpXCmcKfcqVCq2KtEq7CseK2MrrCwMLCAsNCxCAAEAAAABAACfX9BVXw889QALA+gAAAAA2LKZBwAAAADYspkH/8X/BgPnAu4AAAAIAAIAAAAAAAB42k1QA2i1YRg97/v9tm3jC7/N2bbtZeOGORs3c/aWFqcwp6UhbmG2z3Ndnc5jHOzgPQCoEAA75D8oVWt4ZPzDV7IprDfwRt1AgipHIPGF8T/GGeYZY99ZciJjUv+SiCLeOHCPeOzhvxWWeum1zZjEF23FV+Iekagt+KEnEK9jEKu/EVb6fYhlfRxr3+pu5h4gzihCsu6jPcN+i4MryCZMXYdnuhVx7L1gtOKCMHFMZ+GLeoxU4oZaQxgBNYsX+jiCVA+ekB+T76n3uCu30w/AIrzU2cN+NY9g2oHGHQRI3JEPsvXEUhcL+wpwxZYb5r4GXCBDbNXBHHURfcl5rI3gnhqZJ7PlFgd8iEGHhgH8WX6Ydvg5tr//4Y3oxl9ErzeiDfX6wtgXDzZZD2MOcGpNv5l4pExAgGzgCAW+aRUAAHjaY2BkYGB695+NIYr5xf+j/68zPweKoIJ6AL92CEAAeNpjYGKczjiBgZWBgamLaQ8DA0MPhGZ8wGDIyMSABBoYGN4LMLx5C+MHpLmmMDgwKLz/z6zw34Ihiukdwy8FBob+OGag7j1M24BKFBgYAT00Eq8AeNpcT0NCgEEU/v557bM1y4xNxj0yTpEvkG3b5jrb9gH+ZZrpZT4bAOiT3WAAgGEHgvHuW+AeQATkq+WCSEQjHsnIRC6a0Y1hTBvBIlQsilVxIs6pnKqpjhqpmdqok3qknXSW7iYzA5CvvbFIROq/3gWxLI7EGZX96u2gbmkrnaSbqZn5lm/4mq/4ks94jsd5gDs54Nlb1+laXagL1JHaV7tqW22pDbWu1q7Sr1KukqzyPn55GbmAkQ2IYWwmIMGErgAYZCysbOwcnFzcPLx8/AKCQsIiomLiEpJS0jKycgzyDAqKSsoqqmrqGppa2jq6evoGhkbGJqZm5haWVtY2DLZ29gwOjk7OLq5u7h6eXt4+vn7+AYFBwSGhYeERkUALogg7MhbBjEGXK0XmRIPJsvKq6opKAmbGJ2YypKVnxGUxJAEAJbVrG3jarFXlmutGDB2HluEyuCDfudlu47EvM9tx0suL32cX7aXf5fYZ/DRyyv/6aD1yskylhWhGo5GOjqQJK0OsluMoIXr5u5qcf8mNxY9jvmnzbJJuUL4cc6WZ/TGshtXqql6xHYdVwirU7Z6yVJgGHluGKd3wuGJojfjPOa7NfNybtUbDaDVa+CR2tGPnMfHcXOzw08Qmviuru0lCRd8oW+NZqAY74qtyfhWWcBYTQOQZ8ehcnEJDcjYqq9uyup3aaZIkNltukmhWc/F6knhcNQQ/tWYGQPVwLua6DrihA8BP2Eo9rhkNXLRW1FcCkpN+cPnEebTK1ZYDfUg55fBdXK03kdZ8nM7Z2UIS6wSnTxdjHNmS1CCyx3XDQ6HbU5U+NQ1sdaBBsQ4yrqxssLUK/1xveTxkSECOhau/19QKiQd+miZikrZLkMOmNzSmwihoOVtkj5jd5I/2vViuhh4ZpxTlOqO1AVPKFjaZbIDcRMnVps7a/RBjh1zny7ilcOugS+OmTKg3NlqNYsfWTtJyPJ4wRaUS8VrW9njSwJCIx8MXch0LHSQ8IbsF7Caw83gKbqZLSggMrCIuT4Yp5SnxJEjzeNq8XIqL2lo7ucwT6/pHj0+Yl/Pxy8W+0nagP1XqT5pCTYXLcTE1hfplAU+50qRo3aAYl48JfLB1VhPymIsLIQ/ZBnlOZdiWo3Ftc233z3EF/6UmQSZd4O9Cu7tUhxSwUOqUBlshq8c9y7LKWp0yqlCVaCnmKR1QxGM64FEETgNKEf6X6WlLTaogyNPiZMPl71z7Emg6jdxOuR6fMYUl8ix4FnnOFFWR501RE3nBFHWRF03REGmbYkjkO6YYFvmuKUZEfmjIZ+szj1vl4iuP3XLxtcfvGcUT7r/A+D4wvgffBIwiHWAUeQkYRWpgFHkZGEU2gVHkDDCK/AAYRc4Co0hj6GHZap5B2OmUQoEQSjkg2Ui/+YY9lz1M0hVD1KVDKqGzu1qesSMt0EoeX90qj3WWr7SKunUmiq8mZYLXSmYOPb5u6FaJ9wbsrGh/EEwYgh+sV2d/VvLTfqzvFtetM8joJvIH4IPxsgqzux7fMv65hx7fPs4UTbgK8zsoiTrbJJ+6Mryg8nmed3UX0x6vIH+2MNG3LevMacS/a4AKA4K/0oRHQnc99zXRwxy+7m0fk9/3wTUdiBVxKvP+dD7+qUJVsn+qzFQvJoG8gcMhBqy01h1MH6q5By2Bjf5jXwnTNc3VMFubi7HJbKxTeYP23sk0IfSM7qCGGhE6yAuijJLSQUG0RNE4SSG5joaq7/MKj5JRswSBz7n+K7cdCyW/LxwQNPWZAQf6Iah5IGrkqgOcdXRXgkm1Hoq+TGDAqFqKfXqoHRuaTSWcbVPeaGL3fOe3b79QB3XwoDJa2vjRAEG4WZpUvp73prhZysdGky+sdfAwP0z8wrdOYwCfbKnndqqf7rY+0OaZ4bvugU4Dw/fcHIGlWYB2vw3K4rMP03Crw8DuVgtqtLqv7w7ctfFo4A3/F63Y/b+6T+BndwFL4wnZUW8nGWCMhIzN/DuSv6MHBOi7u1PuIuUz/eHsKZnDUz7fxCx+dIj+uSmUdfoU38L6heE7EC+FtQi8UicHikHYV0bakV9i+dr08M5g8QYLSxZvTc8qNX/1WNdmDgNAFISPoY+LBA0ccywzs2VmLkvQoHdWkM3z9ycWOxL6SwbzJ5HFEDkMkccQBcyXRBFDlDBEGUNUMD8SVQxRwxB1DNHA/Es0MUQLQ7QxRAfzLdHFED0M0ccQruU9p4d5wPDepYZaH1IjvZ5kfMoYW95LqicM1VNK9YxSOre815QuGEqXlNIVpXRteW8p3TCUbrWgOy3o3gofb66Sj6dv03twvesn55S8U+wzK3FNYwB42mPw3sFwIihiIyNjX+QGxp0cDBwMyQUbGdicNkkwMmiBGJu5ORg5ICxRNjCL3WkXMwMDIwMnkM3htIvBAcJmZnDZqMLYERixwaEjYiNzistGNRBvF0cDAyOLQ0dySARISSQQbOblYOTR2sH4v3UDS+9GJqA+1hQXAHdZJMsAAHjaY8AEcUDoy+DLtI2BgWkb4x4Ghv92TKJA9un/r5gOMp75/+2/MYgPANTbDFwAAHjaTMwBBgJRFIXh/947bxLea4JiUICAQLSKYnYQMEBLaRExG2gLrSC0iHYRdfAO+Bz8wMoKxn8DyMaCQXZmXORgxyg3rLnJicwkt9Wf7chDLvT2kbuqv/z1A2vmwN1DNjY+yU7xpxyc/SU37GMrJ/o4yW31Z7/GKBcO6S13Vf/bGhX1JK8E0fPct/sP5lGSshTCgxJjQjQkRCLREuObWctAV0tpugvIv7/jwFXlatQvXzabOTl75szszD8Q//Nlta3dPA90lDWokyQnzU7STuiCvZuXlGaOy4xjGpaZiQ7F7e6L+Jguc1tSP7NTXmwv7YTv7lNb+pRrN7vh+aqw9WBZhsGynjN1TEI9OlA197Iv6FuuvVuWlJjEdL/oOP60ZTo63Ww2ZmFD/mifjXRw1vjRN/aJT0LZHbNLjqONCzndsOd6zVN6+Rhd2QUffslE0SR3fidIl7OwsTWTEIXLuPSSuiqnXFPImdLhiMYVlzvxaCeI6b9vt03biNlbLtm1dYV9KJi0G0uD/jXZ0IvyEKpeq+Wz2lXBG++Kl7Zb48Ho6xecY4kKW9RwmCNHAOEIGRoSO0jknKCpqC2XcAGGV20JQopMMAvOwIiFGSo2iL51bqP76nws3KVorLr2kQmagrHAVniLieA73CNVhZfI6jvDjaA5VihghRlIzRJBYy08ay2jnfdA33g1D9x+p77VF5mN9kBS0+jt/nLG8c+nrD6n2OgxWMAiiP+jxGeY/QzO0Ph72zio+LRX2feaD5VjRKJ02hfpxLzOaQ0WPb1ujHAFK9n87ZYMIjkT8XPwHxxSQTNBG90Hg/aKQmIGVp9d1ZXgqTqSdsaaPcRI4hiVat87jz44xKD/bbsNo1c7+7QuwWIt1wlv8YBCubfZWK3Yx7XigB4i4YOcSnBLjkemM6gQBButXrxOu4Wx5I/+JOdfy6BlsHjabMFDQi4AGADA+X5bz7b9P9u2Mi8S912hbdt8k8yT1AWakQB2RjXtZRAhISklLSMrJ6+gqKSsoqqmrmGf/Q446JDDjjjqmONOOOm0s84574KLLrnsiquuue6Gm2657Y6mu+6574GHHnnsiaeeee6FV1574533Pvjok8+++Oqb73746Zff/vjrn/9atGrTrkOnLt36I2HMqA2LkbRkO1KRjoxVa9Yt24ysichFPgpRjFKUoxJV46ZMmzNvxmzUoh6N7O5K8zINDBwNwLSRsTmEdraE0o5Q2onVPTE3N5E1JCO1JJHNJzE3KSWRKSKTKSCTNTgzPTeRPbSgODMnP485ICOTOaA4E6TN1c3NBUq7Qmk3APT0QvQAAQAB//8ADw==",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff": {
"text": "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",
"title": "$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff",
"type": "application/font-woff"
},
"$:/plugins/tiddlywiki/katex/katex-logo": {
"title": "$:/plugins/tiddlywiki/katex/katex-logo",
"text": "$$\\KaTeX$$\n"
},
"$:/plugins/tiddlywiki/katex/latex-parser.js": {
"title": "$:/plugins/tiddlywiki/katex/latex-parser.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/latex-parser.js\ntype: application/javascript\nmodule-type: wikirule\n\nWiki text inline rule for LaTeX. For example:\n\n```\n\t$$latex-goes-here$$\n```\n\nThis wikiparser can be modified using the rules eg:\n\n```\n\\rules except latex-parser \n\\rules only latex-parser \n```\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.name = \"latex-parser\";\nexports.types = {inline: true};\n\nexports.init = function(parser) {\n\tthis.parser = parser;\n\t// Regexp to match\n\tthis.matchRegExp = /\\$\\$(?!\\$)/mg;\n};\n\nexports.parse = function() {\n\t// Move past the match\n\tthis.parser.pos = this.matchRegExp.lastIndex;\n\tvar reEnd = /\\$\\$/mg;\n\t// Look for the end marker\n\treEnd.lastIndex = this.parser.pos;\n\tvar match = reEnd.exec(this.parser.source),\n\t\ttext,\n\t\tdisplayMode;\n\t// Process the text\n\tif(match) {\n\t\ttext = this.parser.source.substring(this.parser.pos,match.index);\n\t\tdisplayMode = text.indexOf('\\n') != -1;\n\t\tthis.parser.pos = match.index + match[0].length;\n\t} else {\n\t\ttext = this.parser.source.substr(this.parser.pos);\n\t\tdisplayMode = false;\n\t\tthis.parser.pos = this.parser.sourceLength;\n\t}\n\treturn [{\n\t\ttype: \"latex\",\n\t\tattributes: {\n\t\t\ttext: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: text\n\t\t\t},\n\t\t\tdisplayMode: {\n\t\t\t\ttype: \"text\",\n\t\t\t\tvalue: displayMode ? \"true\" : \"false\"\n\t\t\t}\n\t\t}\n\t}];\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "wikirule"
},
"$:/plugins/tiddlywiki/katex/readme": {
"title": "$:/plugins/tiddlywiki/katex/readme",
"text": "This is a TiddlyWiki plugin for mathematical and chemical typesetting based on [ext[KaTeX from Khan Academy|http://khan.github.io/KaTeX/]] (v0.10.2) and [ext[mhchem|https://github.com/mhchem/MathJax-mhchem]] through a [ext[Katex extension|https://github.com/KaTeX/KaTeX/tree/master/contrib/mhchem]].\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/katex]]\n"
},
"$:/plugins/tiddlywiki/katex/snippets/logo": {
"title": "$:/plugins/tiddlywiki/katex/snippets/logo",
"tags": "$:/tags/KaTeX/Snippet",
"text": "$$\\KaTeX$$\n"
},
"$:/plugins/tiddlywiki/katex/styles": {
"title": "$:/plugins/tiddlywiki/katex/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n/* KaTeX styles */\n\n{{$:/plugins/tiddlywiki/katex/katex.min.css}}\n\n/* Force text-rendering (see https://github.com/Jermolene/TiddlyWiki5/issues/2500) */\n\n.katex {\n text-rendering: auto;\n}\n\n/* Avoid TW5's max-width: 100% */\n\n.katex svg {\n max-width: initial;\n}\n\n/* Override font URLs */\n\n@font-face {\n\tfont-family: KaTeX_AMS;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_AMS-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Caligraphic;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Caligraphic-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Fraktur;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Fraktur-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-BoldItalic.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_Main;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Main-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Math;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Math-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_SansSerif;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Bold.woff'>>) format('woff');\n\tfont-weight: 700;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_SansSerif;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Italic.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: italic;\n}\n\n@font-face {\n\tfont-family: KaTeX_SansSerif;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_SansSerif-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Script;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Script-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size1;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size1-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size2;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size2-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size3;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size3-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Size4;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Size4-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n@font-face {\n\tfont-family: KaTeX_Typewriter;\n\tsrc: url(<<datauri '$:/plugins/tiddlywiki/katex/fonts/KaTeX_Typewriter-Regular.woff'>>) format('woff');\n\tfont-weight: 400;\n\tfont-style: normal;\n}\n\n"
},
"$:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex-dropdown": {
"title": "$:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex-dropdown",
"text": "\\define toolbar-button-stamp-inner()\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"replace-selection\"\n\ttext={{$(snippetTitle)$}}\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<$view tiddler=<<snippetTitle>> field=\"caption\" mode=\"inline\">\n\n<$transclude tiddler=<<snippetTitle>> mode=\"inline\"/>\n\n</$view>\n\n</$button>\n\\end\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/KaTeX/Snippet]!has[draft.of]sort[caption]]\" variable=\"snippetTitle\">\n\n<<toolbar-button-stamp-inner>>\n\n</$list>\n\n----\n\n<$button tag=\"a\">\n\n<$action-sendmessage\n\t$message=\"tm-new-tiddler\"\n\ttags=\"$:/tags/KaTeX/Snippet\"\n\ttext=\"\"\"$$snippet$$\"\"\"\n\tcaption=\"description shown in dropdown\"\n/>\n\n<$action-deletetiddler\n\t$tiddler=<<dropdown-state>>\n/>\n\n<em>\n\n<$text text={{$:/language/Buttons/Stamp/Caption/New}}/>\n\n</em>\n\n</$button>\n\n[ext[KaTeX functions catalogue|https://khan.github.io/KaTeX/function-support.html]]\n\n[ext[Chemical equations reference|https://mhchem.github.io/MathJax-mhchem/]]\n"
},
"$:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex": {
"title": "$:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/plugins/tiddlywiki/katex/katex-logo",
"caption": "katex",
"description": "create and insert preconfigured KaTeX snippets",
"condition": "[<targetTiddler>!is[image]]",
"dropdown": "$:/plugins/tiddlywiki/katex/ui/EditorToolbar/katex-dropdown",
"text": ""
},
"$:/plugins/tiddlywiki/katex/usage": {
"title": "$:/plugins/tiddlywiki/katex/usage",
"text": "!! Reference:\n\n# Mathematical typesetting: [ext[https://katex.org/docs/supported.html]]\n# Chemical typesetting: [ext[https://mhchem.github.io/MathJax-mhchem/]]\n\n<hr>\n\nThe usual way to include ~LaTeX is to use `$$`. For example:\n\n```\n$$\\displaystyle f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi$$\n```\n\nSingle line equations will render in inline mode. If there are newlines between the `$$` delimiters, the equations will be rendered in display mode.\n\nThe underlying widget can also be used directly, giving more flexibility:\n\n```\n<$latex text=\"f(x) = \\int_{-\\infty}^\\infty\\hat f(\\xi)\\,e^{2 \\pi i \\xi x}\\,d\\xi\" displayMode=\"true\"></$latex>\n```\n\nThe KaTeX widget is provided under the name `<$latex>` and is also available under the alias `<$katex>`. It's better to use the generic `<$latex>` name unless you are running multiple ~LaTeX plugins and wish to specifically target KaTeX.\n"
},
"$:/plugins/tiddlywiki/katex/wrapper.js": {
"title": "$:/plugins/tiddlywiki/katex/wrapper.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/katex/wrapper.js\ntype: application/javascript\nmodule-type: widget\n\nWrapper for `katex.min.js` that provides a `<$latex>` widget. It is also available under the alias `<$katex>`\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar katex = require(\"$:/plugins/tiddlywiki/katex/katex.min.js\"),\n chemParse = require(\"$:/plugins/tiddlywiki/katex/mhchem.min.js\"),\n\tWidget = require(\"$:/core/modules/widgets/widget.js\").widget;\n// Add \\ce, \\pu, and \\tripledash to the KaTeX macros.\nkatex.__defineMacro(\"\\\\ce\", function(context) {\n return chemParse(context.consumeArgs(1)[0], \"ce\")\n});\nkatex.__defineMacro(\"\\\\pu\", function(context) {\n return chemParse(context.consumeArgs(1)[0], \"pu\");\n});\n// Needed for \\bond for the ~ forms\n// Raise by 2.56mu, not 2mu. We're raising a hyphen-minus, U+002D, not \n// a mathematical minus, U+2212. So we need that extra 0.56.\nkatex.__defineMacro(\"\\\\tripledash\", \"{\\\\vphantom{-}\\\\raisebox{2.56mu}{$\\\\mkern2mu\"\n+ \"\\\\tiny\\\\text{-}\\\\mkern1mu\\\\text{-}\\\\mkern1mu\\\\text{-}\\\\mkern2mu$}}\");\n\nvar KaTeXWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nKaTeXWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nKaTeXWidget.prototype.render = function(parent,nextSibling) {\n\t// Housekeeping\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Get the source text\n\tvar text = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\tvar displayMode = this.getAttribute(\"displayMode\",this.parseTreeNode.displayMode || \"false\") === \"true\";\n\t// Render it into a span\n\tvar span = this.document.createElement(\"span\"),\n\t\toptions = {throwOnError: false, displayMode: displayMode};\n\ttry {\n\t\tif(!this.document.isTiddlyWikiFakeDom) {\n\t\t\tkatex.render(text,span,options);\n\t\t} else {\n\t\t\tspan.innerHTML = katex.renderToString(text,options);\n\t\t}\n\t} catch(ex) {\n\t\tspan.className = \"tc-error\";\n\t\tspan.textContent = ex;\n\t}\n\t// Insert it into the DOM\n\tparent.insertBefore(span,nextSibling);\n\tthis.domNodes.push(span);\n};\n\n/*\nCompute the internal state of the widget\n*/\nKaTeXWidget.prototype.execute = function() {\n\t// Nothing to do for a katex widget\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nKaTeXWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.latex = KaTeXWidget;\nexports.katex = KaTeXWidget;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "widget"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/markdown/EditorToolbar/bold": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/bold",
"list-after": "$:/core/ui/EditorToolbar/bold",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/bold",
"caption": "{{$:/language/Buttons/Bold/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Bold/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((bold))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"**\"\n\tsuffix=\"**\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-1",
"list-after": "$:/core/ui/EditorToolbar/heading-1",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-1",
"caption": "{{$:/language/Buttons/Heading1/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading1/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-1))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-2",
"list-after": "$:/core/ui/EditorToolbar/heading-2",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-2",
"caption": "{{$:/language/Buttons/Heading2/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading2/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-2))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"2\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-3",
"list-after": "$:/core/ui/EditorToolbar/heading-3",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-3",
"caption": "{{$:/language/Buttons/Heading3/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading3/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-3))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"3\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-4",
"list-after": "$:/core/ui/EditorToolbar/heading-4",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-4",
"caption": "{{$:/language/Buttons/Heading4/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading4/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-4))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"4\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-5",
"list-after": "$:/core/ui/EditorToolbar/heading-5",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-5",
"caption": "{{$:/language/Buttons/Heading5/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading5/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-5))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"5\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/heading-6",
"list-after": "$:/core/ui/EditorToolbar/heading-6",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/heading-6",
"caption": "{{$:/language/Buttons/Heading6/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Heading6/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((heading-6))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"#\"\n\tcount=\"6\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/italic": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/italic",
"list-after": "$:/core/ui/EditorToolbar/italic",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/italic",
"caption": "{{$:/language/Buttons/Italic/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Italic/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((italic))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"*\"\n\tsuffix=\"*\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-bullet",
"list-after": "$:/core/ui/EditorToolbar/list-bullet",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-bullet",
"caption": "{{$:/language/Buttons/ListBullet/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListBullet/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((list-bullet))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"*\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/list-number",
"list-after": "$:/core/ui/EditorToolbar/list-number",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/list-number",
"caption": "{{$:/language/Buttons/ListNumber/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/ListNumber/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((list-number))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\"1.\"\n\tcount=\"1\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/mono-line",
"list-after": "$:/core/ui/EditorToolbar/mono-line",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/mono-line",
"caption": "{{$:/language/Buttons/MonoLine/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/MonoLine/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((mono-line))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"wrap-selection\"\n\tprefix=\"`\"\n\tsuffix=\"`\"\n/>\n"
},
"$:/plugins/tiddlywiki/markdown/EditorToolbar/quote": {
"title": "$:/plugins/tiddlywiki/markdown/EditorToolbar/quote",
"list-after": "$:/core/ui/EditorToolbar/quote",
"tags": "$:/tags/EditorToolbar",
"icon": "$:/core/images/quote",
"caption": "{{$:/language/Buttons/Quote/Caption}} (Markdown)",
"description": "{{$:/language/Buttons/Quote/Hint}}",
"condition": "[<targetTiddler>type[text/x-markdown]]",
"shortcuts": "((quote))",
"text": "<$action-sendmessage\n\t$message=\"tm-edit-text-operation\"\n\t$param=\"prefix-lines\"\n\tcharacter=\">\"\n\tcount=\"1\"\n/>\n"
},
"$:/config/markdown/breaks": {
"title": "$:/config/markdown/breaks",
"text": "false"
},
"$:/config/markdown/linkNewWindow": {
"title": "$:/config/markdown/linkNewWindow",
"text": "true"
},
"$:/config/markdown/linkify": {
"title": "$:/config/markdown/linkify",
"text": "false"
},
"$:/config/markdown/quotes": {
"title": "$:/config/markdown/quotes",
"text": "“”‘’"
},
"$:/config/markdown/renderWikiText": {
"title": "$:/config/markdown/renderWikiText",
"text": "true"
},
"$:/config/markdown/renderWikiTextPragma": {
"title": "$:/config/markdown/renderWikiTextPragma",
"text": "\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock"
},
"$:/config/markdown/typographer": {
"title": "$:/config/markdown/typographer",
"text": "false"
},
"$:/language/Docs/Types/text/x-markdown": {
"title": "$:/language/Docs/Types/text/x-markdown",
"description": "Markdown",
"name": "text/x-markdown",
"group": "Text"
},
"$:/plugins/tiddlywiki/markdown/remarkable.js": {
"text": "!function(e,t){\"object\"==typeof exports&&\"undefined\"!=typeof module?t(exports):\"function\"==typeof define&&define.amd?define([\"exports\"],t):t((e=e||self).remarkable={})}(this,function(e){\"use strict\";var t={Aacute:\"Á\",aacute:\"á\",Abreve:\"Ă\",abreve:\"ă\",ac:\"∾\",acd:\"∿\",acE:\"∾̳\",Acirc:\"Â\",acirc:\"â\",acute:\"´\",Acy:\"А\",acy:\"а\",AElig:\"Æ\",aelig:\"æ\",af:\"\",Afr:\"𝔄\",afr:\"𝔞\",Agrave:\"À\",agrave:\"à\",alefsym:\"ℵ\",aleph:\"ℵ\",Alpha:\"Α\",alpha:\"α\",Amacr:\"Ā\",amacr:\"ā\",amalg:\"⨿\",AMP:\"&\",amp:\"&\",And:\"⩓\",and:\"∧\",andand:\"⩕\",andd:\"⩜\",andslope:\"⩘\",andv:\"⩚\",ang:\"∠\",ange:\"⦤\",angle:\"∠\",angmsd:\"∡\",angmsdaa:\"⦨\",angmsdab:\"⦩\",angmsdac:\"⦪\",angmsdad:\"⦫\",angmsdae:\"⦬\",angmsdaf:\"⦭\",angmsdag:\"⦮\",angmsdah:\"⦯\",angrt:\"∟\",angrtvb:\"⊾\",angrtvbd:\"⦝\",angsph:\"∢\",angst:\"Å\",angzarr:\"⍼\",Aogon:\"Ą\",aogon:\"ą\",Aopf:\"𝔸\",aopf:\"𝕒\",ap:\"≈\",apacir:\"⩯\",apE:\"⩰\",ape:\"≊\",apid:\"≋\",apos:\"'\",ApplyFunction:\"\",approx:\"≈\",approxeq:\"≊\",Aring:\"Å\",aring:\"å\",Ascr:\"𝒜\",ascr:\"𝒶\",Assign:\"≔\",ast:\"*\",asymp:\"≈\",asympeq:\"≍\",Atilde:\"Ã\",atilde:\"ã\",Auml:\"Ä\",auml:\"ä\",awconint:\"∳\",awint:\"⨑\",backcong:\"≌\",backepsilon:\"϶\",backprime:\"‵\",backsim:\"∽\",backsimeq:\"⋍\",Backslash:\"∖\",Barv:\"⫧\",barvee:\"⊽\",Barwed:\"⌆\",barwed:\"⌅\",barwedge:\"⌅\",bbrk:\"⎵\",bbrktbrk:\"⎶\",bcong:\"≌\",Bcy:\"Б\",bcy:\"б\",bdquo:\"„\",becaus:\"∵\",Because:\"∵\",because:\"∵\",bemptyv:\"⦰\",bepsi:\"϶\",bernou:\"ℬ\",Bernoullis:\"ℬ\",Beta:\"Β\",beta:\"β\",beth:\"ℶ\",between:\"≬\",Bfr:\"𝔅\",bfr:\"𝔟\",bigcap:\"⋂\",bigcirc:\"◯\",bigcup:\"⋃\",bigodot:\"⨀\",bigoplus:\"⨁\",bigotimes:\"⨂\",bigsqcup:\"⨆\",bigstar:\"★\",bigtriangledown:\"▽\",bigtriangleup:\"△\",biguplus:\"⨄\",bigvee:\"⋁\",bigwedge:\"⋀\",bkarow:\"⤍\",blacklozenge:\"⧫\",blacksquare:\"▪\",blacktriangle:\"▴\",blacktriangledown:\"▾\",blacktriangleleft:\"◂\",blacktriangleright:\"▸\",blank:\"␣\",blk12:\"▒\",blk14:\"░\",blk34:\"▓\",block:\"█\",bne:\"=⃥\",bnequiv:\"≡⃥\",bNot:\"⫭\",bnot:\"⌐\",Bopf:\"𝔹\",bopf:\"𝕓\",bot:\"⊥\",bottom:\"⊥\",bowtie:\"⋈\",boxbox:\"⧉\",boxDL:\"╗\",boxDl:\"╖\",boxdL:\"╕\",boxdl:\"┐\",boxDR:\"╔\",boxDr:\"╓\",boxdR:\"╒\",boxdr:\"┌\",boxH:\"═\",boxh:\"─\",boxHD:\"╦\",boxHd:\"╤\",boxhD:\"╥\",boxhd:\"┬\",boxHU:\"╩\",boxHu:\"╧\",boxhU:\"╨\",boxhu:\"┴\",boxminus:\"⊟\",boxplus:\"⊞\",boxtimes:\"⊠\",boxUL:\"╝\",boxUl:\"╜\",boxuL:\"╛\",boxul:\"┘\",boxUR:\"╚\",boxUr:\"╙\",boxuR:\"╘\",boxur:\"└\",boxV:\"║\",boxv:\"│\",boxVH:\"╬\",boxVh:\"╫\",boxvH:\"╪\",boxvh:\"┼\",boxVL:\"╣\",boxVl:\"╢\",boxvL:\"╡\",boxvl:\"┤\",boxVR:\"╠\",boxVr:\"╟\",boxvR:\"╞\",boxvr:\"├\",bprime:\"‵\",Breve:\"˘\",breve:\"˘\",brvbar:\"¦\",Bscr:\"ℬ\",bscr:\"𝒷\",bsemi:\"⁏\",bsim:\"∽\",bsime:\"⋍\",bsol:\"\\\\\",bsolb:\"⧅\",bsolhsub:\"⟈\",bull:\"•\",bullet:\"•\",bump:\"≎\",bumpE:\"⪮\",bumpe:\"≏\",Bumpeq:\"≎\",bumpeq:\"≏\",Cacute:\"Ć\",cacute:\"ć\",Cap:\"⋒\",cap:\"∩\",capand:\"⩄\",capbrcup:\"⩉\",capcap:\"⩋\",capcup:\"⩇\",capdot:\"⩀\",CapitalDifferentialD:\"ⅅ\",caps:\"∩︀\",caret:\"⁁\",caron:\"ˇ\",Cayleys:\"ℭ\",ccaps:\"⩍\",Ccaron:\"Č\",ccaron:\"č\",Ccedil:\"Ç\",ccedil:\"ç\",Ccirc:\"Ĉ\",ccirc:\"ĉ\",Cconint:\"∰\",ccups:\"⩌\",ccupssm:\"⩐\",Cdot:\"Ċ\",cdot:\"ċ\",cedil:\"¸\",Cedilla:\"¸\",cemptyv:\"⦲\",cent:\"¢\",CenterDot:\"·\",centerdot:\"·\",Cfr:\"ℭ\",cfr:\"𝔠\",CHcy:\"Ч\",chcy:\"ч\",check:\"✓\",checkmark:\"✓\",Chi:\"Χ\",chi:\"χ\",cir:\"○\",circ:\"ˆ\",circeq:\"≗\",circlearrowleft:\"↺\",circlearrowright:\"↻\",circledast:\"⊛\",circledcirc:\"⊚\",circleddash:\"⊝\",CircleDot:\"⊙\",circledR:\"®\",circledS:\"Ⓢ\",CircleMinus:\"⊖\",CirclePlus:\"⊕\",CircleTimes:\"⊗\",cirE:\"⧃\",cire:\"≗\",cirfnint:\"⨐\",cirmid:\"⫯\",cirscir:\"⧂\",ClockwiseContourIntegral:\"∲\",CloseCurlyDoubleQuote:\"”\",CloseCurlyQuote:\"’\",clubs:\"♣\",clubsuit:\"♣\",Colon:\"∷\",colon:\":\",Colone:\"⩴\",colone:\"≔\",coloneq:\"≔\",comma:\",\",commat:\"@\",comp:\"∁\",compfn:\"∘\",complement:\"∁\",complexes:\"ℂ\",cong:\"≅\",congdot:\"⩭\",Congruent:\"≡\",Conint:\"∯\",conint:\"∮\",ContourIntegral:\"∮\",Copf:\"ℂ\",copf:\"𝕔\",coprod:\"∐\",Coproduct:\"∐\",COPY:\"©\",copy:\"©\",copysr:\"℗\",CounterClockwiseContourIntegral:\"∳\",crarr:\"↵\",Cross:\"⨯\",cross:\"✗\",Cscr:\"𝒞\",cscr:\"𝒸\",csub:\"⫏\",csube:\"⫑\",csup:\"⫐\",csupe:\"⫒\",ctdot:\"⋯\",cudarrl:\"⤸\",cudarrr:\"⤵\",cuepr:\"⋞\",cuesc:\"⋟\",cularr:\"↶\",cularrp:\"⤽\",Cup:\"⋓\",cup:\"∪\",cupbrcap:\"⩈\",CupCap:\"≍\",cupcap:\"⩆\",cupcup:\"⩊\",cupdot:\"⊍\",cupor:\"⩅\",cups:\"∪︀\",curarr:\"↷\",curarrm:\"⤼\",curlyeqprec:\"⋞\",curlyeqsucc:\"⋟\",curlyvee:\"⋎\",curlywedge:\"⋏\",curren:\"¤\",curvearrowleft:\"↶\",curvearrowright:\"↷\",cuvee:\"⋎\",cuwed:\"⋏\",cwconint:\"∲\",cwint:\"∱\",cylcty:\"⌭\",Dagger:\"‡\",dagger:\"†\",daleth:\"ℸ\",Darr:\"↡\",dArr:\"⇓\",darr:\"↓\",dash:\"‐\",Dashv:\"⫤\",dashv:\"⊣\",dbkarow:\"⤏\",dblac:\"˝\",Dcaron:\"Ď\",dcaron:\"ď\",Dcy:\"Д\",dcy:\"д\",DD:\"ⅅ\",dd:\"ⅆ\",ddagger:\"‡\",ddarr:\"⇊\",DDotrahd:\"⤑\",ddotseq:\"⩷\",deg:\"°\",Del:\"∇\",Delta:\"Δ\",delta:\"δ\",demptyv:\"⦱\",dfisht:\"⥿\",Dfr:\"𝔇\",dfr:\"𝔡\",dHar:\"⥥\",dharl:\"⇃\",dharr:\"⇂\",DiacriticalAcute:\"´\",DiacriticalDot:\"˙\",DiacriticalDoubleAcute:\"˝\",DiacriticalGrave:\"`\",DiacriticalTilde:\"˜\",diam:\"⋄\",Diamond:\"⋄\",diamond:\"⋄\",diamondsuit:\"♦\",diams:\"♦\",die:\"¨\",DifferentialD:\"ⅆ\",digamma:\"ϝ\",disin:\"⋲\",div:\"÷\",divide:\"÷\",divideontimes:\"⋇\",divonx:\"⋇\",DJcy:\"Ђ\",djcy:\"ђ\",dlcorn:\"⌞\",dlcrop:\"⌍\",dollar:\"$\",Dopf:\"𝔻\",dopf:\"𝕕\",Dot:\"¨\",dot:\"˙\",DotDot:\"⃜\",doteq:\"≐\",doteqdot:\"≑\",DotEqual:\"≐\",dotminus:\"∸\",dotplus:\"∔\",dotsquare:\"⊡\",doublebarwedge:\"⌆\",DoubleContourIntegral:\"∯\",DoubleDot:\"¨\",DoubleDownArrow:\"⇓\",DoubleLeftArrow:\"⇐\",DoubleLeftRightArrow:\"⇔\",DoubleLeftTee:\"⫤\",DoubleLongLeftArrow:\"⟸\",DoubleLongLeftRightArrow:\"⟺\",DoubleLongRightArrow:\"⟹\",DoubleRightArrow:\"⇒\",DoubleRightTee:\"⊨\",DoubleUpArrow:\"⇑\",DoubleUpDownArrow:\"⇕\",DoubleVerticalBar:\"∥\",DownArrow:\"↓\",Downarrow:\"⇓\",downarrow:\"↓\",DownArrowBar:\"⤓\",DownArrowUpArrow:\"⇵\",DownBreve:\"̑\",downdownarrows:\"⇊\",downharpoonleft:\"⇃\",downharpoonright:\"⇂\",DownLeftRightVector:\"⥐\",DownLeftTeeVector:\"⥞\",DownLeftVector:\"↽\",DownLeftVectorBar:\"⥖\",DownRightTeeVector:\"⥟\",DownRightVector:\"⇁\",DownRightVectorBar:\"⥗\",DownTee:\"⊤\",DownTeeArrow:\"↧\",drbkarow:\"⤐\",drcorn:\"⌟\",drcrop:\"⌌\",Dscr:\"𝒟\",dscr:\"𝒹\",DScy:\"Ѕ\",dscy:\"ѕ\",dsol:\"⧶\",Dstrok:\"Đ\",dstrok:\"đ\",dtdot:\"⋱\",dtri:\"▿\",dtrif:\"▾\",duarr:\"⇵\",duhar:\"⥯\",dwangle:\"⦦\",DZcy:\"Џ\",dzcy:\"џ\",dzigrarr:\"⟿\",Eacute:\"É\",eacute:\"é\",easter:\"⩮\",Ecaron:\"Ě\",ecaron:\"ě\",ecir:\"≖\",Ecirc:\"Ê\",ecirc:\"ê\",ecolon:\"≕\",Ecy:\"Э\",ecy:\"э\",eDDot:\"⩷\",Edot:\"Ė\",eDot:\"≑\",edot:\"ė\",ee:\"ⅇ\",efDot:\"≒\",Efr:\"𝔈\",efr:\"𝔢\",eg:\"⪚\",Egrave:\"È\",egrave:\"è\",egs:\"⪖\",egsdot:\"⪘\",el:\"⪙\",Element:\"∈\",elinters:\"⏧\",ell:\"ℓ\",els:\"⪕\",elsdot:\"⪗\",Emacr:\"Ē\",emacr:\"ē\",empty:\"∅\",emptyset:\"∅\",EmptySmallSquare:\"◻\",emptyv:\"∅\",EmptyVerySmallSquare:\"▫\",emsp:\" \",emsp13:\" \",emsp14:\" \",ENG:\"Ŋ\",eng:\"ŋ\",ensp:\" \",Eogon:\"Ę\",eogon:\"ę\",Eopf:\"𝔼\",eopf:\"𝕖\",epar:\"⋕\",eparsl:\"⧣\",eplus:\"⩱\",epsi:\"ε\",Epsilon:\"Ε\",epsilon:\"ε\",epsiv:\"ϵ\",eqcirc:\"≖\",eqcolon:\"≕\",eqsim:\"≂\",eqslantgtr:\"⪖\",eqslantless:\"⪕\",Equal:\"⩵\",equals:\"=\",EqualTilde:\"≂\",equest:\"≟\",Equilibrium:\"⇌\",equiv:\"≡\",equivDD:\"⩸\",eqvparsl:\"⧥\",erarr:\"⥱\",erDot:\"≓\",Escr:\"ℰ\",escr:\"ℯ\",esdot:\"≐\",Esim:\"⩳\",esim:\"≂\",Eta:\"Η\",eta:\"η\",ETH:\"Ð\",eth:\"ð\",Euml:\"Ë\",euml:\"ë\",euro:\"€\",excl:\"!\",exist:\"∃\",Exists:\"∃\",expectation:\"ℰ\",ExponentialE:\"ⅇ\",exponentiale:\"ⅇ\",fallingdotseq:\"≒\",Fcy:\"Ф\",fcy:\"ф\",female:\"♀\",ffilig:\"ffi\",fflig:\"ff\",ffllig:\"ffl\",Ffr:\"𝔉\",ffr:\"𝔣\",filig:\"fi\",FilledSmallSquare:\"◼\",FilledVerySmallSquare:\"▪\",fjlig:\"fj\",flat:\"♭\",fllig:\"fl\",fltns:\"▱\",fnof:\"ƒ\",Fopf:\"𝔽\",fopf:\"𝕗\",ForAll:\"∀\",forall:\"∀\",fork:\"⋔\",forkv:\"⫙\",Fouriertrf:\"ℱ\",fpartint:\"⨍\",frac12:\"½\",frac13:\"⅓\",frac14:\"¼\",frac15:\"⅕\",frac16:\"⅙\",frac18:\"⅛\",frac23:\"⅔\",frac25:\"⅖\",frac34:\"¾\",frac35:\"⅗\",frac38:\"⅜\",frac45:\"⅘\",frac56:\"⅚\",frac58:\"⅝\",frac78:\"⅞\",frasl:\"⁄\",frown:\"⌢\",Fscr:\"ℱ\",fscr:\"𝒻\",gacute:\"ǵ\",Gamma:\"Γ\",gamma:\"γ\",Gammad:\"Ϝ\",gammad:\"ϝ\",gap:\"⪆\",Gbreve:\"Ğ\",gbreve:\"ğ\",Gcedil:\"Ģ\",Gcirc:\"Ĝ\",gcirc:\"ĝ\",Gcy:\"Г\",gcy:\"г\",Gdot:\"Ġ\",gdot:\"ġ\",gE:\"≧\",ge:\"≥\",gEl:\"⪌\",gel:\"⋛\",geq:\"≥\",geqq:\"≧\",geqslant:\"⩾\",ges:\"⩾\",gescc:\"⪩\",gesdot:\"⪀\",gesdoto:\"⪂\",gesdotol:\"⪄\",gesl:\"⋛︀\",gesles:\"⪔\",Gfr:\"𝔊\",gfr:\"𝔤\",Gg:\"⋙\",gg:\"≫\",ggg:\"⋙\",gimel:\"ℷ\",GJcy:\"Ѓ\",gjcy:\"ѓ\",gl:\"≷\",gla:\"⪥\",glE:\"⪒\",glj:\"⪤\",gnap:\"⪊\",gnapprox:\"⪊\",gnE:\"≩\",gne:\"⪈\",gneq:\"⪈\",gneqq:\"≩\",gnsim:\"⋧\",Gopf:\"𝔾\",gopf:\"𝕘\",grave:\"`\",GreaterEqual:\"≥\",GreaterEqualLess:\"⋛\",GreaterFullEqual:\"≧\",GreaterGreater:\"⪢\",GreaterLess:\"≷\",GreaterSlantEqual:\"⩾\",GreaterTilde:\"≳\",Gscr:\"𝒢\",gscr:\"ℊ\",gsim:\"≳\",gsime:\"⪎\",gsiml:\"⪐\",GT:\">\",Gt:\"≫\",gt:\">\",gtcc:\"⪧\",gtcir:\"⩺\",gtdot:\"⋗\",gtlPar:\"⦕\",gtquest:\"⩼\",gtrapprox:\"⪆\",gtrarr:\"⥸\",gtrdot:\"⋗\",gtreqless:\"⋛\",gtreqqless:\"⪌\",gtrless:\"≷\",gtrsim:\"≳\",gvertneqq:\"≩︀\",gvnE:\"≩︀\",Hacek:\"ˇ\",hairsp:\" \",half:\"½\",hamilt:\"ℋ\",HARDcy:\"Ъ\",hardcy:\"ъ\",hArr:\"⇔\",harr:\"↔\",harrcir:\"⥈\",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\",Im:\"ℑ\",Imacr:\"Ī\",imacr:\"ī\",image:\"ℑ\",ImaginaryI:\"ⅈ\",imagline:\"ℐ\",imagpart:\"ℑ\",imath:\"ı\",imof:\"⊷\",imped:\"Ƶ\",Implies:\"⇒\",in:\"∈\",incare:\"℅\",infin:\"∞\",infintie:\"⧝\",inodot:\"ı\",Int:\"∬\",int:\"∫\",intcal:\"⊺\",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:\"«\",Larr:\"↞\",lArr:\"⇐\",larr:\"←\",larrb:\"⇤\",larrbfs:\"⤟\",larrfs:\"⤝\",larrhk:\"↩\",larrlp:\"↫\",larrpl:\"⤹\",larrsim:\"⥳\",larrtl:\"↢\",lat:\"⪫\",lAtail:\"⤛\",latail:\"⤙\",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:\"⟨\",LeftArrow:\"←\",Leftarrow:\"⇐\",leftarrow:\"←\",LeftArrowBar:\"⇤\",LeftArrowRightArrow:\"⇆\",leftarrowtail:\"↢\",LeftCeiling:\"⌈\",LeftDoubleBracket:\"⟦\",LeftDownTeeVector:\"⥡\",LeftDownVector:\"⇃\",LeftDownVectorBar:\"⥙\",LeftFloor:\"⌊\",leftharpoondown:\"↽\",leftharpoonup:\"↼\",leftleftarrows:\"⇇\",LeftRightArrow:\"↔\",Leftrightarrow:\"⇔\",leftrightarrow:\"↔\",leftrightarrows:\"⇆\",leftrightharpoons:\"⇋\",leftrightsquigarrow:\"↭\",LeftRightVector:\"⥎\",LeftTee:\"⊣\",LeftTeeArrow:\"↤\",LeftTeeVector:\"⥚\",leftthreetimes:\"⋋\",LeftTriangle:\"⊲\",LeftTriangleBar:\"⧏\",LeftTriangleEqual:\"⊴\",LeftUpDownVector:\"⥑\",LeftUpTeeVector:\"⥠\",LeftUpVector:\"↿\",LeftUpVectorBar:\"⥘\",LeftVector:\"↼\",LeftVectorBar:\"⥒\",lEg:\"⪋\",leg:\"⋚\",leq:\"≤\",leqq:\"≦\",leqslant:\"⩽\",les:\"⩽\",lescc:\"⪨\",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:\"љ\",Ll:\"⋘\",ll:\"≪\",llarr:\"⇇\",llcorner:\"⌞\",Lleftarrow:\"⇚\",llhard:\"⥫\",lltri:\"◺\",Lmidot:\"Ŀ\",lmidot:\"ŀ\",lmoust:\"⎰\",lmoustache:\"⎰\",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:\"ł\",LT:\"<\",Lt:\"≪\",lt:\"<\",ltcc:\"⪦\",ltcir:\"⩹\",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:\"µ\",mid:\"∣\",midast:\"*\",midcir:\"⫰\",middot:\"·\",minus:\"−\",minusb:\"⊟\",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:\"≉\",natur:\"♮\",natural:\"♮\",naturals:\"ℕ\",nbsp:\" \",nbump:\"≎̸\",nbumpe:\"≏̸\",ncap:\"⩃\",Ncaron:\"Ň\",ncaron:\"ň\",Ncedil:\"Ņ\",ncedil:\"ņ\",ncong:\"≇\",ncongdot:\"⩭̸\",ncup:\"⩂\",Ncy:\"Н\",ncy:\"н\",ndash:\"–\",ne:\"≠\",nearhk:\"⤤\",neArr:\"⇗\",nearr:\"↗\",nearrow:\"↗\",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:\"⋶\",NotLeftTriangle:\"⋪\",NotLeftTriangleBar:\"⧏̸\",NotLeftTriangleEqual:\"⋬\",NotLess:\"≮\",NotLessEqual:\"≰\",NotLessGreater:\"≸\",NotLessLess:\"≪̸\",NotLessSlantEqual:\"⩽̸\",NotLessTilde:\"≴\",NotNestedGreaterGreater:\"⪢̸\",NotNestedLessLess:\"⪡̸\",notni:\"∌\",notniva:\"∌\",notnivb:\"⋾\",notnivc:\"⋽\",NotPrecedes:\"⊀\",NotPrecedesEqual:\"⪯̸\",NotPrecedesSlantEqual:\"⋠\",NotReverseElement:\"∌\",NotRightTriangle:\"⋫\",NotRightTriangleBar:\"⧐̸\",NotRightTriangleEqual:\"⋭\",NotSquareSubset:\"⊏̸\",NotSquareSubsetEqual:\"⋢\",NotSquareSuperset:\"⊐̸\",NotSquareSupersetEqual:\"⋣\",NotSubset:\"⊂⃒\",NotSubsetEqual:\"⊈\",NotSucceeds:\"⊁\",NotSucceedsEqual:\"⪰̸\",NotSucceedsSlantEqual:\"⋡\",NotSucceedsTilde:\"≿̸\",NotSuperset:\"⊃⃒\",NotSupersetEqual:\"⊉\",NotTilde:\"≁\",NotTildeEqual:\"≄\",NotTildeFullEqual:\"≇\",NotTildeTilde:\"≉\",NotVerticalBar:\"∤\",npar:\"∦\",nparallel:\"∦\",nparsl:\"⫽⃥\",npart:\"∂̸\",npolint:\"⨔\",npr:\"⊀\",nprcue:\"⋠\",npre:\"⪯̸\",nprec:\"⊀\",npreceq:\"⪯̸\",nrArr:\"⇏\",nrarr:\"↛\",nrarrc:\"⤳̸\",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:\"⊛\",ocir:\"⊚\",Ocirc:\"Ô\",ocirc:\"ô\",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:\"⊕\",Or:\"⩔\",or:\"∨\",orarr:\"↻\",ord:\"⩝\",order:\"ℴ\",orderof:\"ℴ\",ordf:\"ª\",ordm:\"º\",origof:\"⊶\",oror:\"⩖\",orslope:\"⩗\",orv:\"⩛\",oS:\"Ⓢ\",Oscr:\"𝒪\",oscr:\"ℴ\",Oslash:\"Ø\",oslash:\"ø\",osol:\"⊘\",Otilde:\"Õ\",otilde:\"õ\",Otimes:\"⨷\",otimes:\"⊗\",otimesas:\"⨶\",Ouml:\"Ö\",ouml:\"ö\",ovbar:\"⌽\",OverBar:\"‾\",OverBrace:\"⏞\",OverBracket:\"⎴\",OverParenthesis:\"⏜\",par:\"∥\",para:\"¶\",parallel:\"∥\",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:\"ℏ\",plus:\"+\",plusacir:\"⨣\",plusb:\"⊞\",pluscir:\"⨢\",plusdo:\"∔\",plusdu:\"⨥\",pluse:\"⩲\",PlusMinus:\"±\",plusmn:\"±\",plussim:\"⨦\",plustwo:\"⨧\",pm:\"±\",Poincareplane:\"ℌ\",pointint:\"⨕\",Popf:\"ℙ\",popf:\"𝕡\",pound:\"£\",Pr:\"⪻\",pr:\"≺\",prap:\"⪷\",prcue:\"≼\",prE:\"⪳\",pre:\"⪯\",prec:\"≺\",precapprox:\"⪷\",preccurlyeq:\"≼\",Precedes:\"≺\",PrecedesEqual:\"⪯\",PrecedesSlantEqual:\"≼\",PrecedesTilde:\"≾\",preceq:\"⪯\",precnapprox:\"⪹\",precneqq:\"⪵\",precnsim:\"⋨\",precsim:\"≾\",Prime:\"″\",prime:\"′\",primes:\"ℙ\",prnap:\"⪹\",prnE:\"⪵\",prnsim:\"⋨\",prod:\"∏\",Product:\"∏\",profalar:\"⌮\",profline:\"⌒\",profsurf:\"⌓\",prop:\"∝\",Proportion:\"∷\",Proportional:\"∝\",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:\"»\",Rarr:\"↠\",rArr:\"⇒\",rarr:\"→\",rarrap:\"⥵\",rarrb:\"⇥\",rarrbfs:\"⤠\",rarrc:\"⤳\",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:\"↳\",Re:\"ℜ\",real:\"ℜ\",realine:\"ℛ\",realpart:\"ℜ\",reals:\"ℝ\",rect:\"▭\",REG:\"®\",reg:\"®\",ReverseElement:\"∋\",ReverseEquilibrium:\"⇋\",ReverseUpEquilibrium:\"⥯\",rfisht:\"⥽\",rfloor:\"⌋\",Rfr:\"ℜ\",rfr:\"𝔯\",rHar:\"⥤\",rhard:\"⇁\",rharu:\"⇀\",rharul:\"⥬\",Rho:\"Ρ\",rho:\"ρ\",rhov:\"ϱ\",RightAngleBracket:\"⟩\",RightArrow:\"→\",Rightarrow:\"⇒\",rightarrow:\"→\",RightArrowBar:\"⇥\",RightArrowLeftArrow:\"⇄\",rightarrowtail:\"↣\",RightCeiling:\"⌉\",RightDoubleBracket:\"⟧\",RightDownTeeVector:\"⥝\",RightDownVector:\"⇂\",RightDownVectorBar:\"⥕\",RightFloor:\"⌋\",rightharpoondown:\"⇁\",rightharpoonup:\"⇀\",rightleftarrows:\"⇄\",rightleftharpoons:\"⇌\",rightrightarrows:\"⇉\",rightsquigarrow:\"↝\",RightTee:\"⊢\",RightTeeArrow:\"↦\",RightTeeVector:\"⥛\",rightthreetimes:\"⋌\",RightTriangle:\"⊳\",RightTriangleBar:\"⧐\",RightTriangleEqual:\"⊵\",RightUpDownVector:\"⥏\",RightUpTeeVector:\"⥜\",RightUpVector:\"↾\",RightUpVectorBar:\"⥔\",RightVector:\"⇀\",RightVectorBar:\"⥓\",ring:\"˚\",risingdotseq:\"≓\",rlarr:\"⇄\",rlhar:\"⇌\",rlm:\"\",rmoust:\"⎱\",rmoustache:\"⎱\",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:\"‚\",Sc:\"⪼\",sc:\"≻\",scap:\"⪸\",Scaron:\"Š\",scaron:\"š\",sccue:\"≽\",scE:\"⪴\",sce:\"⪰\",Scedil:\"Ş\",scedil:\"ş\",Scirc:\"Ŝ\",scirc:\"ŝ\",scnap:\"⪺\",scnE:\"⪶\",scnsim:\"⋩\",scpolint:\"⨓\",scsim:\"≿\",Scy:\"С\",scy:\"с\",sdot:\"⋅\",sdotb:\"⊡\",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:\"ь\",sol:\"/\",solb:\"⧄\",solbar:\"⌿\",Sopf:\"𝕊\",sopf:\"𝕤\",spades:\"♠\",spadesuit:\"♠\",spar:\"∥\",sqcap:\"⊓\",sqcaps:\"⊓︀\",sqcup:\"⊔\",sqcups:\"⊔︀\",Sqrt:\"√\",sqsub:\"⊏\",sqsube:\"⊑\",sqsubset:\"⊏\",sqsubseteq:\"⊑\",sqsup:\"⊐\",sqsupe:\"⊒\",sqsupset:\"⊐\",sqsupseteq:\"⊒\",squ:\"□\",Square:\"□\",square:\"□\",SquareIntersection:\"⊓\",SquareSubset:\"⊏\",SquareSubsetEqual:\"⊑\",SquareSuperset:\"⊐\",SquareSupersetEqual:\"⊒\",SquareUnion:\"⊔\",squarf:\"▪\",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:\"⫓\",succ:\"≻\",succapprox:\"⪸\",succcurlyeq:\"≽\",Succeeds:\"≻\",SucceedsEqual:\"⪰\",SucceedsSlantEqual:\"≽\",SucceedsTilde:\"≿\",succeq:\"⪰\",succnapprox:\"⪺\",succneqq:\"⪶\",succnsim:\"⋩\",succsim:\"≿\",SuchThat:\"∋\",Sum:\"∑\",sum:\"∑\",sung:\"♪\",Sup:\"⋑\",sup:\"⊃\",sup1:\"¹\",sup2:\"²\",sup3:\"³\",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:\" \",thinsp:\" \",ThinSpace:\" \",thkap:\"≈\",thksim:\"∼\",THORN:\"Þ\",thorn:\"þ\",Tilde:\"∼\",tilde:\"˜\",TildeEqual:\"≃\",TildeFullEqual:\"≅\",TildeTilde:\"≈\",times:\"×\",timesb:\"⊠\",timesbar:\"⨱\",timesd:\"⨰\",tint:\"∭\",toea:\"⤨\",top:\"⊤\",topbot:\"⌶\",topcir:\"⫱\",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:\"𝕦\",UpArrow:\"↑\",Uparrow:\"⇑\",uparrow:\"↑\",UpArrowBar:\"⤒\",UpArrowDownArrow:\"⇅\",UpDownArrow:\"↕\",Updownarrow:\"⇕\",updownarrow:\"↕\",UpEquilibrium:\"⥮\",upharpoonleft:\"↿\",upharpoonright:\"↾\",uplus:\"⊎\",UpperLeftArrow:\"↖\",UpperRightArrow:\"↗\",Upsi:\"ϒ\",upsi:\"υ\",upsih:\"ϒ\",Upsilon:\"Υ\",upsilon:\"υ\",UpTee:\"⊥\",UpTeeArrow:\"↥\",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:\"⫦\",Vee:\"⋁\",vee:\"∨\",veebar:\"⊻\",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:\"\"},r=Object.prototype.hasOwnProperty;function n(e){return o=e,(n=t)&&r.call(n,o)?t[e]:e;var n,o}var o=Object.prototype.hasOwnProperty;function s(e,t){return!!e&&o.call(e,t)}function i(e){return[].slice.call(arguments,1).forEach(function(t){if(t){if(\"object\"!=typeof t)throw new TypeError(t+\"must be object\");Object.keys(t).forEach(function(r){e[r]=t[r]})}}),e}var a=/\\\\([\\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;function u(e){return e.indexOf(\"\\\\\")<0?e:e.replace(a,\"$1\")}function l(e){return!(e>=55296&&e<=57343)&&(!(e>=64976&&e<=65007)&&(65535!=(65535&e)&&65534!=(65535&e)&&(!(e>=0&&e<=8)&&(11!==e&&(!(e>=14&&e<=31)&&(!(e>=127&&e<=159)&&!(e>1114111)))))))}function c(e){if(e>65535){var t=55296+((e-=65536)>>10),r=56320+(1023&e);return String.fromCharCode(t,r)}return String.fromCharCode(e)}var p=/&([a-z#][a-z0-9]{1,31});/gi,h=/^#((?:x[a-f0-9]{1,8}|[0-9]{1,8}))/i;function f(e,t){var r=0,o=n(t);return t!==o?o:35===t.charCodeAt(0)&&h.test(t)&&l(r=\"x\"===t[1].toLowerCase()?parseInt(t.slice(2),16):parseInt(t.slice(1),10))?c(r):e}function g(e){return e.indexOf(\"&\")<0?e:e.replace(p,f)}var d=/[&<>\"]/,m=/[&<>\"]/g,b={\"&\":\"&\",\"<\":\"<\",\">\":\">\",'\"':\""\"};function v(e){return b[e]}function k(e){return d.test(e)?e.replace(m,v):e}var A=Object.freeze({isString:function(e){return\"[object String]\"===function(e){return Object.prototype.toString.call(e)}(e)},has:s,assign:i,unescapeMd:u,isValidEntityCode:l,fromCodePoint:c,replaceEntities:g,escapeHtml:k}),y={};y.blockquote_open=function(){return\"<blockquote>\\n\"},y.blockquote_close=function(e,t){return\"</blockquote>\"+x(e,t)},y.code=function(e,t){return e[t].block?\"<pre><code>\"+k(e[t].content)+\"</code></pre>\"+x(e,t):\"<code>\"+k(e[t].content)+\"</code>\"},y.fence=function(e,t,r,n,o){var i,a,l=e[t],c=\"\",p=r.langPrefix;if(l.params){if(a=(i=l.params.split(/\\s+/g)).join(\" \"),s(o.rules.fence_custom,i[0]))return o.rules.fence_custom[i[0]](e,t,r,n,o);c=' class=\"'+p+k(g(u(a)))+'\"'}return\"<pre><code\"+c+\">\"+(r.highlight&&r.highlight.apply(r.highlight,[l.content].concat(i))||k(l.content))+\"</code></pre>\"+x(e,t)},y.fence_custom={},y.heading_open=function(e,t){return\"<h\"+e[t].hLevel+\">\"},y.heading_close=function(e,t){return\"</h\"+e[t].hLevel+\">\\n\"},y.hr=function(e,t,r){return(r.xhtmlOut?\"<hr />\":\"<hr>\")+x(e,t)},y.bullet_list_open=function(){return\"<ul>\\n\"},y.bullet_list_close=function(e,t){return\"</ul>\"+x(e,t)},y.list_item_open=function(){return\"<li>\"},y.list_item_close=function(){return\"</li>\\n\"},y.ordered_list_open=function(e,t){var r=e[t];return\"<ol\"+(r.order>1?' start=\"'+r.order+'\"':\"\")+\">\\n\"},y.ordered_list_close=function(e,t){return\"</ol>\"+x(e,t)},y.paragraph_open=function(e,t){return e[t].tight?\"\":\"<p>\"},y.paragraph_close=function(e,t){var r=!(e[t].tight&&t&&\"inline\"===e[t-1].type&&!e[t-1].content);return(e[t].tight?\"\":\"</p>\")+(r?x(e,t):\"\")},y.link_open=function(e,t,r){var n=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\",o=r.linkTarget?' target=\"'+r.linkTarget+'\"':\"\";return'<a href=\"'+k(e[t].href)+'\"'+n+o+\">\"},y.link_close=function(){return\"</a>\"},y.image=function(e,t,r){var n=' src=\"'+k(e[t].src)+'\"',o=e[t].title?' title=\"'+k(g(e[t].title))+'\"':\"\";return\"<img\"+n+(' alt=\"'+(e[t].alt?k(g(u(e[t].alt))):\"\")+'\"')+o+(r.xhtmlOut?\" /\":\"\")+\">\"},y.table_open=function(){return\"<table>\\n\"},y.table_close=function(){return\"</table>\\n\"},y.thead_open=function(){return\"<thead>\\n\"},y.thead_close=function(){return\"</thead>\\n\"},y.tbody_open=function(){return\"<tbody>\\n\"},y.tbody_close=function(){return\"</tbody>\\n\"},y.tr_open=function(){return\"<tr>\"},y.tr_close=function(){return\"</tr>\\n\"},y.th_open=function(e,t){var r=e[t];return\"<th\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.th_close=function(){return\"</th>\"},y.td_open=function(e,t){var r=e[t];return\"<td\"+(r.align?' style=\"text-align:'+r.align+'\"':\"\")+\">\"},y.td_close=function(){return\"</td>\"},y.strong_open=function(){return\"<strong>\"},y.strong_close=function(){return\"</strong>\"},y.em_open=function(){return\"<em>\"},y.em_close=function(){return\"</em>\"},y.del_open=function(){return\"<del>\"},y.del_close=function(){return\"</del>\"},y.ins_open=function(){return\"<ins>\"},y.ins_close=function(){return\"</ins>\"},y.mark_open=function(){return\"<mark>\"},y.mark_close=function(){return\"</mark>\"},y.sub=function(e,t){return\"<sub>\"+k(e[t].content)+\"</sub>\"},y.sup=function(e,t){return\"<sup>\"+k(e[t].content)+\"</sup>\"},y.hardbreak=function(e,t,r){return r.xhtmlOut?\"<br />\\n\":\"<br>\\n\"},y.softbreak=function(e,t,r){return r.breaks?r.xhtmlOut?\"<br />\\n\":\"<br>\\n\":\"\\n\"},y.text=function(e,t){return k(e[t].content)},y.htmlblock=function(e,t){return e[t].content},y.htmltag=function(e,t){return e[t].content},y.abbr_open=function(e,t){return'<abbr title=\"'+k(g(e[t].title))+'\">'},y.abbr_close=function(){return\"</abbr>\"},y.footnote_ref=function(e,t){var r=Number(e[t].id+1).toString(),n=\"fnref\"+r;return e[t].subId>0&&(n+=\":\"+e[t].subId),'<sup class=\"footnote-ref\"><a href=\"#fn'+r+'\" id=\"'+n+'\">['+r+\"]</a></sup>\"},y.footnote_block_open=function(e,t,r){return(r.xhtmlOut?'<hr class=\"footnotes-sep\" />\\n':'<hr class=\"footnotes-sep\">\\n')+'<section class=\"footnotes\">\\n<ol class=\"footnotes-list\">\\n'},y.footnote_block_close=function(){return\"</ol>\\n</section>\\n\"},y.footnote_open=function(e,t){return'<li id=\"fn'+Number(e[t].id+1).toString()+'\" class=\"footnote-item\">'},y.footnote_close=function(){return\"</li>\\n\"},y.footnote_anchor=function(e,t){var r=\"fnref\"+Number(e[t].id+1).toString();return e[t].subId>0&&(r+=\":\"+e[t].subId),' <a href=\"#'+r+'\" class=\"footnote-backref\">↩</a>'},y.dl_open=function(){return\"<dl>\\n\"},y.dt_open=function(){return\"<dt>\"},y.dd_open=function(){return\"<dd>\"},y.dl_close=function(){return\"</dl>\\n\"},y.dt_close=function(){return\"</dt>\\n\"},y.dd_close=function(){return\"</dd>\\n\"};var x=y.getBreak=function(e,t){return(t=function e(t,r){return++r>=t.length-2?r:\"paragraph_open\"===t[r].type&&t[r].tight&&\"inline\"===t[r+1].type&&0===t[r+1].content.length&&\"paragraph_close\"===t[r+2].type&&t[r+2].tight?e(t,r+2):r}(e,t))<e.length&&\"list_item_close\"===e[t].type?\"\":\"\\n\"};function w(){this.rules=i({},y),this.getBreak=y.getBreak}function C(){this.__rules__=[],this.__cache__=null}function E(e,t,r,n,o){this.src=e,this.env=n,this.options=r,this.parser=t,this.tokens=o,this.pos=0,this.posMax=this.src.length,this.level=0,this.pending=\"\",this.pendingLevel=0,this.cache=[],this.isInLabel=!1,this.linkLevel=0,this.linkContent=\"\",this.labelUnmatchedScopes=0}function D(e,t){var r,n,o,s=-1,i=e.posMax,a=e.pos,u=e.isInLabel;if(e.isInLabel)return-1;if(e.labelUnmatchedScopes)return e.labelUnmatchedScopes--,-1;for(e.pos=t+1,e.isInLabel=!0,r=1;e.pos<i;){if(91===(o=e.src.charCodeAt(e.pos)))r++;else if(93===o&&0===--r){n=!0;break}e.parser.skipToken(e)}return n?(s=e.pos,e.labelUnmatchedScopes=0):e.labelUnmatchedScopes=r-1,e.pos=a,e.isInLabel=u,s}function _(e,t,r,n){var o,s,i,a,u,l;if(42!==e.charCodeAt(0))return-1;if(91!==e.charCodeAt(1))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),1))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&10!==o.src.charCodeAt(i);i++);return u=e.slice(2,s),0===(l=e.slice(s+2,i).trim()).length?-1:(n.abbreviations||(n.abbreviations={}),void 0===n.abbreviations[\":\"+u]&&(n.abbreviations[\":\"+u]=l),i)}function B(e){var t=g(e);try{t=decodeURI(t)}catch(e){}return encodeURI(t)}function q(e,t){var r,n,o,s=t,i=e.posMax;if(60===e.src.charCodeAt(t)){for(t++;t<i;){if(10===(r=e.src.charCodeAt(t)))return!1;if(62===r)return o=B(u(e.src.slice(s+1,t))),!!e.parser.validateLink(o)&&(e.pos=t+1,e.linkContent=o,!0);92===r&&t+1<i?t+=2:t++}return!1}for(n=0;t<i&&32!==(r=e.src.charCodeAt(t))&&!(r<32||127===r);)if(92===r&&t+1<i)t+=2;else{if(40===r&&++n>1)break;if(41===r&&--n<0)break;t++}return s!==t&&(o=u(e.src.slice(s,t)),!!e.parser.validateLink(o)&&(e.linkContent=o,e.pos=t,!0))}function F(e,t){var r,n=t,o=e.posMax,s=e.src.charCodeAt(t);if(34!==s&&39!==s&&40!==s)return!1;for(t++,40===s&&(s=41);t<o;){if((r=e.src.charCodeAt(t))===s)return e.pos=t+1,e.linkContent=u(e.src.slice(n+1,t)),!0;92===r&&t+1<o?t+=2:t++}return!1}function M(e){return e.trim().replace(/\\s+/g,\" \").toUpperCase()}function S(e,t,r,n){var o,s,i,a,u,l,c,p,h;if(91!==e.charCodeAt(0))return-1;if(-1===e.indexOf(\"]:\"))return-1;if((s=D(o=new E(e,t,r,n,[]),0))<0||58!==e.charCodeAt(s+1))return-1;for(a=o.posMax,i=s+2;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);if(!q(o,i))return-1;for(c=o.linkContent,l=i=o.pos,i+=1;i<a&&(32===(u=o.src.charCodeAt(i))||10===u);i++);for(i<a&&l!==i&&F(o,i)?(p=o.linkContent,i=o.pos):(p=\"\",i=l);i<a&&32===o.src.charCodeAt(i);)i++;return i<a&&10!==o.src.charCodeAt(i)?-1:(h=M(e.slice(1,s)),void 0===n.references[h]&&(n.references[h]={title:p,href:c}),i)}w.prototype.renderInline=function(e,t,r){for(var n=this.rules,o=e.length,s=0,i=\"\";o--;)i+=n[e[s].type](e,s++,t,r,this);return i},w.prototype.render=function(e,t,r){for(var n=this.rules,o=e.length,s=-1,i=\"\";++s<o;)\"inline\"===e[s].type?i+=this.renderInline(e[s].children,t,r):i+=n[e[s].type](e,s,t,r,this);return i},C.prototype.__find__=function(e){for(var t=this.__rules__.length,r=-1;t--;)if(this.__rules__[++r].name===e)return r;return-1},C.prototype.__compile__=function(){var e=this,t=[\"\"];e.__rules__.forEach(function(e){e.enabled&&e.alt.forEach(function(e){t.indexOf(e)<0&&t.push(e)})}),e.__cache__={},t.forEach(function(t){e.__cache__[t]=[],e.__rules__.forEach(function(r){r.enabled&&(t&&r.alt.indexOf(t)<0||e.__cache__[t].push(r.fn))})})},C.prototype.at=function(e,t,r){var n=this.__find__(e),o=r||{};if(-1===n)throw new Error(\"Parser rule not found: \"+e);this.__rules__[n].fn=t,this.__rules__[n].alt=o.alt||[],this.__cache__=null},C.prototype.before=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.after=function(e,t,r,n){var o=this.__find__(e),s=n||{};if(-1===o)throw new Error(\"Parser rule not found: \"+e);this.__rules__.splice(o+1,0,{name:t,enabled:!0,fn:r,alt:s.alt||[]}),this.__cache__=null},C.prototype.push=function(e,t,r){var n=r||{};this.__rules__.push({name:e,enabled:!0,fn:t,alt:n.alt||[]}),this.__cache__=null},C.prototype.enable=function(e,t){e=Array.isArray(e)?e:[e],t&&this.__rules__.forEach(function(e){e.enabled=!1}),e.forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!0},this),this.__cache__=null},C.prototype.disable=function(e){(e=Array.isArray(e)?e:[e]).forEach(function(e){var t=this.__find__(e);if(t<0)throw new Error(\"Rules manager: invalid rule name \"+e);this.__rules__[t].enabled=!1},this),this.__cache__=null},C.prototype.getRules=function(e){return null===this.__cache__&&this.__compile__(),this.__cache__[e]||[]},E.prototype.pushPending=function(){this.tokens.push({type:\"text\",content:this.pending,level:this.pendingLevel}),this.pending=\"\"},E.prototype.push=function(e){this.pending&&this.pushPending(),this.tokens.push(e),this.pendingLevel=this.level},E.prototype.cacheSet=function(e,t){for(var r=this.cache.length;r<=e;r++)this.cache.push(0);this.cache[e]=t},E.prototype.cacheGet=function(e){return e<this.cache.length?this.cache[e]:0};var T=\" \\n()[]'\\\".,!?-\";function L(e){return e.replace(/([-()\\[\\]{}+?*.$\\^|,:#<!\\\\])/g,\"\\\\$1\")}var R=/\\+-|\\.\\.|\\?\\?\\?\\?|!!!!|,,|--/,N=/\\((c|tm|r|p)\\)/gi,z={c:\"©\",r:\"®\",p:\"§\",tm:\"™\"};var P=/['\"]/,j=/['\"]/g,I=/[-\\s()\\[\\]]/,O=\"’\";function U(e,t){return!(t<0||t>=e.length)&&!I.test(e[t])}function H(e,t,r){return e.substr(0,t)+r+e.substr(t+1)}var V=[[\"block\",function(e){e.inlineMode?e.tokens.push({type:\"inline\",content:e.src.replace(/\\n/g,\" \").trim(),level:0,lines:[0,1],children:[]}):e.block.parse(e.src,e.options,e.env,e.tokens)}],[\"abbr\",function(e){var t,r,n,o,s=e.tokens;if(!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"paragraph_open\"===s[t-1].type&&\"inline\"===s[t].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=_(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"references\",function(e){var t,r,n,o,s=e.tokens;if(e.env.references=e.env.references||{},!e.inlineMode)for(t=1,r=s.length-1;t<r;t++)if(\"inline\"===s[t].type&&\"paragraph_open\"===s[t-1].type&&\"paragraph_close\"===s[t+1].type){for(n=s[t].content;n.length&&!((o=S(n,e.inline,e.options,e.env))<0);)n=n.slice(o).trim();s[t].content=n,n.length||(s[t-1].tight=!0,s[t+1].tight=!0)}}],[\"inline\",function(e){var t,r,n,o=e.tokens;for(r=0,n=o.length;r<n;r++)\"inline\"===(t=o[r]).type&&e.inline.parse(t.content,e.options,e.env,t.children)}],[\"footnote_tail\",function(e){var t,r,n,o,s,i,a,u,l,c=0,p=!1,h={};if(e.env.footnotes&&(e.tokens=e.tokens.filter(function(e){return\"footnote_reference_open\"===e.type?(p=!0,u=[],l=e.label,!1):\"footnote_reference_close\"===e.type?(p=!1,h[\":\"+l]=u,!1):(p&&u.push(e),!p)}),e.env.footnotes.list)){for(i=e.env.footnotes.list,e.tokens.push({type:\"footnote_block_open\",level:c++}),t=0,r=i.length;t<r;t++){for(e.tokens.push({type:\"footnote_open\",id:t,level:c++}),i[t].tokens?((a=[]).push({type:\"paragraph_open\",tight:!1,level:c++}),a.push({type:\"inline\",content:\"\",level:c,children:i[t].tokens}),a.push({type:\"paragraph_close\",tight:!1,level:--c})):i[t].label&&(a=h[\":\"+i[t].label]),e.tokens=e.tokens.concat(a),s=\"paragraph_close\"===e.tokens[e.tokens.length-1].type?e.tokens.pop():null,o=i[t].count>0?i[t].count:1,n=0;n<o;n++)e.tokens.push({type:\"footnote_anchor\",id:t,subId:n,level:c});s&&e.tokens.push(s),e.tokens.push({type:\"footnote_close\",level:--c})}e.tokens.push({type:\"footnote_block_close\",level:--c})}}],[\"abbr2\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f=e.tokens;if(e.env.abbreviations)for(e.env.abbrRegExp||(h=\"(^|[\"+T.split(\"\").map(L).join(\"\")+\"])(\"+Object.keys(e.env.abbreviations).map(function(e){return e.substr(1)}).sort(function(e,t){return t.length-e.length}).map(L).join(\"|\")+\")($|[\"+T.split(\"\").map(L).join(\"\")+\"])\",e.env.abbrRegExp=new RegExp(h,\"g\")),c=e.env.abbrRegExp,r=0,n=f.length;r<n;r++)if(\"inline\"===f[r].type)for(t=(o=f[r].children).length-1;t>=0;t--)if(\"text\"===(s=o[t]).type){for(u=0,i=s.content,c.lastIndex=0,l=s.level,a=[];p=c.exec(i);)c.lastIndex>u&&a.push({type:\"text\",content:i.slice(u,p.index+p[1].length),level:l}),a.push({type:\"abbr_open\",title:e.env.abbreviations[\":\"+p[2]],level:l++}),a.push({type:\"text\",content:p[2],level:l}),a.push({type:\"abbr_close\",level:--l}),u=c.lastIndex-p[3].length;a.length&&(u<i.length&&a.push({type:\"text\",content:i.slice(u),level:l}),f[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1)))}}],[\"replacements\",function(e){var t,r,n,o,s,i;if(e.options.typographer)for(s=e.tokens.length-1;s>=0;s--)if(\"inline\"===e.tokens[s].type)for(t=(o=e.tokens[s].children).length-1;t>=0;t--)\"text\"===(r=o[t]).type&&(n=r.content,n=(i=n).indexOf(\"(\")<0?i:i.replace(N,function(e,t){return z[t.toLowerCase()]}),R.test(n)&&(n=n.replace(/\\+-/g,\"±\").replace(/\\.{2,}/g,\"…\").replace(/([?!])…/g,\"$1..\").replace(/([?!]){4,}/g,\"$1$1$1\").replace(/,{2,}/g,\",\").replace(/(^|[^-])---([^-]|$)/gm,\"$1—$2\").replace(/(^|\\s)--(\\s|$)/gm,\"$1–$2\").replace(/(^|[^-\\s])--([^-\\s]|$)/gm,\"$1–$2\")),r.content=n)}],[\"smartquotes\",function(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(e.options.typographer)for(b=[],d=e.tokens.length-1;d>=0;d--)if(\"inline\"===e.tokens[d].type)for(m=e.tokens[d].children,b.length=0,t=0;t<m.length;t++)if(\"text\"===(r=m[t]).type&&!P.test(r.text)){for(a=m[t].level,f=b.length-1;f>=0&&!(b[f].level<=a);f--);b.length=f+1,s=0,i=(n=r.content).length;e:for(;s<i&&(j.lastIndex=s,o=j.exec(n));)if(u=!U(n,o.index-1),s=o.index+1,g=\"'\"===o[0],(l=!U(n,s))||u){if(p=!l,h=!u)for(f=b.length-1;f>=0&&(c=b[f],!(b[f].level<a));f--)if(c.single===g&&b[f].level===a){c=b[f],g?(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[2]),r.content=H(r.content,o.index,e.options.quotes[3])):(m[c.token].content=H(m[c.token].content,c.pos,e.options.quotes[0]),r.content=H(r.content,o.index,e.options.quotes[1])),b.length=f;continue e}p?b.push({token:t,pos:o.index,single:g,level:a}):h&&g&&(r.content=H(r.content,o.index,O))}else g&&(r.content=H(r.content,o.index,O))}}]];function G(){this.options={},this.ruler=new C;for(var e=0;e<V.length;e++)this.ruler.push(V[e][0],V[e][1])}function $(e,t,r,n,o){var s,i,a,u,l,c,p;for(this.src=e,this.parser=t,this.options=r,this.env=n,this.tokens=o,this.bMarks=[],this.eMarks=[],this.tShift=[],this.blkIndent=0,this.line=0,this.lineMax=0,this.tight=!1,this.parentType=\"root\",this.ddIndent=-1,this.level=0,this.result=\"\",c=0,p=!1,a=u=c=0,l=(i=this.src).length;u<l;u++){if(s=i.charCodeAt(u),!p){if(32===s){c++;continue}p=!0}10!==s&&u!==l-1||(10!==s&&u++,this.bMarks.push(a),this.eMarks.push(u),this.tShift.push(c),p=!1,c=0,a=u+1)}this.bMarks.push(i.length),this.eMarks.push(i.length),this.tShift.push(0),this.lineMax=this.bMarks.length-1}function Z(e,t){var r,n,o;return(n=e.bMarks[t]+e.tShift[t])>=(o=e.eMarks[t])?-1:42!==(r=e.src.charCodeAt(n++))&&45!==r&&43!==r?-1:n<o&&32!==e.src.charCodeAt(n)?-1:n}function W(e,t){var r,n=e.bMarks[t]+e.tShift[t],o=e.eMarks[t];if(n+1>=o)return-1;if((r=e.src.charCodeAt(n++))<48||r>57)return-1;for(;;){if(n>=o)return-1;if(!((r=e.src.charCodeAt(n++))>=48&&r<=57)){if(41===r||46===r)break;return-1}}return n<o&&32!==e.src.charCodeAt(n)?-1:n}G.prototype.process=function(e){var t,r,n;for(t=0,r=(n=this.ruler.getRules(\"\")).length;t<r;t++)n[t](e)},$.prototype.isEmpty=function(e){return this.bMarks[e]+this.tShift[e]>=this.eMarks[e]},$.prototype.skipEmptyLines=function(e){for(var t=this.lineMax;e<t&&!(this.bMarks[e]+this.tShift[e]<this.eMarks[e]);e++);return e},$.prototype.skipSpaces=function(e){for(var t=this.src.length;e<t&&32===this.src.charCodeAt(e);e++);return e},$.prototype.skipChars=function(e,t){for(var r=this.src.length;e<r&&this.src.charCodeAt(e)===t;e++);return e},$.prototype.skipCharsBack=function(e,t,r){if(e<=r)return e;for(;e>r;)if(t!==this.src.charCodeAt(--e))return e+1;return e},$.prototype.getLines=function(e,t,r,n){var o,s,i,a,u,l=e;if(e>=t)return\"\";if(l+1===t)return s=this.bMarks[l]+Math.min(this.tShift[l],r),i=n?this.eMarks[l]+1:this.eMarks[l],this.src.slice(s,i);for(a=new Array(t-e),o=0;l<t;l++,o++)(u=this.tShift[l])>r&&(u=r),u<0&&(u=0),s=this.bMarks[l]+u,i=l+1<t||n?this.eMarks[l]+1:this.eMarks[l],a[o]=this.src.slice(s,i);return a.join(\"\")};var J={};[\"article\",\"aside\",\"button\",\"blockquote\",\"body\",\"canvas\",\"caption\",\"col\",\"colgroup\",\"dd\",\"div\",\"dl\",\"dt\",\"embed\",\"fieldset\",\"figcaption\",\"figure\",\"footer\",\"form\",\"h1\",\"h2\",\"h3\",\"h4\",\"h5\",\"h6\",\"header\",\"hgroup\",\"hr\",\"iframe\",\"li\",\"map\",\"object\",\"ol\",\"output\",\"p\",\"pre\",\"progress\",\"script\",\"section\",\"style\",\"table\",\"tbody\",\"td\",\"textarea\",\"tfoot\",\"th\",\"tr\",\"thead\",\"ul\",\"video\"].forEach(function(e){J[e]=!0});var Y=/^<([a-zA-Z]{1,15})[\\s\\/>]/,K=/^<\\/([a-zA-Z]{1,15})[\\s>]/;function Q(e,t){var r=e.bMarks[t]+e.blkIndent,n=e.eMarks[t];return e.src.substr(r,n-r)}function X(e,t){var r,n,o=e.bMarks[t]+e.tShift[t],s=e.eMarks[t];return o>=s?-1:126!==(n=e.src.charCodeAt(o++))&&58!==n?-1:o===(r=e.skipSpaces(o))?-1:r>=s?-1:r}var ee=[[\"code\",function(e,t,r){var n,o;if(e.tShift[t]-e.blkIndent<4)return!1;for(o=n=t+1;n<r;)if(e.isEmpty(n))n++;else{if(!(e.tShift[n]-e.blkIndent>=4))break;o=++n}return e.line=n,e.tokens.push({type:\"code\",content:e.getLines(t,o,4+e.blkIndent,!0),block:!0,lines:[t,e.line],level:e.level}),!0}],[\"fences\",function(e,t,r,n){var o,s,i,a,u,l=!1,c=e.bMarks[t]+e.tShift[t],p=e.eMarks[t];if(c+3>p)return!1;if(126!==(o=e.src.charCodeAt(c))&&96!==o)return!1;if(u=c,(s=(c=e.skipChars(c,o))-u)<3)return!1;if((i=e.src.slice(c,p).trim()).indexOf(\"`\")>=0)return!1;if(n)return!0;for(a=t;!(++a>=r||(c=u=e.bMarks[a]+e.tShift[a])<(p=e.eMarks[a])&&e.tShift[a]<e.blkIndent);)if(e.src.charCodeAt(c)===o&&!(e.tShift[a]-e.blkIndent>=4||(c=e.skipChars(c,o))-u<s||(c=e.skipSpaces(c))<p)){l=!0;break}return s=e.tShift[t],e.line=a+(l?1:0),e.tokens.push({type:\"fence\",params:i,content:e.getLines(t+1,a,s,!0),lines:[t,e.line],level:e.level}),!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"blockquote\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d=e.bMarks[t]+e.tShift[t],m=e.eMarks[t];if(d>m)return!1;if(62!==e.src.charCodeAt(d++))return!1;if(e.level>=e.options.maxNesting)return!1;if(n)return!0;for(32===e.src.charCodeAt(d)&&d++,u=e.blkIndent,e.blkIndent=0,a=[e.bMarks[t]],e.bMarks[t]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i=[e.tShift[t]],e.tShift[t]=d-e.bMarks[t],p=e.parser.ruler.getRules(\"blockquote\"),o=t+1;o<r&&!((d=e.bMarks[o]+e.tShift[o])>=(m=e.eMarks[o]));o++)if(62!==e.src.charCodeAt(d++)){if(s)break;for(g=!1,h=0,f=p.length;h<f;h++)if(p[h](e,o,r,!0)){g=!0;break}if(g)break;a.push(e.bMarks[o]),i.push(e.tShift[o]),e.tShift[o]=-1337}else 32===e.src.charCodeAt(d)&&d++,a.push(e.bMarks[o]),e.bMarks[o]=d,s=(d=d<m?e.skipSpaces(d):d)>=m,i.push(e.tShift[o]),e.tShift[o]=d-e.bMarks[o];for(l=e.parentType,e.parentType=\"blockquote\",e.tokens.push({type:\"blockquote_open\",lines:c=[t,0],level:e.level++}),e.parser.tokenize(e,t,o),e.tokens.push({type:\"blockquote_close\",level:--e.level}),e.parentType=l,c[1]=e.line,h=0;h<i.length;h++)e.bMarks[h+t]=a[h],e.tShift[h+t]=i[h];return e.blkIndent=u,!0},[\"paragraph\",\"blockquote\",\"list\"]],[\"hr\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t];if((a+=e.tShift[t])>u)return!1;if(42!==(o=e.src.charCodeAt(a++))&&45!==o&&95!==o)return!1;for(s=1;a<u;){if((i=e.src.charCodeAt(a++))!==o&&32!==i)return!1;i===o&&s++}return!(s<3||!n&&(e.line=t+1,e.tokens.push({type:\"hr\",lines:[t,e.line],level:e.level}),0))},[\"paragraph\",\"blockquote\",\"list\"]],[\"list\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b,v,k,A,y,x,w,C,E=!0;if((p=W(e,t))>=0)d=!0;else{if(!((p=Z(e,t))>=0))return!1;d=!1}if(e.level>=e.options.maxNesting)return!1;if(g=e.src.charCodeAt(p-1),n)return!0;for(b=e.tokens.length,d?(c=e.bMarks[t]+e.tShift[t],f=Number(e.src.substr(c,p-c-1)),e.tokens.push({type:\"ordered_list_open\",order:f,lines:k=[t,0],level:e.level++})):e.tokens.push({type:\"bullet_list_open\",lines:k=[t,0],level:e.level++}),o=t,v=!1,y=e.parser.ruler.getRules(\"list\");!(!(o<r)||((h=(m=e.skipSpaces(p))>=e.eMarks[o]?1:m-p)>4&&(h=1),h<1&&(h=1),s=p-e.bMarks[o]+h,e.tokens.push({type:\"list_item_open\",lines:A=[t,0],level:e.level++}),a=e.blkIndent,u=e.tight,i=e.tShift[t],l=e.parentType,e.tShift[t]=m-e.bMarks[t],e.blkIndent=s,e.tight=!0,e.parentType=\"list\",e.parser.tokenize(e,t,r,!0),e.tight&&!v||(E=!1),v=e.line-t>1&&e.isEmpty(e.line-1),e.blkIndent=a,e.tShift[t]=i,e.tight=u,e.parentType=l,e.tokens.push({type:\"list_item_close\",level:--e.level}),o=t=e.line,A[1]=o,m=e.bMarks[t],o>=r)||e.isEmpty(o)||e.tShift[o]<e.blkIndent);){for(C=!1,x=0,w=y.length;x<w;x++)if(y[x](e,o,r,!0)){C=!0;break}if(C)break;if(d){if((p=W(e,o))<0)break}else if((p=Z(e,o))<0)break;if(g!==e.src.charCodeAt(p-1))break}return e.tokens.push({type:d?\"ordered_list_close\":\"bullet_list_close\",level:--e.level}),k[1]=o,e.line=o,E&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,b),!0},[\"paragraph\",\"blockquote\"]],[\"footnote\",function(e,t,r,n){var o,s,i,a,u,l=e.bMarks[t]+e.tShift[t],c=e.eMarks[t];if(l+4>c)return!1;if(91!==e.src.charCodeAt(l))return!1;if(94!==e.src.charCodeAt(l+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(a=l+2;a<c;a++){if(32===e.src.charCodeAt(a))return!1;if(93===e.src.charCodeAt(a))break}return!(a===l+2||a+1>=c||58!==e.src.charCodeAt(++a)||!n&&(a++,e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.refs||(e.env.footnotes.refs={}),u=e.src.slice(l+2,a-2),e.env.footnotes.refs[\":\"+u]=-1,e.tokens.push({type:\"footnote_reference_open\",label:u,level:e.level++}),o=e.bMarks[t],s=e.tShift[t],i=e.parentType,e.tShift[t]=e.skipSpaces(a)-a,e.bMarks[t]=a,e.blkIndent+=4,e.parentType=\"footnote\",e.tShift[t]<e.blkIndent&&(e.tShift[t]+=e.blkIndent,e.bMarks[t]-=e.blkIndent),e.parser.tokenize(e,t,r,!0),e.parentType=i,e.blkIndent-=4,e.tShift[t]=s,e.bMarks[t]=o,e.tokens.push({type:\"footnote_reference_close\",level:--e.level}),0))},[\"paragraph\"]],[\"heading\",function(e,t,r,n){var o,s,i,a=e.bMarks[t]+e.tShift[t],u=e.eMarks[t];if(a>=u)return!1;if(35!==(o=e.src.charCodeAt(a))||a>=u)return!1;for(s=1,o=e.src.charCodeAt(++a);35===o&&a<u&&s<=6;)s++,o=e.src.charCodeAt(++a);return!(s>6||a<u&&32!==o||!n&&(u=e.skipCharsBack(u,32,a),(i=e.skipCharsBack(u,35,a))>a&&32===e.src.charCodeAt(i-1)&&(u=i),e.line=t+1,e.tokens.push({type:\"heading_open\",hLevel:s,lines:[t,e.line],level:e.level}),a<u&&e.tokens.push({type:\"inline\",content:e.src.slice(a,u).trim(),level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:s,level:e.level}),0))},[\"paragraph\",\"blockquote\"]],[\"lheading\",function(e,t,r){var n,o,s,i=t+1;return!(i>=r||e.tShift[i]<e.blkIndent||e.tShift[i]-e.blkIndent>3||(o=e.bMarks[i]+e.tShift[i])>=(s=e.eMarks[i])||45!==(n=e.src.charCodeAt(o))&&61!==n||(o=e.skipChars(o,n),(o=e.skipSpaces(o))<s||(o=e.bMarks[t]+e.tShift[t],e.line=i+1,e.tokens.push({type:\"heading_open\",hLevel:61===n?1:2,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:e.src.slice(o,e.eMarks[t]).trim(),level:e.level+1,lines:[t,e.line-1],children:[]}),e.tokens.push({type:\"heading_close\",hLevel:61===n?1:2,level:e.level}),0)))}],[\"htmlblock\",function(e,t,r,n){var o,s,i,a=e.bMarks[t],u=e.eMarks[t],l=e.tShift[t];if(a+=l,!e.options.html)return!1;if(l>3||a+2>=u)return!1;if(60!==e.src.charCodeAt(a))return!1;if(33===(o=e.src.charCodeAt(a+1))||63===o){if(n)return!0}else{if(47!==o&&!function(e){var t=32|e;return t>=97&&t<=122}(o))return!1;if(47===o){if(!(s=e.src.slice(a,u).match(K)))return!1}else if(!(s=e.src.slice(a,u).match(Y)))return!1;if(!0!==J[s[1].toLowerCase()])return!1;if(n)return!0}for(i=t+1;i<e.lineMax&&!e.isEmpty(i);)i++;return e.line=i,e.tokens.push({type:\"htmlblock\",level:e.level,lines:[t,e.line],content:e.getLines(t,i,0,!0)}),!0},[\"paragraph\",\"blockquote\"]],[\"table\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g;if(t+2>r)return!1;if(u=t+1,e.tShift[u]<e.blkIndent)return!1;if((i=e.bMarks[u]+e.tShift[u])>=e.eMarks[u])return!1;if(124!==(o=e.src.charCodeAt(i))&&45!==o&&58!==o)return!1;if(s=Q(e,t+1),!/^[-:| ]+$/.test(s))return!1;if((l=s.split(\"|\"))<=2)return!1;for(p=[],a=0;a<l.length;a++){if(!(h=l[a].trim())){if(0===a||a===l.length-1)continue;return!1}if(!/^:?-+:?$/.test(h))return!1;58===h.charCodeAt(h.length-1)?p.push(58===h.charCodeAt(0)?\"center\":\"right\"):58===h.charCodeAt(0)?p.push(\"left\"):p.push(\"\")}if(-1===(s=Q(e,t).trim()).indexOf(\"|\"))return!1;if(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),p.length!==l.length)return!1;if(n)return!0;for(e.tokens.push({type:\"table_open\",lines:f=[t,0],level:e.level++}),e.tokens.push({type:\"thead_open\",lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"tr_open\",lines:[t,t+1],level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"th_open\",align:p[a],lines:[t,t+1],level:e.level++}),e.tokens.push({type:\"inline\",content:l[a].trim(),lines:[t,t+1],level:e.level,children:[]}),e.tokens.push({type:\"th_close\",level:--e.level});for(e.tokens.push({type:\"tr_close\",level:--e.level}),e.tokens.push({type:\"thead_close\",level:--e.level}),e.tokens.push({type:\"tbody_open\",lines:g=[t+2,0],level:e.level++}),u=t+2;u<r&&!(e.tShift[u]<e.blkIndent)&&-1!==(s=Q(e,u).trim()).indexOf(\"|\");u++){for(l=s.replace(/^\\||\\|$/g,\"\").split(\"|\"),e.tokens.push({type:\"tr_open\",level:e.level++}),a=0;a<l.length;a++)e.tokens.push({type:\"td_open\",align:p[a],level:e.level++}),c=l[a].substring(124===l[a].charCodeAt(0)?1:0,124===l[a].charCodeAt(l[a].length-1)?l[a].length-1:l[a].length).trim(),e.tokens.push({type:\"inline\",content:c,level:e.level,children:[]}),e.tokens.push({type:\"td_close\",level:--e.level});e.tokens.push({type:\"tr_close\",level:--e.level})}return e.tokens.push({type:\"tbody_close\",level:--e.level}),e.tokens.push({type:\"table_close\",level:--e.level}),f[1]=g[1]=u,e.line=u,!0},[\"paragraph\"]],[\"deflist\",function(e,t,r,n){var o,s,i,a,u,l,c,p,h,f,g,d,m,b;if(n)return!(e.ddIndent<0)&&X(e,t)>=0;if(c=t+1,e.isEmpty(c)&&++c>r)return!1;if(e.tShift[c]<e.blkIndent)return!1;if((o=X(e,c))<0)return!1;if(e.level>=e.options.maxNesting)return!1;l=e.tokens.length,e.tokens.push({type:\"dl_open\",lines:u=[t,0],level:e.level++}),i=t,s=c;e:for(;;){for(b=!0,m=!1,e.tokens.push({type:\"dt_open\",lines:[i,i],level:e.level++}),e.tokens.push({type:\"inline\",content:e.getLines(i,i+1,e.blkIndent,!1).trim(),level:e.level+1,lines:[i,i],children:[]}),e.tokens.push({type:\"dt_close\",level:--e.level});;){if(e.tokens.push({type:\"dd_open\",lines:a=[c,0],level:e.level++}),d=e.tight,h=e.ddIndent,p=e.blkIndent,g=e.tShift[s],f=e.parentType,e.blkIndent=e.ddIndent=e.tShift[s]+2,e.tShift[s]=o-e.bMarks[s],e.tight=!0,e.parentType=\"deflist\",e.parser.tokenize(e,s,r,!0),e.tight&&!m||(b=!1),m=e.line-s>1&&e.isEmpty(e.line-1),e.tShift[s]=g,e.tight=d,e.parentType=f,e.blkIndent=p,e.ddIndent=h,e.tokens.push({type:\"dd_close\",level:--e.level}),a[1]=c=e.line,c>=r)break e;if(e.tShift[c]<e.blkIndent)break e;if((o=X(e,c))<0)break;s=c}if(c>=r)break;if(i=c,e.isEmpty(i))break;if(e.tShift[i]<e.blkIndent)break;if((s=i+1)>=r)break;if(e.isEmpty(s)&&s++,s>=r)break;if(e.tShift[s]<e.blkIndent)break;if((o=X(e,s))<0)break}return e.tokens.push({type:\"dl_close\",level:--e.level}),u[1]=c,e.line=c,b&&function(e,t){var r,n,o=e.level+2;for(r=t+2,n=e.tokens.length-2;r<n;r++)e.tokens[r].level===o&&\"paragraph_open\"===e.tokens[r].type&&(e.tokens[r+2].tight=!0,e.tokens[r].tight=!0,r+=2)}(e,l),!0},[\"paragraph\"]],[\"paragraph\",function(e,t){var r,n,o,s,i,a,u=t+1;if(u<(r=e.lineMax)&&!e.isEmpty(u))for(a=e.parser.ruler.getRules(\"paragraph\");u<r&&!e.isEmpty(u);u++)if(!(e.tShift[u]-e.blkIndent>3)){for(o=!1,s=0,i=a.length;s<i;s++)if(a[s](e,u,r,!0)){o=!0;break}if(o)break}return n=e.getLines(t,u,e.blkIndent,!1).trim(),e.line=u,n.length&&(e.tokens.push({type:\"paragraph_open\",tight:!1,lines:[t,e.line],level:e.level}),e.tokens.push({type:\"inline\",content:n,level:e.level+1,lines:[t,e.line],children:[]}),e.tokens.push({type:\"paragraph_close\",tight:!1,level:e.level})),!0}]];function te(){this.ruler=new C;for(var e=0;e<ee.length;e++)this.ruler.push(ee[e][0],ee[e][1],{alt:(ee[e][2]||[]).slice()})}te.prototype.tokenize=function(e,t,r){for(var n,o=this.ruler.getRules(\"\"),s=o.length,i=t,a=!1;i<r&&(e.line=i=e.skipEmptyLines(i),!(i>=r))&&!(e.tShift[i]<e.blkIndent);){for(n=0;n<s&&!o[n](e,i,r,!1);n++);if(e.tight=!a,e.isEmpty(e.line-1)&&(a=!0),(i=e.line)<r&&e.isEmpty(i)){if(a=!0,++i<r&&\"list\"===e.parentType&&e.isEmpty(i))break;e.line=i}}};var re=/[\\n\\t]/g,ne=/\\r[\\n\\u0085]|[\\u2424\\u2028\\u0085]/g,oe=/\\u00a0/g;function se(e){switch(e){case 10:case 92:case 96:case 42:case 95:case 94:case 91:case 93:case 33:case 38:case 60:case 62:case 123:case 125:case 36:case 37:case 64:case 126:case 43:case 61:case 58:return!0;default:return!1}}te.prototype.parse=function(e,t,r,n){var o,s=0,i=0;if(!e)return[];(e=(e=e.replace(oe,\" \")).replace(ne,\"\\n\")).indexOf(\"\\t\")>=0&&(e=e.replace(re,function(t,r){var n;return 10===e.charCodeAt(r)?(s=r+1,i=0,t):(n=\" \".slice((r-s-i)%4),i=r-s+1,n)})),o=new $(e,this,t,r,n),this.tokenize(o,o.line,o.lineMax)};for(var ie=[],ae=0;ae<256;ae++)ie.push(0);function ue(e){return e>=48&&e<=57||e>=65&&e<=90||e>=97&&e<=122}function le(e,t){var r,n,o,s=t,i=!0,a=!0,u=e.posMax,l=e.src.charCodeAt(t);for(r=t>0?e.src.charCodeAt(t-1):-1;s<u&&e.src.charCodeAt(s)===l;)s++;return s>=u&&(i=!1),(o=s-t)>=4?i=a=!1:(32!==(n=s<u?e.src.charCodeAt(s):-1)&&10!==n||(i=!1),32!==r&&10!==r||(a=!1),95===l&&(ue(r)&&(i=!1),ue(n)&&(a=!1))),{can_open:i,can_close:a,delims:o}}\"\\\\!\\\"#$%&'()*+,./:;<=>?@[]^_`{|}~-\".split(\"\").forEach(function(e){ie[e.charCodeAt(0)]=1});var ce=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var pe=/\\\\([ \\\\!\"#$%&'()*+,.\\/:;<=>?@[\\]^_`{|}~-])/g;var he=[\"coap\",\"doi\",\"javascript\",\"aaa\",\"aaas\",\"about\",\"acap\",\"cap\",\"cid\",\"crid\",\"data\",\"dav\",\"dict\",\"dns\",\"file\",\"ftp\",\"geo\",\"go\",\"gopher\",\"h323\",\"http\",\"https\",\"iax\",\"icap\",\"im\",\"imap\",\"info\",\"ipp\",\"iris\",\"iris.beep\",\"iris.xpc\",\"iris.xpcs\",\"iris.lwz\",\"ldap\",\"mailto\",\"mid\",\"msrp\",\"msrps\",\"mtqp\",\"mupdate\",\"news\",\"nfs\",\"ni\",\"nih\",\"nntp\",\"opaquelocktoken\",\"pop\",\"pres\",\"rtsp\",\"service\",\"session\",\"shttp\",\"sieve\",\"sip\",\"sips\",\"sms\",\"snmp\",\"soap.beep\",\"soap.beeps\",\"tag\",\"tel\",\"telnet\",\"tftp\",\"thismessage\",\"tn3270\",\"tip\",\"tv\",\"urn\",\"vemmi\",\"ws\",\"wss\",\"xcon\",\"xcon-userid\",\"xmlrpc.beep\",\"xmlrpc.beeps\",\"xmpp\",\"z39.50r\",\"z39.50s\",\"adiumxtra\",\"afp\",\"afs\",\"aim\",\"apt\",\"attachment\",\"aw\",\"beshare\",\"bitcoin\",\"bolo\",\"callto\",\"chrome\",\"chrome-extension\",\"com-eventbrite-attendee\",\"content\",\"cvs\",\"dlna-playsingle\",\"dlna-playcontainer\",\"dtn\",\"dvb\",\"ed2k\",\"facetime\",\"feed\",\"finger\",\"fish\",\"gg\",\"git\",\"gizmoproject\",\"gtalk\",\"hcp\",\"icon\",\"ipn\",\"irc\",\"irc6\",\"ircs\",\"itms\",\"jar\",\"jms\",\"keyparc\",\"lastfm\",\"ldaps\",\"magnet\",\"maps\",\"market\",\"message\",\"mms\",\"ms-help\",\"msnim\",\"mumble\",\"mvn\",\"notes\",\"oid\",\"palm\",\"paparazzi\",\"platform\",\"proxy\",\"psyc\",\"query\",\"res\",\"resource\",\"rmi\",\"rsync\",\"rtmp\",\"secondlife\",\"sftp\",\"sgn\",\"skype\",\"smb\",\"soldat\",\"spotify\",\"ssh\",\"steam\",\"svn\",\"teamspeak\",\"things\",\"udp\",\"unreal\",\"ut2004\",\"ventrilo\",\"view-source\",\"webcal\",\"wtai\",\"wyciwyg\",\"xfire\",\"xri\",\"ymsgr\"],fe=/^<([a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*)>/,ge=/^<([a-zA-Z.\\-]{1,25}):([^<>\\x00-\\x20]*)>/;function de(e,t){return e=e.source,t=t||\"\",function r(n,o){return n?(o=o.source||o,e=e.replace(n,o),r):new RegExp(e,t)}}var me=de(/(?:unquoted|single_quoted|double_quoted)/)(\"unquoted\",/[^\"'=<>`\\x00-\\x20]+/)(\"single_quoted\",/'[^']*'/)(\"double_quoted\",/\"[^\"]*\"/)(),be=de(/(?:\\s+attr_name(?:\\s*=\\s*attr_value)?)/)(\"attr_name\",/[a-zA-Z_:][a-zA-Z0-9:._-]*/)(\"attr_value\",me)(),ve=de(/<[A-Za-z][A-Za-z0-9]*attribute*\\s*\\/?>/)(\"attribute\",be)(),ke=de(/^(?:open_tag|close_tag|comment|processing|declaration|cdata)/)(\"open_tag\",ve)(\"close_tag\",/<\\/[A-Za-z][A-Za-z0-9]*\\s*>/)(\"comment\",/<!---->|<!--(?:-?[^>-])(?:-?[^-])*-->/)(\"processing\",/<[?].*?[?]>/)(\"declaration\",/<![A-Z]+\\s+[^>]*>/)(\"cdata\",/<!\\[CDATA\\[[\\s\\S]*?\\]\\]>/)();var Ae=/^&#((?:x[a-f0-9]{1,8}|[0-9]{1,8}));/i,ye=/^&([a-z][a-z0-9]{1,31});/i;var xe=[[\"text\",function(e,t){for(var r=e.pos;r<e.posMax&&!se(e.src.charCodeAt(r));)r++;return r!==e.pos&&(t||(e.pending+=e.src.slice(e.pos,r)),e.pos=r,!0)}],[\"newline\",function(e,t){var r,n,o=e.pos;if(10!==e.src.charCodeAt(o))return!1;if(r=e.pending.length-1,n=e.posMax,!t)if(r>=0&&32===e.pending.charCodeAt(r))if(r>=1&&32===e.pending.charCodeAt(r-1)){for(var s=r-2;s>=0;s--)if(32!==e.pending.charCodeAt(s)){e.pending=e.pending.substring(0,s+1);break}e.push({type:\"hardbreak\",level:e.level})}else e.pending=e.pending.slice(0,-1),e.push({type:\"softbreak\",level:e.level});else e.push({type:\"softbreak\",level:e.level});for(o++;o<n&&32===e.src.charCodeAt(o);)o++;return e.pos=o,!0}],[\"escape\",function(e,t){var r,n=e.pos,o=e.posMax;if(92!==e.src.charCodeAt(n))return!1;if(++n<o){if((r=e.src.charCodeAt(n))<256&&0!==ie[r])return t||(e.pending+=e.src[n]),e.pos+=2,!0;if(10===r){for(t||e.push({type:\"hardbreak\",level:e.level}),n++;n<o&&32===e.src.charCodeAt(n);)n++;return e.pos=n,!0}}return t||(e.pending+=\"\\\\\"),e.pos++,!0}],[\"backticks\",function(e,t){var r,n,o,s,i,a=e.pos;if(96!==e.src.charCodeAt(a))return!1;for(r=a,a++,n=e.posMax;a<n&&96===e.src.charCodeAt(a);)a++;for(o=e.src.slice(r,a),s=i=a;-1!==(s=e.src.indexOf(\"`\",i));){for(i=s+1;i<n&&96===e.src.charCodeAt(i);)i++;if(i-s===o.length)return t||e.push({type:\"code\",content:e.src.slice(a,s).replace(/[ \\n]+/g,\" \").trim(),block:!1,level:e.level}),e.pos=i,!0}return t||(e.pending+=o),e.pos+=o.length,!0}],[\"del\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(126!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(126!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),126===s)return!1;if(126===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&126===e.src.charCodeAt(n);)n++;if(n>u+3)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(126===e.src.charCodeAt(e.pos)&&126===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),126!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&126!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"del_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"del_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"ins\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(43!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(43!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),43===s)return!1;if(43===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&43===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(43===e.src.charCodeAt(e.pos)&&43===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),43!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&43!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"ins_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"ins_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"mark\",function(e,t){var r,n,o,s,i,a=e.posMax,u=e.pos;if(61!==e.src.charCodeAt(u))return!1;if(t)return!1;if(u+4>=a)return!1;if(61!==e.src.charCodeAt(u+1))return!1;if(e.level>=e.options.maxNesting)return!1;if(s=u>0?e.src.charCodeAt(u-1):-1,i=e.src.charCodeAt(u+2),61===s)return!1;if(61===i)return!1;if(32===i||10===i)return!1;for(n=u+2;n<a&&61===e.src.charCodeAt(n);)n++;if(n!==u+2)return e.pos+=n-u,t||(e.pending+=e.src.slice(u,n)),!0;for(e.pos=u+2,o=1;e.pos+1<a;){if(61===e.src.charCodeAt(e.pos)&&61===e.src.charCodeAt(e.pos+1)&&(s=e.src.charCodeAt(e.pos-1),61!==(i=e.pos+2<a?e.src.charCodeAt(e.pos+2):-1)&&61!==s&&(32!==s&&10!==s?o--:32!==i&&10!==i&&o++,o<=0))){r=!0;break}e.parser.skipToken(e)}return r?(e.posMax=e.pos,e.pos=u+2,t||(e.push({type:\"mark_open\",level:e.level++}),e.parser.tokenize(e),e.push({type:\"mark_close\",level:--e.level})),e.pos=e.posMax+2,e.posMax=a,!0):(e.pos=u,!1)}],[\"emphasis\",function(e,t){var r,n,o,s,i,a,u,l=e.posMax,c=e.pos,p=e.src.charCodeAt(c);if(95!==p&&42!==p)return!1;if(t)return!1;if(r=(u=le(e,c)).delims,!u.can_open)return e.pos+=r,t||(e.pending+=e.src.slice(c,e.pos)),!0;if(e.level>=e.options.maxNesting)return!1;for(e.pos=c+r,a=[r];e.pos<l;)if(e.src.charCodeAt(e.pos)!==p)e.parser.skipToken(e);else{if(n=(u=le(e,e.pos)).delims,u.can_close){for(s=a.pop(),i=n;s!==i;){if(i<s){a.push(s-i);break}if(i-=s,0===a.length)break;e.pos+=s,s=a.pop()}if(0===a.length){r=s,o=!0;break}e.pos+=n;continue}u.can_open&&a.push(n),e.pos+=n}return o?(e.posMax=e.pos,e.pos=c+r,t||(2!==r&&3!==r||e.push({type:\"strong_open\",level:e.level++}),1!==r&&3!==r||e.push({type:\"em_open\",level:e.level++}),e.parser.tokenize(e),1!==r&&3!==r||e.push({type:\"em_close\",level:--e.level}),2!==r&&3!==r||e.push({type:\"strong_close\",level:--e.level})),e.pos=e.posMax+r,e.posMax=l,!0):(e.pos=c,!1)}],[\"sub\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(126!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(126===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sub\",level:e.level,content:n.replace(ce,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"sup\",function(e,t){var r,n,o=e.posMax,s=e.pos;if(94!==e.src.charCodeAt(s))return!1;if(t)return!1;if(s+2>=o)return!1;if(e.level>=e.options.maxNesting)return!1;for(e.pos=s+1;e.pos<o;){if(94===e.src.charCodeAt(e.pos)){r=!0;break}e.parser.skipToken(e)}return r&&s+1!==e.pos?(n=e.src.slice(s+1,e.pos)).match(/(^|[^\\\\])(\\\\\\\\)*\\s/)?(e.pos=s,!1):(e.posMax=e.pos,e.pos=s+1,t||e.push({type:\"sup\",level:e.level,content:n.replace(pe,\"$1\")}),e.pos=e.posMax+1,e.posMax=o,!0):(e.pos=s,!1)}],[\"links\",function(e,t){var r,n,o,s,i,a,u,l,c=!1,p=e.pos,h=e.posMax,f=e.pos,g=e.src.charCodeAt(f);if(33===g&&(c=!0,g=e.src.charCodeAt(++f)),91!==g)return!1;if(e.level>=e.options.maxNesting)return!1;if(r=f+1,(n=D(e,f))<0)return!1;if((a=n+1)<h&&40===e.src.charCodeAt(a)){for(a++;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a>=h)return!1;for(f=a,q(e,a)?(s=e.linkContent,a=e.pos):s=\"\",f=a;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&f!==a&&F(e,a))for(i=e.linkContent,a=e.pos;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);else i=\"\";if(a>=h||41!==e.src.charCodeAt(a))return e.pos=p,!1;a++}else{if(e.linkLevel>0)return!1;for(;a<h&&(32===(l=e.src.charCodeAt(a))||10===l);a++);if(a<h&&91===e.src.charCodeAt(a)&&(f=a+1,(a=D(e,a))>=0?o=e.src.slice(f,a++):a=f-1),o||(void 0===o&&(a=n+1),o=e.src.slice(r,n)),!(u=e.env.references[M(o)]))return e.pos=p,!1;s=u.href,i=u.title}return t||(e.pos=r,e.posMax=n,c?e.push({type:\"image\",src:s,title:i,alt:e.src.substr(r,n-r),level:e.level}):(e.push({type:\"link_open\",href:s,title:i,level:e.level++}),e.linkLevel++,e.parser.tokenize(e),e.linkLevel--,e.push({type:\"link_close\",level:--e.level}))),e.pos=a,e.posMax=h,!0}],[\"footnote_inline\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;return!(a+2>=i||94!==e.src.charCodeAt(a)||91!==e.src.charCodeAt(a+1)||e.level>=e.options.maxNesting||(r=a+2,(n=D(e,a+1))<0||(t||(e.env.footnotes||(e.env.footnotes={}),e.env.footnotes.list||(e.env.footnotes.list=[]),o=e.env.footnotes.list.length,e.pos=r,e.posMax=n,e.push({type:\"footnote_ref\",id:o,level:e.level}),e.linkLevel++,s=e.tokens.length,e.parser.tokenize(e),e.env.footnotes.list[o]={tokens:e.tokens.splice(s)},e.linkLevel--),e.pos=n+1,e.posMax=i,0)))}],[\"footnote_ref\",function(e,t){var r,n,o,s,i=e.posMax,a=e.pos;if(a+3>i)return!1;if(!e.env.footnotes||!e.env.footnotes.refs)return!1;if(91!==e.src.charCodeAt(a))return!1;if(94!==e.src.charCodeAt(a+1))return!1;if(e.level>=e.options.maxNesting)return!1;for(n=a+2;n<i;n++){if(32===e.src.charCodeAt(n))return!1;if(10===e.src.charCodeAt(n))return!1;if(93===e.src.charCodeAt(n))break}return!(n===a+2||n>=i||(n++,r=e.src.slice(a+2,n-1),void 0===e.env.footnotes.refs[\":\"+r]||(t||(e.env.footnotes.list||(e.env.footnotes.list=[]),e.env.footnotes.refs[\":\"+r]<0?(o=e.env.footnotes.list.length,e.env.footnotes.list[o]={label:r,count:0},e.env.footnotes.refs[\":\"+r]=o):o=e.env.footnotes.refs[\":\"+r],s=e.env.footnotes.list[o].count,e.env.footnotes.list[o].count++,e.push({type:\"footnote_ref\",id:o,subId:s,level:e.level})),e.pos=n,e.posMax=i,0)))}],[\"autolink\",function(e,t){var r,n,o,s,i,a=e.pos;return!(60!==e.src.charCodeAt(a)||(r=e.src.slice(a)).indexOf(\">\")<0||((n=r.match(ge))?he.indexOf(n[1].toLowerCase())<0||(i=B(s=n[0].slice(1,-1)),!e.parser.validateLink(s)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=n[0].length,0)):!(o=r.match(fe))||(i=B(\"mailto:\"+(s=o[0].slice(1,-1))),!e.parser.validateLink(i)||(t||(e.push({type:\"link_open\",href:i,level:e.level}),e.push({type:\"text\",content:s,level:e.level+1}),e.push({type:\"link_close\",level:e.level})),e.pos+=o[0].length,0))))}],[\"htmltag\",function(e,t){var r,n,o,s=e.pos;return!(!e.options.html||(o=e.posMax,60!==e.src.charCodeAt(s)||s+2>=o||33!==(r=e.src.charCodeAt(s+1))&&63!==r&&47!==r&&!function(e){var t=32|e;return t>=97&&t<=122}(r)||!(n=e.src.slice(s).match(ke))||(t||e.push({type:\"htmltag\",content:e.src.slice(s,s+n[0].length),level:e.level}),e.pos+=n[0].length,0)))}],[\"entity\",function(e,t){var r,o,s=e.pos,i=e.posMax;if(38!==e.src.charCodeAt(s))return!1;if(s+1<i)if(35===e.src.charCodeAt(s+1)){if(o=e.src.slice(s).match(Ae))return t||(r=\"x\"===o[1][0].toLowerCase()?parseInt(o[1].slice(1),16):parseInt(o[1],10),e.pending+=l(r)?c(r):c(65533)),e.pos+=o[0].length,!0}else if(o=e.src.slice(s).match(ye)){var a=n(o[1]);if(o[1]!==a)return t||(e.pending+=a),e.pos+=o[0].length,!0}return t||(e.pending+=\"&\"),e.pos++,!0}]];function we(){this.ruler=new C;for(var e=0;e<xe.length;e++)this.ruler.push(xe[e][0],xe[e][1]);this.validateLink=Ce}function Ce(e){var t=e.trim().toLowerCase();return-1===(t=g(t)).indexOf(\":\")||-1===[\"vbscript\",\"javascript\",\"file\",\"data\"].indexOf(t.split(\":\")[0])}we.prototype.skipToken=function(e){var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.pos;if((r=e.cacheGet(s))>0)e.pos=r;else{for(t=0;t<o;t++)if(n[t](e,!0))return void e.cacheSet(s,e.pos);e.pos++,e.cacheSet(s,e.pos)}},we.prototype.tokenize=function(e){for(var t,r,n=this.ruler.getRules(\"\"),o=n.length,s=e.posMax;e.pos<s;){for(r=0;r<o&&!(t=n[r](e,!1));r++);if(t){if(e.pos>=s)break}else e.pending+=e.src[e.pos++]}e.pending&&e.pushPending()},we.prototype.parse=function(e,t,r,n){var o=new E(e,this,t,r,n);this.tokenize(o)};var Ee={default:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"replacements\",\"smartquotes\",\"references\",\"abbr2\",\"footnote_tail\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"footnote\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\",\"table\"]},inline:{rules:[\"autolink\",\"backticks\",\"del\",\"emphasis\",\"entity\",\"escape\",\"footnote_ref\",\"htmltag\",\"links\",\"newline\",\"text\"]}}},full:{options:{html:!1,xhtmlOut:!1,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{},block:{},inline:{}}},commonmark:{options:{html:!0,xhtmlOut:!0,breaks:!1,langPrefix:\"language-\",linkTarget:\"\",typographer:!1,quotes:\"“”‘’\",highlight:null,maxNesting:20},components:{core:{rules:[\"block\",\"inline\",\"references\",\"abbr2\"]},block:{rules:[\"blockquote\",\"code\",\"fences\",\"heading\",\"hr\",\"htmlblock\",\"lheading\",\"list\",\"paragraph\"]},inline:{rules:[\"autolink\",\"backticks\",\"emphasis\",\"entity\",\"escape\",\"htmltag\",\"links\",\"newline\",\"text\"]}}}};function De(e,t,r){this.src=t,this.env=r,this.options=e.options,this.tokens=[],this.inlineMode=!1,this.inline=e.inline,this.block=e.block,this.renderer=e.renderer,this.typographer=e.typographer}function _e(e,t){\"string\"!=typeof e&&(t=e,e=\"default\"),t&&null!=t.linkify&&console.warn(\"linkify option is removed. Use linkify plugin instead:\\n\\nimport Remarkable from 'remarkable';\\nimport linkify from 'remarkable/linkify';\\nnew Remarkable().use(linkify)\\n\"),this.inline=new we,this.block=new te,this.core=new G,this.renderer=new w,this.ruler=new C,this.options={},this.configure(Ee[e]),this.set(t||{})}function Be(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var r=0,n=e.length;r<n;r++)if(e[r]===t)return r;return-1}function qe(e,t){for(var r=e.length-1;r>=0;r--)!0===t(e[r])&&e.splice(r,1)}function Fe(e){throw new Error(\"Unhandled case for value: '\"+e+\"'\")}_e.prototype.set=function(e){i(this.options,e)},_e.prototype.configure=function(e){var t=this;if(!e)throw new Error(\"Wrong `remarkable` preset, check name/content\");e.options&&t.set(e.options),e.components&&Object.keys(e.components).forEach(function(r){e.components[r].rules&&t[r].ruler.enable(e.components[r].rules,!0)})},_e.prototype.use=function(e,t){return e(this,t),this},_e.prototype.parse=function(e,t){var r=new De(this,e,t);return this.core.process(r),r.tokens},_e.prototype.render=function(e,t){return t=t||{},this.renderer.render(this.parse(e,t),this.options,t)},_e.prototype.parseInline=function(e,t){var r=new De(this,e,t);return r.inlineMode=!0,this.core.process(r),r.tokens},_e.prototype.renderInline=function(e,t){return t=t||{},this.renderer.render(this.parseInline(e,t),this.options,t)};var Me=function(){function e(e){void 0===e&&(e={}),this.tagName=\"\",this.attrs={},this.innerHTML=\"\",this.whitespaceRegex=/\\s+/,this.tagName=e.tagName||\"\",this.attrs=e.attrs||{},this.innerHTML=e.innerHtml||e.innerHTML||\"\"}return e.prototype.setTagName=function(e){return this.tagName=e,this},e.prototype.getTagName=function(){return this.tagName||\"\"},e.prototype.setAttr=function(e,t){return this.getAttrs()[e]=t,this},e.prototype.getAttr=function(e){return this.getAttrs()[e]},e.prototype.setAttrs=function(e){return Object.assign(this.getAttrs(),e),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(e){return this.setAttr(\"class\",e)},e.prototype.addClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);t=s.shift();)-1===Be(o,t)&&o.push(t);return this.getAttrs().class=o.join(\" \"),this},e.prototype.removeClass=function(e){for(var t,r=this.getClass(),n=this.whitespaceRegex,o=r?r.split(n):[],s=e.split(n);o.length&&(t=s.shift());){var i=Be(o,t);-1!==i&&o.splice(i,1)}return this.getAttrs().class=o.join(\" \"),this},e.prototype.getClass=function(){return this.getAttrs().class||\"\"},e.prototype.hasClass=function(e){return-1!==(\" \"+this.getClass()+\" \").indexOf(\" \"+e+\" \")},e.prototype.setInnerHTML=function(e){return this.innerHTML=e,this},e.prototype.setInnerHtml=function(e){return this.setInnerHTML(e)},e.prototype.getInnerHTML=function(){return this.innerHTML||\"\"},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var e=this.getTagName(),t=this.buildAttrsStr();return[\"<\",e,t=t?\" \"+t:\"\",\">\",this.getInnerHtml(),\"</\",e,\">\"].join(\"\")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return\"\";var e=this.getAttrs(),t=[];for(var r in e)e.hasOwnProperty(r)&&t.push(r+'=\"'+e[r]+'\"');return t.join(\" \")},e}();var Se=function(){function e(e){void 0===e&&(e={}),this.newWindow=!1,this.truncate={},this.className=\"\",this.newWindow=e.newWindow||!1,this.truncate=e.truncate||{},this.className=e.className||\"\"}return e.prototype.build=function(e){return new Me({tagName:\"a\",attrs:this.createAttrs(e),innerHtml:this.processAnchorText(e.getAnchorText())})},e.prototype.createAttrs=function(e){var t={href:e.getAnchorHref()},r=this.createCssClass(e);return r&&(t.class=r),this.newWindow&&(t.target=\"_blank\",t.rel=\"noopener noreferrer\"),this.truncate&&this.truncate.length&&this.truncate.length<e.getAnchorText().length&&(t.title=e.getAnchorHref()),t},e.prototype.createCssClass=function(e){var t=this.className;if(t){for(var r=[t],n=e.getCssClassSuffixes(),o=0,s=n.length;o<s;o++)r.push(t+\"-\"+n[o]);return r.join(\" \")}return\"\"},e.prototype.processAnchorText=function(e){return e=this.doTruncate(e)},e.prototype.doTruncate=function(e){var t=this.truncate;if(!t||!t.length)return e;var r=t.length,n=t.location;return\"smart\"===n?function(e,t,r){var n,o;null==r?(r=\"…\",o=3,n=8):(o=r.length,n=r.length);var s=function(e){var t=\"\";return e.scheme&&e.host&&(t+=e.scheme+\"://\"),e.host&&(t+=e.host),e.path&&(t+=\"/\"+e.path),e.query&&(t+=\"?\"+e.query),e.fragment&&(t+=\"#\"+e.fragment),t},i=function(e,t){var n=t/2,o=Math.ceil(n),s=-1*Math.floor(n),i=\"\";return s<0&&(i=e.substr(s)),e.substr(0,o)+r+i};if(e.length<=t)return e;var a=t-o,u=function(e){var t={},r=e,n=r.match(/^([a-z]+):\\/\\//i);return n&&(t.scheme=n[1],r=r.substr(n[0].length)),(n=r.match(/^(.*?)(?=(\\?|#|\\/|$))/i))&&(t.host=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\/(.*?)(?=(\\?|#|$))/i))&&(t.path=n[1],r=r.substr(n[0].length)),(n=r.match(/^\\?(.*?)(?=(#|$))/i))&&(t.query=n[1],r=r.substr(n[0].length)),(n=r.match(/^#(.*?)$/i))&&(t.fragment=n[1]),t}(e);if(u.query){var l=u.query.match(/^(.*?)(?=(\\?|\\#))(.*?)$/i);l&&(u.query=u.query.substr(0,l[1].length),e=s(u))}if(e.length<=t)return e;if(u.host&&(u.host=u.host.replace(/^www\\./,\"\"),e=s(u)),e.length<=t)return e;var c=\"\";if(u.host&&(c+=u.host),c.length>=a)return u.host.length==t?(u.host.substr(0,t-o)+r).substr(0,a+n):i(c,a).substr(0,a+n);var p=\"\";if(u.path&&(p+=\"/\"+u.path),u.query&&(p+=\"?\"+u.query),p){if((c+p).length>=a)return(c+p).length==t?(c+p).substr(0,t):(c+i(p,a-c.length)).substr(0,a+n);c+=p}if(u.fragment){var h=\"#\"+u.fragment;if((c+h).length>=a)return(c+h).length==t?(c+h).substr(0,t):(c+i(h,a-c.length)).substr(0,a+n);c+=h}if(u.scheme&&u.host){var f=u.scheme+\"://\";if((c+f).length<a)return(f+c).substr(0,t)}if(c.length<=t)return c;var g=\"\";return a>0&&(g=c.substr(-1*Math.floor(a/2))),(c.substr(0,Math.ceil(a/2))+r+g).substr(0,a+n)}(e,r):\"middle\"===n?function(e,t,r){if(e.length<=t)return e;var n,o;null==r?(r=\"…\",n=8,o=3):(n=r.length,o=r.length);var s=t-o,i=\"\";return s>0&&(i=e.substr(-1*Math.floor(s/2))),(e.substr(0,Math.ceil(s/2))+r+i).substr(0,s+n)}(e,r):function(e,t,r){return function(e,t,r){var n;return e.length>t&&(null==r?(r=\"…\",n=3):n=r.length,e=e.substring(0,t-n)+r),e}(e,t,r)}(e,r)},e}(),Te=function(){function e(e){this.__jsduckDummyDocProp=null,this.matchedText=\"\",this.offset=0,this.tagBuilder=e.tagBuilder,this.matchedText=e.matchedText,this.offset=e.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(e){this.offset=e},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.getType()]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}(),Le=function(e,t){return(Le=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 Re(e,t){function r(){this.constructor=e}Le(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var Ne=function(){return(Ne=Object.assign||function(e){for(var t,r=1,n=arguments.length;r<n;r++)for(var o in t=arguments[r])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)},ze=function(e){function t(t){var r=e.call(this,t)||this;return r.email=\"\",r.email=t.email,r}return Re(t,e),t.prototype.getType=function(){return\"email\"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return\"mailto:\"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Te),Pe=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"\",r.hashtag=\"\",r.serviceName=t.serviceName,r.hashtag=t.hashtag,r}return Re(t,e),t.prototype.getType=function(){return\"hashtag\"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var e=this.serviceName,t=this.hashtag;switch(e){case\"twitter\":return\"https://twitter.com/hashtag/\"+t;case\"facebook\":return\"https://www.facebook.com/hashtag/\"+t;case\"instagram\":return\"https://instagram.com/explore/tags/\"+t;default:throw new Error(\"Unknown service name to point hashtag to: \"+e)}},t.prototype.getAnchorText=function(){return\"#\"+this.hashtag},t}(Te),je=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.mention=\"\",r.mention=t.mention,r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.getType=function(){return\"mention\"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case\"twitter\":return\"https://twitter.com/\"+this.mention;case\"instagram\":return\"https://instagram.com/\"+this.mention;case\"soundcloud\":return\"https://soundcloud.com/\"+this.mention;default:throw new Error(\"Unknown service name to point mention to: \"+this.serviceName)}},t.prototype.getAnchorText=function(){return\"@\"+this.mention},t.prototype.getCssClassSuffixes=function(){var t=e.prototype.getCssClassSuffixes.call(this),r=this.getServiceName();return r&&t.push(r),t},t}(Te),Ie=function(e){function t(t){var r=e.call(this,t)||this;return r.number=\"\",r.plusSign=!1,r.number=t.number,r.plusSign=t.plusSign,r}return Re(t,e),t.prototype.getType=function(){return\"phone\"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return\"tel:\"+(this.plusSign?\"+\":\"\")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Te),Oe=function(e){function t(t){var r=e.call(this,t)||this;return r.url=\"\",r.urlMatchType=\"scheme\",r.protocolUrlMatch=!1,r.protocolRelativeMatch=!1,r.stripPrefix={scheme:!0,www:!0},r.stripTrailingSlash=!0,r.decodePercentEncoding=!0,r.schemePrefixRegex=/^(https?:\\/\\/)?/i,r.wwwPrefixRegex=/^(https?:\\/\\/)?(www\\.)?/i,r.protocolRelativeRegex=/^\\/\\//,r.protocolPrepended=!1,r.urlMatchType=t.urlMatchType,r.url=t.url,r.protocolUrlMatch=t.protocolUrlMatch,r.protocolRelativeMatch=t.protocolRelativeMatch,r.stripPrefix=t.stripPrefix,r.stripTrailingSlash=t.stripTrailingSlash,r.decodePercentEncoding=t.decodePercentEncoding,r}return Re(t,e),t.prototype.getType=function(){return\"url\"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url=\"http://\"+e,this.protocolPrepended=!0),e},t.prototype.getAnchorHref=function(){return this.getUrl().replace(/&/g,\"&\")},t.prototype.getAnchorText=function(){var e=this.getMatchedText();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix.scheme&&(e=this.stripSchemePrefix(e)),this.stripPrefix.www&&(e=this.stripWwwPrefix(e)),this.stripTrailingSlash&&(e=this.removeTrailingSlash(e)),this.decodePercentEncoding&&(e=this.removePercentEncoding(e)),e},t.prototype.stripSchemePrefix=function(e){return e.replace(this.schemePrefixRegex,\"\")},t.prototype.stripWwwPrefix=function(e){return e.replace(this.wwwPrefixRegex,\"$1\")},t.prototype.stripProtocolRelativePrefix=function(e){return e.replace(this.protocolRelativeRegex,\"\")},t.prototype.removeTrailingSlash=function(e){return\"/\"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e},t.prototype.removePercentEncoding=function(e){var t=e.replace(/%22/gi,\""\").replace(/%26/gi,\"&\").replace(/%27/gi,\"'\").replace(/%3C/gi,\"<\").replace(/%3E/gi,\">\");try{return decodeURIComponent(t)}catch(e){return t}},t}(Te),Ue=function(e){this.__jsduckDummyDocProp=null,this.tagBuilder=e.tagBuilder},He=/[A-Za-z]/,Ve=/[0-9]/,Ge=/\\s/,$e=/['\"]/,Ze=/[\\x00-\\x1F\\x7F]/,We=/A-Za-z\\xAA\\xB5\\xBA\\xC0-\\xD6\\xD8-\\xF6\\xF8-\\u02C1\\u02C6-\\u02D1\\u02E0-\\u02E4\\u02EC\\u02EE\\u0370-\\u0374\\u0376\\u0377\\u037A-\\u037D\\u037F\\u0386\\u0388-\\u038A\\u038C\\u038E-\\u03A1\\u03A3-\\u03F5\\u03F7-\\u0481\\u048A-\\u052F\\u0531-\\u0556\\u0559\\u0561-\\u0587\\u05D0-\\u05EA\\u05F0-\\u05F2\\u0620-\\u064A\\u066E\\u066F\\u0671-\\u06D3\\u06D5\\u06E5\\u06E6\\u06EE\\u06EF\\u06FA-\\u06FC\\u06FF\\u0710\\u0712-\\u072F\\u074D-\\u07A5\\u07B1\\u07CA-\\u07EA\\u07F4\\u07F5\\u07FA\\u0800-\\u0815\\u081A\\u0824\\u0828\\u0840-\\u0858\\u08A0-\\u08B4\\u08B6-\\u08BD\\u0904-\\u0939\\u093D\\u0950\\u0958-\\u0961\\u0971-\\u0980\\u0985-\\u098C\\u098F\\u0990\\u0993-\\u09A8\\u09AA-\\u09B0\\u09B2\\u09B6-\\u09B9\\u09BD\\u09CE\\u09DC\\u09DD\\u09DF-\\u09E1\\u09F0\\u09F1\\u0A05-\\u0A0A\\u0A0F\\u0A10\\u0A13-\\u0A28\\u0A2A-\\u0A30\\u0A32\\u0A33\\u0A35\\u0A36\\u0A38\\u0A39\\u0A59-\\u0A5C\\u0A5E\\u0A72-\\u0A74\\u0A85-\\u0A8D\\u0A8F-\\u0A91\\u0A93-\\u0AA8\\u0AAA-\\u0AB0\\u0AB2\\u0AB3\\u0AB5-\\u0AB9\\u0ABD\\u0AD0\\u0AE0\\u0AE1\\u0AF9\\u0B05-\\u0B0C\\u0B0F\\u0B10\\u0B13-\\u0B28\\u0B2A-\\u0B30\\u0B32\\u0B33\\u0B35-\\u0B39\\u0B3D\\u0B5C\\u0B5D\\u0B5F-\\u0B61\\u0B71\\u0B83\\u0B85-\\u0B8A\\u0B8E-\\u0B90\\u0B92-\\u0B95\\u0B99\\u0B9A\\u0B9C\\u0B9E\\u0B9F\\u0BA3\\u0BA4\\u0BA8-\\u0BAA\\u0BAE-\\u0BB9\\u0BD0\\u0C05-\\u0C0C\\u0C0E-\\u0C10\\u0C12-\\u0C28\\u0C2A-\\u0C39\\u0C3D\\u0C58-\\u0C5A\\u0C60\\u0C61\\u0C80\\u0C85-\\u0C8C\\u0C8E-\\u0C90\\u0C92-\\u0CA8\\u0CAA-\\u0CB3\\u0CB5-\\u0CB9\\u0CBD\\u0CDE\\u0CE0\\u0CE1\\u0CF1\\u0CF2\\u0D05-\\u0D0C\\u0D0E-\\u0D10\\u0D12-\\u0D3A\\u0D3D\\u0D4E\\u0D54-\\u0D56\\u0D5F-\\u0D61\\u0D7A-\\u0D7F\\u0D85-\\u0D96\\u0D9A-\\u0DB1\\u0DB3-\\u0DBB\\u0DBD\\u0DC0-\\u0DC6\\u0E01-\\u0E30\\u0E32\\u0E33\\u0E40-\\u0E46\\u0E81\\u0E82\\u0E84\\u0E87\\u0E88\\u0E8A\\u0E8D\\u0E94-\\u0E97\\u0E99-\\u0E9F\\u0EA1-\\u0EA3\\u0EA5\\u0EA7\\u0EAA\\u0EAB\\u0EAD-\\u0EB0\\u0EB2\\u0EB3\\u0EBD\\u0EC0-\\u0EC4\\u0EC6\\u0EDC-\\u0EDF\\u0F00\\u0F40-\\u0F47\\u0F49-\\u0F6C\\u0F88-\\u0F8C\\u1000-\\u102A\\u103F\\u1050-\\u1055\\u105A-\\u105D\\u1061\\u1065\\u1066\\u106E-\\u1070\\u1075-\\u1081\\u108E\\u10A0-\\u10C5\\u10C7\\u10CD\\u10D0-\\u10FA\\u10FC-\\u1248\\u124A-\\u124D\\u1250-\\u1256\\u1258\\u125A-\\u125D\\u1260-\\u1288\\u128A-\\u128D\\u1290-\\u12B0\\u12B2-\\u12B5\\u12B8-\\u12BE\\u12C0\\u12C2-\\u12C5\\u12C8-\\u12D6\\u12D8-\\u1310\\u1312-\\u1315\\u1318-\\u135A\\u1380-\\u138F\\u13A0-\\u13F5\\u13F8-\\u13FD\\u1401-\\u166C\\u166F-\\u167F\\u1681-\\u169A\\u16A0-\\u16EA\\u16F1-\\u16F8\\u1700-\\u170C\\u170E-\\u1711\\u1720-\\u1731\\u1740-\\u1751\\u1760-\\u176C\\u176E-\\u1770\\u1780-\\u17B3\\u17D7\\u17DC\\u1820-\\u1877\\u1880-\\u1884\\u1887-\\u18A8\\u18AA\\u18B0-\\u18F5\\u1900-\\u191E\\u1950-\\u196D\\u1970-\\u1974\\u1980-\\u19AB\\u19B0-\\u19C9\\u1A00-\\u1A16\\u1A20-\\u1A54\\u1AA7\\u1B05-\\u1B33\\u1B45-\\u1B4B\\u1B83-\\u1BA0\\u1BAE\\u1BAF\\u1BBA-\\u1BE5\\u1C00-\\u1C23\\u1C4D-\\u1C4F\\u1C5A-\\u1C7D\\u1C80-\\u1C88\\u1CE9-\\u1CEC\\u1CEE-\\u1CF1\\u1CF5\\u1CF6\\u1D00-\\u1DBF\\u1E00-\\u1F15\\u1F18-\\u1F1D\\u1F20-\\u1F45\\u1F48-\\u1F4D\\u1F50-\\u1F57\\u1F59\\u1F5B\\u1F5D\\u1F5F-\\u1F7D\\u1F80-\\u1FB4\\u1FB6-\\u1FBC\\u1FBE\\u1FC2-\\u1FC4\\u1FC6-\\u1FCC\\u1FD0-\\u1FD3\\u1FD6-\\u1FDB\\u1FE0-\\u1FEC\\u1FF2-\\u1FF4\\u1FF6-\\u1FFC\\u2071\\u207F\\u2090-\\u209C\\u2102\\u2107\\u210A-\\u2113\\u2115\\u2119-\\u211D\\u2124\\u2126\\u2128\\u212A-\\u212D\\u212F-\\u2139\\u213C-\\u213F\\u2145-\\u2149\\u214E\\u2183\\u2184\\u2C00-\\u2C2E\\u2C30-\\u2C5E\\u2C60-\\u2CE4\\u2CEB-\\u2CEE\\u2CF2\\u2CF3\\u2D00-\\u2D25\\u2D27\\u2D2D\\u2D30-\\u2D67\\u2D6F\\u2D80-\\u2D96\\u2DA0-\\u2DA6\\u2DA8-\\u2DAE\\u2DB0-\\u2DB6\\u2DB8-\\u2DBE\\u2DC0-\\u2DC6\\u2DC8-\\u2DCE\\u2DD0-\\u2DD6\\u2DD8-\\u2DDE\\u2E2F\\u3005\\u3006\\u3031-\\u3035\\u303B\\u303C\\u3041-\\u3096\\u309D-\\u309F\\u30A1-\\u30FA\\u30FC-\\u30FF\\u3105-\\u312D\\u3131-\\u318E\\u31A0-\\u31BA\\u31F0-\\u31FF\\u3400-\\u4DB5\\u4E00-\\u9FD5\\uA000-\\uA48C\\uA4D0-\\uA4FD\\uA500-\\uA60C\\uA610-\\uA61F\\uA62A\\uA62B\\uA640-\\uA66E\\uA67F-\\uA69D\\uA6A0-\\uA6E5\\uA717-\\uA71F\\uA722-\\uA788\\uA78B-\\uA7AE\\uA7B0-\\uA7B7\\uA7F7-\\uA801\\uA803-\\uA805\\uA807-\\uA80A\\uA80C-\\uA822\\uA840-\\uA873\\uA882-\\uA8B3\\uA8F2-\\uA8F7\\uA8FB\\uA8FD\\uA90A-\\uA925\\uA930-\\uA946\\uA960-\\uA97C\\uA984-\\uA9B2\\uA9CF\\uA9E0-\\uA9E4\\uA9E6-\\uA9EF\\uA9FA-\\uA9FE\\uAA00-\\uAA28\\uAA40-\\uAA42\\uAA44-\\uAA4B\\uAA60-\\uAA76\\uAA7A\\uAA7E-\\uAAAF\\uAAB1\\uAAB5\\uAAB6\\uAAB9-\\uAABD\\uAAC0\\uAAC2\\uAADB-\\uAADD\\uAAE0-\\uAAEA\\uAAF2-\\uAAF4\\uAB01-\\uAB06\\uAB09-\\uAB0E\\uAB11-\\uAB16\\uAB20-\\uAB26\\uAB28-\\uAB2E\\uAB30-\\uAB5A\\uAB5C-\\uAB65\\uAB70-\\uABE2\\uAC00-\\uD7A3\\uD7B0-\\uD7C6\\uD7CB-\\uD7FB\\uF900-\\uFA6D\\uFA70-\\uFAD9\\uFB00-\\uFB06\\uFB13-\\uFB17\\uFB1D\\uFB1F-\\uFB28\\uFB2A-\\uFB36\\uFB38-\\uFB3C\\uFB3E\\uFB40\\uFB41\\uFB43\\uFB44\\uFB46-\\uFBB1\\uFBD3-\\uFD3D\\uFD50-\\uFD8F\\uFD92-\\uFDC7\\uFDF0-\\uFDFB\\uFE70-\\uFE74\\uFE76-\\uFEFC\\uFF21-\\uFF3A\\uFF41-\\uFF5A\\uFF66-\\uFFBE\\uFFC2-\\uFFC7\\uFFCA-\\uFFCF\\uFFD2-\\uFFD7\\uFFDA-\\uFFDC/.source,Je=We+/\\u00a9\\u00ae\\u2000-\\u3300\\ud83c\\ud000-\\udfff\\ud83d\\ud000-\\udfff\\ud83e\\ud000-\\udfff/.source+/\\u0300-\\u036F\\u0483-\\u0489\\u0591-\\u05BD\\u05BF\\u05C1\\u05C2\\u05C4\\u05C5\\u05C7\\u0610-\\u061A\\u064B-\\u065F\\u0670\\u06D6-\\u06DC\\u06DF-\\u06E4\\u06E7\\u06E8\\u06EA-\\u06ED\\u0711\\u0730-\\u074A\\u07A6-\\u07B0\\u07EB-\\u07F3\\u0816-\\u0819\\u081B-\\u0823\\u0825-\\u0827\\u0829-\\u082D\\u0859-\\u085B\\u08D4-\\u08E1\\u08E3-\\u0903\\u093A-\\u093C\\u093E-\\u094F\\u0951-\\u0957\\u0962\\u0963\\u0981-\\u0983\\u09BC\\u09BE-\\u09C4\\u09C7\\u09C8\\u09CB-\\u09CD\\u09D7\\u09E2\\u09E3\\u0A01-\\u0A03\\u0A3C\\u0A3E-\\u0A42\\u0A47\\u0A48\\u0A4B-\\u0A4D\\u0A51\\u0A70\\u0A71\\u0A75\\u0A81-\\u0A83\\u0ABC\\u0ABE-\\u0AC5\\u0AC7-\\u0AC9\\u0ACB-\\u0ACD\\u0AE2\\u0AE3\\u0B01-\\u0B03\\u0B3C\\u0B3E-\\u0B44\\u0B47\\u0B48\\u0B4B-\\u0B4D\\u0B56\\u0B57\\u0B62\\u0B63\\u0B82\\u0BBE-\\u0BC2\\u0BC6-\\u0BC8\\u0BCA-\\u0BCD\\u0BD7\\u0C00-\\u0C03\\u0C3E-\\u0C44\\u0C46-\\u0C48\\u0C4A-\\u0C4D\\u0C55\\u0C56\\u0C62\\u0C63\\u0C81-\\u0C83\\u0CBC\\u0CBE-\\u0CC4\\u0CC6-\\u0CC8\\u0CCA-\\u0CCD\\u0CD5\\u0CD6\\u0CE2\\u0CE3\\u0D01-\\u0D03\\u0D3E-\\u0D44\\u0D46-\\u0D48\\u0D4A-\\u0D4D\\u0D57\\u0D62\\u0D63\\u0D82\\u0D83\\u0DCA\\u0DCF-\\u0DD4\\u0DD6\\u0DD8-\\u0DDF\\u0DF2\\u0DF3\\u0E31\\u0E34-\\u0E3A\\u0E47-\\u0E4E\\u0EB1\\u0EB4-\\u0EB9\\u0EBB\\u0EBC\\u0EC8-\\u0ECD\\u0F18\\u0F19\\u0F35\\u0F37\\u0F39\\u0F3E\\u0F3F\\u0F71-\\u0F84\\u0F86\\u0F87\\u0F8D-\\u0F97\\u0F99-\\u0FBC\\u0FC6\\u102B-\\u103E\\u1056-\\u1059\\u105E-\\u1060\\u1062-\\u1064\\u1067-\\u106D\\u1071-\\u1074\\u1082-\\u108D\\u108F\\u109A-\\u109D\\u135D-\\u135F\\u1712-\\u1714\\u1732-\\u1734\\u1752\\u1753\\u1772\\u1773\\u17B4-\\u17D3\\u17DD\\u180B-\\u180D\\u1885\\u1886\\u18A9\\u1920-\\u192B\\u1930-\\u193B\\u1A17-\\u1A1B\\u1A55-\\u1A5E\\u1A60-\\u1A7C\\u1A7F\\u1AB0-\\u1ABE\\u1B00-\\u1B04\\u1B34-\\u1B44\\u1B6B-\\u1B73\\u1B80-\\u1B82\\u1BA1-\\u1BAD\\u1BE6-\\u1BF3\\u1C24-\\u1C37\\u1CD0-\\u1CD2\\u1CD4-\\u1CE8\\u1CED\\u1CF2-\\u1CF4\\u1CF8\\u1CF9\\u1DC0-\\u1DF5\\u1DFB-\\u1DFF\\u20D0-\\u20F0\\u2CEF-\\u2CF1\\u2D7F\\u2DE0-\\u2DFF\\u302A-\\u302F\\u3099\\u309A\\uA66F-\\uA672\\uA674-\\uA67D\\uA69E\\uA69F\\uA6F0\\uA6F1\\uA802\\uA806\\uA80B\\uA823-\\uA827\\uA880\\uA881\\uA8B4-\\uA8C5\\uA8E0-\\uA8F1\\uA926-\\uA92D\\uA947-\\uA953\\uA980-\\uA983\\uA9B3-\\uA9C0\\uA9E5\\uAA29-\\uAA36\\uAA43\\uAA4C\\uAA4D\\uAA7B-\\uAA7D\\uAAB0\\uAAB2-\\uAAB4\\uAAB7\\uAAB8\\uAABE\\uAABF\\uAAC1\\uAAEB-\\uAAEF\\uAAF5\\uAAF6\\uABE3-\\uABEA\\uABEC\\uABED\\uFB1E\\uFE00-\\uFE0F\\uFE20-\\uFE2F/.source,Ye=/0-9\\u0660-\\u0669\\u06F0-\\u06F9\\u07C0-\\u07C9\\u0966-\\u096F\\u09E6-\\u09EF\\u0A66-\\u0A6F\\u0AE6-\\u0AEF\\u0B66-\\u0B6F\\u0BE6-\\u0BEF\\u0C66-\\u0C6F\\u0CE6-\\u0CEF\\u0D66-\\u0D6F\\u0DE6-\\u0DEF\\u0E50-\\u0E59\\u0ED0-\\u0ED9\\u0F20-\\u0F29\\u1040-\\u1049\\u1090-\\u1099\\u17E0-\\u17E9\\u1810-\\u1819\\u1946-\\u194F\\u19D0-\\u19D9\\u1A80-\\u1A89\\u1A90-\\u1A99\\u1B50-\\u1B59\\u1BB0-\\u1BB9\\u1C40-\\u1C49\\u1C50-\\u1C59\\uA620-\\uA629\\uA8D0-\\uA8D9\\uA900-\\uA909\\uA9D0-\\uA9D9\\uA9F0-\\uA9F9\\uAA50-\\uAA59\\uABF0-\\uABF9\\uFF10-\\uFF19/.source,Ke=Je+Ye,Qe=Je+Ye,Xe=\"(?:[\"+Ye+\"]{1,3}\\\\.){3}[\"+Ye+\"]{1,3}\",et=\"[\"+Qe+\"](?:[\"+Qe+\"\\\\-]{0,61}[\"+Qe+\"])?\",tt=function(e){return\"(?=(\"+et+\"))\\\\\"+e},rt=function(e){return\"(?:\"+tt(e)+\"(?:\\\\.\"+tt(e+1)+\"){0,126}|\"+Xe+\")\"},nt=new RegExp(\"[\"+Qe+\"]\"),ot=/(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|vermögensberatung|xn--3oq18vl8pn36a|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|vermögensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|afamilycompany|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbb9fbpob|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|spreadbetting|travelchannel|wolterskluwer|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|rightathome|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--estv75g|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--kpu716f|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pbt977c|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|சிங்கப்பூர்|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nationwide|newholland|nextdirect|onyourside|properties|protection|prudential|realestate|republican|restaurant|schaeffler|swiftcover|tatamotors|technology|telefonica|university|vistaprint|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|fujixerox|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|honeywell|institute|insurance|kuokgroup|ladbrokes|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|scjohnson|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--tckwe|xn--vhquv|yodobashi|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|budapest|builders|business|capetown|catering|catholic|chrysler|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|esurance|etisalat|everbank|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|movistar|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|symantec|training|uconnect|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|السعودية|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|cartier|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|iselect|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lancome|lanxess|lasalle|latrobe|leclerc|liaison|limited|lincoln|markets|metlife|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|shriram|singles|staples|starhub|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|католик|اتصالات|الجزائر|العليان|پاکستان|كاثوليك|موبايلي|இந்தியா|abarth|abbott|abbvie|active|africa|agency|airbus|airtel|alipay|alsace|alstom|anquan|aramco|author|bayern|beauty|berlin|bharti|blanco|bostik|boston|broker|camera|career|caseih|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|mobily|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|piaget|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|warman|webcam|xihuan|yachts|yandex|zappos|москва|онлайн|ابوظبي|ارامكو|الاردن|المغرب|امارات|فلسطين|مليسيا|भारतम्|இலங்கை|ファッション|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|dodge|drive|dubai|earth|edeka|email|epost|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glade|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|intel|irish|iveco|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|lixil|loans|locus|lotte|lotto|lupin|macys|mango|media|miami|money|mopar|movie|nadex|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|zippo|ایران|بازار|بھارت|سودان|سورية|همراه|भारोत|संगठन|বাংলা|భారత్|ഭാരതം|嘉里大酒店|aarp|able|adac|aero|aigo|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|doha|duck|duns|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|raid|read|reit|rent|rest|rich|rmit|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scor|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|дети|сайт|بارت|بيتك|ڀارت|تونس|شبكة|عراق|عمان|موقع|भारत|ভারত|ভাৰত|ਭਾਰਤ|ભારત|ଭାରତ|ಭಾರತ|ලංකා|グーグル|クラウド|ポイント|大众汽车|组织机构|電訊盈科|香格里拉|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bnl|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceb|ceo|cfa|cfd|com|crs|csc|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jcp|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|off|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|qvc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|srl|srt|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|бел|ком|қаз|мкд|мон|орг|рус|срб|укр|հայ|קום|عرب|قطر|كوم|مصر|कॉम|नेट|คอม|ไทย|ストア|セール|みんな|中文网|天主教|我爱你|新加坡|淡马锡|诺基亚|飞利浦|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|ελ|бг|ею|рф|გე|닷넷|닷컴|삼성|한국|コム|世界|中信|中国|中國|企业|佛山|信息|健康|八卦|公司|公益|台湾|台灣|商城|商店|商标|嘉里|在线|大拿|娱乐|家電|工行|广东|微博|慈善|手机|手表|招聘|政务|政府|新闻|时尚|書籍|机构|游戏|澳門|点看|珠宝|移动|网址|网店|网站|网络|联通|谷歌|购物|通販|集团|食品|餐厅|香港)/,st=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.localPartCharRegex=new RegExp(\"[\"+Qe+\"!#$%&'*+/=?^_`{|}~-]\"),t.strictTldRegex=new RegExp(\"^\"+ot.source+\"$\"),t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t=this.tagBuilder,r=this.localPartCharRegex,n=this.strictTldRegex,o=[],s=e.length,i=new it,a={m:\"a\",a:\"i\",i:\"l\",l:\"t\",t:\"o\",o:\":\"},u=0,l=0,c=i;u<s;){var p=e.charAt(u);switch(l){case 0:h(p);break;case 1:f(e.charAt(u-1),p);break;case 2:g(p);break;case 3:d(p);break;case 4:m(p);break;case 5:b(p);break;case 6:v(p);break;case 7:k(p);break;default:Fe(l)}u++}return x(),o;function h(e){\"m\"===e?A(1):r.test(e)&&A()}function f(e,t){\":\"===e?r.test(t)?(l=2,c=new it(Ne({},c,{hasMailtoPrefix:!0}))):y():a[e]===t||(r.test(t)?l=2:\".\"===t?l=3:\"@\"===t?l=4:y())}function g(e){\".\"===e?l=3:\"@\"===e?l=4:r.test(e)||y()}function d(e){\".\"===e?y():\"@\"===e?y():r.test(e)?l=2:y()}function m(e){nt.test(e)?l=5:y()}function b(e){\".\"===e?l=7:\"-\"===e?l=6:nt.test(e)||x()}function v(e){\"-\"===e||\".\"===e?x():nt.test(e)?l=5:x()}function k(e){\".\"===e||\"-\"===e?x():nt.test(e)?(l=5,c=new it(Ne({},c,{hasDomainDot:!0}))):x()}function A(e){void 0===e&&(e=2),l=e,c=new it({idx:u})}function y(){l=0,c=i}function x(){if(c.hasDomainDot){var r=e.slice(c.idx,u);/[-.]$/.test(r)&&(r=r.slice(0,-1));var s=c.hasMailtoPrefix?r.slice(\"mailto:\".length):r;(function(e){var t=(e.split(\".\").pop()||\"\").toLowerCase();return n.test(t)})(s)&&o.push(new ze({tagBuilder:t,matchedText:r,offset:c.idx,email:s}))}y()}},t}(Ue),it=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.hasMailtoPrefix=!!e.hasMailtoPrefix,this.hasDomainDot=!!e.hasDomainDot},at=function(){function e(){}return e.isValid=function(e,t){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)&&!this.isValidIpAddress(e)||this.containsMultipleDots(e))},e.isValidIpAddress=function(e){var t=new RegExp(this.hasFullProtocolRegex.source+this.ipRegex.source);return null!==e.match(t)},e.containsMultipleDots=function(e){var t=e;return this.hasFullProtocolRegex.test(e)&&(t=e.split(\"://\")[1]),t.split(\"/\")[0].indexOf(\"..\")>-1},e.isValidUriScheme=function(e){var t=e.match(this.uriSchemeRegex),r=t&&t[0].toLowerCase();return\"javascript:\"!==r&&\"vbscript:\"!==r},e.urlMatchDoesNotHaveProtocolOrDot=function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf(\".\"))},e.urlMatchDoesNotHaveAtLeastOneWordChar=function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},e.hasFullProtocolRegex=/^[A-Za-z][-.+A-Za-z0-9]*:\\/\\//,e.uriSchemeRegex=/^[A-Za-z][-.+A-Za-z0-9]*:/,e.hasWordCharAfterProtocolRegex=new RegExp(\":[^\\\\s]*?[\"+We+\"]\"),e.ipRegex=/[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?\\.[0-9][0-9]?[0-9]?(:[0-9]*)?\\/?$/,e}(),ut=function(e){function t(t){var r,n=e.call(this,t)||this;return n.stripPrefix={scheme:!0,www:!0},n.stripTrailingSlash=!0,n.decodePercentEncoding=!0,n.matcherRegex=(r=new RegExp(\"[/?#](?:[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]?!:,.;✓]*[\"+Qe+\"\\\\-+&@#/%=~_()|'$*\\\\[\\\\]✓])?\"),new RegExp([\"(?:\",\"(\",/(?:[A-Za-z][-.+A-Za-z0-9]{0,63}:(?![A-Za-z][-.+A-Za-z0-9]{0,63}:\\/\\/)(?!\\d+\\/?)(?:\\/\\/)?)/.source,rt(2),\")\",\"|\",\"(\",\"(//)?\",/(?:www\\.)/.source,rt(6),\")\",\"|\",\"(\",\"(//)?\",rt(10)+\"\\\\.\",ot.source,\"(?![-\"+Ke+\"])\",\")\",\")\",\"(?::[0-9]+)?\",\"(?:\"+r.source+\")?\"].join(\"\"),\"gi\")),n.wordCharRegExp=new RegExp(\"[\"+Qe+\"]\"),n.stripPrefix=t.stripPrefix,n.stripTrailingSlash=t.stripTrailingSlash,n.decodePercentEncoding=t.decodePercentEncoding,n}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.stripPrefix,o=this.stripTrailingSlash,s=this.decodePercentEncoding,i=this.tagBuilder,a=[],u=function(){var r=t[0],u=t[1],c=t[4],p=t[5],h=t[9],f=t.index,g=p||h,d=e.charAt(f-1);if(!at.isValid(r,u))return\"continue\";if(f>0&&\"@\"===d)return\"continue\";if(f>0&&g&&l.wordCharRegExp.test(d))return\"continue\";if(/\\?$/.test(r)&&(r=r.substr(0,r.length-1)),l.matchHasUnbalancedClosingParen(r))r=r.substr(0,r.length-1);else{var m=l.matchHasInvalidCharAfterTld(r,u);m>-1&&(r=r.substr(0,m))}var b=[\"http://\",\"https://\"].find(function(e){return!!u&&-1!==u.indexOf(e)});if(b){var v=r.indexOf(b);r=r.substr(v),u=u.substr(v),f+=v}var k=u?\"scheme\":c?\"www\":\"tld\",A=!!u;a.push(new Oe({tagBuilder:i,matchedText:r,offset:f,urlMatchType:k,url:r,protocolUrlMatch:A,protocolRelativeMatch:!!g,stripPrefix:n,stripTrailingSlash:o,decodePercentEncoding:s}))},l=this;null!==(t=r.exec(e));)u();return a},t.prototype.matchHasUnbalancedClosingParen=function(e){var t,r=e.charAt(e.length-1);if(\")\"===r)t=\"(\";else{if(\"]\"!==r)return!1;t=\"[\"}for(var n=0,o=0,s=e.length-1;o<s;o++){var i=e.charAt(o);i===t?n++:i===r&&(n=Math.max(n-1,0))}return 0===n},t.prototype.matchHasInvalidCharAfterTld=function(e,t){if(!e)return-1;var r=0;t&&(r=e.indexOf(\":\"),e=e.slice(r));var n=new RegExp(\"^((.?//)?[-.\"+Qe+\"]*[-\"+Qe+\"]\\\\.[-\"+Qe+\"]+)\").exec(e);return null===n?-1:(r+=n[1].length,e=e.slice(n[1].length),/^[^-.A-Za-z0-9:\\/?#]/.test(e)?r:-1)},t}(Ue),lt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegex=new RegExp(\"#[_\"+Qe+\"]{1,139}(?![_\"+Qe+\"])\",\"g\"),r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.nonWordCharRegex,o=this.serviceName,s=this.tagBuilder,i=[];null!==(t=r.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||n.test(u)){var l=t[0],c=t[0].slice(1);i.push(new Pe({tagBuilder:s,matchedText:l,offset:a,serviceName:o,hashtag:c}))}}return i},t}(Ue),ct=function(e){function t(){var t=null!==e&&e.apply(this,arguments)||this;return t.matcherRegex=/(?:(?:(?:(\\+)?\\d{1,3}[-\\040.]?)?\\(?\\d{3}\\)?[-\\040.]?\\d{3}[-\\040.]?\\d{4})|(?:(\\+)(?:9[976]\\d|8[987530]\\d|6[987]\\d|5[90]\\d|42\\d|3[875]\\d|2[98654321]\\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-\\040.]?(?:\\d[-\\040.]?){6,12}\\d+))([,;]+[0-9]+#?)*/g,t}return Re(t,e),t.prototype.parseMatches=function(e){for(var t,r=this.matcherRegex,n=this.tagBuilder,o=[];null!==(t=r.exec(e));){var s=t[0],i=s.replace(/[^0-9,;#]/g,\"\"),a=!(!t[1]&&!t[2]),u=0==t.index?\"\":e.substr(t.index-1,1),l=e.substr(t.index+s.length,1),c=!u.match(/\\d/)&&!l.match(/\\d/);this.testMatch(t[3])&&this.testMatch(s)&&c&&o.push(new Ie({tagBuilder:n,matchedText:s,offset:t.index,number:i,plusSign:a}))}return o},t.prototype.testMatch=function(e){return/\\D/.test(e)},t}(Ue),pt=function(e){function t(t){var r=e.call(this,t)||this;return r.serviceName=\"twitter\",r.matcherRegexes={twitter:new RegExp(\"@[_\"+Qe+\"]{1,50}(?![_\"+Qe+\"])\",\"g\"),instagram:new RegExp(\"@[_.\"+Qe+\"]{1,30}(?![_\"+Qe+\"])\",\"g\"),soundcloud:new RegExp(\"@[-_.\"+Qe+\"]{1,50}(?![-_\"+Qe+\"])\",\"g\")},r.nonWordCharRegex=new RegExp(\"[^\"+Qe+\"]\"),r.serviceName=t.serviceName,r}return Re(t,e),t.prototype.parseMatches=function(e){var t,r=this.serviceName,n=this.matcherRegexes[this.serviceName],o=this.nonWordCharRegex,s=this.tagBuilder,i=[];if(!n)return i;for(;null!==(t=n.exec(e));){var a=t.index,u=e.charAt(a-1);if(0===a||o.test(u)){var l=t[0].replace(/\\.+$/g,\"\"),c=l.slice(1);i.push(new je({tagBuilder:s,matchedText:l,offset:a,serviceName:r,mention:c}))}}return i},t}(Ue);function ht(e,t){for(var r=t.onOpenTag,n=t.onCloseTag,o=t.onText,s=t.onComment,i=t.onDoctype,a=new ft,u=0,l=e.length,c=0,p=0,h=a;u<l;){var f=e.charAt(u);switch(c){case 0:g(f);break;case 1:d(f);break;case 2:b(f);break;case 3:m(f);break;case 4:v(f);break;case 5:k(f);break;case 6:A(f);break;case 7:y(f);break;case 8:x(f);break;case 9:w(f);break;case 10:C(f);break;case 11:E(f);break;case 12:D(f);break;case 13:_();break;case 14:B(f);break;case 15:q(f);break;case 16:F(f);break;case 17:M(f);break;case 18:S(f);break;case 19:T(f);break;case 20:L(f);break;default:Fe(c)}u++}function g(e){\"<\"===e&&N()}function d(e){\"!\"===e?c=13:\"/\"===e?(c=2,h=new ft(Ne({},h,{isClosing:!0}))):\"<\"===e?N():He.test(e)?(c=3,h=new ft(Ne({},h,{isOpening:!0}))):(c=0,h=a)}function m(e){Ge.test(e)?(h=new ft(Ne({},h,{name:P()})),c=4):\"<\"===e?N():\"/\"===e?(h=new ft(Ne({},h,{name:P()})),c=12):\">\"===e?(h=new ft(Ne({},h,{name:P()})),z()):He.test(e)||Ve.test(e)||\":\"===e||R()}function b(e){\">\"===e?R():He.test(e)?c=3:R()}function v(e){Ge.test(e)||(\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():\"=\"===e||$e.test(e)||Ze.test(e)?R():c=5)}function k(e){Ge.test(e)?c=6:\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)&&R()}function A(e){Ge.test(e)||(\"/\"===e?c=12:\"=\"===e?c=7:\">\"===e?z():\"<\"===e?N():$e.test(e)?R():c=5)}function y(e){Ge.test(e)||('\"'===e?c=8:\"'\"===e?c=9:/[>=`]/.test(e)?R():\"<\"===e?N():c=10)}function x(e){'\"'===e&&(c=11)}function w(e){\"'\"===e&&(c=11)}function C(e){Ge.test(e)?c=4:\">\"===e?z():\"<\"===e&&N()}function E(e){Ge.test(e)?c=4:\"/\"===e?c=12:\">\"===e?z():\"<\"===e?N():(c=4,u--)}function D(e){\">\"===e?(h=new ft(Ne({},h,{isClosing:!0})),z()):c=4}function _(t){\"--\"===e.substr(u,2)?(u+=2,h=new ft(Ne({},h,{type:\"comment\"})),c=14):\"DOCTYPE\"===e.substr(u,7).toUpperCase()?(u+=7,h=new ft(Ne({},h,{type:\"doctype\"})),c=20):R()}function B(e){\"-\"===e?c=15:\">\"===e?R():c=16}function q(e){\"-\"===e?c=18:\">\"===e?R():c=16}function F(e){\"-\"===e&&(c=17)}function M(e){c=\"-\"===e?18:16}function S(e){\">\"===e?z():\"!\"===e?c=19:\"-\"===e||(c=16)}function T(e){\"-\"===e?c=17:\">\"===e?z():c=16}function L(e){\">\"===e?z():\"<\"===e&&N()}function R(){c=0,h=a}function N(){c=1,h=new ft({idx:u})}function z(){var t=e.slice(p,h.idx);t&&o(t,p),\"comment\"===h.type?s(h.idx):\"doctype\"===h.type?i(h.idx):(h.isOpening&&r(h.name,h.idx),h.isClosing&&n(h.name,h.idx)),R(),p=u+1}function P(){var t=h.idx+(h.isClosing?2:1);return e.slice(t,u).toLowerCase()}p<u&&function(){var t=e.slice(p,u);o(t,p),p=u+1}()}var ft=function(e){void 0===e&&(e={}),this.idx=void 0!==e.idx?e.idx:-1,this.type=e.type||\"tag\",this.name=e.name||\"\",this.isOpening=!!e.isOpening,this.isClosing=!!e.isClosing},gt=function(){function e(t){void 0===t&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:\"end\"},this.className=\"\",this.replaceFn=null,this.context=void 0,this.matchers=null,this.tagBuilder=null,this.urls=this.normalizeUrlsCfg(t.urls),this.email=\"boolean\"==typeof t.email?t.email:this.email,this.phone=\"boolean\"==typeof t.phone?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=\"boolean\"==typeof t.newWindow?t.newWindow:this.newWindow,this.stripPrefix=this.normalizeStripPrefixCfg(t.stripPrefix),this.stripTrailingSlash=\"boolean\"==typeof t.stripTrailingSlash?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=\"boolean\"==typeof t.decodePercentEncoding?t.decodePercentEncoding:this.decodePercentEncoding;var r=this.mention;if(!1!==r&&\"twitter\"!==r&&\"instagram\"!==r&&\"soundcloud\"!==r)throw new Error(\"invalid `mention` cfg - see docs\");var n=this.hashtag;if(!1!==n&&\"twitter\"!==n&&\"facebook\"!==n&&\"instagram\"!==n)throw new Error(\"invalid `hashtag` cfg - see docs\");this.truncate=this.normalizeTruncateCfg(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,r){return new e(r).link(t)},e.parse=function(t,r){return new e(r).parse(t)},e.prototype.normalizeUrlsCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{schemeMatches:e,wwwMatches:e,tldMatches:e}:{schemeMatches:\"boolean\"!=typeof e.schemeMatches||e.schemeMatches,wwwMatches:\"boolean\"!=typeof e.wwwMatches||e.wwwMatches,tldMatches:\"boolean\"!=typeof e.tldMatches||e.tldMatches}},e.prototype.normalizeStripPrefixCfg=function(e){return null==e&&(e=!0),\"boolean\"==typeof e?{scheme:e,www:e}:{scheme:\"boolean\"!=typeof e.scheme||e.scheme,www:\"boolean\"!=typeof e.www||e.www}},e.prototype.normalizeTruncateCfg=function(e){return\"number\"==typeof e?{length:e,location:\"end\"}:function(e,t){for(var r in t)t.hasOwnProperty(r)&&void 0===e[r]&&(e[r]=t[r]);return e}(e||{},{length:Number.POSITIVE_INFINITY,location:\"end\"})},e.prototype.parse=function(e){var t=this,r=[\"a\",\"style\",\"script\"],n=0,o=[];return ht(e,{onOpenTag:function(e){r.indexOf(e)>=0&&n++},onText:function(e,r){if(0===n){var s=function(e,t){if(!t.global)throw new Error(\"`splitRegex` must have the 'g' flag set\");for(var r,n=[],o=0;r=t.exec(e);)n.push(e.substring(o,r.index)),n.push(r[0]),o=r.index+r[0].length;return n.push(e.substring(o)),n}(e,/( | |<|<|>|>|"|"|')/gi),i=r;s.forEach(function(e,r){if(r%2==0){var n=t.parseText(e,i);o.push.apply(o,n)}i+=e.length})}},onCloseTag:function(e){r.indexOf(e)>=0&&(n=Math.max(n-1,0))},onComment:function(e){},onDoctype:function(e){}}),o=this.compactMatches(o),o=this.removeUnwantedMatches(o)},e.prototype.compactMatches=function(e){e.sort(function(e,t){return e.getOffset()-t.getOffset()});for(var t=0;t<e.length-1;t++){var r=e[t],n=r.getOffset(),o=r.getMatchedText().length,s=n+o;if(t+1<e.length){if(e[t+1].getOffset()===n){var i=e[t+1].getMatchedText().length>o?t:t+1;e.splice(i,1);continue}e[t+1].getOffset()<s&&e.splice(t+1,1)}}return e},e.prototype.removeUnwantedMatches=function(e){return this.hashtag||qe(e,function(e){return\"hashtag\"===e.getType()}),this.email||qe(e,function(e){return\"email\"===e.getType()}),this.phone||qe(e,function(e){return\"phone\"===e.getType()}),this.mention||qe(e,function(e){return\"mention\"===e.getType()}),this.urls.schemeMatches||qe(e,function(e){return\"url\"===e.getType()&&\"scheme\"===e.getUrlMatchType()}),this.urls.wwwMatches||qe(e,function(e){return\"url\"===e.getType()&&\"www\"===e.getUrlMatchType()}),this.urls.tldMatches||qe(e,function(e){return\"url\"===e.getType()&&\"tld\"===e.getUrlMatchType()}),e},e.prototype.parseText=function(e,t){void 0===t&&(t=0),t=t||0;for(var r=this.getMatchers(),n=[],o=0,s=r.length;o<s;o++){for(var i=r[o].parseMatches(e),a=0,u=i.length;a<u;a++)i[a].setOffset(t+i[a].getOffset());n.push.apply(n,i)}return n},e.prototype.link=function(e){if(!e)return\"\";for(var t=this.parse(e),r=[],n=0,o=0,s=t.length;o<s;o++){var i=t[o];r.push(e.substring(n,i.getOffset())),r.push(this.createMatchReturnVal(i)),n=i.getOffset()+i.getMatchedText().length}return r.push(e.substring(n)),r.join(\"\")},e.prototype.createMatchReturnVal=function(e){var t;return this.replaceFn&&(t=this.replaceFn.call(this.context,e)),\"string\"==typeof t?t:!1===t?e.getMatchedText():t instanceof Me?t.toAnchorString():e.buildTag().toAnchorString()},e.prototype.getMatchers=function(){if(this.matchers)return this.matchers;var e=this.getTagBuilder(),t=[new lt({tagBuilder:e,serviceName:this.hashtag}),new st({tagBuilder:e}),new ct({tagBuilder:e}),new pt({tagBuilder:e,serviceName:this.mention}),new ut({tagBuilder:e,stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding})];return this.matchers=t},e.prototype.getTagBuilder=function(){var e=this.tagBuilder;return e||(e=this.tagBuilder=new Se({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),e},e.version=\"3.11.0\",e.AnchorTagBuilder=Se,e.HtmlTag=Me,e.matcher={Email:st,Hashtag:lt,Matcher:Ue,Mention:pt,Phone:ct,Url:ut},e.match={Email:ze,Hashtag:Pe,Match:Te,Mention:je,Phone:Ie,Url:Oe},e}(),dt=/www|@|\\:\\/\\//;function mt(e){return/^<\\/a\\s*>/i.test(e)}function bt(){var e=[],t=new gt({stripPrefix:!1,url:!0,email:!0,replaceFn:function(t){switch(t.getType()){case\"url\":e.push({text:t.matchedText,url:t.getUrl()});break;case\"email\":e.push({text:t.matchedText,url:\"mailto:\"+t.getEmail().replace(/^mailto:/i,\"\")})}return!1}});return{links:e,autolinker:t}}function vt(e){var t,r,n,o,s,i,a,u,l,c,p,h,f,g,d=e.tokens,m=null;for(r=0,n=d.length;r<n;r++)if(\"inline\"===d[r].type)for(p=0,t=(o=d[r].children).length-1;t>=0;t--)if(\"link_close\"!==(s=o[t]).type){if(\"htmltag\"===s.type&&(g=s.content,/^<a[>\\s]/i.test(g)&&p>0&&p--,mt(s.content)&&p++),!(p>0)&&\"text\"===s.type&&dt.test(s.content)){if(m||(h=(m=bt()).links,f=m.autolinker),i=s.content,h.length=0,f.link(i),!h.length)continue;for(a=[],c=s.level,u=0;u<h.length;u++)e.inline.validateLink(h[u].url)&&((l=i.indexOf(h[u].text))&&a.push({type:\"text\",content:i.slice(0,l),level:c}),a.push({type:\"link_open\",href:h[u].url,title:\"\",level:c++}),a.push({type:\"text\",content:h[u].text,level:c}),a.push({type:\"link_close\",level:--c}),i=i.slice(l+h[u].text.length));i.length&&a.push({type:\"text\",content:i,level:c}),d[r].children=o=[].concat(o.slice(0,t),a,o.slice(t+1))}}else for(t--;o[t].level!==s.level&&\"link_open\"!==o[t].type;)t--}e.Remarkable=_e,e.linkify=function(e){e.core.ruler.push(\"linkify\",vt)},e.utils=A,Object.defineProperty(e,\"__esModule\",{value:!0})});\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/markdown/remarkable.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/markdown/images/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/images/new-markdown-button",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-new-markdown-button tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <rect x=\"80\" y=\"96\" width=\"48\" height=\"16\" rx=\"8\"></rect>\n <rect x=\"96\" y=\"80\" width=\"16\" height=\"48\" rx=\"8\"></rect>\n <path d=\"M3.23876972,39.5396716 C3.23876972,35.9653274 6.13586353,33.0691646 9.7141757,33.0691646 L98.1283744,33.0691646 C101.706101,33.0691646 104.60378,35.9646626 104.60378,39.5396716 L104.60378,84.8296213 C104.60378,88.4039654 101.706687,91.3001282 98.1283744,91.3001282 L9.7141757,91.3001282 C6.13644944,91.3001282 3.23876972,88.4046302 3.23876972,84.8296213 L3.23876972,39.5396716 L3.23876972,39.5396716 Z M-2.15298617,39.5396716 L-2.15298617,84.8296213 C-2.15298617,91.3833243 3.15957363,96.6918841 9.7141757,96.6918841 L98.1283744,96.6918841 C104.684083,96.6918841 109.995536,91.382138 109.995536,84.8296213 L109.995536,39.5396716 C109.995536,32.9859686 104.682977,27.6774087 98.1283744,27.6774087 L9.7141757,27.6774087 C3.15846686,27.6774087 -2.15298617,32.9871549 -2.15298617,39.5396716 Z M14.0222815,80.5166164 L14.0222815,43.8526764 L24.8057933,43.8526764 L35.589305,57.3320661 L46.3728168,43.8526764 L57.1563286,43.8526764 L57.1563286,80.5166164 L46.3728168,80.5166164 L46.3728168,59.4887685 L35.589305,72.9681582 L24.8057933,59.4887685 L24.8057933,80.5166164 L14.0222815,80.5166164 Z M81.4192301,80.5166164 L65.2439624,62.723822 L76.0274742,62.723822 L76.0274742,43.8526764 L86.810986,43.8526764 L86.810986,62.723822 L97.5944978,62.723822 L81.4192301,80.5166164 Z\"transform=\"translate(53.921275, 62.184646) rotate(-60.000000) translate(-53.921275, -62.184646) \"></path>\n </g>\n</svg>"
},
"$:/plugins/tiddlywiki/markdown/new-markdown-button": {
"title": "$:/plugins/tiddlywiki/markdown/new-markdown-button",
"tags": "$:/tags/PageControls",
"caption": "{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}} {{$:/language/Buttons/NewMarkdown/Caption}}",
"description": "{{$:/language/Buttons/NewMarkdown/Hint}}",
"list-after": "$:/core/ui/Buttons/new-tiddler",
"text": "\\whitespace trim\n<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-new-tiddler\" type=\"text/x-markdown\"/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>\n</$list>\n</$button>\n"
},
"$:/plugins/tiddlywiki/markdown/readme": {
"title": "$:/plugins/tiddlywiki/markdown/readme",
"text": "This is a TiddlyWiki plugin for parsing Markdown text, using the [[Remarkable|https://github.com/jonschlinkert/remarkable]] library.\n\nIt is completely self-contained, and doesn't need an Internet connection in order to work. It works both in the browser and under Node.js.\n\n[[Source code|https://github.com/Jermolene/TiddlyWiki5/blob/master/plugins/tiddlywiki/markdown]]\n"
},
"$:/plugins/tiddlywiki/markdown/usage": {
"title": "$:/plugins/tiddlywiki/markdown/usage",
"text": "! Plugin Configuration\n\n|!Config |!Default |!Description |\n| <code>[[breaks|$:/config/markdown/breaks]]</code>| ``false``|Remarkable library config: Convert '\\n' in paragraphs into ``<br>`` |\n| <code>[[linkify|$:/config/markdown/linkify]]</code>| ``false``|Remarkable library config: Autoconvert URL-like text to links |\n| <code>[[linkNewWindow|$:/config/markdown/linkNewWindow]]</code>| ``true``|For external links, should clicking on them open a new window/tab automatically? |\n| <code>[[quotes|$:/config/markdown/quotes]]</code>| ``“”‘’``|Remarkable library config: Double + single quotes replacement pairs, when ``typographer`` enabled |\n| <code>[[renderWikiText|$:/config/markdown/renderWikiText]]</code>| ``true``|After Markdown is parsed, should any text elements be handed off to the ~WikiText parser for further processing? |\n| <code>[[renderWikiTextPragma|$:/config/markdown/renderWikiTextPragma]]</code>| ``\\rules only html image macrocallinline syslink transcludeinline wikilink filteredtranscludeblock macrocallblock transcludeblock``|When handing off to the ~WikiText parser, what pragma rules should it follow? |\n| <code>[[typographer|$:/config/markdown/typographer]]</code>| ``false``|Remarkable library config: Enable some language-neutral replacement + quotes beautification |\n\n! Creating ~WikiLinks\n\nCreate wiki links with the usual Markdown link syntax targeting `#` and the target tiddler title:\n\n```\n[link text](#TiddlerTitle)\n```\n\nIf the target tiddler has a space in its name, that name must be URL-escaped to be detected as a URL:\n\n```\n[link text](#Test%20Tiddler)\n```\n\n! Images\n\nMarkdown image syntax can be used to reference images by tiddler title or an external URI. For example:\n\n```\n\n\n\n```\n"
},
"$:/plugins/tiddlywiki/markdown/wrapper.js": {
"title": "$:/plugins/tiddlywiki/markdown/wrapper.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/markdown/wrapper.js\ntype: application/javascript\nmodule-type: parser\n\nWraps up the remarkable parser for use as a Parser in TiddlyWiki\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar r = require(\"$:/plugins/tiddlywiki/markdown/remarkable.js\");\n\nvar Remarkable = r.Remarkable,\n\tlinkify = r.linkify,\n\tutils = r.utils;\n\n///// Set up configuration options /////\nfunction parseAsBoolean(tiddlerName) {\n\treturn $tw.wiki.getTiddlerText(tiddlerName).toLowerCase() === \"true\";\n}\nvar pluginOpts = {\n\tlinkNewWindow: parseAsBoolean(\"$:/config/markdown/linkNewWindow\"),\n\trenderWikiText: parseAsBoolean(\"$:/config/markdown/renderWikiText\"),\n\trenderWikiTextPragma: $tw.wiki.getTiddlerText(\"$:/config/markdown/renderWikiTextPragma\").trim()\n};\nvar remarkableOpts = {\n\tbreaks: parseAsBoolean(\"$:/config/markdown/breaks\"),\n\tquotes: $tw.wiki.getTiddlerText(\"$:/config/markdown/quotes\"),\n\ttypographer: parseAsBoolean(\"$:/config/markdown/typographer\")\n};\n\nvar md = new Remarkable(remarkableOpts);\n\nif (parseAsBoolean(\"$:/config/markdown/linkify\")) {\n\tmd = md.use(linkify);\n}\n\nfunction findTagWithType(nodes, startPoint, type, level) {\n\tfor (var i = startPoint; i < nodes.length; i++) {\n\t\tif (nodes[i].type === type && nodes[i].level === level) {\n\t\t\treturn i;\n\t\t}\n\t}\n\treturn false;\n}\n\n/**\n * Remarkable creates nodes that look like:\n * [\n * { type: 'paragraph_open'},\n * { type: 'inline', content: 'Hello World', children:[{type: 'text', content: 'Hello World'}]},\n * { type: 'paragraph_close'}\n * ]\n *\n * But TiddlyWiki wants the Parser (https://tiddlywiki.com/dev/static/Parser.html) to emit nodes like:\n *\n * [\n * { type: 'element', tag: 'p', children: [{type: 'text', text: 'Hello World'}]}\n * ]\n */\nfunction convertNodes(remarkableTree, isStartOfInline) {\n\tlet out = [];\n\n\tfunction wrappedElement(elementTag, currentIndex, currentLevel, closingType, nodes) {\n\t\tvar j = findTagWithType(nodes, currentIndex + 1, closingType, currentLevel);\n\t\tif (j === false) {\n\t\t\tconsole.error(\"Failed to find a \" + closingType + \" node after position \" + currentIndex);\n\t\t\tconsole.log(nodes);\n\t\t\treturn currentIndex + 1;\n\t\t}\n\t\tlet children = convertNodes(nodes.slice(currentIndex + 1, j));\n\n\t\tout.push({\n\t\t\ttype: \"element\",\n\t\t\ttag: elementTag,\n\t\t\tchildren: children\n\t\t});\n\t\treturn j;\n\t}\n\n\tfor (var i = 0; i < remarkableTree.length; i++) {\n\t\tvar currentNode = remarkableTree[i];\n\t\tif (currentNode.type === \"paragraph_open\") {\n\t\t\ti = wrappedElement(\"p\", i, currentNode.level, \"paragraph_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"heading_open\") {\n\t\t\ti = wrappedElement(\"h\" + currentNode.hLevel, i, currentNode.level, \"heading_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"bullet_list_open\") {\n\t\t\ti = wrappedElement(\"ul\", i, currentNode.level, \"bullet_list_close\", remarkableTree);\n\t\t} else if (currentNode.type == 'ordered_list_open') {\n\t\t\ti = wrappedElement('ol', i, currentNode.level,'ordered_list_close', remarkableTree);\n\t\t} else if (currentNode.type === \"list_item_open\") {\n\t\t\ti = wrappedElement(\"li\", i, currentNode.level, \"list_item_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"link_open\") {\n\t\t\tvar j = findTagWithType(remarkableTree, i + 1, \"link_close\", currentNode.level);\n\n\t\t\tif (currentNode.href[0] !== \"#\") {\n\t\t\t\t// External link\n\t\t\t\tvar attributes = {\n\t\t\t\t\thref: { type: \"string\", value: currentNode.href }\n\t\t\t\t};\n\t\t\t\tif (pluginOpts.linkNewWindow) {\n\t\t\t\t\tattributes.target = { type: \"string\", value: \"_blank\" };\n\t\t\t\t}\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"element\",\n\t\t\t\t\ttag: \"a\",\n\t\t\t\t\tattributes: attributes,\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// Internal link\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"link\",\n\t\t\t\t\tattributes: {\n\t\t\t\t\t\tto: { type: \"string\", value: decodeURI(currentNode.href.substr(1)) }\n\t\t\t\t\t},\n\t\t\t\t\tchildren: convertNodes(remarkableTree.slice(i + 1, j))\n\t\t\t\t});\n\t\t\t}\n\t\t\ti = j;\n\t\t} else if (currentNode.type.substr(currentNode.type.length - 5) === \"_open\") {\n\t\t\tvar tagName = currentNode.type.substr(0, currentNode.type.length - 5);\n\t\t\ti = wrappedElement(tagName, i, currentNode.level, tagName + \"_close\", remarkableTree);\n\t\t} else if (currentNode.type === \"code\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: currentNode.block ? \"pre\" : \"code\",\n\t\t\t\tchildren: [{ type: \"text\", text: currentNode.content }]\n\t\t\t});\n\t\t} else if (currentNode.type === \"fence\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"codeblock\",\n\t\t\t\tattributes: {\n\t\t\t\t\tlanguage: { type: \"string\", value: currentNode.params },\n\t\t\t\t\tcode: { type: \"string\", value: currentNode.content }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"image\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"image\",\n\t\t\t\tattributes: {\n\t\t\t\t\ttooltip: { type: \"string\", value: currentNode.alt },\n\t\t\t\t\tsource: { type: \"string\", value: currentNode.src }\n\t\t\t\t}\n\t\t\t});\n\t\t} else if (currentNode.type === \"softbreak\") {\n\t\t\tout.push({\n\t\t\t\ttype: \"element\",\n\t\t\t\ttag: \"br\",\n\t\t\t});\n\t\t} else if (currentNode.type == 'hr') {\n\t\t\tout.push({\n\t\t\t\ttype: 'element',\n\t\t\t\ttag: 'hr',\n\t\t\t});\n\t\t} else if (currentNode.type === \"inline\") {\n\t\t\tout = out.concat(convertNodes(currentNode.children, true));\n\t\t} else if (currentNode.type === \"text\") {\n\t\t\tif (!pluginOpts.renderWikiText) {\n\t\t\t\tout.push({\n\t\t\t\t\ttype: \"text\",\n\t\t\t\t\ttext: currentNode.content\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\t// The Markdown compiler thinks this is just text.\n\t\t\t\t// Hand off to the WikiText parser to see if there's more to render\n\n\t\t\t\t// If we're inside a block element (div, p, td, h1), and this is the first child in the tree,\n\t\t\t\t// handle as a block-level parse. Otherwise not.\n\t\t\t\tvar parseAsInline = !(isStartOfInline && i === 0);\n\t\t\t\tvar textToParse = currentNode.content;\n\t\t\t\tif (pluginOpts.renderWikiTextPragma !== \"\") {\n\t\t\t\t\ttextToParse = pluginOpts.renderWikiTextPragma + \"\\n\" + textToParse;\n\t\t\t\t}\n\t\t\t\tvar wikiParser = $tw.wiki.parseText(\"text/vnd.tiddlywiki\", textToParse, {\n\t\t\t\t\tparseAsInline: parseAsInline\n\t\t\t\t});\n\t\t\t\tvar rs = wikiParser.tree;\n\n\t\t\t\t// If we parsed as a block, but the root element the WikiText parser gave is a paragraph,\n\t\t\t\t// we should discard the paragraph, since the way Remarkable nests its nodes, this \"inline\"\n\t\t\t\t// node is always inside something else that's a block-level element\n\t\t\t\tif (!parseAsInline\n\t\t\t\t\t&& rs.length === 1\n\t\t\t\t\t&& rs[0].type === \"element\"\n\t\t\t\t\t&& rs[0].tag === \"p\"\n\t\t\t\t) {\n\t\t\t\t\trs = rs[0].children;\n\t\t\t\t}\n\n\t\t\t\t// If the original text element started with a space, add it back in\n\t\t\t\tif (rs.length > 0\n\t\t\t\t\t&& rs[0].type === \"text\"\n\t\t\t\t\t&& currentNode.content[0] === \" \"\n\t\t\t\t) {\n\t\t\t\t\trs[0].text = \" \" + rs[0].text;\n\t\t\t\t}\n\t\t\t\tout = out.concat(rs);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Unknown node type: \" + currentNode.type, currentNode);\n\t\t\tout.push({\n\t\t\t\ttype: \"text\",\n\t\t\t\ttext: currentNode.content\n\t\t\t});\n\t\t}\n\t}\n\treturn out;\n}\n\nvar MarkdownParser = function(type, text, options) {\n\tvar tree = md.parse(text, {});\n\t//console.debug(tree);\n\ttree = convertNodes(tree);\n\t//console.debug(tree);\n\n\tthis.tree = tree;\n};\n\nexports[\"text/x-markdown\"] = MarkdownParser;\n\n})();\n",
"type": "application/javascript",
"module-type": "parser"
}
}
}
<$button tooltip={{$:/language/Buttons/NewMarkdown/Hint}} aria-label={{$:/language/Buttons/NewMarkdown/Caption}} class=<<tv-config-toolbar-class>>>
<$action-sendmessage $message="tm-new-tiddler" type="text/x-markdown"/>
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/plugins/tiddlywiki/markdown/images/new-markdown-button}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text={{$:/language/Buttons/NewMarkdown/Caption}}/></span>
</$list>
</$button>
{
"tiddlers": {
"$:/plugins/tiddlywiki/qrcode/MakeContactQR": {
"title": "$:/plugins/tiddlywiki/qrcode/MakeContactQR",
"tags": "$:/tags/MakeQR",
"caption": "Contact",
"text": "\\define wifi-url()\nWIFI:wifi name;T:WPA;S:SSID;P:password;\n\\end\n\n\\define image(firstname,lastname,address,tel,email)\n<img src=<<makeqr text:\"\"\"MECARD:N:$lastname$,$firstname$;ADR:$address$;TEL:$tel$;EMAIL:$email$;;\"\"\" size:\"350\">>/>\n\\end\n\n! Enter the contact details\n\nFirst name: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/contact/firstname\" tag=\"input\" default=\"\"/>\n\nLast name: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/contact/lastname\" tag=\"input\" default=\"\"/>\n\nAddress: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/contact/address\" tag=\"input\" default=\"\"/>\n\nTelephone: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/contact/tel\" tag=\"input\" default=\"\"/>\n\nEmail: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/contact/email\" tag=\"input\" default=\"\"/>\n\n! Here is your QR code\n\n<$macrocall $name=\"image\" firstname={{$:/config/plugins/tiddlywiki/qrcode/contact/firstname}} lastname={{$:/config/plugins/tiddlywiki/qrcode/contact/lastname}} address={{$:/config/plugins/tiddlywiki/qrcode/contact/address}} tel={{$:/config/plugins/tiddlywiki/qrcode/contact/tel}} email={{$:/config/plugins/tiddlywiki/qrcode/contact/email}}/>\n"
},
"$:/plugins/tiddlywiki/qrcode/MakeGenericQR": {
"title": "$:/plugins/tiddlywiki/qrcode/MakeGenericQR",
"tags": "$:/tags/MakeQR",
"caption": "Generic",
"text": "\\define image(content)\n<img src=<<makeqr text:\"\"\"$content$\"\"\" size:\"350\">>/>\n\\end\n\n! Enter the details\n\nYou can also use this form to encode URLs.\n\n<$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/generic\" default=\"\" class=\"tc-edit-texteditor\"/>\n\n! Here is your QR code\n\n<$macrocall $name=\"image\" content={{$:/config/plugins/tiddlywiki/qrcode/generic}}/>\n"
},
"$:/plugins/tiddlywiki/qrcode/MakeWifiQR": {
"title": "$:/plugins/tiddlywiki/qrcode/MakeWifiQR",
"tags": "$:/tags/MakeQR",
"caption": "Wifi",
"text": "\\define wifi-url()\nWIFI:T:WPA;S:SSID;P:password;;\n\\end\n\n\\define image(network,encryption,ssid,password)\n<img src=<<makeqr text:\"\"\"WIFI:T:$encryption$;S:$ssid$;P:$password$;;\"\"\" size:\"350\">>/>\n\\end\n\n! Enter the details of your wifi network\n\nEncryption: <$select tiddler=\"$:/config/plugins/tiddlywiki/qrcode/wifi/encryption\" default=\"none\">\n<option value=\"none\">None</option>\n<option value=\"WEP\">WEP</option>\n<option value=\"WPA\">WPA</option>\n<option value=\"WPA2\">WPA2</option>\n</$select>\n\nSSID: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/wifi/ssid\" tag=\"input\" default=\"\"/>\n\nPassword: <$edit-text tiddler=\"$:/config/plugins/tiddlywiki/qrcode/wifi/password\" tag=\"input\" default=\"\"/>\n\n! Here is your QR code\n\n<$macrocall $name=\"image\" network={{$:/config/plugins/tiddlywiki/qrcode/wifi/network}} encryption={{$:/config/plugins/tiddlywiki/qrcode/wifi/encryption}} ssid={{$:/config/plugins/tiddlywiki/qrcode/wifi/ssid}} password={{$:/config/plugins/tiddlywiki/qrcode/wifi/password}}/>\n"
},
"$:/plugins/tiddlywiki/qrcode/ViewToolbarButton": {
"title": "$:/plugins/tiddlywiki/qrcode/ViewToolbarButton",
"tags": "$:/tags/ViewToolbar",
"list-before": "$:/core/ui/Buttons/close",
"caption": "{{$:/plugins/tiddlywiki/qrcode/icon}}",
"short-caption": "QR code",
"description": "Generate QR code for this tiddler",
"text": "\\whitespace trim\n<span class=\"tc-popup-keep\">\n<$button popup=<<qualify \"$:/state/popup/qrcode\">> tooltip={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!description}} aria-label={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!short-caption}} class=<<tv-config-toolbar-class>> class=<<tv-config-toolbar-class>> selectedClass=\"tc-selected\">\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/qrcode/icon}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!short-caption}}/>\n</span>\n</$list>\n</$button>\n</span>\n<$reveal state=<<qualify \"$:/state/popup/qrcode\">> type=\"popup\" position=\"below\" animate=\"yes\">\n\n<div class=\"tc-drop-down\">\n\n{{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton||description}}\n\n<$set name=\"tv-config-toolbar-icons\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-text\" value=\"yes\">\n\n<$set name=\"tv-config-toolbar-class\" value=\"tc-btn-invisible\">\n\n<$set name=\"targetTiddler\" value=<<currentTiddler>>>\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/ViewToolbarButton/QRcode]!has[draft.of]]\">\n\n<$button popup=<<qualify \"$:/state/popup/qrcode/type\">> class=\"tc-btn-invisible\" selectedClass=\"tc-selected\">\n\n<$action-sendmessage $message=\"tm-modal\" $param=<<currentTiddler>> currentTiddler=<<targetTiddler>>/>\n\n<$transclude field=\"caption\" mode=\"inline\"/>\n\n</$button>\n\n</$list>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</$set>\n\n</div>\n\n</$reveal>\n"
},
"$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/Raw": {
"title": "$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/Raw",
"tags": "$:/tags/ViewToolbarButton/QRcode",
"caption": "Raw content of this tiddler",
"subtitle": "QR code of raw tiddler content",
"text": "\\define image()\n<img src=<<makeqr text:\"\"\"$(content)$\"\"\" size:\"350\">>/>\n\\end\n\n<$set name=\"content\" value={{!!text}}>\n<<image>>\n</$set>\n"
},
"$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/Rendered": {
"title": "$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/Rendered",
"tags": "$:/tags/ViewToolbarButton/QRcode",
"caption": "Rendered content of this tiddler",
"subtitle": "QR code of rendered tiddler content",
"text": "\\define image()\n<img src=<<makeqr text:\"\"\"$(content)$\"\"\" size:\"350\">>/>\n\\end\n\n<$wikify name=\"content\" text={{!!text}} type=\"text\" mode=\"block\" output=\"formattedtext\">\n<<image>>\n</$wikify>\n"
},
"$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/URL": {
"title": "$:/plugins/tiddlywiki/qrcode/ViewToolbarButton/URL",
"tags": "$:/tags/ViewToolbarButton/QRcode",
"caption": "URL of this tiddler",
"subtitle": "QR code of URL of this tiddler",
"text": "\\define image()\n<img src=<<makeqr text:\"\"\"$(url)$#$(hash)$\"\"\" size:\"350\">>/>\n\\end\n\n<$set name=\"url\" value={{$:/info/url/full}}>\n<$set name=\"hash\" filter=\"[<currentTiddler>encodeuricomponent[]]\" select=\"0\">\n<<image>>\n</$set>\n</$set>\n"
},
"$:/plugins/tiddlywiki/qrcode/styles": {
"title": "$:/plugins/tiddlywiki/qrcode/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-drop-down .tc-qrcode-drop-down img {\n\twidth: 100%;\n\theight: 100%;\n}\n"
},
"$:/plugins/tiddlywiki/qrcode/examples": {
"title": "$:/plugins/tiddlywiki/qrcode/examples",
"text": "<<tabs \"[all[shadows+tiddlers]tag[$:/tags/MakeQR]!has[draft.of]]\" \"$:/plugins/tiddlywiki/qrcode/MakeGenericQR\">>"
},
"$:/plugins/tiddlywiki/qrcode/readme": {
"title": "$:/plugins/tiddlywiki/qrcode/readme",
"text": "The QR code plugin provides a macro that enables any text to be rendered as a [[QR code|https://en.wikipedia.org/wiki/QR_code]]. QR codes are a type of 2-dimensional bar code that encodes arbitrary data: text, numbers, links. QR code readers are available or built-in for smartphones, making them a convenient means to transfer information between devices\n\nThe QR code plugin adds the following features to TiddlyWiki:\n\n* A new [[makeqr Macro]] that renders specified text as a QR code image that can be displayed or printed\n* A new toolbar button that can display several QR code renderings of the content of a tiddler:\n** Raw content\n** Rendered, formatted content\n** URL of tiddler\n\nThe QR code plugin is based on the library [[qrcode.js by Zeno Zeng|https://github.com/zenozeng/node-yaqrcode]]."
},
"$:/plugins/tiddlywiki/qrcode/usage": {
"title": "$:/plugins/tiddlywiki/qrcode/usage",
"text": "! `makeqr` Macro\n\nThe <<.def makeqr>> [[macro|Macros]] converts text data into an image of the corresponding QR code. The image is returned as [[base64-encoded data URI|https://developer.mozilla.org/en-US/docs/Web/HTTP/Basics_of_HTTP/Data_URIs]].\n\n!! Parameters\n\n;text\n: The text to encode\n;size\n: The size of the image in pixels (defaults to 500)\n;errorCorrectLevel\n: Determines the amount of error correction applied to the image; see below (defaults to \"M\").\n;fallback\n: The fallback image to be returned in case of an error (see below)\n\nThe conversion will fail if the text is too long and/or complex and the macro will return the provided fallback image. If no fallback image is provided then an error image is generated.\n\nThe error correction level is a [[QR code feature|http://www.qrcode.com/en/about/error_correction.html]]:\n\n<<<\nQR Code has error correction capability to restore data if the code is dirty or damaged. ... Level Q or H may be selected for factory environment where QR Code get dirty, whereas Level L may be selected for clean environment with the large amount of data. Typically, Level M (15%) is most frequently selected.\n<<<\n\n!! Examples\n\nMaking a QR code for a simple string of text:\n\n```\n<<makeqr \"Hello there!\">>\n```\n\nMaking a QR code for the URL field of the current tiddler:\n\n```\n<$macrocall $name=\"makeqr\" text={{!!url}}/>\n```\n\nMaking a QR code for the URL of the current wiki:\n\n```\n<$macrocall $name=\"makeqr\" text={{$:/info/url/full}}/>\n```\n"
},
"$:/plugins/tiddlywiki/qrcode/qrcode.js": {
"text": "//---------------------------------------------------------------------\n//\n// QR Code Generator for JavaScript\n//\n// Copyright (c) 2009 Kazuhiko Arase\n//\n// URL: http://www.d-project.com/\n//\n// Licensed under the MIT license:\n//\thttp://www.opensource.org/licenses/mit-license.php\n//\n// The word 'QR Code' is registered trademark of\n// DENSO WAVE INCORPORATED\n//\thttp://www.denso-wave.com/qrcode/faqpatent-e.html\n//\n//---------------------------------------------------------------------\n\n//---------------------------------------------------------------------\n// qrcode\n//---------------------------------------------------------------------\n\n/**\n * qrcode\n * @param typeNumber 1 to 40\n * @param errorCorrectLevel 'L','M','Q','H'\n */\nvar qrcode = function(typeNumber, errorCorrectLevel) {\n\n var PAD0 = 0xEC;\n var PAD1 = 0x11;\n\n var _typeNumber = typeNumber;\n var _errorCorrectLevel = QRErrorCorrectLevel[errorCorrectLevel];\n var _modules = null;\n var _moduleCount = 0;\n var _dataCache = null;\n var _dataList = new Array();\n\n var _this = {};\n\n var makeImpl = function(test, maskPattern) {\n\n\t_moduleCount = _typeNumber * 4 + 17;\n\t_modules = function(moduleCount) {\n\t var modules = new Array(moduleCount);\n\t for (var row = 0; row < moduleCount; row += 1) {\n\t\tmodules[row] = new Array(moduleCount);\n\t\tfor (var col = 0; col < moduleCount; col += 1) {\n\t\t modules[row][col] = null;\n\t\t}\n\t }\n\t return modules;\n\t}(_moduleCount);\n\n\tsetupPositionProbePattern(0, 0);\n\tsetupPositionProbePattern(_moduleCount - 7, 0);\n\tsetupPositionProbePattern(0, _moduleCount - 7);\n\tsetupPositionAdjustPattern();\n\tsetupTimingPattern();\n\tsetupTypeInfo(test, maskPattern);\n\n\tif (_typeNumber >= 7) {\n\t setupTypeNumber(test);\n\t}\n\n\tif (_dataCache == null) {\n\t _dataCache = createData(_typeNumber, _errorCorrectLevel, _dataList);\n\t}\n\n\tmapData(_dataCache, maskPattern);\n };\n\n var setupPositionProbePattern = function(row, col) {\n\n\tfor (var r = -1; r <= 7; r += 1) {\n\n\t if (row + r <= -1 || _moduleCount <= row + r) continue;\n\n\t for (var c = -1; c <= 7; c += 1) {\n\n\t\tif (col + c <= -1 || _moduleCount <= col + c) continue;\n\n\t\tif ( (0 <= r && r <= 6 && (c == 0 || c == 6) )\n\t\t || (0 <= c && c <= 6 && (r == 0 || r == 6) )\n\t\t || (2 <= r && r <= 4 && 2 <= c && c <= 4) ) {\n\t\t _modules[row + r][col + c] = true;\n\t\t} else {\n\t\t _modules[row + r][col + c] = false;\n\t\t}\n\t }\n\t}\n };\n\n var getBestMaskPattern = function() {\n\n\tvar minLostPoint = 0;\n\tvar pattern = 0;\n\n\tfor (var i = 0; i < 8; i += 1) {\n\n\t makeImpl(true, i);\n\n\t var lostPoint = QRUtil.getLostPoint(_this);\n\n\t if (i == 0 || minLostPoint > lostPoint) {\n\t\tminLostPoint = lostPoint;\n\t\tpattern = i;\n\t }\n\t}\n\n\treturn pattern;\n };\n\n var setupTimingPattern = function() {\n\n\tfor (var r = 8; r < _moduleCount - 8; r += 1) {\n\t if (_modules[r][6] != null) {\n\t\tcontinue;\n\t }\n\t _modules[r][6] = (r % 2 == 0);\n\t}\n\n\tfor (var c = 8; c < _moduleCount - 8; c += 1) {\n\t if (_modules[6][c] != null) {\n\t\tcontinue;\n\t }\n\t _modules[6][c] = (c % 2 == 0);\n\t}\n };\n\n var setupPositionAdjustPattern = function() {\n\n\tvar pos = QRUtil.getPatternPosition(_typeNumber);\n\n\tfor (var i = 0; i < pos.length; i += 1) {\n\n\t for (var j = 0; j < pos.length; j += 1) {\n\n\t\tvar row = pos[i];\n\t\tvar col = pos[j];\n\n\t\tif (_modules[row][col] != null) {\n\t\t continue;\n\t\t}\n\n\t\tfor (var r = -2; r <= 2; r += 1) {\n\n\t\t for (var c = -2; c <= 2; c += 1) {\n\n\t\t\tif (r == -2 || r == 2 || c == -2 || c == 2\n\t\t\t || (r == 0 && c == 0) ) {\n\t\t\t _modules[row + r][col + c] = true;\n\t\t\t} else {\n\t\t\t _modules[row + r][col + c] = false;\n\t\t\t}\n\t\t }\n\t\t}\n\t }\n\t}\n };\n\n var setupTypeNumber = function(test) {\n\n\tvar bits = QRUtil.getBCHTypeNumber(_typeNumber);\n\n\tfor (var i = 0; i < 18; i += 1) {\n\t var mod = (!test && ( (bits >> i) & 1) == 1);\n\t _modules[Math.floor(i / 3)][i % 3 + _moduleCount - 8 - 3] = mod;\n\t}\n\n\tfor (var i = 0; i < 18; i += 1) {\n\t var mod = (!test && ( (bits >> i) & 1) == 1);\n\t _modules[i % 3 + _moduleCount - 8 - 3][Math.floor(i / 3)] = mod;\n\t}\n };\n\n var setupTypeInfo = function(test, maskPattern) {\n\n\tvar data = (_errorCorrectLevel << 3) | maskPattern;\n\tvar bits = QRUtil.getBCHTypeInfo(data);\n\n\t// vertical\n\tfor (var i = 0; i < 15; i += 1) {\n\n\t var mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t if (i < 6) {\n\t\t_modules[i][8] = mod;\n\t } else if (i < 8) {\n\t\t_modules[i + 1][8] = mod;\n\t } else {\n\t\t_modules[_moduleCount - 15 + i][8] = mod;\n\t }\n\t}\n\n\t// horizontal\n\tfor (var i = 0; i < 15; i += 1) {\n\n\t var mod = (!test && ( (bits >> i) & 1) == 1);\n\n\t if (i < 8) {\n\t\t_modules[8][_moduleCount - i - 1] = mod;\n\t } else if (i < 9) {\n\t\t_modules[8][15 - i - 1 + 1] = mod;\n\t } else {\n\t\t_modules[8][15 - i - 1] = mod;\n\t }\n\t}\n\n\t// fixed module\n\t_modules[_moduleCount - 8][8] = (!test);\n };\n\n var mapData = function(data, maskPattern) {\n\n\tvar inc = -1;\n\tvar row = _moduleCount - 1;\n\tvar bitIndex = 7;\n\tvar byteIndex = 0;\n\tvar maskFunc = QRUtil.getMaskFunction(maskPattern);\n\n\tfor (var col = _moduleCount - 1; col > 0; col -= 2) {\n\n\t if (col == 6) col -= 1;\n\n\t while (true) {\n\n\t\tfor (var c = 0; c < 2; c += 1) {\n\n\t\t if (_modules[row][col - c] == null) {\n\n\t\t\tvar dark = false;\n\n\t\t\tif (byteIndex < data.length) {\n\t\t\t dark = ( ( (data[byteIndex] >>> bitIndex) & 1) == 1);\n\t\t\t}\n\n\t\t\tvar mask = maskFunc(row, col - c);\n\n\t\t\tif (mask) {\n\t\t\t dark = !dark;\n\t\t\t}\n\n\t\t\t_modules[row][col - c] = dark;\n\t\t\tbitIndex -= 1;\n\n\t\t\tif (bitIndex == -1) {\n\t\t\t byteIndex += 1;\n\t\t\t bitIndex = 7;\n\t\t\t}\n\t\t }\n\t\t}\n\n\t\trow += inc;\n\n\t\tif (row < 0 || _moduleCount <= row) {\n\t\t row -= inc;\n\t\t inc = -inc;\n\t\t break;\n\t\t}\n\t }\n\t}\n };\n\n var createBytes = function(buffer, rsBlocks) {\n\n\tvar offset = 0;\n\n\tvar maxDcCount = 0;\n\tvar maxEcCount = 0;\n\n\tvar dcdata = new Array(rsBlocks.length);\n\tvar ecdata = new Array(rsBlocks.length);\n\n\tfor (var r = 0; r < rsBlocks.length; r += 1) {\n\n\t var dcCount = rsBlocks[r].dataCount;\n\t var ecCount = rsBlocks[r].totalCount - dcCount;\n\n\t maxDcCount = Math.max(maxDcCount, dcCount);\n\t maxEcCount = Math.max(maxEcCount, ecCount);\n\n\t dcdata[r] = new Array(dcCount);\n\n\t for (var i = 0; i < dcdata[r].length; i += 1) {\n\t\tdcdata[r][i] = 0xff & buffer.getBuffer()[i + offset];\n\t }\n\t offset += dcCount;\n\n\t var rsPoly = QRUtil.getErrorCorrectPolynomial(ecCount);\n\t var rawPoly = qrPolynomial(dcdata[r], rsPoly.getLength() - 1);\n\n\t var modPoly = rawPoly.mod(rsPoly);\n\t ecdata[r] = new Array(rsPoly.getLength() - 1);\n\t for (var i = 0; i < ecdata[r].length; i += 1) {\n\t\tvar modIndex = i + modPoly.getLength() - ecdata[r].length;\n\t\tecdata[r][i] = (modIndex >= 0)? modPoly.getAt(modIndex) : 0;\n\t }\n\t}\n\n\tvar totalCodeCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i += 1) {\n\t totalCodeCount += rsBlocks[i].totalCount;\n\t}\n\n\tvar data = new Array(totalCodeCount);\n\tvar index = 0;\n\n\tfor (var i = 0; i < maxDcCount; i += 1) {\n\t for (var r = 0; r < rsBlocks.length; r += 1) {\n\t\tif (i < dcdata[r].length) {\n\t\t data[index] = dcdata[r][i];\n\t\t index += 1;\n\t\t}\n\t }\n\t}\n\n\tfor (var i = 0; i < maxEcCount; i += 1) {\n\t for (var r = 0; r < rsBlocks.length; r += 1) {\n\t\tif (i < ecdata[r].length) {\n\t\t data[index] = ecdata[r][i];\n\t\t index += 1;\n\t\t}\n\t }\n\t}\n\n\treturn data;\n };\n\n var createData = function(typeNumber, errorCorrectLevel, dataList) {\n\n\tvar rsBlocks = QRRSBlock.getRSBlocks(typeNumber, errorCorrectLevel);\n\n\tvar buffer = qrBitBuffer();\n\n\tfor (var i = 0; i < dataList.length; i += 1) {\n\t var data = dataList[i];\n\t buffer.put(data.getMode(), 4);\n\t buffer.put(data.getLength(), QRUtil.getLengthInBits(data.getMode(), typeNumber) );\n\t data.write(buffer);\n\t}\n\n\t// calc num max data.\n\tvar totalDataCount = 0;\n\tfor (var i = 0; i < rsBlocks.length; i += 1) {\n\t totalDataCount += rsBlocks[i].dataCount;\n\t}\n\n\tif (buffer.getLengthInBits() > totalDataCount * 8) {\n\t throw new Error('code length overflow. ('\n\t\t\t + buffer.getLengthInBits()\n\t\t\t + '>'\n\t\t\t + totalDataCount * 8\n\t\t\t + ')');\n\t}\n\n\t// end code\n\tif (buffer.getLengthInBits() + 4 <= totalDataCount * 8) {\n\t buffer.put(0, 4);\n\t}\n\n\t// padding\n\twhile (buffer.getLengthInBits() % 8 != 0) {\n\t buffer.putBit(false);\n\t}\n\n\t// padding\n\twhile (true) {\n\n\t if (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\tbreak;\n\t }\n\t buffer.put(PAD0, 8);\n\n\t if (buffer.getLengthInBits() >= totalDataCount * 8) {\n\t\tbreak;\n\t }\n\t buffer.put(PAD1, 8);\n\t}\n\n\treturn createBytes(buffer, rsBlocks);\n };\n\n _this.addData = function(data) {\n\tvar newData = qr8BitByte(data);\n\t_dataList.push(newData);\n\t_dataCache = null;\n };\n\n _this.isDark = function(row, col) {\n\tif (row < 0 || _moduleCount <= row || col < 0 || _moduleCount <= col) {\n\t throw new Error(row + ',' + col);\n\t}\n\treturn _modules[row][col];\n };\n\n _this.getModuleCount = function() {\n\treturn _moduleCount;\n };\n\n _this.make = function() {\n\tmakeImpl(false, getBestMaskPattern() );\n };\n\n _this.createTableTag = function(cellSize, margin) {\n\n\tcellSize = cellSize || 2;\n\tmargin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n\tvar qrHtml = '';\n\n\tqrHtml += '<table style=\"';\n\tqrHtml += ' border-width: 0px; border-style: none;';\n\tqrHtml += ' border-collapse: collapse;';\n\tqrHtml += ' padding: 0px; margin: ' + margin + 'px;';\n\tqrHtml += '\">';\n\tqrHtml += '<tbody>';\n\n\tfor (var r = 0; r < _this.getModuleCount(); r += 1) {\n\n\t qrHtml += '<tr>';\n\n\t for (var c = 0; c < _this.getModuleCount(); c += 1) {\n\t\tqrHtml += '<td style=\"';\n\t\tqrHtml += ' border-width: 0px; border-style: none;';\n\t\tqrHtml += ' border-collapse: collapse;';\n\t\tqrHtml += ' padding: 0px; margin: 0px;';\n\t\tqrHtml += ' width: ' + cellSize + 'px;';\n\t\tqrHtml += ' height: ' + cellSize + 'px;';\n\t\tqrHtml += ' background-color: ';\n\t\tqrHtml += _this.isDark(r, c)? '#000000' : '#ffffff';\n\t\tqrHtml += ';';\n\t\tqrHtml += '\"/>';\n\t }\n\n\t qrHtml += '</tr>';\n\t}\n\n\tqrHtml += '</tbody>';\n\tqrHtml += '</table>';\n\n\treturn qrHtml;\n };\n\n _this.createImgTag = function(cellSize, margin, size) {\n\n\tcellSize = cellSize || 2;\n\tmargin = (typeof margin == 'undefined')? cellSize * 4 : margin;\n\n\tvar min = margin;\n\tvar max = _this.getModuleCount() * cellSize + margin;\n\n\treturn createImgTag(size, size, function(x, y) {\n\t if (min <= x && x < max && min <= y && y < max) {\n\t\tvar c = Math.floor( (x - min) / cellSize);\n\t\tvar r = Math.floor( (y - min) / cellSize);\n\t\treturn _this.isDark(r, c)? 0 : 1;\n\t } else {\n\t\treturn 1;\n\t }\n\t} );\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// qrcode.stringToBytes\n//---------------------------------------------------------------------\n\nqrcode.stringToBytes = function(s) {\n var bytes = new Array();\n for (var i = 0; i < s.length; i += 1) {\n\tvar c = s.charCodeAt(i);\n\tbytes.push(c & 0xff);\n }\n return bytes;\n};\n\n//---------------------------------------------------------------------\n// qrcode.createStringToBytes\n//---------------------------------------------------------------------\n\n/**\n * @param unicodeData base64 string of byte array.\n * [16bit Unicode],[16bit Bytes], ...\n * @param numChars\n */\nqrcode.createStringToBytes = function(unicodeData, numChars) {\n\n // create conversion map.\n\n var unicodeMap = function() {\n\n\tvar bin = base64DecodeInputStream(unicodeData);\n\tvar read = function() {\n\t var b = bin.read();\n\t if (b == -1) throw new Error();\n\t return b;\n\t};\n\n\tvar count = 0;\n\tvar unicodeMap = {};\n\twhile (true) {\n\t var b0 = bin.read();\n\t if (b0 == -1) break;\n\t var b1 = read();\n\t var b2 = read();\n\t var b3 = read();\n\t var k = String.fromCharCode( (b0 << 8) | b1);\n\t var v = (b2 << 8) | b3;\n\t unicodeMap[k] = v;\n\t count += 1;\n\t}\n\tif (count != numChars) {\n\t throw new Error(count + ' != ' + numChars);\n\t}\n\n\treturn unicodeMap;\n }();\n\n var unknownChar = '?'.charCodeAt(0);\n\n return function(s) {\n\tvar bytes = new Array();\n\tfor (var i = 0; i < s.length; i += 1) {\n\t var c = s.charCodeAt(i);\n\t if (c < 128) {\n\t\tbytes.push(c);\n\t } else {\n\t\tvar b = unicodeMap[s.charAt(i)];\n\t\tif (typeof b == 'number') {\n\t\t if ( (b & 0xff) == b) {\n\t\t\t// 1byte\n\t\t\tbytes.push(b);\n\t\t } else {\n\t\t\t// 2bytes\n\t\t\tbytes.push(b >>> 8);\n\t\t\tbytes.push(b & 0xff);\n\t\t }\n\t\t} else {\n\t\t bytes.push(unknownChar);\n\t\t}\n\t }\n\t}\n\treturn bytes;\n };\n};\n\n//---------------------------------------------------------------------\n// QRMode\n//---------------------------------------------------------------------\n\nvar QRMode = {\n MODE_NUMBER :\t\t1 << 0,\n MODE_ALPHA_NUM : \t1 << 1,\n MODE_8BIT_BYTE : \t1 << 2,\n MODE_KANJI :\t\t1 << 3\n};\n\n//---------------------------------------------------------------------\n// QRErrorCorrectLevel\n//---------------------------------------------------------------------\n\nvar QRErrorCorrectLevel = {\n L : 1,\n M : 0,\n Q : 3,\n H : 2\n};\n\n//---------------------------------------------------------------------\n// QRMaskPattern\n//---------------------------------------------------------------------\n\nvar QRMaskPattern = {\n PATTERN000 : 0,\n PATTERN001 : 1,\n PATTERN010 : 2,\n PATTERN011 : 3,\n PATTERN100 : 4,\n PATTERN101 : 5,\n PATTERN110 : 6,\n PATTERN111 : 7\n};\n\n//---------------------------------------------------------------------\n// QRUtil\n//---------------------------------------------------------------------\n\nvar QRUtil = function() {\n\n var PATTERN_POSITION_TABLE = [\n\t[],\n\t[6, 18],\n\t[6, 22],\n\t[6, 26],\n\t[6, 30],\n\t[6, 34],\n\t[6, 22, 38],\n\t[6, 24, 42],\n\t[6, 26, 46],\n\t[6, 28, 50],\n\t[6, 30, 54],\n\t[6, 32, 58],\n\t[6, 34, 62],\n\t[6, 26, 46, 66],\n\t[6, 26, 48, 70],\n\t[6, 26, 50, 74],\n\t[6, 30, 54, 78],\n\t[6, 30, 56, 82],\n\t[6, 30, 58, 86],\n\t[6, 34, 62, 90],\n\t[6, 28, 50, 72, 94],\n\t[6, 26, 50, 74, 98],\n\t[6, 30, 54, 78, 102],\n\t[6, 28, 54, 80, 106],\n\t[6, 32, 58, 84, 110],\n\t[6, 30, 58, 86, 114],\n\t[6, 34, 62, 90, 118],\n\t[6, 26, 50, 74, 98, 122],\n\t[6, 30, 54, 78, 102, 126],\n\t[6, 26, 52, 78, 104, 130],\n\t[6, 30, 56, 82, 108, 134],\n\t[6, 34, 60, 86, 112, 138],\n\t[6, 30, 58, 86, 114, 142],\n\t[6, 34, 62, 90, 118, 146],\n\t[6, 30, 54, 78, 102, 126, 150],\n\t[6, 24, 50, 76, 102, 128, 154],\n\t[6, 28, 54, 80, 106, 132, 158],\n\t[6, 32, 58, 84, 110, 136, 162],\n\t[6, 26, 54, 82, 110, 138, 166],\n\t[6, 30, 58, 86, 114, 142, 170]\n ];\n var G15 = (1 << 10) | (1 << 8) | (1 << 5) | (1 << 4) | (1 << 2) | (1 << 1) | (1 << 0);\n var G18 = (1 << 12) | (1 << 11) | (1 << 10) | (1 << 9) | (1 << 8) | (1 << 5) | (1 << 2) | (1 << 0);\n var G15_MASK = (1 << 14) | (1 << 12) | (1 << 10) | (1 << 4) | (1 << 1);\n\n var _this = {};\n\n var getBCHDigit = function(data) {\n\tvar digit = 0;\n\twhile (data != 0) {\n\t digit += 1;\n\t data >>>= 1;\n\t}\n\treturn digit;\n };\n\n _this.getBCHTypeInfo = function(data) {\n\tvar d = data << 10;\n\twhile (getBCHDigit(d) - getBCHDigit(G15) >= 0) {\n\t d ^= (G15 << (getBCHDigit(d) - getBCHDigit(G15) ) );\n\t}\n\treturn ( (data << 10) | d) ^ G15_MASK;\n };\n\n _this.getBCHTypeNumber = function(data) {\n\tvar d = data << 12;\n\twhile (getBCHDigit(d) - getBCHDigit(G18) >= 0) {\n\t d ^= (G18 << (getBCHDigit(d) - getBCHDigit(G18) ) );\n\t}\n\treturn (data << 12) | d;\n };\n\n _this.getPatternPosition = function(typeNumber) {\n\treturn PATTERN_POSITION_TABLE[typeNumber - 1];\n };\n\n _this.getMaskFunction = function(maskPattern) {\n\n\tswitch (maskPattern) {\n\n\t case QRMaskPattern.PATTERN000 :\n\t\treturn function(i, j) { return (i + j) % 2 == 0; };\n\t case QRMaskPattern.PATTERN001 :\n\t\treturn function(i, j) { return i % 2 == 0; };\n\t case QRMaskPattern.PATTERN010 :\n\t\treturn function(i, j) { return j % 3 == 0; };\n\t case QRMaskPattern.PATTERN011 :\n\t\treturn function(i, j) { return (i + j) % 3 == 0; };\n\t case QRMaskPattern.PATTERN100 :\n\t\treturn function(i, j) { return (Math.floor(i / 2) + Math.floor(j / 3) ) % 2 == 0; };\n\t case QRMaskPattern.PATTERN101 :\n\t\treturn function(i, j) { return (i * j) % 2 + (i * j) % 3 == 0; };\n\t case QRMaskPattern.PATTERN110 :\n\t\treturn function(i, j) { return ( (i * j) % 2 + (i * j) % 3) % 2 == 0; };\n\t case QRMaskPattern.PATTERN111 :\n\t\treturn function(i, j) { return ( (i * j) % 3 + (i + j) % 2) % 2 == 0; };\n\n\t\tdefault :\n\t\tthrow new Error('bad maskPattern:' + maskPattern);\n\t}\n };\n\n _this.getErrorCorrectPolynomial = function(errorCorrectLength) {\n\tvar a = qrPolynomial([1], 0);\n\tfor (var i = 0; i < errorCorrectLength; i += 1) {\n\t a = a.multiply(qrPolynomial([1, QRMath.gexp(i)], 0) );\n\t}\n\treturn a;\n };\n\n _this.getLengthInBits = function(mode, type) {\n\n\tif (1 <= type && type < 10) {\n\n\t // 1 - 9\n\n\t switch(mode) {\n\t\tcase QRMode.MODE_NUMBER \t: return 10;\n\t\tcase QRMode.MODE_ALPHA_NUM \t: return 9;\n\t\tcase QRMode.MODE_8BIT_BYTE\t: return 8;\n\t\tcase QRMode.MODE_KANJI\t\t: return 8;\n\t\t default :\n\t\t throw new Error('mode:' + mode);\n\t }\n\n\t} else if (type < 27) {\n\n\t // 10 - 26\n\n\t switch(mode) {\n\t\tcase QRMode.MODE_NUMBER \t: return 12;\n\t\tcase QRMode.MODE_ALPHA_NUM \t: return 11;\n\t\tcase QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\tcase QRMode.MODE_KANJI\t\t: return 10;\n\t\t default :\n\t\t throw new Error('mode:' + mode);\n\t }\n\n\t} else if (type < 41) {\n\n\t // 27 - 40\n\n\t switch(mode) {\n\t\tcase QRMode.MODE_NUMBER \t: return 14;\n\t\tcase QRMode.MODE_ALPHA_NUM\t: return 13;\n\t\tcase QRMode.MODE_8BIT_BYTE\t: return 16;\n\t\tcase QRMode.MODE_KANJI\t\t: return 12;\n\t\t default :\n\t\t throw new Error('mode:' + mode);\n\t }\n\n\t} else {\n\t throw new Error('type:' + type);\n\t}\n };\n\n _this.getLostPoint = function(qrcode) {\n\n\tvar moduleCount = qrcode.getModuleCount();\n\n\tvar lostPoint = 0;\n\n\t// LEVEL1\n\n\tfor (var row = 0; row < moduleCount; row += 1) {\n\t for (var col = 0; col < moduleCount; col += 1) {\n\n\t\tvar sameCount = 0;\n\t\tvar dark = qrcode.isDark(row, col);\n\n\t\tfor (var r = -1; r <= 1; r += 1) {\n\n\t\t if (row + r < 0 || moduleCount <= row + r) {\n\t\t\tcontinue;\n\t\t }\n\n\t\t for (var c = -1; c <= 1; c += 1) {\n\n\t\t\tif (col + c < 0 || moduleCount <= col + c) {\n\t\t\t continue;\n\t\t\t}\n\n\t\t\tif (r == 0 && c == 0) {\n\t\t\t continue;\n\t\t\t}\n\n\t\t\tif (dark == qrcode.isDark(row + r, col + c) ) {\n\t\t\t sameCount += 1;\n\t\t\t}\n\t\t }\n\t\t}\n\n\t\tif (sameCount > 5) {\n\t\t lostPoint += (3 + sameCount - 5);\n\t\t}\n\t }\n\t};\n\n\t// LEVEL2\n\n\tfor (var row = 0; row < moduleCount - 1; row += 1) {\n\t for (var col = 0; col < moduleCount - 1; col += 1) {\n\t\tvar count = 0;\n\t\tif (qrcode.isDark(row, col) ) count += 1;\n\t\tif (qrcode.isDark(row + 1, col) ) count += 1;\n\t\tif (qrcode.isDark(row, col + 1) ) count += 1;\n\t\tif (qrcode.isDark(row + 1, col + 1) ) count += 1;\n\t\tif (count == 0 || count == 4) {\n\t\t lostPoint += 3;\n\t\t}\n\t }\n\t}\n\n\t// LEVEL3\n\n\tfor (var row = 0; row < moduleCount; row += 1) {\n\t for (var col = 0; col < moduleCount - 6; col += 1) {\n\t\tif (qrcode.isDark(row, col)\n\t\t && !qrcode.isDark(row, col + 1)\n\t\t && qrcode.isDark(row, col + 2)\n\t\t && qrcode.isDark(row, col + 3)\n\t\t && qrcode.isDark(row, col + 4)\n\t\t && !qrcode.isDark(row, col + 5)\n\t\t && qrcode.isDark(row, col + 6) ) {\n\t\t lostPoint += 40;\n\t\t}\n\t }\n\t}\n\n\tfor (var col = 0; col < moduleCount; col += 1) {\n\t for (var row = 0; row < moduleCount - 6; row += 1) {\n\t\tif (qrcode.isDark(row, col)\n\t\t && !qrcode.isDark(row + 1, col)\n\t\t && qrcode.isDark(row + 2, col)\n\t\t && qrcode.isDark(row + 3, col)\n\t\t && qrcode.isDark(row + 4, col)\n\t\t && !qrcode.isDark(row + 5, col)\n\t\t && qrcode.isDark(row + 6, col) ) {\n\t\t lostPoint += 40;\n\t\t}\n\t }\n\t}\n\n\t// LEVEL4\n\n\tvar darkCount = 0;\n\n\tfor (var col = 0; col < moduleCount; col += 1) {\n\t for (var row = 0; row < moduleCount; row += 1) {\n\t\tif (qrcode.isDark(row, col) ) {\n\t\t darkCount += 1;\n\t\t}\n\t }\n\t}\n\n\tvar ratio = Math.abs(100 * darkCount / moduleCount / moduleCount - 50) / 5;\n\tlostPoint += ratio * 10;\n\n\treturn lostPoint;\n };\n\n return _this;\n}();\n\n//---------------------------------------------------------------------\n// QRMath\n//---------------------------------------------------------------------\n\nvar QRMath = function() {\n\n var EXP_TABLE = new Array(256);\n var LOG_TABLE = new Array(256);\n\n // initialize tables\n for (var i = 0; i < 8; i += 1) {\n\tEXP_TABLE[i] = 1 << i;\n }\n for (var i = 8; i < 256; i += 1) {\n\tEXP_TABLE[i] = EXP_TABLE[i - 4]\n\t ^ EXP_TABLE[i - 5]\n\t ^ EXP_TABLE[i - 6]\n\t ^ EXP_TABLE[i - 8];\n }\n for (var i = 0; i < 255; i += 1) {\n\tLOG_TABLE[EXP_TABLE[i] ] = i;\n }\n\n var _this = {};\n\n _this.glog = function(n) {\n\n\tif (n < 1) {\n\t throw new Error('glog(' + n + ')');\n\t}\n\n\treturn LOG_TABLE[n];\n };\n\n _this.gexp = function(n) {\n\n\twhile (n < 0) {\n\t n += 255;\n\t}\n\n\twhile (n >= 256) {\n\t n -= 255;\n\t}\n\n\treturn EXP_TABLE[n];\n };\n\n return _this;\n}();\n\n//---------------------------------------------------------------------\n// qrPolynomial\n//---------------------------------------------------------------------\n\nfunction qrPolynomial(num, shift) {\n\n if (typeof num.length == 'undefined') {\n\tthrow new Error(num.length + '/' + shift);\n }\n\n var _num = function() {\n\tvar offset = 0;\n\twhile (offset < num.length && num[offset] == 0) {\n\t offset += 1;\n\t}\n\tvar _num = new Array(num.length - offset + shift);\n\tfor (var i = 0; i < num.length - offset; i += 1) {\n\t _num[i] = num[i + offset];\n\t}\n\treturn _num;\n }();\n\n var _this = {};\n\n _this.getAt = function(index) {\n\treturn _num[index];\n };\n\n _this.getLength = function() {\n\treturn _num.length;\n };\n\n _this.multiply = function(e) {\n\n\tvar num = new Array(_this.getLength() + e.getLength() - 1);\n\n\tfor (var i = 0; i < _this.getLength(); i += 1) {\n\t for (var j = 0; j < e.getLength(); j += 1) {\n\t\tnum[i + j] ^= QRMath.gexp(QRMath.glog(_this.getAt(i) ) + QRMath.glog(e.getAt(j) ) );\n\t }\n\t}\n\n\treturn qrPolynomial(num, 0);\n };\n\n _this.mod = function(e) {\n\n\tif (_this.getLength() - e.getLength() < 0) {\n\t return _this;\n\t}\n\n\tvar ratio = QRMath.glog(_this.getAt(0) ) - QRMath.glog(e.getAt(0) );\n\n\tvar num = new Array(_this.getLength() );\n\tfor (var i = 0; i < _this.getLength(); i += 1) {\n\t num[i] = _this.getAt(i);\n\t}\n\n\tfor (var i = 0; i < e.getLength(); i += 1) {\n\t num[i] ^= QRMath.gexp(QRMath.glog(e.getAt(i) ) + ratio);\n\t}\n\n\t// recursive call\n\treturn qrPolynomial(num, 0).mod(e);\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// QRRSBlock\n//---------------------------------------------------------------------\n\nvar QRRSBlock = function() {\n\n\n // [1: [L, M, Q, H], ..]\n var RS_BLOCK_TABLE=[[1,26,19],[1,26,16],[1,26,13],[1,26,9],[1,44,34],[1,44,28],[1,44,22],[1,44,16],[1,70,55],[1,70,44],[2,35,17],[2,35,13],[1,100,80],[2,50,32],[2,50,24],[4,25,9],[1,134,108],[2,67,43],[2,33,15,2,34,16],[2,33,11,2,34,12],[2,86,68],[4,43,27],[4,43,19],[4,43,15],[2,98,78],[4,49,31],[2,32,14,4,33,15],[4,39,13,1,40,14],[2,121,97],[2,60,38,2,61,39],[4,40,18,2,41,19],[4,40,14,2,41,15],[2,146,116],[3,58,36,2,59,37],[4,36,16,4,37,17],[4,36,12,4,37,13],[2,86,68,2,87,69],[4,69,43,1,70,44],[6,43,19,2,44,20],[6,43,15,2,44,16],[4,101,81],[1,80,50,4,81,51],[4,50,22,4,51,23],[3,36,12,8,37,13],[2,116,92,2,117,93],[6,58,36,2,59,37],[4,46,20,6,47,21],[7,42,14,4,43,15],[4,133,107],[8,59,37,1,60,38],[8,44,20,4,45,21],[12,33,11,4,34,12],[3,145,115,1,146,116],[4,64,40,5,65,41],[11,36,16,5,37,17],[11,36,12,5,37,13],[5,109,87,1,110,88],[5,65,41,5,66,42],[5,54,24,7,55,25],[11,36,12],[5,122,98,1,123,99],[7,73,45,3,74,46],[15,43,19,2,44,20],[3,45,15,13,46,16],[1,135,107,5,136,108],[10,74,46,1,75,47],[1,50,22,15,51,23],[2,42,14,17,43,15],[5,150,120,1,151,121],[9,69,43,4,70,44],[17,50,22,1,51,23],[2,42,14,19,43,15],[3,141,113,4,142,114],[3,70,44,11,71,45],[17,47,21,4,48,22],[9,39,13,16,40,14],[3,135,107,5,136,108],[3,67,41,13,68,42],[15,54,24,5,55,25],[15,43,15,10,44,16],[4,144,116,4,145,117],[17,68,42],[17,50,22,6,51,23],[19,46,16,6,47,17],[2,139,111,7,140,112],[17,74,46],[7,54,24,16,55,25],[34,37,13],[4,151,121,5,152,122],[4,75,47,14,76,48],[11,54,24,14,55,25],[16,45,15,14,46,16],[6,147,117,4,148,118],[6,73,45,14,74,46],[11,54,24,16,55,25],[30,46,16,2,47,17],[8,132,106,4,133,107],[8,75,47,13,76,48],[7,54,24,22,55,25],[22,45,15,13,46,16],[10,142,114,2,143,115],[19,74,46,4,75,47],[28,50,22,6,51,23],[33,46,16,4,47,17],[8,152,122,4,153,123],[22,73,45,3,74,46],[8,53,23,26,54,24],[12,45,15,28,46,16],[3,147,117,10,148,118],[3,73,45,23,74,46],[4,54,24,31,55,25],[11,45,15,31,46,16],[7,146,116,7,147,117],[21,73,45,7,74,46],[1,53,23,37,54,24],[19,45,15,26,46,16],[5,145,115,10,146,116],[19,75,47,10,76,48],[15,54,24,25,55,25],[23,45,15,25,46,16],[13,145,115,3,146,116],[2,74,46,29,75,47],[42,54,24,1,55,25],[23,45,15,28,46,16],[17,145,115],[10,74,46,23,75,47],[10,54,24,35,55,25],[19,45,15,35,46,16],[17,145,115,1,146,116],[14,74,46,21,75,47],[29,54,24,19,55,25],[11,45,15,46,46,16],[13,145,115,6,146,116],[14,74,46,23,75,47],[44,54,24,7,55,25],[59,46,16,1,47,17],[12,151,121,7,152,122],[12,75,47,26,76,48],[39,54,24,14,55,25],[22,45,15,41,46,16],[6,151,121,14,152,122],[6,75,47,34,76,48],[46,54,24,10,55,25],[2,45,15,64,46,16],[17,152,122,4,153,123],[29,74,46,14,75,47],[49,54,24,10,55,25],[24,45,15,46,46,16],[4,152,122,18,153,123],[13,74,46,32,75,47],[48,54,24,14,55,25],[42,45,15,32,46,16],[20,147,117,4,148,118],[40,75,47,7,76,48],[43,54,24,22,55,25],[10,45,15,67,46,16],[19,148,118,6,149,119],[18,75,47,31,76,48],[34,54,24,34,55,25],[20,45,15,61,46,16]];\n\n var qrRSBlock = function(totalCount, dataCount) {\n\tvar _this = {};\n\t_this.totalCount = totalCount;\n\t_this.dataCount = dataCount;\n\treturn _this;\n };\n\n var _this = {};\n\n var getRsBlockTable = function(typeNumber, errorCorrectLevel) {\n\n\tswitch(errorCorrectLevel) {\n\t case QRErrorCorrectLevel.L :\n\t\treturn RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 0];\n\t case QRErrorCorrectLevel.M :\n\t\treturn RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 1];\n\t case QRErrorCorrectLevel.Q :\n\t\treturn RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 2];\n\t case QRErrorCorrectLevel.H :\n\t\treturn RS_BLOCK_TABLE[(typeNumber - 1) * 4 + 3];\n\t\tdefault :\n\t\treturn undefined;\n\t}\n };\n\n _this.getRSBlocks = function(typeNumber, errorCorrectLevel) {\n\n\tvar rsBlock = getRsBlockTable(typeNumber, errorCorrectLevel);\n\n\tif (typeof rsBlock == 'undefined') {\n\t throw new Error('bad rs block @ typeNumber:' + typeNumber +\n\t\t\t '/errorCorrectLevel:' + errorCorrectLevel);\n\t}\n\n\tvar length = rsBlock.length / 3;\n\n\tvar list = new Array();\n\n\tfor (var i = 0; i < length; i += 1) {\n\n\t var count = rsBlock[i * 3 + 0];\n\t var totalCount = rsBlock[i * 3 + 1];\n\t var dataCount = rsBlock[i * 3 + 2];\n\n\t for (var j = 0; j < count; j += 1) {\n\t\tlist.push(qrRSBlock(totalCount, dataCount) );\n\t }\n\t}\n\n\treturn list;\n };\n\n return _this;\n}();\n\n//---------------------------------------------------------------------\n// qrBitBuffer\n//---------------------------------------------------------------------\n\nvar qrBitBuffer = function() {\n\n var _buffer = new Array();\n var _length = 0;\n\n var _this = {};\n\n _this.getBuffer = function() {\n\treturn _buffer;\n };\n\n _this.getAt = function(index) {\n\tvar bufIndex = Math.floor(index / 8);\n\treturn ( (_buffer[bufIndex] >>> (7 - index % 8) ) & 1) == 1;\n };\n\n _this.put = function(num, length) {\n\tfor (var i = 0; i < length; i += 1) {\n\t _this.putBit( ( (num >>> (length - i - 1) ) & 1) == 1);\n\t}\n };\n\n _this.getLengthInBits = function() {\n\treturn _length;\n };\n\n _this.putBit = function(bit) {\n\n\tvar bufIndex = Math.floor(_length / 8);\n\tif (_buffer.length <= bufIndex) {\n\t _buffer.push(0);\n\t}\n\n\tif (bit) {\n\t _buffer[bufIndex] |= (0x80 >>> (_length % 8) );\n\t}\n\n\t_length += 1;\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// qr8BitByte\n//---------------------------------------------------------------------\n\nvar qr8BitByte = function(data) {\n\n var _mode = QRMode.MODE_8BIT_BYTE;\n var _data = data;\n var _parsedData = [];\n\n var _this = {};\n\n\n // Added to support UTF-8 Characters\n for (var i = 0, l = _data.length; i < l; i++) {\n\tvar byteArray = [];\n\tvar code = _data.charCodeAt(i);\n\n\tif (code > 0x10000) {\n\t byteArray[0] = 0xF0 | ((code & 0x1C0000) >>> 18);\n\t byteArray[1] = 0x80 | ((code & 0x3F000) >>> 12);\n\t byteArray[2] = 0x80 | ((code & 0xFC0) >>> 6);\n\t byteArray[3] = 0x80 | (code & 0x3F);\n\t} else if (code > 0x800) {\n\t byteArray[0] = 0xE0 | ((code & 0xF000) >>> 12);\n\t byteArray[1] = 0x80 | ((code & 0xFC0) >>> 6);\n\t byteArray[2] = 0x80 | (code & 0x3F);\n\t} else if (code > 0x80) {\n\t byteArray[0] = 0xC0 | ((code & 0x7C0) >>> 6);\n\t byteArray[1] = 0x80 | (code & 0x3F);\n\t} else {\n\t byteArray[0] = code;\n\t}\n\n // Fix Unicode corruption bug\n _parsedData.push(byteArray);\n }\n\n _parsedData = Array.prototype.concat.apply([], _parsedData);\n\n if (_parsedData.length != _data.length) {\n\t_parsedData.unshift(191);\n\t_parsedData.unshift(187);\n\t_parsedData.unshift(239);\n }\n\n var _bytes = _parsedData;\n\n _this.getMode = function() {\n\treturn _mode;\n };\n\n _this.getLength = function(buffer) {\n\treturn _bytes.length;\n };\n\n _this.write = function(buffer) {\n\tfor (var i = 0; i < _bytes.length; i += 1) {\n\t buffer.put(_bytes[i], 8);\n\t}\n };\n\n return _this;\n};\n\n//=====================================================================\n// GIF Support etc.\n//\n\n//---------------------------------------------------------------------\n// byteArrayOutputStream\n//---------------------------------------------------------------------\n\nvar byteArrayOutputStream = function() {\n\n var _bytes = new Array();\n\n var _this = {};\n\n _this.writeByte = function(b) {\n\t_bytes.push(b & 0xff);\n };\n\n _this.writeShort = function(i) {\n\t_this.writeByte(i);\n\t_this.writeByte(i >>> 8);\n };\n\n _this.writeBytes = function(b, off, len) {\n\toff = off || 0;\n\tlen = len || b.length;\n\tfor (var i = 0; i < len; i += 1) {\n\t _this.writeByte(b[i + off]);\n\t}\n };\n\n _this.writeString = function(s) {\n\tfor (var i = 0; i < s.length; i += 1) {\n\t _this.writeByte(s.charCodeAt(i) );\n\t}\n };\n\n _this.toByteArray = function() {\n\treturn _bytes;\n };\n\n _this.toString = function() {\n\tvar s = '';\n\ts += '[';\n\tfor (var i = 0; i < _bytes.length; i += 1) {\n\t if (i > 0) {\n\t\ts += ',';\n\t }\n\t s += _bytes[i];\n\t}\n\ts += ']';\n\treturn s;\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// base64EncodeOutputStream\n//---------------------------------------------------------------------\n\nvar base64EncodeOutputStream = function() {\n\n var _buffer = 0;\n var _buflen = 0;\n var _length = 0;\n var _base64 = '';\n\n var _this = {};\n\n var writeEncoded = function(b) {\n\t_base64 += String.fromCharCode(encode(b & 0x3f) );\n };\n\n var encode = function(n) {\n\tif (n < 0) {\n\t // error.\n\t} else if (n < 26) {\n\t return 0x41 + n;\n\t} else if (n < 52) {\n\t return 0x61 + (n - 26);\n\t} else if (n < 62) {\n\t return 0x30 + (n - 52);\n\t} else if (n == 62) {\n\t return 0x2b;\n\t} else if (n == 63) {\n\t return 0x2f;\n\t}\n\tthrow new Error('n:' + n);\n };\n\n _this.writeByte = function(n) {\n\n\t_buffer = (_buffer << 8) | (n & 0xff);\n\t_buflen += 8;\n\t_length += 1;\n\n\twhile (_buflen >= 6) {\n\t writeEncoded(_buffer >>> (_buflen - 6) );\n\t _buflen -= 6;\n\t}\n };\n\n _this.flush = function() {\n\n\tif (_buflen > 0) {\n\t writeEncoded(_buffer << (6 - _buflen) );\n\t _buffer = 0;\n\t _buflen = 0;\n\t}\n\n\tif (_length % 3 != 0) {\n\t // padding\n\t var padlen = 3 - _length % 3;\n\t for (var i = 0; i < padlen; i += 1) {\n\t\t_base64 += '=';\n\t }\n\t}\n };\n\n _this.toString = function() {\n\treturn _base64;\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// base64DecodeInputStream\n//---------------------------------------------------------------------\n\nvar base64DecodeInputStream = function(str) {\n\n var _str = str;\n var _pos = 0;\n var _buffer = 0;\n var _buflen = 0;\n\n var _this = {};\n\n _this.read = function() {\n\n\twhile (_buflen < 8) {\n\n\t if (_pos >= _str.length) {\n\t\tif (_buflen == 0) {\n\t\t return -1;\n\t\t}\n\t\tthrow new Error('unexpected end of file./' + _buflen);\n\t }\n\n\t var c = _str.charAt(_pos);\n\t _pos += 1;\n\n\t if (c == '=') {\n\t\t_buflen = 0;\n\t\treturn -1;\n\t } else if (c.match(/^\\s$/) ) {\n\t\t// ignore if whitespace.\n\t\tcontinue;\n\t }\n\n\t _buffer = (_buffer << 6) | decode(c.charCodeAt(0) );\n\t _buflen += 6;\n\t}\n\n\tvar n = (_buffer >>> (_buflen - 8) ) & 0xff;\n\t_buflen -= 8;\n\treturn n;\n };\n\n var decode = function(c) {\n\tif (0x41 <= c && c <= 0x5a) {\n\t return c - 0x41;\n\t} else if (0x61 <= c && c <= 0x7a) {\n\t return c - 0x61 + 26;\n\t} else if (0x30 <= c && c <= 0x39) {\n\t return c - 0x30 + 52;\n\t} else if (c == 0x2b) {\n\t return 62;\n\t} else if (c == 0x2f) {\n\t return 63;\n\t} else {\n\t throw new Error('c:' + c);\n\t}\n };\n\n return _this;\n};\n\n//---------------------------------------------------------------------\n// gifImage (B/W)\n//---------------------------------------------------------------------\n\nvar gifImage = function(width, height) {\n\n var _width = width;\n var _height = height;\n var _data = new Array(width * height);\n\n var _this = {};\n\n _this.setPixel = function(x, y, pixel) {\n\t_data[y * _width + x] = pixel;\n };\n\n _this.write = function(out) {\n\n\t//---------------------------------\n\t// GIF Signature\n\n\tout.writeString('GIF87a');\n\n\t//---------------------------------\n\t// Screen Descriptor\n\n\tout.writeShort(_width);\n\tout.writeShort(_height);\n\n\tout.writeByte(0x80); // 2bit\n\tout.writeByte(0);\n\tout.writeByte(0);\n\n\t//---------------------------------\n\t// Global Color Map\n\n\t// black\n\tout.writeByte(0x00);\n\tout.writeByte(0x00);\n\tout.writeByte(0x00);\n\n\t// white\n\tout.writeByte(0xff);\n\tout.writeByte(0xff);\n\tout.writeByte(0xff);\n\n\t//---------------------------------\n\t// Image Descriptor\n\n\tout.writeString(',');\n\tout.writeShort(0);\n\tout.writeShort(0);\n\tout.writeShort(_width);\n\tout.writeShort(_height);\n\tout.writeByte(0);\n\n\t//---------------------------------\n\t// Local Color Map\n\n\t//---------------------------------\n\t// Raster Data\n\n\tvar lzwMinCodeSize = 2;\n\tvar raster = getLZWRaster(lzwMinCodeSize);\n\n\tout.writeByte(lzwMinCodeSize);\n\n\tvar offset = 0;\n\n\twhile (raster.length - offset > 255) {\n\t out.writeByte(255);\n\t out.writeBytes(raster, offset, 255);\n\t offset += 255;\n\t}\n\n\tout.writeByte(raster.length - offset);\n\tout.writeBytes(raster, offset, raster.length - offset);\n\tout.writeByte(0x00);\n\n\t//---------------------------------\n\t// GIF Terminator\n\tout.writeString(';');\n };\n\n var bitOutputStream = function(out) {\n\n\tvar _out = out;\n\tvar _bitLength = 0;\n\tvar _bitBuffer = 0;\n\n\tvar _this = {};\n\n\t_this.write = function(data, length) {\n\n\t if ( (data >>> length) != 0) {\n\t\tthrow new Error('length over');\n\t }\n\n\t while (_bitLength + length >= 8) {\n\t\t_out.writeByte(0xff & ( (data << _bitLength) | _bitBuffer) );\n\t\tlength -= (8 - _bitLength);\n\t\tdata >>>= (8 - _bitLength);\n\t\t_bitBuffer = 0;\n\t\t_bitLength = 0;\n\t }\n\n\t _bitBuffer = (data << _bitLength) | _bitBuffer;\n\t _bitLength = _bitLength + length;\n\t};\n\n\t_this.flush = function() {\n\t if (_bitLength > 0) {\n\t\t_out.writeByte(_bitBuffer);\n\t }\n\t};\n\n\treturn _this;\n };\n\n var getLZWRaster = function(lzwMinCodeSize) {\n\n\tvar clearCode = 1 << lzwMinCodeSize;\n\tvar endCode = (1 << lzwMinCodeSize) + 1;\n\tvar bitLength = lzwMinCodeSize + 1;\n\n\t// Setup LZWTable\n\tvar table = lzwTable();\n\n\tfor (var i = 0; i < clearCode; i += 1) {\n\t table.add(String.fromCharCode(i) );\n\t}\n\ttable.add(String.fromCharCode(clearCode) );\n\ttable.add(String.fromCharCode(endCode) );\n\n\tvar byteOut = byteArrayOutputStream();\n\tvar bitOut = bitOutputStream(byteOut);\n\n\t// clear code\n\tbitOut.write(clearCode, bitLength);\n\n\tvar dataIndex = 0;\n\n\tvar s = String.fromCharCode(_data[dataIndex]);\n\tdataIndex += 1;\n\n\twhile (dataIndex < _data.length) {\n\n\t var c = String.fromCharCode(_data[dataIndex]);\n\t dataIndex += 1;\n\n\t if (table.contains(s + c) ) {\n\n\t\ts = s + c;\n\n\t } else {\n\n\t\tbitOut.write(table.indexOf(s), bitLength);\n\n\t\tif (table.size() < 0xfff) {\n\n\t\t if (table.size() == (1 << bitLength) ) {\n\t\t\tbitLength += 1;\n\t\t }\n\n\t\t table.add(s + c);\n\t\t}\n\n\t\ts = c;\n\t }\n\t}\n\n\tbitOut.write(table.indexOf(s), bitLength);\n\n\t// end code\n\tbitOut.write(endCode, bitLength);\n\n\tbitOut.flush();\n\n\treturn byteOut.toByteArray();\n };\n\n var lzwTable = function() {\n\n\tvar _map = {};\n\tvar _size = 0;\n\n\tvar _this = {};\n\n\t_this.add = function(key) {\n\t if (_this.contains(key) ) {\n\t\tthrow new Error('dup key:' + key);\n\t }\n\t _map[key] = _size;\n\t _size += 1;\n\t};\n\n\t_this.size = function() {\n\t return _size;\n\t};\n\n\t_this.indexOf = function(key) {\n\t return _map[key];\n\t};\n\n\t_this.contains = function(key) {\n\t return typeof _map[key] != 'undefined';\n\t};\n\n\treturn _this;\n };\n\n return _this;\n};\n\nvar createImgTag = function(width, height, getPixel, alt) {\n\n var gif = gifImage(width, height);\n for (var y = 0; y < height; y += 1) {\n\tfor (var x = 0; x < width; x += 1) {\n\t gif.setPixel(x, y, getPixel(x, y) );\n\t}\n }\n\n var b = byteArrayOutputStream();\n gif.write(b);\n\n var base64 = base64EncodeOutputStream();\n var bytes = b.toByteArray();\n for (var i = 0; i < bytes.length; i += 1) {\n\tbase64.writeByte(bytes[i]);\n }\n base64.flush();\n\n var img = '';\n img += 'data:image/gif;base64,';\n img += base64;\n\n return img;\n};\n\n//---------------------------------------------------------------------\n// returns qrcode function.\n\nmodule.exports = qrcode;\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/qrcode/qrcode.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/qrcode/license": {
"text": "The MIT License (MIT)\n\nCopyright (c) 2013 Zeno Zeng\n\nPermission is hereby granted, free of charge, to any person obtaining a copy of\nthis software and associated documentation files (the \"Software\"), to deal in\nthe Software without restriction, including without limitation the rights to\nuse, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of\nthe Software, and to permit persons to whom the Software is furnished to do so,\nsubject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS\nFOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR\nCOPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER\nIN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN\nCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/qrcode/license"
},
"$:/plugins/tiddlywiki/qrcode/icon": {
"title": "$:/plugins/tiddlywiki/qrcode/icon",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-qrcode tc-image-button\" viewBox=\"0 0 128 128\" width=\"22pt\" height=\"22pt\">\n <g fill-rule=\"evenodd\">\n <path d=\"M0,15.9969199 C0,7.16206498 7.16987059,0 15.9969199,0 L64.0030801,0 C72.837935,0 80,7.16987059 80,15.9969199 L80,64.0030801 C80,72.837935 72.8301294,80 64.0030801,80 L15.9969199,80 C7.16206498,80 0,72.8301294 0,64.0030801 L0,15.9969199 Z M16,22.0063866 C16,18.6891509 18.6835413,16 22.0063866,16 L57.9936134,16 C61.3108491,16 64,18.6835413 64,22.0063866 L64,57.9936134 C64,61.3108491 61.3164587,64 57.9936134,64 L22.0063866,64 C18.6891509,64 16,61.3164587 16,57.9936134 L16,22.0063866 Z M28,31.990053 C28,29.7864076 29.7842933,28 31.990053,28 L48.009947,28 C50.2135924,28 52,29.7842933 52,31.990053 L52,48.009947 C52,50.2135924 50.2157067,52 48.009947,52 L31.990053,52 C29.7864076,52 28,50.2157067 28,48.009947 L28,31.990053 Z\"></path>\n <path d=\"M112,16 L112,8.49833453 L112,6.00333095 C112,2.68778282 114.67804,0 118.003331,0 L121.996669,0 C125.312217,0 128,2.67804027 128,6.00333095 L128,8.49833453 L128,23.0016655 L128,25.9966691 C128,29.3122172 125.32196,32 121.996669,32 L119.001665,32 L104.998335,32 L102.003331,32 C98.6877828,32 96,29.3219597 96,25.9966691 L96,22.0033309 C96,18.6877828 98.6780403,16 102.003331,16 L104.998335,16 L112,16 Z\"></path>\n <path d=\"M96,56.9983345 L96,54.0033309 C96,50.6877828 98.6780403,48 102.003331,48 L104.998335,48 L119.001665,48 L121.996669,48 C125.312217,48 128,50.6780403 128,54.0033309 L128,57.9966691 C128,61.3122172 125.32196,64 121.996669,64 L119.001665,64 L112,64 L112,71.0016655 L112,73.9966691 C112,77.3122172 109.32196,80 105.996669,80 L102.003331,80 C98.6877828,80 96,77.3219597 96,73.9966691 L96,71.0016655 L96,56.9983345 Z\"></path>\n <path d=\"M16,112 L23.0016655,112 L24.9983345,112 L32,112 L32,104.998335 L32,102.003331 C32,98.6877828 34.6780403,96 38.0033309,96 L40.9983345,96 L55.0016655,96 L57.9966691,96 C61.3122172,96 64,98.6780403 64,102.003331 L64,105.996669 C64,109.312217 61.3219597,112 57.9966691,112 L55.0016655,112 L48,112 L48,119.001665 L48,121.996669 C48,125.312217 45.3219597,128 41.9966691,128 L39.0016655,128 L24.9983345,128 L23.0016655,128 L8.99833453,128 L6.00333095,128 C2.68778282,128 0,125.32196 0,121.996669 L0,119.001665 L0,104.998335 L0,102.003331 C0,98.6877828 2.67804027,96 6.00333095,96 L9.99666905,96 C13.3122172,96 16,98.6780403 16,102.003331 L16,104.998335 L16,112 Z\"></path>\n <path d=\"M103.001665,96 L105.996669,96 C109.312217,96 112,98.6780403 112,102.003331 L112,105.996669 C112,109.312217 109.32196,112 105.996669,112 L103.001665,112 L88.9983345,112 L86.0033309,112 C82.6877828,112 80,109.32196 80,105.996669 L80,102.003331 C80,98.6877828 82.6780403,96 86.0033309,96 L88.9983345,96 L103.001665,96 Z\"></path>\n <path d=\"M72.9983345,112 L70.0033309,112 C66.6780403,112 64,114.687783 64,118.003331 L64,121.996669 C64,125.32196 66.6877828,128 70.0033309,128 L72.9983345,128 L87.0016655,128 L89.9966691,128 C93.3219597,128 96,125.312217 96,121.996669 L96,118.003331 C96,114.67804 93.3122172,112 89.9966691,112 L87.0016655,112 L72.9983345,112 Z\"></path>\n <rect x=\"112\" y=\"80\" width=\"16\" height=\"16\" rx=\"6\"></rect>\n <rect x=\"112\" y=\"112\" width=\"16\" height=\"16\" rx=\"6\"></rect>\n </g>\n</svg>"
},
"$:/plugins/tiddlywiki/qrcode/makeqr.js": {
"title": "$:/plugins/tiddlywiki/qrcode/makeqr.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/qrcode/makeqr.js\ntype: application/javascript\nmodule-type: macro\n\nMacro to convert a string into a QR Code\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nInformation about this macro\n*/\n\nvar qrcode = require(\"$:/plugins/tiddlywiki/qrcode/qrcode.js\");\n\nvar QRCODE_GENERATION_ERROR_PREFIX = '<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 300 300\"><text x=\"0\" y=\"30\" fill=\"red\" font-family=\"Helvetica, sans-serif\" font-size=\"18\">',\n\tQRCODE_GENERATION_ERROR_SUFFIX = '</text></svg>';\n\nexports.name = \"makeqr\";\n\nexports.params = [\n\t{name: \"text\"},\n\t{name: \"size\"},\n\t{name: \"errorCorrectLevel\"},\n\t{name: \"fallback\"}\n];\n\n/*\nRun the macro\n*/\nexports.run = function(text,size,errorCorrectLevel,fallback) {\n\tvar result;\n\ttry {\n\t\tresult = generateQrCode(text,{size: size, errorCorrectLevel: errorCorrectLevel});\n\t} catch (ex) {\n\t\tconsole.log(\"makeqr error: \" + ex);\n\t\tresult = fallback || (\"data:image/svg+xml,\" + encodeURI(QRCODE_GENERATION_ERROR_PREFIX + ex + QRCODE_GENERATION_ERROR_SUFFIX));\n\t}\n\treturn result || \"\";\n};\n\nfunction generateQrCode(text,options) {\n\toptions = options || {};\n\tvar typeNumber = options.typeNumber || 4,\n\t\terrorCorrectLevel = options.errorCorrectLevel || \"M\",\n\t\tsize = options.size || 500,\n\t\tqr;\n\ttry {\n\t\tqr = qrcode(typeNumber,errorCorrectLevel);\n\t\tqr.addData(text);\n\t\tqr.make();\n\t} catch (e) {\n\t\tif(typeNumber >= 40) {\n\t\t\tthrow new Error(\"Text too long to encode\");\n\t\t} else {\n\t\t\treturn generateQrCode(text, {\n\t\t\t\tsize: size,\n\t\t\t\terrorCorrectLevel: errorCorrectLevel,\n\t\t\t\ttypeNumber: typeNumber + 1\n\t\t\t});\n\t\t}\n\t}\n\tvar cellsize = parseInt(size / qr.getModuleCount()),\n\t\tmargin = parseInt((size - qr.getModuleCount() * cellsize) / 2);\n\treturn qr.createImgTag(cellsize, margin, size);\n}\n\n\n})();\n",
"type": "application/javascript",
"module-type": "macro"
}
}
}
<span class="tc-popup-keep">
<$button popup=<<qualify "$:/state/popup/qrcode">> tooltip={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!description}} aria-label={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!short-caption}} class=<<tv-config-toolbar-class>> class=<<tv-config-toolbar-class>> selectedClass="tc-selected">
<$list filter="[<tv-config-toolbar-icons>prefix[yes]]">
{{$:/plugins/tiddlywiki/qrcode/icon}}
</$list>
<$list filter="[<tv-config-toolbar-text>prefix[yes]]">
<span class="tc-btn-text"><$text text={{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton!!short-caption}}/></span>
</$list>
</$button>
</span>
<$reveal state=<<qualify "$:/state/popup/qrcode">> type="popup" position="below" animate="yes">
<div class="tc-drop-down">
{{$:/plugins/tiddlywiki/qrcode/ViewToolbarButton||description}}
<$set name="tv-config-toolbar-icons" value="yes">
<$set name="tv-config-toolbar-text" value="yes">
<$set name="tv-config-toolbar-class" value="tc-btn-invisible">
<$set name="targetTiddler" value=<<currentTiddler>>>
<$list filter="[all[shadows+tiddlers]tag[$:/tags/ViewToolbarButton/QRcode]!has[draft.of]]">
<$button popup=<<qualify "$:/state/popup/qrcode/type">> class="tc-btn-invisible" selectedClass="tc-selected">
<$action-sendmessage $message="tm-modal" $param=<<currentTiddler>> currentTiddler=<<targetTiddler>>/>
<$transclude field="caption" mode="inline"/>
</$button>
</$list>
</$set>
</$set>
</$set>
</$set>
</div>
</$reveal>
{
"tiddlers": {
"$:/plugins/tiddlywiki/railroad/components.js": {
"title": "$:/plugins/tiddlywiki/railroad/components.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/railroad/components.js\ntype: application/javascript\nmodule-type: library\n\nComponents of a railroad diagram.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar railroad = require(\"$:/plugins/tiddlywiki/railroad/railroad-diagrams.js\");\n\n/////////////////////////// Base component\n\nvar Component = function() {\n\tthis.type = \"Component\";\n};\n\n// Set up a leaf component\nComponent.prototype.initialiseLeaf = function(type,text) {\n\tthis.type = type;\n\tthis.text = text;\n};\n\n// Set up a component with a single child\nComponent.prototype.initialiseWithChild = function(type,content) {\n\tthis.type = type;\n\tthis.child = toSingleChild(content);\n};\n\n// Set up a component with an array of children\nComponent.prototype.initialiseWithChildren = function(type,content) {\n\tthis.type = type;\n\t// Force the content to be an array\n\tthis.children = $tw.utils.isArray(content) ? content : [content];\n}\n\n// Return an array of the SVG strings of an array of children\nComponent.prototype.getSvgOfChildren = function() {\n\treturn this.children.map(function(child) {\n\t\treturn child.toSvg();\n\t});\n}\n\nComponent.prototype.toSvg = function() {\n\treturn \"\";\n}\n\nComponent.prototype.debug = function(output,indent) {\n\toutput.push(indent);\n\toutput.push(this.type);\n\t// Add the text of a leaf component\n\tif(this.text && this.text !== \"\") {\n\t\toutput.push(\": \");\n\t\toutput.push(this.text);\n\t}\n\t// Flag the normal route\n\tif(this.normal !== undefined) {\n\t\tif(this.normal === true) {\n\t\t\toutput.push(\" (normal)\");\n\t\t} else if(this.normal !== false) {\n\t\t\toutput.push(\" (normal: \");\n\t\t\toutput.push(this.normal);\n\t\t\toutput.push(\")\");\n\t\t}\n\t}\n\toutput.push(\"\\n\");\n\tvar contentIndent = indent + \" \";\n\t// Add the one child\n\tif(this.child) {\n\t\tthis.child.debug(output,contentIndent);\n\t}\n\t// Add the array of children\n\tif(this.children) {\n\t\tthis.debugArray(this.children,output,contentIndent);\n\t}\n \t// Add the separator if there is one\n\tif(this.separator) {\n\t\toutput.push(indent);\n\t\toutput.push(\"(separator)\\n\");\n\t\tthis.separator.debug(output,contentIndent);\n\t}\n};\n\nComponent.prototype.debugArray = function(array,output,indent) {\n\tfor(var i=0; i<array.length; i++) {\n\t\tvar item = array[i];\n\t\t// Choice content is a special case: we number the branches\n\t\tif(item.isChoiceBranch) {\n\t\t\toutput.push(indent);\n\t\t\toutput.push(\"(\");\n\t\t\toutput.push(i);\n\t\t\toutput.push(\")\\n\");\n\t\t\titem.debug(output,\" \"+indent);\n\t\t} else {\n\t\t\titem.debug(output,indent);\n\t\t}\n\t}\n}\n\nvar toSingleChild = function(content) {\n\tif($tw.utils.isArray(content)) {\n\t\t// Reduce an array of one child to just the child\n\t\tif(content.length === 1) {\n\t\t\treturn content[0];\n\t\t} else {\n\t\t\t// Never allow an empty sequence\n\t\t \tif(content.length === 0) {\n \t\t\t\tcontent.push(new Dummy());\n\t\t \t}\n\t\t\t// Wrap multiple children into a single sequence component\n\t\t\treturn new Sequence(content);\n\t\t}\n\t} else {\n\t\t// Already single\n\t\treturn content;\n\t}\n}\n\n/////////////////////////// Leaf components\n\nvar Comment = function(text) {\n\tthis.initialiseLeaf(\"Comment\",text);\n};\n\nComment.prototype = new Component();\n\nComment.prototype.toSvg = function() {\n\treturn railroad.Comment(this.text);\n}\n\nvar Dummy = function() {\n\tthis.initialiseLeaf(\"Dummy\");\n};\n\nDummy.prototype = new Component();\n\nDummy.prototype.toSvg = function() {\n\treturn railroad.Skip();\n}\n\nvar Nonterminal = function(text) {\n\tthis.initialiseLeaf(\"Nonterminal\",text);\n};\n\nNonterminal.prototype = new Component();\n\nNonterminal.prototype.toSvg = function() {\n\treturn railroad.NonTerminal(this.text);\n}\n\nvar Terminal = function(text) {\n\tthis.initialiseLeaf(\"Terminal\",text);\n};\n\nTerminal.prototype = new Component();\n\nTerminal.prototype.toSvg = function() {\n\treturn railroad.Terminal(this.text);\n}\n\n/////////////////////////// Components with one child\n\nvar Optional = function(content,normal) {\n\tthis.initialiseWithChild(\"Optional\",content);\n\tthis.normal = normal;\n};\n\nOptional.prototype = new Component();\n\nOptional.prototype.toSvg = function() {\n\t// Call Optional(component,\"skip\")\n\treturn railroad.Optional(this.child.toSvg(), this.normal ? undefined : \"skip\");\n}\n\nvar OptionalRepeated = function(content,separator,normal,wantArrow) {\n\tthis.initialiseWithChild(\"OptionalRepeated\",content);\n\tthis.separator = toSingleChild(separator);\n\tthis.normal = normal;\n\tthis.wantArrow = wantArrow;\n};\n\nOptionalRepeated.prototype = new Component();\n\nOptionalRepeated.prototype.toSvg = function() {\n\t// Call ZeroOrMore(component,separator,\"skip\")\n\tvar separatorSvg = this.separator ? this.separator.toSvg() : null;\n\tvar skip = this.normal ? undefined : \"skip\";\n\treturn railroad.ZeroOrMore(this.child.toSvg(),separatorSvg,skip,this.wantArrow);\n}\n\nvar Repeated = function(content,separator,wantArrow) {\n\tthis.initialiseWithChild(\"Repeated\",content);\n\tthis.separator = toSingleChild(separator);\n\tthis.wantArrow = wantArrow;\n};\n\nRepeated.prototype = new Component();\n\nRepeated.prototype.toSvg = function() {\n\t// Call OneOrMore(component,separator)\n\tvar separatorSvg = this.separator ? this.separator.toSvg() : null;\n\treturn railroad.OneOrMore(this.child.toSvg(),separatorSvg,this.wantArrow);\n}\n\nvar Link = function(content,options) {\n\tthis.initialiseWithChild(\"Link\",content);\n\tthis.options = options;\n};\n\nLink.prototype = new Component();\n\nLink.prototype.toSvg = function() {\n\treturn railroad.Link(this.child.toSvg(),this.options);\n}\n\nvar Transclusion = function(content) {\n\tthis.initialiseWithChild(\"Transclusion\",content);\n};\n\nTransclusion.prototype = new Component();\n\nTransclusion.prototype.toSvg = function() {\n\treturn this.child.toSvg();\n}\n\n/////////////////////////// Components with an array of children\n\nvar Root = function(content) {\n\tthis.initialiseWithChildren(\"Root\",content);\n};\n\nRoot.prototype = new Component();\n\nRoot.prototype.toSvg = function(options) {\n\tvar args = this.getSvgOfChildren();\n\targs.unshift(options);\n\t// Call Diagram(options,component1,component2,...)\n\treturn railroad.Diagram.apply(null,args);\n}\n\nvar Sequence = function(content) {\n\tthis.initialiseWithChildren(\"Sequence\",content);\n};\n\nSequence.prototype = new Component();\n\nSequence.prototype.toSvg = function() {\n\t// Call Sequence(component1,component2,...)\n\treturn railroad.Sequence.apply(null,this.getSvgOfChildren());\n}\n\nvar Choice = function(content,normal) {\n\tthis.initialiseWithChildren(\"Choice\",content.map(toSingleChild));\n\tfor(var i=0; i<this.children.length; i++) {\n\t\tthis.children[i].isChoiceBranch = true;\n\t}\n\tthis.normal = normal;\n};\n\nChoice.prototype = new Component();\n\nChoice.prototype.toSvg = function() {\n\t// Call Choice(normal,component1,component2,...)\n\tvar args = this.getSvgOfChildren();\n\targs.unshift(this.normal);\n\treturn railroad.Choice.apply(null,args);\n}\n\n/////////////////////////// Exports\n\nexports.components = {\n\tChoice: Choice,\n\tComment: Comment,\n\tDummy: Dummy,\n\tLink: Link,\n\tNonterminal: Nonterminal,\n\tOptional: Optional,\n\tOptionalRepeated: OptionalRepeated,\n\tRepeated: Repeated,\n\tRoot: Root,\n\tSequence: Sequence,\n\tTerminal: Terminal,\n\tTransclusion: Transclusion\n};\n\n})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/railroad/example-source": {
"title": "$:/plugins/tiddlywiki/railroad/example-source",
"created": "20150103184022184",
"modified": "20150119214125000",
"tags": "",
"type": "text/vnd.tiddlywiki.railroad",
"text": "[\"+\"]\n({ [[digit|GettingStarted]] } | \"#\" <'escape sequence'>)\n[{(\"@\" name-char | :\"--\" )}]\n"
},
"$:/plugins/tiddlywiki/railroad/example": {
"title": "$:/plugins/tiddlywiki/railroad/example",
"created": "20150102165032410",
"modified": "20150120090735000",
"tags": "",
"text": "Notation:\n\n<pre><code><$text text={{$:/plugins/tiddlywiki/railroad/example-source}}/></code></pre>\n\nDiagram:\n\n{{$:/plugins/tiddlywiki/railroad/example-source}}\n\nDebug mode:\n\n<$railroad debug=\"yes\" text={{$:/plugins/tiddlywiki/railroad/example-source}}/>\n"
},
"$:/plugins/tiddlywiki/railroad/readme": {
"title": "$:/plugins/tiddlywiki/railroad/readme",
"created": "20150102163222184",
"modified": "20150119231005000",
"text": "This plugin provides a `<$railroad>` widget for generating railroad diagrams as SVG images.\n\nAlternatively, the [[diagram notation|$:/plugins/tiddlywiki/railroad/syntax]] can be stored in a dedicated tiddler with its `type` field set to `text/vnd.tiddlywiki.railroad`, and that tiddler can simply be transcluded to wherever it is needed.\n\nThe plugin is based on [[a library by Tab Atkins|https://github.com/tabatkins/railroad-diagrams]], and has been extended to make it more flexible, including allowing components of a diagram to function as links or be transcluded from other tiddlers.\n"
},
"$:/plugins/tiddlywiki/railroad/syntax-string": {
"title": "$:/plugins/tiddlywiki/railroad/syntax-string",
"created": "20150103184022184",
"modified": "20150103184022184",
"text": "('\"' text '\"' | \"'\" text \"'\" | '\"\"\"' text '\"\"\"')"
},
"$:/plugins/tiddlywiki/railroad/syntax": {
"title": "$:/plugins/tiddlywiki/railroad/syntax",
"created": "20150103184022184",
"modified": "20150119220342000",
"text": "The railroad widget uses a special notation to construct the components defined below.\n\n`x` and `y` here stand for any component.\n\nNames (as opposed to quoted strings) are available when a value starts with a letter and contains only letters, digits, underscores, dots and hyphens.\n\n---\n\n; sequence\n: <$railroad text=\"\"\" [\"<-\"] {x} [\"->\"] \"\"\"/>\n* A sequence of components\n* The `<-` and `->` delimiters allow you to force a single component to be treated as a sequence. This is occasionally useful for spacing a diagram out\n\n---\n\n; optional\n: <$railroad text=\"\"\" \"[\" [\":\"] x \"]\" \"\"\"/>\n* A component that can be omitted\n* The colon makes `x` appear straight ahead\n\n---\n\n; repeated\n: <$railroad text=\"\"\" \"{\" x [:\"+\" y] \"}\" \"\"\"/>\n* A list of one or more `x`\n* The `+` suffix adds `y` as a separator between each `x` and the next\n\n---\n\n; optional repeated\n: <$railroad text=\"\"\" \"[{\" [\":\"] x [:\"+\" y] \"}]\" \"\"\"/>\n* An optional list of `x`, i.e. a list of zero or more `x`\n\n---\n\n; choice\n: <$railroad text=\"\"\" \"(\" {[:\":\"] x +\"|\"} \")\" \"\"\"/>\n* A set of alternatives\n* The colon indicates which branch appears straight ahead. By default, it's the first branch\n\n---\n\n; string / terminal\n: <$railroad text={{$:/plugins/tiddlywiki/railroad/syntax-string}}/>\n* A literal or terminal component\n* This follows the normal ~TiddlyWiki rules for quoted strings\n\n---\n\n; nonterminal\n: <$railroad text=\"\"\" (name | \"<\" string \">\") \"\"\"/>\n* A nonterminal component, i.e. the name of another diagram\n\n---\n\n; comment\n: <$railroad text=\"\"\" \"/\" string \"/\" \"\"\"/>\n* A comment\n\n---\n\n; dummy\n: <$railroad text=\"\"\" \"-\" \"\"\"/>\n* The absence of a component\n\n---\n\n; link\n: <$railroad text=\"\"\" \"[[\" x \"|\" (name|string) \"]]\" \"\"\"/>\n* A link to the tiddler title or URI given by the string or name\n\n---\n\n; transclusion\n: <$railroad text=\"\"\" \"{{\" (name|string) \"}}\" \"\"\"/>\n* Treats the content of another tiddler as diagram syntax and transcludes it into the current diagram\n\n---\n\n; arrow pragma\n: <$railroad text=\"\"\" \"\\arrow\" (\"yes\" | \"no\") \"\"\"/>\n* Controls whether repeat paths have an arrow on them\n* Can be toggled on and off in mid-diagram, if desired\n\n---\n\n; debug pragma\n: <$railroad text=\"\"\" \"\\debug\" \"\"\"/>\n* Causes the diagram to display its parse tree\n\n---\n\n; start/end pragma\n: <$railroad text=\"\"\" (\"\\start\" |: \"\\end\") (\"none\" |: \"single\" | \"double\") \"\"\"/>\n* Controls the style of the diagram's startpoint or endpoint\n"
},
"$:/plugins/tiddlywiki/railroad/usage": {
"title": "$:/plugins/tiddlywiki/railroad/usage",
"created": "20150102163222184",
"modified": "20150119231005000",
"text": "The content of the `<$railroad>` widget is ignored.\n\n|!Attribute |!Description |!Default |\n|text |Text in a special notation that defines the diagram's layout |-- |\n|arrow |If set to `no`, repeat paths do not have an arrow on them |`yes` |\n|start |Style of the startpoint: `single`, `double`, `none` |`single` |\n|end |Style of the endpoint: `single`, `double`, `none` |`single` |\n|debug |If set to `yes`, the diagram displays its parse tree |`no` |\n\nThese options can also be specified via pragmas in the diagram notation, or globally via a dictionary tiddler called `$:/config/railroad`:\n\n```\narrow: yes\nstart: single\nend: single\ndebug: no\n```\n"
},
"$:/plugins/tiddlywiki/railroad/railroad-diagrams.css": {
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/* CSS modified for TiddlyWiki */\n\nsvg.railroad-diagram {\n\tbackground-color: <<colour background>>;\n\tborder-radius: 5px;\n}\n/*\nsvg.railroad-diagram:hover {\n\tbackground-color: hsl(30,20%,96%);\n}\n*/\nsvg.railroad-diagram path,\nsvg.railroad-diagram rect {\n\tstroke-width: 2;\n\tstroke: <<colour message-border>>;\n}\nsvg.railroad-diagram path {\n\tfill: <<colour background>>;\n}\nsvg.railroad-diagram rect {\n\tfill: <<colour message-background>>;\n}\nsvg.railroad-diagram text {\n\tfont: 14px monospace;\n\ttext-anchor: middle;\n\tfill: <<colour message-foreground>>;\n}\nsvg.railroad-diagram text.label {\n\ttext-anchor: start;\n}\nsvg.railroad-diagram text.comment {\n\tfont: italic 12px monospace;\n}\nsvg.railroad-diagram path.arrow {\n stroke-width: 2;\n}",
"type": "text/vnd.tiddlywiki",
"title": "$:/plugins/tiddlywiki/railroad/railroad-diagrams.css",
"tags": "$:/tags/Stylesheet"
},
"$:/plugins/tiddlywiki/railroad/railroad-diagrams.js": {
"text": "(function(document) {\n/* TiddlyWiki: modifications to the original library are commented like this */\n\n/*\nRailroad Diagrams\nby Tab Atkins Jr. (and others)\nhttp://xanthir.com\nhttp://twitter.com/tabatkins\nhttp://github.com/tabatkins/railroad-diagrams\n\nThis document and all associated files in the github project are licensed under CC0: http://creativecommons.org/publicdomain/zero/1.0/\nThis means you can reuse, remix, or otherwise appropriate this project for your own use WITHOUT RESTRICTION.\n(The actual legal meaning can be found at the above link.)\nDon't ask me for permission to use any part of this project, JUST USE IT.\nI would appreciate attribution, but that is not required by the license.\n*/\n\n/*\nThis file uses a module pattern to avoid leaking names into the global scope.\nThe only accidental leakage is the name \"temp\".\nThe exported names can be found at the bottom of this file;\nsimply change the names in the array of strings to change what they are called in your application.\n\nAs well, several configuration constants are passed into the module function at the bottom of this file.\nAt runtime, these constants can be found on the Diagram class.\n*/\n\nvar temp = (function(options) {\n\tfunction subclassOf(baseClass, superClass) {\n\t\tbaseClass.prototype = Object.create(superClass.prototype);\n\t\tbaseClass.prototype.$super = superClass.prototype;\n\t}\n\n\tfunction unnull(/* children */) {\n\t\treturn [].slice.call(arguments).reduce(function(sofar, x) { return sofar !== undefined ? sofar : x; });\n\t}\n\n\tfunction determineGaps(outer, inner) {\n\t\tvar diff = outer - inner;\n\t\tswitch(Diagram.INTERNAL_ALIGNMENT) {\n\t\t\tcase 'left': return [0, diff]; break;\n\t\t\tcase 'right': return [diff, 0]; break;\n\t\t\tcase 'center':\n\t\t\tdefault: return [diff/2, diff/2]; break;\n\t\t}\n\t}\n\n\tfunction wrapString(value) {\n\t\treturn ((typeof value) == 'string') ? new Terminal(value) : value;\n\t}\n\n\n\tfunction SVG(name, attrs, text) {\n\t\tattrs = attrs || {};\n\t\ttext = text || '';\n\t\tvar el = document.createElementNS(\"http://www.w3.org/2000/svg\",name);\n\t\tfor(var attr in attrs) {\n\t\t\tel.setAttribute(attr, attrs[attr]);\n\t\t}\n\t\tel.textContent = text;\n\t\treturn el;\n\t}\n\n\tfunction FakeSVG(tagName, attrs, text){\n\t\tif(!(this instanceof FakeSVG)) return new FakeSVG(tagName, attrs, text);\n\t\tif(text) this.children = text;\n\t\telse this.children = [];\n\t\tthis.tagName = tagName;\n\t\tthis.attrs = unnull(attrs, {});\n\t\treturn this;\n\t};\n\tFakeSVG.prototype.format = function(x, y, width) {\n\t\t// Virtual\n\t};\n\tFakeSVG.prototype.addTo = function(parent) {\n\t\tif(parent instanceof FakeSVG) {\n\t\t\tparent.children.push(this);\n\t\t\treturn this;\n\t\t} else {\n\t\t\tvar svg = this.toSVG();\n\t\t\tparent.appendChild(svg);\n\t\t\treturn svg;\n\t\t}\n\t};\n\tFakeSVG.prototype.toSVG = function() {\n\t\tvar el = SVG(this.tagName, this.attrs);\n\t\tif(typeof this.children == 'string') {\n\t\t\tel.textContent = this.children;\n\t\t} else {\n\t\t\tthis.children.forEach(function(e) {\n\t\t\t\tel.appendChild(e.toSVG());\n\t\t\t});\n\t\t}\n\t\treturn el;\n\t};\n\tFakeSVG.prototype.toString = function() {\n\t\tvar str = '<' + this.tagName;\n\t\tvar group = this.tagName == \"g\" || this.tagName == \"svg\";\n\t\tfor(var attr in this.attrs) {\n\t\t\tstr += ' ' + attr + '=\"' + (this.attrs[attr]+'').replace(/&/g, '&').replace(/\"/g, '"') + '\"';\n\t\t}\n\t\tstr += '>';\n\t\tif(group) str += \"\\n\";\n\t\tif(typeof this.children == 'string') {\n\t\t\tstr += this.children.replace(/&/g, '&').replace(/</g, '<');\n\t\t} else {\n\t\t\tthis.children.forEach(function(e) {\n\t\t\t\tstr += e;\n\t\t\t});\n\t\t}\n\t\tstr += '</' + this.tagName + '>\\n';\n\t\treturn str;\n\t}\n\n\tfunction Path(x,y,attrs) {\n\t\tif(!(this instanceof Path)) return new Path(x,y,attrs);\n\t\tFakeSVG.call(this, 'path', attrs);\n\t\tthis.attrs.d = \"M\"+x+' '+y;\n\t}\n\tsubclassOf(Path, FakeSVG);\n\tPath.prototype.m = function(x,y) {\n\t\tthis.attrs.d += 'm'+x+' '+y;\n\t\treturn this;\n\t}\n\tPath.prototype.h = function(val) {\n\t\tthis.attrs.d += 'h'+val;\n\t\treturn this;\n\t}\n\tPath.prototype.right = Path.prototype.h;\n\tPath.prototype.left = function(val) { return this.h(-val); }\n\tPath.prototype.v = function(val) {\n\t\tthis.attrs.d += 'v'+val;\n\t\treturn this;\n\t}\n\tPath.prototype.down = Path.prototype.v;\n\tPath.prototype.up = function(val) { return this.v(-val); }\n\tPath.prototype.arc = function(sweep){\n\t\tvar x = Diagram.ARC_RADIUS;\n\t\tvar y = Diagram.ARC_RADIUS;\n\t\tif(sweep[0] == 'e' || sweep[1] == 'w') {\n\t\t\tx *= -1;\n\t\t}\n\t\tif(sweep[0] == 's' || sweep[1] == 'n') {\n\t\t\ty *= -1;\n\t\t}\n\t\tif(sweep == 'ne' || sweep == 'es' || sweep == 'sw' || sweep == 'wn') {\n\t\t\tvar cw = 1;\n\t\t} else {\n\t\t\tvar cw = 0;\n\t\t}\n\t\tthis.attrs.d += \"a\"+Diagram.ARC_RADIUS+\" \"+Diagram.ARC_RADIUS+\" 0 0 \"+cw+' '+x+' '+y;\n\t\treturn this;\n\t}\n\tPath.prototype.format = function() {\n\t\t// All paths in this library start/end horizontally.\n\t\t// The extra .5 ensures a minor overlap, so there's no seams in bad rasterizers.\n\t\tthis.attrs.d += 'h.5';\n\t\treturn this;\n\t}\n/* TiddlyWiki: added support for arbitrary straight lines */\n\tPath.prototype.line = function(dx,dy) {\n\t\tthis.attrs.d += \"l\"+dx+\" \"+dy;\n\t\treturn this;\n\t}\n\n/* TiddlyWiki: added twOptions parameter, passing it to Start() and End() */\n\tfunction Diagram(twOptions, items) {\n\t\tif(!(this instanceof Diagram)) return new Diagram(twOptions, [].slice.call(arguments,1));\n\t\tFakeSVG.call(this, 'svg', {class: Diagram.DIAGRAM_CLASS});\n\t\tthis.items = items.map(wrapString);\n\t\tthis.items.unshift(new Start(twOptions.start));\n\t\tthis.items.push(new End(twOptions.end));\n\t\tthis.width = this.items.reduce(function(sofar, el) { return sofar + el.width + (el.needsSpace?20:0)}, 0)+1;\n\t\tthis.up = Math.max.apply(null, this.items.map(function (x) { return x.up; }));\n\t\tthis.down = Math.max.apply(null, this.items.map(function (x) { return x.down; }));\n\t\tthis.formatted = false;\t\t\n\t}\n\tsubclassOf(Diagram, FakeSVG);\n\tfor(var option in options) {\n\t\tDiagram[option] = options[option];\n\t}\n\tDiagram.prototype.format = function(paddingt, paddingr, paddingb, paddingl) {\n\t\tpaddingt = unnull(paddingt, 20);\n\t\tpaddingr = unnull(paddingr, paddingt, 20);\n\t\tpaddingb = unnull(paddingb, paddingt, 20);\n\t\tpaddingl = unnull(paddingl, paddingr, 20);\n\t\tvar x = paddingl;\n\t\tvar y = paddingt;\n\t\ty += this.up;\n\t\tvar g = FakeSVG('g', Diagram.STROKE_ODD_PIXEL_LENGTH ? {transform:'translate(.5 .5)'} : {});\n\t\tfor(var i = 0; i < this.items.length; i++) {\n\t\t\tvar item = this.items[i];\n\t\t\tif(item.needsSpace) {\n\t\t\t\tPath(x,y).h(10).addTo(g);\n\t\t\t\tx += 10;\n\t\t\t}\n\t\t\titem.format(x, y, item.width).addTo(g);\n\t\t\tx += item.width;\n\t\t\tif(item.needsSpace) {\n\t\t\t\tPath(x,y).h(10).addTo(g);\n\t\t\t\tx += 10;\n\t\t\t}\n\t\t}\n\t\tthis.attrs.width = this.width + paddingl + paddingr;\n\t\tthis.attrs.height = this.up + this.down + paddingt + paddingb;\n\t\tthis.attrs.viewBox = \"0 0 \" + this.attrs.width + \" \" + this.attrs.height;\n\t\tg.addTo(this);\n\t\tthis.formatted = true;\n\t\treturn this;\n\t}\n\tDiagram.prototype.addTo = function(parent) {\n\t\tvar scriptTag = document.getElementsByTagName('script');\n\t\tscriptTag = scriptTag[scriptTag.length - 1];\n\t\tvar parentTag = scriptTag.parentNode;\n\t\tparent = parent || parentTag;\n\t\treturn this.$super.addTo.call(this, parent);\n\t}\n\tDiagram.prototype.toSVG = function() {\n\t\tif (!this.formatted) {\n\t\t\tthis.format();\n\t\t}\n\t\treturn this.$super.toSVG.call(this);\n\t}\n\tDiagram.prototype.toString = function() {\n\t\tif (!this.formatted) {\n\t\t\tthis.format();\n\t\t}\n\t\treturn this.$super.toString.call(this);\n\t}\n\n\tfunction Sequence(items) {\n\t\tif(!(this instanceof Sequence)) return new Sequence([].slice.call(arguments));\n\t\tFakeSVG.call(this, 'g');\n\t\tthis.items = items.map(wrapString);\n\t\tthis.width = this.items.reduce(function(sofar, el) { return sofar + el.width + (el.needsSpace?20:0)}, 0);\n\t\tthis.up = this.items.reduce(function(sofar,el) { return Math.max(sofar, el.up)}, 0);\n\t\tthis.down = this.items.reduce(function(sofar,el) { return Math.max(sofar, el.down)}, 0);\n\t}\n\tsubclassOf(Sequence, FakeSVG);\n\tSequence.prototype.format = function(x,y,width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\tfor(var i = 0; i < this.items.length; i++) {\n\t\t\tvar item = this.items[i];\n\t\t\tif(item.needsSpace) {\n\t\t\t\tPath(x,y).h(10).addTo(this);\n\t\t\t\tx += 10;\n\t\t\t}\n\t\t\titem.format(x, y, item.width).addTo(this);\n\t\t\tx += item.width;\n\t\t\tif(item.needsSpace) {\n\t\t\t\tPath(x,y).h(10).addTo(this);\n\t\t\t\tx += 10;\n\t\t\t}\n\t\t}\n\t\treturn this;\n\t}\n\n\tfunction Choice(normal, items) {\n\t\tif(!(this instanceof Choice)) return new Choice(normal, [].slice.call(arguments,1));\n\t\tFakeSVG.call(this, 'g');\n\t\tif( typeof normal !== \"number\" || normal !== Math.floor(normal) ) {\n\t\t\tthrow new TypeError(\"The first argument of Choice() must be an integer.\");\n\t\t} else if(normal < 0 || normal >= items.length) {\n\t\t\tthrow new RangeError(\"The first argument of Choice() must be an index for one of the items.\");\n\t\t} else {\n\t\t\tthis.normal = normal;\n\t\t}\n\t\tthis.items = items.map(wrapString);\n\t\tthis.width = this.items.reduce(function(sofar, el){return Math.max(sofar, el.width)},0) + Diagram.ARC_RADIUS*4;\n\t\tthis.up = this.down = 0;\n\t\tfor(var i = 0; i < this.items.length; i++) {\n\t\t\tvar item = this.items[i];\n\t\t\tif(i < normal) { this.up += Math.max(Diagram.ARC_RADIUS,item.up + item.down + Diagram.VERTICAL_SEPARATION); }\n\t\t\tif(i == normal) { this.up += Math.max(Diagram.ARC_RADIUS, item.up); this.down += Math.max(Diagram.ARC_RADIUS, item.down); }\n\t\t\tif(i > normal) { this.down += Math.max(Diagram.ARC_RADIUS,Diagram.VERTICAL_SEPARATION + item.up + item.down); }\n\t\t}\n\t}\n\tsubclassOf(Choice, FakeSVG);\n\tChoice.prototype.format = function(x,y,width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\tvar last = this.items.length -1;\n\t\tvar innerWidth = this.width - Diagram.ARC_RADIUS*4;\n\n\t\t// Do the elements that curve above\n\t\tfor(var i = this.normal - 1; i >= 0; i--) {\n\t\t\tvar item = this.items[i];\n\t\t\tif( i == this.normal - 1 ) {\n\t\t\t\tvar distanceFromY = Math.max(Diagram.ARC_RADIUS*2, this.items[i+1].up + Diagram.VERTICAL_SEPARATION + item.down);\n\t\t\t}\n\t\t\tPath(x,y).arc('se').up(distanceFromY - Diagram.ARC_RADIUS*2).arc('wn').addTo(this);\n\t\t\titem.format(x+Diagram.ARC_RADIUS*2,y - distanceFromY,innerWidth).addTo(this);\n\t\t\tPath(x+Diagram.ARC_RADIUS*2+innerWidth, y-distanceFromY).arc('ne').down(distanceFromY - Diagram.ARC_RADIUS*2).arc('ws').addTo(this);\n\t\t\tdistanceFromY += Math.max(Diagram.ARC_RADIUS, item.up + Diagram.VERTICAL_SEPARATION + (i == 0 ? 0 : this.items[i-1].down));\n\t\t}\n\n\t\t// Do the straight-line path.\n\t\tPath(x,y).right(Diagram.ARC_RADIUS*2).addTo(this);\n\t\tthis.items[this.normal].format(x+Diagram.ARC_RADIUS*2, y, innerWidth).addTo(this);\n\t\tPath(x+Diagram.ARC_RADIUS*2+innerWidth, y).right(Diagram.ARC_RADIUS*2).addTo(this);\n\n\t\t// Do the elements that curve below\n\t\tfor(var i = this.normal+1; i <= last; i++) {\n\t\t\tvar item = this.items[i];\n\t\t\tif( i == this.normal + 1 ) {\n\t\t\t\tvar distanceFromY = Math.max(Diagram.ARC_RADIUS*2, this.items[i-1].down + Diagram.VERTICAL_SEPARATION + item.up);\n\t\t\t}\n\t\t\tPath(x,y).arc('ne').down(distanceFromY - Diagram.ARC_RADIUS*2).arc('ws').addTo(this);\n\t\t\titem.format(x+Diagram.ARC_RADIUS*2, y+distanceFromY, innerWidth).addTo(this);\n\t\t\tPath(x+Diagram.ARC_RADIUS*2+innerWidth, y+distanceFromY).arc('se').up(distanceFromY - Diagram.ARC_RADIUS*2).arc('wn').addTo(this);\n\t\t\tdistanceFromY += Math.max(Diagram.ARC_RADIUS, item.down + Diagram.VERTICAL_SEPARATION + (i == last ? 0 : this.items[i+1].up));\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tfunction Optional(item, skip) {\n\t\tif( skip === undefined )\n\t\t\treturn Choice(1, Skip(), item);\n\t\telse if ( skip === \"skip\" )\n\t\t\treturn Choice(0, Skip(), item);\n\t\telse\n\t\t\tthrow \"Unknown value for Optional()'s 'skip' argument.\";\n\t}\n\n/* TiddlyWiki: added wantArrow */\n\tfunction OneOrMore(item, rep, wantArrow) {\n\t\tif(!(this instanceof OneOrMore)) return new OneOrMore(item, rep, wantArrow);\n\t\tFakeSVG.call(this, 'g');\n\n/* TiddlyWiki: code added */\n\t\tthis.wantArrow = wantArrow;\n\n\t\trep = rep || (new Skip);\n\t\tthis.item = wrapString(item);\n\t\tthis.rep = wrapString(rep);\n\t\tthis.width = Math.max(this.item.width, this.rep.width) + Diagram.ARC_RADIUS*2;\n\t\tthis.up = this.item.up;\n\t\tthis.down = Math.max(Diagram.ARC_RADIUS*2, this.item.down + Diagram.VERTICAL_SEPARATION + this.rep.up + this.rep.down);\n\n/* TiddlyWiki: moved calculation of distanceFromY (of the repeat arc) to here */\n\t\tthis.distanceFromY = Math.max(Diagram.ARC_RADIUS*2, this.item.down+Diagram.VERTICAL_SEPARATION+this.rep.up);\n\t}\n\tsubclassOf(OneOrMore, FakeSVG);\n\tOneOrMore.prototype.needsSpace = true;\n\tOneOrMore.prototype.format = function(x,y,width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\t// Draw item\n\t\tPath(x,y).right(Diagram.ARC_RADIUS).addTo(this);\n\t\tthis.item.format(x+Diagram.ARC_RADIUS,y,this.width-Diagram.ARC_RADIUS*2).addTo(this);\n\t\tPath(x+this.width-Diagram.ARC_RADIUS,y).right(Diagram.ARC_RADIUS).addTo(this);\n\n\t\t// Draw repeat arc\n/* TiddlyWiki: moved calculation of distanceFromY from here to constructor */\n\t\tvar distanceFromY = this.distanceFromY;\n\t\t\n\t\tPath(x+Diagram.ARC_RADIUS,y).arc('nw').down(distanceFromY-Diagram.ARC_RADIUS*2).arc('ws').addTo(this);\n\t\tthis.rep.format(x+Diagram.ARC_RADIUS, y+distanceFromY, this.width - Diagram.ARC_RADIUS*2).addTo(this);\n\t\tPath(x+this.width-Diagram.ARC_RADIUS, y+distanceFromY).arc('se').up(distanceFromY-Diagram.ARC_RADIUS*2).arc('en').addTo(this);\n\t\t\n/* TiddlyWiki: code added */\n\t\tif(this.wantArrow) {\n\t\t\tvar arrowSize = Diagram.ARC_RADIUS/2;\n\t\t\t// Compensate for the illusion that makes the arrow look unbalanced if it's too close to the curve below it\n\t\t\tvar multiplier = (distanceFromY < arrowSize*5) ? 1.2 : 1;\n\t\t\tPath(x-arrowSize, y+distanceFromY/2 + arrowSize/2, {class:\"arrow\"}).\n\t\t\t\tline(arrowSize, -arrowSize).line(arrowSize*multiplier, arrowSize).addTo(this);\n\t\t}\n\n\t\treturn this;\n\t}\n\n\tfunction ZeroOrMore(item, rep, skip, wantArrow) {\n\t\treturn Optional(OneOrMore(item, rep, wantArrow), skip);\n\t}\n\n/* TiddlyWiki: added type parameter */\n\tfunction Start(type) {\n\t\tif(!(this instanceof Start)) return new Start(type);\n\t\tFakeSVG.call(this, 'path');\n\t\tthis.type = type || 'single'\n\t\tthis.width = (this.type === 'double') ? 20 : 10;\n\t\tthis.up = 10;\n\t\tthis.down = 10;\n\t}\n\tsubclassOf(Start, FakeSVG);\n\tStart.prototype.format = function(x,y) {\n/* TiddlyWiki: added types */\n\t\tif(this.type === 'single') {\n\t\t\tthis.attrs.d = 'M '+x+' '+(y-10)+' v 20 m 0 -10 h 10.5';\n\t\t} else if(this.type === 'double') {\n\t\t\tthis.attrs.d = 'M '+x+' '+(y-10)+' v 20 m 10 -20 v 20 m -10 -10 h 20.5';\n\t\t} else { // 'none'\n\t\t\tthis.attrs.d = 'M '+x+' '+y+' h 10.5';\n\t\t}\n\t\treturn this;\n\t}\n\n/* TiddlyWiki: added type parameter */\n\tfunction End(type) {\n\t\tif(!(this instanceof End)) return new End(type);\n\t\tFakeSVG.call(this, 'path');\n\t\tthis.type = type || 'double';\n\t\tthis.width = (this.type === 'double') ? 20 : 10;\n\t\tthis.up = 10;\n\t\tthis.down = 10;\n\t}\n\tsubclassOf(End, FakeSVG);\n\tEnd.prototype.format = function(x,y) {\n/* TiddlyWiki: added types */\n\t\tif(this.type === 'single') {\n\t\t\tthis.attrs.d = 'M '+x+' '+y+' h 10 m 0 -10 v 20';\n\t\t} else if(this.type === 'double') {\n\t\t\tthis.attrs.d = 'M '+x+' '+y+' h 20 m -10 -10 v 20 m 10 -20 v 20';\n\t\t} else { // 'none'\n\t\t\tthis.attrs.d = 'M '+x+' '+y+' h 10';\n\t\t}\n\t\treturn this;\n\t}\n\n\tfunction Terminal(text) {\n\t\tif(!(this instanceof Terminal)) return new Terminal(text);\n\t\tFakeSVG.call(this, 'g');\n\t\tthis.text = text;\n\t\tthis.width = text.length * 8 + 20; /* Assume that each char is .5em, and that the em is 16px */\n\t\tthis.up = 11;\n\t\tthis.down = 11;\n\t}\n\tsubclassOf(Terminal, FakeSVG);\n\tTerminal.prototype.needsSpace = true;\n\tTerminal.prototype.format = function(x, y, width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\tFakeSVG('rect', {x:x, y:y-11, width:this.width, height:this.up+this.down, rx:10, ry:10}).addTo(this);\n\t\tFakeSVG('text', {x:x+this.width/2, y:y+4}, this.text).addTo(this);\n\t\treturn this;\n\t}\n\n\tfunction NonTerminal(text) {\n\t\tif(!(this instanceof NonTerminal)) return new NonTerminal(text);\n\t\tFakeSVG.call(this, 'g');\n\t\tthis.text = text;\n\t\tthis.width = text.length * 8 + 20;\n\t\tthis.up = 11;\n\t\tthis.down = 11;\n\t}\n\tsubclassOf(NonTerminal, FakeSVG);\n\tNonTerminal.prototype.needsSpace = true;\n\tNonTerminal.prototype.format = function(x, y, width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\tFakeSVG('rect', {x:x, y:y-11, width:this.width, height:this.up+this.down}).addTo(this);\n\t\tFakeSVG('text', {x:x+this.width/2, y:y+4}, this.text).addTo(this);\n\t\treturn this;\n\t}\n\n\tfunction Comment(text) {\n\t\tif(!(this instanceof Comment)) return new Comment(text);\n\t\tFakeSVG.call(this, 'g');\n\t\tthis.text = text;\n\t\tthis.width = text.length * 7 + 10;\n\t\tthis.up = 11;\n\t\tthis.down = 11;\n\t}\n\tsubclassOf(Comment, FakeSVG);\n\tComment.prototype.needsSpace = true;\n\tComment.prototype.format = function(x, y, width) {\n\t\t// Hook up the two sides if this is narrower than its stated width.\n\t\tvar gaps = determineGaps(width, this.width);\n\t\tPath(x,y).h(gaps[0]).addTo(this);\n\t\tPath(x+gaps[0]+this.width,y).h(gaps[1]).addTo(this);\n\t\tx += gaps[0];\n\n\t\tFakeSVG('text', {x:x+this.width/2, y:y+5, class:'comment'}, this.text).addTo(this);\n\t\treturn this;\n\t}\n\n\tfunction Skip() {\n\t\tif(!(this instanceof Skip)) return new Skip();\n\t\tFakeSVG.call(this, 'g');\n\t\tthis.width = 0;\n\t\tthis.up = 0;\n\t\tthis.down = 0;\n\t}\n\tsubclassOf(Skip, FakeSVG);\n\tSkip.prototype.format = function(x, y, width) {\n\t\tPath(x,y).right(width).addTo(this);\n\t\treturn this;\n\t}\n\t\n/* TiddlyWiki: added linking ability */\n\tfunction Link(item,options) {\n\t\tif(!(this instanceof Link)) return new Link(item,options);\n\t\tFakeSVG.call(this,'a',options);\n\t\tthis.item = item;\n\t\tthis.width = item.width;\n\t\tthis.up = item.up;\n\t\tthis.down = item.down;\n\t}\n\tsubclassOf(Link, FakeSVG);\n\tLink.prototype.needsSpace = true;\n\tLink.prototype.format = function(x, y, width) {\n\t\tthis.item.format(x,y,width).addTo(this);\n\t\treturn this;\n\t}\n\n/* TiddlyWiki: this block replaces the export mechanism in the original library */\n\tif (exports) {\n\t\texports.Diagram = Diagram;\n\t\texports.Sequence = Sequence;\n\t\texports.Choice = Choice;\n\t\texports.Optional = Optional;\n\t\texports.OneOrMore = OneOrMore;\n\t\texports.ZeroOrMore = ZeroOrMore;\n\t\texports.Terminal = Terminal;\n\t\texports.NonTerminal = NonTerminal;\n\t\texports.Comment = Comment;\n\t\texports.Skip = Skip;\n\t\texports.Link = Link;\n\t};\n})(\n\t{\n\tVERTICAL_SEPARATION: 8,\n\tARC_RADIUS: 10,\n\tDIAGRAM_CLASS: 'railroad-diagram',\n\tSTROKE_ODD_PIXEL_LENGTH: true,\n\tINTERNAL_ALIGNMENT: 'center',\n\t}\n);\n\n/* TiddlyWiki: removed assignments to properties of the window object */\n\n})($tw.node ? $tw.fakeDocument : window.document)\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/railroad/railroad-diagrams.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/railroad/parser.js": {
"title": "$:/plugins/tiddlywiki/railroad/parser.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/railroad/parser.js\ntype: application/javascript\nmodule-type: library\n\nParser for the source of a railroad diagram.\n\n[:x]\t\t\toptional, normally included\n[x]\t\t\t\toptional, normally omitted\n{x}\t\t\t\tone or more\n{x +\",\"}\t\tone or more, comma-separated\n[{:x}]\t\t\tzero or more, normally included\n[{:x +\",\"}]\t\tzero or more, comma-separated, normally included\n[{x}]\t\t\tzero or more, normally omitted\n[{x +\",\"}]\t\tzero or more, comma-separated, normally omitted\nx y z\t\t\tsequence\n<-x y z->\t\texplicit sequence\n(x|y|z)\t\t\talternatives\n(x|:y|z)\t\talternatives, normally y\n\"x\"\t\t\t\tterminal\n<\"x\">\t\t\tnonterminal\n/\"blah\"/\t\tcomment\n-\t\t\t\tdummy\n[[x|\"tiddler\"]]\tlink\n{{\"tiddler\"}}\ttransclusion\n\n\"x\" can also be written 'x' or \"\"\"x\"\"\"\n\npragmas:\n\t\\arrow yes|no\n\t\\debug yes|no\n\t\\start single|double|none\n\t\\end single|double|none\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar components = require(\"$:/plugins/tiddlywiki/railroad/components.js\").components;\n\nvar Parser = function(widget,source,options) {\n\tthis.widget = widget;\n\tthis.source = source;\n\tthis.options = options;\n\tthis.tokens = this.tokenise(source);\n\tthis.tokenPos = 0;\n\tthis.advance();\n\tthis.content = this.parseContent();\n\tthis.root = new components.Root(this.content);\n\tthis.checkFinished();\n};\n\n/////////////////////////// Parser dispatch\n\nParser.prototype.parseContent = function() {\n\tvar content = [];\n\t// Parse zero or more components\n\twhile(true) {\n\t\tvar component = this.parseComponent();\n\t\tif(!component) {\n\t\t\tbreak;\n\t\t}\n\t\tif(!component.isPragma) {\n\t\t\tcontent.push(component);\n\t\t}\n\t}\n\treturn content;\n};\n\nParser.prototype.parseComponent = function() {\n\tvar component = null;\n\tif(this.token) {\n\t\tif(this.at(\"string\")) {\n\t\t\tcomponent = this.parseTerminal();\n\t\t} else if(this.at(\"name\")) {\n\t\t\tcomponent = this.parseName();\n\t\t} else if(this.at(\"pragma\")) {\n\t\t\tcomponent = this.parsePragma();\n\t\t} else {\n\t\t\tswitch(this.token.value) {\n\t\t\t\tcase \"[\":\n\t\t\t\t\tcomponent = this.parseOptional();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"{\":\n\t\t\t\t\tcomponent = this.parseRepeated();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<\":\n\t\t\t\t\tcomponent = this.parseNonterminal();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"(\":\n\t\t\t\t\tcomponent = this.parseChoice();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"/\":\n\t\t\t\t\tcomponent = this.parseComment();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"[[\":\n\t\t\t\t\tcomponent = this.parseLink();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"{{\":\n\t\t\t\t\tcomponent = this.parseTransclusion();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"<-\":\n\t\t\t\t\tcomponent = this.parseSequence();\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"-\":\n\t\t\t\t\tcomponent = this.parseDummy();\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t}\n\t}\n\treturn component;\n};\n\n/////////////////////////// Specific components\n\nParser.prototype.parseChoice = function() {\n\t// Consume the (\n\tthis.advance();\n\tvar content = [],\n\t\tcolon = -1;\n\tdo {\n\t\t// Allow at most one branch to be prefixed with a colon\n\t\tif(colon === -1 && this.eat(\":\")) {\n\t\t\tcolon = content.length;\n\t\t}\n\t\t// Parse the next branch\n\t\tcontent.push(this.parseContent());\n\t} while(this.eat(\"|\"));\n\t// Consume the closing bracket\n\tthis.close(\")\");\n\t// Create a component\n\treturn new components.Choice(content,colon === -1 ? 0 : colon);\n};\n\nParser.prototype.parseComment = function() {\n\t// Consume the /\n\tthis.advance();\n\t// The comment's content should be in a string literal\n\tvar content = this.expectString(\"after /\");\n\t// Consume the closing /\n\tthis.close(\"/\");\n\t// Create a component\n\treturn new components.Comment(content);\n};\n\nParser.prototype.parseDummy = function() {\n\t// Consume the -\n\tthis.advance();\n\t// Create a component\n\treturn new components.Dummy();\n};\n\nParser.prototype.parseLink = function() {\n\t// Consume the [[\n\tthis.advance();\n\t// Parse the content\n\tvar content = this.parseContent();\n\t// Consume the |\n\tthis.expect(\"|\");\n\t// Consume the target\n\tvar target = this.expectNameOrString(\"as link target\");\n\t// Prepare some attributes for the SVG \"a\" element to carry\n\tvar options = {\"data-tw-target\": target};\n\tif($tw.utils.isLinkExternal(target)) {\n\t\toptions[\"data-tw-external\"] = true;\n\t}\n\t// Consume the closing ]]\n\tthis.close(\"]]\");\n\t// Create a component\n\treturn new components.Link(content,options);\n};\n\nParser.prototype.parseName = function() {\n\t// Create a component\n\tvar component = new components.Nonterminal(this.token.value);\n\t// Consume the name\n\tthis.advance();\n\treturn component;\n};\n\nParser.prototype.parseNonterminal = function() {\n\t// Consume the <\n\tthis.advance();\n\t// The nonterminal's name should be in a string literal\n\tvar content = this.expectString(\"after <\");\n\t// Consume the closing bracket\n\tthis.close(\">\");\n\t// Create a component\n\treturn new components.Nonterminal(content);\n};\n\nParser.prototype.parseOptional = function() {\n\tvar wantArrow = this.options.arrow;\n\t// Consume the [\n\tthis.advance();\n\t// Consume the { if there is one\n\tvar repeated = this.eat(\"{\");\n\t// Note whether omission is the normal route\n\tvar normal = this.eat(\":\");\n\t// Parse the content\n\tvar content = this.parseContent(),\n\t\tseparator = null;\n\t// Parse the separator if there is one\n\tif(repeated && this.eat(\"+\")) {\n\t\tseparator = this.parseContent();\n\t}\n\t// Consume the closing brackets\n\tif(repeated) {\n\t\tthis.close(\"}\");\n\t}\n\tthis.close(\"]\");\n\t// Create a component\n\treturn repeated ? new components.OptionalRepeated(content,separator,normal,wantArrow)\n\t\t: new components.Optional(content,normal);\n};\n\nParser.prototype.parseRepeated = function() {\n\tvar wantArrow = this.options.arrow;\n\t// Consume the {\n\tthis.advance();\n\t// Parse the content\n\tvar content = this.parseContent(),\n\t\tseparator = null;\n\t// Parse the separator if there is one\n\tif(this.eat(\"+\")) {\n\t\tseparator = this.parseContent();\n\t}\n\t// Consume the closing bracket\n\tthis.close(\"}\");\n\t// Create a component\n\treturn new components.Repeated(content,separator,wantArrow);\n};\n\nParser.prototype.parseSequence = function() {\n\t// Consume the <-\n\tthis.advance();\n\t// Parse the content\n\tvar content = this.parseContent();\n\t// Consume the closing ->\n\tthis.close(\"->\");\n\t// Create a component\n\treturn new components.Sequence(content);\n};\n\nParser.prototype.parseTerminal = function() {\n\tvar component = new components.Terminal(this.token.value);\n\t// Consume the string literal\n\tthis.advance();\n return component;\n};\n\nParser.prototype.parseTransclusion = function() {\n\t// Consume the {{\n\tthis.advance();\n\t// Consume the text reference\n\tvar textRef = this.expectNameOrString(\"as transclusion source\");\n\t// Consume the closing }}\n\tthis.close(\"}}\");\n\t// Retrieve the content of the text reference\n\tvar source = this.widget.wiki.getTextReference(textRef,\"\",this.widget.getVariable(\"currentTiddler\"));\n\t// Parse the content\n\tvar content = new Parser(this.widget,source).content;\n\t// Create a component\n\treturn new components.Transclusion(content);\n};\n\n/////////////////////////// Pragmas\n\nParser.prototype.parsePragma = function() {\n\t// Create a dummy component\n\tvar component = { isPragma: true };\n\t// Consume the pragma\n\tvar pragma = this.token.value;\n\tthis.advance();\n\t// Apply the setting\n\tif(pragma === \"arrow\") {\n\t\tthis.options.arrow = this.parseYesNo(pragma);\t\t\n\t} else if(pragma === \"debug\") {\n\t\tthis.options.debug = true;\n\t} else if(pragma === \"start\") {\n\t\tthis.options.start = this.parseTerminusStyle(pragma);\t\t\n\t} else if(pragma === \"end\") {\n\t\tthis.options.end = this.parseTerminusStyle(pragma);\t\t\n\t} else {\n\t\tthrow \"Invalid pragma\";\n\t}\n\treturn component;\n};\n\nParser.prototype.parseYesNo = function(pragma) {\n\treturn this.parseSetting([\"yes\",\"no\"],pragma) === \"yes\";\n}\n\nParser.prototype.parseTerminusStyle = function(pragma) {\n\treturn this.parseSetting([\"single\",\"double\",\"none\"],pragma);\n}\n\nParser.prototype.parseSetting = function(options,pragma) {\n\tif(this.at(\"name\") && options.indexOf(this.token.value) !== -1) {\n\t\treturn this.tokenValueEaten();\t\t\n\t}\n\tthrow options.join(\" or \") + \" expected after \\\\\" + pragma;\n}\n\n/////////////////////////// Token manipulation\n\nParser.prototype.advance = function() {\n\tif(this.tokenPos >= this.tokens.length) {\n\t\tthis.token = null;\n\t}\n\tthis.token = this.tokens[this.tokenPos++];\n};\n\nParser.prototype.at = function(token) {\n\treturn this.token && (this.token.type === token || this.token.type === \"token\" && this.token.value === token);\n};\n\nParser.prototype.eat = function(token) {\n\tvar at = this.at(token);\n\tif(at) {\n\t\tthis.advance();\n\t}\n\treturn at;\n};\n\nParser.prototype.tokenValueEaten = function() {\n\tvar output = this.token.value;\n\tthis.advance();\n\treturn output;\n};\n\nParser.prototype.close = function(token) {\n\tif(!this.eat(token)) {\n\t\tthrow \"Closing \" + token + \" expected\";\n\t}\n};\n\nParser.prototype.checkFinished = function() {\n\tif(this.token) {\n\t\tthrow \"Syntax error at \" + this.token.value;\n\t}\n};\n\nParser.prototype.expect = function(token) {\n\tif(!this.eat(token)) {\n\t\tthrow token + \" expected\";\n\t}\n};\n\nParser.prototype.expectString = function(context,token) {\n\tif(!this.at(\"string\")) {\n\t\ttoken = token || \"String\";\n\t\tthrow token + \" expected \" + context;\n\t}\n\treturn this.tokenValueEaten();\n};\n\nParser.prototype.expectNameOrString = function(context) {\n\tif(this.at(\"name\")) {\n\t\treturn this.tokenValueEaten();\n\t}\n\treturn this.expectString(context,\"Name or string\");\n};\n\n/////////////////////////// Tokenisation\n\nParser.prototype.tokenise = function(source) {\n\tvar tokens = [],\n\t\tpos = 0,\n\t\tc, s, token;\n\twhile(pos < source.length) {\n\t\t// Initialise this iteration\n\t\ts = token = null;\n\t\t// Skip whitespace\n\t\tpos = $tw.utils.skipWhiteSpace(source,pos);\n\t\t// Avoid falling off the end of the string\n\t\tif (pos >= source.length) {\n\t\t\tbreak;\n\t\t}\n\t\t// Examine the next character\n\t\tc = source.charAt(pos);\n\t\tif(\"\\\"'\".indexOf(c) !== -1) {\n\t\t\t// String literal\n\t\t\ttoken = $tw.utils.parseStringLiteral(source,pos);\n\t\t\tif(!token) {\n\t\t\t\tthrow \"Unterminated string literal\";\n\t\t\t}\n\t\t} else if(\"[]{}\".indexOf(c) !== -1) {\n\t\t\t// Single or double character\n\t\t\ts = source.charAt(pos+1) === c ? c + c : c;\n\t\t} else if(c === \"<\") {\n\t\t\t// < or <-\n\t\t\ts = source.charAt(pos+1) === \"-\" ? \"<-\" : \"<\";\n\t\t} else if(c === \"-\") {\n\t\t\t// - or ->\n\t\t\ts = source.charAt(pos+1) === \">\" ? \"->\" : \"-\";\n\t\t} else if(\"()>+/:|\".indexOf(c) !== -1) {\n\t\t\t// Single character\n\t\t\ts = c;\n\t\t} else if(c.match(/[a-zA-Z]/)) {\n\t\t\t// Name\n\t\t\ttoken = this.readName(source,pos);\n\t\t} else if(c.match(/\\\\/)) {\n\t\t\t// Pragma\n\t\t\ttoken = this.readPragma(source,pos);\n\t\t} else {\n\t\t\tthrow \"Syntax error at \" + c;\n\t\t}\n\t\t// Add our findings to the return array\n\t\tif(token) {\n\t\t\ttokens.push(token);\n\t\t} else {\n\t\t\ttoken = $tw.utils.parseTokenString(source,pos,s);\n\t\t\ttokens.push(token);\n\t\t}\n\t\t// Prepare for the next character\n\t\tpos = token.end;\n\t}\n\treturn tokens;\n};\n\nParser.prototype.readName = function(source,pos) {\n\tvar re = /([a-zA-Z0-9_.-]+)/g;\n\tre.lastIndex = pos;\n\tvar match = re.exec(source);\n\tif(match && match.index === pos) {\n\t\treturn {type: \"name\", value: match[1], start: pos, end: pos+match[1].length};\n\t} else {\n\t\tthrow \"Invalid name\";\n\t}\n};\n\nParser.prototype.readPragma = function(source,pos) {\n\tvar re = /([a-z]+)/g;\n\tpos++;\n\tre.lastIndex = pos;\n\tvar match = re.exec(source);\n\tif(match && match.index === pos) {\n\t\treturn {type: \"pragma\", value: match[1], start: pos, end: pos+match[1].length};\n\t} else {\n\t\tthrow \"Invalid pragma\";\n\t}\n};\n\n/////////////////////////// Exports\n\nexports.parser = Parser;\n\n})();",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/railroad/typed-parser.js": {
"title": "$:/plugins/tiddlywiki/railroad/typed-parser.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/railroad/typed-parser.js\ntype: application/javascript\nmodule-type: parser\n\nThis parser wraps unadorned railroad syntax into a railroad widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar RailroadParser = function(type,text,options) {\n\tvar element = {\n\t\t\ttype: \"railroad\",\n\t\t\ttag: \"$railroad\",\n\t\t\ttext: text\n\t\t};\n\tthis.tree = [element];\nconsole.log(text);\n};\n\nexports[\"text/vnd.tiddlywiki.railroad\"] = RailroadParser;\n\n})();\n\n",
"type": "application/javascript",
"module-type": "parser"
},
"$:/plugins/tiddlywiki/railroad/wrapper.js": {
"title": "$:/plugins/tiddlywiki/railroad/wrapper.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/railroad/wrapper.js\ntype: application/javascript\nmodule-type: widget\n\nWrapper for `railroad-diagrams.js` that provides a `<$railroad>` widget.\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Parser = require(\"$:/plugins/tiddlywiki/railroad/parser.js\").parser,\n\tWidget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar RailroadWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\nvar RAILROAD_OPTIONS = \"$:/config/railroad\";\n\n/*\nInherit from the base widget class\n*/\nRailroadWidget.prototype = new Widget();\n\n/*\nRender this widget into the DOM\n*/\nRailroadWidget.prototype.render = function(parent,nextSibling) {\n\t// Housekeeping\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\tthis.execute();\n\t// Get the source text\n\tvar source = this.getAttribute(\"text\",this.parseTreeNode.text || \"\");\n\t// Create a div to contain the SVG or error message\n\tvar div = this.document.createElement(\"div\");\n\ttry {\n\t\t// Initialise options from the config tiddler or widget attributes\n\t\tvar config = $tw.wiki.getTiddlerData(RAILROAD_OPTIONS,{});\n\t\tvar options = {\n\t\t\tarrow: this.getAttribute(\"arrow\", config.arrow || \"yes\") === \"yes\",\n\t\t\tdebug: this.getAttribute(\"debug\", config.debug || \"no\") === \"yes\",\n\t\t\tstart: this.getAttribute(\"start\", config.start || \"single\"),\n\t\t\tend: this.getAttribute(\"end\", config.end || \"single\")\n\t\t};\n\t\t// Parse the source\n\t\tvar parser = new Parser(this,source,options);\n\t\t// Generate content into the div\n\t\tif(parser.options.debug) {\n\t\t\tthis.renderDebug(parser,div);\n\t\t} else {\n\t\t\tthis.renderSvg(parser,div);\n\t\t}\n\t} catch(ex) {\n\t\tdiv.className = \"tc-error\";\n\t\tdiv.textContent = ex;\n\t}\n\t// Insert the div into the DOM\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\n};\n\nRailroadWidget.prototype.renderDebug = function(parser,div) {\n\tvar output = [\"<pre>\"];\n\tparser.root.debug(output, \"\");\n\toutput.push(\"</pre>\");\n\tdiv.innerHTML = output.join(\"\");\n};\n\nRailroadWidget.prototype.renderSvg = function(parser,div) {\n\t// Generate a model of the diagram\n\tvar fakeSvg = parser.root.toSvg(parser.options);\n\t// Render the model into a tree of SVG DOM nodes\n\tvar svg = fakeSvg.toSVG();\n\t// Fill in the remaining attributes of any link nodes\n\tthis.patchLinks(svg);\n\t// Insert the SVG tree into the div\n\tdiv.appendChild(svg);\n};\n\nRailroadWidget.prototype.patchLinks = function(node) {\n\tvar self = this;\n\tif(!$tw.node && node.hasChildNodes()) {\n\t\tvar children = node.childNodes;\n\t\tfor(var i=0; i<children.length; i++) {\n\t\t\tvar child = children[i];\n\t\t\tvar attributes = child.attributes;\n\t\t\tif(attributes) {\n\t\t\t\t// Find each element that has a data-tw-target attribute\n\t\t\t\tvar target = child.attributes[\"data-tw-target\"];\n\t\t\t\tif(target !== undefined) {\n\t\t\t\t\ttarget = target.value;\n\t\t\t\t\tif(child.attributes[\"data-tw-external\"]) {\n\t\t\t\t\t\t// External links are straightforward\n\t\t\t\t\t\tchild.setAttribute(\"target\",\"_blank\");\n\t\t\t\t\t\tchild.setAttribute(\"rel\",\"noopener noreferrer\");\n\t\t\t\t\t} else {\n\t\t\t\t\t\t// Each internal link gets its own onclick handler, capturing its own copy of target\n\t\t\t\t\t\t(function(myTarget) {\n\t\t\t\t\t\t\tchild.onclick = function(event) {\n\t\t\t\t\t\t\t\tself.dispatchLink(myTarget,event);\n\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})(target);\n\t\t\t\t\t\ttarget = \"#\" + target;\n\t\t\t\t\t}\n\t\t\t\t\tchild.setAttributeNS(\"http://www.w3.org/1999/xlink\",\"href\",target);\n\t\t\t\t}\n\t\t\t}\n\t\t\tthis.patchLinks(child);\n\t\t}\n\t}\n};\n\nRailroadWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(changedAttributes.text || changedTiddlers[RAILROAD_OPTIONS]) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t}\n\treturn false;\t\n};\n\nRailroadWidget.prototype.dispatchLink = function(to,event) {\n\t// Send the click on its way as a navigate event\n\tvar bounds = this.domNodes[0].getBoundingClientRect();\n\tthis.dispatchEvent({\n\t\ttype: \"tm-navigate\",\n\t\tnavigateTo: to,\n\t\tnavigateFromTitle: this.getVariable(\"storyTiddler\"),\n\t\tnavigateFromNode: this,\n\t\tnavigateFromClientRect: { top: bounds.top, left: bounds.left, width: bounds.width, right: bounds.right, bottom: bounds.bottom, height: bounds.height\n\t\t},\n\t\tnavigateSuppressNavigation: event.metaKey || event.ctrlKey || (event.button === 1)\n\t});\n\tevent.preventDefault();\n\tevent.stopPropagation();\n\treturn false;\n};\n\nexports.railroad = RailroadWidget;\n\n})();",
"type": "application/javascript",
"module-type": "widget"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/sax/sax.js": {
"text": ";(function (sax) { // wrapper for non-node envs\n sax.parser = function (strict, opt) { return new SAXParser(strict, opt) }\n sax.SAXParser = SAXParser\n sax.SAXStream = SAXStream\n sax.createStream = createStream\n\n // When we pass the MAX_BUFFER_LENGTH position, start checking for buffer overruns.\n // When we check, schedule the next check for MAX_BUFFER_LENGTH - (max(buffer lengths)),\n // since that's the earliest that a buffer overrun could occur. This way, checks are\n // as rare as required, but as often as necessary to ensure never crossing this bound.\n // Furthermore, buffers are only tested at most once per write(), so passing a very\n // large string into write() might have undesirable effects, but this is manageable by\n // the caller, so it is assumed to be safe. Thus, a call to write() may, in the extreme\n // edge case, result in creating at most one complete copy of the string passed in.\n // Set to Infinity to have unlimited buffers.\n sax.MAX_BUFFER_LENGTH = 64 * 1024\n\n var buffers = [\n 'comment', 'sgmlDecl', 'textNode', 'tagName', 'doctype',\n 'procInstName', 'procInstBody', 'entity', 'attribName',\n 'attribValue', 'cdata', 'script'\n ]\n\n sax.EVENTS = [\n 'text',\n 'processinginstruction',\n 'sgmldeclaration',\n 'doctype',\n 'comment',\n 'opentagstart',\n 'attribute',\n 'opentag',\n 'closetag',\n 'opencdata',\n 'cdata',\n 'closecdata',\n 'error',\n 'end',\n 'ready',\n 'script',\n 'opennamespace',\n 'closenamespace'\n ]\n\n function SAXParser (strict, opt) {\n if (!(this instanceof SAXParser)) {\n return new SAXParser(strict, opt)\n }\n\n var parser = this\n clearBuffers(parser)\n parser.q = parser.c = ''\n parser.bufferCheckPosition = sax.MAX_BUFFER_LENGTH\n parser.opt = opt || {}\n parser.opt.lowercase = parser.opt.lowercase || parser.opt.lowercasetags\n parser.looseCase = parser.opt.lowercase ? 'toLowerCase' : 'toUpperCase'\n parser.tags = []\n parser.closed = parser.closedRoot = parser.sawRoot = false\n parser.tag = parser.error = null\n parser.strict = !!strict\n parser.noscript = !!(strict || parser.opt.noscript)\n parser.state = S.BEGIN\n parser.strictEntities = parser.opt.strictEntities\n parser.ENTITIES = parser.strictEntities ? Object.create(sax.XML_ENTITIES) : Object.create(sax.ENTITIES)\n parser.attribList = []\n\n // namespaces form a prototype chain.\n // it always points at the current tag,\n // which protos to its parent tag.\n if (parser.opt.xmlns) {\n parser.ns = Object.create(rootNS)\n }\n\n // mostly just for error reporting\n parser.trackPosition = parser.opt.position !== false\n if (parser.trackPosition) {\n parser.position = parser.line = parser.column = 0\n }\n emit(parser, 'onready')\n }\n\n if (!Object.create) {\n Object.create = function (o) {\n function F () {}\n F.prototype = o\n var newf = new F()\n return newf\n }\n }\n\n if (!Object.keys) {\n Object.keys = function (o) {\n var a = []\n for (var i in o) if (o.hasOwnProperty(i)) a.push(i)\n return a\n }\n }\n\n function checkBufferLength (parser) {\n var maxAllowed = Math.max(sax.MAX_BUFFER_LENGTH, 10)\n var maxActual = 0\n for (var i = 0, l = buffers.length; i < l; i++) {\n var len = parser[buffers[i]].length\n if (len > maxAllowed) {\n // Text/cdata nodes can get big, and since they're buffered,\n // we can get here under normal conditions.\n // Avoid issues by emitting the text node now,\n // so at least it won't get any bigger.\n switch (buffers[i]) {\n case 'textNode':\n closeText(parser)\n break\n\n case 'cdata':\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n break\n\n case 'script':\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n break\n\n default:\n error(parser, 'Max buffer length exceeded: ' + buffers[i])\n }\n }\n maxActual = Math.max(maxActual, len)\n }\n // schedule the next check for the earliest possible buffer overrun.\n var m = sax.MAX_BUFFER_LENGTH - maxActual\n parser.bufferCheckPosition = m + parser.position\n }\n\n function clearBuffers (parser) {\n for (var i = 0, l = buffers.length; i < l; i++) {\n parser[buffers[i]] = ''\n }\n }\n\n function flushBuffers (parser) {\n closeText(parser)\n if (parser.cdata !== '') {\n emitNode(parser, 'oncdata', parser.cdata)\n parser.cdata = ''\n }\n if (parser.script !== '') {\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n }\n\n SAXParser.prototype = {\n end: function () { end(this) },\n write: write,\n resume: function () { this.error = null; return this },\n close: function () { return this.write(null) },\n flush: function () { flushBuffers(this) }\n }\n\n var Stream\n try {\n Stream = require('stream').Stream\n } catch (ex) {\n Stream = function () {}\n }\n\n var streamWraps = sax.EVENTS.filter(function (ev) {\n return ev !== 'error' && ev !== 'end'\n })\n\n function createStream (strict, opt) {\n return new SAXStream(strict, opt)\n }\n\n function SAXStream (strict, opt) {\n if (!(this instanceof SAXStream)) {\n return new SAXStream(strict, opt)\n }\n\n Stream.apply(this)\n\n this._parser = new SAXParser(strict, opt)\n this.writable = true\n this.readable = true\n\n var me = this\n\n this._parser.onend = function () {\n me.emit('end')\n }\n\n this._parser.onerror = function (er) {\n me.emit('error', er)\n\n // if didn't throw, then means error was handled.\n // go ahead and clear error, so we can write again.\n me._parser.error = null\n }\n\n this._decoder = null\n\n streamWraps.forEach(function (ev) {\n Object.defineProperty(me, 'on' + ev, {\n get: function () {\n return me._parser['on' + ev]\n },\n set: function (h) {\n if (!h) {\n me.removeAllListeners(ev)\n me._parser['on' + ev] = h\n return h\n }\n me.on(ev, h)\n },\n enumerable: true,\n configurable: false\n })\n })\n }\n\n SAXStream.prototype = Object.create(Stream.prototype, {\n constructor: {\n value: SAXStream\n }\n })\n\n SAXStream.prototype.write = function (data) {\n if (typeof Buffer === 'function' &&\n typeof Buffer.isBuffer === 'function' &&\n Buffer.isBuffer(data)) {\n if (!this._decoder) {\n var SD = require('string_decoder').StringDecoder\n this._decoder = new SD('utf8')\n }\n data = this._decoder.write(data)\n }\n\n this._parser.write(data.toString())\n this.emit('data', data)\n return true\n }\n\n SAXStream.prototype.end = function (chunk) {\n if (chunk && chunk.length) {\n this.write(chunk)\n }\n this._parser.end()\n return true\n }\n\n SAXStream.prototype.on = function (ev, handler) {\n var me = this\n if (!me._parser['on' + ev] && streamWraps.indexOf(ev) !== -1) {\n me._parser['on' + ev] = function () {\n var args = arguments.length === 1 ? [arguments[0]] : Array.apply(null, arguments)\n args.splice(0, 0, ev)\n me.emit.apply(me, args)\n }\n }\n\n return Stream.prototype.on.call(me, ev, handler)\n }\n\n // this really needs to be replaced with character classes.\n // XML allows all manner of ridiculous numbers and digits.\n var CDATA = '[CDATA['\n var DOCTYPE = 'DOCTYPE'\n var XML_NAMESPACE = 'http://www.w3.org/XML/1998/namespace'\n var XMLNS_NAMESPACE = 'http://www.w3.org/2000/xmlns/'\n var rootNS = { xml: XML_NAMESPACE, xmlns: XMLNS_NAMESPACE }\n\n // http://www.w3.org/TR/REC-xml/#NT-NameStartChar\n // This implementation works on strings, a single character at a time\n // as such, it cannot ever support astral-plane characters (10000-EFFFF)\n // without a significant breaking change to either this parser, or the\n // JavaScript language. Implementation of an emoji-capable xml parser\n // is left as an exercise for the reader.\n var nameStart = /[:_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]/\n\n var nameBody = /[:_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-]/\n\n var entityStart = /[#:_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]/\n var entityBody = /[#:_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-]/\n\n function isWhitespace (c) {\n return c === ' ' || c === '\\n' || c === '\\r' || c === '\\t'\n }\n\n function isQuote (c) {\n return c === '\"' || c === '\\''\n }\n\n function isAttribEnd (c) {\n return c === '>' || isWhitespace(c)\n }\n\n function isMatch (regex, c) {\n return regex.test(c)\n }\n\n function notMatch (regex, c) {\n return !isMatch(regex, c)\n }\n\n var S = 0\n sax.STATE = {\n BEGIN: S++, // leading byte order mark or whitespace\n BEGIN_WHITESPACE: S++, // leading whitespace\n TEXT: S++, // general stuff\n TEXT_ENTITY: S++, // & and such.\n OPEN_WAKA: S++, // <\n SGML_DECL: S++, // <!BLARG\n SGML_DECL_QUOTED: S++, // <!BLARG foo \"bar\n DOCTYPE: S++, // <!DOCTYPE\n DOCTYPE_QUOTED: S++, // <!DOCTYPE \"//blah\n DOCTYPE_DTD: S++, // <!DOCTYPE \"//blah\" [ ...\n DOCTYPE_DTD_QUOTED: S++, // <!DOCTYPE \"//blah\" [ \"foo\n COMMENT_STARTING: S++, // <!-\n COMMENT: S++, // <!--\n COMMENT_ENDING: S++, // <!-- blah -\n COMMENT_ENDED: S++, // <!-- blah --\n CDATA: S++, // <![CDATA[ something\n CDATA_ENDING: S++, // ]\n CDATA_ENDING_2: S++, // ]]\n PROC_INST: S++, // <?hi\n PROC_INST_BODY: S++, // <?hi there\n PROC_INST_ENDING: S++, // <?hi \"there\" ?\n OPEN_TAG: S++, // <strong\n OPEN_TAG_SLASH: S++, // <strong /\n ATTRIB: S++, // <a\n ATTRIB_NAME: S++, // <a foo\n ATTRIB_NAME_SAW_WHITE: S++, // <a foo _\n ATTRIB_VALUE: S++, // <a foo=\n ATTRIB_VALUE_QUOTED: S++, // <a foo=\"bar\n ATTRIB_VALUE_CLOSED: S++, // <a foo=\"bar\"\n ATTRIB_VALUE_UNQUOTED: S++, // <a foo=bar\n ATTRIB_VALUE_ENTITY_Q: S++, // <foo bar=\""\"\n ATTRIB_VALUE_ENTITY_U: S++, // <foo bar="\n CLOSE_TAG: S++, // </a\n CLOSE_TAG_SAW_WHITE: S++, // </a >\n SCRIPT: S++, // <script> ...\n SCRIPT_ENDING: S++ // <script> ... <\n }\n\n sax.XML_ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\"\n }\n\n sax.ENTITIES = {\n 'amp': '&',\n 'gt': '>',\n 'lt': '<',\n 'quot': '\"',\n 'apos': \"'\",\n 'AElig': 198,\n 'Aacute': 193,\n 'Acirc': 194,\n 'Agrave': 192,\n 'Aring': 197,\n 'Atilde': 195,\n 'Auml': 196,\n 'Ccedil': 199,\n 'ETH': 208,\n 'Eacute': 201,\n 'Ecirc': 202,\n 'Egrave': 200,\n 'Euml': 203,\n 'Iacute': 205,\n 'Icirc': 206,\n 'Igrave': 204,\n 'Iuml': 207,\n 'Ntilde': 209,\n 'Oacute': 211,\n 'Ocirc': 212,\n 'Ograve': 210,\n 'Oslash': 216,\n 'Otilde': 213,\n 'Ouml': 214,\n 'THORN': 222,\n 'Uacute': 218,\n 'Ucirc': 219,\n 'Ugrave': 217,\n 'Uuml': 220,\n 'Yacute': 221,\n 'aacute': 225,\n 'acirc': 226,\n 'aelig': 230,\n 'agrave': 224,\n 'aring': 229,\n 'atilde': 227,\n 'auml': 228,\n 'ccedil': 231,\n 'eacute': 233,\n 'ecirc': 234,\n 'egrave': 232,\n 'eth': 240,\n 'euml': 235,\n 'iacute': 237,\n 'icirc': 238,\n 'igrave': 236,\n 'iuml': 239,\n 'ntilde': 241,\n 'oacute': 243,\n 'ocirc': 244,\n 'ograve': 242,\n 'oslash': 248,\n 'otilde': 245,\n 'ouml': 246,\n 'szlig': 223,\n 'thorn': 254,\n 'uacute': 250,\n 'ucirc': 251,\n 'ugrave': 249,\n 'uuml': 252,\n 'yacute': 253,\n 'yuml': 255,\n 'copy': 169,\n 'reg': 174,\n 'nbsp': 160,\n 'iexcl': 161,\n 'cent': 162,\n 'pound': 163,\n 'curren': 164,\n 'yen': 165,\n 'brvbar': 166,\n 'sect': 167,\n 'uml': 168,\n 'ordf': 170,\n 'laquo': 171,\n 'not': 172,\n 'shy': 173,\n 'macr': 175,\n 'deg': 176,\n 'plusmn': 177,\n 'sup1': 185,\n 'sup2': 178,\n 'sup3': 179,\n 'acute': 180,\n 'micro': 181,\n 'para': 182,\n 'middot': 183,\n 'cedil': 184,\n 'ordm': 186,\n 'raquo': 187,\n 'frac14': 188,\n 'frac12': 189,\n 'frac34': 190,\n 'iquest': 191,\n 'times': 215,\n 'divide': 247,\n 'OElig': 338,\n 'oelig': 339,\n 'Scaron': 352,\n 'scaron': 353,\n 'Yuml': 376,\n 'fnof': 402,\n 'circ': 710,\n 'tilde': 732,\n 'Alpha': 913,\n 'Beta': 914,\n 'Gamma': 915,\n 'Delta': 916,\n 'Epsilon': 917,\n 'Zeta': 918,\n 'Eta': 919,\n 'Theta': 920,\n 'Iota': 921,\n 'Kappa': 922,\n 'Lambda': 923,\n 'Mu': 924,\n 'Nu': 925,\n 'Xi': 926,\n 'Omicron': 927,\n 'Pi': 928,\n 'Rho': 929,\n 'Sigma': 931,\n 'Tau': 932,\n 'Upsilon': 933,\n 'Phi': 934,\n 'Chi': 935,\n 'Psi': 936,\n 'Omega': 937,\n 'alpha': 945,\n 'beta': 946,\n 'gamma': 947,\n 'delta': 948,\n 'epsilon': 949,\n 'zeta': 950,\n 'eta': 951,\n 'theta': 952,\n 'iota': 953,\n 'kappa': 954,\n 'lambda': 955,\n 'mu': 956,\n 'nu': 957,\n 'xi': 958,\n 'omicron': 959,\n 'pi': 960,\n 'rho': 961,\n 'sigmaf': 962,\n 'sigma': 963,\n 'tau': 964,\n 'upsilon': 965,\n 'phi': 966,\n 'chi': 967,\n 'psi': 968,\n 'omega': 969,\n 'thetasym': 977,\n 'upsih': 978,\n 'piv': 982,\n 'ensp': 8194,\n 'emsp': 8195,\n 'thinsp': 8201,\n 'zwnj': 8204,\n 'zwj': 8205,\n 'lrm': 8206,\n 'rlm': 8207,\n 'ndash': 8211,\n 'mdash': 8212,\n 'lsquo': 8216,\n 'rsquo': 8217,\n 'sbquo': 8218,\n 'ldquo': 8220,\n 'rdquo': 8221,\n 'bdquo': 8222,\n 'dagger': 8224,\n 'Dagger': 8225,\n 'bull': 8226,\n 'hellip': 8230,\n 'permil': 8240,\n 'prime': 8242,\n 'Prime': 8243,\n 'lsaquo': 8249,\n 'rsaquo': 8250,\n 'oline': 8254,\n 'frasl': 8260,\n 'euro': 8364,\n 'image': 8465,\n 'weierp': 8472,\n 'real': 8476,\n 'trade': 8482,\n 'alefsym': 8501,\n 'larr': 8592,\n 'uarr': 8593,\n 'rarr': 8594,\n 'darr': 8595,\n 'harr': 8596,\n 'crarr': 8629,\n 'lArr': 8656,\n 'uArr': 8657,\n 'rArr': 8658,\n 'dArr': 8659,\n 'hArr': 8660,\n 'forall': 8704,\n 'part': 8706,\n 'exist': 8707,\n 'empty': 8709,\n 'nabla': 8711,\n 'isin': 8712,\n 'notin': 8713,\n 'ni': 8715,\n 'prod': 8719,\n 'sum': 8721,\n 'minus': 8722,\n 'lowast': 8727,\n 'radic': 8730,\n 'prop': 8733,\n 'infin': 8734,\n 'ang': 8736,\n 'and': 8743,\n 'or': 8744,\n 'cap': 8745,\n 'cup': 8746,\n 'int': 8747,\n 'there4': 8756,\n 'sim': 8764,\n 'cong': 8773,\n 'asymp': 8776,\n 'ne': 8800,\n 'equiv': 8801,\n 'le': 8804,\n 'ge': 8805,\n 'sub': 8834,\n 'sup': 8835,\n 'nsub': 8836,\n 'sube': 8838,\n 'supe': 8839,\n 'oplus': 8853,\n 'otimes': 8855,\n 'perp': 8869,\n 'sdot': 8901,\n 'lceil': 8968,\n 'rceil': 8969,\n 'lfloor': 8970,\n 'rfloor': 8971,\n 'lang': 9001,\n 'rang': 9002,\n 'loz': 9674,\n 'spades': 9824,\n 'clubs': 9827,\n 'hearts': 9829,\n 'diams': 9830\n }\n\n Object.keys(sax.ENTITIES).forEach(function (key) {\n var e = sax.ENTITIES[key]\n var s = typeof e === 'number' ? String.fromCharCode(e) : e\n sax.ENTITIES[key] = s\n })\n\n for (var s in sax.STATE) {\n sax.STATE[sax.STATE[s]] = s\n }\n\n // shorthand\n S = sax.STATE\n\n function emit (parser, event, data) {\n parser[event] && parser[event](data)\n }\n\n function emitNode (parser, nodeType, data) {\n if (parser.textNode) closeText(parser)\n emit(parser, nodeType, data)\n }\n\n function closeText (parser) {\n parser.textNode = textopts(parser.opt, parser.textNode)\n if (parser.textNode) emit(parser, 'ontext', parser.textNode)\n parser.textNode = ''\n }\n\n function textopts (opt, text) {\n if (opt.trim) text = text.trim()\n if (opt.normalize) text = text.replace(/\\s+/g, ' ')\n return text\n }\n\n function error (parser, er) {\n closeText(parser)\n if (parser.trackPosition) {\n er += '\\nLine: ' + parser.line +\n '\\nColumn: ' + parser.column +\n '\\nChar: ' + parser.c\n }\n er = new Error(er)\n parser.error = er\n emit(parser, 'onerror', er)\n return parser\n }\n\n function end (parser) {\n if (parser.sawRoot && !parser.closedRoot) strictFail(parser, 'Unclosed root tag')\n if ((parser.state !== S.BEGIN) &&\n (parser.state !== S.BEGIN_WHITESPACE) &&\n (parser.state !== S.TEXT)) {\n error(parser, 'Unexpected end')\n }\n closeText(parser)\n parser.c = ''\n parser.closed = true\n emit(parser, 'onend')\n SAXParser.call(parser, parser.strict, parser.opt)\n return parser\n }\n\n function strictFail (parser, message) {\n if (typeof parser !== 'object' || !(parser instanceof SAXParser)) {\n throw new Error('bad call to strictFail')\n }\n if (parser.strict) {\n error(parser, message)\n }\n }\n\n function newTag (parser) {\n if (!parser.strict) parser.tagName = parser.tagName[parser.looseCase]()\n var parent = parser.tags[parser.tags.length - 1] || parser\n var tag = parser.tag = { name: parser.tagName, attributes: {} }\n\n // will be overridden if tag contails an xmlns=\"foo\" or xmlns:foo=\"bar\"\n if (parser.opt.xmlns) {\n tag.ns = parent.ns\n }\n parser.attribList.length = 0\n emitNode(parser, 'onopentagstart', tag)\n }\n\n function qname (name, attribute) {\n var i = name.indexOf(':')\n var qualName = i < 0 ? [ '', name ] : name.split(':')\n var prefix = qualName[0]\n var local = qualName[1]\n\n // <x \"xmlns\"=\"http://foo\">\n if (attribute && name === 'xmlns') {\n prefix = 'xmlns'\n local = ''\n }\n\n return { prefix: prefix, local: local }\n }\n\n function attrib (parser) {\n if (!parser.strict) {\n parser.attribName = parser.attribName[parser.looseCase]()\n }\n\n if (parser.attribList.indexOf(parser.attribName) !== -1 ||\n parser.tag.attributes.hasOwnProperty(parser.attribName)) {\n parser.attribName = parser.attribValue = ''\n return\n }\n\n if (parser.opt.xmlns) {\n var qn = qname(parser.attribName, true)\n var prefix = qn.prefix\n var local = qn.local\n\n if (prefix === 'xmlns') {\n // namespace binding attribute. push the binding into scope\n if (local === 'xml' && parser.attribValue !== XML_NAMESPACE) {\n strictFail(parser,\n 'xml: prefix must be bound to ' + XML_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else if (local === 'xmlns' && parser.attribValue !== XMLNS_NAMESPACE) {\n strictFail(parser,\n 'xmlns: prefix must be bound to ' + XMLNS_NAMESPACE + '\\n' +\n 'Actual: ' + parser.attribValue)\n } else {\n var tag = parser.tag\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns === parent.ns) {\n tag.ns = Object.create(parent.ns)\n }\n tag.ns[local] = parser.attribValue\n }\n }\n\n // defer onattribute events until all attributes have been seen\n // so any new bindings can take effect. preserve attribute order\n // so deferred events can be emitted in document order\n parser.attribList.push([parser.attribName, parser.attribValue])\n } else {\n // in non-xmlns mode, we can emit the event right away\n parser.tag.attributes[parser.attribName] = parser.attribValue\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: parser.attribValue\n })\n }\n\n parser.attribName = parser.attribValue = ''\n }\n\n function openTag (parser, selfClosing) {\n if (parser.opt.xmlns) {\n // emit namespace binding events\n var tag = parser.tag\n\n // add namespace info to tag\n var qn = qname(parser.tagName)\n tag.prefix = qn.prefix\n tag.local = qn.local\n tag.uri = tag.ns[qn.prefix] || ''\n\n if (tag.prefix && !tag.uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(parser.tagName))\n tag.uri = qn.prefix\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (tag.ns && parent.ns !== tag.ns) {\n Object.keys(tag.ns).forEach(function (p) {\n emitNode(parser, 'onopennamespace', {\n prefix: p,\n uri: tag.ns[p]\n })\n })\n }\n\n // handle deferred onattribute events\n // Note: do not apply default ns to attributes:\n // http://www.w3.org/TR/REC-xml-names/#defaulting\n for (var i = 0, l = parser.attribList.length; i < l; i++) {\n var nv = parser.attribList[i]\n var name = nv[0]\n var value = nv[1]\n var qualName = qname(name, true)\n var prefix = qualName.prefix\n var local = qualName.local\n var uri = prefix === '' ? '' : (tag.ns[prefix] || '')\n var a = {\n name: name,\n value: value,\n prefix: prefix,\n local: local,\n uri: uri\n }\n\n // if there's any attributes with an undefined namespace,\n // then fail on them now.\n if (prefix && prefix !== 'xmlns' && !uri) {\n strictFail(parser, 'Unbound namespace prefix: ' +\n JSON.stringify(prefix))\n a.uri = prefix\n }\n parser.tag.attributes[name] = a\n emitNode(parser, 'onattribute', a)\n }\n parser.attribList.length = 0\n }\n\n parser.tag.isSelfClosing = !!selfClosing\n\n // process the tag\n parser.sawRoot = true\n parser.tags.push(parser.tag)\n emitNode(parser, 'onopentag', parser.tag)\n if (!selfClosing) {\n // special case for <script> in non-strict mode.\n if (!parser.noscript && parser.tagName.toLowerCase() === 'script') {\n parser.state = S.SCRIPT\n } else {\n parser.state = S.TEXT\n }\n parser.tag = null\n parser.tagName = ''\n }\n parser.attribName = parser.attribValue = ''\n parser.attribList.length = 0\n }\n\n function closeTag (parser) {\n if (!parser.tagName) {\n strictFail(parser, 'Weird empty close tag.')\n parser.textNode += '</>'\n parser.state = S.TEXT\n return\n }\n\n if (parser.script) {\n if (parser.tagName !== 'script') {\n parser.script += '</' + parser.tagName + '>'\n parser.tagName = ''\n parser.state = S.SCRIPT\n return\n }\n emitNode(parser, 'onscript', parser.script)\n parser.script = ''\n }\n\n // first make sure that the closing tag actually exists.\n // <a><b></c></b></a> will close everything, otherwise.\n var t = parser.tags.length\n var tagName = parser.tagName\n if (!parser.strict) {\n tagName = tagName[parser.looseCase]()\n }\n var closeTo = tagName\n while (t--) {\n var close = parser.tags[t]\n if (close.name !== closeTo) {\n // fail the first time in strict mode\n strictFail(parser, 'Unexpected close tag')\n } else {\n break\n }\n }\n\n // didn't find it. we already failed for strict, so just abort.\n if (t < 0) {\n strictFail(parser, 'Unmatched closing tag: ' + parser.tagName)\n parser.textNode += '</' + parser.tagName + '>'\n parser.state = S.TEXT\n return\n }\n parser.tagName = tagName\n var s = parser.tags.length\n while (s-- > t) {\n var tag = parser.tag = parser.tags.pop()\n parser.tagName = parser.tag.name\n emitNode(parser, 'onclosetag', parser.tagName)\n\n var x = {}\n for (var i in tag.ns) {\n x[i] = tag.ns[i]\n }\n\n var parent = parser.tags[parser.tags.length - 1] || parser\n if (parser.opt.xmlns && tag.ns !== parent.ns) {\n // remove namespace bindings introduced by tag\n Object.keys(tag.ns).forEach(function (p) {\n var n = tag.ns[p]\n emitNode(parser, 'onclosenamespace', { prefix: p, uri: n })\n })\n }\n }\n if (t === 0) parser.closedRoot = true\n parser.tagName = parser.attribValue = parser.attribName = ''\n parser.attribList.length = 0\n parser.state = S.TEXT\n }\n\n function parseEntity (parser) {\n var entity = parser.entity\n var entityLC = entity.toLowerCase()\n var num\n var numStr = ''\n\n if (parser.ENTITIES[entity]) {\n return parser.ENTITIES[entity]\n }\n if (parser.ENTITIES[entityLC]) {\n return parser.ENTITIES[entityLC]\n }\n entity = entityLC\n if (entity.charAt(0) === '#') {\n if (entity.charAt(1) === 'x') {\n entity = entity.slice(2)\n num = parseInt(entity, 16)\n numStr = num.toString(16)\n } else {\n entity = entity.slice(1)\n num = parseInt(entity, 10)\n numStr = num.toString(10)\n }\n }\n entity = entity.replace(/^0+/, '')\n if (isNaN(num) || numStr.toLowerCase() !== entity) {\n strictFail(parser, 'Invalid character entity')\n return '&' + parser.entity + ';'\n }\n\n return String.fromCodePoint(num)\n }\n\n function beginWhiteSpace (parser, c) {\n if (c === '<') {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else if (!isWhitespace(c)) {\n // have to process this as a text node.\n // weird, but happens.\n strictFail(parser, 'Non-whitespace before first tag.')\n parser.textNode = c\n parser.state = S.TEXT\n }\n }\n\n function charAt (chunk, i) {\n var result = ''\n if (i < chunk.length) {\n result = chunk.charAt(i)\n }\n return result\n }\n\n function write (chunk) {\n var parser = this\n if (this.error) {\n throw this.error\n }\n if (parser.closed) {\n return error(parser,\n 'Cannot write after close. Assign an onready handler.')\n }\n if (chunk === null) {\n return end(parser)\n }\n if (typeof chunk === 'object') {\n chunk = chunk.toString()\n }\n var i = 0\n var c = ''\n while (true) {\n c = charAt(chunk, i++)\n parser.c = c\n\n if (!c) {\n break\n }\n\n if (parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n\n switch (parser.state) {\n case S.BEGIN:\n parser.state = S.BEGIN_WHITESPACE\n if (c === '\\uFEFF') {\n continue\n }\n beginWhiteSpace(parser, c)\n continue\n\n case S.BEGIN_WHITESPACE:\n beginWhiteSpace(parser, c)\n continue\n\n case S.TEXT:\n if (parser.sawRoot && !parser.closedRoot) {\n var starti = i - 1\n while (c && c !== '<' && c !== '&') {\n c = charAt(chunk, i++)\n if (c && parser.trackPosition) {\n parser.position++\n if (c === '\\n') {\n parser.line++\n parser.column = 0\n } else {\n parser.column++\n }\n }\n }\n parser.textNode += chunk.substring(starti, i - 1)\n }\n if (c === '<' && !(parser.sawRoot && parser.closedRoot && !parser.strict)) {\n parser.state = S.OPEN_WAKA\n parser.startTagPosition = parser.position\n } else {\n if (!isWhitespace(c) && (!parser.sawRoot || parser.closedRoot)) {\n strictFail(parser, 'Text data outside of root node.')\n }\n if (c === '&') {\n parser.state = S.TEXT_ENTITY\n } else {\n parser.textNode += c\n }\n }\n continue\n\n case S.SCRIPT:\n // only non-strict\n if (c === '<') {\n parser.state = S.SCRIPT_ENDING\n } else {\n parser.script += c\n }\n continue\n\n case S.SCRIPT_ENDING:\n if (c === '/') {\n parser.state = S.CLOSE_TAG\n } else {\n parser.script += '<' + c\n parser.state = S.SCRIPT\n }\n continue\n\n case S.OPEN_WAKA:\n // either a /, ?, !, or text is coming next.\n if (c === '!') {\n parser.state = S.SGML_DECL\n parser.sgmlDecl = ''\n } else if (isWhitespace(c)) {\n // wait for it...\n } else if (isMatch(nameStart, c)) {\n parser.state = S.OPEN_TAG\n parser.tagName = c\n } else if (c === '/') {\n parser.state = S.CLOSE_TAG\n parser.tagName = ''\n } else if (c === '?') {\n parser.state = S.PROC_INST\n parser.procInstName = parser.procInstBody = ''\n } else {\n strictFail(parser, 'Unencoded <')\n // if there was some whitespace, then add that in.\n if (parser.startTagPosition + 1 < parser.position) {\n var pad = parser.position - parser.startTagPosition\n c = new Array(pad).join(' ') + c\n }\n parser.textNode += '<' + c\n parser.state = S.TEXT\n }\n continue\n\n case S.SGML_DECL:\n if ((parser.sgmlDecl + c).toUpperCase() === CDATA) {\n emitNode(parser, 'onopencdata')\n parser.state = S.CDATA\n parser.sgmlDecl = ''\n parser.cdata = ''\n } else if (parser.sgmlDecl + c === '--') {\n parser.state = S.COMMENT\n parser.comment = ''\n parser.sgmlDecl = ''\n } else if ((parser.sgmlDecl + c).toUpperCase() === DOCTYPE) {\n parser.state = S.DOCTYPE\n if (parser.doctype || parser.sawRoot) {\n strictFail(parser,\n 'Inappropriately located doctype declaration')\n }\n parser.doctype = ''\n parser.sgmlDecl = ''\n } else if (c === '>') {\n emitNode(parser, 'onsgmldeclaration', parser.sgmlDecl)\n parser.sgmlDecl = ''\n parser.state = S.TEXT\n } else if (isQuote(c)) {\n parser.state = S.SGML_DECL_QUOTED\n parser.sgmlDecl += c\n } else {\n parser.sgmlDecl += c\n }\n continue\n\n case S.SGML_DECL_QUOTED:\n if (c === parser.q) {\n parser.state = S.SGML_DECL\n parser.q = ''\n }\n parser.sgmlDecl += c\n continue\n\n case S.DOCTYPE:\n if (c === '>') {\n parser.state = S.TEXT\n emitNode(parser, 'ondoctype', parser.doctype)\n parser.doctype = true // just remember that we saw it.\n } else {\n parser.doctype += c\n if (c === '[') {\n parser.state = S.DOCTYPE_DTD\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_QUOTED\n parser.q = c\n }\n }\n continue\n\n case S.DOCTYPE_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.q = ''\n parser.state = S.DOCTYPE\n }\n continue\n\n case S.DOCTYPE_DTD:\n parser.doctype += c\n if (c === ']') {\n parser.state = S.DOCTYPE\n } else if (isQuote(c)) {\n parser.state = S.DOCTYPE_DTD_QUOTED\n parser.q = c\n }\n continue\n\n case S.DOCTYPE_DTD_QUOTED:\n parser.doctype += c\n if (c === parser.q) {\n parser.state = S.DOCTYPE_DTD\n parser.q = ''\n }\n continue\n\n case S.COMMENT:\n if (c === '-') {\n parser.state = S.COMMENT_ENDING\n } else {\n parser.comment += c\n }\n continue\n\n case S.COMMENT_ENDING:\n if (c === '-') {\n parser.state = S.COMMENT_ENDED\n parser.comment = textopts(parser.opt, parser.comment)\n if (parser.comment) {\n emitNode(parser, 'oncomment', parser.comment)\n }\n parser.comment = ''\n } else {\n parser.comment += '-' + c\n parser.state = S.COMMENT\n }\n continue\n\n case S.COMMENT_ENDED:\n if (c !== '>') {\n strictFail(parser, 'Malformed comment')\n // allow <!-- blah -- bloo --> in non-strict mode,\n // which is a comment of \" blah -- bloo \"\n parser.comment += '--' + c\n parser.state = S.COMMENT\n } else {\n parser.state = S.TEXT\n }\n continue\n\n case S.CDATA:\n if (c === ']') {\n parser.state = S.CDATA_ENDING\n } else {\n parser.cdata += c\n }\n continue\n\n case S.CDATA_ENDING:\n if (c === ']') {\n parser.state = S.CDATA_ENDING_2\n } else {\n parser.cdata += ']' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.CDATA_ENDING_2:\n if (c === '>') {\n if (parser.cdata) {\n emitNode(parser, 'oncdata', parser.cdata)\n }\n emitNode(parser, 'onclosecdata')\n parser.cdata = ''\n parser.state = S.TEXT\n } else if (c === ']') {\n parser.cdata += ']'\n } else {\n parser.cdata += ']]' + c\n parser.state = S.CDATA\n }\n continue\n\n case S.PROC_INST:\n if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else if (isWhitespace(c)) {\n parser.state = S.PROC_INST_BODY\n } else {\n parser.procInstName += c\n }\n continue\n\n case S.PROC_INST_BODY:\n if (!parser.procInstBody && isWhitespace(c)) {\n continue\n } else if (c === '?') {\n parser.state = S.PROC_INST_ENDING\n } else {\n parser.procInstBody += c\n }\n continue\n\n case S.PROC_INST_ENDING:\n if (c === '>') {\n emitNode(parser, 'onprocessinginstruction', {\n name: parser.procInstName,\n body: parser.procInstBody\n })\n parser.procInstName = parser.procInstBody = ''\n parser.state = S.TEXT\n } else {\n parser.procInstBody += '?' + c\n parser.state = S.PROC_INST_BODY\n }\n continue\n\n case S.OPEN_TAG:\n if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else {\n newTag(parser)\n if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid character in tag name')\n }\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.OPEN_TAG_SLASH:\n if (c === '>') {\n openTag(parser, true)\n closeTag(parser)\n } else {\n strictFail(parser, 'Forward-slash in opening tag not followed by >')\n parser.state = S.ATTRIB\n }\n continue\n\n case S.ATTRIB:\n // haven't read the attribute name yet.\n if (isWhitespace(c)) {\n continue\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (c === '>') {\n strictFail(parser, 'Attribute without value')\n parser.attribValue = parser.attribName\n attrib(parser)\n openTag(parser)\n } else if (isWhitespace(c)) {\n parser.state = S.ATTRIB_NAME_SAW_WHITE\n } else if (isMatch(nameBody, c)) {\n parser.attribName += c\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_NAME_SAW_WHITE:\n if (c === '=') {\n parser.state = S.ATTRIB_VALUE\n } else if (isWhitespace(c)) {\n continue\n } else {\n strictFail(parser, 'Attribute without value')\n parser.tag.attributes[parser.attribName] = ''\n parser.attribValue = ''\n emitNode(parser, 'onattribute', {\n name: parser.attribName,\n value: ''\n })\n parser.attribName = ''\n if (c === '>') {\n openTag(parser)\n } else if (isMatch(nameStart, c)) {\n parser.attribName = c\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n parser.state = S.ATTRIB\n }\n }\n continue\n\n case S.ATTRIB_VALUE:\n if (isWhitespace(c)) {\n continue\n } else if (isQuote(c)) {\n parser.q = c\n parser.state = S.ATTRIB_VALUE_QUOTED\n } else {\n strictFail(parser, 'Unquoted attribute value')\n parser.state = S.ATTRIB_VALUE_UNQUOTED\n parser.attribValue = c\n }\n continue\n\n case S.ATTRIB_VALUE_QUOTED:\n if (c !== parser.q) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_Q\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n parser.q = ''\n parser.state = S.ATTRIB_VALUE_CLOSED\n continue\n\n case S.ATTRIB_VALUE_CLOSED:\n if (isWhitespace(c)) {\n parser.state = S.ATTRIB\n } else if (c === '>') {\n openTag(parser)\n } else if (c === '/') {\n parser.state = S.OPEN_TAG_SLASH\n } else if (isMatch(nameStart, c)) {\n strictFail(parser, 'No whitespace between attributes')\n parser.attribName = c\n parser.attribValue = ''\n parser.state = S.ATTRIB_NAME\n } else {\n strictFail(parser, 'Invalid attribute name')\n }\n continue\n\n case S.ATTRIB_VALUE_UNQUOTED:\n if (!isAttribEnd(c)) {\n if (c === '&') {\n parser.state = S.ATTRIB_VALUE_ENTITY_U\n } else {\n parser.attribValue += c\n }\n continue\n }\n attrib(parser)\n if (c === '>') {\n openTag(parser)\n } else {\n parser.state = S.ATTRIB\n }\n continue\n\n case S.CLOSE_TAG:\n if (!parser.tagName) {\n if (isWhitespace(c)) {\n continue\n } else if (notMatch(nameStart, c)) {\n if (parser.script) {\n parser.script += '</' + c\n parser.state = S.SCRIPT\n } else {\n strictFail(parser, 'Invalid tagname in closing tag.')\n }\n } else {\n parser.tagName = c\n }\n } else if (c === '>') {\n closeTag(parser)\n } else if (isMatch(nameBody, c)) {\n parser.tagName += c\n } else if (parser.script) {\n parser.script += '</' + parser.tagName\n parser.tagName = ''\n parser.state = S.SCRIPT\n } else {\n if (!isWhitespace(c)) {\n strictFail(parser, 'Invalid tagname in closing tag')\n }\n parser.state = S.CLOSE_TAG_SAW_WHITE\n }\n continue\n\n case S.CLOSE_TAG_SAW_WHITE:\n if (isWhitespace(c)) {\n continue\n }\n if (c === '>') {\n closeTag(parser)\n } else {\n strictFail(parser, 'Invalid characters in closing tag')\n }\n continue\n\n case S.TEXT_ENTITY:\n case S.ATTRIB_VALUE_ENTITY_Q:\n case S.ATTRIB_VALUE_ENTITY_U:\n var returnState\n var buffer\n switch (parser.state) {\n case S.TEXT_ENTITY:\n returnState = S.TEXT\n buffer = 'textNode'\n break\n\n case S.ATTRIB_VALUE_ENTITY_Q:\n returnState = S.ATTRIB_VALUE_QUOTED\n buffer = 'attribValue'\n break\n\n case S.ATTRIB_VALUE_ENTITY_U:\n returnState = S.ATTRIB_VALUE_UNQUOTED\n buffer = 'attribValue'\n break\n }\n\n if (c === ';') {\n parser[buffer] += parseEntity(parser)\n parser.entity = ''\n parser.state = returnState\n } else if (isMatch(parser.entity.length ? entityBody : entityStart, c)) {\n parser.entity += c\n } else {\n strictFail(parser, 'Invalid character in entity name')\n parser[buffer] += '&' + parser.entity + c\n parser.entity = ''\n parser.state = returnState\n }\n\n continue\n\n default:\n throw new Error(parser, 'Unknown state: ' + parser.state)\n }\n } // while\n\n if (parser.position >= parser.bufferCheckPosition) {\n checkBufferLength(parser)\n }\n return parser\n }\n\n /*! http://mths.be/fromcodepoint v0.1.0 by @mathias */\n /* istanbul ignore next */\n if (!String.fromCodePoint) {\n (function () {\n var stringFromCharCode = String.fromCharCode\n var floor = Math.floor\n var fromCodePoint = function () {\n var MAX_SIZE = 0x4000\n var codeUnits = []\n var highSurrogate\n var lowSurrogate\n var index = -1\n var length = arguments.length\n if (!length) {\n return ''\n }\n var result = ''\n while (++index < length) {\n var codePoint = Number(arguments[index])\n if (\n !isFinite(codePoint) || // `NaN`, `+Infinity`, or `-Infinity`\n codePoint < 0 || // not a valid Unicode code point\n codePoint > 0x10FFFF || // not a valid Unicode code point\n floor(codePoint) !== codePoint // not an integer\n ) {\n throw RangeError('Invalid code point: ' + codePoint)\n }\n if (codePoint <= 0xFFFF) { // BMP code point\n codeUnits.push(codePoint)\n } else { // Astral code point; split in surrogate halves\n // http://mathiasbynens.be/notes/javascript-encoding#surrogate-formulae\n codePoint -= 0x10000\n highSurrogate = (codePoint >> 10) + 0xD800\n lowSurrogate = (codePoint % 0x400) + 0xDC00\n codeUnits.push(highSurrogate, lowSurrogate)\n }\n if (index + 1 === length || codeUnits.length > MAX_SIZE) {\n result += stringFromCharCode.apply(null, codeUnits)\n codeUnits.length = 0\n }\n }\n return result\n }\n /* istanbul ignore next */\n if (Object.defineProperty) {\n Object.defineProperty(String, 'fromCodePoint', {\n value: fromCodePoint,\n configurable: true,\n writable: true\n })\n } else {\n String.fromCodePoint = fromCodePoint\n }\n }())\n }\n})(typeof exports === 'undefined' ? this.sax = {} : exports)\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/sax/sax.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/sax/license": {
"text": "The ISC License\n\nCopyright (c) Isaac Z. Schlueter and Contributors\n\nPermission to use, copy, modify, and/or distribute this software for any\npurpose with or without fee is hereby granted, provided that the above\ncopyright notice and this permission notice appear in all copies.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\" AND THE AUTHOR DISCLAIMS ALL WARRANTIES\nWITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF\nMERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR\nANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES\nWHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN\nACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR\nIN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.\n\n====\n\n`String.fromCodePoint` by Mathias Bynens used according to terms of MIT\nLicense, as follows:\n\n Copyright Mathias Bynens <https://mathiasbynens.be/>\n\n Permission is hereby granted, free of charge, to any person obtaining\n a 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\n permit persons to whom the Software is furnished to do so, subject to\n the following conditions:\n\n The above copyright notice and this permission notice shall be\n included in all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND\n NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE\n LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION\n 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",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/sax/license"
},
"$:/plugins/tiddlywiki/sax/readme": {
"title": "$:/plugins/tiddlywiki/sax/readme",
"text": "This plugin packages [[sax.js|https://github.com/isaacs/sax-js]] for use by other plugins. It does not provide any end-user visible features.\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/text-slicer/docs/exporters": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs/exporters",
"tags": "$:/plugins/tiddlywiki/text-slicer/docs",
"caption": "Exporters",
"text": "Documents can be saved under Node.js, or previewed in the browser.\n\n[TBD]\n"
},
"$:/plugins/tiddlywiki/text-slicer/docs/internals": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs/internals",
"tags": "$:/plugins/tiddlywiki/text-slicer/docs",
"caption": "Internals",
"text": "! Introduction\n\nThe slicing process is performed by a simple automaton that scans the document and applies simple declarative rules to yield a collection of tiddlers.\n\nThe automaton processes the incoming XML document starting with the root element and then recursively visits each child node and their children. Actions are triggered as each component of the document is encountered:\n\n* Opening tags of elements\n* Closing tags of elements\n* Text nodes\n\nComponents are matched against the current set of rules to determine what actions should be performed. They can include a combination of:\n\n* Starting a new tiddler with specified fields\n* Rendering the markup for the current tag into the current tiddler\n* Appending the content of the current text node to the current tiddler\n* Threading tiddlers to their parents using a combination of the `list` and `tags` fields\n\n! Slicing State Data\n\nAs the automaton performs its scan, it maintains the following state information:\n\n* ''chunks'' - an array of tiddlers without titles, addressed by their numeric index. The title field is reused to hold the plain text of the chunk that is later used to generate the final title for the tiddler\n* ''currentChunk'' - the numeric index of the chunk currently being filled, or `null` if there is no current chunk\n* ''parentStack'' - a stack of parent chunks stored as `{chunk: <chunk-index>, actions: <actions>}`\n\nAt the start, the special document chunk is created and pushed onto the stack of parent chunks\n\n! Slicing Rules\n\nSlicing rules are maintained in tiddlers tagged `$:/tags/text-slicer/slicer-rules` with the following fields:\n\n* ''title'' - title of the tiddler containing the listof rules\n* ''name'' - short, human readable name for the set of rules\n* ''inherits-from'' - (optional) the ''name'' field of another set of rules that should be inherited as a base\n* ''text'' - JSON data as described below\n\nThe JSON data is an array of rules, each of which is an object with the following fields:\n\n* ''selector'' - a selector string identifying the components to be matched by this rule\n* ''actions'' - an object describing the actions to be performed when this selector matches a tag\n\n!! Selectors\n\nThe selector format is a simplified form of CSS selectors. They are specified as follows:\n\n* A ''selector'' is a list of one or more ''match expressions'' separated by commas. The rule is triggered if any of the match expressions produce a positive match\n* A ''match expression'' is a list of one or element ''tag names'' separated by spaces. The rule is triggered if the final tag name in the list matches the tag of the current element, and all of the preceding tags in the expression exist as ancestors of the current element in the specified order (but not necessarily as immediate children of one another)\n* A ''tag name'' is the textual name of an element\n* Tag names in match expressions may optionally be separated by a `>` sign surrounded by spaces to impose the requirement that the left hand element be the immediate parent of the right hand element\n\n!!! Example Selectors\n\nThis XML document will be used to illustrate some examples:\n\n```\n<a>\n <b>\n <d>one</d>\n </b>\n <c>\n <d>two</d>\n <e>\n three\n <e>\n four\n </e>\n </e>\n </c>\n</a>\n\n```\n\n|!Selector |!Matches |\n|b |Matches the single `<b>` element |\n|d |Matches both of the two `<d>` elements |\n|c,d |Matches the `<c>` element and both of the two `<d>` elements |\n|c d |Matches the second of the two `<d>` elements |\n|a d |Matches both of the two `<d>` elements |\n|a > d |Doesn't match anything |\n|e |Matches both of the two `<e>` elements |\n|c > e |Matches the outermost of the two `<e>` elements |\n|e > e |Matches the innermost of the two `<e>` elements |\n\n!! Actions\n\nThe ''action'' property of a slicer rule is an object that can have any of the following optional fields:\n\n* ''startNewChunk'' - causes a new chunk to be started on encountering an opening tag. The value is an object containing the fields to be assigned to the new chunk\n* ''isParent'' - causes the new chunk to be marked as a child of the current chunk (boolean flag; only applies if ''startNewChunk'' is set)\n* ''headingLevel'' - arrange heading parents according to level (numerical index; only applies if ''startNewChunk'' and ''isParent'' are set)\n* ''dontRenderTag'' - disables the default rendering of opening and closing tags to the current chunk. By default the tags are rendered as XML tags, but this can be overridden via ''markup'' (boolean; defaults to ''false'')\n* ''isImage'' - identifies an element as representing an HTML image element, with special processing for the ''src'' attribute\n* ''markup'' - optional object with either or both of `{wiki: {prefix: <str>,suffix: <str>}}` and `{html: {prefix: <str>,suffix: <str>}}` allowing the rendered tags to be customised\n"
},
"$:/plugins/tiddlywiki/text-slicer/docs/model": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs/model",
"tags": "$:/plugins/tiddlywiki/text-slicer/docs",
"caption": "Document Model",
"text": "Individual tiddlers are created for each heading, paragraph and list item. They are linked together into a hierarchical outline using lists.\n\nFor example, consider a tiddler titled ''Example'' containing this simple text:\n\n<<<\n! This is a heading\n\nThis is a paragraph.\n\n* And the first list item\n* Second list item\n<<<\n\nIt will be sliced up into:\n\n* a tiddler for the overall document\n** a tiddler for the heading\n*** a tiddler for the paragraph\n*** a tiddler for the list\n**** and a tiddler for each list item\n\nThese tiddlers are bound together using lists: the parent tiddler has a ''list'' field that lists each child in the correct order.\n\n!! Slicing Process\n\nSlicing generates the following component tiddlers.\n\nTiddler titles are generated automatically in most cases (but can subsequently be changed manually). The automatically generated title is made up of concatenating the following elements:\n\n* root text (e.g. ''para'')\n* a dash ''-''\n* the first few words of the text of the item (up to 40 characters), separated with dashes ''-''\n* if necessary, a dash ''-'' and a numerical index to make the title unique\n\nFor example, ''para-how-to-use-pentagonal-tiles 23''.\n\nAny CSS classes used in the original document are assigned as tags to the associated tiddlers.\n\n!!! Document\n\nThe document itself is represented by a tiddler with the following fields:\n\n* ''toc-type'': the text \"document\"\n* ''title'': the text ''\"Sliced up \"'' plus the title of the tiddler that was sliced\n* ''text'': Available for comments about the document\n* ''list'': ordered list of tiddlers making up the root level of this document\n\n!!! Headings\n\nTiddlers representing headings have the following fields:\n\n* ''toc-type'': the text \"heading\"\n* ''toc-heading-level'': the heading level \"h1\", \"h2\", \"h3\" etc.\n* ''title'': an automatically generated unique title\n* ''text'': the text of the heading\n* ''list'': ordered list of tiddlers tagged with this heading (i.e. the child headings, paragraphs and lists displayed under this heading)\n** In addition, any CSS classes found in the HTML are converted into tags\n\n!!! Paragraphs\n\nTiddlers representing paragraphs have the following fields:\n\n* ''toc-type'': the text \"paragraph\"\n* ''title'': an automatically generated unique title\n* ''text'': the text of the paragraph\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\n!!! Lists\n\nLists are represented by several tiddlers: one for the list itself, and one for each item in the list.\n\nThe tiddler representing the list itself has the following fields:\n\n* ''toc-type'': the text \"list\"\n* ''toc-list-type'': the text \"ul\" or \"ol\"\n* ''toc-list-filter'': the default filter used to generate the titles of the list items\n* ''title'': an automatically generated unique title\n* ''list'': ordered list of titles of tiddlers representing the items in this list\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\nThe tiddlers representing items within the list have the following fields:\n\n* ''toc-type'': the text \"item\"\n* ''title'': an automatically generated unique title\n* ''text'': the text of the list item\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\n!!! Definition lists\n\nDefinition lists are represented by several tiddlers: one for the definition list itself, and one for each term and definition in the list.\n\nThe tiddler representing the definition list itself has the following fields:\n\n* ''toc-type'': the text \"def-list\"\n* ''toc-list-filter'': the default filter used to generate the titles of the definition list items\n* ''title'': an automatically generated unique title\n* ''list'': ordered list of titles of tiddlers representing the items (terms and/or definition) in the definition list\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\nThe tiddlers representing terms within the definition list have the following fields:\n\n* ''toc-type'': the text \"term\"\n* ''title'': an automatically generated unique title\n* ''text'': the text of the definition list term\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\nThe tiddlers representing definitions within the definition list have the following fields:\n\n* ''toc-type'': the text \"definition\"\n* ''title'': an automatically generated unique title\n* ''text'' : the text of the definition list definition\n* ''tags'': any CSS classes found in the HTML are converted into tags\n\n!!! Images\n\nTiddlers representing images have the following fields:\n\n* ''toc-type'': the text \"image\"\n* ''title'': an automatically generated unique title\n* ''type'': appropriate content type for the image (eg \"image/jpeg\")\n\n!!! Notes\n\nNotes are available during editing but hidden for static renderings. The slicing mechanism does not generate notes; they can only be subsequently added manually. Tiddlers representing notes have the following fields:\n\n* ''toc-type'': the text \"note\"\n* ''title'': an automatically generated unique title\n* ''text'': the text of the note\n* ''tags'': any CSS classes found in the HTML are converted into tags\n"
},
"$:/plugins/tiddlywiki/text-slicer/docs/preview": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs/preview",
"tags": "$:/plugins/tiddlywiki/text-slicer/docs",
"caption": "Preview",
"text": "The document preview column appears at the left side of the screen. The content of headings can be collapsed and expanded to help navigation. Clicking on a tiddler opens the corresponding tiddler in the main story river.\n\nClicking ''Show toolbar'' causes each tiddler to be preceded by a toolbar showing the underlying title. It can be edited directly to rename the tiddler. References to the tiddler in the ''tags'' and ''list'' are automatically updated to reflect the change, but note that links to the tiddler will not be automatically changed.\n\nThe following theme tweaks should be applied to enable the preview column:\n\n* Set [[story left position|$:/themes/tiddlywiki/vanilla/metrics/storyleft]] to ''400px'' (or more)\n* It is recommended to also set the [[sidebar layout|$:/themes/tiddlywiki/vanilla/options/sidebarlayout]] to ''fluid-fixed''.\n\nTo preview the entire document in a separate window, locate it in the preview column and click the button labelled \"View document\". The document will open in plain text in a new window. The window will be automatically updated as you work on the document.\n"
},
"$:/plugins/tiddlywiki/text-slicer/docs/usage": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs/usage",
"tags": "$:/plugins/tiddlywiki/text-slicer/docs",
"caption": "Usage",
"text": "The tool can slice any tiddler that can be rendered as HTML, including both WikiText and HTML itself.\n\nDocuments created with Microsoft Word will need to be first converted to HTML. The library [[mammoth.js|https://github.com/mwilliamson/mammoth.js]] is recommended for this purpose.\n\n!! Browser\n\nIn the browser, you can slice a monolithic document tiddler using the slicer toolbar button.\n\n!! Node.js\n\nThe `--slice` command allows a tiddler to be sliced under Node.js:\n\n```\ntiddlywiki mywiki --slice SourceDocument --build index\n```\n"
},
"$:/plugins/tiddlywiki/text-slicer/docs": {
"title": "$:/plugins/tiddlywiki/text-slicer/docs",
"list": "$:/plugins/tiddlywiki/text-slicer/docs/usage $:/plugins/tiddlywiki/text-slicer/docs/preview $:/plugins/tiddlywiki/text-slicer/docs/model $:/plugins/tiddlywiki/text-slicer/docs/exporters $:/plugins/tiddlywiki/text-slicer/docs/internals",
"text": "! Introduction\n\nThis plugin contains tools to help work with documents that are structured as a hierarchical outline of tiddlers. The structural relationships within the document are expressed through the `list` and `tags` fields: for example, headings have a list specifying the chunks of content to be shown under the heading.\n\nThe major components within the text slicer plugin include:\n\n* ''the slicer'', a tool that slices up an existing monolithic document according to the headings, lists and paragraphs. It is available as a toolbar button for the browser, or as a command for use under Node.js\n* ''document preview column'', a new sidebar on the left that shows the full text of any documents in the wiki and allows individual tiddlers to be opened with a click\n* ''templates'' for previewing and exporting the individual documents as HTML files\n\nMinor components include:\n\n* a new `list-children` filter that returns all the descendents listed in the `list` field of the selected tiddlers\n* a new canned filter for [[advanced search|$:/AdvancedSearch]] that lists orphans tiddlers that are not part of any document\n\n<<tabs \"[all[tiddlers+shadows]tag[$:/plugins/tiddlywiki/text-slicer/docs]!has[draft.of]]\" \"$:/plugins/tiddlywiki/text-slicer/docs/usage\">>\n"
},
"$:/plugins/tiddlywiki/text-slicer/readme": {
"title": "$:/plugins/tiddlywiki/text-slicer/readme",
"text": "This plugin contains tools to help slice up long texts into individual tiddlers. It currently works directly with XHTML documents and with Microsoft Word compatible DOCX documents via conversion to HTML.\n\nIt is an expression of the philosophy of TiddlyWiki: that text is easier to re-use and work with if it is sliced up into separate chunks that can be independently manipulated, and then woven back together to make up stories and narratives for publication.\n\n"
},
"$:/plugins/tiddlywiki/text-slicer/icon": {
"title": "$:/plugins/tiddlywiki/text-slicer/icon",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-text-slicer tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n <g fill-rule=\"evenodd\" sketch:type=\"MSPage\">\n <path d=\"M64,0 L118.5596,32 L118.5596,96 L64,128 L9.44039956,96 L9.44039956,32 L64,0 Z\" ></path>\n <g transform=\"translate(32.000000, 32.000000) scale(2.19)\" fill=\"#ffffff\">\n {{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}}\n </g>\n </g>\n</svg>"
},
"$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon": {
"title": "$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon",
"tags": "$:/tags/Image",
"text": "<svg class=\"tc-image-text-slicer tc-image-button\" width=\"22pt\" height=\"22pt\" viewBox=\"0 0 128 128\">\n\t<g fill-rule=\"evenodd\">\n\t\t<path d=\"M78.3637366,56.1312577 L78.3637366,60.2285796 L26.7489717,26.7095593 C23.9558586,24.8956905 23.1577753,21.1490577 24.9741388,18.3521031 C26.7898442,15.5561619 30.5337016,14.7576591 33.3309445,16.5742099 L87.6340125,51.8390346 L84.9731806,51.8390346 L103.852266,39.5788135 L105.182681,41.6274744 L104.070376,43.8022835 C102.858368,43.1824026 101.719662,42.4138485 100.675491,41.5061647 C93.6569185,35.4050129 92.9012893,24.7795163 98.9918187,17.7731637 C105.082348,10.766811 115.709601,10.0363032 122.728174,16.137455 C129.746746,22.2386068 130.502375,32.8641034 124.411846,39.870456 C123.229956,41.2300649 121.856251,42.3760135 120.416666,43.2314984 L94.2434565,60.2285796 L94.2434565,56.1312577 L120.765587,73.3549304 C121.152097,73.6059335 121.506081,73.898207 121.822516,74.2262669 L120.064365,75.9221214 L121.489555,73.938223 C121.915739,74.2443848 122.328975,74.5712591 122.728174,74.9182775 C129.746746,81.0194293 130.502375,91.6449259 124.411846,98.6512786 C118.321316,105.657631 107.694063,106.388139 100.675491,100.286987 C93.6569185,94.1858354 92.9012893,83.5603389 98.9918187,76.5539862 C100.441592,74.8862128 102.178627,73.5416182 104.115112,72.5685999 L105.211846,74.7513028 L103.88143,76.7999638 L84.9731806,64.5208027 L87.6340125,64.5208027 L61.3662147,81.57931 L61.3662147,67.1695775 L78.3637366,56.1312577 Z M114.533131,83.6707925 L115.961891,81.689464 L114.933771,83.9053132 C114.675216,83.7853476 114.424622,83.6467924 114.183613,83.4902793 L113.644945,83.1404643 L114.975362,81.0918038 L113.881545,83.2759699 C111.959385,82.3133637 109.605897,82.7611681 108.179792,84.4017143 C106.463272,86.3763445 106.676536,89.3752164 108.660203,91.0995921 C110.643871,92.8239678 113.643238,92.617794 115.359758,90.6431638 C117.076278,88.6685336 116.863014,85.6696617 114.879347,83.945286 C114.767376,83.8479516 114.651892,83.7564326 114.533131,83.6707925 Z M115.359758,31.8623412 C117.076278,29.8877111 116.863014,26.8888391 114.879347,25.1644635 C112.89568,23.4400878 109.896312,23.6462616 108.179792,25.6208918 C106.463272,27.5955219 106.676536,30.5943939 108.660203,32.3187696 C110.643871,34.0431452 113.643238,33.8369714 115.359758,31.8623412 Z\" fill-rule=\"nonzero\"></path>\n\t\t<g transform=\"translate(0.000000, 46.000000)\">\n\t\t\t<path d=\"M62.9632954,19.5390625 L62.984127,19.5390625 L62.984127,76.87441 C62.984127,79.7051952 60.6450077,82 57.7588318,82 L5.49996847,82 C2.61411765,82 0.274673329,79.7050809 0.274673329,76.87441 L0.274673329,5.12559005 C0.274673329,2.29480483 2.61379258,0 5.49996847,0 L42.7341992,0 L42.7341992,0.0129302741 C44.1445002,-0.0458264988 45.5745556,0.452971616 46.6523962,1.51002434 L61.4328365,16.0053998 C62.4299816,16.9833134 62.9403234,18.2577109 62.9632954,19.5390625 L62.9632954,19.5390625 Z M42.7341992,5.125 L5.50046113,5.125 L5.50046113,76.875 L57.7583392,76.875 L57.7583392,19.5390625 L47.9602131,19.5390625 C45.0739653,19.5390625 42.7341992,17.2466672 42.7341992,14.4138408 L42.7341992,5.125 Z\" ></path>\n\t\t\t<rect x=\"10.7262489\" y=\"23.0625\" width=\"41.8063024\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t\t<rect x=\"10.7262489\" y=\"33.3125\" width=\"41.8063024\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t\t<rect x=\"10.7262489\" y=\"43.5625\" width=\"41.8063024\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t\t<rect x=\"10.7262489\" y=\"53.8125\" width=\"41.8063024\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t\t<rect x=\"10.7262489\" y=\"64.0625\" width=\"41.8063024\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t\t<rect x=\"10.7262489\" y=\"12.8125\" width=\"26.128939\" height=\"5.125\" rx=\"2.5625\"></rect>\n\t\t</g>\n\t</g>\n</svg>\n"
},
"$:/language/Help/slice": {
"title": "$:/language/Help/slice",
"description": "Slice a hierarchical document into individual tiddlers",
"text": "Slices the specified tiddler\n\n```\n--slice <source-title> [<dest-title>] [<slicer-rules>] [<output-mode>]\n```\n\n* ''source-title'': Title of the tiddler to be sliced\n* ''dest-title'': Base title for the generated output tiddlers\n* ''slicer-rules'': Name of the slicer rules to use for the operation (see below)\n* ''output-mode'': \"html\" vs \"wiki\"\n\nThe plugin comes with several built-in sets of slicer rules:\n\n* //html-by-paragraph//: Slice every paragraph into a separate tiddler, threaded by heading\n* //html-by-heading//: Slice every heading into separate threaded tiddlers\n* //html-plain-paragraphs//: Slice every paragraph into a separate tiddler, without formatting or headings\n\nAdvanced users can create or edit their own slicer rules for precise control over the conversion process\n"
},
"$:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js": {
"title": "$:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/commands/slice.js\ntype: application/javascript\nmodule-type: command\n\nCommand to slice a specified tiddler\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar widget = require(\"$:/core/modules/widgets/widget.js\"),\n\ttextSlicer = require(\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\");\n\nexports.info = {\n\tname: \"slice\",\n\tsynchronous: false\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tsourceTitle = this.params[0],\n\t\tdestTitle = this.params[1],\n\t\tslicerRules = this.params[2],\n\t\toutputMode = this.params[3],\n\t\tslicer = new textSlicer.Slicer({\n\t\t\tsourceTiddlerTitle: sourceTitle,\n\t\t\tbaseTiddlerTitle: destTitle,\n\t\t\tslicerRules: slicerRules,\n\t\t\toutputMode: outputMode,\n\t\t\twiki: wiki,\n\t\t\tcallback: function(err,tiddlers) {\n\t\t\t\tif(err) {\n\t\t\t\t\treturn self.callback(err);\n\t\t\t\t}\n\t\t\t\twiki.addTiddlers(tiddlers);\n\t\t\t\tself.callback();\t\n\t\t\t}\n\t\t});\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
},
"$:/core/modules/filters/list-children.js": {
"title": "$:/core/modules/filters/list-children.js",
"text": "/*\\\ntitle: $:/core/modules/filters/list-children.js\ntype: application/javascript\nmodule-type: filteroperator\n\nFilter operator returning all the descendents of a tiddler listed in the \"list\" field\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nExport our filter function\n*/\nexports[\"list-children\"] = function(source,operator,options) {\n\tvar children = {},\n\t\tprocessTiddler = function(title) {\n\t\t\tvar tiddler = options.wiki.getTiddler(title);\n\t\t\tif(tiddler && !$tw.utils.hop(children,title)) {\n\t\t\t\tchildren[title] = true;\n\t\t\t\tvar list = options.wiki.getTiddlerList(title,operator.operand);\n\t\t\t\tlist.forEach(function(listItem) {\n\t\t\t\t\tif(!$tw.utils.hop(children,listItem)) {\n\t\t\t\t\t\tprocessTiddler(listItem);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t};\n\tsource(function(tiddler,title) {\n\t\tprocessTiddler(title);\n\t});\n\treturn Object.keys(children);\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "filteroperator"
},
"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-heading.json": {
"title": "$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-heading.json",
"name": "html-by-heading",
"caption": "By Heading (HTML)",
"description": "One tiddler per heading, threaded (HTML)",
"inherits-from": "html-by-paragraph",
"type": "application/json",
"tags": "$:/tags/text-slicer/slicer-rules",
"text": "[\n\t{\n\t\t\"selector\": \"address,center,fieldset,form,hr,iframe,isindex,noframes,noscript,ol,ul,li,pre,table\",\n\t\t\"actions\": {}\n\t},\n\t{\n\t\t\"selector\": \"blockquote\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"<<<\\n\",\n\t\t\t\t\t\"suffix\": \"<<<\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dd\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"\\n: \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dl\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"\\n\",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dt\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"\\n; \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h1\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h1\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 1,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h2\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h2\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 2,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"!! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h3\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h3\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 3,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"!!! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h4\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h4\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 4,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"!!!! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h5\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h5\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 5,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"!!!!! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h6\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h6\"\n\t\t\t},\n\t\t\t\"mergeNext\": true,\n\t\t\t\"setCaption\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 6,\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"!!!!!! \",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"p\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"\",\n\t\t\t\t\t\"suffix\": \"\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"*\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t}\n]\n"
},
"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-paragraph.json": {
"title": "$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-by-paragraph.json",
"name": "html-by-paragraph",
"caption": "By Paragraph (HTML)",
"description": "One tiddler per paragraph, threaded by heading (HTML)",
"type": "application/json",
"tags": "$:/tags/text-slicer/slicer-rules",
"text": "[\n\t{\n\t\t\"selector\": \"address,center,fieldset,form,hr,iframe,isindex,noframes,noscript,pre,table\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"blockquote\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t},\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"<<<\\n\",\n\t\t\t\t\t\"suffix\": \"<<<\\n\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"body,div,head,html,span\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dd\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"definition\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dl\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"def-list\",\n\t\t\t\t\"toc-list-filter\": \"[list<currentTiddler>!has[draft.of]]\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"dt\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"term\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"em,i\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"//\",\n\t\t\t\t\t\"suffix\": \"//\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h1\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 1,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h1\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h2\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 2,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h2\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h3\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 3,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h3\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h4\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 4,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h4\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h5\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 5,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h5\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"h6\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"headingLevel\": 6,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"heading\",\n\t\t\t\t\"toc-heading-level\": \"h6\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"img\",\n\t\t\"actions\": {\n\t\t\t\"isImage\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"li\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"item\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"ol\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"list\",\n\t\t\t\t\"toc-list-type\": \"ol\",\n\t\t\t\t\"toc-list-filter\": \"[list<currentTiddler>!has[draft.of]]\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"p\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"strike\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"~~\",\n\t\t\t\t\t\"suffix\": \"~~\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"strong,b\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"''\",\n\t\t\t\t\t\"suffix\": \"''\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"sub\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \",,\",\n\t\t\t\t\t\"suffix\": \",,\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"sup\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"^^\",\n\t\t\t\t\t\"suffix\": \"^^\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"head > title\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"u\",\n\t\t\"actions\": {\n\t\t\t\"markup\": {\n\t\t\t\t\"wiki\": {\n\t\t\t\t\t\"prefix\": \"__\",\n\t\t\t\t\t\"suffix\": \"__\"\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"ul\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"isParent\": true,\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"list\",\n\t\t\t\t\"toc-list-type\": \"ul\",\n\t\t\t\t\"toc-list-filter\": \"[list<currentTiddler>!has[draft.of]]\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"*\",\n\t\t\"actions\": {}\n\t}\n]"
},
"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-linear.json": {
"title": "$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-linear.json",
"name": "html-linear",
"caption": "Linear (HTML)",
"description": "One tiddler per paragraph in a single linear thread (HTML)",
"type": "application/json",
"tags": "$:/tags/text-slicer/slicer-rules",
"text": "[\n\t{\n\t\t\"selector\": \"li > p\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"p\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t},\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"a\",\n\t\t\"actions\": {\n\t\t\t\"isAnchor\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"address,blockquote,center,dl,dt,fieldset,form,h1,h2,h3,h4,h5,h6,hr,iframe,isindex,noframes,noscript,ol,pre,table,ul\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t}\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"br,caption,code,col,colgroup,em,i,dd,li,strike,strong,b,sub,sup,u,tbody,td,tfoot,th,thead,tr\",\n\t\t\"actions\": {\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"img\",\n\t\t\"actions\": {\n\t\t\t\"isImage\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"head\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true,\n\t\t\t\"discard\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"*\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t}\n]"
},
"$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-plain-paragraphs.json": {
"title": "$:/plugins/tiddlywiki/text-slicer/slicer-rules/html-plain-paragraphs.json",
"name": "html-plain-paragraphs",
"caption": "Plain Paragraphs (HTML)",
"description": "One tiddler per paragraph, without formatting (HTML)",
"type": "application/json",
"tags": "$:/tags/text-slicer/slicer-rules",
"text": "[\n\t{\n\t\t\"selector\": \"address,blockquote,center,dd,dt,h1,h2,h3,h4,h5,h6,li,p\",\n\t\t\"actions\": {\n\t\t\t\"startNewChunk\": {\n\t\t\t\t\"toc-type\": \"paragraph\"\n\t\t\t},\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t},\n\t{\n\t\t\"selector\": \"*\",\n\t\t\"actions\": {\n\t\t\t\"dontRenderTag\": true\n\t\t}\n\t}\n]\n"
},
"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js": {
"title": "$:/plugins/tiddlywiki/text-slicer/modules/slicer.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/slicer.js\ntype: application/javascript\nmodule-type: library\n\nSlice a tiddler or DOM document into individual tiddlers\n\nvar slicer = new textSlicer.Slicer(doc,{\n\t\tslicerRules: JSON data defining slicer rules -or- title of rules taken from tiddlers tagged $:/tags/text-slicer/slicer-rules\n\t\tsourceTiddlerTitle: tiddler to slice -or-\n\t\tsourceText: text to slice\n\t\toutputMode: \"html\" (default) -or- \"wiki\"\n\t\tbaseTiddlerTitle: \"MySlicedTiddlers-\"\n\t\trole: \"sliced-content\"\n\t\tcallback: function(err,tiddlers)\n\t});\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nfunction Slicer(options) {\n\t// Quick tests\n\tthis.testSlicerRuleMatching();\n\t// Marshal parameters\n\tthis.sourceTiddlerTitle = options.sourceTiddlerTitle;\n\tthis.sourceText = options.sourceText;\n\tthis.wiki = options.wiki;\n\tthis.role = options.role || \"sliced-html\";\n\tthis.outputMode = options.outputMode || \"html\";\n\tthis.escapeWikiText = options.escapeWikiText || false;\n\tthis.callbackFn = options.callback;\n\t// Get the slicer rules\n\tvar nameSlicerRules = null;\n\tif(!options.slicerRules) {\n\t\tnameSlicerRules = \"html-by-paragraph\";\n\t\tthis.slicerRules = this.loadSlicerRules(nameSlicerRules);\n\t} else if(typeof options.slicerRules === \"string\") {\n\t\tnameSlicerRules = options.slicerRules;\n\t\tthis.slicerRules = this.loadSlicerRules(nameSlicerRules);\n\t} else {\n\t\tthis.slicerRules = options.slicerRules;\n\t}\n\t// Set up the base tiddler title\n\tthis.baseTiddlerTitle = this.getBaseTiddlerTitle(options.baseTiddlerTitle);\n\t// Initialise state\n\tthis.namespaces = {}; // Hashmap of URLs\n\tthis.chunks = []; // Array of tiddlers without titles, addressed by their index. We use the title field to hold the plain text content\n\tthis.currentChunk = null; // Index of the chunk currently being written to\n\tthis.parentStack = []; // Stack of parent chunks {chunk: chunk index,actions:}\n\tthis.elementStack = []; // Stack of {tag:,isSelfClosing:,actions:}\n\tthis.titleCounts = {}; // Hashmap of counts of prefixed titles that have been issued\n\t// Set up the document tiddler as top level heading\n\tthis.chunks.push({\n\t\t\"toc-type\": \"document\",\n\t\ttitle: this.baseTiddlerTitle,\n\t\ttext: \"<div class='tc-table-of-contents'><<toc-selective-expandable \\\"\\\"\\\"\" + this.baseTiddlerTitle + \"document\\\"\\\"\\\">></div>\",\n\t\tlist: [],\n\t\ttags: [],\n\t\trole: this.role,\n\t\t\"slicer-rules\": nameSlicerRules,\n\t\t\"slicer-output-mode\": this.outputMode\n\t});\n\tthis.parentStack.push({chunk: 0, actions: this.getMatchingSlicerRuleActions(\"(document)\")});\n\tthis.insertPrecedingChunk({\n\t\t\"toc-type\": \"anchor\",\n\t\t\"title\": this.baseTiddlerTitle + \"-anchor-\"\n\t});\n\t// Set up the parser\n\tvar sax = require(\"$:/plugins/tiddlywiki/sax/sax.js\");\n\tthis.sax = sax.parser(false,{\n\t\txmlns: true,\n\t\tlowercase: true\n\t});\n\tthis.sax.onerror = this.onError.bind(this);\n\tthis.sax.onopennamespace = this.onOpenNamespace.bind(this);\n\tthis.sax.onclosenamespace = this.onCloseNamespace.bind(this);\n\tthis.sax.onopentag = this.onOpenTag.bind(this);\n\tthis.sax.onclosetag = this.onCloseTag.bind(this);\n\tthis.sax.ontext = this.onText.bind(this);\n\tthis.sax.onend = this.onEnd.bind(this);\n\t// Start streaming the data\n\tthis.sax.write(this.getSourceText());\n\tthis.sax.close();\n}\n\nSlicer.prototype.callback = function(err,tiddlers) {\n\tvar self = this;\n\t$tw.utils.nextTick(function() {\n\t\tself.callbackFn(err,tiddlers);\n\t});\n};\n\nSlicer.prototype.loadSlicerRules = function(name) {\n\t// Collect the available slicer rule tiddlers\n\tvar self = this,\n\t\ttitles = this.wiki.getTiddlersWithTag(\"$:/tags/text-slicer/slicer-rules\"),\n\t\ttiddlers = {},\n\t\trules = {},\n\t\truleNames = [];\n\ttitles.forEach(function(title) {\n\t\tvar tiddler = self.wiki.getTiddler(title);\n\t\ttiddlers[tiddler.fields.name] = tiddler;\n\t\trules[tiddler.fields.name] = self.wiki.getTiddlerData(title,[]);\n\t});\n\t// Follow the inheritance trail to get a stack of slicer rule names\n\tvar n = name;\n\tdo {\n\t\truleNames.push(n);\n\t\tn = tiddlers[n] && tiddlers[n].fields[\"inherits-from\"];\n\t} while(n && ruleNames.indexOf(n) === -1);\n\t// Concatenate the slicer rules\n\trules = ruleNames.reduce(function(accumulator,name) {\n\t\treturn accumulator.concat(rules[name]);\n\t},[]);\n\treturn rules;\n};\n\nSlicer.prototype.getMatchingSlicerRuleActions = function(name) {\n\tvar rule = this.searchSlicerRules(name,this.slicerRules,this.elementStack);\n\tif(!rule) {\n\t\treturn {};\n\t} else {\n\t\treturn rule.actions;\n\t}\n};\n\nSlicer.prototype.testSlicerRuleMatching = function() {\n\tvar tests = [\n\t\t\t{\n\t\t\t\ttest: this.searchSlicerRules(\"title\",[\n\t\t\t\t\t\t{selector: \"title,head,body\", rules: true},\n\t\t\t\t\t\t{selector: \"body\", rules: true}\n\t\t\t\t\t],[\n\t\t\t\t\t\t{tag:\"head\"}\n\t\t\t\t\t]),\n\t\t\t\tresult: \"title,head,body\"\n\t\t\t},\n\t\t\t{\n\t\t\t\ttest: this.searchSlicerRules(\"body\",[\n\t\t\t\t\t\t{selector: \"title,head,body\", rules: true},\n\t\t\t\t\t\t{selector: \"body\", rules: true}\n\t\t\t\t\t],[\n\t\t\t\t\t\t{tag:\"head\"}\n\t\t\t\t\t]),\n\t\t\t\tresult: \"title,head,body\"\n\t\t\t},\n\t\t\t{\t\n\t\t\t\ttest: this.searchSlicerRules(\"title\",[\n\t\t\t\t\t\t{selector: \"head > title\", rules: true},\n\t\t\t\t\t\t{selector: \"title\", rules: true}\n\t\t\t\t\t],[\n\t\t\t\t\t\t{tag:\"head\"}\n\t\t\t\t\t]),\n\t\t\t\tresult: \"head > title\"\n\t\t\t}\n\t\t],\n\t\tresults = tests.forEach(function(test,index) {\n\t\t\tif(test.test.selector !== test.result) {\n\t\t\t\tthrow \"Failing test \" + index + \", returns \" + test.test.selector + \" instead of \" + test.result;\n\t\t\t}\n\t\t});\n};\n\nSlicer.prototype.searchSlicerRules = function(name,rules,elementStack) {\n\treturn rules.find(function(rule) {\n\t\t// Split and trim the selectors for this rule\n\t\treturn !!rule.selector.split(\",\").map(function(selector) {\n\t\t\t\treturn selector.trim();\n\t\t\t// Find the first selector that matches, if any\n\t\t\t}).find(function(selector) {\n\t\t\t\t// Split and trim the parts of the selector\n\t\t\t\tvar parts = selector.split(\" \").map(function(part) {\n\t\t\t\t\treturn part.trim();\n\t\t\t\t});\n\t\t\t\t// * matches any element\n\t\t\t\tif(parts.length === 1 && parts[0] === \"*\") {\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\t// Make a copy of the element stack so that we can be destructive\n\t\t\t\tvar elements = elementStack.slice(0).concat({tag: name}),\n\t\t\t\t\tnextElementMustBeAtTopOfStack = true,\n\t\t\t\t\tcurrentPart = parts.length - 1;\n\t\t\t\twhile(currentPart >= 0) {\n\t\t\t\t\tif(parts[currentPart] === \">\") {\n\t\t\t\t\t\tnextElementMustBeAtTopOfStack = true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif(!nextElementMustBeAtTopOfStack) {\n\t\t\t\t\t\t\twhile(elements.length > 0 && elements[elements.length - 1].tag !== parts[currentPart]) {\n\t\t\t\t\t\t\t\telements.pop();\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(elements.length === 0 || elements[elements.length - 1].tag !== parts[currentPart]) {\n\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t}\n\t\t\t\t\t\telements.pop();\n\t\t\t\t\t\tnextElementMustBeAtTopOfStack = false;\n\t\t\t\t\t}\n\t\t\t\t\tcurrentPart--;\n\t\t\t\t}\n\t\t\t\treturn true;\n\t\t\t});\n\t\t});\n};\n\nSlicer.prototype.getBaseTiddlerTitle = function(baseTiddlerTitle) {\n\tif(baseTiddlerTitle) {\n\t\treturn baseTiddlerTitle\t\t\n\t} else {\n\t\tif(this.sourceTiddlerTitle) {\n\t\t\treturn \"Sliced up \" + this.sourceTiddlerTitle + \":\";\n\t\t} else {\n\t\t\treturn \"SlicedTiddler\";\n\t\t}\n\t}\n};\n\nSlicer.prototype.getSourceText = function() {\n\tif(this.sourceTiddlerTitle) {\n\t\tvar tiddler = this.wiki.getTiddler(this.sourceTiddlerTitle);\n\t\tif(!tiddler) {\n\t\t\tconsole.log(\"Tiddler '\" + this.sourceTiddlerTitle + \"' does not exist\");\n\t\t\treturn \"\";\n\t\t}\n\t\tif(tiddler.fields.type === \"text/html\" || tiddler.fields.type === \"text/xml\" || (tiddler.fields.type || \"\").slice(-4) === \"+xml\") {\n\t\t\treturn tiddler.fields.text;\n\t\t} else {\n\t\t\treturn this.getTiddlerAsHtml(tiddler);\n\t\t}\n\t} else {\n\t\treturn this.sourceText;\n\t}\n};\n\nSlicer.prototype.getTiddlerAsHtml = function(tiddler) {\n\tvar widgetNode = this.wiki.makeTranscludeWidget(tiddler.fields.title,{\n\t\t\tdocument: $tw.fakeDocument,\n\t\t\tparseAsInline: false,\n\t\t\timportPageMacros: true}),\n\t\tcontainer = $tw.fakeDocument.createElement(\"div\");\n\twidgetNode.render(container,null);\n\treturn [\"<!DOCTYPE html PUBLIC \\\"-//W3C//DTD XHTML 1.1//EN\\\" \\\"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd\\\">\",\"<html xmlns=\\\"http://www.w3.org/1999/xhtml\\\">\",\"<head>\",\"</head>\",\"<body>\",container.innerHTML,\"</body>\",\"</html>\"].join(\"\\n\");\n};\n\n\nSlicer.prototype.getImmediateParent = function() {\n\treturn this.parentStack.slice(-1)[0];\n};\n\nSlicer.prototype.onError = function(e) {\n\tconsole.error(\"Sax error: \", e)\n\t// Try to resume after errors\n\tthis.sax.error = null;\n\tthis.sax.resume();\n};\n\nSlicer.prototype.onOpenNamespace = function(info) {\n\tthis.namespaces[info.prefix] = info.uri;\n};\n\nSlicer.prototype.onCloseNamespace = function(info) {\n};\n\nSlicer.prototype.onOpenTag = function(node) {\n\tvar actions = this.getMatchingSlicerRuleActions(node.name);\n\t// Create an anchor if we encounter an ID\n\tif(node.attributes.id) {\n\t\tthis.insertPrecedingChunk({\n\t\t\t\"toc-type\": \"anchor\",\n\t\t\t\"title\": this.baseTiddlerTitle + \"-anchor-\" + node.attributes.id.value\n\t\t});\n\t}\n\t// Check for an element that should start a new chunk\n\tif(actions.startNewChunk) {\n\t\t// If this is a heading, pop off any higher or equal level headings first\n\t\tif(actions.isParent && actions.headingLevel) {\n\t\t\tvar parentActions = this.getImmediateParent().actions;\n\t\t\twhile(parentActions.isParent && parentActions.headingLevel && parentActions.headingLevel >= actions.headingLevel) {\n\t\t\t\tthis.parentStack.pop();\n\t\t\t\tparentActions = this.getImmediateParent().actions;\n\t\t\t}\n\t\t}\n\t\t// Start the new chunk\n\t\tthis.startNewChunk(actions.startNewChunk);\n\t\t// If this is a parent then also add it to the parent stack\n\t\tif(actions.isParent) {\n\t\t\tthis.parentStack.push({chunk: this.currentChunk, actions: actions});\n\t\t}\n\t}\n\t// Render the tag inline in the current chunk unless we should ignore it\n\tif(!actions.dontRenderTag) {\n\t\tif(actions.isImage) {\n\t\t\tthis.onOpenImage(node);\n\t\t} else if(actions.isAnchor) {\n\t\t\tthis.onOpenAnchor(node);\n\t\t} else {\n\t\t\tvar markupInfo = actions.markup && actions.markup[this.outputMode];\n\t\t\tif(markupInfo) {\n\t\t\t\tthis.addTextToCurrentChunk(markupInfo.prefix);\n\t\t\t} else {\n\t\t\t\tthis.addTextToCurrentChunk(\"<\" + node.name + (node.isSelfClosing ? \"/\" : \"\") + \">\");\n\t\t\t}\n\t\t}\n\t}\n\t// Remember whether this tag is self closing\n\tthis.elementStack.push({tag: node.name,isSelfClosing: node.isSelfClosing, actions: actions, node: node});\n};\n\nSlicer.prototype.onOpenAnchor = function(node) {\n\tif(node.attributes.href) {\n\t\tvar value = node.attributes.href.value;\n\t\tif(value.indexOf(\"https://\") === 0 || value.indexOf(\"http://\") === 0) {\n\t\t\t// External link\n\t\t\tthis.addTextToCurrentChunk(\"<a href=\\\"\" + value + \"\\\" target=\\\"_blank\\\" rel=\\\"noopener noreferrer\\\">\");\n\t\t} else {\n\t\t\t// Internal link\n\t\t\tvar parts = value.split(\"#\"),\n\t\t\t\tbase = parts[0],\n\t\t\t\thash = parts[1] || \"\",\n\t\t\t\ttitle = $tw.utils.resolvePath(base,this.baseTiddlerTitle) + \"-anchor-\" + hash;\n\t\t\tthis.addTextToCurrentChunk(\"<$link to=\\\"\" + title + \"\\\">\");\t\t\t\n\t\t}\n\t}\n};\n\nSlicer.prototype.onCloseAnchor = function(elementInfo) {\n\tif(elementInfo.node.attributes.href) {\n\t\tvar value = elementInfo.node.attributes.href.value;\n\t\tif(value.indexOf(\"https://\") === 0 || value.indexOf(\"http://\") === 0) {\n\t\t\t// External link\n\t\t\tthis.addTextToCurrentChunk(\"</a>\");\n\t\t} else {\n\t\t\t// Internal link\n\t\t\tthis.addTextToCurrentChunk(\"</$link>\");\n\t\t}\n\t}\n};\n\nSlicer.prototype.onOpenImage = function(node) {\n\tvar url = node.attributes.src.value;\n\tif(url.slice(0,5) === \"data:\") {\n\t\t// var parts = url.slice(5).split(\",\");\n\t\t// this.chunks.push({\n\t\t// \ttitle: ,\n\t\t// \ttext: parts[1],\n\t\t// \ttype: parts[0].split[\";\"][0],\n\t\t// \trole: this.role\n\t\t// });\n\t}\n\tthis.addTextToCurrentChunk(\"[img[\" + $tw.utils.resolvePath(url,this.baseTiddlerTitle) + \"]]\");\n};\n\nSlicer.prototype.onCloseTag = function(name) {\n\tvar e = this.elementStack.pop(),\n\t\tactions = e.actions,\n\t\tselfClosing = e.isSelfClosing;\n\t// Set the caption if required\n// TODO\n// \tif(actions.setCaption) {\n// \t\tthis.chunks[this.currentChunk].caption = this.chunks[this.currentChunk].title;\n// \t}\n\t// Render the tag\n\tif(actions.isAnchor) {\n\t\tthis.onCloseAnchor(e);\n\t} else if (!actions.dontRenderTag && !selfClosing) {\n\t\tvar markupInfo = actions.markup && actions.markup[this.outputMode];\n\t\tif(markupInfo) {\n\t\t\tthis.addTextToCurrentChunk(markupInfo.suffix);\n\t\t} else {\n\t\t\tthis.addTextToCurrentChunk(\"</\" + name + \">\");\t\t\t\n\t\t}\n\t}\n\t// Check for an element that started a new chunk\n\tif(actions.startNewChunk) {\n\t\tif(!actions.mergeNext) {\n\t\t\tthis.currentChunk = null;\t\t\t\n\t\t}\n\t\t// If this is a parent and not a heading then also pop it from the parent stack\n\t\tif(actions.isParent && !actions.headingLevel) {\n\t\t\tthis.parentStack.pop();\n\t\t}\n\t}\n};\n\nSlicer.prototype.onText = function(text) {\n\tvar self = this;\n\t// Discard the text if we're inside an element with actions.discard set true\n\tif(this.elementStack.some(function(e) {return e.actions.discard;})) {\n\t\treturn;\n\t}\n\t// Optionally escape common character sequences that might be parsed as wikitext\n\ttext = $tw.utils.htmlEncode(text);\n\tif(this.escapeWikiText) {\n\t\t$tw.utils.each([\"[[\",\"{{\",\"__\",\"''\",\"//\",\",,\",\"^^\",\"~~\",\"`\",\"--\",\"\\\"\\\"\",\"@@\"],function(str) {\n\t\t\tvar replace = str.split(\"\").map(function(c) {\n\t\t\t\treturn \"&#\" + c.charCodeAt(0) + \";\";\n\t\t\t}).join(\"\");\n\t\t\ttext = text.replace(new RegExp($tw.utils.escapeRegExp(str),\"mg\"),replace);\n\t\t});\n\t}\n\tthis.addTextToCurrentChunk(text);\n\tthis.addTextToCurrentChunk(text,\"caption\");\n};\n\nSlicer.prototype.onEnd = function() {\n\tthis.callback(null,this.chunks);\n};\n\nSlicer.prototype.addTextToCurrentChunk = function(str,field) {\n\tfield = field || \"text\";\n\tif(this.currentChunk === null && str.trim() !== \"\") {\n\t\tthis.startNewChunk({\n\t\t\ttitle: this.makeTitle(\"paragraph\"),\n\t\t\t\"toc-type\": \"paragraph\"\n\t\t});\n\t}\n\tif(this.currentChunk !== null) {\n\t\tthis.chunks[this.currentChunk][field] += str;\n\t}\n};\n\nSlicer.prototype.startNewChunk = function(fields) {\n\tvar title = fields.title || this.makeTitle(fields[\"toc-type\"]);\n\tvar parentChunk = this.chunks[this.getImmediateParent().chunk];\n\tthis.chunks.push($tw.utils.extend({},{\n\t\ttitle: title,\n\t\ttext: \"\",\n\t\tcaption: \"\",\n\t\ttags: [parentChunk.title],\n\t\tlist: [],\n\t\trole: this.role\n\t},fields));\n\tthis.currentChunk = this.chunks.length - 1;\n\tparentChunk.list.push(title);\n};\n\nSlicer.prototype.insertPrecedingChunk = function(fields) {\n\tif(!fields.title) {\n\t\tthrow \"Chunks need a title\"\n\t}\n\tif(!this.currentChunk) {\n\t\tthis.startNewChunk(fields);\n\t\tthis.currentChunk = null;\n\t} else {\n\t\tvar parentChunk = this.chunks[this.getImmediateParent().chunk],\n\t\t\tindex = this.chunks.length - 1;\n\t\t// Insert the new chunk\n\t\tthis.chunks.splice(index,0,$tw.utils.extend({},{\n\t\t\ttext: \"\",\n\t\t\tcaption: \"\",\n\t\t\ttags: [parentChunk.title],\n\t\t\tlist: [],\n\t\t\trole: this.role\n\t\t},fields));\n\t\t// Adjust the current chunk pointer\n\t\tthis.currentChunk += 1;\n\t\t// Insert a pointer to the new chunk in the parent\n\t\tparentChunk.list.splice(parentChunk.list.length - 1,0,fields.title);\t\t\n\t}\n};\n\nSlicer.prototype.isBlank = function(s) {\n\treturn (/^[\\s\\xA0]*$/g).test(s);\n};\n\nSlicer.prototype.makeTitle = function(prefix) {\n\tprefix = prefix || \"\";\n\tvar count = (this.titleCounts[prefix] || 0) + 1;\n\tthis.titleCounts[prefix] = count;\n\treturn this.baseTiddlerTitle + \"-\" + prefix + \"-\" + count;\n};\n\nexports.Slicer = Slicer;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js": {
"title": "$:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/text-slicer/modules/startup/slicer-startup.js\ntype: application/javascript\nmodule-type: startup\n\nSetup the root widget event handlers\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar textSlicer = require(\"$:/plugins/tiddlywiki/text-slicer/modules/slicer.js\");\n\n// Export name and synchronous status\nexports.name = \"slicer\";\nexports.platforms = [\"browser\"];\nexports.after = [\"startup\"];\nexports.synchronous = true;\n\n// Install the root widget event handlers\nexports.startup = function() {\n\t// Check sax is installed\n\tif(!$tw.utils.hop($tw.modules.titles,\"$:/plugins/tiddlywiki/sax/sax.js\")) {\n\t\t// Make a logger\n\t\tvar logger = new $tw.utils.Logger(\"text-slicer\");\n\t\tlogger.alert(\"The plugin 'text-slicer' requires the 'sax' plugin to be installed\");\n\t}\n\t// Add tm-slice-tiddler event handler\n\t$tw.rootWidget.addEventListener(\"tm-slice-tiddler\",function(event) {\n\t\tvar slicer = new textSlicer.Slicer({\n\t\t\tsourceTiddlerTitle: event.param,\n\t\t\tslicerRules: event.paramObject && event.paramObject.slicerRules,\n\t\t\toutputMode: event.paramObject && event.paramObject.outputMode,\n\t\t\tbaseTiddlerTitle: event.paramObject && event.paramObject.destTitle,\n\t\t\trole: event.paramObject && event.paramObject.role,\n\t\t\twiki: $tw.wiki,\n\t\t\tcallback: function(err,tiddlers) {\n\t\t\t\tif(err) {\n\t\t\t\t\tlogger.alert(\"Slicer error: \" + err);\n\t\t\t\t} else {\n\t\t\t\t\t$tw.wiki.addTiddlers(tiddlers);\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t});\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/tiddlywiki/text-slicer/styles": {
"title": "$:/plugins/tiddlywiki/text-slicer/styles",
"tags": "$:/tags/Stylesheet",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n.tc-document-preview-column {\n\tposition: fixed;\n\toverflow-y: auto;\n\toverflow-x: visible;\n\t-webkit-overflow-scrolling: touch;\n background-color: <<colour page-background>>;\n\tright: auto;\n\tleft: 0;\n\ttop: 0;\n\tbottom: 0;\n\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\tfont-size: 0.9em;\n}\n\n.tc-sliced-document-title {\n\tfont-size: 1.7em;\n}\n\n.tc-slice-note {\n color: #800;\n padding: 4px 4px 4px 4px;\n border: 1px solid #feed77;\n background: #feed77;\n background: -webkit-gradient(linear,left top,left bottom,color-stop(0%,#dede80),color-stop(7%,#feed77),color-stop(92%,#feed77),color-stop(100%,#dede80));\n background: -webkit-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -webkit-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\n background: -moz-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -moz-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\n background: -o-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -o-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\n background: -ms-linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), -ms-linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\n background: linear-gradient(72deg,rgba(255, 255, 255, 0.5) 8%,rgba(255, 255, 255, 0.1) 80%), linear-gradient(top,#dede80 0,#feed77 7%,#feed77 92%,#dede80 100%);\n\t<<box-shadow \"1px 1px 6px rgba(0,0,0,0.4)\">>\n}\n\n.tc-document-preview-column .tc-sliced-document-header {\n\tmargin-left: 24px;\n}\n\n.tc-document-preview-column .tc-sliced-document {\n\tmargin-bottom: 3px;\n}\n\n.tc-view-template-document-tiddler-wrapper,\n.tc-edit-template-document-tiddler-wrapper {\n border-top: 2px solid #D6A2A2;\n margin-left: -42px;\n margin-right: -42px;\n margin-bottom: -42px;\n padding-left: 42px;\n padding-right: 42px;\n background: #FFE3E3;\n padding-bottom: 10px;\n}\n\n.tc-edit-template-document-tiddler-wrapper {\n\tbackground: #A3A3D7;\n}\n\ndiv.tc-view-template-document-tiddler-heading a,\ndiv.tc-edit-template-document-tiddler-heading a {\n\tborder: 1px solid #D6A2A2;\n\tbackground: #fff;\n\tborder-radius: 16px;\n padding: 0px 4px 0px 4px;\n margin: 2px 4px 2px 4px;\n white-space: nowrap;\n display: inline-block;\n}\n\ndiv.tc-view-template-document-tiddler-heading a:hover,\ndiv.tc-edit-template-document-tiddler-heading a:hover {\n\tborder: 1px solid <<colour background>>;\n\ttext-decoration: none;\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n}\n\n.tc-view-template-document-tiddler-heading-icon,\n.tc-edit-template-document-tiddler-heading-icon {\n\twidth: 42px;\n\ttext-align: center;\n margin-left: -42px;\n margin-right: -42px;\n position: absolute;\n}\n\n.tc-view-template-document-tiddler-subheading,\n.tc-edit-template-document-tiddler-subheading {\n\tfont-size: 0.7em;\n\tfont-weight: bold;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-view-template-document-tiddler-heading-icon svg,\n.tc-edit-template-document-tiddler-heading-icon svg {\n\tfill: <<colour background>>;\t\n}\n\n.tc-view-template-document-tiddler {\n\tfont-size: 0.9em;\n}\n\n.tc-document-tiddler {\n\tfont-family: Georgia, Times, 'Times New Roman', serif;\n}\n\n.tc-text-slicer-rename input {\n\tdisplay: block;\n\twidth: 100%;\n}\n\n.tc-document-tiddler-link {\n\tcursor: pointer;\n}\n\n.tc-document-tiddler-link:hover {\n background: <<color background>>;\n}\n\n.tc-document-tiddler-toolbar {\n\tposition: absolute;\n\twidth: 24px;\n\ttext-align: center;\n}\n\n.tc-document-preview-column .tc-sliced-document-body {\n\tmargin-left: 24px;\n}\n\n.tc-document-preview-column .tc-document-tiddler-toolbar {\n\tmargin-left: -24px;\n}\n\n.tc-table-of-contents .tc-slice-toolbar button {\n\tcolor: inherit;\n\tbackground-color: inherit;\n}\n\n.tc-tiddler-frame .tc-document-tiddler-toolbar {\n left: 0;\n width: 42px;\n}\n\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/def-list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/def-list",
"text": "\\define body()\n<dl>\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\"/>\n</$list>\n</dl>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/definition": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/definition",
"text": "\\define body()\n<$link tag=\"dd\" class=\"tc-document-tiddler-link\">\n\n<$transclude/>\n\n</$link>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/document",
"text": "\\define config-document-status()\n$:/state/plugins/tiddlywiki/text-slicer/show-preview-document/$(tv-heading-status-config-prefix)$/$(currentTiddler)$\n\\end\n\n\\define config-show-toolbar()\n$:/state/plugins/tiddlywiki/text-slicer/show-toolbar/$(currentTiddler)$\n\\end\n\n\\define config-show-metadata()\n$:/state/plugins/tiddlywiki/text-slicer/show-metadata/$(currentTiddler)$\n\\end\n\n\\define config-heading-status()\n$:/state/plugins/tiddlywiki/text-slicer/heading-status/$(currentTiddler)$\n\\end\n\n\\define body()\n<$set name=\"tv-heading-status-config-title\" value=<<config-heading-status>>>\n<$set name=\"tv-show-toolbar\" value={{$(config-show-toolbar)$}}>\n<div class=\"tc-sliced-document\">\n<div class=\"tc-sliced-document-header\">\n<div class=\"tc-document-tiddler-toolbar\">\n<$reveal type=\"nomatch\" state=<<config-document-status>> text=\"close\" default=\"open\" tag=\"div\">\n<$button set=<<config-document-status>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<config-document-status>> text=\"close\" default=\"open\" tag=\"div\">\n<$button set=<<config-document-status>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n</div>\n<h1 class=\"tc-sliced-document-title\">''Document'': <$link><$view field=\"title\"/></$link></h1>\n</div>\n<$reveal type=\"nomatch\" state=<<config-document-status>> text=\"close\" default=\"open\" tag=\"div\">\n{{||$:/plugins/tiddlywiki/text-slicer/ui/document/header}}\n<div class='tc-sliced-document-body'>\n<$set name=\"tv-show-toolbar\" value={{$(config-show-toolbar)$}}>\n<$set name=\"tv-exclude-filter\" value={{!!toc-exclude-filter}}>\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\"/>\n</$set>\n</$set>\n</div>\n</$reveal>\n</div>\n</$set>\n</$set>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/heading": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/heading",
"text": "\\define config-heading-status()\n$(tv-heading-status-config-title)$/$(tv-heading-status-config-prefix)$/$(currentTiddler)$\n\\end\n\n\\define body(level:\"h1\")\n<$set name=\"tv-heading-status-config-title\" value=<<config-heading-status>>>\n<div class=\"tc-document-tiddler\">\n<div class=\"tc-document-tiddler-toolbar\">\n<$reveal type=\"nomatch\" state=<<tv-heading-status-config-title>> text=\"close\" default=<<tv-default-heading-state>> tag=\"div\">\n<$button set=<<tv-heading-status-config-title>> setTo=\"close\" class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal type=\"match\" state=<<tv-heading-status-config-title>> text=\"close\" default=<<tv-default-heading-state>> tag=\"div\">\n<$button set=<<tv-heading-status-config-title>> setTo=\"open\" class=\"tc-btn-invisible\">\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n</div>\n<$link tag=\"$level$\" class=\"tc-document-tiddler-link\">\n<$transclude/>\n</$link>\n<$reveal type=\"nomatch\" state=<<tv-heading-status-config-title>> text=\"close\" default=<<tv-default-heading-state>> tag=\"div\">\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\"/>\n</$reveal>\n</div>\n</$set>\n\\end\n\n<$macrocall $name=\"body\" level={{!!toc-heading-level}}/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/image": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/image",
"text": "\\define body()\n<$link tag=\"div\" class=\"tc-document-tiddler-link tc-document-tiddler\">\n\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n<$transclude/>\n\n</$list>\n\n</$link>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/item": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/item",
"text": "\\define body()\n<$link tag=\"li\" class=\"tc-document-tiddler-link\">\n\n<$transclude/>\n\n</$link>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/list",
"text": "\\define body(type:\"ul\")\n<$type$>\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\"/>\n</$list>\n</$type$>\n\\end\n\n<$macrocall $name=\"body\" type={{!!toc-list-type}}/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/note": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/note",
"text": "\\define body()\n<div class=\"tc-slice-note\">\n\n<$link tag=\"div\" class=\"tc-document-tiddler-link tc-document-tiddler\">\n\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n<$transclude/>\n\n</$list>\n\n</$link>\n\n</div>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/paragraph": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/paragraph",
"text": "\\define body()\n<$link tag=\"div\" class=\"tc-document-tiddler-link tc-document-tiddler\">\n\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n<$transclude/>\n\n</$list>\n\n</$link>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/term": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/term",
"text": "\\define body()\n<$link tag=\"dt\" class=\"tc-document-tiddler-link\">\n\n<$transclude/>\n\n</$link>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler",
"text": "\\define if(condition,then,else)\n<$list filter=\"\"\"$condition$ +[limit[1]]\"\"\" emptyMessage=\"\"\"$else$\"\"\" variable=\"ignore\">\n$then$\n</$list>\n\\end\n\n\\define include-component(type)\n<<if \"[{!!toc-type}match[$type$]]\" \"\"\"\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/$type$\" mode=\"block\"/>\n\"\"\">>\n\\end\n\n<$list filter=\"[<tv-show-toolbar>match[yes]]\" variable=\"hasToolbar\">\n{{||$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar}}\n</$list>\n\n<<include-component \"document\">>\n<<include-component \"heading\">>\n<<include-component \"paragraph\">>\n<<include-component \"note\">>\n<<include-component \"list\">>\n<<include-component \"item\">>\n<<include-component \"image\">>\n<<include-component \"def-list\">>\n<<include-component \"term\">>\n<<include-component \"definition\">>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list",
"text": "\\define body()\n<dl>\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\"/>\n</$list>\n</dl>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/definition": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/definition",
"text": "\\define body()\n<dd>\n\n<$transclude/>\n\n</dd>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/document": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/document",
"text": "<$set name=\"tv-exclude-filter\" value={{!!toc-exclude-filter}}>\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\"/>\n\n</$set>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/heading": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/heading",
"text": "\\define body(level:\"h1\")\n<$level$>\n<$transclude/>\n</$level$>\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\"/>\n\\end\n\n<$macrocall $name=\"body\" level={{!!toc-heading-level}}/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/image": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/image",
"text": "<$transclude/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/item": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/item",
"text": "\\define body()\n<li>\n\n<$transclude/>\n\n</li>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/list",
"text": "\\define body(type:\"ul\")\n<$type$>\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler\"/>\n</$list>\n</$type$>\n\\end\n\n<$macrocall $name=\"body\" type={{!!toc-list-type}}/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/note": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/note",
"text": "<!-- Don't display notes in plain mode -->\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph",
"text": "\\define body()\n<div>\n\n<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n<$transclude/>\n\n</$list>\n\n</div>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/term": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/term",
"text": "\\define body()\n<dt>\n\n<$transclude/>\n\n</dt>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/plain/tiddler",
"text": "<$vars toc-type={{!!toc-type}}>\n\n<$list filter=\"[<toc-type>match[document]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[heading]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/heading\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[paragraph]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/paragraph\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[note]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/note\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[list]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/list\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[item]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/item\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[image]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/image\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[def-list]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/def-list\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[term]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/term\" mode=\"block\"/>\n</$list>\n\n<$list filter=\"[<toc-type>match[definition]]\" variable=\"item\">\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/definition\" mode=\"block\"/>\n</$list>\n\n</$vars>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/def-list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/def-list",
"text": "<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n`<dl class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n\n`</dl>`\n\n</$list>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/definition": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/definition",
"text": "`<dd class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$transclude/>\n\n`</dd>`\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/document": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/document",
"text": "<$set name=\"tv-exclude-filter\" value={{!!toc-exclude-filter}}>\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n\n</$set>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/heading": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/heading",
"text": "`<`<$text text={{!!toc-heading-level}}/>` class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$view field=\"text\" format=\"htmlencodedplainwikified\"/>\n\n`</`<$text text={{!!toc-heading-level}}/>`>`\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes",
"text": "<$list filter=\"[all[current]tags[]addprefix[$:/_DocumentTags/]has[title]]\"><$view field=\"css-class\"/> </$list>"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/image": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/image",
"text": "<$reveal state=\"!!_canonical_uri\" type=\"match\" text=\"\">\n\n`<img src=\"data:`<$view format=\"text\" field=\"type\"/>`;base64,`<$view format=\"text\" field=\"text\"/>`\" class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n</$reveal>\n\n<$reveal state=\"!!_canonical_uri\" type=\"nomatch\" text=\"\">\n\n`<img src=\"`<$text text=<<tv-external-image-path>>/><$view field=\"title\" format=\"doubleurlencoded\"/>`\" class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n</$reveal>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/item": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/item",
"text": "`<li class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$transclude/>\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n\n`</li>`\n\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/list": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/list",
"text": "<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n`<`<$text text={{!!toc-list-type}}/>` class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$list filter={{!!toc-list-filter}} template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n\n`</`<$text text={{!!toc-list-type}}/>`>`\n\n</$list>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/note": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/note",
"text": "<!-- Don't display notes in static mode -->\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph",
"text": "<$list filter=\"\"\"[all[current]] $(tv-exclude-filter)$ +[limit[1]]\"\"\" variable=\"item\">\n\n`<p class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$view field=\"text\" format=\"htmlencodedplainwikified\"/>\n\n`</p>`\n\n</$list>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/term": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/term",
"text": "`<dt class=\"`{{||$:/plugins/tiddlywiki/text-slicer/templates/static/helpers/classes}}`\">`\n\n<$transclude/>\n\n`</dt>`\n\n<$list filter=\"[list<currentTiddler>!has[draft.of]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler\"/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler": {
"title": "$:/plugins/tiddlywiki/text-slicer/templates/static/tiddler",
"text": "<$vars toc-type={{!!toc-type}}>\n\n<$list filter=\"[<toc-type>match[document]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/document\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[heading]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/heading\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[paragraph]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/paragraph\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[note]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/note\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[list]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/list\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[item]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/item\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[image]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/image\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[def-list]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/def-list\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[term]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/term\" mode=\"block\"/>\n\n</$list>\n\n<$list filter=\"[<toc-type>match[definition]]\" variable=\"item\">\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/static/definition\" mode=\"block\"/>\n\n</$list>\n\n</$vars>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/document/header": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/document/header",
"text": "\\define metadatafield()\n<tr>\n<td>\n''<$transclude tiddler=<<listItem>> field=\"caption\"/>''\n</td>\n<td>\n<$reveal type=\"match\" state=\"\"\"$(listItem)$!!field-type\"\"\" text=\"string\">\n<$edit-text field={{$(listItem)$!!field}}/>\n</$reveal>\n<$reveal type=\"match\" state=\"\"\"$(listItem)$!!field-type\"\"\" text=\"list\">\n<$edit-text tag=\"textarea\" field={{$(listItem)$!!field}}/>\n</$reveal>\n</td>\n</tr>\n\\end\n\n<div class=\"tc-sliced-document-header\">\n\n''Exclude filter'': <$edit-text field=\"toc-exclude-filter\"/>\n\n<$checkbox tiddler=<<config-show-toolbar>> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Show toolbar </$checkbox> <$checkbox tiddler=<<config-show-metadata>> field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"no\"> Show metadata</$checkbox> <$button>\n<$action-sendmessage $message=\"tm-open-window\" $param=<<currentTiddler>> template=\"$:/plugins/tiddlywiki/text-slicer/templates/plain/document\"/>\nView document\n</$button>\n\n<$reveal state=<<config-show-metadata>> default=\"no\" type=\"match\" text=\"yes\">\n<table>\n<tbody>\n<$list filter=\"[all[system+tiddlers]tag[$:/tags/DocumentMetaData]]\" variable=\"listItem\">\n<<metadatafield>>\n</$list>\n</tbody>\n</table>\n</$reveal>\n\n\n</div>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/edit-template-segment": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/edit-template-segment",
"tags": "$:/tags/EditTemplate",
"text": "\\define edit-field(name,tag:\"input\")\n$name$:\n\n<$edit-text field=\"\"\"$name$\"\"\" tag=\"$tag$\" class=\"tc-edit-texteditor\"/>\n\\end\n\n<$reveal type=\"nomatch\" state=\"!!toc-type\" text=\"\">\n\n<div class=\"tc-edit-template-document-tiddler-wrapper\">\n\n<div class=\"tc-edit-template-document-tiddler-heading\">\n\n<div class=\"tc-edit-template-document-tiddler-heading-icon\">\n\n{{$:/core/images/file}}\n\n</div>\n\n<div class=\"tc-edit-template-document-tiddler-subheading\">\n\n<$view field=\"toc-type\"/>\n\n</div>\n\n<<edit-field \"list\" tag:\"textarea\">>\n\n</div>\n\n</div>\n\n</$reveal>\n\n"
},
"$:/plugins/tiddlywiki/text-slicer/filters/Orphans": {
"title": "$:/plugins/tiddlywiki/text-slicer/filters/Orphans",
"tags": "$:/tags/Filter",
"filter": "[has[toc-type]] -[toc-type[document]list-children[]]",
"description": "[Text-slicer] Tiddlers that are not part of any document",
"text": ""
},
"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty",
"text": "<div class=\"tc-sliced-document-header\">\n\nCreate a document by slicing an existing tiddler\n\n---\n\n[[Help|$:/plugins/tiddlywiki/text-slicer/docs]]\n\n</div>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple",
"text": "Show document: <$select tiddler=\"$:/plugins/tiddlywiki/text-slicer/config/currentDocument\">\n<$list filter=\"[toc-type[document]!has[draft.of]sort[title]]\">\n<option value=<<currentTiddler>>><$view field=\"title\"/></option>\n</$list>\n</$select>\n\n<$tiddler tiddler={{$:/plugins/tiddlywiki/text-slicer/config/currentDocument}}>\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\"/>\n\n</$tiddler>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single",
"text": "<$list filter=\"[toc-type[document]!has[draft.of]sort[title]limit[1]]\" template=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/document\"/>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/preview-column": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/preview-column",
"tags": "$:/tags/AboveStory",
"text": "<$scrollable fallthrough=\"no\" class=\"tc-document-preview-column\">\n\n<$vars\n\ttv-default-heading-state=\"open\"\n>\n\n<$list filter=\"[toc-type[document]!has[draft.of]sort[title]limit[1]]\" emptyMessage={{$:/plugins/tiddlywiki/text-slicer/ui/preview-column/empty}}>\n\n<$list filter=\"[toc-type[document]!has[draft.of]sort[title]butfirst[1]limit[1]]\" emptyMessage={{$:/plugins/tiddlywiki/text-slicer/ui/preview-column/single}} template=\"$:/plugins/tiddlywiki/text-slicer/ui/preview-column/multiple\"/>\n\n</$list>\n\n</$vars>\n\n</$scrollable>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/slice-modal",
"footer": "<$button message=\"tm-close-tiddler\">Cancel</$button> <$button><$action-sendmessage $message=\"tm-close-tiddler\"/><$action-sendmessage $message=\"tm-slice-tiddler\" $param=<<currentTiddler>> slicerRules={{$:/config/plugins/text-slicer/slice-rule}} outputMode={{$:/config/plugins/text-slicer/output-mode}} destTitle={{$:/config/plugins/text-slicer/base-title}}/>Slice</$button>",
"subtitle": "Slicing \"<$text text=<<currentTiddler>>/>\" into chunks",
"text": "''Choose how the tiddler should be sliced''\n\nPrefix for extracted tiddlers: <$edit-text tiddler=\"$:/config/plugins/text-slicer/base-title\" default={{{ [[Sliced up ]addsuffix<currentTiddler>addsuffix[:]] }}} tag=\"input\" size=\"30\"/>\n\n<$select tiddler=\"$:/config/plugins/text-slicer/slice-rule\" default=\"html-by-paragraph\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/text-slicer/slicer-rules]!has[draft.of]]\">\n<option value={{!!name}}><$text text={{!!description}}/></option>\n</$list>\n</$select>\n\nOutput mode: <$select tiddler=\"$:/config/plugins/text-slicer/output-mode\" default=\"html\">\n<option value=\"html\">HTML</option>\n<option value=\"wiki\">Wiki text</option>\n</$select>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/slice-toolbar-button",
"tags": "$:/tags/ViewToolbar",
"list-before": "$:/core/ui/Buttons/edit",
"caption": "{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}} Slice text tiddler",
"description": "Slice this text tiddler by headings and lists",
"text": "\\whitespace trim\n\n\\define hint()\nSlice this text tiddler into chunks\n\\end\n\n<$list filter=\"[<currentTiddler>!is[image]!is[binary]]\" variable=\"ignore\">\n<$button tooltip=<<hint>> aria-label=<<hint>> class=<<tv-config-toolbar-class>>>\n<$action-sendmessage $message=\"tm-modal\" $param=\"$:/plugins/tiddlywiki/text-slicer/ui/slice-modal\" currentTiddler=<<currentTiddler>>/>\n<$list filter=\"[<tv-config-toolbar-icons>match[yes]]\">\n{{$:/plugins/tiddlywiki/text-slicer/images/text-slicer-icon}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>match[yes]]\">\n<span class=\"tc-btn-text\"> Slice tiddler</span>\n</$list>\n</$button>\n</$list>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar/title": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar/title",
"tags": "$:/tags/TextSlicerToolbar",
"text": "\\define renameProxyTitle()\n$:/state/plugins/tiddlywiki/text-slicer/rename-$(currentTiddler)$\n\\end\n\n\\define body()\n<div class=\"tc-text-slicer-rename\">\n<$edit-text tag=\"input\" tiddler=<<renameProxyTitle>> placeholder=\"Rename\" default=<<currentTiddler>>/>\n<$reveal type=\"nomatch\" state=\"\"\"$(renameProxyTitle)$\"\"\" text=<<currentTiddler>> default=<<currentTiddler>>>\n<$button>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\ncancel\n</$button>\n<$button>\n<$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to={{$(renameProxyTitle)$}}/>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\nrename\n</$button>\n<$set name=\"proxy-title\" value={{$(renameProxyTitle)$}}>\n<$list filter=\"\"\"[<proxy-title>is[tiddler]]\"\"\">\nWarning: tiddler already exists\n</$list>\n</$set>\n</$reveal>\n</div>\n\\end\n\n<<body>>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/tiddler/toolbar",
"text": "<div class=\"tc-slice-toolbar\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TextSlicerToolbar]!has[draft.of]]\" variable=\"listItem\"><$transclude tiddler=<<listItem>>/></$list>\n</div>\n"
},
"$:/plugins/tiddlywiki/text-slicer/ui/view-template-segment": {
"title": "$:/plugins/tiddlywiki/text-slicer/ui/view-template-segment",
"tags": "$:/tags/ViewTemplate",
"text": "\\define config-heading-status()\n$:/state/plugins/tiddlywiki/text-slicer/heading-status/$(currentTiddler)$\n\\end\n\n<$reveal type=\"nomatch\" state=<<folded-state>> text=\"hide\" retain=\"yes\" animate=\"yes\">\n\n<$reveal type=\"nomatch\" state=\"!!toc-type\" text=\"\">\n\n<div class=\"tc-view-template-document-tiddler-wrapper\">\n\n<div class=\"tc-view-template-document-tiddler-heading\">\n\n<div class=\"tc-view-template-document-tiddler-heading-icon\">\n\n{{$:/core/images/file}}\n\n</div>\n\n<div class=\"tc-view-template-document-tiddler-subheading\">\n\n<$view field=\"toc-type\"/>\n\n</div>\n\nParents: <$list filter=\"[all[current]listed[]!is[system]]\" emptyMessage=\"None\">\n<$link><$view field=\"title\"/></$link>\n</$list>\n\n</div>\n\n<div class=\"tc-view-template-document-tiddler\">\n\n<$vars\n\ttv-default-heading-state=\"close\"\n\ttv-heading-status-config-prefix=\"view-template\"\n\ttv-heading-status-config-title=<<config-heading-status>>\n>\n\n<$transclude tiddler=\"$:/plugins/tiddlywiki/text-slicer/templates/interactive/tiddler\"/>\n\n</$vars>\n\n</div>\n\n</div>\n\n</$reveal>\n\n</$reveal>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/twitter/macros": {
"title": "$:/plugins/tiddlywiki/twitter/macros",
"tags": "$:/tags/Macro",
"text": "\\define twitter-usage(text)\nFor example:\n\n<$codeblock code=\"\"\"$text$\"\"\"/>\n\nRenders as:\n\n$text$\n\\end\n\n"
},
"$:/plugins/tiddlywiki/twitter/rawmarkup": {
"title": "$:/plugins/tiddlywiki/twitter/rawmarkup",
"tags": "$:/tags/RawMarkup",
"text": "<script>window.twttr = (function(d, s, id) {\n var js, fjs = d.getElementsByTagName(s)[0],\n t = window.twttr || {};\n if (d.getElementById(id)) return t;\n js = d.createElement(s);\n js.id = id;\n js.src = \"https://platform.twitter.com/widgets.js\";\n fjs.parentNode.insertBefore(js, fjs);\n\n t._e = [];\n t.ready = function(f) {\n t._e.push(f);\n };\n\n return t;\n}(document, \"script\", \"twitter-wjs\"));</script>"
},
"$:/plugins/tiddlywiki/twitter/readme": {
"title": "$:/plugins/tiddlywiki/twitter/readme",
"text": "This plugin provides a `<$twitter>` widget that can embed various entities from Twitter's service:\n\n* Individual tweets and conversations\n* Buttons for tweeting/mentioning, sharing, following\n* Various types of timeline: profile, likes, list, collection, url and widget\n\nThe widget only works in the browser, and not in generated static HTML pages.\n"
},
"$:/plugins/tiddlywiki/twitter/widget.js": {
"title": "$:/plugins/tiddlywiki/twitter/widget.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/twitter/widget.js\ntype: application/javascript\nmodule-type: widget\n\nTwitter widget\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar Widget = require(\"$:/core/modules/widgets/widget.js\").widget;\n\nvar TwitterWidget = function(parseTreeNode,options) {\n\tthis.initialise(parseTreeNode,options);\n};\n\n/*\nInherit from the base widget class\n*/\nTwitterWidget.prototype = new Widget();\n\nvar optionAttributes = \"align ariaPolite borderColor cards chrome conversation count dnt hashtags height height lang linkColor related size text theme tweetLimit via width\".split(\" \"),\n\totherAttributes = \"hashtag id ownerScreenName screenName slug tweetID type url userId widgetId\".split(\" \"),\n\tallAttributes = Array.prototype.slice.call(optionAttributes,0).concat(otherAttributes);\n\n/*\nRender this widget into the DOM\n*/\nTwitterWidget.prototype.render = function(parent,nextSibling) {\n\tvar self = this;\n\t// Housekeeping\n\tthis.parentDomNode = parent;\n\tthis.computeAttributes();\n\t// Compose the arguments for the tweet call\n\tvar method,\n\t\targ,\n\t\toptions = {};\n\t\t$tw.utils.each(optionAttributes,function(attr) {\n\t\t\toptions[attr] = self.getAttribute(attr);\n\t\t});\n\tswitch(this.getAttribute(\"type\")) {\n\t\tcase \"shareButton\":\n\t\t\tmethod = \"createShareButton\";\n\t\t\targ = this.getAttribute(\"url\");\n\t\t\tbreak;\n\t\tcase \"followButton\":\n\t\t\tmethod = \"createFollowButton\";\n\t\t\targ = this.getAttribute(\"screenName\");\n\t\t\tbreak;\n\t\tcase \"hashtagButton\":\n\t\t\tmethod = \"createHashtagButton\";\n\t\t\targ = this.getAttribute(\"hashtag\");\n\t\t\tbreak;\n\t\tcase \"mentionButton\":\n\t\t\tmethod = \"createMentionButton\";\n\t\t\targ = this.getAttribute(\"screenName\");\n\t\t\tbreak;\n\t\tcase \"tweet\":\n\t\t\tmethod = \"createTweet\";\n\t\t\targ = this.getAttribute(\"tweetID\");\n\t\t\tbreak;\n\t\tcase \"timelineProfile\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"profile\",\n\t\t\t\tscreenName: this.getAttribute(\"screenName\"),\n\t\t\t\tuserId: this.getAttribute(\"userId\")\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"timelineLikes\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"likes\",\n\t\t\t\tscreenName: this.getAttribute(\"screenName\"),\n\t\t\t\tuserId: this.getAttribute(\"userId\")\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"timelineList\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"list\",\n\t\t\t\townerScreenName: this.getAttribute(\"ownerScreenName\"),\n\t\t\t\tslug: this.getAttribute(\"slug\"),\n\t\t\t\tid: this.getAttribute(\"id\")\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"timelineCollection\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"collection\",\n\t\t\t\tid: this.getAttribute(\"id\")\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"timelineUrl\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"url\",\n\t\t\t\turl: this.getAttribute(\"url\")\n\t\t\t};\n\t\t\tbreak;\n\t\tcase \"timelineWidget\":\n\t\t\tmethod = \"createTimeline\";\n\t\t\targ = {\n\t\t\t\tsourceType: \"widget\",\n\t\t\t\twidgetId: this.getAttribute(\"widgetId\")\n\t\t\t};\n\t\t\tbreak;\n\t}\n\t// Render the tweet into a div\n\tvar div = this.document.createElement(\"div\");\n\tif(!this.document.isTiddlyWikiFakeDom && window.twttr && method) {\n\t\ttwttr.ready(function(twttr) {\n\t\t\twindow.twttr.widgets[method](arg,div,options);\n\t\t});\n\t} else {\n\t\tdiv.appendChild(this.document.createTextNode(\"Can't render tweet\"));\n\t}\n\t// Insert it into the DOM\n\tparent.insertBefore(div,nextSibling);\n\tthis.domNodes.push(div);\n};\n\n/*\nSelectively refreshes the widget if needed. Returns true if the widget or any of its children needed re-rendering\n*/\nTwitterWidget.prototype.refresh = function(changedTiddlers) {\n\tvar changedAttributes = this.computeAttributes();\n\tif(allAttributes.find(function(attr) {\n\t\treturn $tw.utils.hop(changedAttributes,attr);\n\t})) {\n\t\tthis.refreshSelf();\n\t\treturn true;\n\t} else {\n\t\treturn false;\t\n\t}\n};\n\nexports.twitter = TwitterWidget;\n\n})();\n",
"type": "application/javascript",
"module-type": "widget"
},
"$:/plugins/tiddlywiki/twitter/usage/collectiontimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/collectiontimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "Collection Timeline",
"text": "!! Embedding Collection Timelines\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineCollection\" |none |\"timelineCollection\" |\n|''id'' |ID of the collection |none | |\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineCollection\" id=\"393773266801659904\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/followbutton": {
"title": "$:/plugins/tiddlywiki/twitter/usage/followbutton",
"tags": "$:/tags/TwitterUsage",
"caption": "Follow Button",
"text": "!! Embedding Follow Buttons\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"followButton\" |none |\"followButton\" |\n|''screenName'' |Screen name of the account to be followed |none | |\n|''count'' |\"none\", \"horizontal\" |\"horizontal\" | |\n|''text'' |Any string |none |The default, highlighted text a user sees in the Tweet web intent |\n|''hashtags'' |A comma-separated list of hashtags |none |A list of hashtags to be appended to default Tweet text where appropriate |\n|''align'' |\"left\", \"right\" |locale dependent (left or right, depending on the text direction of the language) |The alignment of the button within an iframe; use this to ensure flush layout when aligning buttons |\n|''size'' |\"medium\", \"large\" |medium |Size of button |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"followButton\" screenName=\"TiddlyWiki\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/hashtagbutton": {
"title": "$:/plugins/tiddlywiki/twitter/usage/hashtagbutton",
"tags": "$:/tags/TwitterUsage",
"caption": "Hashtag Button",
"text": "!! Embedding Hashtag Buttons\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"hashtagButton\" |none |\"hashtagButton\" |\n|''hashtag'' |Hashtag to be tweeted and displayed on the button |none | |\n|''text'' |Any string |none |The default, highlighted text a user sees in the Tweet web intent |\n|''align'' |\"left\", \"right\" |locale dependent (left or right, depending on the text direction of the language) |The alignment of the button within an iframe; use this to ensure flush layout when aligning buttons |\n|''size'' |\"medium\", \"large\" |medium |Size of button |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"hashtagButton\" hashtag=\"TiddlyWiki\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/likestimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/likestimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "Likes Timeline",
"text": "!! Embedding Likes Timelines\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineLikes\" |none |\"timelineLikes\" |\n|''screenName'' |Screen name of the account |none |Either ''screenName'' or ''userId'' must be provided |\n|''userId'' |User ID of the account |none |~|\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineLikes\" screenName=\"tiddlywiki\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/listtimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/listtimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "List Timeline",
"text": "!! Embedding List Timelines\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineList\" |none |\"timelineList\" |\n|''ownerScreenName'' |Screen name of the account |none |Either both ''ownerScreenName'' and ''slug'' must be provided, or just ''id'' |\n|''slug'' |The string identifier for a list |none |~|\n|''id'' |ID of the list |none |~|\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineList\" ownerScreenName=\"isaach\" slug=\"home-timeline\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/mentionbutton": {
"title": "$:/plugins/tiddlywiki/twitter/usage/mentionbutton",
"tags": "$:/tags/TwitterUsage",
"caption": "Mention Button",
"text": "!! Embedding Mention Buttons\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"mentionButton\" |none |\"mentionButton\" |\n|''screenName'' |Screen name of the account to be mentioned |none | |\n|''text'' |Any string |none |The default, highlighted text a user sees in the Tweet web intent |\n|''hashtags'' |A comma-separated list of hashtags |none |A list of hashtags to be appended to default Tweet text where appropriate |\n|''align'' |\"left\", \"right\" |locale dependent (left or right, depending on the text direction of the language) |The alignment of the button within an iframe; use this to ensure flush layout when aligning buttons |\n|''size'' |\"medium\", \"large\" |medium |Size of button |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"mentionButton\" screenName=\"TiddlyWiki\"/>\n\"\"\">>"
},
"$:/plugins/tiddlywiki/twitter/usage/profiletimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/profiletimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "Profile Timeline",
"text": "!! Embedding Profile Timelines\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineProfile\" |none |\"timelineProfile\" |\n|''screenName'' |Screen name of the account |none |Either ''screenName'' or ''userId'' must be provided |\n|''userId'' |User ID of the account |none |~|\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineProfile\" screenName=\"tiddlywiki\"/>\n\"\"\">>\n\n"
},
"$:/plugins/tiddlywiki/twitter/usage/sharebutton": {
"title": "$:/plugins/tiddlywiki/twitter/usage/sharebutton",
"tags": "$:/tags/TwitterUsage",
"caption": "Share Button",
"text": "!! Embedding Share Buttons\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"shareButton\" |none |\"shareButton\" |\n|''url'' |The URL to be shared |none | |\n|''text'' |Any string |none |The default, highlighted text a user sees in the Tweet web intent |\n|''hashtags'' |A comma-separated list of hashtags |none |A list of hashtags to be appended to default Tweet text where appropriate |\n|''align'' |\"left\", \"right\" |locale dependent (left or right, depending on the text direction of the language) |The alignment of the button within an iframe; use this to ensure flush layout when aligning buttons |\n|''size'' |\"medium\", \"large\" |medium |Size of button |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"shareButton\" url=\"https://tiddlywiki.com/\" text=\"Mind blown!\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/tweet": {
"title": "$:/plugins/tiddlywiki/twitter/usage/tweet",
"tags": "$:/tags/TwitterUsage",
"caption": "Tweet",
"text": "!! Embedding Tweets\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"tweet\" |none |\"tweet\" |\n|''tweetID'' |ID of the tweet to render |none | |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |true, false |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"tweet\" tweetID=\"750677030589587456\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/urltimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/urltimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "Url Timeline",
"text": "!! Embedding Profile Timelines\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineUrl\" |none |\"timelineUrl\" |\n|''url'' |Absolute URL of a Twitter profile, likes, list, or collection |none | |\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineUrl\" url=\"https://twitter.com/TiddlyWiki\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage/widgettimeline": {
"title": "$:/plugins/tiddlywiki/twitter/usage/widgettimeline",
"tags": "$:/tags/TwitterUsage",
"caption": "Widget Timeline",
"text": "!! Embedding Widget Timelines\n\nTo power an embedded timeline with a widget configuration generated at https://twitter.com/settings/widgets.\n\n|!Attribute |!Values |!Default |!Notes |\n|''type'' |\"timelineWidget\" |none |\"timelineWidget\" |\n|''widgetId'' |ID of the widget |none |~|\n|''chrome'' |\"noheader\", \"nofooter\", \"noborders\", \"transparent\", \"noscrollbar\" |none |Toggle the display of design elements in the widget. This parameter is a space-separated list of values |\n|''height'' |Positive integer |600 |Set a fixed height of the embedded widget |\n|''tweetLimit'' |Range: 1-20 |none |Render a timeline statically, displaying only n number of Tweets |\n|''borderColor'' |Hexadecimal color |Varies by theme |Adjust the color of borders inside the widget |\n|''ariaPolite'' |\"polite\", \"assertive\", \"rude\" |\"polite\" |Apply the specified aria-polite behavior to the rendered timeline. New Tweets may be added to the top of a timeline, affecting screen readers |\n|''conversation'' |\"none\", \"all\" |\"all\" |Tweets in response to another Tweet will display a compact version of the previous Tweet by default. Use \"none\" to hide the parent Tweet in the conversation |\n|''cards'' |\"hidden\", \"visible\"|visible |Hide photos, videos, and link previews powered by Twitter Cards |\n|''width'' |Positive integer |\"auto\", derived from container size |Set the maximum width of the embedded Tweet |\n|''align''\t|\"left\", \"right\", \"center\"\t|none |Float the embedded Tweet to the left or right so that text wraps around it, or align center so it floats in the middle of a paragraph |\n|''theme'' |\"dark\", \"light\" |\"light\"\t|Toggle the default color scheme of the embedded Tweet |\n|''linkColor'' |Hexadecimal color |\"#2b7bb9\" |Adjust the color of links, including hashtags and @mentions, inside the widget |\n|''lang'' |An ISO 639-1 language code |en |The language in which to render a widget, if supported |\n|''dnt'' |\"true\", \"false\" |false |Enable Do Not Track for this widget |\n|''related'' |Any comma-separated list of valid Twitter screen names |none |A list of Twitter screen names to be suggested for following after a Tweet or Tweet action is posted |\n|''via'' |Any valid Twitter screen name |none |A Twitter user mentioned in the default Tweet text as via @user where appropriate |\n\n<<twitter-usage \"\"\"<$twitter type=\"timelineWidget\" widgetId=\"570670821065379840\"/>\n\"\"\">>\n"
},
"$:/plugins/tiddlywiki/twitter/usage": {
"title": "$:/plugins/tiddlywiki/twitter/usage",
"text": "The `<$twitter>` widget can be used to embed several different entities:\n\n<$macrocall $name=\"tabs\" state=<<qualify \"$:/state/twitter/usage\">> tabsList=\"[all[tiddlers+shadows]tag[$:/tags/TwitterUsage]]\" default=\"$:/plugins/tiddlywiki/twitter/usage/tweet\" class=\"tc-vertical\"/>\n"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/xlsx-utils/controls": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/controls",
"caption": "XLSX Utilities",
"tags": "$:/tags/ControlPanel",
"text": "\\define help-button(state)\n<$button popup=\"\"\"$:/state/expand-help/$state$\"\"\" class=\"tc-btn-invisible tc-popup-keep\">\n{{$:/core/images/help}}\n</$button>\n\\end\n\n\\define help-content(type,state)\n<$reveal tag=\"span\" state=\"\"\"$:/state/expand-help/$state$\"\"\" type=\"popup\" position=\"below\">\n<div class=\"tc-drop-down tc-popup-keep\" style=\"padding: 0.5em; max-width: 30em; white-space: normal;\">\n<$transclude tiddler=\"\"\"$:/plugins/tiddlywiki/xlsx-utils/docs/$type$\"\"\" mode=\"block\"/>\n</div>\n</$reveal>\n\\end\n\n\\define renameProxyTitle()\n$:/state/plugins/tiddlywiki/xlsx-utils/rename-$(currentTiddler)$\n\\end\n\n\\define rename-current-tiddler()\n<$edit-text tag=\"input\" tiddler=<<renameProxyTitle>> placeholder=\"Rename\" default=<<currentTiddler>> size=\"50\"/>\n<$reveal type=\"nomatch\" state=\"\"\"$(renameProxyTitle)$\"\"\" text=<<currentTiddler>> default=<<currentTiddler>> tag=\"span\">\n<$button>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\ncancel\n</$button>\n<$button>\n<$action-sendmessage $message=\"tm-rename-tiddler\" from=<<currentTiddler>> to={{$(renameProxyTitle)$}}/>\n<$action-deletetiddler $tiddler=<<renameProxyTitle>>/>\nrename\n</$button>\n<$set name=\"proxy-title\" value={{$(renameProxyTitle)$}}>\n<$list filter=\"\"\"[<proxy-title>is[tiddler]]\"\"\">\nWarning: tiddler already exists\n</$list>\n</$set>\n</$reveal>\n\\end\n\n\\define expand-collapse-button(state)\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"no\"/>\n{{$:/core/images/down-arrow}}\n</$button>\n</$reveal>\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"yes\"/>\n{{$:/core/images/right-arrow}}\n</$button>\n</$reveal>\n\\end\n\n\\define expand-collapse-content(state,content,class)\n<$reveal state=\"\"\"$:/state/expand/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"div\" class=\"\"\"$class$\"\"\" animate=\"yes\" retain=\"yes\">\n$content$\n</$reveal>\n\\end\n\n\\define up-down-buttons(parent,child)\n<$list filter=\"[list<$parent$>butfirst[]field:title<$child$>limit[1]]\" variable=\"listItem\">\n<$button class=\"tc-btn-invisible\">\n<$action-listops $tiddler=<<$parent$>> $subfilter=\"+[move:-1<$child$>]\"/>\n{{$:/core/images/chevron-up}}\n</$button>\n</$list>\n<$list filter=\"[list<$parent$>butlast[]field:title<$child$>limit[1]]\" variable=\"listItem\">\n<$button class=\"tc-btn-invisible\">\n<$action-listops $tiddler=<<$parent$>> $subfilter=\"+[move:1<$child$>]\"/>\n{{$:/core/images/chevron-down}}\n</$button>\n</$list>\n\\end\n\n\\define edit-button(state)\n<$reveal state=\"\"\"$:/state/edit/$state$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/edit/$state$\"\"\" $value=\"yes\"/>\n<$action-setfield $tiddler=\"\"\"$:/state/expand/$state$\"\"\" $value=\"yes\"/>\n{{$:/core/images/edit-button}}\n</$button>\n</$reveal>\n<$reveal state=\"\"\"$:/state/edit/$state$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"\"\"$:/state/edit/$state$\"\"\" $value=\"no\"/>\n{{$:/core/images/done-button}} Finish editing\n</$button>\n</$reveal>\n\\end\n\n\\define delete-item-button(filter,parent,title,prompt)\n<$button class=\"tc-btn-invisible\">\n<$action-deletetiddler $filter=\"\"\"$filter$\"\"\"/>\n<$action-listops $tiddler=\"\"\"$parent$\"\"\" $subfilter=\"-[[$title$]]\"/>\n{{$:/core/images/delete-button}}$prompt$\n</$button>\n\\end\n\n\\define edit-field()\n<$select tiddler=<<field>> field=\"import-field-list-op\" default=\"none\">\n<option value=\"none\">Set field</option>\n<option value=\"append\">Append to list field</option>\n</$select>\n<$edit-text tiddler=<<field>> field=\"import-field-name\" size=\"10\" tag=\"input\" placeholder=\"field name\"default=\"\"/>\n<$reveal state=\"\"\"$(field)$!!import-field-list-op\"\"\" type=\"match\" text=\"none\" default=\"none\" tag=\"span\">\nto\n</$reveal>\n<$reveal state=\"\"\"$(field)$!!import-field-list-op\"\"\" type=\"match\" text=\"append\" default=\"none\" tag=\"span\">\nthe\n</$reveal>\n<$select tiddler=<<field>> field=\"import-field-type\" default=\"string\">\n<option value=\"date\">date</option>\n<option value=\"string\">string</option>\n</$select>\n<$select tiddler=<<field>> field=\"import-field-source\" default=\"column\">\n<option value=\"column\">from column</option>\n<option value=\"constant\">constant</option>\n</$select>\n<$reveal state=\"\"\"$(field)$!!import-field-source\"\"\" type=\"match\" text=\"column\" default=\"column\" tag=\"span\">\n<$edit-text tiddler=<<field>> field=\"import-field-column\" tag=\"input\" placeholder=\"column\" default=\"\"/>\nprefixed\n<$edit-text tiddler=<<field>> field=\"import-field-prefix\" tag=\"input\" placeholder=\"prefix\" default=\"\"/>,\nsuffixed\n<$edit-text tiddler=<<field>> field=\"import-field-suffix\" tag=\"input\" placeholder=\"suffix\" default=\"\"/>\n</$reveal>\n<$reveal state=\"\"\"$(field)$!!import-field-source\"\"\" type=\"match\" text=\"constant\" default=\"column\" tag=\"span\">\n<$edit-text tiddler=<<field>> field=\"import-field-value\" tag=\"input\" placeholder=\"constant\" default=\"\"/>\n</$reveal>\n<$checkbox tiddler=<<field>> field=\"import-field-skip-tiddler-if-blank\" checked=\"yes\" unchecked=\"no\" default=\"no\">\nSkip this tiddler when field blank\n<br/>\nTitle:\n<$tiddler tiddler=<<field>>>\n<<rename-current-tiddler>>\n</$tiddler>\n\\end\n\n\\define view-field()\n<$link to=<<field>>>\n<$list filter=\"[<field>!has[import-field-list-op]]\" variable=\"listItem\">\nSet field ''<$view tiddler=<<field>> field=\"import-field-name\"/>'' to\n</$list>\n<$list filter=\"[<field>get[import-field-list-op]prefix[append]]\" variable=\"listItem\">\nAppend to list field ''<$view tiddler=<<field>> field=\"import-field-name\"/>''\n</$list>\n<$list filter=\"[<field>has[import-field-prefix]]\" variable=\"listItem\">\n''<code><$view tiddler=<<field>> field=\"import-field-prefix\"/></code>'' +\n</$list>\n<$list filter=\"[<field>get[import-field-type]prefix[date]]\" variable=\"listItem\">\ndate\n</$list>\n<$list filter=\"[<field>get[import-field-source]prefix[column]]\" variable=\"listItem\">\nvalue from column ''<$view tiddler=<<field>> field=\"import-field-column\"/>''\n</$list>\n<$list filter=\"[<field>get[import-field-source]prefix[constant]]\" variable=\"listItem\">\nconstant ''<code><$view tiddler=<<field>> field=\"import-field-value\"/></code>''\n</$list>\n<$list filter=\"[<field>has[import-field-suffix]]\" variable=\"listItem\">\n+ ''<code><$view tiddler=<<field>> field=\"import-field-suffix\"/></code>''\n</$list>\n</$link>\n\\end\n\n\\define list-fields()\n<ul class=\"tc-import-spec-row-list\">\n<$list filter=\"[list<row>]\" variable=\"field\" emptyMessage=\"<div>(No field import specifiers)</div>\">\n<li class=\"tc-import-spec-field-wrapper\">\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"span\">\n<<edit-field>>\n<<up-down-buttons parent:\"row\" child:\"field\">>\n<$macrocall $name=\"delete-item-button\" filter=\"[<field>]\" parent=<<row>> title=<<field>>/>\n</$reveal>\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"nomatch\" text=\"yes\" default=\"no\" tag=\"span\">\n<<view-field>>\n</$reveal>\n</li>\n</$list>\n</ul>\n\\end\n\n\\define view-row-content()\n<$reveal state=\"\"\"$:/state/edit/$(row)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-row-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<row>] [<row>getlist[]]\" parent=<<sheet>> title=<<row>> prompt=\" Delete this row\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<row>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nRow type:\n<$select tiddler=<<row>> field=\"import-row-type\" default=\"by-field\">\n<option value=\"by-field\">By field</option>\n<option value=\"by-column\">By column</option>\n</$select>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Field\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"field\" import-field-name=\"fieldname\" import-field-type=\"string\" import-field-source=\"column\" import-field-column=\"Column Name\" />\n<$action-listops $tiddler=<<row>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n{{$:/core/images/new-button}} Add new field\n</$button>\n</li>\n</$reveal>\n<<list-fields>>\n\\end\n\n\\define view-row()\n<div class=\"tc-import-spec-row-wrapper\">\n<h5>\n<$macrocall $name=\"expand-collapse-button\" state=<<row>>/>\nEach row: <$list filter=\"[list<row>import-field-name[title]]\" variable=\"field\" emptyMessage=\"\n<$link to=<<field>>>(title field not set)</$link>\"><<view-field>></$list>\n<$macrocall $name=\"edit-button\" state=<<row>>/>\n<<up-down-buttons parent:\"sheet\" child:\"row\">>\n<$macrocall $name=\"help-button\" state=<<row>>/>\n</h5>\n<$macrocall $name=\"help-content\" type=\"row\" state=<<row>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<row>> content=<<view-row-content>> class=\"tc-import-spec-row\"/>\n</div>\n\\end\n\n\\define list-rows()\n<div class=\"tc-import-spec-sheet-list\">\n<$list filter=\"[list<sheet>]\" variable=\"row\" emptyMessage=\"<div>(No row import specifiers)</div>\">\n<<view-row>>\n</$list>\n\\end\n\n\\define view-sheet-content()\n<$reveal state=\"\"\"$:/state/edit/$(sheet)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-sheet-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<sheet>] [<sheet>getlist[]] [<sheet>getlist[]getlist[]]\" parent=<<workbook>> title=<<sheet>> prompt=\" Delete this sheet\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<sheet>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nImport sheet name:\n<$edit-text tiddler=<<sheet>> field=\"import-sheet-name\" size=\"50\"/>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Row\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"row\"/>\n<$action-listops $tiddler=<<sheet>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new row\n</$button>\n</li>\n</$reveal>\n<<list-rows>>\n\\end\n\n\\define view-sheet()\n<div class=\"tc-import-spec-sheet-wrapper\">\n<h4>\n<$macrocall $name=\"expand-collapse-button\" state=<<sheet>>/>\nSheet: <$link to=<<sheet>>><$view tiddler=<<sheet>> field=\"import-sheet-name\"/></$link>\n<$macrocall $name=\"edit-button\" state=<<sheet>>/>\n<<up-down-buttons parent:\"workbook\" child:\"sheet\">>\n<$macrocall $name=\"help-button\" state=<<sheet>>/>\n</h4>\n<$macrocall $name=\"help-content\" type=\"sheet\" state=<<sheet>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<sheet>> content=<<view-sheet-content>> class=\"tc-import-spec-sheet\"/>\n</div>\n\\end\n\n\\define list-sheets()\n<div class=\"tc-import-spec-workbook-list\">\n<$list filter=\"[list<workbook>]\" variable=\"sheet\" emptyMessage=\"<div>(No sheet import specifiers)</div>\">\n<<view-sheet>>\n</$list>\n</div>\n\\end\n\n\\define view-workbook-content()\n<$reveal state=\"\"\"$:/state/edit/$(workbook)$\"\"\" type=\"match\" text=\"yes\" default=\"no\" tag=\"ul\" class=\"tc-import-spec-workbook-controls\" animate=\"yes\" retain=\"yes\">\n<li>\n<$macrocall $name=\"delete-item-button\" filter=\"[<workbook>] [<workbook>getlist[]] [<workbook>getlist[]getlist[]] [<workbook>getlist[]getlist[]getlist[]]\" prompt=\" Delete this workbook\"/>\n</li>\n<li>\nTitle:\n<$tiddler tiddler=<<workbook>>>\n<<rename-current-tiddler>>\n</$tiddler>\n</li>\n<li>\nCaption:\n<$edit-text tiddler=<<workbook>> field=\"caption\" size=\"50\"/>\n</li>\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Sheet\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"sheet\" import-sheet-name=\"Sheet name\"/>\n<$action-listops $tiddler=<<workbook>> $subfilter=\"[{$:/temp/newtiddler}] +[putfirst[]]\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new sheet\n</$button>\n</li>\n</$reveal>\n<<list-sheets>>\n\\end\n\n\\define view-workbook()\n<div class=\"tc-import-spec-workbook-wrapper\">\n<h3>\n<$macrocall $name=\"expand-collapse-button\" state=<<workbook>>/>\nWorkbook: <$link to=<<workbook>>><$view tiddler=<<workbook>> field=\"caption\"/></$link>\n<$macrocall $name=\"edit-button\" state=<<workbook>>/>\n<$macrocall $name=\"help-button\" state=<<workbook>>/>\n</h3>\n<$macrocall $name=\"help-content\" type=\"workbook\" state=<<workbook>>/>\n<$macrocall $name=\"expand-collapse-content\" state=<<workbook>> content=<<view-workbook-content>> class=\"tc-import-spec-workbook\"/>\n</div>\n\\end\n\n\\define list-workbooks()\n<ul class=\"tc-import-spec-editor-controls\">\n<li>\n<$button class=\"tc-btn-invisible\">\n<$action-createtiddler $basetitle=\"$:/_ExcelImporter/ImportSpecifiers/Workbook\" $savetitle=\"$:/temp/newtiddler\" import-spec-role=\"workbook\" caption=\"New workbook\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/edit/]] }}} $value=\"yes\"/>\n<$action-setfield $tiddler={{{ [{$:/temp/newtiddler}addprefix[$:/state/expand/]] }}} $value=\"yes\"/>\n{{$:/core/images/new-button}} Add new workbook\n</$button>\n</li>\n</ul>\n<div class=\"tc-import-spec-editor-list\">\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]sort[caption]]\" variable=\"workbook\">\n<<view-workbook>>\n</$list>\n</div>\n\\end\n\n<h1>\nControls for XLSX Spreadsheet Utilities\n</h1>\n\n<div class=\"tc-import-spec-selector\">\n<h2>\nCurrent Import Specification\n</h2>\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]limit[1]]\" emptyMessage=\"\"\"\nThere are no import specifications available. Use the controls below to create one\n\"\"\">\nThis is the import specification that will be used for the next import of an `.XLSX` file\n<$select tiddler=\"$:/config/plugins/tiddlywiki/xlsx-utils/default-import-spec\">\n<$list filter=\"[all[shadows+tiddlers]import-spec-role[workbook]sort[caption]]\">\n<option value=<<currentTiddler>>><$text text={{!!caption}}/></option>\n</$list>\n</$select>\n</$list>\n</div>\n\n<div class=\"tc-import-spec-editor-wrapper\">\n<h2>\n Import Specifications\n<$macrocall $name=\"help-button\" state=\"\"/>\n</h2>\n<$macrocall $name=\"help-content\" type=\"editor\" state=\"\"/>\n<div class=\"tc-import-spec-editor\">\n<<list-workbooks>>\n</div>\n</div>\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/deserializer.js": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/deserializer.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/deserializer.js\ntype: application/javascript\nmodule-type: tiddlerdeserializer\n\nXLSX file deserializer\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n/*\nParse an XLSX file into tiddlers\n*/\nexports[\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\"] = function(text,fields) {\n\t// Collect output tiddlers in an array\n\tvar results = [],\n\t\tXLSXImporter = require(\"$:/plugins/tiddlywiki/xlsx-utils/importer.js\").XLSXImporter,\n\t\timporter = new XLSXImporter({\n\t\t\ttext: text\n\t\t});\n\t// Return the output tiddlers\n\treturn importer.getResults();\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "tiddlerdeserializer"
},
"$:/plugins/tiddlywiki/xlsx-utils/docs/editor": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/docs/editor",
"text": "!!! Import Specifications\n\nImport specifications govern how spreadsheets are converted into individual tiddlers.\n\nEach \"workbook\" describes how spreadsheets of a particular format should be converted.\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/docs/row": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/docs/row",
"text": "!!! Row Import Specifications\n\nEach row import specification describes how one tiddler should be extracted from each row of the current sheet.\n\nNote that using multiple row import specifications within a sheet enables multiple tiddlers to be created from each row of the sheet.\n\nRows contain a list of field import specifications that describe how each field of the tiddler should be created.\n\n!!! Field Import Specifications\n\nField import specifications describe the value given to a particular field of a tiddler.\n\nThey follow a rich syntax for describing how each field of the tiddler is created. For example:\n\n* Set field `title` to string from column `Organization`\n* Set field `role` to string constant `organization`\n* Append to list field `list` the string from column `Country` prefixed with `Map:`\n\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/docs/sheet": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/docs/sheet",
"text": "!!! Sheet Import Specifications\n\nEach sheet import specification describes how a named sheet within a workbook should be converted into individual tiddlers.\n\nSheets contain a list of row import specifications that describe how individual rows of the sheet should be handled.\n\nEach sheet has the name of the sheet that it handles.\n\nNote that the first row of each sheet is interpreted as the title of each column.\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/docs/workbook": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/docs/workbook",
"text": "!!! Workbook Import Specifications\n\nEach workbook import specification describes how spreadsheets of a particular format should be converted into individual tiddlers.\n\nCreate a new workbook for each type of spreadsheet that you will be working with.\n\nWorkbooks contain a list of sheet import specifications that describe how individual sheets of the workbook should be handled.\n\nEach workbook has a caption that you can use to describe its purpose.\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/xlsx.js": {
"text": "var old_exports = exports,JSZip = require(\"$:/plugins/tiddlywiki/jszip/jszip.js\");exports = {};if($tw.browser){module.exports=undefined;};/* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint -W041 */\n/*jshint funcscope:true, eqnull:true */\nvar XLSX = {};\n(function make_xlsx(XLSX){\nXLSX.version = '0.8.0';\nvar current_codepage = 1200, current_cptable;\nif(typeof module !== \"undefined\" && typeof require !== 'undefined') {\n\tif(typeof cptable === 'undefined') cptable = require('./dist/cpexcel');\n\tcurrent_cptable = cptable[current_codepage];\n}\nfunction reset_cp() { set_cp(1200); }\nvar set_cp = function(cp) { current_codepage = cp; };\n\nfunction char_codes(data) { var o = []; for(var i = 0, len = data.length; i < len; ++i) o[i] = data.charCodeAt(i); return o; }\nvar debom_xml = function(data) { return data; };\n\nvar _getchar = function _gc1(x) { return String.fromCharCode(x); };\nif(typeof cptable !== 'undefined') {\n\tset_cp = function(cp) { current_codepage = cp; current_cptable = cptable[cp]; };\n\tdebom_xml = function(data) {\n\t\tif(data.charCodeAt(0) === 0xFF && data.charCodeAt(1) === 0xFE) { return cptable.utils.decode(1200, char_codes(data.substr(2))); }\n\t\treturn data;\n\t};\n\t_getchar = function _gc2(x) {\n\t\tif(current_codepage === 1200) return String.fromCharCode(x);\n\t\treturn cptable.utils.decode(current_codepage, [x&255,x>>8])[0];\n\t};\n}\nvar Base64 = (function make_b64(){\n\tvar map = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=\";\n\treturn {\n\t\tencode: function(input, utf8) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1, c2, c3, e1, e2, e3, e4;\n\t\t\tfor(var i = 0; i < input.length; ) {\n\t\t\t\tc1 = input.charCodeAt(i++);\n\t\t\t\tc2 = input.charCodeAt(i++);\n\t\t\t\tc3 = input.charCodeAt(i++);\n\t\t\t\te1 = c1 >> 2;\n\t\t\t\te2 = (c1 & 3) << 4 | c2 >> 4;\n\t\t\t\te3 = (c2 & 15) << 2 | c3 >> 6;\n\t\t\t\te4 = c3 & 63;\n\t\t\t\tif (isNaN(c2)) { e3 = e4 = 64; }\n\t\t\t\telse if (isNaN(c3)) { e4 = 64; }\n\t\t\t\to += map.charAt(e1) + map.charAt(e2) + map.charAt(e3) + map.charAt(e4);\n\t\t\t}\n\t\t\treturn o;\n\t\t},\n\t\tdecode: function b64_decode(input, utf8) {\n\t\t\tvar o = \"\";\n\t\t\tvar c1, c2, c3;\n\t\t\tvar e1, e2, e3, e4;\n\t\t\tinput = input.replace(/[^A-Za-z0-9\\+\\/\\=]/g, \"\");\n\t\t\tfor(var i = 0; i < input.length;) {\n\t\t\t\te1 = map.indexOf(input.charAt(i++));\n\t\t\t\te2 = map.indexOf(input.charAt(i++));\n\t\t\t\te3 = map.indexOf(input.charAt(i++));\n\t\t\t\te4 = map.indexOf(input.charAt(i++));\n\t\t\t\tc1 = e1 << 2 | e2 >> 4;\n\t\t\t\tc2 = (e2 & 15) << 4 | e3 >> 2;\n\t\t\t\tc3 = (e3 & 3) << 6 | e4;\n\t\t\t\to += String.fromCharCode(c1);\n\t\t\t\tif (e3 != 64) { o += String.fromCharCode(c2); }\n\t\t\t\tif (e4 != 64) { o += String.fromCharCode(c3); }\n\t\t\t}\n\t\t\treturn o;\n\t\t}\n\t};\n})();\nvar has_buf = (typeof Buffer !== 'undefined');\n\nfunction new_raw_buf(len) {\n\t/* jshint -W056 */\n\treturn new (has_buf ? Buffer : Array)(len);\n\t/* jshint +W056 */\n}\n\nfunction s2a(s) {\n\tif(has_buf) return new Buffer(s, \"binary\");\n\treturn s.split(\"\").map(function(x){ return x.charCodeAt(0) & 0xff; });\n}\n\nvar bconcat = function(bufs) { return [].concat.apply([], bufs); };\n\nvar chr0 = /\\u0000/g, chr1 = /[\\u0001-\\u0006]/;\n/* ssf.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint -W041 */\nvar SSF = {};\nvar make_ssf = function make_ssf(SSF){\nSSF.version = '0.8.1';\nfunction _strrev(x) { var o = \"\", i = x.length-1; while(i>=0) o += x.charAt(i--); return o; }\nfunction fill(c,l) { var o = \"\"; while(o.length < l) o+=c; return o; }\nfunction pad0(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad_(v,d){var t=\"\"+v;return t.length>=d?t:fill(' ',d-t.length)+t;}\nfunction rpad_(v,d){var t=\"\"+v; return t.length>=d?t:t+fill(' ',d-t.length);}\nfunction pad0r1(v,d){var t=\"\"+Math.round(v); return t.length>=d?t:fill('0',d-t.length)+t;}\nfunction pad0r2(v,d){var t=\"\"+v; return t.length>=d?t:fill('0',d-t.length)+t;}\nvar p2_32 = Math.pow(2,32);\nfunction pad0r(v,d){if(v>p2_32||v<-p2_32) return pad0r1(v,d); var i = Math.round(v); return pad0r2(i,d); }\nfunction isgeneral(s, i) { return s.length >= 7 + i && (s.charCodeAt(i)|32) === 103 && (s.charCodeAt(i+1)|32) === 101 && (s.charCodeAt(i+2)|32) === 110 && (s.charCodeAt(i+3)|32) === 101 && (s.charCodeAt(i+4)|32) === 114 && (s.charCodeAt(i+5)|32) === 97 && (s.charCodeAt(i+6)|32) === 108; }\n/* Options */\nvar opts_fmt = [\n\t[\"date1904\", 0],\n\t[\"output\", \"\"],\n\t[\"WTF\", false]\n];\nfunction fixopts(o){\n\tfor(var y = 0; y != opts_fmt.length; ++y) if(o[opts_fmt[y][0]]===undefined) o[opts_fmt[y][0]]=opts_fmt[y][1];\n}\nSSF.opts = opts_fmt;\nvar table_fmt = {\n\t0: 'General',\n\t1: '0',\n\t2: '0.00',\n\t3: '#,##0',\n\t4: '#,##0.00',\n\t9: '0%',\n\t10: '0.00%',\n\t11: '0.00E+00',\n\t12: '# ?/?',\n\t13: '# ??/??',\n\t14: 'm/d/yy',\n\t15: 'd-mmm-yy',\n\t16: 'd-mmm',\n\t17: 'mmm-yy',\n\t18: 'h:mm AM/PM',\n\t19: 'h:mm:ss AM/PM',\n\t20: 'h:mm',\n\t21: 'h:mm:ss',\n\t22: 'm/d/yy h:mm',\n\t37: '#,##0 ;(#,##0)',\n\t38: '#,##0 ;[Red](#,##0)',\n\t39: '#,##0.00;(#,##0.00)',\n\t40: '#,##0.00;[Red](#,##0.00)',\n\t45: 'mm:ss',\n\t46: '[h]:mm:ss',\n\t47: 'mmss.0',\n\t48: '##0.0E+0',\n\t49: '@',\n\t56: '\"上午/下午 \"hh\"時\"mm\"分\"ss\"秒 \"',\n\t65535: 'General'\n};\nvar days = [\n\t['Sun', 'Sunday'],\n\t['Mon', 'Monday'],\n\t['Tue', 'Tuesday'],\n\t['Wed', 'Wednesday'],\n\t['Thu', 'Thursday'],\n\t['Fri', 'Friday'],\n\t['Sat', 'Saturday']\n];\nvar months = [\n\t['J', 'Jan', 'January'],\n\t['F', 'Feb', 'February'],\n\t['M', 'Mar', 'March'],\n\t['A', 'Apr', 'April'],\n\t['M', 'May', 'May'],\n\t['J', 'Jun', 'June'],\n\t['J', 'Jul', 'July'],\n\t['A', 'Aug', 'August'],\n\t['S', 'Sep', 'September'],\n\t['O', 'Oct', 'October'],\n\t['N', 'Nov', 'November'],\n\t['D', 'Dec', 'December']\n];\nfunction frac(x, D, mixed) {\n\tvar sgn = x < 0 ? -1 : 1;\n\tvar B = x * sgn;\n\tvar P_2 = 0, P_1 = 1, P = 0;\n\tvar Q_2 = 1, Q_1 = 0, Q = 0;\n\tvar A = Math.floor(B);\n\twhile(Q_1 < D) {\n\t\tA = Math.floor(B);\n\t\tP = A * P_1 + P_2;\n\t\tQ = A * Q_1 + Q_2;\n\t\tif((B - A) < 0.0000000005) break;\n\t\tB = 1 / (B - A);\n\t\tP_2 = P_1; P_1 = P;\n\t\tQ_2 = Q_1; Q_1 = Q;\n\t}\n\tif(Q > D) { Q = Q_1; P = P_1; }\n\tif(Q > D) { Q = Q_2; P = P_2; }\n\tif(!mixed) return [0, sgn * P, Q];\n\tif(Q===0) throw \"Unexpected state: \"+P+\" \"+P_1+\" \"+P_2+\" \"+Q+\" \"+Q_1+\" \"+Q_2;\n\tvar q = Math.floor(sgn * P/Q);\n\treturn [q, sgn*P - q*Q, Q];\n}\nfunction general_fmt_int(v, opts) { return \"\"+v; }\nSSF._general_int = general_fmt_int;\nvar general_fmt_num = (function make_general_fmt_num() {\nvar gnr1 = /\\.(\\d*[1-9])0+$/, gnr2 = /\\.0*$/, gnr4 = /\\.(\\d*[1-9])0+/, gnr5 = /\\.0*[Ee]/, gnr6 = /(E[+-])(\\d)$/;\nfunction gfn2(v) {\n\tvar w = (v<0?12:11);\n\tvar o = gfn5(v.toFixed(12)); if(o.length <= w) return o;\n\to = v.toPrecision(10); if(o.length <= w) return o;\n\treturn v.toExponential(5);\n}\nfunction gfn3(v) {\n\tvar o = v.toFixed(11).replace(gnr1,\".$1\");\n\tif(o.length > (v<0?12:11)) o = v.toPrecision(6);\n\treturn o;\n}\nfunction gfn4(o) {\n\tfor(var i = 0; i != o.length; ++i) if((o.charCodeAt(i) | 0x20) === 101) return o.replace(gnr4,\".$1\").replace(gnr5,\"E\").replace(\"e\",\"E\").replace(gnr6,\"$10$2\");\n\treturn o;\n}\nfunction gfn5(o) {\n\t//for(var i = 0; i != o.length; ++i) if(o.charCodeAt(i) === 46) return o.replace(gnr2,\"\").replace(gnr1,\".$1\");\n\t//return o;\n\treturn o.indexOf(\".\") > -1 ? o.replace(gnr2,\"\").replace(gnr1,\".$1\") : o;\n}\nreturn function general_fmt_num(v, opts) {\n\tvar V = Math.floor(Math.log(Math.abs(v))*Math.LOG10E), o;\n\tif(V >= -4 && V <= -1) o = v.toPrecision(10+V);\n\telse if(Math.abs(V) <= 9) o = gfn2(v);\n\telse if(V === 10) o = v.toFixed(10).substr(0,12);\n\telse o = gfn3(v);\n\treturn gfn5(gfn4(o));\n};})();\nSSF._general_num = general_fmt_num;\nfunction general_fmt(v, opts) {\n\tswitch(typeof v) {\n\t\tcase 'string': return v;\n\t\tcase 'boolean': return v ? \"TRUE\" : \"FALSE\";\n\t\tcase 'number': return (v|0) === v ? general_fmt_int(v, opts) : general_fmt_num(v, opts);\n\t}\n\tthrow new Error(\"unsupported value in General format: \" + v);\n}\nSSF._general = general_fmt;\nfunction fix_hijri(date, o) { return 0; }\nfunction parse_date_code(v,opts,b2) {\n\tif(v > 2958465 || v < 0) return null;\n\tvar date = (v|0), time = Math.floor(86400 * (v - date)), dow=0;\n\tvar dout=[];\n\tvar out={D:date, T:time, u:86400*(v-date)-time,y:0,m:0,d:0,H:0,M:0,S:0,q:0};\n\tif(Math.abs(out.u) < 1e-6) out.u = 0;\n\tfixopts(opts != null ? opts : (opts=[]));\n\tif(opts.date1904) date += 1462;\n\tif(out.u > 0.999) {\n\t\tout.u = 0;\n\t\tif(++time == 86400) { time = 0; ++date; }\n\t}\n\tif(date === 60) {dout = b2 ? [1317,10,29] : [1900,2,29]; dow=3;}\n\telse if(date === 0) {dout = b2 ? [1317,8,29] : [1900,1,0]; dow=6;}\n\telse {\n\t\tif(date > 60) --date;\n\t\t/* 1 = Jan 1 1900 */\n\t\tvar d = new Date(1900,0,1);\n\t\td.setDate(d.getDate() + date - 1);\n\t\tdout = [d.getFullYear(), d.getMonth()+1,d.getDate()];\n\t\tdow = d.getDay();\n\t\tif(date < 60) dow = (dow + 6) % 7;\n\t\tif(b2) dow = fix_hijri(d, dout);\n\t}\n\tout.y = dout[0]; out.m = dout[1]; out.d = dout[2];\n\tout.S = time % 60; time = Math.floor(time / 60);\n\tout.M = time % 60; time = Math.floor(time / 60);\n\tout.H = time;\n\tout.q = dow;\n\treturn out;\n}\nSSF.parse_date_code = parse_date_code;\n/*jshint -W086 */\nfunction write_date(type, fmt, val, ss0) {\n\tvar o=\"\", ss=0, tt=0, y = val.y, out, outl = 0;\n\tswitch(type) {\n\t\tcase 98: /* 'b' buddhist year */\n\t\t\ty = val.y + 543;\n\t\t\t/* falls through */\n\t\tcase 121: /* 'y' year */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = y % 100; outl = 2; break;\n\t\t\tdefault: out = y % 10000; outl = 4; break;\n\t\t} break;\n\t\tcase 109: /* 'm' month */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.m; outl = fmt.length; break;\n\t\t\tcase 3: return months[val.m-1][1];\n\t\t\tcase 5: return months[val.m-1][0];\n\t\t\tdefault: return months[val.m-1][2];\n\t\t} break;\n\t\tcase 100: /* 'd' day */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.d; outl = fmt.length; break;\n\t\t\tcase 3: return days[val.q][0];\n\t\t\tdefault: return days[val.q][1];\n\t\t} break;\n\t\tcase 104: /* 'h' 12-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = 1+(val.H+11)%12; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 72: /* 'H' 24-hour */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.H; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad hour format: ' + fmt;\n\t\t} break;\n\t\tcase 77: /* 'M' minutes */\n\t\tswitch(fmt.length) {\n\t\t\tcase 1: case 2: out = val.M; outl = fmt.length; break;\n\t\t\tdefault: throw 'bad minute format: ' + fmt;\n\t\t} break;\n\t\tcase 115: /* 's' seconds */\n\t\tif(val.u === 0) switch(fmt) {\n\t\t\tcase 's': case 'ss': return pad0(val.S, fmt.length);\n\t\t\tcase '.0': case '.00': case '.000':\n\t\t}\n\t\tswitch(fmt) {\n\t\t\tcase 's': case 'ss': case '.0': case '.00': case '.000':\n\t\t\t\tif(ss0 >= 2) tt = ss0 === 3 ? 1000 : 100;\n\t\t\t\telse tt = ss0 === 1 ? 10 : 1;\n\t\t\t\tss = Math.round((tt)*(val.S + val.u));\n\t\t\t\tif(ss >= 60*tt) ss = 0;\n\t\t\t\tif(fmt === 's') return ss === 0 ? \"0\" : \"\"+ss/tt;\n\t\t\t\to = pad0(ss,2 + ss0);\n\t\t\t\tif(fmt === 'ss') return o.substr(0,2);\n\t\t\t\treturn \".\" + o.substr(2,fmt.length-1);\n\t\t\tdefault: throw 'bad second format: ' + fmt;\n\t\t}\n\t\tcase 90: /* 'Z' absolute time */\n\t\tswitch(fmt) {\n\t\t\tcase '[h]': case '[hh]': out = val.D*24+val.H; break;\n\t\t\tcase '[m]': case '[mm]': out = (val.D*24+val.H)*60+val.M; break;\n\t\t\tcase '[s]': case '[ss]': out = ((val.D*24+val.H)*60+val.M)*60+Math.round(val.S+val.u); break;\n\t\t\tdefault: throw 'bad abstime format: ' + fmt;\n\t\t} outl = fmt.length === 3 ? 1 : 2; break;\n\t\tcase 101: /* 'e' era */\n\t\t\tout = y; outl = 1;\n\t}\n\tif(outl > 0) return pad0(out, outl); else return \"\";\n}\n/*jshint +W086 */\nfunction commaify(s) {\n\tif(s.length <= 3) return s;\n\tvar j = (s.length % 3), o = s.substr(0,j);\n\tfor(; j!=s.length; j+=3) o+=(o.length > 0 ? \",\" : \"\") + s.substr(j,3);\n\treturn o;\n}\nvar write_num = (function make_write_num(){\nvar pct1 = /%/g;\nfunction write_num_pct(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_cm(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_exp(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(o.indexOf(\"e\") === -1) {\n\t\t\tvar fakee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o[0] + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\twhile(o.substr(0,2) === \"0.\") {\n\t\t\t\to = o[0] + o.substr(2,period) + \".\" + o.substr(2+period);\n\t\t\t\to = o.replace(/^0+([1-9])/,\"$1\").replace(/^0+\\./,\"0.\");\n\t\t\t}\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o[o.length-1];\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nvar frac1 = /# (\\?+)( ?)\\/( ?)(\\d+)/;\nfunction write_num_f1(r, aval, sign) {\n\tvar den = parseInt(r[4]), rr = Math.round(aval * den), base = Math.floor(rr/den);\n\tvar myn = (rr - base*den), myd = den;\n\treturn sign + (base === 0 ? \"\" : \"\"+base) + \" \" + (myn === 0 ? fill(\" \", r[1].length + 1 + r[4].length) : pad_(myn,r[1].length) + r[2] + \"/\" + r[3] + pad0(myd,r[4].length));\n}\nfunction write_num_f2(r, aval, sign) {\n\treturn sign + (aval === 0 ? \"\" : \"\"+aval) + fill(\" \", r[1].length + 2 + r[4].length);\n}\nvar dec1 = /^#*0*\\.(0+)/;\nvar closeparen = /\\).*[0#]/;\nvar phone = /\\(###\\) ###\\\\?-####/;\nfunction hashq(str) {\n\tvar o = \"\", cc;\n\tfor(var i = 0; i != str.length; ++i) switch((cc=str.charCodeAt(i))) {\n\t\tcase 35: break;\n\t\tcase 63: o+= \" \"; break;\n\t\tcase 48: o+= \"0\"; break;\n\t\tdefault: o+= String.fromCharCode(cc);\n\t}\n\treturn o;\n}\nfunction rnd(val, d) { var dd = Math.pow(10,d); return \"\"+(Math.round(val * dd)/dd); }\nfunction dec(val, d) { return Math.round((val-Math.floor(val))*Math.pow(10,d)); }\nfunction flr(val) { if(val < 2147483647 && val > -2147483648) return \"\"+(val >= 0 ? (val|0) : (val-1|0)); return \"\"+Math.floor(val); }\nfunction write_num_flt(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_flt('n', ffmt, val);\n\t\treturn '(' + write_num_flt('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_flt(type,fmt.substr(fmt[1]==' '?2:1),val);\n\tvar o, oo;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0r(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = pad0r(val,0); if(o === \"0\") o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1)) !== null) return write_num_f1(r, aval, sign);\n\tif(fmt.match(/^#+0+$/) !== null) return sign + pad0r(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1)) !== null) {\n\t\to = rnd(val, r[1].length).replace(/^([^\\.]+)$/,\"$1.\"+r[1]).replace(/\\.$/,\".\"+r[1]).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", r[1].length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/)) !== null) {\n\t\treturn sign + rnd(aval, r[2].length).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#,##0(\\.?)$/)) !== null) return sign + commaify(pad0r(aval,0));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(\"\"+(Math.floor(val))) + \".\" + pad0(dec(val, r[1].length),r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/)) !== null) return write_num_flt(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/)) !== null) {\n\t\to = _strrev(write_num_flt(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone) !== null) {\n\t\to = write_num_flt(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa[oa.length-1] == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/)) !== null) {\n\t\to = pad0r(val, 0);\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n if((r = fmt.match(/^([#0?]+)\\.([#0]+)$/)) !== null) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/)) !== null) {\n\t\tri = dec(val, r[1].length);\n\t\treturn val < 0 ? \"-\" + write_num_flt(type, fmt, -val) : commaify(flr(val)).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(ri,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"#,###\": var x = commaify(pad0r(aval,0)); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nfunction write_num_cm2(type, fmt, val){\n\tvar idx = fmt.length - 1;\n\twhile(fmt.charCodeAt(idx-1) === 44) --idx;\n\treturn write_num(type, fmt.substr(0,idx), val / Math.pow(10,3*(fmt.length-idx)));\n}\nfunction write_num_pct2(type, fmt, val){\n\tvar sfmt = fmt.replace(pct1,\"\"), mul = fmt.length - sfmt.length;\n\treturn write_num(type, sfmt, val * Math.pow(10,2*mul)) + fill(\"%\",mul);\n}\nfunction write_num_exp2(fmt, val){\n\tvar o;\n\tvar idx = fmt.indexOf(\"E\") - fmt.indexOf(\".\") - 1;\n\tif(fmt.match(/^#+0.0E\\+0$/)) {\n\t\tvar period = fmt.indexOf(\".\"); if(period === -1) period=fmt.indexOf('E');\n\t\tvar ee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E)%period;\n\t\tif(ee < 0) ee += period;\n\t\to = (val/Math.pow(10,ee)).toPrecision(idx+1+(period+ee)%period);\n\t\tif(!o.match(/[Ee]/)) {\n\t\t\tvar fakee = Math.floor(Math.log(Math.abs(val))*Math.LOG10E);\n\t\t\tif(o.indexOf(\".\") === -1) o = o[0] + \".\" + o.substr(1) + \"E+\" + (fakee - o.length+ee);\n\t\t\telse o += \"E+\" + (fakee - ee);\n\t\t\to = o.replace(/\\+-/,\"-\");\n\t\t}\n\t\to = o.replace(/^([+-]?)(\\d*)\\.(\\d*)[Ee]/,function($$,$1,$2,$3) { return $1 + $2 + $3.substr(0,(period+ee)%period) + \".\" + $3.substr(ee) + \"E\"; });\n\t} else o = val.toExponential(idx);\n\tif(fmt.match(/E\\+00$/) && o.match(/e[+-]\\d$/)) o = o.substr(0,o.length-1) + \"0\" + o[o.length-1];\n\tif(fmt.match(/E\\-/) && o.match(/e\\+/)) o = o.replace(/e\\+/,\"e\");\n\treturn o.replace(\"e\",\"E\");\n}\nfunction write_num_int(type, fmt, val) {\n\tif(type.charCodeAt(0) === 40 && !fmt.match(closeparen)) {\n\t\tvar ffmt = fmt.replace(/\\( */,\"\").replace(/ \\)/,\"\").replace(/\\)/,\"\");\n\t\tif(val >= 0) return write_num_int('n', ffmt, val);\n\t\treturn '(' + write_num_int('n', ffmt, -val) + ')';\n\t}\n\tif(fmt.charCodeAt(fmt.length - 1) === 44) return write_num_cm2(type, fmt, val);\n\tif(fmt.indexOf('%') !== -1) return write_num_pct2(type, fmt, val);\n\tif(fmt.indexOf('E') !== -1) return write_num_exp2(fmt, val);\n\tif(fmt.charCodeAt(0) === 36) return \"$\"+write_num_int(type,fmt.substr(fmt[1]==' '?2:1),val);\n\tvar o;\n\tvar r, ri, ff, aval = Math.abs(val), sign = val < 0 ? \"-\" : \"\";\n\tif(fmt.match(/^00+$/)) return sign + pad0(aval,fmt.length);\n\tif(fmt.match(/^[#?]+$/)) {\n\t\to = (\"\"+val); if(val === 0) o = \"\";\n\t\treturn o.length > fmt.length ? o : hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(frac1)) !== null) return write_num_f2(r, aval, sign);\n\tif(fmt.match(/^#+0+$/) !== null) return sign + pad0(aval,fmt.length - fmt.indexOf(\"0\"));\n\tif((r = fmt.match(dec1)) !== null) {\n\t\to = (\"\"+val).replace(/^([^\\.]+)$/,\"$1.\"+r[1]).replace(/\\.$/,\".\"+r[1]).replace(/\\.(\\d*)$/,function($$, $1) { return \".\" + $1 + fill(\"0\", r[1].length-$1.length); });\n\t\treturn fmt.indexOf(\"0.\") !== -1 ? o : o.replace(/^0\\./,\".\");\n\t}\n\tfmt = fmt.replace(/^#+([0.])/, \"$1\");\n\tif((r = fmt.match(/^(0*)\\.(#*)$/)) !== null) {\n\t\treturn sign + (\"\"+aval).replace(/\\.(\\d*[1-9])0*$/,\".$1\").replace(/^(-?\\d*)$/,\"$1.\").replace(/^0\\./,r[1].length?\"0.\":\".\");\n\t}\n\tif((r = fmt.match(/^#,##0(\\.?)$/)) !== null) return sign + commaify((\"\"+aval));\n\tif((r = fmt.match(/^#,##0\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify((\"\"+val)) + \".\" + fill('0',r[1].length);\n\t}\n\tif((r = fmt.match(/^#,#*,#0/)) !== null) return write_num_int(type,fmt.replace(/^#,#*,/,\"\"),val);\n\tif((r = fmt.match(/^([0#]+)(\\\\?-([0#]+))+$/)) !== null) {\n\t\to = _strrev(write_num_int(type, fmt.replace(/[\\\\-]/g,\"\"), val));\n\t\tri = 0;\n\t\treturn _strrev(_strrev(fmt.replace(/\\\\/g,\"\")).replace(/[0#]/g,function(x){return ri<o.length?o[ri++]:x==='0'?'0':\"\";}));\n\t}\n\tif(fmt.match(phone) !== null) {\n\t\to = write_num_int(type, \"##########\", val);\n\t\treturn \"(\" + o.substr(0,3) + \") \" + o.substr(3, 3) + \"-\" + o.substr(6);\n\t}\n\tvar oa = \"\";\n\tif((r = fmt.match(/^([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(r[4].length,7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, false);\n\t\to = \"\" + sign;\n\t\toa = write_num(\"n\", r[1], ff[1]);\n\t\tif(oa[oa.length-1] == \" \") oa = oa.substr(0,oa.length-1) + \"0\";\n\t\to += oa + r[2] + \"/\" + r[3];\n\t\toa = rpad_(ff[2],ri);\n\t\tif(oa.length < r[4].length) oa = hashq(r[4].substr(r[4].length-oa.length)) + oa;\n\t\to += oa;\n\t\treturn o;\n\t}\n\tif((r = fmt.match(/^# ([#0?]+)( ?)\\/( ?)([#0?]+)/)) !== null) {\n\t\tri = Math.min(Math.max(r[1].length, r[4].length),7);\n\t\tff = frac(aval, Math.pow(10,ri)-1, true);\n\t\treturn sign + (ff[0]||(ff[1] ? \"\" : \"0\")) + \" \" + (ff[1] ? pad_(ff[1],ri) + r[2] + \"/\" + r[3] + rpad_(ff[2],ri): fill(\" \", 2*ri+1 + r[2].length + r[3].length));\n\t}\n\tif((r = fmt.match(/^[#0?]+$/)) !== null) {\n\t\to = \"\" + val;\n\t\tif(fmt.length <= o.length) return o;\n\t\treturn hashq(fmt.substr(0,fmt.length-o.length)) + o;\n\t}\n\tif((r = fmt.match(/^([#0]+)\\.([#0]+)$/)) !== null) {\n\t\to = \"\" + val.toFixed(Math.min(r[2].length,10)).replace(/([^0])0+$/,\"$1\");\n\t\tri = o.indexOf(\".\");\n\t\tvar lres = fmt.indexOf(\".\") - ri, rres = fmt.length - o.length - lres;\n\t\treturn hashq(fmt.substr(0,lres) + o + fmt.substr(fmt.length-rres));\n\t}\n\tif((r = fmt.match(/^00,000\\.([#0]*0)$/)) !== null) {\n\t\treturn val < 0 ? \"-\" + write_num_int(type, fmt, -val) : commaify(\"\"+val).replace(/^\\d,\\d{3}$/,\"0$&\").replace(/^\\d*$/,function($$) { return \"00,\" + ($$.length < 3 ? pad0(0,3-$$.length) : \"\") + $$; }) + \".\" + pad0(0,r[1].length);\n\t}\n\tswitch(fmt) {\n\t\tcase \"#,###\": var x = commaify(\"\"+aval); return x !== \"0\" ? sign + x : \"\";\n\t\tdefault:\n\t}\n\tthrow new Error(\"unsupported format |\" + fmt + \"|\");\n}\nreturn function write_num(type, fmt, val) {\n\treturn (val|0) === val ? write_num_int(type, fmt, val) : write_num_flt(type, fmt, val);\n};})();\nfunction split_fmt(fmt) {\n\tvar out = [];\n\tvar in_str = false, cc;\n\tfor(var i = 0, j = 0; i < fmt.length; ++i) switch((cc=fmt.charCodeAt(i))) {\n\t\tcase 34: /* '\"' */\n\t\t\tin_str = !in_str; break;\n\t\tcase 95: case 42: case 92: /* '_' '*' '\\\\' */\n\t\t\t++i; break;\n\t\tcase 59: /* ';' */\n\t\t\tout[out.length] = fmt.substr(j,i-j);\n\t\t\tj = i+1;\n\t}\n\tout[out.length] = fmt.substr(j);\n\tif(in_str === true) throw new Error(\"Format |\" + fmt + \"| unterminated string \");\n\treturn out;\n}\nSSF._split = split_fmt;\nvar abstime = /\\[[HhMmSs]*\\]/;\nfunction eval_fmt(fmt, v, opts, flen) {\n\tvar out = [], o = \"\", i = 0, c = \"\", lst='t', q, dt, j, cc;\n\tvar hr='H';\n\t/* Tokenize */\n\twhile(i < fmt.length) {\n\t\tswitch((c = fmt[i])) {\n\t\t\tcase 'G': /* General */\n\t\t\t\tif(!isgeneral(fmt, i)) throw new Error('unrecognized character ' + c + ' in ' +fmt);\n\t\t\t\tout[out.length] = {t:'G', v:'General'}; i+=7; break;\n\t\t\tcase '\"': /* Literal text */\n\t\t\t\tfor(o=\"\";(cc=fmt.charCodeAt(++i)) !== 34 && i < fmt.length;) o += String.fromCharCode(cc);\n\t\t\t\tout[out.length] = {t:'t', v:o}; ++i; break;\n\t\t\tcase '\\\\': var w = fmt[++i], t = (w === \"(\" || w === \")\") ? w : 't';\n\t\t\t\tout[out.length] = {t:t, v:w}; ++i; break;\n\t\t\tcase '_': out[out.length] = {t:'t', v:\" \"}; i+=2; break;\n\t\t\tcase '@': /* Text Placeholder */\n\t\t\t\tout[out.length] = {t:'T', v:v}; ++i; break;\n\t\t\tcase 'B': case 'b':\n\t\t\t\tif(fmt[i+1] === \"1\" || fmt[i+1] === \"2\") {\n if(dt==null) { dt=parse_date_code(v, opts, fmt[i+1] === \"2\"); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'X', v:fmt.substr(i,2)}; lst = c; i+=2; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase 'M': case 'D': case 'Y': case 'H': case 'S': case 'E':\n\t\t\t\tc = c.toLowerCase();\n\t\t\t\t/* falls through */\n\t\t\tcase 'm': case 'd': case 'y': case 'h': case 's': case 'e': case 'g':\n\t\t\t\tif(v < 0) return \"\";\n\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\to = c; while(++i<fmt.length && fmt[i].toLowerCase() === c) o+=c;\n\t\t\t\tif(c === 'm' && lst.toLowerCase() === 'h') c = 'M'; /* m = minute */\n\t\t\t\tif(c === 'h') c = hr;\n\t\t\t\tout[out.length] = {t:c, v:o}; lst = c; break;\n\t\t\tcase 'A':\n\t\t\t\tq={t:c, v:\"A\"};\n\t\t\t\tif(dt==null) dt=parse_date_code(v, opts);\n if(fmt.substr(i, 3) === \"A/P\") { if(dt!=null) q.v = dt.H >= 12 ? \"P\" : \"A\"; q.t = 'T'; hr='h';i+=3;}\n else if(fmt.substr(i,5) === \"AM/PM\") { if(dt!=null) q.v = dt.H >= 12 ? \"PM\" : \"AM\"; q.t = 'T'; i+=5; hr='h'; }\n\t\t\t\telse { q.t = \"t\"; ++i; }\n\t\t\t\tif(dt==null && q.t === 'T') return \"\";\n\t\t\t\tout[out.length] = q; lst = c; break;\n\t\t\tcase '[':\n\t\t\t\to = c;\n\t\t\t\twhile(fmt[i++] !== ']' && i < fmt.length) o += fmt[i];\n\t\t\t\tif(o.substr(-1) !== ']') throw 'unterminated \"[\" block: |' + o + '|';\n\t\t\t\tif(o.match(abstime)) {\n\t\t\t\t\tif(dt==null) { dt=parse_date_code(v, opts); if(dt==null) return \"\"; }\n\t\t\t\t\tout[out.length] = {t:'Z', v:o.toLowerCase()};\n\t\t\t\t} else { o=\"\"; }\n\t\t\t\tbreak;\n\t\t\t/* Numbers */\n\t\t\tcase '.':\n\t\t\t\tif(dt != null) {\n\t\t\t\t\to = c; while((c=fmt[++i]) === \"0\") o += c;\n\t\t\t\t\tout[out.length] = {t:'s', v:o}; break;\n\t\t\t\t}\n\t\t\t\t/* falls through */\n\t\t\tcase '0': case '#':\n\t\t\t\to = c; while(\"0#?.,E+-%\".indexOf(c=fmt[++i]) > -1 || c=='\\\\' && fmt[i+1] == \"-\" && \"0#\".indexOf(fmt[i+2])>-1) o += c;\n\t\t\t\tout[out.length] = {t:'n', v:o}; break;\n\t\t\tcase '?':\n\t\t\t\to = c; while(fmt[++i] === c) o+=c;\n\t\t\t\tq={t:c, v:o}; out[out.length] = q; lst = c; break;\n\t\t\tcase '*': ++i; if(fmt[i] == ' ' || fmt[i] == '*') ++i; break; // **\n\t\t\tcase '(': case ')': out[out.length] = {t:(flen===1?'t':c), v:c}; ++i; break;\n\t\t\tcase '1': case '2': case '3': case '4': case '5': case '6': case '7': case '8': case '9':\n\t\t\t\to = c; while(\"0123456789\".indexOf(fmt[++i]) > -1) o+=fmt[i];\n\t\t\t\tout[out.length] = {t:'D', v:o}; break;\n\t\t\tcase ' ': out[out.length] = {t:c, v:c}; ++i; break;\n\t\t\tdefault:\n\t\t\t\tif(\",$-+/():!^&'~{}<>=€acfijklopqrtuvwxz\".indexOf(c) === -1) throw new Error('unrecognized character ' + c + ' in ' + fmt);\n\t\t\t\tout[out.length] = {t:'t', v:c}; ++i; break;\n\t\t}\n\t}\n\tvar bt = 0, ss0 = 0, ssm;\n\tfor(i=out.length-1, lst='t'; i >= 0; --i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 'h': case 'H': out[i].t = hr; lst='h'; if(bt < 1) bt = 1; break;\n\t\t\tcase 's':\n\t\t\t\tif((ssm=out[i].v.match(/\\.0+$/))) ss0=Math.max(ss0,ssm[0].length-1);\n\t\t\t\tif(bt < 3) bt = 3;\n\t\t\t/* falls through */\n\t\t\tcase 'd': case 'y': case 'M': case 'e': lst=out[i].t; break;\n\t\t\tcase 'm': if(lst === 's') { out[i].t = 'M'; if(bt < 2) bt = 2; } break;\n\t\t\tcase 'X': if(out[i].v === \"B2\");\n\t\t\t\tbreak;\n\t\t\tcase 'Z':\n\t\t\t\tif(bt < 1 && out[i].v.match(/[Hh]/)) bt = 1;\n\t\t\t\tif(bt < 2 && out[i].v.match(/[Mm]/)) bt = 2;\n\t\t\t\tif(bt < 3 && out[i].v.match(/[Ss]/)) bt = 3;\n\t\t}\n\t}\n\tswitch(bt) {\n\t\tcase 0: break;\n\t\tcase 1:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tif(dt.M >= 60) { dt.M = 0; ++dt.H; }\n\t\t\tbreak;\n\t\tcase 2:\n\t\t\tif(dt.u >= 0.5) { dt.u = 0; ++dt.S; }\n\t\t\tif(dt.S >= 60) { dt.S = 0; ++dt.M; }\n\t\t\tbreak;\n\t}\n\t/* replace fields */\n\tvar nstr = \"\", jj;\n\tfor(i=0; i < out.length; ++i) {\n\t\tswitch(out[i].t) {\n\t\t\tcase 't': case 'T': case ' ': case 'D': break;\n\t\t\tcase 'X': out[i] = undefined; break;\n\t\t\tcase 'd': case 'm': case 'y': case 'h': case 'H': case 'M': case 's': case 'e': case 'b': case 'Z':\n\t\t\t\tout[i].v = write_date(out[i].t.charCodeAt(0), out[i].v, dt, ss0);\n\t\t\t\tout[i].t = 't'; break;\n\t\t\tcase 'n': case '(': case '?':\n\t\t\t\tjj = i+1;\n\t\t\t\twhile(out[jj] != null && (\n\t\t\t\t\t(c=out[jj].t) === \"?\" || c === \"D\" ||\n\t\t\t\t\t(c === \" \" || c === \"t\") && out[jj+1] != null && (out[jj+1].t === '?' || out[jj+1].t === \"t\" && out[jj+1].v === '/') ||\n\t\t\t\t\tout[i].t === '(' && (c === ' ' || c === 'n' || c === ')') ||\n\t\t\t\t\tc === 't' && (out[jj].v === '/' || '$€'.indexOf(out[jj].v) > -1 || out[jj].v === ' ' && out[jj+1] != null && out[jj+1].t == '?')\n\t\t\t\t)) {\n\t\t\t\t\tout[i].v += out[jj].v;\n\t\t\t\t\tout[jj] = undefined; ++jj;\n\t\t\t\t}\n\t\t\t\tnstr += out[i].v;\n\t\t\t\ti = jj-1; break;\n\t\t\tcase 'G': out[i].t = 't'; out[i].v = general_fmt(v,opts); break;\n\t\t}\n\t}\n\tvar vv = \"\", myv, ostr;\n\tif(nstr.length > 0) {\n\t\tmyv = (v<0&&nstr.charCodeAt(0) === 45 ? -v : v); /* '-' */\n\t\tostr = write_num(nstr.charCodeAt(0) === 40 ? '(' : 'n', nstr, myv); /* '(' */\n\t\tjj=ostr.length-1;\n\t\tvar decpt = out.length;\n\t\tfor(i=0; i < out.length; ++i) if(out[i] != null && out[i].v.indexOf(\".\") > -1) { decpt = i; break; }\n\t\tvar lasti=out.length;\n\t\tif(decpt === out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tfor(i=out.length-1; i>= 0;--i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tif(jj>=out[i].v.length-1) { jj -= out[i].v.length; out[i].v = ostr.substr(jj+1, out[i].v.length); }\n\t\t\t\telse if(jj < 0) out[i].v = \"\";\n\t\t\t\telse { out[i].v = ostr.substr(0, jj+1); jj = -1; }\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t}\n\t\telse if(decpt !== out.length && ostr.indexOf(\"E\") === -1) {\n\t\t\tjj = ostr.indexOf(\".\")-1;\n\t\t\tfor(i=decpt; i>= 0; --i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")-1:out[i].v.length-1;\n\t\t\t\tvv = out[i].v.substr(j+1);\n\t\t\t\tfor(; j>=0; --j) {\n\t\t\t\t\tif(jj>=0 && (out[i].v[j] === \"0\" || out[i].v[j] === \"#\")) vv = ostr[jj--] + vv;\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t\tif(jj>=0 && lasti<out.length) out[lasti].v = ostr.substr(0,jj+1) + out[lasti].v;\n\t\t\tjj = ostr.indexOf(\".\")+1;\n\t\t\tfor(i=decpt; i<out.length; ++i) {\n\t\t\t\tif(out[i] == null || 'n?('.indexOf(out[i].t) === -1 && i !== decpt ) continue;\n\t\t\t\tj=out[i].v.indexOf(\".\")>-1&&i===decpt?out[i].v.indexOf(\".\")+1:0;\n\t\t\t\tvv = out[i].v.substr(0,j);\n\t\t\t\tfor(; j<out[i].v.length; ++j) {\n\t\t\t\t\tif(jj<ostr.length) vv += ostr[jj++];\n\t\t\t\t}\n\t\t\t\tout[i].v = vv;\n\t\t\t\tout[i].t = 't';\n\t\t\t\tlasti = i;\n\t\t\t}\n\t\t}\n\t}\n\tfor(i=0; i<out.length; ++i) if(out[i] != null && 'n(?'.indexOf(out[i].t)>-1) {\n\t\tmyv = (flen >1 && v < 0 && i>0 && out[i-1].v === \"-\" ? -v:v);\n\t\tout[i].v = write_num(out[i].t, out[i].v, myv);\n\t\tout[i].t = 't';\n\t}\n\tvar retval = \"\";\n\tfor(i=0; i !== out.length; ++i) if(out[i] != null) retval += out[i].v;\n\treturn retval;\n}\nSSF._eval = eval_fmt;\nvar cfregex = /\\[[=<>]/;\nvar cfregex2 = /\\[([=<>]*)(-?\\d+\\.?\\d*)\\]/;\nfunction chkcond(v, rr) {\n\tif(rr == null) return false;\n\tvar thresh = parseFloat(rr[2]);\n\tswitch(rr[1]) {\n\t\tcase \"=\": if(v == thresh) return true; break;\n\t\tcase \">\": if(v > thresh) return true; break;\n\t\tcase \"<\": if(v < thresh) return true; break;\n\t\tcase \"<>\": if(v != thresh) return true; break;\n\t\tcase \">=\": if(v >= thresh) return true; break;\n\t\tcase \"<=\": if(v <= thresh) return true; break;\n\t}\n\treturn false;\n}\nfunction choose_fmt(f, v) {\n\tvar fmt = split_fmt(f);\n\tvar l = fmt.length, lat = fmt[l-1].indexOf(\"@\");\n\tif(l<4 && lat>-1) --l;\n\tif(fmt.length > 4) throw \"cannot find right format for |\" + fmt + \"|\";\n\tif(typeof v !== \"number\") return [4, fmt.length === 4 || lat>-1?fmt[fmt.length-1]:\"@\"];\n\tswitch(fmt.length) {\n\t\tcase 1: fmt = lat>-1 ? [\"General\", \"General\", \"General\", fmt[0]] : [fmt[0], fmt[0], fmt[0], \"@\"]; break;\n\t\tcase 2: fmt = lat>-1 ? [fmt[0], fmt[0], fmt[0], fmt[1]] : [fmt[0], fmt[1], fmt[0], \"@\"]; break;\n\t\tcase 3: fmt = lat>-1 ? [fmt[0], fmt[1], fmt[0], fmt[2]] : [fmt[0], fmt[1], fmt[2], \"@\"]; break;\n\t\tcase 4: break;\n\t}\n\tvar ff = v > 0 ? fmt[0] : v < 0 ? fmt[1] : fmt[2];\n\tif(fmt[0].indexOf(\"[\") === -1 && fmt[1].indexOf(\"[\") === -1) return [l, ff];\n\tif(fmt[0].match(cfregex) != null || fmt[1].match(cfregex) != null) {\n\t\tvar m1 = fmt[0].match(cfregex2);\n\t\tvar m2 = fmt[1].match(cfregex2);\n\t\treturn chkcond(v, m1) ? [l, fmt[0]] : chkcond(v, m2) ? [l, fmt[1]] : [l, fmt[m1 != null && m2 != null ? 2 : 1]];\n\t}\n\treturn [l, ff];\n}\nfunction format(fmt,v,o) {\n\tfixopts(o != null ? o : (o=[]));\n\tvar sfmt = \"\";\n\tswitch(typeof fmt) {\n\t\tcase \"string\": sfmt = fmt; break;\n\t\tcase \"number\": sfmt = (o.table != null ? o.table : table_fmt)[fmt]; break;\n\t}\n\tif(isgeneral(sfmt,0)) return general_fmt(v, o);\n\tvar f = choose_fmt(sfmt, v);\n\tif(isgeneral(f[1])) return general_fmt(v, o);\n\tif(v === true) v = \"TRUE\"; else if(v === false) v = \"FALSE\";\n\telse if(v === \"\" || v == null) return \"\";\n\treturn eval_fmt(f[1], v, o, f[0]);\n}\nSSF._table = table_fmt;\nSSF.load = function load_entry(fmt, idx) { table_fmt[idx] = fmt; };\nSSF.format = format;\nSSF.get_table = function get_table() { return table_fmt; };\nSSF.load_table = function load_table(tbl) { for(var i=0; i!=0x0188; ++i) if(tbl[i] !== undefined) SSF.load(tbl[i], i); };\n};\nmake_ssf(SSF);\n/* map from xlml named formats to SSF TODO: localize */\nvar XLMLFormatMap = {\n\t\"General Number\": \"General\",\n\t\"General Date\": SSF._table[22],\n\t\"Long Date\": \"dddd, mmmm dd, yyyy\",\n\t\"Medium Date\": SSF._table[15],\n\t\"Short Date\": SSF._table[14],\n\t\"Long Time\": SSF._table[19],\n\t\"Medium Time\": SSF._table[18],\n\t\"Short Time\": SSF._table[20],\n\t\"Currency\": '\"$\"#,##0.00_);[Red]\\\\(\"$\"#,##0.00\\\\)',\n\t\"Fixed\": SSF._table[2],\n\t\"Standard\": SSF._table[4],\n\t\"Percent\": SSF._table[10],\n\t\"Scientific\": SSF._table[11],\n\t\"Yes/No\": '\"Yes\";\"Yes\";\"No\";@',\n\t\"True/False\": '\"True\";\"True\";\"False\";@',\n\t\"On/Off\": '\"Yes\";\"Yes\";\"No\";@'\n};\n\nvar DO_NOT_EXPORT_CFB = true;\n/* cfb.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/* vim: set ts=2: */\n/*jshint eqnull:true */\n\n/* [MS-CFB] v20130118 */\nvar CFB = (function _CFB(){\nvar exports = {};\nexports.version = '0.10.2';\nfunction parse(file) {\nvar mver = 3; // major version\nvar ssz = 512; // sector size\nvar nmfs = 0; // number of mini FAT sectors\nvar ndfs = 0; // number of DIFAT sectors\nvar dir_start = 0; // first directory sector location\nvar minifat_start = 0; // first mini FAT sector location\nvar difat_start = 0; // first mini FAT sector location\n\nvar fat_addrs = []; // locations of FAT sectors\n\n/* [MS-CFB] 2.2 Compound File Header */\nvar blob = file.slice(0,512);\nprep_blob(blob, 0);\n\n/* major version */\nvar mv = check_get_mver(blob);\nmver = mv[0];\nswitch(mver) {\n\tcase 3: ssz = 512; break; case 4: ssz = 4096; break;\n\tdefault: throw \"Major Version: Expected 3 or 4 saw \" + mver;\n}\n\n/* reprocess header */\nif(ssz !== 512) { blob = file.slice(0,ssz); prep_blob(blob, 28 /* blob.l */); }\n/* Save header for final object */\nvar header = file.slice(0,ssz);\n\ncheck_shifts(blob, mver);\n\n// Number of Directory Sectors\nvar nds = blob.read_shift(4, 'i');\nif(mver === 3 && nds !== 0) throw '# Directory Sectors: Expected 0 saw ' + nds;\n\n// Number of FAT Sectors\n//var nfs = blob.read_shift(4, 'i');\nblob.l += 4;\n\n// First Directory Sector Location\ndir_start = blob.read_shift(4, 'i');\n\n// Transaction Signature\nblob.l += 4;\n\n// Mini Stream Cutoff Size\nblob.chk('00100000', 'Mini Stream Cutoff Size: ');\n\n// First Mini FAT Sector Location\nminifat_start = blob.read_shift(4, 'i');\n\n// Number of Mini FAT Sectors\nnmfs = blob.read_shift(4, 'i');\n\n// First DIFAT sector location\ndifat_start = blob.read_shift(4, 'i');\n\n// Number of DIFAT Sectors\nndfs = blob.read_shift(4, 'i');\n\n// Grab FAT Sector Locations\nfor(var q, j = 0; j < 109; ++j) { /* 109 = (512 - blob.l)>>>2; */\n\tq = blob.read_shift(4, 'i');\n\tif(q<0) break;\n\tfat_addrs[j] = q;\n}\n\n/** Break the file up into sectors */\nvar sectors = sectorify(file, ssz);\n\nsleuth_fat(difat_start, ndfs, sectors, ssz, fat_addrs);\n\n/** Chains */\nvar sector_list = make_sector_list(sectors, dir_start, fat_addrs, ssz);\n\nsector_list[dir_start].name = \"!Directory\";\nif(nmfs > 0 && minifat_start !== ENDOFCHAIN) sector_list[minifat_start].name = \"!MiniFAT\";\nsector_list[fat_addrs[0]].name = \"!FAT\";\nsector_list.fat_addrs = fat_addrs;\nsector_list.ssz = ssz;\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nvar files = {}, Paths = [], FileIndex = [], FullPaths = [], FullPathDir = {};\nread_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex);\n\nbuild_full_paths(FileIndex, FullPathDir, FullPaths, Paths);\n\nvar root_name = Paths.shift();\nPaths.root = root_name;\n\n/* [MS-CFB] 2.6.4 (Unicode 3.0.1 case conversion) */\nvar find_path = make_find_path(FullPaths, Paths, FileIndex, files, root_name);\n\nreturn {\n\traw: {header: header, sectors: sectors},\n\tFileIndex: FileIndex,\n\tFullPaths: FullPaths,\n\tFullPathDir: FullPathDir,\n\tfind: find_path\n};\n} // parse\n\n/* [MS-CFB] 2.2 Compound File Header -- read up to major version */\nfunction check_get_mver(blob) {\n\t// header signature 8\n\tblob.chk(HEADER_SIGNATURE, 'Header Signature: ');\n\n\t// clsid 16\n\tblob.chk(HEADER_CLSID, 'CLSID: ');\n\n\t// minor version 2\n\tvar mver = blob.read_shift(2, 'u');\n\n\treturn [blob.read_shift(2,'u'), mver];\n}\nfunction check_shifts(blob, mver) {\n\tvar shift = 0x09;\n\n\t// Byte Order\n\tblob.chk('feff', 'Byte Order: ');\n\n\t// Sector Shift\n\tswitch((shift = blob.read_shift(2))) {\n\t\tcase 0x09: if(mver !== 3) throw 'MajorVersion/SectorShift Mismatch'; break;\n\t\tcase 0x0c: if(mver !== 4) throw 'MajorVersion/SectorShift Mismatch'; break;\n\t\tdefault: throw 'Sector Shift: Expected 9 or 12 saw ' + shift;\n\t}\n\n\t// Mini Sector Shift\n\tblob.chk('0600', 'Mini Sector Shift: ');\n\n\t// Reserved\n\tblob.chk('000000000000', 'Reserved: ');\n}\n\n/** Break the file up into sectors */\nfunction sectorify(file, ssz) {\n\tvar nsectors = Math.ceil(file.length/ssz)-1;\n\tvar sectors = new Array(nsectors);\n\tfor(var i=1; i < nsectors; ++i) sectors[i-1] = file.slice(i*ssz,(i+1)*ssz);\n\tsectors[nsectors-1] = file.slice(nsectors*ssz);\n\treturn sectors;\n}\n\n/* [MS-CFB] 2.6.4 Red-Black Tree */\nfunction build_full_paths(FI, FPD, FP, Paths) {\n\tvar i = 0, L = 0, R = 0, C = 0, j = 0, pl = Paths.length;\n\tvar dad = new Array(pl), q = new Array(pl);\n\n\tfor(; i < pl; ++i) { dad[i]=q[i]=i; FP[i]=Paths[i]; }\n\n\tfor(; j < q.length; ++j) {\n\t\ti = q[j];\n\t\tL = FI[i].L; R = FI[i].R; C = FI[i].C;\n\t\tif(dad[i] === i) {\n\t\t\tif(L !== -1 /*NOSTREAM*/ && dad[L] !== L) dad[i] = dad[L];\n\t\t\tif(R !== -1 && dad[R] !== R) dad[i] = dad[R];\n\t\t}\n\t\tif(C !== -1 /*NOSTREAM*/) dad[C] = i;\n\t\tif(L !== -1) { dad[L] = dad[i]; q.push(L); }\n\t\tif(R !== -1) { dad[R] = dad[i]; q.push(R); }\n\t}\n\tfor(i=1; i !== pl; ++i) if(dad[i] === i) {\n\t\tif(R !== -1 /*NOSTREAM*/ && dad[R] !== R) dad[i] = dad[R];\n\t\telse if(L !== -1 && dad[L] !== L) dad[i] = dad[L];\n\t}\n\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type === 0 /* unknown */) continue;\n\t\tj = dad[i];\n\t\tif(j === 0) FP[i] = FP[0] + \"/\" + FP[i];\n\t\telse while(j !== 0) {\n\t\t\tFP[i] = FP[j] + \"/\" + FP[i];\n\t\t\tj = dad[j];\n\t\t}\n\t\tdad[i] = 0;\n\t}\n\n\tFP[0] += \"/\";\n\tfor(i=1; i < pl; ++i) {\n\t\tif(FI[i].type !== 2 /* stream */) FP[i] += \"/\";\n\t\tFPD[FP[i]] = FI[i];\n\t}\n}\n\n/* [MS-CFB] 2.6.4 */\nfunction make_find_path(FullPaths, Paths, FileIndex, files, root_name) {\n\tvar UCFullPaths = new Array(FullPaths.length);\n\tvar UCPaths = new Array(Paths.length), i;\n\tfor(i = 0; i < FullPaths.length; ++i) UCFullPaths[i] = FullPaths[i].toUpperCase().replace(chr0,'').replace(chr1,'!');\n\tfor(i = 0; i < Paths.length; ++i) UCPaths[i] = Paths[i].toUpperCase().replace(chr0,'').replace(chr1,'!');\n\treturn function find_path(path) {\n\t\tvar k;\n\t\tif(path.charCodeAt(0) === 47 /* \"/\" */) { k=true; path = root_name + path; }\n\t\telse k = path.indexOf(\"/\") !== -1;\n\t\tvar UCPath = path.toUpperCase().replace(chr0,'').replace(chr1,'!');\n\t\tvar w = k === true ? UCFullPaths.indexOf(UCPath) : UCPaths.indexOf(UCPath);\n\t\tif(w === -1) return null;\n\t\treturn k === true ? FileIndex[w] : files[Paths[w]];\n\t};\n}\n\n/** Chase down the rest of the DIFAT chain to build a comprehensive list\n DIFAT chains by storing the next sector number as the last 32 bytes */\nfunction sleuth_fat(idx, cnt, sectors, ssz, fat_addrs) {\n\tvar q;\n\tif(idx === ENDOFCHAIN) {\n\t\tif(cnt !== 0) throw \"DIFAT chain shorter than expected\";\n\t} else if(idx !== -1 /*FREESECT*/) {\n\t\tvar sector = sectors[idx], m = (ssz>>>2)-1;\n\t\tfor(var i = 0; i < m; ++i) {\n\t\t\tif((q = __readInt32LE(sector,i*4)) === ENDOFCHAIN) break;\n\t\t\tfat_addrs.push(q);\n\t\t}\n\t\tsleuth_fat(__readInt32LE(sector,ssz-4),cnt - 1, sectors, ssz, fat_addrs);\n\t}\n}\n\n/** Follow the linked list of sectors for a given starting point */\nfunction get_sector_list(sectors, start, fat_addrs, ssz, chkd) {\n\tvar sl = sectors.length;\n\tvar buf, buf_chain;\n\tif(!chkd) chkd = new Array(sl);\n\tvar modulus = ssz - 1, j, jj;\n\tbuf = [];\n\tbuf_chain = [];\n\tfor(j=start; j>=0;) {\n\t\tchkd[j] = true;\n\t\tbuf[buf.length] = j;\n\t\tbuf_chain.push(sectors[j]);\n\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\tjj = ((j*4) & modulus);\n\t\tif(ssz < 4 + jj) throw \"FAT boundary crossed: \" + j + \" 4 \"+ssz;\n\t\tj = __readInt32LE(sectors[addr], jj);\n\t}\n\treturn {nodes: buf, data:__toBuffer([buf_chain])};\n}\n\n/** Chase down the sector linked lists */\nfunction make_sector_list(sectors, dir_start, fat_addrs, ssz) {\n\tvar sl = sectors.length, sector_list = new Array(sl);\n\tvar chkd = new Array(sl), buf, buf_chain;\n\tvar modulus = ssz - 1, i, j, k, jj;\n\tfor(i=0; i < sl; ++i) {\n\t\tbuf = [];\n\t\tk = (i + dir_start); if(k >= sl) k-=sl;\n\t\tif(chkd[k] === true) continue;\n\t\tbuf_chain = [];\n\t\tfor(j=k; j>=0;) {\n\t\t\tchkd[j] = true;\n\t\t\tbuf[buf.length] = j;\n\t\t\tbuf_chain.push(sectors[j]);\n\t\t\tvar addr = fat_addrs[Math.floor(j*4/ssz)];\n\t\t\tjj = ((j*4) & modulus);\n\t\t\tif(ssz < 4 + jj) throw \"FAT boundary crossed: \" + j + \" 4 \"+ssz;\n\t\t\tj = __readInt32LE(sectors[addr], jj);\n\t\t}\n\t\tsector_list[k] = {nodes: buf, data:__toBuffer([buf_chain])};\n\t}\n\treturn sector_list;\n}\n\n/* [MS-CFB] 2.6.1 Compound File Directory Entry */\nfunction read_directory(dir_start, sector_list, sectors, Paths, nmfs, files, FileIndex) {\n\tvar blob;\n\tvar minifat_store = 0, pl = (Paths.length?2:0);\n\tvar sector = sector_list[dir_start].data;\n\tvar i = 0, namelen = 0, name, o, ctime, mtime;\n\tfor(; i < sector.length; i+= 128) {\n\t\tblob = sector.slice(i, i+128);\n\t\tprep_blob(blob, 64);\n\t\tnamelen = blob.read_shift(2);\n\t\tif(namelen === 0) continue;\n\t\tname = __utf16le(blob,0,namelen-pl);\n\t\tPaths.push(name);\n\t\to = {\n\t\t\tname: name,\n\t\t\ttype: blob.read_shift(1),\n\t\t\tcolor: blob.read_shift(1),\n\t\t\tL: blob.read_shift(4, 'i'),\n\t\t\tR: blob.read_shift(4, 'i'),\n\t\t\tC: blob.read_shift(4, 'i'),\n\t\t\tclsid: blob.read_shift(16),\n\t\t\tstate: blob.read_shift(4, 'i')\n\t\t};\n\t\tctime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(ctime !== 0) {\n\t\t\to.ctime = ctime; o.ct = read_date(blob, blob.l-8);\n\t\t}\n\t\tmtime = blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2) + blob.read_shift(2);\n\t\tif(mtime !== 0) {\n\t\t\to.mtime = mtime; o.mt = read_date(blob, blob.l-8);\n\t\t}\n\t\to.start = blob.read_shift(4, 'i');\n\t\to.size = blob.read_shift(4, 'i');\n\t\tif(o.type === 5) { /* root */\n\t\t\tminifat_store = o.start;\n\t\t\tif(nmfs > 0 && minifat_store !== ENDOFCHAIN) sector_list[minifat_store].name = \"!StreamData\";\n\t\t\t/*minifat_size = o.size;*/\n\t\t} else if(o.size >= 4096 /* MSCSZ */) {\n\t\t\to.storage = 'fat';\n\t\t\tif(sector_list[o.start] === undefined) sector_list[o.start] = get_sector_list(sectors, o.start, sector_list.fat_addrs, sector_list.ssz);\n\t\t\tsector_list[o.start].name = o.name;\n\t\t\to.content = sector_list[o.start].data.slice(0,o.size);\n\t\t\tprep_blob(o.content, 0);\n\t\t} else {\n\t\t\to.storage = 'minifat';\n\t\t\tif(minifat_store !== ENDOFCHAIN && o.start !== ENDOFCHAIN) {\n\t\t\t\to.content = sector_list[minifat_store].data.slice(o.start*MSSZ,o.start*MSSZ+o.size);\n\t\t\t\tprep_blob(o.content, 0);\n\t\t\t}\n\t\t}\n\t\tfiles[name] = o;\n\t\tFileIndex.push(o);\n\t}\n}\n\nfunction read_date(blob, offset) {\n\treturn new Date(( ( (__readUInt32LE(blob,offset+4)/1e7)*Math.pow(2,32)+__readUInt32LE(blob,offset)/1e7 ) - 11644473600)*1000);\n}\n\nvar fs;\nfunction readFileSync(filename, options) {\n\tif(fs === undefined) fs = require('fs');\n\treturn parse(fs.readFileSync(filename), options);\n}\n\nfunction readSync(blob, options) {\n\tswitch(options !== undefined && options.type !== undefined ? options.type : \"base64\") {\n\t\tcase \"file\": return readFileSync(blob, options);\n\t\tcase \"base64\": return parse(s2a(Base64.decode(blob)), options);\n\t\tcase \"binary\": return parse(s2a(blob), options);\n\t}\n\treturn parse(blob);\n}\n\n/** CFB Constants */\nvar MSSZ = 64; /* Mini Sector Size = 1<<6 */\n//var MSCSZ = 4096; /* Mini Stream Cutoff Size */\n/* 2.1 Compound File Sector Numbers and Types */\nvar ENDOFCHAIN = -2;\n/* 2.2 Compound File Header */\nvar HEADER_SIGNATURE = 'd0cf11e0a1b11ae1';\nvar HEADER_CLSID = '00000000000000000000000000000000';\nvar consts = {\n\t/* 2.1 Compund File Sector Numbers and Types */\n\tMAXREGSECT: -6,\n\tDIFSECT: -4,\n\tFATSECT: -3,\n\tENDOFCHAIN: ENDOFCHAIN,\n\tFREESECT: -1,\n\t/* 2.2 Compound File Header */\n\tHEADER_SIGNATURE: HEADER_SIGNATURE,\n\tHEADER_MINOR_VERSION: '3e00',\n\tMAXREGSID: -6,\n\tNOSTREAM: -1,\n\tHEADER_CLSID: HEADER_CLSID,\n\t/* 2.6.1 Compound File Directory Entry */\n\tEntryTypes: ['unknown','storage','stream','lockbytes','property','root']\n};\n\nexports.read = readSync;\nexports.parse = parse;\nexports.utils = {\n\tReadShift: ReadShift,\n\tCheckField: CheckField,\n\tprep_blob: prep_blob,\n\tbconcat: bconcat,\n\tconsts: consts\n};\n\nreturn exports;\n})();\n\nif(typeof require !== 'undefined' && typeof module !== 'undefined' && typeof DO_NOT_EXPORT_CFB === 'undefined') { module.exports = CFB; }\nfunction isval(x) { return x !== undefined && x !== null; }\n\nfunction keys(o) { return Object.keys(o); }\n\nfunction evert_key(obj, key) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]][key]] = K[i];\n\treturn o;\n}\n\nfunction evert(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = K[i];\n\treturn o;\n}\n\nfunction evert_num(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) o[obj[K[i]]] = parseInt(K[i],10);\n\treturn o;\n}\n\nfunction evert_arr(obj) {\n\tvar o = [], K = keys(obj);\n\tfor(var i = 0; i !== K.length; ++i) {\n\t\tif(o[obj[K[i]]] == null) o[obj[K[i]]] = [];\n\t\to[obj[K[i]]].push(K[i]);\n\t}\n\treturn o;\n}\n\n/* TODO: date1904 logic */\nfunction datenum(v, date1904) {\n\tif(date1904) v+=1462;\n\tvar epoch = Date.parse(v);\n\treturn (epoch + 2209161600000) / (24 * 60 * 60 * 1000);\n}\n\nfunction cc2str(arr) {\n\tvar o = \"\";\n\tfor(var i = 0; i != arr.length; ++i) o += String.fromCharCode(arr[i]);\n\treturn o;\n}\n\nfunction getdata(data) {\n\tif(!data) return null;\n\tif(data.name.substr(-4) === \".bin\") {\n\t\tif(data.data) return char_codes(data.data);\n\t\tif(data.asNodeBuffer && has_buf) return data.asNodeBuffer();\n\t\tif(data._data && data._data.getContent) return Array.prototype.slice.call(data._data.getContent());\n\t} else {\n\t\tif(data.data) return data.name.substr(-4) !== \".bin\" ? debom_xml(data.data) : char_codes(data.data);\n\t\tif(data.asNodeBuffer && has_buf) return debom_xml(data.asNodeBuffer().toString('binary'));\n\t\tif(data.asBinary) return debom_xml(data.asBinary());\n\t\tif(data._data && data._data.getContent) return debom_xml(cc2str(Array.prototype.slice.call(data._data.getContent(),0)));\n\t}\n\treturn null;\n}\n\nfunction safegetzipfile(zip, file) {\n\tvar f = file; if(zip.files[f]) return zip.files[f];\n\tf = file.toLowerCase(); if(zip.files[f]) return zip.files[f];\n\tf = f.replace(/\\//g,'\\\\'); if(zip.files[f]) return zip.files[f];\n\treturn null;\n}\n\nfunction getzipfile(zip, file) {\n\tvar o = safegetzipfile(zip, file);\n\tif(o == null) throw new Error(\"Cannot find file \" + file + \" in zip\");\n\treturn o;\n}\n\nfunction getzipdata(zip, file, safe) {\n\tif(!safe) return getdata(getzipfile(zip, file));\n\tif(!file) return null;\n\ttry { return getzipdata(zip, file); } catch(e) { return null; }\n}\n\nvar _fs, jszip;\nif(typeof JSZip !== 'undefined') jszip = JSZip;\nif (typeof exports !== 'undefined') {\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tif(has_buf && typeof jszip === 'undefined') jszip = require('js'+'zip');\n\t\tif(typeof jszip === 'undefined') jszip = require('./js'+'zip').JSZip;\n\t\t_fs = require('f'+'s');\n\t}\n}\nvar attregexg=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar tagregex=/<[^>]*>/g;\nvar nsregex=/<\\w*:/, nsregex2 = /<(\\/?)\\w+:/;\nfunction parsexmltag(tag, skip_root) {\n\tvar z = [];\n\tvar eq = 0, c = 0;\n\tfor(; eq !== tag.length; ++eq) if((c = tag.charCodeAt(eq)) === 32 || c === 10 || c === 13) break;\n\tif(!skip_root) z[0] = tag.substr(0, eq);\n\tif(eq === tag.length) return z;\n\tvar m = tag.match(attregexg), j=0, w=\"\", v=\"\", i=0, q=\"\", cc=\"\";\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\tcc = m[i];\n\t\tfor(c=0; c != cc.length; ++c) if(cc.charCodeAt(c) === 61) break;\n\t\tq = cc.substr(0,c); v = cc.substring(c+2, cc.length-1);\n\t\tfor(j=0;j!=q.length;++j) if(q.charCodeAt(j) === 58) break;\n\t\tif(j===q.length) z[q] = v;\n\t\telse z[(j===5 && q.substr(0,5)===\"xmlns\"?\"xmlns\":\"\")+q.substr(j+1)] = v;\n\t}\n\treturn z;\n}\nfunction strip_ns(x) { return x.replace(nsregex2, \"<$1\"); }\n\nvar encodings = {\n\t'"': '\"',\n\t''': \"'\",\n\t'>': '>',\n\t'<': '<',\n\t'&': '&'\n};\nvar rencoding = evert(encodings);\nvar rencstr = \"&<>'\\\"\".split(\"\");\n\n// TODO: CP remap (need to read file version to determine OS)\nvar unescapexml = (function() {\n\tvar encregex = /&[a-z]*;/g, coderegex = /_x([\\da-fA-F]+)_/g;\n\treturn function unescapexml(text){\n\t\tvar s = text + '';\n\t\treturn s.replace(encregex, function($$) { return encodings[$$]; }).replace(coderegex,function(m,c) {return String.fromCharCode(parseInt(c,16));});\n\t};\n})();\n\nvar decregex=/[&<>'\"]/g, charegex = /[\\u0000-\\u0008\\u000b-\\u001f]/g;\nfunction escapexml(text){\n\tvar s = text + '';\n\treturn s.replace(decregex, function(y) { return rencoding[y]; }).replace(charegex,function(s) { return \"_x\" + (\"000\"+s.charCodeAt(0).toString(16)).substr(-4) + \"_\";});\n}\n\n/* TODO: handle codepages */\nvar xlml_fixstr = (function() {\n\tvar entregex = /&#(\\d+);/g;\n\tfunction entrepl($$,$1) { return String.fromCharCode(parseInt($1,10)); }\n\treturn function xlml_fixstr(str) { return str.replace(entregex,entrepl); };\n})();\n\nfunction parsexmlbool(value, tag) {\n\tswitch(value) {\n\t\tcase '1': case 'true': case 'TRUE': return true;\n\t\t/* case '0': case 'false': case 'FALSE':*/\n\t\tdefault: return false;\n\t}\n}\n\nvar utf8read = function utf8reada(orig) {\n\tvar out = \"\", i = 0, c = 0, d = 0, e = 0, f = 0, w = 0;\n\twhile (i < orig.length) {\n\t\tc = orig.charCodeAt(i++);\n\t\tif (c < 128) { out += String.fromCharCode(c); continue; }\n\t\td = orig.charCodeAt(i++);\n\t\tif (c>191 && c<224) { out += String.fromCharCode(((c & 31) << 6) | (d & 63)); continue; }\n\t\te = orig.charCodeAt(i++);\n\t\tif (c < 240) { out += String.fromCharCode(((c & 15) << 12) | ((d & 63) << 6) | (e & 63)); continue; }\n\t\tf = orig.charCodeAt(i++);\n\t\tw = (((c & 7) << 18) | ((d & 63) << 12) | ((e & 63) << 6) | (f & 63))-65536;\n\t\tout += String.fromCharCode(0xD800 + ((w>>>10)&1023));\n\t\tout += String.fromCharCode(0xDC00 + (w&1023));\n\t}\n\treturn out;\n};\n\n\nif(has_buf) {\n\tvar utf8readb = function utf8readb(data) {\n\t\tvar out = new Buffer(2*data.length), w, i, j = 1, k = 0, ww=0, c;\n\t\tfor(i = 0; i < data.length; i+=j) {\n\t\t\tj = 1;\n\t\t\tif((c=data.charCodeAt(i)) < 128) w = c;\n\t\t\telse if(c < 224) { w = (c&31)*64+(data.charCodeAt(i+1)&63); j=2; }\n\t\t\telse if(c < 240) { w=(c&15)*4096+(data.charCodeAt(i+1)&63)*64+(data.charCodeAt(i+2)&63); j=3; }\n\t\t\telse { j = 4;\n\t\t\t\tw = (c & 7)*262144+(data.charCodeAt(i+1)&63)*4096+(data.charCodeAt(i+2)&63)*64+(data.charCodeAt(i+3)&63);\n\t\t\t\tw -= 65536; ww = 0xD800 + ((w>>>10)&1023); w = 0xDC00 + (w&1023);\n\t\t\t}\n\t\t\tif(ww !== 0) { out[k++] = ww&255; out[k++] = ww>>>8; ww = 0; }\n\t\t\tout[k++] = w%256; out[k++] = w>>>8;\n\t\t}\n\t\tout.length = k;\n\t\treturn out.toString('ucs2');\n\t};\n\tvar corpus = \"foo bar baz\\u00e2\\u0098\\u0083\\u00f0\\u009f\\u008d\\u00a3\";\n\tif(utf8read(corpus) == utf8readb(corpus)) utf8read = utf8readb;\n\tvar utf8readc = function utf8readc(data) { return Buffer(data, 'binary').toString('utf8'); };\n\tif(utf8read(corpus) == utf8readc(corpus)) utf8read = utf8readc;\n}\n\n// matches <foo>...</foo> extracts content\nvar matchtag = (function() {\n\tvar mtcache = {};\n\treturn function matchtag(f,g) {\n\t\tvar t = f+\"|\"+g;\n\t\tif(mtcache[t] !== undefined) return mtcache[t];\n\t\treturn (mtcache[t] = new RegExp('<(?:\\\\w+:)?'+f+'(?: xml:space=\"preserve\")?(?:[^>]*)>([^\\u2603]*)</(?:\\\\w+:)?'+f+'>',(g||\"\")));\n\t};\n})();\n\nvar vtregex = (function(){ var vt_cache = {};\n\treturn function vt_regex(bt) {\n\t\tif(vt_cache[bt] !== undefined) return vt_cache[bt];\n\t\treturn (vt_cache[bt] = new RegExp(\"<vt:\" + bt + \">(.*?)</vt:\" + bt + \">\", 'g') );\n};})();\nvar vtvregex = /<\\/?vt:variant>/g, vtmregex = /<vt:([^>]*)>(.*)</;\nfunction parseVector(data) {\n\tvar h = parsexmltag(data);\n\n\tvar matches = data.match(vtregex(h.baseType))||[];\n\tif(matches.length != h.size) throw \"unexpected vector length \" + matches.length + \" != \" + h.size;\n\tvar res = [];\n\tmatches.forEach(function(x) {\n\t\tvar v = x.replace(vtvregex,\"\").match(vtmregex);\n\t\tres.push({v:v[2], t:v[1]});\n\t});\n\treturn res;\n}\n\nvar wtregex = /(^\\s|\\s$|\\n)/;\nfunction writetag(f,g) {return '<' + f + (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f + '>';}\n\nfunction wxt_helper(h) { return keys(h).map(function(k) { return \" \" + k + '=\"' + h[k] + '\"';}).join(\"\"); }\nfunction writextag(f,g,h) { return '<' + f + (isval(h) ? wxt_helper(h) : \"\") + (isval(g) ? (g.match(wtregex)?' xml:space=\"preserve\"' : \"\") + '>' + g + '</' + f : \"/\") + '>';}\n\nfunction write_w3cdtf(d, t) { try { return d.toISOString().replace(/\\.\\d*/,\"\"); } catch(e) { if(t) throw e; } }\n\nfunction write_vt(s) {\n\tswitch(typeof s) {\n\t\tcase 'string': return writextag('vt:lpwstr', s);\n\t\tcase 'number': return writextag((s|0)==s?'vt:i4':'vt:r8', String(s));\n\t\tcase 'boolean': return writextag('vt:bool',s?'true':'false');\n\t}\n\tif(s instanceof Date) return writextag('vt:filetime', write_w3cdtf(s));\n\tthrow new Error(\"Unable to serialize \" + s);\n}\n\nvar XML_HEADER = '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\r\\n';\nvar XMLNS = {\n\t'dc': 'http://purl.org/dc/elements/1.1/',\n\t'dcterms': 'http://purl.org/dc/terms/',\n\t'dcmitype': 'http://purl.org/dc/dcmitype/',\n\t'mx': 'http://schemas.microsoft.com/office/mac/excel/2008/main',\n\t'r': 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',\n\t'sjs': 'http://schemas.openxmlformats.org/package/2006/sheetjs/core-properties',\n\t'vt': 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes',\n\t'xsi': 'http://www.w3.org/2001/XMLSchema-instance',\n\t'xsd': 'http://www.w3.org/2001/XMLSchema'\n};\n\nXMLNS.main = [\n\t'http://schemas.openxmlformats.org/spreadsheetml/2006/main',\n\t'http://purl.oclc.org/ooxml/spreadsheetml/main',\n\t'http://schemas.microsoft.com/office/excel/2006/main',\n\t'http://schemas.microsoft.com/office/excel/2006/2'\n];\n\nfunction readIEEE754(buf, idx, isLE, nl, ml) {\n\tif(isLE === undefined) isLE = true;\n\tif(!nl) nl = 8;\n\tif(!ml && nl === 8) ml = 52;\n\tvar e, m, el = nl * 8 - ml - 1, eMax = (1 << el) - 1, eBias = eMax >> 1;\n\tvar bits = -7, d = isLE ? -1 : 1, i = isLE ? (nl - 1) : 0, s = buf[idx + i];\n\n\ti += d;\n\te = s & ((1 << (-bits)) - 1); s >>>= (-bits); bits += el;\n\tfor (; bits > 0; e = e * 256 + buf[idx + i], i += d, bits -= 8);\n\tm = e & ((1 << (-bits)) - 1); e >>>= (-bits); bits += ml;\n\tfor (; bits > 0; m = m * 256 + buf[idx + i], i += d, bits -= 8);\n\tif (e === eMax) return m ? NaN : ((s ? -1 : 1) * Infinity);\n\telse if (e === 0) e = 1 - eBias;\n\telse { m = m + Math.pow(2, ml); e = e - eBias; }\n\treturn (s ? -1 : 1) * m * Math.pow(2, e - ml);\n}\n\nvar __toBuffer, ___toBuffer;\n__toBuffer = ___toBuffer = function toBuffer_(bufs) { var x = []; for(var i = 0; i < bufs[0].length; ++i) { x.push.apply(x, bufs[0][i]); } return x; };\nvar __utf16le, ___utf16le;\n__utf16le = ___utf16le = function utf16le_(b,s,e) { var ss=[]; for(var i=s; i<e; i+=2) ss.push(String.fromCharCode(__readUInt16LE(b,i))); return ss.join(\"\"); };\nvar __hexlify, ___hexlify;\n__hexlify = ___hexlify = function hexlify_(b,s,l) { return b.slice(s,(s+l)).map(function(x){return (x<16?\"0\":\"\") + x.toString(16);}).join(\"\"); };\nvar __utf8, ___utf8;\n__utf8 = ___utf8 = function(b,s,e) { var ss=[]; for(var i=s; i<e; i++) ss.push(String.fromCharCode(__readUInt8(b,i))); return ss.join(\"\"); };\nvar __lpstr, ___lpstr;\n__lpstr = ___lpstr = function lpstr_(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __lpwstr, ___lpwstr;\n__lpwstr = ___lpwstr = function lpwstr_(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? __utf8(b, i+4,i+4+len-1) : \"\";};\nvar __double, ___double;\n__double = ___double = function(b, idx) { return readIEEE754(b, idx);};\n\nvar is_buf = function is_buf_a(a) { return Array.isArray(a); };\nif(has_buf) {\n\t__utf16le = function utf16le_b(b,s,e) { if(!Buffer.isBuffer(b)) return ___utf16le(b,s,e); return b.toString('utf16le',s,e); };\n\t__hexlify = function(b,s,l) { return Buffer.isBuffer(b) ? b.toString('hex',s,s+l) : ___hexlify(b,s,l); };\n\t__lpstr = function lpstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpstr(b, i); var len = b.readUInt32LE(i); return len > 0 ? b.toString('utf8',i+4,i+4+len-1) : \"\";};\n\t__lpwstr = function lpwstr_b(b,i) { if(!Buffer.isBuffer(b)) return ___lpwstr(b, i); var len = 2*b.readUInt32LE(i); return b.toString('utf16le',i+4,i+4+len-1);};\n\t__utf8 = function utf8_b(s,e) { return this.toString('utf8',s,e); };\n\t__toBuffer = function(bufs) { return (bufs[0].length > 0 && Buffer.isBuffer(bufs[0][0])) ? Buffer.concat(bufs[0]) : ___toBuffer(bufs);};\n\tbconcat = function(bufs) { return Buffer.isBuffer(bufs[0]) ? Buffer.concat(bufs) : [].concat.apply([], bufs); };\n\t__double = function double_(b,i) { if(Buffer.isBuffer(b)) return b.readDoubleLE(i); return ___double(b,i); };\n\tis_buf = function is_buf_b(a) { return Buffer.isBuffer(a) || Array.isArray(a); };\n}\n\n/* from js-xls */\nif(typeof cptable !== 'undefined') {\n\t__utf16le = function(b,s,e) { return cptable.utils.decode(1200, b.slice(s,e)); };\n\t__utf8 = function(b,s,e) { return cptable.utils.decode(65001, b.slice(s,e)); };\n\t__lpstr = function(b,i) { var len = __readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(current_codepage, b.slice(i+4, i+4+len-1)) : \"\";};\n\t__lpwstr = function(b,i) { var len = 2*__readUInt32LE(b,i); return len > 0 ? cptable.utils.decode(1200, b.slice(i+4,i+4+len-1)) : \"\";};\n}\n\nvar __readUInt8 = function(b, idx) { return b[idx]; };\nvar __readUInt16LE = function(b, idx) { return b[idx+1]*(1<<8)+b[idx]; };\nvar __readInt16LE = function(b, idx) { var u = b[idx+1]*(1<<8)+b[idx]; return (u < 0x8000) ? u : (0xffff - u + 1) * -1; };\nvar __readUInt32LE = function(b, idx) { return b[idx+3]*(1<<24)+(b[idx+2]<<16)+(b[idx+1]<<8)+b[idx]; };\nvar __readInt32LE = function(b, idx) { return (b[idx+3]<<24)|(b[idx+2]<<16)|(b[idx+1]<<8)|b[idx]; };\n\nvar ___unhexlify = function(s) { return s.match(/../g).map(function(x) { return parseInt(x,16);}); };\nvar __unhexlify = typeof Buffer !== \"undefined\" ? function(s) { return Buffer.isBuffer(s) ? new Buffer(s, 'hex') : ___unhexlify(s); } : ___unhexlify;\n\nfunction ReadShift(size, t) {\n\tvar o=\"\", oI, oR, oo=[], w, vv, i, loc;\n\tswitch(t) {\n\t\tcase 'dbcs':\n\t\t\tloc = this.l;\n\t\t\tif(has_buf && Buffer.isBuffer(this)) o = this.slice(this.l, this.l+2*size).toString(\"utf16le\");\n\t\t\telse for(i = 0; i != size; ++i) { o+=String.fromCharCode(__readUInt16LE(this, loc)); loc+=2; }\n\t\t\tsize *= 2;\n\t\t\tbreak;\n\n\t\tcase 'utf8': o = __utf8(this, this.l, this.l + size); break;\n\t\tcase 'utf16le': size *= 2; o = __utf16le(this, this.l, this.l + size); break;\n\n\t\t/* [MS-OLEDS] 2.1.4 LengthPrefixedAnsiString */\n\t\tcase 'lpstr': o = __lpstr(this, this.l); size = 5 + o.length; break;\n\t\t/* [MS-OLEDS] 2.1.5 LengthPrefixedUnicodeString */\n\t\tcase 'lpwstr': o = __lpwstr(this, this.l); size = 5 + o.length; if(o[o.length-1] == '\\u0000') size += 2; break;\n\n\t\tcase 'cstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt8(this, this.l + size++))!==0) oo.push(_getchar(w));\n\t\t\to = oo.join(\"\"); break;\n\t\tcase 'wstr': size = 0; o = \"\";\n\t\t\twhile((w=__readUInt16LE(this,this.l +size))!==0){oo.push(_getchar(w));size+=2;}\n\t\t\tsize+=2; o = oo.join(\"\"); break;\n\n\t\t/* sbcs and dbcs support continue records in the SST way TODO codepages */\n\t\tcase 'dbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt16LE(this, loc)));\n\t\t\t\tloc+=2;\n\t\t\t} o = oo.join(\"\"); size *= 2; break;\n\n\t\tcase 'sbcs-cont': o = \"\"; loc = this.l;\n\t\t\tfor(i = 0; i != size; ++i) {\n\t\t\t\tif(this.lens && this.lens.indexOf(loc) !== -1) {\n\t\t\t\t\tw = __readUInt8(this, loc);\n\t\t\t\t\tthis.l = loc + 1;\n\t\t\t\t\tvv = ReadShift.call(this, size-i, w ? 'dbcs-cont' : 'sbcs-cont');\n\t\t\t\t\treturn oo.join(\"\") + vv;\n\t\t\t\t}\n\t\t\t\too.push(_getchar(__readUInt8(this, loc)));\n\t\t\t\tloc+=1;\n\t\t\t} o = oo.join(\"\"); break;\n\n\t\tdefault:\n\tswitch(size) {\n\t\tcase 1: oI = __readUInt8(this, this.l); this.l++; return oI;\n\t\tcase 2: oI = (t === 'i' ? __readInt16LE : __readUInt16LE)(this, this.l); this.l += 2; return oI;\n\t\tcase 4:\n\t\t\tif(t === 'i' || (this[this.l+3] & 0x80)===0) { oI = __readInt32LE(this, this.l); this.l += 4; return oI; }\n\t\t\telse { oR = __readUInt32LE(this, this.l); this.l += 4; return oR; } break;\n\t\tcase 8: if(t === 'f') { oR = __double(this, this.l); this.l += 8; return oR; }\n\t\t/* falls through */\n\t\tcase 16: o = __hexlify(this, this.l, size); break;\n\t}}\n\tthis.l+=size; return o;\n}\n\nfunction WriteShift(t, val, f) {\n\tvar size, i;\n\tif(f === 'dbcs') {\n\t\tfor(i = 0; i != val.length; ++i) this.writeUInt16LE(val.charCodeAt(i), this.l + 2 * i);\n\t\tsize = 2 * val.length;\n\t} else switch(t) {\n\t\tcase 1: size = 1; this[this.l] = val&255; break;\n\t\tcase 3: size = 3; this[this.l+2] = val & 255; val >>>= 8; this[this.l+1] = val&255; val >>>= 8; this[this.l] = val&255; break;\n\t\tcase 4: size = 4; this.writeUInt32LE(val, this.l); break;\n\t\tcase 8: size = 8; if(f === 'f') { this.writeDoubleLE(val, this.l); break; }\n\t\t/* falls through */\n\t\tcase 16: break;\n\t\tcase -4: size = 4; this.writeInt32LE(val, this.l); break;\n\t}\n\tthis.l += size; return this;\n}\n\nfunction CheckField(hexstr, fld) {\n\tvar m = __hexlify(this,this.l,hexstr.length>>1);\n\tif(m !== hexstr) throw fld + 'Expected ' + hexstr + ' saw ' + m;\n\tthis.l += hexstr.length>>1;\n}\n\nfunction prep_blob(blob, pos) {\n\tblob.l = pos;\n\tblob.read_shift = ReadShift;\n\tblob.chk = CheckField;\n\tblob.write_shift = WriteShift;\n}\n\nfunction parsenoop(blob, length) { blob.l += length; }\n\nfunction writenoop(blob, length) { blob.l += length; }\n\nfunction new_buf(sz) {\n\tvar o = new_raw_buf(sz);\n\tprep_blob(o, 0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.4 Record */\nfunction recordhopper(data, cb, opts) {\n\tvar tmpbyte, cntbyte, length;\n\tprep_blob(data, data.l || 0);\n\twhile(data.l < data.length) {\n\t\tvar RT = data.read_shift(1);\n\t\tif(RT & 0x80) RT = (RT & 0x7F) + ((data.read_shift(1) & 0x7F)<<7);\n\t\tvar R = XLSBRecordEnum[RT] || XLSBRecordEnum[0xFFFF];\n\t\ttmpbyte = data.read_shift(1);\n\t\tlength = tmpbyte & 0x7F;\n\t\tfor(cntbyte = 1; cntbyte <4 && (tmpbyte & 0x80); ++cntbyte) length += ((tmpbyte = data.read_shift(1)) & 0x7F)<<(7*cntbyte);\n\t\tvar d = R.f(data, length, opts);\n\t\tif(cb(d, R, RT)) return;\n\t}\n}\n\n/* control buffer usage for fixed-length buffers */\nfunction buf_array() {\n\tvar bufs = [], blksz = 2048;\n\tvar newblk = function ba_newblk(sz) {\n\t\tvar o = new_buf(sz);\n\t\tprep_blob(o, 0);\n\t\treturn o;\n\t};\n\n\tvar curbuf = newblk(blksz);\n\n\tvar endbuf = function ba_endbuf() {\n\t\tcurbuf.length = curbuf.l;\n\t\tif(curbuf.length > 0) bufs.push(curbuf);\n\t\tcurbuf = null;\n\t};\n\n\tvar next = function ba_next(sz) {\n\t\tif(sz < curbuf.length - curbuf.l) return curbuf;\n\t\tendbuf();\n\t\treturn (curbuf = newblk(Math.max(sz+1, blksz)));\n\t};\n\n\tvar end = function ba_end() {\n\t\tendbuf();\n\t\treturn __toBuffer([bufs]);\n\t};\n\n\tvar push = function ba_push(buf) { endbuf(); curbuf = buf; next(blksz); };\n\n\treturn { next:next, push:push, end:end, _bufs:bufs };\n}\n\nfunction write_record(ba, type, payload, length) {\n\tvar t = evert_RE[type], l;\n\tif(!length) length = XLSBRecordEnum[t].p || (payload||[]).length || 0;\n\tl = 1 + (t >= 0x80 ? 1 : 0) + 1 + length;\n\tif(length >= 0x80) ++l; if(length >= 0x4000) ++l; if(length >= 0x200000) ++l;\n\tvar o = ba.next(l);\n\tif(t <= 0x7F) o.write_shift(1, t);\n\telse {\n\t\to.write_shift(1, (t & 0x7F) + 0x80);\n\t\to.write_shift(1, (t >> 7));\n\t}\n\tfor(var i = 0; i != 4; ++i) {\n\t\tif(length >= 0x80) { o.write_shift(1, (length & 0x7F)+0x80); length >>= 7; }\n\t\telse { o.write_shift(1, length); break; }\n\t}\n\tif(length > 0 && is_buf(payload)) ba.push(payload);\n}\n/* XLS ranges enforced */\nfunction shift_cell_xls(cell, tgt) {\n\tif(tgt.s) {\n\t\tif(cell.cRel) cell.c += tgt.s.c;\n\t\tif(cell.rRel) cell.r += tgt.s.r;\n\t} else {\n\t\tcell.c += tgt.c;\n\t\tcell.r += tgt.r;\n\t}\n\tcell.cRel = cell.rRel = 0;\n\twhile(cell.c >= 0x100) cell.c -= 0x100;\n\twhile(cell.r >= 0x10000) cell.r -= 0x10000;\n\treturn cell;\n}\n\nfunction shift_range_xls(cell, range) {\n\tcell.s = shift_cell_xls(cell.s, range.s);\n\tcell.e = shift_cell_xls(cell.e, range.s);\n\treturn cell;\n}\n\nvar OFFCRYPTO = {};\nvar make_offcrypto = function(O, _crypto) {\n\tvar crypto;\n\tif(typeof _crypto !== 'undefined') crypto = _crypto;\n\telse if(typeof require !== 'undefined') {\n\t\ttry { crypto = require('cry'+'pto'); }\n\t\tcatch(e) { crypto = null; }\n\t}\n\n\tO.rc4 = function(key, data) {\n\t\tvar S = new Array(256);\n\t\tvar c = 0, i = 0, j = 0, t = 0;\n\t\tfor(i = 0; i != 256; ++i) S[i] = i;\n\t\tfor(i = 0; i != 256; ++i) {\n\t\t\tj = (j + S[i] + (key[i%key.length]).charCodeAt(0))&255;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t}\n\t\ti = j = 0; out = Buffer(data.length);\n\t\tfor(c = 0; c != data.length; ++c) {\n\t\t\ti = (i + 1)&255;\n\t\t\tj = (j + S[i])%256;\n\t\t\tt = S[i]; S[i] = S[j]; S[j] = t;\n\t\t\tout[c] = (data[c] ^ S[(S[i]+S[j])&255]);\n\t\t}\n\t\treturn out;\n\t};\n\n\tif(crypto) {\n\t\tO.md5 = function(hex) { return crypto.createHash('md5').update(hex).digest('hex'); };\n\t} else {\n\t\tO.md5 = function(hex) { throw \"unimplemented\"; };\n\t}\n};\nmake_offcrypto(OFFCRYPTO, typeof crypto !== \"undefined\" ? crypto : undefined);\n\n\n/* [MS-XLSB] 2.5.143 */\nfunction parse_StrRun(data, length) {\n\treturn { ich: data.read_shift(2), ifnt: data.read_shift(2) };\n}\n\n/* [MS-XLSB] 2.1.7.121 */\nfunction parse_RichStr(data, length) {\n\tvar start = data.l;\n\tvar flags = data.read_shift(1);\n\tvar str = parse_XLWideString(data);\n\tvar rgsStrRun = [];\n\tvar z = { t: str, h: str };\n\tif((flags & 1) !== 0) { /* fRichStr */\n\t\t/* TODO: formatted string */\n\t\tvar dwSizeStrRun = data.read_shift(4);\n\t\tfor(var i = 0; i != dwSizeStrRun; ++i) rgsStrRun.push(parse_StrRun(data));\n\t\tz.r = rgsStrRun;\n\t}\n\telse z.r = \"<t>\" + escapexml(str) + \"</t>\";\n\tif((flags & 2) !== 0) { /* fExtStr */\n\t\t/* TODO: phonetic string */\n\t}\n\tdata.l = start + length;\n\treturn z;\n}\nfunction write_RichStr(str, o) {\n\t/* TODO: formatted string */\n\tif(o == null) o = new_buf(5+2*str.t.length);\n\to.write_shift(1,0);\n\twrite_XLWideString(str.t, o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.9 */\nfunction parse_XLSBCell(data) {\n\tvar col = data.read_shift(4);\n\tvar iStyleRef = data.read_shift(2);\n\tiStyleRef += data.read_shift(1) <<16;\n\tvar fPhShow = data.read_shift(1);\n\treturn { c:col, iStyleRef: iStyleRef };\n}\nfunction write_XLSBCell(cell, o) {\n\tif(o == null) o = new_buf(8);\n\to.write_shift(-4, cell.c);\n\to.write_shift(3, cell.iStyleRef === undefined ? cell.iStyleRef : cell.s);\n\to.write_shift(1, 0); /* fPhShow */\n\treturn o;\n}\n\n\n/* [MS-XLSB] 2.5.21 */\nfunction parse_XLSBCodeName (data, length) { return parse_XLWideString(data, length); }\n\n/* [MS-XLSB] 2.5.166 */\nfunction parse_XLNullableWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 || cchCharacters === 0xFFFFFFFF ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLNullableWideString(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.length > 0 ? data.length : 0xFFFFFFFF);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.168 */\nfunction parse_XLWideString(data) {\n\tvar cchCharacters = data.read_shift(4);\n\treturn cchCharacters === 0 ? \"\" : data.read_shift(cchCharacters, 'dbcs');\n}\nfunction write_XLWideString(data, o) {\n\tif(o == null) o = new_buf(4+2*data.length);\n\to.write_shift(4, data.length);\n\tif(data.length > 0) o.write_shift(0, data, 'dbcs');\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.114 */\nvar parse_RelID = parse_XLNullableWideString;\nvar write_RelID = write_XLNullableWideString;\n\n\n/* [MS-XLSB] 2.5.122 */\n/* [MS-XLS] 2.5.217 */\nfunction parse_RkNumber(data) {\n\tvar b = data.slice(data.l, data.l+4);\n\tvar fX100 = b[0] & 1, fInt = b[0] & 2;\n\tdata.l+=4;\n\tb[0] &= 0xFC; // b[0] &= ~3;\n\tvar RK = fInt === 0 ? __double([0,0,0,0,b[0],b[1],b[2],b[3]],0) : __readInt32LE(b,0)>>2;\n\treturn fX100 ? RK/100 : RK;\n}\n\n/* [MS-XLSB] 2.5.153 */\nfunction parse_UncheckedRfX(data) {\n\tvar cell = {s: {}, e: {}};\n\tcell.s.r = data.read_shift(4);\n\tcell.e.r = data.read_shift(4);\n\tcell.s.c = data.read_shift(4);\n\tcell.e.c = data.read_shift(4);\n\treturn cell;\n}\n\nfunction write_UncheckedRfX(r, o) {\n\tif(!o) o = new_buf(16);\n\to.write_shift(4, r.s.r);\n\to.write_shift(4, r.e.r);\n\to.write_shift(4, r.s.c);\n\to.write_shift(4, r.e.c);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.5.171 */\n/* [MS-XLS] 2.5.342 */\nfunction parse_Xnum(data, length) { return data.read_shift(8, 'f'); }\nfunction write_Xnum(data, o) { return (o || new_buf(8)).write_shift(8, 'f', data); }\n\n/* [MS-XLSB] 2.5.198.2 */\nvar BErr = {\n\t0x00: \"#NULL!\",\n\t0x07: \"#DIV/0!\",\n\t0x0F: \"#VALUE!\",\n\t0x17: \"#REF!\",\n\t0x1D: \"#NAME?\",\n\t0x24: \"#NUM!\",\n\t0x2A: \"#N/A\",\n\t0x2B: \"#GETTING_DATA\",\n\t0xFF: \"#WTF?\"\n};\nvar RBErr = evert_num(BErr);\n\n/* [MS-XLSB] 2.4.321 BrtColor */\nfunction parse_BrtColor(data, length) {\n\tvar out = {};\n\tvar d = data.read_shift(1);\n\tout.fValidRGB = d & 1;\n\tout.xColorType = d >>> 1;\n\tout.index = data.read_shift(1);\n\tout.nTintAndShade = data.read_shift(2, 'i');\n\tout.bRed = data.read_shift(1);\n\tout.bGreen = data.read_shift(1);\n\tout.bBlue = data.read_shift(1);\n\tout.bAlpha = data.read_shift(1);\n}\n\n/* [MS-XLSB] 2.5.52 */\nfunction parse_FontFlags(data, length) {\n\tvar d = data.read_shift(1);\n\tdata.l++;\n\tvar out = {\n\t\tfItalic: d & 0x2,\n\t\tfStrikeout: d & 0x8,\n\t\tfOutline: d & 0x10,\n\t\tfShadow: d & 0x20,\n\t\tfCondense: d & 0x40,\n\t\tfExtend: d & 0x80\n\t};\n\treturn out;\n}\n/* [MS-OLEPS] 2.2 PropertyType */\n{\n\tvar VT_EMPTY = 0x0000;\n\tvar VT_NULL = 0x0001;\n\tvar VT_I2 = 0x0002;\n\tvar VT_I4 = 0x0003;\n\tvar VT_R4 = 0x0004;\n\tvar VT_R8 = 0x0005;\n\tvar VT_CY = 0x0006;\n\tvar VT_DATE = 0x0007;\n\tvar VT_BSTR = 0x0008;\n\tvar VT_ERROR = 0x000A;\n\tvar VT_BOOL = 0x000B;\n\tvar VT_VARIANT = 0x000C;\n\tvar VT_DECIMAL = 0x000E;\n\tvar VT_I1 = 0x0010;\n\tvar VT_UI1 = 0x0011;\n\tvar VT_UI2 = 0x0012;\n\tvar VT_UI4 = 0x0013;\n\tvar VT_I8 = 0x0014;\n\tvar VT_UI8 = 0x0015;\n\tvar VT_INT = 0x0016;\n\tvar VT_UINT = 0x0017;\n\tvar VT_LPSTR = 0x001E;\n\tvar VT_LPWSTR = 0x001F;\n\tvar VT_FILETIME = 0x0040;\n\tvar VT_BLOB = 0x0041;\n\tvar VT_STREAM = 0x0042;\n\tvar VT_STORAGE = 0x0043;\n\tvar VT_STREAMED_Object = 0x0044;\n\tvar VT_STORED_Object = 0x0045;\n\tvar VT_BLOB_Object = 0x0046;\n\tvar VT_CF = 0x0047;\n\tvar VT_CLSID = 0x0048;\n\tvar VT_VERSIONED_STREAM = 0x0049;\n\tvar VT_VECTOR = 0x1000;\n\tvar VT_ARRAY = 0x2000;\n\n\tvar VT_STRING = 0x0050; // 2.3.3.1.11 VtString\n\tvar VT_USTR = 0x0051; // 2.3.3.1.12 VtUnalignedString\n\tvar VT_CUSTOM = [VT_STRING, VT_USTR];\n}\n\n/* [MS-OSHARED] 2.3.3.2.2.1 Document Summary Information PIDDSI */\nvar DocSummaryPIDDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Category', t: VT_STRING },\n\t0x03: { n: 'PresentationFormat', t: VT_STRING },\n\t0x04: { n: 'ByteCount', t: VT_I4 },\n\t0x05: { n: 'LineCount', t: VT_I4 },\n\t0x06: { n: 'ParagraphCount', t: VT_I4 },\n\t0x07: { n: 'SlideCount', t: VT_I4 },\n\t0x08: { n: 'NoteCount', t: VT_I4 },\n\t0x09: { n: 'HiddenCount', t: VT_I4 },\n\t0x0a: { n: 'MultimediaClipCount', t: VT_I4 },\n\t0x0b: { n: 'Scale', t: VT_BOOL },\n\t0x0c: { n: 'HeadingPair', t: VT_VECTOR | VT_VARIANT },\n\t0x0d: { n: 'DocParts', t: VT_VECTOR | VT_LPSTR },\n\t0x0e: { n: 'Manager', t: VT_STRING },\n\t0x0f: { n: 'Company', t: VT_STRING },\n\t0x10: { n: 'LinksDirty', t: VT_BOOL },\n\t0x11: { n: 'CharacterCount', t: VT_I4 },\n\t0x13: { n: 'SharedDoc', t: VT_BOOL },\n\t0x16: { n: 'HLinksChanged', t: VT_BOOL },\n\t0x17: { n: 'AppVersion', t: VT_I4, p: 'version' },\n\t0x1A: { n: 'ContentType', t: VT_STRING },\n\t0x1B: { n: 'ContentStatus', t: VT_STRING },\n\t0x1C: { n: 'Language', t: VT_STRING },\n\t0x1D: { n: 'Version', t: VT_STRING },\n\t0xFF: {}\n};\n\n/* [MS-OSHARED] 2.3.3.2.1.1 Summary Information Property Set PIDSI */\nvar SummaryPIDSI = {\n\t0x01: { n: 'CodePage', t: VT_I2 },\n\t0x02: { n: 'Title', t: VT_STRING },\n\t0x03: { n: 'Subject', t: VT_STRING },\n\t0x04: { n: 'Author', t: VT_STRING },\n\t0x05: { n: 'Keywords', t: VT_STRING },\n\t0x06: { n: 'Comments', t: VT_STRING },\n\t0x07: { n: 'Template', t: VT_STRING },\n\t0x08: { n: 'LastAuthor', t: VT_STRING },\n\t0x09: { n: 'RevNumber', t: VT_STRING },\n\t0x0A: { n: 'EditTime', t: VT_FILETIME },\n\t0x0B: { n: 'LastPrinted', t: VT_FILETIME },\n\t0x0C: { n: 'CreatedDate', t: VT_FILETIME },\n\t0x0D: { n: 'ModifiedDate', t: VT_FILETIME },\n\t0x0E: { n: 'PageCount', t: VT_I4 },\n\t0x0F: { n: 'WordCount', t: VT_I4 },\n\t0x10: { n: 'CharCount', t: VT_I4 },\n\t0x11: { n: 'Thumbnail', t: VT_CF },\n\t0x12: { n: 'ApplicationName', t: VT_LPSTR },\n\t0x13: { n: 'DocumentSecurity', t: VT_I4 },\n\t0xFF: {}\n};\n\n/* [MS-OLEPS] 2.18 */\nvar SpecialProperties = {\n\t0x80000000: { n: 'Locale', t: VT_UI4 },\n\t0x80000003: { n: 'Behavior', t: VT_UI4 },\n\t0x72627262: {}\n};\n\n(function() {\n\tfor(var y in SpecialProperties) if(SpecialProperties.hasOwnProperty(y))\n\tDocSummaryPIDDSI[y] = SummaryPIDSI[y] = SpecialProperties[y];\n})();\n\n/* [MS-XLS] 2.4.63 Country/Region codes */\nvar CountryEnum = {\n\t0x0001: \"US\", // United States\n\t0x0002: \"CA\", // Canada\n\t0x0003: \"\", // Latin America (except Brazil)\n\t0x0007: \"RU\", // Russia\n\t0x0014: \"EG\", // Egypt\n\t0x001E: \"GR\", // Greece\n\t0x001F: \"NL\", // Netherlands\n\t0x0020: \"BE\", // Belgium\n\t0x0021: \"FR\", // France\n\t0x0022: \"ES\", // Spain\n\t0x0024: \"HU\", // Hungary\n\t0x0027: \"IT\", // Italy\n\t0x0029: \"CH\", // Switzerland\n\t0x002B: \"AT\", // Austria\n\t0x002C: \"GB\", // United Kingdom\n\t0x002D: \"DK\", // Denmark\n\t0x002E: \"SE\", // Sweden\n\t0x002F: \"NO\", // Norway\n\t0x0030: \"PL\", // Poland\n\t0x0031: \"DE\", // Germany\n\t0x0034: \"MX\", // Mexico\n\t0x0037: \"BR\", // Brazil\n\t0x003d: \"AU\", // Australia\n\t0x0040: \"NZ\", // New Zealand\n\t0x0042: \"TH\", // Thailand\n\t0x0051: \"JP\", // Japan\n\t0x0052: \"KR\", // Korea\n\t0x0054: \"VN\", // Viet Nam\n\t0x0056: \"CN\", // China\n\t0x005A: \"TR\", // Turkey\n\t0x0069: \"JS\", // Ramastan\n\t0x00D5: \"DZ\", // Algeria\n\t0x00D8: \"MA\", // Morocco\n\t0x00DA: \"LY\", // Libya\n\t0x015F: \"PT\", // Portugal\n\t0x0162: \"IS\", // Iceland\n\t0x0166: \"FI\", // Finland\n\t0x01A4: \"CZ\", // Czech Republic\n\t0x0376: \"TW\", // Taiwan\n\t0x03C1: \"LB\", // Lebanon\n\t0x03C2: \"JO\", // Jordan\n\t0x03C3: \"SY\", // Syria\n\t0x03C4: \"IQ\", // Iraq\n\t0x03C5: \"KW\", // Kuwait\n\t0x03C6: \"SA\", // Saudi Arabia\n\t0x03CB: \"AE\", // United Arab Emirates\n\t0x03CC: \"IL\", // Israel\n\t0x03CE: \"QA\", // Qatar\n\t0x03D5: \"IR\", // Iran\n\t0xFFFF: \"US\" // United States\n};\n\n/* [MS-XLS] 2.5.127 */\nvar XLSFillPattern = [\n\tnull,\n\t'solid',\n\t'mediumGray',\n\t'darkGray',\n\t'lightGray',\n\t'darkHorizontal',\n\t'darkVertical',\n\t'darkDown',\n\t'darkUp',\n\t'darkGrid',\n\t'darkTrellis',\n\t'lightHorizontal',\n\t'lightVertical',\n\t'lightDown',\n\t'lightUp',\n\t'lightGrid',\n\t'lightTrellis',\n\t'gray125',\n\t'gray0625'\n];\n\nfunction rgbify(arr) { return arr.map(function(x) { return [(x>>16)&255,(x>>8)&255,x&255]; }); }\n\n/* [MS-XLS] 2.5.161 */\nvar XLSIcv = rgbify([\n\t/* Color Constants */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t/* Defaults */\n\t0x000000,\n\t0xFFFFFF,\n\t0xFF0000,\n\t0x00FF00,\n\t0x0000FF,\n\t0xFFFF00,\n\t0xFF00FF,\n\t0x00FFFF,\n\n\t0x800000,\n\t0x008000,\n\t0x000080,\n\t0x808000,\n\t0x800080,\n\t0x008080,\n\t0xC0C0C0,\n\t0x808080,\n\t0x9999FF,\n\t0x993366,\n\t0xFFFFCC,\n\t0xCCFFFF,\n\t0x660066,\n\t0xFF8080,\n\t0x0066CC,\n\t0xCCCCFF,\n\n\t0x000080,\n\t0xFF00FF,\n\t0xFFFF00,\n\t0x00FFFF,\n\t0x800080,\n\t0x800000,\n\t0x008080,\n\t0x0000FF,\n\t0x00CCFF,\n\t0xCCFFFF,\n\t0xCCFFCC,\n\t0xFFFF99,\n\t0x99CCFF,\n\t0xFF99CC,\n\t0xCC99FF,\n\t0xFFCC99,\n\n\t0x3366FF,\n\t0x33CCCC,\n\t0x99CC00,\n\t0xFFCC00,\n\t0xFF9900,\n\t0xFF6600,\n\t0x666699,\n\t0x969696,\n\t0x003366,\n\t0x339966,\n\t0x003300,\n\t0x333300,\n\t0x993300,\n\t0x993366,\n\t0x333399,\n\t0x333333,\n\n\t/* Sheet */\n\t0xFFFFFF,\n\t0x000000\n]);\n\n/* Parts enumerated in OPC spec, MS-XLSB and MS-XLSX */\n/* 12.3 Part Summary <SpreadsheetML> */\n/* 14.2 Part Summary <DrawingML> */\n/* [MS-XLSX] 2.1 Part Enumerations */\n/* [MS-XLSB] 2.1.7 Part Enumeration */\nvar ct2type = {\n\t/* Workbook */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\": \"workbooks\",\n\n\t/* Worksheet */\n\t\"application/vnd.ms-excel.binIndexWs\": \"TODO\", /* Binary Index */\n\n\t/* Chartsheet */\n\t\"application/vnd.ms-excel.chartsheet\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.chartsheet+xml\": \"TODO\",\n\n\t/* Dialogsheet */\n\t\"application/vnd.ms-excel.dialogsheet\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.dialogsheet+xml\": \"TODO\",\n\n\t/* Macrosheet */\n\t\"application/vnd.ms-excel.macrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.macrosheet+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.intlmacrosheet\": \"TODO\",\n\t\"application/vnd.ms-excel.binIndexMs\": \"TODO\", /* Binary Index */\n\n\t/* File Properties */\n\t\"application/vnd.openxmlformats-package.core-properties+xml\": \"coreprops\",\n\t\"application/vnd.openxmlformats-officedocument.custom-properties+xml\": \"custprops\",\n\t\"application/vnd.openxmlformats-officedocument.extended-properties+xml\": \"extprops\",\n\n\t/* Custom Data Properties */\n\t\"application/vnd.openxmlformats-officedocument.customXmlProperties+xml\": \"TODO\",\n\n\t/* Comments */\n\t\"application/vnd.ms-excel.comments\": \"comments\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.comments+xml\": \"comments\",\n\n\t/* PivotTable */\n\t\"application/vnd.ms-excel.pivotTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotTable+xml\": \"TODO\",\n\n\t/* Calculation Chain */\n\t\"application/vnd.ms-excel.calcChain\": \"calcchains\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.calcChain+xml\": \"calcchains\",\n\n\t/* Printer Settings */\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.printerSettings\": \"TODO\",\n\n\t/* ActiveX */\n\t\"application/vnd.ms-office.activeX\": \"TODO\",\n\t\"application/vnd.ms-office.activeX+xml\": \"TODO\",\n\n\t/* Custom Toolbars */\n\t\"application/vnd.ms-excel.attachedToolbars\": \"TODO\",\n\n\t/* External Data Connections */\n\t\"application/vnd.ms-excel.connections\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.connections+xml\": \"TODO\",\n\n\t/* External Links */\n\t\"application/vnd.ms-excel.externalLink\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.externalLink+xml\": \"TODO\",\n\n\t/* Metadata */\n\t\"application/vnd.ms-excel.sheetMetadata\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.sheetMetadata+xml\": \"TODO\",\n\n\t/* PivotCache */\n\t\"application/vnd.ms-excel.pivotCacheDefinition\": \"TODO\",\n\t\"application/vnd.ms-excel.pivotCacheRecords\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheDefinition+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.pivotCacheRecords+xml\": \"TODO\",\n\n\t/* Query Table */\n\t\"application/vnd.ms-excel.queryTable\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.queryTable+xml\": \"TODO\",\n\n\t/* Shared Workbook */\n\t\"application/vnd.ms-excel.userNames\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionHeaders\": \"TODO\",\n\t\"application/vnd.ms-excel.revisionLog\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionHeaders+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.revisionLog+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.userNames+xml\": \"TODO\",\n\n\t/* Single Cell Table */\n\t\"application/vnd.ms-excel.tableSingleCells\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.tableSingleCells+xml\": \"TODO\",\n\n\t/* Slicer */\n\t\"application/vnd.ms-excel.slicer\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache\": \"TODO\",\n\t\"application/vnd.ms-excel.slicer+xml\": \"TODO\",\n\t\"application/vnd.ms-excel.slicerCache+xml\": \"TODO\",\n\n\t/* Sort Map */\n\t\"application/vnd.ms-excel.wsSortMap\": \"TODO\",\n\n\t/* Table */\n\t\"application/vnd.ms-excel.table\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml\": \"TODO\",\n\n\t/* Themes */\n\t\"application/vnd.openxmlformats-officedocument.theme+xml\": \"themes\",\n\n\t/* Timeline */\n\t\"application/vnd.ms-excel.Timeline+xml\": \"TODO\", /* verify */\n\t\"application/vnd.ms-excel.TimelineCache+xml\": \"TODO\", /* verify */\n\n\t/* VBA */\n\t\"application/vnd.ms-office.vbaProject\": \"vba\",\n\t\"application/vnd.ms-office.vbaProjectSignature\": \"vba\",\n\n\t/* Volatile Dependencies */\n\t\"application/vnd.ms-office.volatileDependencies\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.spreadsheetml.volatileDependencies+xml\": \"TODO\",\n\n\t/* Control Properties */\n\t\"application/vnd.ms-excel.controlproperties+xml\": \"TODO\",\n\n\t/* Data Model */\n\t\"application/vnd.openxmlformats-officedocument.model+data\": \"TODO\",\n\n\t/* Survey */\n\t\"application/vnd.ms-excel.Survey+xml\": \"TODO\",\n\n\t/* Drawing */\n\t\"application/vnd.openxmlformats-officedocument.drawing+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chart+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.chartshapes+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramColors+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramData+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramLayout+xml\": \"TODO\",\n\t\"application/vnd.openxmlformats-officedocument.drawingml.diagramStyle+xml\": \"TODO\",\n\n\t/* VML */\n\t\"application/vnd.openxmlformats-officedocument.vmlDrawing\": \"TODO\",\n\n\t\"application/vnd.openxmlformats-package.relationships+xml\": \"rels\",\n\t\"application/vnd.openxmlformats-officedocument.oleObject\": \"TODO\",\n\n\t\"sheet\": \"js\"\n};\n\nvar CT_LIST = (function(){\n\tvar o = {\n\t\tworkbooks: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml\",\n\t\t\txlsm: \"application/vnd.ms-excel.sheet.macroEnabled.main+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sheet.binary.macroEnabled.main\",\n\t\t\txltx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.template.main+xml\"\n\t\t},\n\t\tstrs: { /* Shared Strings */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.sharedStrings\"\n\t\t},\n\t\tsheets: {\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.worksheet\"\n\t\t},\n\t\tstyles: {/* Styles */\n\t\t\txlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml\",\n\t\t\txlsb: \"application/vnd.ms-excel.styles\"\n\t\t}\n\t};\n\tkeys(o).forEach(function(k) { if(!o[k].xlsm) o[k].xlsm = o[k].xlsx; });\n\tkeys(o).forEach(function(k){ keys(o[k]).forEach(function(v) { ct2type[o[k][v]] = k; }); });\n\treturn o;\n})();\n\nvar type2ct = evert_arr(ct2type);\n\nXMLNS.CT = 'http://schemas.openxmlformats.org/package/2006/content-types';\n\nfunction parse_ct(data, opts) {\n\tvar ctext = {};\n\tif(!data || !data.match) return data;\n\tvar ct = { workbooks: [], sheets: [], calcchains: [], themes: [], styles: [],\n\t\tcoreprops: [], extprops: [], custprops: [], strs:[], comments: [], vba: [],\n\t\tTODO:[], rels:[], xmlns: \"\" };\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0].replace(nsregex,\"<\")) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Types': ct.xmlns = y['xmlns' + (y[0].match(/<(\\w+):/)||[\"\",\"\"])[1] ]; break;\n\t\t\tcase '<Default': ctext[y.Extension] = y.ContentType; break;\n\t\t\tcase '<Override':\n\t\t\t\tif(ct[ct2type[y.ContentType]] !== undefined) ct[ct2type[y.ContentType]].push(y.PartName);\n\t\t\t\telse if(opts.WTF) console.error(y);\n\t\t\t\tbreak;\n\t\t}\n\t});\n\tif(ct.xmlns !== XMLNS.CT) throw new Error(\"Unknown Namespace: \" + ct.xmlns);\n\tct.calcchain = ct.calcchains.length > 0 ? ct.calcchains[0] : \"\";\n\tct.sst = ct.strs.length > 0 ? ct.strs[0] : \"\";\n\tct.style = ct.styles.length > 0 ? ct.styles[0] : \"\";\n\tct.defaults = ctext;\n\tdelete ct.calcchains;\n\treturn ct;\n}\n\nvar CTYPE_XML_ROOT = writextag('Types', null, {\n\t'xmlns': XMLNS.CT,\n\t'xmlns:xsd': XMLNS.xsd,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nvar CTYPE_DEFAULTS = [\n\t['xml', 'application/xml'],\n\t['bin', 'application/vnd.ms-excel.sheet.binary.macroEnabled.main'],\n\t['rels', type2ct.rels[0]]\n].map(function(x) {\n\treturn writextag('Default', null, {'Extension':x[0], 'ContentType': x[1]});\n});\n\nfunction write_ct(ct, opts) {\n\tvar o = [], v;\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (CTYPE_XML_ROOT);\n\to = o.concat(CTYPE_DEFAULTS);\n\tvar f1 = function(w) {\n\t\tif(ct[w] && ct[w].length > 0) {\n\t\t\tv = ct[w][0];\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t}\n\t};\n\tvar f2 = function(w) {\n\t\tct[w].forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': CT_LIST[w][opts.bookType || 'xlsx']\n\t\t\t}));\n\t\t});\n\t};\n\tvar f3 = function(t) {\n\t\t(ct[t]||[]).forEach(function(v) {\n\t\t\to[o.length] = (writextag('Override', null, {\n\t\t\t\t'PartName': (v[0] == '/' ? \"\":\"/\") + v,\n\t\t\t\t'ContentType': type2ct[t][0]\n\t\t\t}));\n\t\t});\n\t};\n\tf1('workbooks');\n\tf2('sheets');\n\tf3('themes');\n\t['strs', 'styles'].forEach(f1);\n\t['coreprops', 'extprops', 'custprops'].forEach(f3);\n\tif(o.length>2){ o[o.length] = ('</Types>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 9.3.2 OPC Relationships Markup */\nvar RELS = {\n\tWB: \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument\",\n\tSHEET: \"http://sheetjs.openxmlformats.org/officeDocument/2006/relationships/officeDocument\"\n};\n\nfunction parse_rels(data, currentFilePath) {\n\tif (!data) return data;\n\tif (currentFilePath.charAt(0) !== '/') {\n\t\tcurrentFilePath = '/'+currentFilePath;\n\t}\n\tvar rels = {};\n\tvar hash = {};\n\tvar resolveRelativePathIntoAbsolute = function (to) {\n\t\tvar toksFrom = currentFilePath.split('/');\n\t\ttoksFrom.pop(); // folder path\n\t\tvar toksTo = to.split('/');\n\t\tvar reversed = [];\n\t\twhile (toksTo.length !== 0) {\n\t\t\tvar tokTo = toksTo.shift();\n\t\t\tif (tokTo === '..') {\n\t\t\t\ttoksFrom.pop();\n\t\t\t} else if (tokTo !== '.') {\n\t\t\t\ttoksFrom.push(tokTo);\n\t\t\t}\n\t\t}\n\t\treturn toksFrom.join('/');\n\t};\n\n\tdata.match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\t/* 9.3.2.2 OPC_Relationships */\n\t\tif (y[0] === '<Relationship') {\n\t\t\tvar rel = {}; rel.Type = y.Type; rel.Target = y.Target; rel.Id = y.Id; rel.TargetMode = y.TargetMode;\n\t\t\tvar canonictarget = y.TargetMode === 'External' ? y.Target : resolveRelativePathIntoAbsolute(y.Target);\n\t\t\trels[canonictarget] = rel;\n\t\t\thash[y.Id] = rel;\n\t\t}\n\t});\n\trels[\"!id\"] = hash;\n\treturn rels;\n}\n\nXMLNS.RELS = 'http://schemas.openxmlformats.org/package/2006/relationships';\n\nvar RELS_ROOT = writextag('Relationships', null, {\n\t//'xmlns:ns0': XMLNS.RELS,\n\t'xmlns': XMLNS.RELS\n});\n\n/* TODO */\nfunction write_rels(rels) {\n\tvar o = [];\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (RELS_ROOT);\n\tkeys(rels['!id']).forEach(function(rid) { var rel = rels['!id'][rid];\n\t\to[o.length] = (writextag('Relationship', null, rel));\n\t});\n\tif(o.length>2){ o[o.length] = ('</Relationships>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* ECMA-376 Part II 11.1 Core Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar CORE_PROPS = [\n\t[\"cp:category\", \"Category\"],\n\t[\"cp:contentStatus\", \"ContentStatus\"],\n\t[\"cp:keywords\", \"Keywords\"],\n\t[\"cp:lastModifiedBy\", \"LastAuthor\"],\n\t[\"cp:lastPrinted\", \"LastPrinted\"],\n\t[\"cp:revision\", \"RevNumber\"],\n\t[\"cp:version\", \"Version\"],\n\t[\"dc:creator\", \"Author\"],\n\t[\"dc:description\", \"Comments\"],\n\t[\"dc:identifier\", \"Identifier\"],\n\t[\"dc:language\", \"Language\"],\n\t[\"dc:subject\", \"Subject\"],\n\t[\"dc:title\", \"Title\"],\n\t[\"dcterms:created\", \"CreatedDate\", 'date'],\n\t[\"dcterms:modified\", \"ModifiedDate\", 'date']\n];\n\nXMLNS.CORE_PROPS = \"http://schemas.openxmlformats.org/package/2006/metadata/core-properties\";\nRELS.CORE_PROPS = 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties';\n\nvar CORE_PROPS_REGEX = (function() {\n\tvar r = new Array(CORE_PROPS.length);\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i];\n\t\tvar g = \"(?:\"+ f[0].substr(0,f[0].indexOf(\":\")) +\":)\"+ f[0].substr(f[0].indexOf(\":\")+1);\n\t\tr[i] = new RegExp(\"<\" + g + \"[^>]*>(.*)<\\/\" + g + \">\");\n\t}\n\treturn r;\n})();\n\nfunction parse_core_props(data) {\n\tvar p = {};\n\n\tfor(var i = 0; i < CORE_PROPS.length; ++i) {\n\t\tvar f = CORE_PROPS[i], cur = data.match(CORE_PROPS_REGEX[i]);\n\t\tif(cur != null && cur.length > 0) p[f[1]] = cur[1];\n\t\tif(f[2] === 'date' && p[f[1]]) p[f[1]] = new Date(p[f[1]]);\n\t}\n\n\treturn p;\n}\n\nvar CORE_PROPS_XML_ROOT = writextag('cp:coreProperties', null, {\n\t//'xmlns': XMLNS.CORE_PROPS,\n\t'xmlns:cp': XMLNS.CORE_PROPS,\n\t'xmlns:dc': XMLNS.dc,\n\t'xmlns:dcterms': XMLNS.dcterms,\n\t'xmlns:dcmitype': XMLNS.dcmitype,\n\t'xmlns:xsi': XMLNS.xsi\n});\n\nfunction cp_doit(f, g, h, o, p) {\n\tif(p[f] != null || g == null || g === \"\") return;\n\tp[f] = g;\n\to[o.length] = (h ? writextag(f,g,h) : writetag(f,g));\n}\n\nfunction write_core_props(cp, opts) {\n\tvar o = [XML_HEADER, CORE_PROPS_XML_ROOT], p = {};\n\tif(!cp) return o.join(\"\");\n\n\n\tif(cp.CreatedDate != null) cp_doit(\"dcterms:created\", typeof cp.CreatedDate === \"string\" ? cp.CreatedDate : write_w3cdtf(cp.CreatedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\tif(cp.ModifiedDate != null) cp_doit(\"dcterms:modified\", typeof cp.ModifiedDate === \"string\" ? cp.ModifiedDate : write_w3cdtf(cp.ModifiedDate, opts.WTF), {\"xsi:type\":\"dcterms:W3CDTF\"}, o, p);\n\n\tfor(var i = 0; i != CORE_PROPS.length; ++i) { var f = CORE_PROPS[i]; cp_doit(f[0], cp[f[1]], null, o, p); }\n\tif(o.length>2){ o[o.length] = ('</cp:coreProperties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.3 Extended File Properties Part */\n/* [MS-OSHARED] 2.3.3.2.[1-2].1 (PIDSI/PIDDSI) */\nvar EXT_PROPS = [\n\t[\"Application\", \"Application\", \"string\"],\n\t[\"AppVersion\", \"AppVersion\", \"string\"],\n\t[\"Company\", \"Company\", \"string\"],\n\t[\"DocSecurity\", \"DocSecurity\", \"string\"],\n\t[\"Manager\", \"Manager\", \"string\"],\n\t[\"HyperlinksChanged\", \"HyperlinksChanged\", \"bool\"],\n\t[\"SharedDoc\", \"SharedDoc\", \"bool\"],\n\t[\"LinksUpToDate\", \"LinksUpToDate\", \"bool\"],\n\t[\"ScaleCrop\", \"ScaleCrop\", \"bool\"],\n\t[\"HeadingPairs\", \"HeadingPairs\", \"raw\"],\n\t[\"TitlesOfParts\", \"TitlesOfParts\", \"raw\"]\n];\n\nXMLNS.EXT_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/extended-properties\";\nRELS.EXT_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties';\n\nfunction parse_ext_props(data, p) {\n\tvar q = {}; if(!p) p = {};\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tswitch(f[2]) {\n\t\t\tcase \"string\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1]; break;\n\t\t\tcase \"bool\": p[f[1]] = (data.match(matchtag(f[0]))||[])[1] === \"true\"; break;\n\t\t\tcase \"raw\":\n\t\t\t\tvar cur = data.match(new RegExp(\"<\" + f[0] + \"[^>]*>(.*)<\\/\" + f[0] + \">\"));\n\t\t\t\tif(cur && cur.length > 0) q[f[1]] = cur[1];\n\t\t\t\tbreak;\n\t\t}\n\t});\n\n\tif(q.HeadingPairs && q.TitlesOfParts) {\n\t\tvar v = parseVector(q.HeadingPairs);\n\t\tvar j = 0, widx = 0;\n\t\tfor(var i = 0; i !== v.length; ++i) {\n\t\t\tswitch(v[i].v) {\n\t\t\t\tcase \"Worksheets\": widx = j; p.Worksheets = +(v[++i].v); break;\n\t\t\t\tcase \"Named Ranges\": ++i; break; // TODO: Handle Named Ranges\n\t\t\t}\n\t\t}\n\t\tvar parts = parseVector(q.TitlesOfParts).map(function(x) { return utf8read(x.v); });\n\t\tp.SheetNames = parts.slice(widx, widx + p.Worksheets);\n\t}\n\treturn p;\n}\n\nvar EXT_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.EXT_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_ext_props(cp, opts) {\n\tvar o = [], p = {}, W = writextag;\n\tif(!cp) cp = {};\n\tcp.Application = \"SheetJS\";\n\to[o.length] = (XML_HEADER);\n\to[o.length] = (EXT_PROPS_XML_ROOT);\n\n\tEXT_PROPS.forEach(function(f) {\n\t\tif(cp[f[1]] === undefined) return;\n\t\tvar v;\n\t\tswitch(f[2]) {\n\t\t\tcase 'string': v = cp[f[1]]; break;\n\t\t\tcase 'bool': v = cp[f[1]] ? 'true' : 'false'; break;\n\t\t}\n\t\tif(v !== undefined) o[o.length] = (W(f[0], v));\n\t});\n\n\t/* TODO: HeadingPairs, TitlesOfParts */\n\to[o.length] = (W('HeadingPairs', W('vt:vector', W('vt:variant', '<vt:lpstr>Worksheets</vt:lpstr>')+W('vt:variant', W('vt:i4', String(cp.Worksheets))), {size:2, baseType:\"variant\"})));\n\to[o.length] = (W('TitlesOfParts', W('vt:vector', cp.SheetNames.map(function(s) { return \"<vt:lpstr>\" + s + \"</vt:lpstr>\"; }).join(\"\"), {size: cp.Worksheets, baseType:\"lpstr\"})));\n\tif(o.length>2){ o[o.length] = ('</Properties>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* 15.2.12.2 Custom File Properties Part */\nXMLNS.CUST_PROPS = \"http://schemas.openxmlformats.org/officeDocument/2006/custom-properties\";\nRELS.CUST_PROPS = 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/custom-properties';\n\nvar custregex = /<[^>]+>[^<]*/g;\nfunction parse_cust_props(data, opts) {\n\tvar p = {}, name;\n\tvar m = data.match(custregex);\n\tif(m) for(var i = 0; i != m.length; ++i) {\n\t\tvar x = m[i], y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\tcase '<Properties':\n\t\t\t\tif(y.xmlns !== XMLNS.CUST_PROPS) throw \"unrecognized xmlns \" + y.xmlns;\n\t\t\t\tif(y.xmlnsvt && y.xmlnsvt !== XMLNS.vt) throw \"unrecognized vt \" + y.xmlnsvt;\n\t\t\t\tbreak;\n\t\t\tcase '<property': name = y.name; break;\n\t\t\tcase '</property>': name = null; break;\n\t\t\tdefault: if (x.indexOf('<vt:') === 0) {\n\t\t\t\tvar toks = x.split('>');\n\t\t\t\tvar type = toks[0].substring(4), text = toks[1];\n\t\t\t\t/* 22.4.2.32 (CT_Variant). Omit the binary types from 22.4 (Variant Types) */\n\t\t\t\tswitch(type) {\n\t\t\t\t\tcase 'lpstr': case 'lpwstr': case 'bstr': case 'lpwstr':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'bool':\n\t\t\t\t\t\tp[name] = parsexmlbool(text, '<vt:bool>');\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'i1': case 'i2': case 'i4': case 'i8': case 'int': case 'uint':\n\t\t\t\t\t\tp[name] = parseInt(text, 10);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'r4': case 'r8': case 'decimal':\n\t\t\t\t\t\tp[name] = parseFloat(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'filetime': case 'date':\n\t\t\t\t\t\tp[name] = new Date(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tcase 'cy': case 'error':\n\t\t\t\t\t\tp[name] = unescapexml(text);\n\t\t\t\t\t\tbreak;\n\t\t\t\t\tdefault:\n\t\t\t\t\t\tif(typeof console !== 'undefined') console.warn('Unexpected', x, type, toks);\n\t\t\t\t}\n\t\t\t} else if(x.substr(0,2) === \"</\") {\n\t\t\t} else if(opts.WTF) throw new Error(x);\n\t\t}\n\t}\n\treturn p;\n}\n\nvar CUST_PROPS_XML_ROOT = writextag('Properties', null, {\n\t'xmlns': XMLNS.CUST_PROPS,\n\t'xmlns:vt': XMLNS.vt\n});\n\nfunction write_cust_props(cp, opts) {\n\tvar o = [XML_HEADER, CUST_PROPS_XML_ROOT];\n\tif(!cp) return o.join(\"\");\n\tvar pid = 1;\n\tkeys(cp).forEach(function custprop(k) { ++pid;\n\t\to[o.length] = (writextag('property', write_vt(cp[k]), {\n\t\t\t'fmtid': '{D5CDD505-2E9C-101B-9397-08002B2CF9AE}',\n\t\t\t'pid': pid,\n\t\t\t'name': k\n\t\t}));\n\t});\n\tif(o.length>2){ o[o.length] = '</Properties>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\nfunction xlml_set_prop(Props, tag, val) {\n\t/* TODO: Normalize the properties */\n\tswitch(tag) {\n\t\tcase 'Description': tag = 'Comments'; break;\n\t}\n\tProps[tag] = val;\n}\n\n/* [MS-DTYP] 2.3.3 FILETIME */\n/* [MS-OLEDS] 2.1.3 FILETIME (Packet Version) */\n/* [MS-OLEPS] 2.8 FILETIME (Packet Version) */\nfunction parse_FILETIME(blob) {\n\tvar dwLowDateTime = blob.read_shift(4), dwHighDateTime = blob.read_shift(4);\n\treturn new Date(((dwHighDateTime/1e7*Math.pow(2,32) + dwLowDateTime/1e7) - 11644473600)*1000).toISOString().replace(/\\.000/,\"\");\n}\n\n/* [MS-OSHARED] 2.3.3.1.4 Lpstr */\nfunction parse_lpstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n/* [MS-OSHARED] 2.3.3.1.6 Lpwstr */\nfunction parse_lpwstr(blob, type, pad) {\n\tvar str = blob.read_shift(0, 'lpwstr');\n\tif(pad) blob.l += (4 - ((str.length+1) & 3)) & 3;\n\treturn str;\n}\n\n\n/* [MS-OSHARED] 2.3.3.1.11 VtString */\n/* [MS-OSHARED] 2.3.3.1.12 VtUnalignedString */\nfunction parse_VtStringBase(blob, stringType, pad) {\n\tif(stringType === 0x1F /*VT_LPWSTR*/) return parse_lpwstr(blob);\n\treturn parse_lpstr(blob, stringType, pad);\n}\n\nfunction parse_VtString(blob, t, pad) { return parse_VtStringBase(blob, t, pad === false ? 0: 4); }\nfunction parse_VtUnalignedString(blob, t) { if(!t) throw new Error(\"dafuq?\"); return parse_VtStringBase(blob, t, 0); }\n\n/* [MS-OSHARED] 2.3.3.1.9 VtVecUnalignedLpstrValue */\nfunction parse_VtVecUnalignedLpstrValue(blob) {\n\tvar length = blob.read_shift(4);\n\tvar ret = [];\n\tfor(var i = 0; i != length; ++i) ret[i] = blob.read_shift(0, 'lpstr');\n\treturn ret;\n}\n\n/* [MS-OSHARED] 2.3.3.1.10 VtVecUnalignedLpstr */\nfunction parse_VtVecUnalignedLpstr(blob) {\n\treturn parse_VtVecUnalignedLpstrValue(blob);\n}\n\n/* [MS-OSHARED] 2.3.3.1.13 VtHeadingPair */\nfunction parse_VtHeadingPair(blob) {\n\tvar headingString = parse_TypedPropertyValue(blob, VT_USTR);\n\tvar headerParts = parse_TypedPropertyValue(blob, VT_I4);\n\treturn [headingString, headerParts];\n}\n\n/* [MS-OSHARED] 2.3.3.1.14 VtVecHeadingPairValue */\nfunction parse_VtVecHeadingPairValue(blob) {\n\tvar cElements = blob.read_shift(4);\n\tvar out = [];\n\tfor(var i = 0; i != cElements / 2; ++i) out.push(parse_VtHeadingPair(blob));\n\treturn out;\n}\n\n/* [MS-OSHARED] 2.3.3.1.15 VtVecHeadingPair */\nfunction parse_VtVecHeadingPair(blob) {\n\t// NOTE: When invoked, wType & padding were already consumed\n\treturn parse_VtVecHeadingPairValue(blob);\n}\n\n/* [MS-OLEPS] 2.18.1 Dictionary (uses 2.17, 2.16) */\nfunction parse_dictionary(blob,CodePage) {\n\tvar cnt = blob.read_shift(4);\n\tvar dict = {};\n\tfor(var j = 0; j != cnt; ++j) {\n\t\tvar pid = blob.read_shift(4);\n\t\tvar len = blob.read_shift(4);\n\t\tdict[pid] = blob.read_shift(len, (CodePage === 0x4B0 ?'utf16le':'utf8')).replace(chr0,'').replace(chr1,'!');\n\t}\n\tif(blob.l & 3) blob.l = (blob.l>>2+1)<<2;\n\treturn dict;\n}\n\n/* [MS-OLEPS] 2.9 BLOB */\nfunction parse_BLOB(blob) {\n\tvar size = blob.read_shift(4);\n\tvar bytes = blob.slice(blob.l,blob.l+size);\n\tif(size & 3 > 0) blob.l += (4 - (size & 3)) & 3;\n\treturn bytes;\n}\n\n/* [MS-OLEPS] 2.11 ClipboardData */\nfunction parse_ClipboardData(blob) {\n\t// TODO\n\tvar o = {};\n\to.Size = blob.read_shift(4);\n\t//o.Format = blob.read_shift(4);\n\tblob.l += o.Size;\n\treturn o;\n}\n\n/* [MS-OLEPS] 2.14 Vector and Array Property Types */\nfunction parse_VtVector(blob, cb) {\n\t/* [MS-OLEPS] 2.14.2 VectorHeader */\n/*\tvar Length = blob.read_shift(4);\n\tvar o = [];\n\tfor(var i = 0; i != Length; ++i) {\n\t\to.push(cb(blob));\n\t}\n\treturn o;*/\n}\n\n/* [MS-OLEPS] 2.15 TypedPropertyValue */\nfunction parse_TypedPropertyValue(blob, type, _opts) {\n\tvar t = blob.read_shift(2), ret, opts = _opts||{};\n\tblob.l += 2;\n\tif(type !== VT_VARIANT)\n\tif(t !== type && VT_CUSTOM.indexOf(type)===-1) throw new Error('Expected type ' + type + ' saw ' + t);\n\tswitch(type === VT_VARIANT ? t : type) {\n\t\tcase 0x02 /*VT_I2*/: ret = blob.read_shift(2, 'i'); if(!opts.raw) blob.l += 2; return ret;\n\t\tcase 0x03 /*VT_I4*/: ret = blob.read_shift(4, 'i'); return ret;\n\t\tcase 0x0B /*VT_BOOL*/: return blob.read_shift(4) !== 0x0;\n\t\tcase 0x13 /*VT_UI4*/: ret = blob.read_shift(4); return ret;\n\t\tcase 0x1E /*VT_LPSTR*/: return parse_lpstr(blob, t, 4).replace(chr0,'');\n\t\tcase 0x1F /*VT_LPWSTR*/: return parse_lpwstr(blob);\n\t\tcase 0x40 /*VT_FILETIME*/: return parse_FILETIME(blob);\n\t\tcase 0x41 /*VT_BLOB*/: return parse_BLOB(blob);\n\t\tcase 0x47 /*VT_CF*/: return parse_ClipboardData(blob);\n\t\tcase 0x50 /*VT_STRING*/: return parse_VtString(blob, t, !opts.raw && 4).replace(chr0,'');\n\t\tcase 0x51 /*VT_USTR*/: return parse_VtUnalignedString(blob, t, 4).replace(chr0,'');\n\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: return parse_VtVecHeadingPair(blob);\n\t\tcase 0x101E /*VT_LPSTR*/: return parse_VtVecUnalignedLpstr(blob);\n\t\tdefault: throw new Error(\"TypedPropertyValue unrecognized type \" + type + \" \" + t);\n\t}\n}\n/* [MS-OLEPS] 2.14.2 VectorHeader */\n/*function parse_VTVectorVariant(blob) {\n\tvar Length = blob.read_shift(4);\n\n\tif(Length & 1 !== 0) throw new Error(\"VectorHeader Length=\" + Length + \" must be even\");\n\tvar o = [];\n\tfor(var i = 0; i != Length; ++i) {\n\t\to.push(parse_TypedPropertyValue(blob, VT_VARIANT));\n\t}\n\treturn o;\n}*/\n\n/* [MS-OLEPS] 2.20 PropertySet */\nfunction parse_PropertySet(blob, PIDSI) {\n\tvar start_addr = blob.l;\n\tvar size = blob.read_shift(4);\n\tvar NumProps = blob.read_shift(4);\n\tvar Props = [], i = 0;\n\tvar CodePage = 0;\n\tvar Dictionary = -1, DictObj;\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tvar PropID = blob.read_shift(4);\n\t\tvar Offset = blob.read_shift(4);\n\t\tProps[i] = [PropID, Offset + start_addr];\n\t}\n\tvar PropH = {};\n\tfor(i = 0; i != NumProps; ++i) {\n\t\tif(blob.l !== Props[i][1]) {\n\t\t\tvar fail = true;\n\t\t\tif(i>0 && PIDSI) switch(PIDSI[Props[i-1][0]].t) {\n\t\t\t\tcase 0x02 /*VT_I2*/: if(blob.l +2 === Props[i][1]) { blob.l+=2; fail = false; } break;\n\t\t\t\tcase 0x50 /*VT_STRING*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t\tcase 0x100C /*VT_VECTOR|VT_VARIANT*/: if(blob.l <= Props[i][1]) { blob.l=Props[i][1]; fail = false; } break;\n\t\t\t}\n\t\t\tif(!PIDSI && blob.l <= Props[i][1]) { fail=false; blob.l = Props[i][1]; }\n\t\t\tif(fail) throw new Error(\"Read Error: Expected address \" + Props[i][1] + ' at ' + blob.l + ' :' + i);\n\t\t}\n\t\tif(PIDSI) {\n\t\t\tvar piddsi = PIDSI[Props[i][0]];\n\t\t\tPropH[piddsi.n] = parse_TypedPropertyValue(blob, piddsi.t, {raw:true});\n\t\t\tif(piddsi.p === 'version') PropH[piddsi.n] = String(PropH[piddsi.n] >> 16) + \".\" + String(PropH[piddsi.n] & 0xFFFF);\n\t\t\tif(piddsi.n == \"CodePage\") switch(PropH[piddsi.n]) {\n\t\t\t\tcase 0: PropH[piddsi.n] = 1252;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase 10000: // OSX Roman\n\t\t\t\tcase 1252: // Windows Latin\n\n\t\t\t\tcase 874: // SB Windows Thai\n\t\t\t\tcase 1250: // SB Windows Central Europe\n\t\t\t\tcase 1251: // SB Windows Cyrillic\n\t\t\t\tcase 1253: // SB Windows Greek\n\t\t\t\tcase 1254: // SB Windows Turkish\n\t\t\t\tcase 1255: // SB Windows Hebrew\n\t\t\t\tcase 1256: // SB Windows Arabic\n\t\t\t\tcase 1257: // SB Windows Baltic\n\t\t\t\tcase 1258: // SB Windows Vietnam\n\n\t\t\t\tcase 932: // DB Windows Japanese Shift-JIS\n\t\t\t\tcase 936: // DB Windows Simplified Chinese GBK\n\t\t\t\tcase 949: // DB Windows Korean\n\t\t\t\tcase 950: // DB Windows Traditional Chinese Big5\n\n\t\t\t\tcase 1200: // UTF16LE\n\t\t\t\tcase 1201: // UTF16BE\n\t\t\t\tcase 65000: case -536: // UTF-7\n\t\t\t\tcase 65001: case -535: // UTF-8\n\t\t\t\t\tset_cp(CodePage = PropH[piddsi.n]); break;\n\t\t\t\tdefault: throw new Error(\"Unsupported CodePage: \" + PropH[piddsi.n]);\n\t\t\t}\n\t\t} else {\n\t\t\tif(Props[i][0] === 0x1) {\n\t\t\t\tCodePage = PropH.CodePage = parse_TypedPropertyValue(blob, VT_I2);\n\t\t\t\tset_cp(CodePage);\n\t\t\t\tif(Dictionary !== -1) {\n\t\t\t\t\tvar oldpos = blob.l;\n\t\t\t\t\tblob.l = Props[Dictionary][1];\n\t\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t\t\tblob.l = oldpos;\n\t\t\t\t}\n\t\t\t} else if(Props[i][0] === 0) {\n\t\t\t\tif(CodePage === 0) { Dictionary = i; blob.l = Props[i+1][1]; continue; }\n\t\t\t\tDictObj = parse_dictionary(blob,CodePage);\n\t\t\t} else {\n\t\t\t\tvar name = DictObj[Props[i][0]];\n\t\t\t\tvar val;\n\t\t\t\t/* [MS-OSHARED] 2.3.3.2.3.1.2 + PROPVARIANT */\n\t\t\t\tswitch(blob[blob.l]) {\n\t\t\t\t\tcase 0x41 /*VT_BLOB*/: blob.l += 4; val = parse_BLOB(blob); break;\n\t\t\t\t\tcase 0x1E /*VT_LPSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break;\n\t\t\t\t\tcase 0x1F /*VT_LPWSTR*/: blob.l += 4; val = parse_VtString(blob, blob[blob.l-4]); break;\n\t\t\t\t\tcase 0x03 /*VT_I4*/: blob.l += 4; val = blob.read_shift(4, 'i'); break;\n\t\t\t\t\tcase 0x13 /*VT_UI4*/: blob.l += 4; val = blob.read_shift(4); break;\n\t\t\t\t\tcase 0x05 /*VT_R8*/: blob.l += 4; val = blob.read_shift(8, 'f'); break;\n\t\t\t\t\tcase 0x0B /*VT_BOOL*/: blob.l += 4; val = parsebool(blob, 4); break;\n\t\t\t\t\tcase 0x40 /*VT_FILETIME*/: blob.l += 4; val = new Date(parse_FILETIME(blob)); break;\n\t\t\t\t\tdefault: throw new Error(\"unparsed value: \" + blob[blob.l]);\n\t\t\t\t}\n\t\t\t\tPropH[name] = val;\n\t\t\t}\n\t\t}\n\t}\n\tblob.l = start_addr + size; /* step ahead to skip padding */\n\treturn PropH;\n}\n\n/* [MS-OLEPS] 2.21 PropertySetStream */\nfunction parse_PropertySetStream(file, PIDSI) {\n\tvar blob = file.content;\n\tprep_blob(blob, 0);\n\n\tvar NumSets, FMTID0, FMTID1, Offset0, Offset1;\n\tblob.chk('feff', 'Byte Order: ');\n\n\tvar vers = blob.read_shift(2); // TODO: check version\n\tvar SystemIdentifier = blob.read_shift(4);\n\tblob.chk(CFB.utils.consts.HEADER_CLSID, 'CLSID: ');\n\tNumSets = blob.read_shift(4);\n\tif(NumSets !== 1 && NumSets !== 2) throw \"Unrecognized #Sets: \" + NumSets;\n\tFMTID0 = blob.read_shift(16); Offset0 = blob.read_shift(4);\n\n\tif(NumSets === 1 && Offset0 !== blob.l) throw \"Length mismatch\";\n\telse if(NumSets === 2) { FMTID1 = blob.read_shift(16); Offset1 = blob.read_shift(4); }\n\tvar PSet0 = parse_PropertySet(blob, PIDSI);\n\n\tvar rval = { SystemIdentifier: SystemIdentifier };\n\tfor(var y in PSet0) rval[y] = PSet0[y];\n\t//rval.blob = blob;\n\trval.FMTID = FMTID0;\n\t//rval.PSet0 = PSet0;\n\tif(NumSets === 1) return rval;\n\tif(blob.l !== Offset1) throw \"Length mismatch 2: \" + blob.l + \" !== \" + Offset1;\n\tvar PSet1;\n\ttry { PSet1 = parse_PropertySet(blob, null); } catch(e) { }\n\tfor(y in PSet1) rval[y] = PSet1[y];\n\trval.FMTID = [FMTID0, FMTID1]; // TODO: verify FMTID0/1\n\treturn rval;\n}\n\n\nfunction parsenoop2(blob, length) { blob.read_shift(length); return null; }\n\nfunction parslurp(blob, length, cb) {\n\tvar arr = [], target = blob.l + length;\n\twhile(blob.l < target) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parslurp2(blob, length, cb) {\n\tvar arr = [], target = blob.l + length, len = blob.read_shift(2);\n\twhile(len-- !== 0) arr.push(cb(blob, target - blob.l));\n\tif(target !== blob.l) throw new Error(\"Slurp error\");\n\treturn arr;\n}\n\nfunction parsebool(blob, length) { return blob.read_shift(length) === 0x1; }\n\nfunction parseuint16(blob) { return blob.read_shift(2, 'u'); }\nfunction parseuint16a(blob, length) { return parslurp(blob,length,parseuint16);}\n\n/* --- 2.5 Structures --- */\n\n/* [MS-XLS] 2.5.14 Boolean */\nvar parse_Boolean = parsebool;\n\n/* [MS-XLS] 2.5.10 Bes (boolean or error) */\nfunction parse_Bes(blob) {\n\tvar v = blob.read_shift(1), t = blob.read_shift(1);\n\treturn t === 0x01 ? v : v === 0x01;\n}\n\n/* [MS-XLS] 2.5.240 ShortXLUnicodeString */\nfunction parse_ShortXLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(1);\n\tvar width = 1, encoding = 'sbcs-cont';\n\tvar cp = current_codepage;\n\tif(opts && opts.biff >= 8) current_codepage = 1200;\n\tif(opts === undefined || opts.biff !== 5) {\n\t\tvar fHighByte = blob.read_shift(1);\n\t\tif(fHighByte) { width = 2; encoding = 'dbcs-cont'; }\n\t}\n\tvar o = cch ? blob.read_shift(cch, encoding) : \"\";\n\tcurrent_codepage = cp;\n\treturn o;\n}\n\n/* 2.5.293 XLUnicodeRichExtendedString */\nfunction parse_XLUnicodeRichExtendedString(blob) {\n\tvar cp = current_codepage;\n\tcurrent_codepage = 1200;\n\tvar cch = blob.read_shift(2), flags = blob.read_shift(1);\n\tvar fHighByte = flags & 0x1, fExtSt = flags & 0x4, fRichSt = flags & 0x8;\n\tvar width = 1 + (flags & 0x1); // 0x0 -> utf8, 0x1 -> dbcs\n\tvar cRun, cbExtRst;\n\tvar z = {};\n\tif(fRichSt) cRun = blob.read_shift(2);\n\tif(fExtSt) cbExtRst = blob.read_shift(4);\n\tvar encoding = (flags & 0x1) ? 'dbcs-cont' : 'sbcs-cont';\n\tvar msg = cch === 0 ? \"\" : blob.read_shift(cch, encoding);\n\tif(fRichSt) blob.l += 4 * cRun; //TODO: parse this\n\tif(fExtSt) blob.l += cbExtRst; //TODO: parse this\n\tz.t = msg;\n\tif(!fRichSt) { z.raw = \"<t>\" + z.t + \"</t>\"; z.r = z.t; }\n\tcurrent_codepage = cp;\n\treturn z;\n}\n\n/* 2.5.296 XLUnicodeStringNoCch */\nfunction parse_XLUnicodeStringNoCch(blob, cch, opts) {\n\tvar retval;\n\tvar fHighByte = blob.read_shift(1);\n\tif(fHighByte===0) { retval = blob.read_shift(cch, 'sbcs-cont'); }\n\telse { retval = blob.read_shift(cch, 'dbcs-cont'); }\n\treturn retval;\n}\n\n/* 2.5.294 XLUnicodeString */\nfunction parse_XLUnicodeString(blob, length, opts) {\n\tvar cch = blob.read_shift(opts !== undefined && opts.biff > 0 && opts.biff < 8 ? 1 : 2);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn parse_XLUnicodeStringNoCch(blob, cch, opts);\n}\n/* BIFF5 override */\nfunction parse_XLUnicodeString2(blob, length, opts) {\n\tif(opts.biff !== 5 && opts.biff !== 2) return parse_XLUnicodeString(blob, length, opts);\n\tvar cch = blob.read_shift(1);\n\tif(cch === 0) { blob.l++; return \"\"; }\n\treturn blob.read_shift(cch, 'sbcs-cont');\n}\n\n/* [MS-XLS] 2.5.61 ControlInfo */\nvar parse_ControlInfo = parsenoop;\n\n/* [MS-OSHARED] 2.3.7.6 URLMoniker TODO: flags */\nvar parse_URLMoniker = function(blob, length) {\n\tvar len = blob.read_shift(4), start = blob.l;\n\tvar extra = false;\n\tif(len > 24) {\n\t\t/* look ahead */\n\t\tblob.l += len - 24;\n\t\tif(blob.read_shift(16) === \"795881f43b1d7f48af2c825dc4852763\") extra = true;\n\t\tblob.l = start;\n\t}\n\tvar url = blob.read_shift((extra?len-24:len)>>1, 'utf16le').replace(chr0,\"\");\n\tif(extra) blob.l += 24;\n\treturn url;\n};\n\n/* [MS-OSHARED] 2.3.7.8 FileMoniker TODO: all fields */\nvar parse_FileMoniker = function(blob, length) {\n\tvar cAnti = blob.read_shift(2);\n\tvar ansiLength = blob.read_shift(4);\n\tvar ansiPath = blob.read_shift(ansiLength, 'cstr');\n\tvar endServer = blob.read_shift(2);\n\tvar versionNumber = blob.read_shift(2);\n\tvar cbUnicodePathSize = blob.read_shift(4);\n\tif(cbUnicodePathSize === 0) return ansiPath.replace(/\\\\/g,\"/\");\n\tvar cbUnicodePathBytes = blob.read_shift(4);\n\tvar usKeyValue = blob.read_shift(2);\n\tvar unicodePath = blob.read_shift(cbUnicodePathBytes>>1, 'utf16le').replace(chr0,\"\");\n\treturn unicodePath;\n};\n\n/* [MS-OSHARED] 2.3.7.2 HyperlinkMoniker TODO: all the monikers */\nvar parse_HyperlinkMoniker = function(blob, length) {\n\tvar clsid = blob.read_shift(16); length -= 16;\n\tswitch(clsid) {\n\t\tcase \"e0c9ea79f9bace118c8200aa004ba90b\": return parse_URLMoniker(blob, length);\n\t\tcase \"0303000000000000c000000000000046\": return parse_FileMoniker(blob, length);\n\t\tdefault: throw \"unsupported moniker \" + clsid;\n\t}\n};\n\n/* [MS-OSHARED] 2.3.7.9 HyperlinkString */\nvar parse_HyperlinkString = function(blob, length) {\n\tvar len = blob.read_shift(4);\n\tvar o = blob.read_shift(len, 'utf16le').replace(chr0, \"\");\n\treturn o;\n};\n\n/* [MS-OSHARED] 2.3.7.1 Hyperlink Object TODO: unify params with XLSX */\nvar parse_Hyperlink = function(blob, length) {\n\tvar end = blob.l + length;\n\tvar sVer = blob.read_shift(4);\n\tif(sVer !== 2) throw new Error(\"Unrecognized streamVersion: \" + sVer);\n\tvar flags = blob.read_shift(2);\n\tblob.l += 2;\n\tvar displayName, targetFrameName, moniker, oleMoniker, location, guid, fileTime;\n\tif(flags & 0x0010) displayName = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0080) targetFrameName = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0101) moniker = parse_HyperlinkString(blob, end - blob.l);\n\tif((flags & 0x0101) === 0x0001) oleMoniker = parse_HyperlinkMoniker(blob, end - blob.l);\n\tif(flags & 0x0008) location = parse_HyperlinkString(blob, end - blob.l);\n\tif(flags & 0x0020) guid = blob.read_shift(16);\n\tif(flags & 0x0040) fileTime = parse_FILETIME(blob, 8);\n\tblob.l = end;\n\tvar target = (targetFrameName||moniker||oleMoniker);\n\tif(location) target+=\"#\"+location;\n\treturn {Target: target};\n};\n\n/* 2.5.178 LongRGBA */\nfunction parse_LongRGBA(blob, length) { var r = blob.read_shift(1), g = blob.read_shift(1), b = blob.read_shift(1), a = blob.read_shift(1); return [r,g,b,a]; }\n\n/* 2.5.177 LongRGB */\nfunction parse_LongRGB(blob, length) { var x = parse_LongRGBA(blob, length); x[3] = 0; return x; }\n\n\n/* --- MS-XLS --- */\n\n/* 2.5.19 */\nfunction parse_XLSCell(blob, length) {\n\tvar rw = blob.read_shift(2); // 0-indexed\n\tvar col = blob.read_shift(2);\n\tvar ixfe = blob.read_shift(2);\n\treturn {r:rw, c:col, ixfe:ixfe};\n}\n\n/* 2.5.134 */\nfunction parse_frtHeader(blob) {\n\tvar rt = blob.read_shift(2);\n\tvar flags = blob.read_shift(2); // TODO: parse these flags\n\tblob.l += 8;\n\treturn {type: rt, flags: flags};\n}\n\n\n\nfunction parse_OptXLUnicodeString(blob, length, opts) { return length === 0 ? \"\" : parse_XLUnicodeString2(blob, length, opts); }\n\n/* 2.5.158 */\nvar HIDEOBJENUM = ['SHOWALL', 'SHOWPLACEHOLDER', 'HIDEALL'];\nvar parse_HideObjEnum = parseuint16;\n\n/* 2.5.344 */\nfunction parse_XTI(blob, length) {\n\tvar iSupBook = blob.read_shift(2), itabFirst = blob.read_shift(2,'i'), itabLast = blob.read_shift(2,'i');\n\treturn [iSupBook, itabFirst, itabLast];\n}\n\n/* 2.5.218 */\nfunction parse_RkRec(blob, length) {\n\tvar ixfe = blob.read_shift(2);\n\tvar RK = parse_RkNumber(blob);\n\t//console.log(\"::\", ixfe, RK,\";;\");\n\treturn [ixfe, RK];\n}\n\n/* 2.5.1 */\nfunction parse_AddinUdf(blob, length) {\n\tblob.l += 4; length -= 4;\n\tvar l = blob.l + length;\n\tvar udfName = parse_ShortXLUnicodeString(blob, length);\n\tvar cb = blob.read_shift(2);\n\tl -= blob.l;\n\tif(cb !== l) throw \"Malformed AddinUdf: padding = \" + l + \" != \" + cb;\n\tblob.l += cb;\n\treturn udfName;\n}\n\n/* 2.5.209 TODO: Check sizes */\nfunction parse_Ref8U(blob, length) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(2);\n\tvar colLast = blob.read_shift(2);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* 2.5.211 */\nfunction parse_RefU(blob, length) {\n\tvar rwFirst = blob.read_shift(2);\n\tvar rwLast = blob.read_shift(2);\n\tvar colFirst = blob.read_shift(1);\n\tvar colLast = blob.read_shift(1);\n\treturn {s:{c:colFirst, r:rwFirst}, e:{c:colLast,r:rwLast}};\n}\n\n/* 2.5.207 */\nvar parse_Ref = parse_RefU;\n\n/* 2.5.143 */\nfunction parse_FtCmo(blob, length) {\n\tblob.l += 4;\n\tvar ot = blob.read_shift(2);\n\tvar id = blob.read_shift(2);\n\tvar flags = blob.read_shift(2);\n\tblob.l+=12;\n\treturn [id, ot, flags];\n}\n\n/* 2.5.149 */\nfunction parse_FtNts(blob, length) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.l += 16; // GUID TODO\n\tout.fSharedNote = blob.read_shift(2);\n\tblob.l += 4;\n\treturn out;\n}\n\n/* 2.5.142 */\nfunction parse_FtCf(blob, length) {\n\tvar out = {};\n\tblob.l += 4;\n\tblob.cf = blob.read_shift(2);\n\treturn out;\n}\n\n/* 2.5.140 - 2.5.154 and friends */\nvar FtTab = {\n\t0x15: parse_FtCmo,\n\t0x13: parsenoop, /* FtLbsData */\n\t0x12: function(blob, length) { blob.l += 12; }, /* FtCblsData */\n\t0x11: function(blob, length) { blob.l += 8; }, /* FtRboData */\n\t0x10: parsenoop, /* FtEdoData */\n\t0x0F: parsenoop, /* FtGboData */\n\t0x0D: parse_FtNts, /* FtNts */\n\t0x0C: function(blob, length) { blob.l += 24; }, /* FtSbs */\n\t0x0B: function(blob, length) { blob.l += 10; }, /* FtRbo */\n\t0x0A: function(blob, length) { blob.l += 16; }, /* FtCbls */\n\t0x09: parsenoop, /* FtPictFmla */\n\t0x08: function(blob, length) { blob.l += 6; }, /* FtPioGrbit */\n\t0x07: parse_FtCf, /* FtCf */\n\t0x06: function(blob, length) { blob.l += 6; }, /* FtGmo */\n\t0x04: parsenoop, /* FtMacro */\n\t0x00: function(blob, length) { blob.l += 4; } /* FtEnding */\n};\nfunction parse_FtArray(blob, length, ot) {\n\tvar s = blob.l;\n\tvar fts = [];\n\twhile(blob.l < s + length) {\n\t\tvar ft = blob.read_shift(2);\n\t\tblob.l-=2;\n\t\ttry {\n\t\t\tfts.push(FtTab[ft](blob, s + length - blob.l));\n\t\t} catch(e) { blob.l = s + length; return fts; }\n\t}\n\tif(blob.l != s + length) blob.l = s + length; //throw \"bad Object Ft-sequence\";\n\treturn fts;\n}\n\n/* 2.5.129 */\nvar parse_FontIndex = parseuint16;\n\n/* --- 2.4 Records --- */\n\n/* 2.4.21 */\nfunction parse_BOF(blob, length) {\n\tvar o = {};\n\to.BIFFVer = blob.read_shift(2); length -= 2;\n\tswitch(o.BIFFVer) {\n\t\tcase 0x0600: /* BIFF8 */\n\t\tcase 0x0500: /* BIFF5 */\n\t\tcase 0x0002: case 0x0007: /* BIFF2 */\n\t\t\tbreak;\n\t\tdefault: throw \"Unexpected BIFF Ver \" + o.BIFFVer;\n\t}\n\tblob.read_shift(length);\n\treturn o;\n}\n\n\n/* 2.4.146 */\nfunction parse_InterfaceHdr(blob, length) {\n\tif(length === 0) return 0x04b0;\n\tvar q;\n\tif((q=blob.read_shift(2))!==0x04b0) throw 'InterfaceHdr codePage ' + q;\n\treturn 0x04b0;\n}\n\n\n/* 2.4.349 */\nfunction parse_WriteAccess(blob, length, opts) {\n\tif(opts.enc) { blob.l += length; return \"\"; }\n\tvar l = blob.l;\n\t// TODO: make sure XLUnicodeString doesnt overrun\n\tvar UserName = parse_XLUnicodeString(blob, 0, opts);\n\tblob.read_shift(length + l - blob.l);\n\treturn UserName;\n}\n\n/* 2.4.28 */\nfunction parse_BoundSheet8(blob, length, opts) {\n\tvar pos = blob.read_shift(4);\n\tvar hidden = blob.read_shift(1) >> 6;\n\tvar dt = blob.read_shift(1);\n\tswitch(dt) {\n\t\tcase 0: dt = 'Worksheet'; break;\n\t\tcase 1: dt = 'Macrosheet'; break;\n\t\tcase 2: dt = 'Chartsheet'; break;\n\t\tcase 6: dt = 'VBAModule'; break;\n\t}\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\tif(name.length === 0) name = \"Sheet1\";\n\treturn { pos:pos, hs:hidden, dt:dt, name:name };\n}\n\n/* 2.4.265 TODO */\nfunction parse_SST(blob, length) {\n\tvar cnt = blob.read_shift(4);\n\tvar ucnt = blob.read_shift(4);\n\tvar strs = [];\n\tfor(var i = 0; i != ucnt; ++i) {\n\t\tstrs.push(parse_XLUnicodeRichExtendedString(blob));\n\t}\n\tstrs.Count = cnt; strs.Unique = ucnt;\n\treturn strs;\n}\n\n/* 2.4.107 */\nfunction parse_ExtSST(blob, length) {\n\tvar extsst = {};\n\textsst.dsst = blob.read_shift(2);\n\tblob.l += length-2;\n\treturn extsst;\n}\n\n\n/* 2.4.221 TODO*/\nfunction parse_Row(blob, length) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2), Col = blob.read_shift(2), rht = blob.read_shift(2);\n\tblob.read_shift(4); // reserved(2), unused(2)\n\tvar flags = blob.read_shift(1); // various flags\n\tblob.read_shift(1); // reserved\n\tblob.read_shift(2); //ixfe, other flags\n\treturn {r:rw, c:col, cnt:Col-col};\n}\n\n\n/* 2.4.125 */\nfunction parse_ForceFullCalculation(blob, length) {\n\tvar header = parse_frtHeader(blob);\n\tif(header.type != 0x08A3) throw \"Invalid Future Record \" + header.type;\n\tvar fullcalc = blob.read_shift(4);\n\treturn fullcalc !== 0x0;\n}\n\n\nvar parse_CompressPictures = parsenoop2; /* 2.4.55 Not interesting */\n\n\n\n/* 2.4.215 rt */\nfunction parse_RecalcId(blob, length) {\n\tblob.read_shift(2);\n\treturn blob.read_shift(4);\n}\n\n/* 2.4.87 */\nfunction parse_DefaultRowHeight (blob, length) {\n\tvar f = blob.read_shift(2), miyRw;\n\tmiyRw = blob.read_shift(2); // flags & 0x02 -> hidden, else empty\n\tvar fl = {Unsynced:f&1,DyZero:(f&2)>>1,ExAsc:(f&4)>>2,ExDsc:(f&8)>>3};\n\treturn [fl, miyRw];\n}\n\n/* 2.4.345 TODO */\nfunction parse_Window1(blob, length) {\n\tvar xWn = blob.read_shift(2), yWn = blob.read_shift(2), dxWn = blob.read_shift(2), dyWn = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), iTabCur = blob.read_shift(2), iTabFirst = blob.read_shift(2);\n\tvar ctabSel = blob.read_shift(2), wTabRatio = blob.read_shift(2);\n\treturn { Pos: [xWn, yWn], Dim: [dxWn, dyWn], Flags: flags, CurTab: iTabCur,\n\t\tFirstTab: iTabFirst, Selected: ctabSel, TabRatio: wTabRatio };\n}\n\n/* 2.4.122 TODO */\nfunction parse_Font(blob, length, opts) {\n\tblob.l += 14;\n\tvar name = parse_ShortXLUnicodeString(blob, 0, opts);\n\treturn name;\n}\n\n/* 2.4.149 */\nfunction parse_LabelSst(blob, length) {\n\tvar cell = parse_XLSCell(blob);\n\tcell.isst = blob.read_shift(4);\n\treturn cell;\n}\n\n/* 2.4.148 */\nfunction parse_Label(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar str = parse_XLUnicodeString(blob, length-6, opts);\n\tcell.val = str;\n\treturn cell;\n}\n\n/* 2.4.126 Number Formats */\nfunction parse_Format(blob, length, opts) {\n\tvar ifmt = blob.read_shift(2);\n\tvar fmtstr = parse_XLUnicodeString2(blob, 0, opts);\n\treturn [ifmt, fmtstr];\n}\n\n/* 2.4.90 */\nfunction parse_Dimensions(blob, length) {\n\tvar w = length === 10 ? 2 : 4;\n\tvar r = blob.read_shift(w), R = blob.read_shift(w),\n\t c = blob.read_shift(2), C = blob.read_shift(2);\n\tblob.l += 2;\n\treturn {s: {r:r, c:c}, e: {r:R, c:C}};\n}\n\n/* 2.4.220 */\nfunction parse_RK(blob, length) {\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrec = parse_RkRec(blob);\n\treturn {r:rw, c:col, ixfe:rkrec[0], rknum:rkrec[1]};\n}\n\n/* 2.4.175 */\nfunction parse_MulRk(blob, length) {\n\tvar target = blob.l + length - 2;\n\tvar rw = blob.read_shift(2), col = blob.read_shift(2);\n\tvar rkrecs = [];\n\twhile(blob.l < target) rkrecs.push(parse_RkRec(blob));\n\tif(blob.l !== target) throw \"MulRK read error\";\n\tvar lastcol = blob.read_shift(2);\n\tif(rkrecs.length != lastcol - col + 1) throw \"MulRK length mismatch\";\n\treturn {r:rw, c:col, C:lastcol, rkrec:rkrecs};\n}\n\n/* 2.5.20 2.5.249 TODO */\nfunction parse_CellStyleXF(blob, length, style) {\n\tvar o = {};\n\tvar a = blob.read_shift(4), b = blob.read_shift(4);\n\tvar c = blob.read_shift(4), d = blob.read_shift(2);\n\to.patternType = XLSFillPattern[c >> 26];\n\to.icvFore = d & 0x7F;\n\to.icvBack = (d >> 7) & 0x7F;\n\treturn o;\n}\nfunction parse_CellXF(blob, length) {return parse_CellStyleXF(blob,length,0);}\nfunction parse_StyleXF(blob, length) {return parse_CellStyleXF(blob,length,1);}\n\n/* 2.4.353 TODO: actually do this right */\nfunction parse_XF(blob, length) {\n\tvar o = {};\n\to.ifnt = blob.read_shift(2); o.ifmt = blob.read_shift(2); o.flags = blob.read_shift(2);\n\to.fStyle = (o.flags >> 2) & 0x01;\n\tlength -= 6;\n\to.data = parse_CellStyleXF(blob, length, o.fStyle);\n\treturn o;\n}\n\n/* 2.4.134 */\nfunction parse_Guts(blob, length) {\n\tblob.l += 4;\n\tvar out = [blob.read_shift(2), blob.read_shift(2)];\n\tif(out[0] !== 0) out[0]--;\n\tif(out[1] !== 0) out[1]--;\n\tif(out[0] > 7 || out[1] > 7) throw \"Bad Gutters: \" + out;\n\treturn out;\n}\n\n/* 2.4.24 */\nfunction parse_BoolErr(blob, length) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar val = parse_Bes(blob, 2);\n\tcell.val = val;\n\tcell.t = (val === true || val === false) ? 'b' : 'e';\n\treturn cell;\n}\n\n/* 2.4.180 Number */\nfunction parse_Number(blob, length) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar xnum = parse_Xnum(blob, 8);\n\tcell.val = xnum;\n\treturn cell;\n}\n\nvar parse_XLHeaderFooter = parse_OptXLUnicodeString; // TODO: parse 2.4.136\n\n/* 2.4.271 */\nfunction parse_SupBook(blob, length, opts) {\n\tvar end = blob.l + length;\n\tvar ctab = blob.read_shift(2);\n\tvar cch = blob.read_shift(2);\n\tvar virtPath;\n\tif(cch >=0x01 && cch <=0xff) virtPath = parse_XLUnicodeStringNoCch(blob, cch);\n\tvar rgst = blob.read_shift(end - blob.l);\n\topts.sbcch = cch;\n\treturn [cch, ctab, virtPath, rgst];\n}\n\n/* 2.4.105 TODO */\nfunction parse_ExternName(blob, length, opts) {\n\tvar flags = blob.read_shift(2);\n\tvar body;\n\tvar o = {\n\t\tfBuiltIn: flags & 0x01,\n\t\tfWantAdvise: (flags >>> 1) & 0x01,\n\t\tfWantPict: (flags >>> 2) & 0x01,\n\t\tfOle: (flags >>> 3) & 0x01,\n\t\tfOleLink: (flags >>> 4) & 0x01,\n\t\tcf: (flags >>> 5) & 0x3FF,\n\t\tfIcon: flags >>> 15 & 0x01\n\t};\n\tif(opts.sbcch === 0x3A01) body = parse_AddinUdf(blob, length-2);\n\t//else throw new Error(\"unsupported SupBook cch: \" + opts.sbcch);\n\to.body = body || blob.read_shift(length-2);\n\treturn o;\n}\n\n/* 2.4.150 TODO */\nfunction parse_Lbl(blob, length, opts) {\n\tif(opts.biff < 8) return parse_Label(blob, length, opts);\n\tvar target = blob.l + length;\n\tvar flags = blob.read_shift(2);\n\tvar chKey = blob.read_shift(1);\n\tvar cch = blob.read_shift(1);\n\tvar cce = blob.read_shift(2);\n\tblob.l += 2;\n\tvar itab = blob.read_shift(2);\n\tblob.l += 4;\n\tvar name = parse_XLUnicodeStringNoCch(blob, cch, opts);\n\tvar rgce = parse_NameParsedFormula(blob, target - blob.l, opts, cce);\n\treturn {\n\t\tchKey: chKey,\n\t\tName: name,\n\t\trgce: rgce\n\t};\n}\n\n/* 2.4.106 TODO: verify supbook manipulation */\nfunction parse_ExternSheet(blob, length, opts) {\n\tif(opts.biff < 8) return parse_ShortXLUnicodeString(blob, length, opts);\n\tvar o = parslurp2(blob,length,parse_XTI);\n\tvar oo = [];\n\tif(opts.sbcch === 0x0401) {\n\t\tfor(var i = 0; i != o.length; ++i) oo.push(opts.snames[o[i][1]]);\n\t\treturn oo;\n\t}\n\telse return o;\n}\n\n/* 2.4.260 */\nfunction parse_ShrFmla(blob, length, opts) {\n\tvar ref = parse_RefU(blob, 6);\n\tblob.l++;\n\tvar cUse = blob.read_shift(1);\n\tlength -= 8;\n\treturn [parse_SharedParsedFormula(blob, length, opts), cUse];\n}\n\n/* 2.4.4 TODO */\nfunction parse_Array(blob, length, opts) {\n\tvar ref = parse_Ref(blob, 6);\n\tblob.l += 6; length -= 12; /* TODO: fAlwaysCalc */\n\treturn [ref, parse_ArrayParsedFormula(blob, length, opts, ref)];\n}\n\n/* 2.4.173 */\nfunction parse_MTRSettings(blob, length) {\n\tvar fMTREnabled = blob.read_shift(4) !== 0x00;\n\tvar fUserSetThreadCount = blob.read_shift(4) !== 0x00;\n\tvar cUserThreadCount = blob.read_shift(4);\n\treturn [fMTREnabled, fUserSetThreadCount, cUserThreadCount];\n}\n\n/* 2.5.186 TODO: BIFF5 */\nfunction parse_NoteSh(blob, length, opts) {\n\tif(opts.biff < 8) return;\n\tvar row = blob.read_shift(2), col = blob.read_shift(2);\n\tvar flags = blob.read_shift(2), idObj = blob.read_shift(2);\n\tvar stAuthor = parse_XLUnicodeString2(blob, 0, opts);\n\tif(opts.biff < 8) blob.read_shift(1);\n\treturn [{r:row,c:col}, stAuthor, idObj, flags];\n}\n\n/* 2.4.179 */\nfunction parse_Note(blob, length, opts) {\n\t/* TODO: Support revisions */\n\treturn parse_NoteSh(blob, length, opts);\n}\n\n/* 2.4.168 */\nfunction parse_MergeCells(blob, length) {\n\tvar merges = [];\n\tvar cmcs = blob.read_shift(2);\n\twhile (cmcs--) merges.push(parse_Ref8U(blob,length));\n\treturn merges;\n}\n\n/* 2.4.181 TODO: parse all the things! */\nfunction parse_Obj(blob, length) {\n\tvar cmo = parse_FtCmo(blob, 22); // id, ot, flags\n\tvar fts = parse_FtArray(blob, length-22, cmo[1]);\n\treturn { cmo: cmo, ft:fts };\n}\n\n/* 2.4.329 TODO: parse properly */\nfunction parse_TxO(blob, length, opts) {\n\tvar s = blob.l;\ntry {\n\tblob.l += 4;\n\tvar ot = (opts.lastobj||{cmo:[0,0]}).cmo[1];\n\tvar controlInfo;\n\tif([0,5,7,11,12,14].indexOf(ot) == -1) blob.l += 6;\n\telse controlInfo = parse_ControlInfo(blob, 6, opts);\n\tvar cchText = blob.read_shift(2);\n\tvar cbRuns = blob.read_shift(2);\n\tvar ifntEmpty = parse_FontIndex(blob, 2);\n\tvar len = blob.read_shift(2);\n\tblob.l += len;\n\t//var fmla = parse_ObjFmla(blob, s + length - blob.l);\n\n\tvar texts = \"\";\n\tfor(var i = 1; i < blob.lens.length-1; ++i) {\n\t\tif(blob.l-s != blob.lens[i]) throw \"TxO: bad continue record\";\n\t\tvar hdr = blob[blob.l];\n\t\tvar t = parse_XLUnicodeStringNoCch(blob, blob.lens[i+1]-blob.lens[i]-1);\n\t\ttexts += t;\n\t\tif(texts.length >= (hdr ? cchText : 2*cchText)) break;\n\t}\n\tif(texts.length !== cchText && texts.length !== cchText*2) {\n\t\tthrow \"cchText: \" + cchText + \" != \" + texts.length;\n\t}\n\n\tblob.l = s + length;\n\t/* 2.5.272 TxORuns */\n//\tvar rgTxoRuns = [];\n//\tfor(var j = 0; j != cbRuns/8-1; ++j) blob.l += 8;\n//\tvar cchText2 = blob.read_shift(2);\n//\tif(cchText2 !== cchText) throw \"TxOLastRun mismatch: \" + cchText2 + \" \" + cchText;\n//\tblob.l += 6;\n//\tif(s + length != blob.l) throw \"TxO \" + (s + length) + \", at \" + blob.l;\n\treturn { t: texts };\n} catch(e) { blob.l = s + length; return { t: texts||\"\" }; }\n}\n\n/* 2.4.140 */\nvar parse_HLink = function(blob, length) {\n\tvar ref = parse_Ref8U(blob, 8);\n\tblob.l += 16; /* CLSID */\n\tvar hlink = parse_Hyperlink(blob, length-24);\n\treturn [ref, hlink];\n};\n\n/* 2.4.141 */\nvar parse_HLinkTooltip = function(blob, length) {\n\tvar end = blob.l + length;\n\tblob.read_shift(2);\n\tvar ref = parse_Ref8U(blob, 8);\n\tvar wzTooltip = blob.read_shift((length-10)/2, 'dbcs-cont');\n\twzTooltip = wzTooltip.replace(chr0,\"\");\n\treturn [ref, wzTooltip];\n};\n\n/* 2.4.63 */\nfunction parse_Country(blob, length) {\n\tvar o = [], d;\n\td = blob.read_shift(2); o[0] = CountryEnum[d] || d;\n\td = blob.read_shift(2); o[1] = CountryEnum[d] || d;\n\treturn o;\n}\n\n/* 2.4.50 ClrtClient */\nfunction parse_ClrtClient(blob, length) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* 2.4.188 */\nfunction parse_Palette(blob, length) {\n\tvar ccv = blob.read_shift(2);\n\tvar o = [];\n\twhile(ccv-->0) o.push(parse_LongRGB(blob, 8));\n\treturn o;\n}\n\n/* 2.4.354 */\nfunction parse_XFCRC(blob, length) {\n\tblob.l += 2;\n\tvar o = {cxfs:0, crc:0};\n\to.cxfs = blob.read_shift(2);\n\to.crc = blob.read_shift(4);\n\treturn o;\n}\n\n\nvar parse_Style = parsenoop;\nvar parse_StyleExt = parsenoop;\n\nvar parse_ColInfo = parsenoop;\n\nvar parse_Window2 = parsenoop;\n\n\nvar parse_Backup = parsebool; /* 2.4.14 */\nvar parse_Blank = parse_XLSCell; /* 2.4.20 Just the cell */\nvar parse_BottomMargin = parse_Xnum; /* 2.4.27 */\nvar parse_BuiltInFnGroupCount = parseuint16; /* 2.4.30 0x0E or 0x10 but excel 2011 generates 0x11? */\nvar parse_CalcCount = parseuint16; /* 2.4.31 #Iterations */\nvar parse_CalcDelta = parse_Xnum; /* 2.4.32 */\nvar parse_CalcIter = parsebool; /* 2.4.33 1=iterative calc */\nvar parse_CalcMode = parseuint16; /* 2.4.34 0=manual, 1=auto (def), 2=table */\nvar parse_CalcPrecision = parsebool; /* 2.4.35 */\nvar parse_CalcRefMode = parsenoop2; /* 2.4.36 */\nvar parse_CalcSaveRecalc = parsebool; /* 2.4.37 */\nvar parse_CodePage = parseuint16; /* 2.4.52 */\nvar parse_Compat12 = parsebool; /* 2.4.54 true = no compatibility check */\nvar parse_Date1904 = parsebool; /* 2.4.77 - 1=1904,0=1900 */\nvar parse_DefColWidth = parseuint16; /* 2.4.89 */\nvar parse_DSF = parsenoop2; /* 2.4.94 -- MUST be ignored */\nvar parse_EntExU2 = parsenoop2; /* 2.4.102 -- Explicitly says to ignore */\nvar parse_EOF = parsenoop2; /* 2.4.103 */\nvar parse_Excel9File = parsenoop2; /* 2.4.104 -- Optional and unused */\nvar parse_FeatHdr = parsenoop2; /* 2.4.112 */\nvar parse_FontX = parseuint16; /* 2.4.123 */\nvar parse_Footer = parse_XLHeaderFooter; /* 2.4.124 */\nvar parse_GridSet = parseuint16; /* 2.4.132, =1 */\nvar parse_HCenter = parsebool; /* 2.4.135 sheet centered horizontal on print */\nvar parse_Header = parse_XLHeaderFooter; /* 2.4.136 */\nvar parse_HideObj = parse_HideObjEnum; /* 2.4.139 */\nvar parse_InterfaceEnd = parsenoop2; /* 2.4.145 -- noop */\nvar parse_LeftMargin = parse_Xnum; /* 2.4.151 */\nvar parse_Mms = parsenoop2; /* 2.4.169 -- Explicitly says to ignore */\nvar parse_ObjProtect = parsebool; /* 2.4.183 -- must be 1 if present */\nvar parse_Password = parseuint16; /* 2.4.191 */\nvar parse_PrintGrid = parsebool; /* 2.4.202 */\nvar parse_PrintRowCol = parsebool; /* 2.4.203 */\nvar parse_PrintSize = parseuint16; /* 2.4.204 0:3 */\nvar parse_Prot4Rev = parsebool; /* 2.4.205 */\nvar parse_Prot4RevPass = parseuint16; /* 2.4.206 */\nvar parse_Protect = parsebool; /* 2.4.207 */\nvar parse_RefreshAll = parsebool; /* 2.4.217 -- must be 0 if not template */\nvar parse_RightMargin = parse_Xnum; /* 2.4.219 */\nvar parse_RRTabId = parseuint16a; /* 2.4.241 */\nvar parse_ScenarioProtect = parsebool; /* 2.4.245 */\nvar parse_Scl = parseuint16a; /* 2.4.247 num, den */\nvar parse_String = parse_XLUnicodeString; /* 2.4.268 */\nvar parse_SxBool = parsebool; /* 2.4.274 */\nvar parse_TopMargin = parse_Xnum; /* 2.4.328 */\nvar parse_UsesELFs = parsebool; /* 2.4.337 -- should be 0 */\nvar parse_VCenter = parsebool; /* 2.4.342 */\nvar parse_WinProtect = parsebool; /* 2.4.347 */\nvar parse_WriteProtect = parsenoop; /* 2.4.350 empty record */\n\n\n/* ---- */\nvar parse_VerticalPageBreaks = parsenoop;\nvar parse_HorizontalPageBreaks = parsenoop;\nvar parse_Selection = parsenoop;\nvar parse_Continue = parsenoop;\nvar parse_Pane = parsenoop;\nvar parse_Pls = parsenoop;\nvar parse_DCon = parsenoop;\nvar parse_DConRef = parsenoop;\nvar parse_DConName = parsenoop;\nvar parse_XCT = parsenoop;\nvar parse_CRN = parsenoop;\nvar parse_FileSharing = parsenoop;\nvar parse_Uncalced = parsenoop;\nvar parse_Template = parsenoop;\nvar parse_Intl = parsenoop;\nvar parse_WsBool = parsenoop;\nvar parse_Sort = parsenoop;\nvar parse_Sync = parsenoop;\nvar parse_LPr = parsenoop;\nvar parse_DxGCol = parsenoop;\nvar parse_FnGroupName = parsenoop;\nvar parse_FilterMode = parsenoop;\nvar parse_AutoFilterInfo = parsenoop;\nvar parse_AutoFilter = parsenoop;\nvar parse_Setup = parsenoop;\nvar parse_ScenMan = parsenoop;\nvar parse_SCENARIO = parsenoop;\nvar parse_SxView = parsenoop;\nvar parse_Sxvd = parsenoop;\nvar parse_SXVI = parsenoop;\nvar parse_SxIvd = parsenoop;\nvar parse_SXLI = parsenoop;\nvar parse_SXPI = parsenoop;\nvar parse_DocRoute = parsenoop;\nvar parse_RecipName = parsenoop;\nvar parse_MulBlank = parsenoop;\nvar parse_SXDI = parsenoop;\nvar parse_SXDB = parsenoop;\nvar parse_SXFDB = parsenoop;\nvar parse_SXDBB = parsenoop;\nvar parse_SXNum = parsenoop;\nvar parse_SxErr = parsenoop;\nvar parse_SXInt = parsenoop;\nvar parse_SXString = parsenoop;\nvar parse_SXDtr = parsenoop;\nvar parse_SxNil = parsenoop;\nvar parse_SXTbl = parsenoop;\nvar parse_SXTBRGIITM = parsenoop;\nvar parse_SxTbpg = parsenoop;\nvar parse_ObProj = parsenoop;\nvar parse_SXStreamID = parsenoop;\nvar parse_DBCell = parsenoop;\nvar parse_SXRng = parsenoop;\nvar parse_SxIsxoper = parsenoop;\nvar parse_BookBool = parsenoop;\nvar parse_DbOrParamQry = parsenoop;\nvar parse_OleObjectSize = parsenoop;\nvar parse_SXVS = parsenoop;\nvar parse_BkHim = parsenoop;\nvar parse_MsoDrawingGroup = parsenoop;\nvar parse_MsoDrawing = parsenoop;\nvar parse_MsoDrawingSelection = parsenoop;\nvar parse_PhoneticInfo = parsenoop;\nvar parse_SxRule = parsenoop;\nvar parse_SXEx = parsenoop;\nvar parse_SxFilt = parsenoop;\nvar parse_SxDXF = parsenoop;\nvar parse_SxItm = parsenoop;\nvar parse_SxName = parsenoop;\nvar parse_SxSelect = parsenoop;\nvar parse_SXPair = parsenoop;\nvar parse_SxFmla = parsenoop;\nvar parse_SxFormat = parsenoop;\nvar parse_SXVDEx = parsenoop;\nvar parse_SXFormula = parsenoop;\nvar parse_SXDBEx = parsenoop;\nvar parse_RRDInsDel = parsenoop;\nvar parse_RRDHead = parsenoop;\nvar parse_RRDChgCell = parsenoop;\nvar parse_RRDRenSheet = parsenoop;\nvar parse_RRSort = parsenoop;\nvar parse_RRDMove = parsenoop;\nvar parse_RRFormat = parsenoop;\nvar parse_RRAutoFmt = parsenoop;\nvar parse_RRInsertSh = parsenoop;\nvar parse_RRDMoveBegin = parsenoop;\nvar parse_RRDMoveEnd = parsenoop;\nvar parse_RRDInsDelBegin = parsenoop;\nvar parse_RRDInsDelEnd = parsenoop;\nvar parse_RRDConflict = parsenoop;\nvar parse_RRDDefName = parsenoop;\nvar parse_RRDRstEtxp = parsenoop;\nvar parse_LRng = parsenoop;\nvar parse_CUsr = parsenoop;\nvar parse_CbUsr = parsenoop;\nvar parse_UsrInfo = parsenoop;\nvar parse_UsrExcl = parsenoop;\nvar parse_FileLock = parsenoop;\nvar parse_RRDInfo = parsenoop;\nvar parse_BCUsrs = parsenoop;\nvar parse_UsrChk = parsenoop;\nvar parse_UserBView = parsenoop;\nvar parse_UserSViewBegin = parsenoop; // overloaded\nvar parse_UserSViewEnd = parsenoop;\nvar parse_RRDUserView = parsenoop;\nvar parse_Qsi = parsenoop;\nvar parse_CondFmt = parsenoop;\nvar parse_CF = parsenoop;\nvar parse_DVal = parsenoop;\nvar parse_DConBin = parsenoop;\nvar parse_Lel = parsenoop;\nvar parse_XLSCodeName = parse_XLUnicodeString;\nvar parse_SXFDBType = parsenoop;\nvar parse_ObNoMacros = parsenoop;\nvar parse_Dv = parsenoop;\nvar parse_Index = parsenoop;\nvar parse_Table = parsenoop;\nvar parse_BigName = parsenoop;\nvar parse_ContinueBigName = parsenoop;\nvar parse_WebPub = parsenoop;\nvar parse_QsiSXTag = parsenoop;\nvar parse_DBQueryExt = parsenoop;\nvar parse_ExtString = parsenoop;\nvar parse_TxtQry = parsenoop;\nvar parse_Qsir = parsenoop;\nvar parse_Qsif = parsenoop;\nvar parse_RRDTQSIF = parsenoop;\nvar parse_OleDbConn = parsenoop;\nvar parse_WOpt = parsenoop;\nvar parse_SXViewEx = parsenoop;\nvar parse_SXTH = parsenoop;\nvar parse_SXPIEx = parsenoop;\nvar parse_SXVDTEx = parsenoop;\nvar parse_SXViewEx9 = parsenoop;\nvar parse_ContinueFrt = parsenoop;\nvar parse_RealTimeData = parsenoop;\nvar parse_ChartFrtInfo = parsenoop;\nvar parse_FrtWrapper = parsenoop;\nvar parse_StartBlock = parsenoop;\nvar parse_EndBlock = parsenoop;\nvar parse_StartObject = parsenoop;\nvar parse_EndObject = parsenoop;\nvar parse_CatLab = parsenoop;\nvar parse_YMult = parsenoop;\nvar parse_SXViewLink = parsenoop;\nvar parse_PivotChartBits = parsenoop;\nvar parse_FrtFontList = parsenoop;\nvar parse_SheetExt = parsenoop;\nvar parse_BookExt = parsenoop;\nvar parse_SXAddl = parsenoop;\nvar parse_CrErr = parsenoop;\nvar parse_HFPicture = parsenoop;\nvar parse_Feat = parsenoop;\nvar parse_DataLabExt = parsenoop;\nvar parse_DataLabExtContents = parsenoop;\nvar parse_CellWatch = parsenoop;\nvar parse_FeatHdr11 = parsenoop;\nvar parse_Feature11 = parsenoop;\nvar parse_DropDownObjIds = parsenoop;\nvar parse_ContinueFrt11 = parsenoop;\nvar parse_DConn = parsenoop;\nvar parse_List12 = parsenoop;\nvar parse_Feature12 = parsenoop;\nvar parse_CondFmt12 = parsenoop;\nvar parse_CF12 = parsenoop;\nvar parse_CFEx = parsenoop;\nvar parse_AutoFilter12 = parsenoop;\nvar parse_ContinueFrt12 = parsenoop;\nvar parse_MDTInfo = parsenoop;\nvar parse_MDXStr = parsenoop;\nvar parse_MDXTuple = parsenoop;\nvar parse_MDXSet = parsenoop;\nvar parse_MDXProp = parsenoop;\nvar parse_MDXKPI = parsenoop;\nvar parse_MDB = parsenoop;\nvar parse_PLV = parsenoop;\nvar parse_DXF = parsenoop;\nvar parse_TableStyles = parsenoop;\nvar parse_TableStyle = parsenoop;\nvar parse_TableStyleElement = parsenoop;\nvar parse_NamePublish = parsenoop;\nvar parse_NameCmt = parsenoop;\nvar parse_SortData = parsenoop;\nvar parse_GUIDTypeLib = parsenoop;\nvar parse_FnGrp12 = parsenoop;\nvar parse_NameFnGrp12 = parsenoop;\nvar parse_HeaderFooter = parsenoop;\nvar parse_CrtLayout12 = parsenoop;\nvar parse_CrtMlFrt = parsenoop;\nvar parse_CrtMlFrtContinue = parsenoop;\nvar parse_ShapePropsStream = parsenoop;\nvar parse_TextPropsStream = parsenoop;\nvar parse_RichTextStream = parsenoop;\nvar parse_CrtLayout12A = parsenoop;\nvar parse_Units = parsenoop;\nvar parse_Chart = parsenoop;\nvar parse_Series = parsenoop;\nvar parse_DataFormat = parsenoop;\nvar parse_LineFormat = parsenoop;\nvar parse_MarkerFormat = parsenoop;\nvar parse_AreaFormat = parsenoop;\nvar parse_PieFormat = parsenoop;\nvar parse_AttachedLabel = parsenoop;\nvar parse_SeriesText = parsenoop;\nvar parse_ChartFormat = parsenoop;\nvar parse_Legend = parsenoop;\nvar parse_SeriesList = parsenoop;\nvar parse_Bar = parsenoop;\nvar parse_Line = parsenoop;\nvar parse_Pie = parsenoop;\nvar parse_Area = parsenoop;\nvar parse_Scatter = parsenoop;\nvar parse_CrtLine = parsenoop;\nvar parse_Axis = parsenoop;\nvar parse_Tick = parsenoop;\nvar parse_ValueRange = parsenoop;\nvar parse_CatSerRange = parsenoop;\nvar parse_AxisLine = parsenoop;\nvar parse_CrtLink = parsenoop;\nvar parse_DefaultText = parsenoop;\nvar parse_Text = parsenoop;\nvar parse_ObjectLink = parsenoop;\nvar parse_Frame = parsenoop;\nvar parse_Begin = parsenoop;\nvar parse_End = parsenoop;\nvar parse_PlotArea = parsenoop;\nvar parse_Chart3d = parsenoop;\nvar parse_PicF = parsenoop;\nvar parse_DropBar = parsenoop;\nvar parse_Radar = parsenoop;\nvar parse_Surf = parsenoop;\nvar parse_RadarArea = parsenoop;\nvar parse_AxisParent = parsenoop;\nvar parse_LegendException = parsenoop;\nvar parse_ShtProps = parsenoop;\nvar parse_SerToCrt = parsenoop;\nvar parse_AxesUsed = parsenoop;\nvar parse_SBaseRef = parsenoop;\nvar parse_SerParent = parsenoop;\nvar parse_SerAuxTrend = parsenoop;\nvar parse_IFmtRecord = parsenoop;\nvar parse_Pos = parsenoop;\nvar parse_AlRuns = parsenoop;\nvar parse_BRAI = parsenoop;\nvar parse_SerAuxErrBar = parsenoop;\nvar parse_SerFmt = parsenoop;\nvar parse_Chart3DBarShape = parsenoop;\nvar parse_Fbi = parsenoop;\nvar parse_BopPop = parsenoop;\nvar parse_AxcExt = parsenoop;\nvar parse_Dat = parsenoop;\nvar parse_PlotGrowth = parsenoop;\nvar parse_SIIndex = parsenoop;\nvar parse_GelFrame = parsenoop;\nvar parse_BopPopCustom = parsenoop;\nvar parse_Fbi2 = parsenoop;\n\n/* --- Specific to versions before BIFF8 --- */\nfunction parse_BIFF5String(blob) {\n\tvar len = blob.read_shift(1);\n\treturn blob.read_shift(len, 'sbcs-cont');\n}\n\n/* BIFF2_??? where ??? is the name from [XLS] */\nfunction parse_BIFF2STR(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar str = parse_XLUnicodeString2(blob, length-7, opts);\n\tcell.val = str;\n\treturn cell;\n}\n\nfunction parse_BIFF2NUM(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\t++blob.l;\n\tvar num = parse_Xnum(blob, 8);\n\tcell.val = num;\n\treturn cell;\n}\n\n/* 18.4.1 charset to codepage mapping */\nvar CS2CP = {\n\t0: 1252, /* ANSI */\n\t1: 65001, /* DEFAULT */\n\t2: 65001, /* SYMBOL */\n\t77: 10000, /* MAC */\n\t128: 932, /* SHIFTJIS */\n\t129: 949, /* HANGUL */\n\t130: 1361, /* JOHAB */\n\t134: 936, /* GB2312 */\n\t136: 950, /* CHINESEBIG5 */\n\t161: 1253, /* GREEK */\n\t162: 1254, /* TURKISH */\n\t163: 1258, /* VIETNAMESE */\n\t177: 1255, /* HEBREW */\n\t178: 1256, /* ARABIC */\n\t186: 1257, /* BALTIC */\n\t204: 1251, /* RUSSIAN */\n\t222: 874, /* THAI */\n\t238: 1250, /* EASTEUROPE */\n\t255: 1252, /* OEM */\n\t69: 6969 /* MISC */\n};\n\n/* Parse a list of <r> tags */\nvar parse_rs = (function parse_rs_factory() {\n\tvar tregex = matchtag(\"t\"), rpregex = matchtag(\"rPr\"), rregex = /<r>/g, rend = /<\\/r>/, nlregex = /\\r\\n/g;\n\t/* 18.4.7 rPr CT_RPrElt */\n\tvar parse_rpr = function parse_rpr(rpr, intro, outro) {\n\t\tvar font = {}, cp = 65001;\n\t\tvar m = rpr.match(tagregex), i = 0;\n\t\tif(m) for(;i!=m.length; ++i) {\n\t\t\tvar y = parsexmltag(m[i]);\n\t\t\tswitch(y[0]) {\n\t\t\t\t/* 18.8.12 condense CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<condense': break;\n\t\t\t\t/* 18.8.17 extend CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<extend': break;\n\t\t\t\t/* 18.8.36 shadow CT_BooleanProperty */\n\t\t\t\t/* ** not required . */\n\t\t\t\tcase '<shadow':\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<shadow/>': break;\n\n\t\t\t\t/* 18.4.1 charset CT_IntProperty TODO */\n\t\t\t\tcase '<charset':\n\t\t\t\t\tif(y.val == '1') break;\n\t\t\t\t\tcp = CS2CP[parseInt(y.val, 10)];\n\t\t\t\t\tbreak;\n\n\t\t\t\t/* 18.4.2 outline CT_BooleanProperty TODO */\n\t\t\t\tcase '<outline':\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<outline/>': break;\n\n\t\t\t\t/* 18.4.5 rFont CT_FontName */\n\t\t\t\tcase '<rFont': font.name = y.val; break;\n\n\t\t\t\t/* 18.4.11 sz CT_FontSize */\n\t\t\t\tcase '<sz': font.sz = y.val; break;\n\n\t\t\t\t/* 18.4.10 strike CT_BooleanProperty */\n\t\t\t\tcase '<strike':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<strike/>': font.strike = 1; break;\n\t\t\t\tcase '</strike>': break;\n\n\t\t\t\t/* 18.4.13 u CT_UnderlineProperty */\n\t\t\t\tcase '<u':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<u/>': font.u = 1; break;\n\t\t\t\tcase '</u>': break;\n\n\t\t\t\t/* 18.8.2 b */\n\t\t\t\tcase '<b':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<b/>': font.b = 1; break;\n\t\t\t\tcase '</b>': break;\n\n\t\t\t\t/* 18.8.26 i */\n\t\t\t\tcase '<i':\n\t\t\t\t\tif(!y.val) break;\n\t\t\t\t\t/* falls through */\n\t\t\t\tcase '<i/>': font.i = 1; break;\n\t\t\t\tcase '</i>': break;\n\n\t\t\t\t/* 18.3.1.15 color CT_Color TODO: tint, theme, auto, indexed */\n\t\t\t\tcase '<color':\n\t\t\t\t\tif(y.rgb) font.color = y.rgb.substr(2,6);\n\t\t\t\t\tbreak;\n\n\t\t\t\t/* 18.8.18 family ST_FontFamily */\n\t\t\t\tcase '<family': font.family = y.val; break;\n\n\t\t\t\t/* 18.4.14 vertAlign CT_VerticalAlignFontProperty TODO */\n\t\t\t\tcase '<vertAlign': break;\n\n\t\t\t\t/* 18.8.35 scheme CT_FontScheme TODO */\n\t\t\t\tcase '<scheme': break;\n\n\t\t\t\tdefault:\n\t\t\t\t\tif(y[0].charCodeAt(1) !== 47) throw 'Unrecognized rich format ' + y[0];\n\t\t\t}\n\t\t}\n\t\t/* TODO: These should be generated styles, not inline */\n\t\tvar style = [];\n\t\tif(font.b) style.push(\"font-weight: bold;\");\n\t\tif(font.i) style.push(\"font-style: italic;\");\n\t\tintro.push('<span style=\"' + style.join(\"\") + '\">');\n\t\toutro.push(\"</span>\");\n\t\treturn cp;\n\t};\n\n\t/* 18.4.4 r CT_RElt */\n\tfunction parse_r(r) {\n\t\tvar terms = [[],\"\",[]];\n\t\t/* 18.4.12 t ST_Xstring */\n\t\tvar t = r.match(tregex), cp = 65001;\n\t\tif(!isval(t)) return \"\";\n\t\tterms[1] = t[1];\n\n\t\tvar rpr = r.match(rpregex);\n\t\tif(isval(rpr)) cp = parse_rpr(rpr[1], terms[0], terms[2]);\n\n\t\treturn terms[0].join(\"\") + terms[1].replace(nlregex,'<br/>') + terms[2].join(\"\");\n\t}\n\treturn function parse_rs(rs) {\n\t\treturn rs.replace(rregex,\"\").split(rend).map(parse_r).join(\"\");\n\t};\n})();\n\n/* 18.4.8 si CT_Rst */\nvar sitregex = /<t[^>]*>([^<]*)<\\/t>/g, sirregex = /<r>/;\nfunction parse_si(x, opts) {\n\tvar html = opts ? opts.cellHTML : true;\n\tvar z = {};\n\tif(!x) return null;\n\tvar y;\n\t/* 18.4.12 t ST_Xstring (Plaintext String) */\n\tif(x.charCodeAt(1) === 116) {\n\t\tz.t = utf8read(unescapexml(x.substr(x.indexOf(\">\")+1).split(/<\\/t>/)[0]));\n\t\tz.r = x;\n\t\tif(html) z.h = z.t;\n\t}\n\t/* 18.4.4 r CT_RElt (Rich Text Run) */\n\telse if((y = x.match(sirregex))) {\n\t\tz.r = x;\n\t\tz.t = utf8read(unescapexml(x.match(sitregex).join(\"\").replace(tagregex,\"\")));\n\t\tif(html) z.h = parse_rs(x);\n\t}\n\t/* 18.4.3 phoneticPr CT_PhoneticPr (TODO: needed for Asian support) */\n\t/* 18.4.6 rPh CT_PhoneticRun (TODO: needed for Asian support) */\n\treturn z;\n}\n\n/* 18.4 Shared String Table */\nvar sstr0 = /<sst([^>]*)>([\\s\\S]*)<\\/sst>/;\nvar sstr1 = /<(?:si|sstItem)>/g;\nvar sstr2 = /<\\/(?:si|sstItem)>/;\nfunction parse_sst_xml(data, opts) {\n\tvar s = [], ss;\n\t/* 18.4.9 sst CT_Sst */\n\tvar sst = data.match(sstr0);\n\tif(isval(sst)) {\n\t\tss = sst[2].replace(sstr1,\"\").split(sstr2);\n\t\tfor(var i = 0; i != ss.length; ++i) {\n\t\t\tvar o = parse_si(ss[i], opts);\n\t\t\tif(o != null) s[s.length] = o;\n\t\t}\n\t\tsst = parsexmltag(sst[1]); s.Count = sst.count; s.Unique = sst.uniqueCount;\n\t}\n\treturn s;\n}\n\nRELS.SST = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings\";\nvar straywsregex = /^\\s|\\s$|[\\t\\n\\r]/;\nfunction write_sst_xml(sst, opts) {\n\tif(!opts.bookSST) return \"\";\n\tvar o = [XML_HEADER];\n\to[o.length] = (writextag('sst', null, {\n\t\txmlns: XMLNS.main[0],\n\t\tcount: sst.Count,\n\t\tuniqueCount: sst.Unique\n\t}));\n\tfor(var i = 0; i != sst.length; ++i) { if(sst[i] == null) continue;\n\t\tvar s = sst[i];\n\t\tvar sitag = \"<si>\";\n\t\tif(s.r) sitag += s.r;\n\t\telse {\n\t\t\tsitag += \"<t\";\n\t\t\tif(s.t.match(straywsregex)) sitag += ' xml:space=\"preserve\"';\n\t\t\tsitag += \">\" + escapexml(s.t) + \"</t>\";\n\t\t}\n\t\tsitag += \"</si>\";\n\t\to[o.length] = (sitag);\n\t}\n\tif(o.length>2){ o[o.length] = ('</sst>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.219 BrtBeginSst */\nfunction parse_BrtBeginSst(data, length) {\n\treturn [data.read_shift(4), data.read_shift(4)];\n}\n\n/* [MS-XLSB] 2.1.7.45 Shared Strings */\nfunction parse_sst_bin(data, opts) {\n\tvar s = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_sst(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtBeginSst': s.Count = val[0]; s.Unique = val[1]; break;\n\t\t\tcase 'BrtSSTItem': s.push(val); break;\n\t\t\tcase 'BrtEndSst': return true;\n\t\t\t/* TODO: produce a test case with a future record */\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn s;\n}\n\nfunction write_BrtBeginSst(sst, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, sst.Count);\n\to.write_shift(4, sst.Unique);\n\treturn o;\n}\n\nvar write_BrtSSTItem = write_RichStr;\n\nfunction write_sst_bin(sst, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginSst\", write_BrtBeginSst(sst));\n\tfor(var i = 0; i < sst.length; ++i) write_record(ba, \"BrtSSTItem\", write_BrtSSTItem(sst[i]));\n\twrite_record(ba, \"BrtEndSst\");\n\treturn ba.end();\n}\nfunction _JS2ANSI(str) { if(typeof cptable !== 'undefined') return cptable.utils.encode(1252, str); return str.split(\"\").map(function(x) { return x.charCodeAt(0); }); }\n\n/* [MS-OFFCRYPTO] 2.1.4 Version */\nfunction parse_Version(blob, length) {\n\tvar o = {};\n\to.Major = blob.read_shift(2);\n\to.Minor = blob.read_shift(2);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.2 Encryption Header */\nfunction parse_EncryptionHeader(blob, length) {\n\tvar o = {};\n\to.Flags = blob.read_shift(4);\n\n\t// Check if SizeExtra is 0x00000000\n\tvar tmp = blob.read_shift(4);\n\tif(tmp !== 0) throw 'Unrecognized SizeExtra: ' + tmp;\n\n\to.AlgID = blob.read_shift(4);\n\tswitch(o.AlgID) {\n\t\tcase 0: case 0x6801: case 0x660E: case 0x660F: case 0x6610: break;\n\t\tdefault: throw 'Unrecognized encryption algorithm: ' + o.AlgID;\n\t}\n\tparsenoop(blob, length-12);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.3 Encryption Verifier */\nfunction parse_EncryptionVerifier(blob, length) {\n\treturn parsenoop(blob, length);\n}\n/* [MS-OFFCRYPTO] 2.3.5.1 RC4 CryptoAPI Encryption Header */\nfunction parse_RC4CryptoHeader(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4;\n\tif(vers.Minor != 2) throw 'unrecognized minor version code: ' + vers.Minor;\n\tif(vers.Major > 4 || vers.Major < 2) throw 'unrecognized major version code: ' + vers.Major;\n\to.Flags = blob.read_shift(4); length -= 4;\n\tvar sz = blob.read_shift(4); length -= 4;\n\to.EncryptionHeader = parse_EncryptionHeader(blob, sz); length -= sz;\n\to.EncryptionVerifier = parse_EncryptionVerifier(blob, length);\n\treturn o;\n}\n/* [MS-OFFCRYPTO] 2.3.6.1 RC4 Encryption Header */\nfunction parse_RC4Header(blob, length) {\n\tvar o = {};\n\tvar vers = o.EncryptionVersionInfo = parse_Version(blob, 4); length -= 4;\n\tif(vers.Major != 1 || vers.Minor != 1) throw 'unrecognized version code ' + vers.Major + ' : ' + vers.Minor;\n\to.Salt = blob.read_shift(16);\n\to.EncryptedVerifier = blob.read_shift(16);\n\to.EncryptedVerifierHash = blob.read_shift(16);\n\treturn o;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.1 Binary Document Password Verifier Derivation */\nfunction crypto_CreatePasswordVerifier_Method1(Password) {\n\tvar Verifier = 0x0000, PasswordArray;\n\tvar PasswordDecoded = _JS2ANSI(Password);\n\tvar len = PasswordDecoded.length + 1, i, PasswordByte;\n\tvar Intermediate1, Intermediate2, Intermediate3;\n\tPasswordArray = new_raw_buf(len);\n\tPasswordArray[0] = PasswordDecoded.length;\n\tfor(i = 1; i != len; ++i) PasswordArray[i] = PasswordDecoded[i-1];\n\tfor(i = len-1; i >= 0; --i) {\n\t\tPasswordByte = PasswordArray[i];\n\t\tIntermediate1 = ((Verifier & 0x4000) === 0x0000) ? 0 : 1;\n\t\tIntermediate2 = (Verifier << 1) & 0x7FFF;\n\t\tIntermediate3 = Intermediate1 | Intermediate2;\n\t\tVerifier = Intermediate3 ^ PasswordByte;\n\t}\n\treturn Verifier ^ 0xCE4B;\n}\n\n/* [MS-OFFCRYPTO] 2.3.7.2 Binary Document XOR Array Initialization */\nvar crypto_CreateXorArray_Method1 = (function() {\n\tvar PadArray = [0xBB, 0xFF, 0xFF, 0xBA, 0xFF, 0xFF, 0xB9, 0x80, 0x00, 0xBE, 0x0F, 0x00, 0xBF, 0x0F, 0x00];\n\tvar InitialCode = [0xE1F0, 0x1D0F, 0xCC9C, 0x84C0, 0x110C, 0x0E10, 0xF1CE, 0x313E, 0x1872, 0xE139, 0xD40F, 0x84F9, 0x280C, 0xA96A, 0x4EC3];\n\tvar XorMatrix = [0xAEFC, 0x4DD9, 0x9BB2, 0x2745, 0x4E8A, 0x9D14, 0x2A09, 0x7B61, 0xF6C2, 0xFDA5, 0xEB6B, 0xC6F7, 0x9DCF, 0x2BBF, 0x4563, 0x8AC6, 0x05AD, 0x0B5A, 0x16B4, 0x2D68, 0x5AD0, 0x0375, 0x06EA, 0x0DD4, 0x1BA8, 0x3750, 0x6EA0, 0xDD40, 0xD849, 0xA0B3, 0x5147, 0xA28E, 0x553D, 0xAA7A, 0x44D5, 0x6F45, 0xDE8A, 0xAD35, 0x4A4B, 0x9496, 0x390D, 0x721A, 0xEB23, 0xC667, 0x9CEF, 0x29FF, 0x53FE, 0xA7FC, 0x5FD9, 0x47D3, 0x8FA6, 0x0F6D, 0x1EDA, 0x3DB4, 0x7B68, 0xF6D0, 0xB861, 0x60E3, 0xC1C6, 0x93AD, 0x377B, 0x6EF6, 0xDDEC, 0x45A0, 0x8B40, 0x06A1, 0x0D42, 0x1A84, 0x3508, 0x6A10, 0xAA51, 0x4483, 0x8906, 0x022D, 0x045A, 0x08B4, 0x1168, 0x76B4, 0xED68, 0xCAF1, 0x85C3, 0x1BA7, 0x374E, 0x6E9C, 0x3730, 0x6E60, 0xDCC0, 0xA9A1, 0x4363, 0x86C6, 0x1DAD, 0x3331, 0x6662, 0xCCC4, 0x89A9, 0x0373, 0x06E6, 0x0DCC, 0x1021, 0x2042, 0x4084, 0x8108, 0x1231, 0x2462, 0x48C4];\n\tvar Ror = function(Byte) { return ((Byte/2) | (Byte*128)) & 0xFF; };\n\tvar XorRor = function(byte1, byte2) { return Ror(byte1 ^ byte2); };\n\tvar CreateXorKey_Method1 = function(Password) {\n\t\tvar XorKey = InitialCode[Password.length - 1];\n\t\tvar CurrentElement = 0x68;\n\t\tfor(var i = Password.length-1; i >= 0; --i) {\n\t\t\tvar Char = Password[i];\n\t\t\tfor(var j = 0; j != 7; ++j) {\n\t\t\t\tif(Char & 0x40) XorKey ^= XorMatrix[CurrentElement];\n\t\t\t\tChar *= 2; --CurrentElement;\n\t\t\t}\n\t\t}\n\t\treturn XorKey;\n\t};\n\treturn function(password) {\n\t\tvar Password = _JS2ANSI(password);\n\t\tvar XorKey = CreateXorKey_Method1(Password);\n\t\tvar Index = Password.length;\n\t\tvar ObfuscationArray = new_raw_buf(16);\n\t\tfor(var i = 0; i != 16; ++i) ObfuscationArray[i] = 0x00;\n\t\tvar Temp, PasswordLastChar, PadIndex;\n\t\tif((Index & 1) === 1) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[0], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tPasswordLastChar = Password[Password.length - 1];\n\t\t\tObfuscationArray[Index] = XorRor(PasswordLastChar, Temp);\n\t\t}\n\t\twhile(Index > 0) {\n\t\t\t--Index;\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t}\n\t\tIndex = 15;\n\t\tPadIndex = 15 - Password.length;\n\t\twhile(PadIndex > 0) {\n\t\t\tTemp = XorKey >> 8;\n\t\t\tObfuscationArray[Index] = XorRor(PadArray[PadIndex], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t\tTemp = XorKey & 0xFF;\n\t\t\tObfuscationArray[Index] = XorRor(Password[Index], Temp);\n\t\t\t--Index;\n\t\t\t--PadIndex;\n\t\t}\n\t\treturn ObfuscationArray;\n\t};\n})();\n\n/* [MS-OFFCRYPTO] 2.3.7.3 Binary Document XOR Data Transformation Method 1 */\nvar crypto_DecryptData_Method1 = function(password, Data, XorArrayIndex, XorArray, O) {\n\t/* If XorArray is set, use it; if O is not set, make changes in-place */\n\tif(!O) O = Data;\n\tif(!XorArray) XorArray = crypto_CreateXorArray_Method1(password);\n\tvar Index, Value;\n\tfor(Index = 0; Index != Data.length; ++Index) {\n\t\tValue = Data[Index];\n\t\tValue ^= XorArray[XorArrayIndex];\n\t\tValue = ((Value>>5) | (Value<<3)) & 0xFF;\n\t\tO[Index] = Value;\n\t\t++XorArrayIndex;\n\t}\n\treturn [O, XorArrayIndex, XorArray];\n};\n\nvar crypto_MakeXorDecryptor = function(password) {\n\tvar XorArrayIndex = 0, XorArray = crypto_CreateXorArray_Method1(password);\n\treturn function(Data) {\n\t\tvar O = crypto_DecryptData_Method1(null, Data, XorArrayIndex, XorArray);\n\t\tXorArrayIndex = O[1];\n\t\treturn O[0];\n\t};\n};\n\n/* 2.5.343 */\nfunction parse_XORObfuscation(blob, length, opts, out) {\n\tvar o = { key: parseuint16(blob), verificationBytes: parseuint16(blob) };\n\tif(opts.password) o.verifier = crypto_CreatePasswordVerifier_Method1(opts.password);\n\tout.valid = o.verificationBytes === o.verifier;\n\tif(out.valid) out.insitu_decrypt = crypto_MakeXorDecryptor(opts.password);\n\treturn o;\n}\n\n/* 2.4.117 */\nfunction parse_FilePassHeader(blob, length, oo) {\n\tvar o = oo || {}; o.Info = blob.read_shift(2); blob.l -= 2;\n\tif(o.Info === 1) o.Data = parse_RC4Header(blob, length);\n\telse o.Data = parse_RC4CryptoHeader(blob, length);\n\treturn o;\n}\nfunction parse_FilePass(blob, length, opts) {\n\tvar o = { Type: blob.read_shift(2) }; /* wEncryptionType */\n\tif(o.Type) parse_FilePassHeader(blob, length-2, o);\n\telse parse_XORObfuscation(blob, length-2, opts, o);\n\treturn o;\n}\n\n\nfunction hex2RGB(h) {\n\tvar o = h.substr(h[0]===\"#\"?1:0,6);\n\treturn [parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16),parseInt(o.substr(0,2),16)];\n}\nfunction rgb2Hex(rgb) {\n\tfor(var i=0,o=1; i!=3; ++i) o = o*256 + (rgb[i]>255?255:rgb[i]<0?0:rgb[i]);\n\treturn o.toString(16).toUpperCase().substr(1);\n}\n\nfunction rgb2HSL(rgb) {\n\tvar R = rgb[0]/255, G = rgb[1]/255, B=rgb[2]/255;\n\tvar M = Math.max(R, G, B), m = Math.min(R, G, B), C = M - m;\n\tif(C === 0) return [0, 0, R];\n\n\tvar H6 = 0, S = 0, L2 = (M + m);\n\tS = C / (L2 > 1 ? 2 - L2 : L2);\n\tswitch(M){\n\t\tcase R: H6 = ((G - B) / C + 6)%6; break;\n\t\tcase G: H6 = ((B - R) / C + 2); break;\n\t\tcase B: H6 = ((R - G) / C + 4); break;\n\t}\n\treturn [H6 / 6, S, L2 / 2];\n}\n\nfunction hsl2RGB(hsl){\n\tvar H = hsl[0], S = hsl[1], L = hsl[2];\n\tvar C = S * 2 * (L < 0.5 ? L : 1 - L), m = L - C/2;\n\tvar rgb = [m,m,m], h6 = 6*H;\n\n\tvar X;\n\tif(S !== 0) switch(h6|0) {\n\t\tcase 0: case 6: X = C * h6; rgb[0] += C; rgb[1] += X; break;\n\t\tcase 1: X = C * (2 - h6); rgb[0] += X; rgb[1] += C; break;\n\t\tcase 2: X = C * (h6 - 2); rgb[1] += C; rgb[2] += X; break;\n\t\tcase 3: X = C * (4 - h6); rgb[1] += X; rgb[2] += C; break;\n\t\tcase 4: X = C * (h6 - 4); rgb[2] += C; rgb[0] += X; break;\n\t\tcase 5: X = C * (6 - h6); rgb[2] += X; rgb[0] += C; break;\n\t}\n\tfor(var i = 0; i != 3; ++i) rgb[i] = Math.round(rgb[i]*255);\n\treturn rgb;\n}\n\n/* 18.8.3 bgColor tint algorithm */\nfunction rgb_tint(hex, tint) {\n\tif(tint === 0) return hex;\n\tvar hsl = rgb2HSL(hex2RGB(hex));\n\tif (tint < 0) hsl[2] = hsl[2] * (1 + tint);\n\telse hsl[2] = 1 - (1 - hsl[2]) * (1 - tint);\n\treturn rgb2Hex(hsl2RGB(hsl));\n}\n\n/* 18.3.1.13 width calculations */\nvar DEF_MDW = 7, MAX_MDW = 15, MIN_MDW = 1, MDW = DEF_MDW;\nfunction width2px(width) { return (( width + ((128/MDW)|0)/256 )* MDW )|0; }\nfunction px2char(px) { return (((px - 5)/MDW * 100 + 0.5)|0)/100; }\nfunction char2width(chr) { return (((chr * MDW + 5)/MDW*256)|0)/256; }\nfunction cycle_width(collw) { return char2width(px2char(width2px(collw))); }\nfunction find_mdw(collw, coll) {\n\tif(cycle_width(collw) != collw) {\n\t\tfor(MDW=DEF_MDW; MDW>MIN_MDW; --MDW) if(cycle_width(collw) === collw) break;\n\t\tif(MDW === MIN_MDW) for(MDW=DEF_MDW+1; MDW<MAX_MDW; ++MDW) if(cycle_width(collw) === collw) break;\n\t\tif(MDW === MAX_MDW) MDW = DEF_MDW;\n\t}\n}\n\n/* [MS-EXSPXML3] 2.4.54 ST_enmPattern */\nvar XLMLPatternTypeMap = {\n\t\"None\": \"none\",\n\t\"Solid\": \"solid\",\n\t\"Gray50\": \"mediumGray\",\n\t\"Gray75\": \"darkGray\",\n\t\"Gray25\": \"lightGray\",\n\t\"HorzStripe\": \"darkHorizontal\",\n\t\"VertStripe\": \"darkVertical\",\n\t\"ReverseDiagStripe\": \"darkDown\",\n\t\"DiagStripe\": \"darkUp\",\n\t\"DiagCross\": \"darkGrid\",\n\t\"ThickDiagCross\": \"darkTrellis\",\n\t\"ThinHorzStripe\": \"lightHorizontal\",\n\t\"ThinVertStripe\": \"lightVertical\",\n\t\"ThinReverseDiagStripe\": \"lightDown\",\n\t\"ThinHorzCross\": \"lightGrid\"\n};\n\nvar styles = {}; // shared styles\n\nvar themes = {}; // shared themes\n\n/* 18.8.21 fills CT_Fills */\nfunction parse_fills(t, opts) {\n\tstyles.Fills = [];\n\tvar fill = {};\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<fills': case '<fills>': case '</fills>': break;\n\n\t\t\t/* 18.8.20 fill CT_Fill */\n\t\t\tcase '<fill>': break;\n\t\t\tcase '</fill>': styles.Fills.push(fill); fill = {}; break;\n\n\t\t\t/* 18.8.32 patternFill CT_PatternFill */\n\t\t\tcase '<patternFill':\n\t\t\t\tif(y.patternType) fill.patternType = y.patternType;\n\t\t\t\tbreak;\n\t\t\tcase '<patternFill/>': case '</patternFill>': break;\n\n\t\t\t/* 18.8.3 bgColor CT_Color */\n\t\t\tcase '<bgColor':\n\t\t\t\tif(!fill.bgColor) fill.bgColor = {};\n\t\t\t\tif(y.indexed) fill.bgColor.indexed = parseInt(y.indexed, 10);\n\t\t\t\tif(y.theme) fill.bgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.bgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.bgColor.rgb = y.rgb.substring(y.rgb.length - 6);\n\t\t\t\tbreak;\n\t\t\tcase '<bgColor/>': case '</bgColor>': break;\n\n\t\t\t/* 18.8.19 fgColor CT_Color */\n\t\t\tcase '<fgColor':\n\t\t\t\tif(!fill.fgColor) fill.fgColor = {};\n\t\t\t\tif(y.theme) fill.fgColor.theme = parseInt(y.theme, 10);\n\t\t\t\tif(y.tint) fill.fgColor.tint = parseFloat(y.tint);\n\t\t\t\t/* Excel uses ARGB strings */\n\t\t\t\tif(y.rgb) fill.fgColor.rgb = y.rgb.substring(y.rgb.length - 6);\n\t\t\t\tbreak;\n\t\t\tcase '<fgColor/>': case '</fgColor>': break;\n\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in fills';\n\t\t}\n\t});\n}\n\n/* 18.8.31 numFmts CT_NumFmts */\nfunction parse_numFmts(t, opts) {\n\tstyles.NumberFmt = [];\n\tvar k = keys(SSF._table);\n\tfor(var i=0; i < k.length; ++i) styles.NumberFmt[k[i]] = SSF._table[k[i]];\n\tvar m = t[0].match(tagregex);\n\tfor(i=0; i < m.length; ++i) {\n\t\tvar y = parsexmltag(m[i]);\n\t\tswitch(y[0]) {\n\t\t\tcase '<numFmts': case '</numFmts>': case '<numFmts/>': case '<numFmts>': break;\n\t\t\tcase '<numFmt': {\n\t\t\t\tvar f=unescapexml(utf8read(y.formatCode)), j=parseInt(y.numFmtId,10);\n\t\t\t\tstyles.NumberFmt[j] = f; if(j>0) SSF.load(f,j);\n\t\t\t} break;\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in numFmts';\n\t\t}\n\t}\n}\n\nfunction write_numFmts(NF, opts) {\n\tvar o = [\"<numFmts>\"];\n\t[[5,8],[23,26],[41,44],[63,66],[164,392]].forEach(function(r) {\n\t\tfor(var i = r[0]; i <= r[1]; ++i) if(NF[i] !== undefined) o[o.length] = (writextag('numFmt',null,{numFmtId:i,formatCode:escapexml(NF[i])}));\n\t});\n\tif(o.length === 1) return \"\";\n\to[o.length] = (\"</numFmts>\");\n\to[0] = writextag('numFmts', null, { count:o.length-2 }).replace(\"/>\", \">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8.10 cellXfs CT_CellXfs */\nfunction parse_cellXfs(t, opts) {\n\tstyles.CellXf = [];\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<cellXfs': case '<cellXfs>': case '<cellXfs/>': case '</cellXfs>': break;\n\n\t\t\t/* 18.8.45 xf CT_Xf */\n\t\t\tcase '<xf': delete y[0];\n\t\t\t\tif(y.numFmtId) y.numFmtId = parseInt(y.numFmtId, 10);\n\t\t\t\tif(y.fillId) y.fillId = parseInt(y.fillId, 10);\n\t\t\t\tstyles.CellXf.push(y); break;\n\t\t\tcase '</xf>': break;\n\n\t\t\t/* 18.8.1 alignment CT_CellAlignment */\n\t\t\tcase '<alignment': case '<alignment/>': break;\n\n\t\t\t/* 18.8.33 protection CT_CellProtection */\n\t\t\tcase '<protection': case '</protection>': case '<protection/>': break;\n\n\t\t\tcase '<extLst': case '</extLst>': break;\n\t\t\tcase '<ext': break;\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in cellXfs';\n\t\t}\n\t});\n}\n\nfunction write_cellXfs(cellXfs) {\n\tvar o = [];\n\to[o.length] = (writextag('cellXfs',null));\n\tcellXfs.forEach(function(c) { o[o.length] = (writextag('xf', null, c)); });\n\to[o.length] = (\"</cellXfs>\");\n\tif(o.length === 2) return \"\";\n\to[0] = writextag('cellXfs',null, {count:o.length-2}).replace(\"/>\",\">\");\n\treturn o.join(\"\");\n}\n\n/* 18.8 Styles CT_Stylesheet*/\nvar parse_sty_xml= (function make_pstyx() {\nvar numFmtRegex = /<numFmts([^>]*)>.*<\\/numFmts>/;\nvar cellXfRegex = /<cellXfs([^>]*)>.*<\\/cellXfs>/;\nvar fillsRegex = /<fills([^>]*)>.*<\\/fills>/;\n\nreturn function parse_sty_xml(data, opts) {\n\t/* 18.8.39 styleSheet CT_Stylesheet */\n\tvar t;\n\n\t/* numFmts CT_NumFmts ? */\n\tif((t=data.match(numFmtRegex))) parse_numFmts(t, opts);\n\n\t/* fonts CT_Fonts ? */\n\t/*if((t=data.match(/<fonts([^>]*)>.*<\\/fonts>/))) parse_fonts(t, opts);*/\n\n\t/* fills CT_Fills */\n\tif((t=data.match(fillsRegex))) parse_fills(t, opts);\n\n\t/* borders CT_Borders ? */\n\t/* cellStyleXfs CT_CellStyleXfs ? */\n\n\t/* cellXfs CT_CellXfs ? */\n\tif((t=data.match(cellXfRegex))) parse_cellXfs(t, opts);\n\n\t/* dxfs CT_Dxfs ? */\n\t/* tableStyles CT_TableStyles ? */\n\t/* colors CT_Colors ? */\n\t/* extLst CT_ExtensionList ? */\n\n\treturn styles;\n};\n})();\n\nvar STYLES_XML_ROOT = writextag('styleSheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:vt': XMLNS.vt\n});\n\nRELS.STY = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles\";\n\nfunction write_sty_xml(wb, opts) {\n\tvar o = [XML_HEADER, STYLES_XML_ROOT], w;\n\tif((w = write_numFmts(wb.SSF)) != null) o[o.length] = w;\n\to[o.length] = ('<fonts count=\"1\"><font><sz val=\"12\"/><color theme=\"1\"/><name val=\"Calibri\"/><family val=\"2\"/><scheme val=\"minor\"/></font></fonts>');\n\to[o.length] = ('<fills count=\"2\"><fill><patternFill patternType=\"none\"/></fill><fill><patternFill patternType=\"gray125\"/></fill></fills>');\n\to[o.length] = ('<borders count=\"1\"><border><left/><right/><top/><bottom/><diagonal/></border></borders>');\n\to[o.length] = ('<cellStyleXfs count=\"1\"><xf numFmtId=\"0\" fontId=\"0\" fillId=\"0\" borderId=\"0\"/></cellStyleXfs>');\n\tif((w = write_cellXfs(opts.cellXfs))) o[o.length] = (w);\n\to[o.length] = ('<cellStyles count=\"1\"><cellStyle name=\"Normal\" xfId=\"0\" builtinId=\"0\"/></cellStyles>');\n\to[o.length] = ('<dxfs count=\"0\"/>');\n\to[o.length] = ('<tableStyles count=\"0\" defaultTableStyle=\"TableStyleMedium9\" defaultPivotStyle=\"PivotStyleMedium4\"/>');\n\n\tif(o.length>2){ o[o.length] = ('</styleSheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.651 BrtFmt */\nfunction parse_BrtFmt(data, length) {\n\tvar ifmt = data.read_shift(2);\n\tvar stFmtCode = parse_XLWideString(data,length-2);\n\treturn [ifmt, stFmtCode];\n}\n\n/* [MS-XLSB] 2.4.653 BrtFont TODO */\nfunction parse_BrtFont(data, length) {\n\tvar out = {flags:{}};\n\tout.dyHeight = data.read_shift(2);\n\tout.grbit = parse_FontFlags(data, 2);\n\tout.bls = data.read_shift(2);\n\tout.sss = data.read_shift(2);\n\tout.uls = data.read_shift(1);\n\tout.bFamily = data.read_shift(1);\n\tout.bCharSet = data.read_shift(1);\n\tdata.l++;\n\tout.brtColor = parse_BrtColor(data, 8);\n\tout.bFontScheme = data.read_shift(1);\n\tout.name = parse_XLWideString(data, length - 21);\n\n\tout.flags.Bold = out.bls === 0x02BC;\n\tout.flags.Italic = out.grbit.fItalic;\n\tout.flags.Strikeout = out.grbit.fStrikeout;\n\tout.flags.Outline = out.grbit.fOutline;\n\tout.flags.Shadow = out.grbit.fShadow;\n\tout.flags.Condense = out.grbit.fCondense;\n\tout.flags.Extend = out.grbit.fExtend;\n\tout.flags.Sub = out.sss & 0x2;\n\tout.flags.Sup = out.sss & 0x1;\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.816 BrtXF */\nfunction parse_BrtXF(data, length) {\n\tvar ixfeParent = data.read_shift(2);\n\tvar ifmt = data.read_shift(2);\n\tparsenoop(data, length-4);\n\treturn {ixfe:ixfeParent, ifmt:ifmt };\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction parse_sty_bin(data, opts) {\n\tstyles.NumberFmt = [];\n\tfor(var y in SSF._table) styles.NumberFmt[y] = SSF._table[y];\n\n\tstyles.CellXf = [];\n\tvar state = \"\"; /* TODO: this should be a stack */\n\tvar pass = false;\n\trecordhopper(data, function hopper_sty(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtFmt':\n\t\t\t\tstyles.NumberFmt[val[0]] = val[1]; SSF.load(val[1], val[0]);\n\t\t\t\tbreak;\n\t\t\tcase 'BrtFont': break; /* TODO */\n\t\t\tcase 'BrtKnownFonts': break; /* TODO */\n\t\t\tcase 'BrtFill': break; /* TODO */\n\t\t\tcase 'BrtBorder': break; /* TODO */\n\t\t\tcase 'BrtXF':\n\t\t\t\tif(state === \"CELLXFS\") {\n\t\t\t\t\tstyles.CellXf.push(val);\n\t\t\t\t}\n\t\t\t\tbreak; /* TODO */\n\t\t\tcase 'BrtStyle': break; /* TODO */\n\t\t\tcase 'BrtDXF': break; /* TODO */\n\t\t\tcase 'BrtMRUColor': break; /* TODO */\n\t\t\tcase 'BrtIndexedColor': break; /* TODO */\n\t\t\tcase 'BrtBeginStyleSheet': break;\n\t\t\tcase 'BrtEndStyleSheet': break;\n\t\t\tcase 'BrtBeginTableStyle': break;\n\t\t\tcase 'BrtTableStyleElement': break;\n\t\t\tcase 'BrtEndTableStyle': break;\n\t\t\tcase 'BrtBeginFmts': state = \"FMTS\"; break;\n\t\t\tcase 'BrtEndFmts': state = \"\"; break;\n\t\t\tcase 'BrtBeginFonts': state = \"FONTS\"; break;\n\t\t\tcase 'BrtEndFonts': state = \"\"; break;\n\t\t\tcase 'BrtACBegin': state = \"ACFONTS\"; break;\n\t\t\tcase 'BrtACEnd': state = \"\"; break;\n\t\t\tcase 'BrtBeginFills': state = \"FILLS\"; break;\n\t\t\tcase 'BrtEndFills': state = \"\"; break;\n\t\t\tcase 'BrtBeginBorders': state = \"BORDERS\"; break;\n\t\t\tcase 'BrtEndBorders': state = \"\"; break;\n\t\t\tcase 'BrtBeginCellStyleXFs': state = \"CELLSTYLEXFS\"; break;\n\t\t\tcase 'BrtEndCellStyleXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginCellXFs': state = \"CELLXFS\"; break;\n\t\t\tcase 'BrtEndCellXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginStyles': state = \"STYLES\"; break;\n\t\t\tcase 'BrtEndStyles': state = \"\"; break;\n\t\t\tcase 'BrtBeginDXFs': state = \"DXFS\"; break;\n\t\t\tcase 'BrtEndDXFs': state = \"\"; break;\n\t\t\tcase 'BrtBeginTableStyles': state = \"TABLESTYLES\"; break;\n\t\t\tcase 'BrtEndTableStyles': state = \"\"; break;\n\t\t\tcase 'BrtBeginColorPalette': state = \"COLORPALETTE\"; break;\n\t\t\tcase 'BrtEndColorPalette': state = \"\"; break;\n\t\t\tcase 'BrtBeginIndexedColors': state = \"INDEXEDCOLORS\"; break;\n\t\t\tcase 'BrtEndIndexedColors': state = \"\"; break;\n\t\t\tcase 'BrtBeginMRUColors': state = \"MRUCOLORS\"; break;\n\t\t\tcase 'BrtEndMRUColors': state = \"\"; break;\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtBeginStyleSheetExt14': break;\n\t\t\tcase 'BrtBeginSlicerStyles': break;\n\t\t\tcase 'BrtEndSlicerStyles': break;\n\t\t\tcase 'BrtBeginTimelineStylesheetExt15': break;\n\t\t\tcase 'BrtEndTimelineStylesheetExt15': break;\n\t\t\tcase 'BrtBeginTimelineStyles': break;\n\t\t\tcase 'BrtEndTimelineStyles': break;\n\t\t\tcase 'BrtEndStyleSheetExt14': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn styles;\n}\n\n/* [MS-XLSB] 2.1.7.50 Styles */\nfunction write_sty_bin(data, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginStyleSheet\");\n\t/* [FMTS] */\n\t/* [FONTS] */\n\t/* [FILLS] */\n\t/* [BORDERS] */\n\t/* CELLSTYLEXFS */\n\t/* CELLXFS*/\n\t/* STYLES */\n\t/* DXFS */\n\t/* TABLESTYLES */\n\t/* [COLORPALETTE] */\n\t/* FRTSTYLESHEET*/\n\twrite_record(ba, \"BrtEndStyleSheet\");\n\treturn ba.end();\n}\nRELS.THEME = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme\";\n\n/* 20.1.6.2 clrScheme CT_ColorScheme */\nfunction parse_clrScheme(t, opts) {\n\tthemes.themeElements.clrScheme = [];\n\tvar color = {};\n\tt[0].match(tagregex).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<a:clrScheme': case '</a:clrScheme>': break;\n\n\t\t\t/* 20.1.2.3.32 srgbClr CT_SRgbColor */\n\t\t\tcase '<a:srgbClr': color.rgb = y.val; break;\n\n\t\t\t/* 20.1.2.3.33 sysClr CT_SystemColor */\n\t\t\tcase '<a:sysClr': color.rgb = y.lastClr; break;\n\n\t\t\t/* 20.1.4.1.9 dk1 (Dark 1) */\n\t\t\tcase '<a:dk1>':\n\t\t\tcase '</a:dk1>':\n\t\t\t/* 20.1.4.1.10 dk2 (Dark 2) */\n\t\t\tcase '<a:dk2>':\n\t\t\tcase '</a:dk2>':\n\t\t\t/* 20.1.4.1.22 lt1 (Light 1) */\n\t\t\tcase '<a:lt1>':\n\t\t\tcase '</a:lt1>':\n\t\t\t/* 20.1.4.1.23 lt2 (Light 2) */\n\t\t\tcase '<a:lt2>':\n\t\t\tcase '</a:lt2>':\n\t\t\t/* 20.1.4.1.1 accent1 (Accent 1) */\n\t\t\tcase '<a:accent1>':\n\t\t\tcase '</a:accent1>':\n\t\t\t/* 20.1.4.1.2 accent2 (Accent 2) */\n\t\t\tcase '<a:accent2>':\n\t\t\tcase '</a:accent2>':\n\t\t\t/* 20.1.4.1.3 accent3 (Accent 3) */\n\t\t\tcase '<a:accent3>':\n\t\t\tcase '</a:accent3>':\n\t\t\t/* 20.1.4.1.4 accent4 (Accent 4) */\n\t\t\tcase '<a:accent4>':\n\t\t\tcase '</a:accent4>':\n\t\t\t/* 20.1.4.1.5 accent5 (Accent 5) */\n\t\t\tcase '<a:accent5>':\n\t\t\tcase '</a:accent5>':\n\t\t\t/* 20.1.4.1.6 accent6 (Accent 6) */\n\t\t\tcase '<a:accent6>':\n\t\t\tcase '</a:accent6>':\n\t\t\t/* 20.1.4.1.19 hlink (Hyperlink) */\n\t\t\tcase '<a:hlink>':\n\t\t\tcase '</a:hlink>':\n\t\t\t/* 20.1.4.1.15 folHlink (Followed Hyperlink) */\n\t\t\tcase '<a:folHlink>':\n\t\t\tcase '</a:folHlink>':\n\t\t\t\tif (y[0][1] === '/') {\n\t\t\t\t\tthemes.themeElements.clrScheme.push(color);\n\t\t\t\t\tcolor = {};\n\t\t\t\t} else {\n\t\t\t\t\tcolor.name = y[0].substring(3, y[0].length - 1);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tdefault: if(opts.WTF) throw 'unrecognized ' + y[0] + ' in clrScheme';\n\t\t}\n\t});\n}\n\n/* 20.1.4.1.18 fontScheme CT_FontScheme */\nfunction parse_fontScheme(t, opts) { }\n\n/* 20.1.4.1.15 fmtScheme CT_StyleMatrix */\nfunction parse_fmtScheme(t, opts) { }\n\nvar clrsregex = /<a:clrScheme([^>]*)>[^\\u2603]*<\\/a:clrScheme>/;\nvar fntsregex = /<a:fontScheme([^>]*)>[^\\u2603]*<\\/a:fontScheme>/;\nvar fmtsregex = /<a:fmtScheme([^>]*)>[^\\u2603]*<\\/a:fmtScheme>/;\n\n/* 20.1.6.10 themeElements CT_BaseStyles */\nfunction parse_themeElements(data, opts) {\n\tthemes.themeElements = {};\n\n\tvar t;\n\n\t[\n\t\t/* clrScheme CT_ColorScheme */\n\t\t['clrScheme', clrsregex, parse_clrScheme],\n\t\t/* fontScheme CT_FontScheme */\n\t\t['fontScheme', fntsregex, parse_fontScheme],\n\t\t/* fmtScheme CT_StyleMatrix */\n\t\t['fmtScheme', fmtsregex, parse_fmtScheme]\n\t].forEach(function(m) {\n\t\tif(!(t=data.match(m[1]))) throw m[0] + ' not found in themeElements';\n\t\tm[2](t, opts);\n\t});\n}\n\nvar themeltregex = /<a:themeElements([^>]*)>[^\\u2603]*<\\/a:themeElements>/;\n\n/* 14.2.7 Theme Part */\nfunction parse_theme_xml(data, opts) {\n\t/* 20.1.6.9 theme CT_OfficeStyleSheet */\n\tif(!data || data.length === 0) return themes;\n\n\tvar t;\n\n\t/* themeElements CT_BaseStyles */\n\tif(!(t=data.match(themeltregex))) throw 'themeElements not found in theme';\n\tparse_themeElements(t[0], opts);\n\n\treturn themes;\n}\n\nfunction write_theme() { return '<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"yes\"?>\\n<a:theme xmlns:a=\"http://schemas.openxmlformats.org/drawingml/2006/main\" name=\"Office Theme\"><a:themeElements><a:clrScheme name=\"Office\"><a:dk1><a:sysClr val=\"windowText\" lastClr=\"000000\"/></a:dk1><a:lt1><a:sysClr val=\"window\" lastClr=\"FFFFFF\"/></a:lt1><a:dk2><a:srgbClr val=\"1F497D\"/></a:dk2><a:lt2><a:srgbClr val=\"EEECE1\"/></a:lt2><a:accent1><a:srgbClr val=\"4F81BD\"/></a:accent1><a:accent2><a:srgbClr val=\"C0504D\"/></a:accent2><a:accent3><a:srgbClr val=\"9BBB59\"/></a:accent3><a:accent4><a:srgbClr val=\"8064A2\"/></a:accent4><a:accent5><a:srgbClr val=\"4BACC6\"/></a:accent5><a:accent6><a:srgbClr val=\"F79646\"/></a:accent6><a:hlink><a:srgbClr val=\"0000FF\"/></a:hlink><a:folHlink><a:srgbClr val=\"800080\"/></a:folHlink></a:clrScheme><a:fontScheme name=\"Office\"><a:majorFont><a:latin typeface=\"Cambria\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"宋体\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Times New Roman\"/><a:font script=\"Hebr\" typeface=\"Times New Roman\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"MoolBoran\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Times New Roman\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:majorFont><a:minorFont><a:latin typeface=\"Calibri\"/><a:ea typeface=\"\"/><a:cs typeface=\"\"/><a:font script=\"Jpan\" typeface=\"MS Pゴシック\"/><a:font script=\"Hang\" typeface=\"맑은 고딕\"/><a:font script=\"Hans\" typeface=\"宋体\"/><a:font script=\"Hant\" typeface=\"新細明體\"/><a:font script=\"Arab\" typeface=\"Arial\"/><a:font script=\"Hebr\" typeface=\"Arial\"/><a:font script=\"Thai\" typeface=\"Tahoma\"/><a:font script=\"Ethi\" typeface=\"Nyala\"/><a:font script=\"Beng\" typeface=\"Vrinda\"/><a:font script=\"Gujr\" typeface=\"Shruti\"/><a:font script=\"Khmr\" typeface=\"DaunPenh\"/><a:font script=\"Knda\" typeface=\"Tunga\"/><a:font script=\"Guru\" typeface=\"Raavi\"/><a:font script=\"Cans\" typeface=\"Euphemia\"/><a:font script=\"Cher\" typeface=\"Plantagenet Cherokee\"/><a:font script=\"Yiii\" typeface=\"Microsoft Yi Baiti\"/><a:font script=\"Tibt\" typeface=\"Microsoft Himalaya\"/><a:font script=\"Thaa\" typeface=\"MV Boli\"/><a:font script=\"Deva\" typeface=\"Mangal\"/><a:font script=\"Telu\" typeface=\"Gautami\"/><a:font script=\"Taml\" typeface=\"Latha\"/><a:font script=\"Syrc\" typeface=\"Estrangelo Edessa\"/><a:font script=\"Orya\" typeface=\"Kalinga\"/><a:font script=\"Mlym\" typeface=\"Kartika\"/><a:font script=\"Laoo\" typeface=\"DokChampa\"/><a:font script=\"Sinh\" typeface=\"Iskoola Pota\"/><a:font script=\"Mong\" typeface=\"Mongolian Baiti\"/><a:font script=\"Viet\" typeface=\"Arial\"/><a:font script=\"Uigh\" typeface=\"Microsoft Uighur\"/><a:font script=\"Geor\" typeface=\"Sylfaen\"/></a:minorFont></a:fontScheme><a:fmtScheme name=\"Office\"><a:fillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"35000\"><a:schemeClr val=\"phClr\"><a:tint val=\"37000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"15000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"16200000\" scaled=\"1\"/></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"100000\"/><a:shade val=\"100000\"/><a:satMod val=\"130000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:tint val=\"50000\"/><a:shade val=\"100000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs></a:gsLst><a:lin ang=\"16200000\" scaled=\"0\"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w=\"9525\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"><a:shade val=\"95000\"/><a:satMod val=\"105000\"/></a:schemeClr></a:solidFill><a:prstDash val=\"solid\"/></a:ln><a:ln w=\"25400\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln><a:ln w=\"38100\" cap=\"flat\" cmpd=\"sng\" algn=\"ctr\"><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:prstDash val=\"solid\"/></a:ln></a:lnStyleLst><a:effectStyleLst><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"20000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"38000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad=\"40000\" dist=\"23000\" dir=\"5400000\" rotWithShape=\"0\"><a:srgbClr val=\"000000\"><a:alpha val=\"35000\"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst=\"orthographicFront\"><a:rot lat=\"0\" lon=\"0\" rev=\"0\"/></a:camera><a:lightRig rig=\"threePt\" dir=\"t\"><a:rot lat=\"0\" lon=\"0\" rev=\"1200000\"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w=\"63500\" h=\"25400\"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val=\"phClr\"/></a:solidFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"40000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs><a:gs pos=\"40000\"><a:schemeClr val=\"phClr\"><a:tint val=\"45000\"/><a:shade val=\"99000\"/><a:satMod val=\"350000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"20000\"/><a:satMod val=\"255000\"/></a:schemeClr></a:gs></a:gsLst><a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"-80000\" r=\"50000\" b=\"180000\"/></a:path></a:gradFill><a:gradFill rotWithShape=\"1\"><a:gsLst><a:gs pos=\"0\"><a:schemeClr val=\"phClr\"><a:tint val=\"80000\"/><a:satMod val=\"300000\"/></a:schemeClr></a:gs><a:gs pos=\"100000\"><a:schemeClr val=\"phClr\"><a:shade val=\"30000\"/><a:satMod val=\"200000\"/></a:schemeClr></a:gs></a:gsLst><a:path path=\"circle\"><a:fillToRect l=\"50000\" t=\"50000\" r=\"50000\" b=\"50000\"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme></a:themeElements><a:objectDefaults><a:spDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"3\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"lt1\"/></a:fontRef></a:style></a:spDef><a:lnDef><a:spPr/><a:bodyPr/><a:lstStyle/><a:style><a:lnRef idx=\"2\"><a:schemeClr val=\"accent1\"/></a:lnRef><a:fillRef idx=\"0\"><a:schemeClr val=\"accent1\"/></a:fillRef><a:effectRef idx=\"1\"><a:schemeClr val=\"accent1\"/></a:effectRef><a:fontRef idx=\"minor\"><a:schemeClr val=\"tx1\"/></a:fontRef></a:style></a:lnDef></a:objectDefaults><a:extraClrSchemeLst/></a:theme>'; }\n/* [MS-XLS] 2.4.326 TODO: payload is a zip file */\nfunction parse_Theme(blob, length) {\n\tvar dwThemeVersion = blob.read_shift(4);\n\tif(dwThemeVersion === 124226) return;\n\tblob.l += length-4;\n}\n\n/* 2.5.49 */\nfunction parse_ColorTheme(blob, length) { return blob.read_shift(4); }\n\n/* 2.5.155 */\nfunction parse_FullColorExt(blob, length) {\n\tvar o = {};\n\to.xclrType = blob.read_shift(2);\n\to.nTintShade = blob.read_shift(2);\n\tswitch(o.xclrType) {\n\t\tcase 0: blob.l += 4; break;\n\t\tcase 1: o.xclrValue = parse_IcvXF(blob, 4); break;\n\t\tcase 2: o.xclrValue = parse_LongRGBA(blob, 4); break;\n\t\tcase 3: o.xclrValue = parse_ColorTheme(blob, 4); break;\n\t\tcase 4: blob.l += 4; break;\n\t}\n\tblob.l += 8;\n\treturn o;\n}\n\n/* 2.5.164 TODO: read 7 bits*/\nfunction parse_IcvXF(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.280 */\nfunction parse_XFExtGradient(blob, length) {\n\treturn parsenoop(blob, length);\n}\n\n/* 2.5.108 */\nfunction parse_ExtProp(blob, length) {\n\tvar extType = blob.read_shift(2);\n\tvar cb = blob.read_shift(2);\n\tvar o = [extType];\n\tswitch(extType) {\n\t\tcase 0x04: case 0x05: case 0x07: case 0x08:\n\t\tcase 0x09: case 0x0A: case 0x0B: case 0x0D:\n\t\t\to[1] = parse_FullColorExt(blob, cb); break;\n\t\tcase 0x06: o[1] = parse_XFExtGradient(blob, cb); break;\n\t\tcase 0x0E: case 0x0F: o[1] = blob.read_shift(cb === 5 ? 1 : 2); break;\n\t\tdefault: throw new Error(\"Unrecognized ExtProp type: \" + extType + \" \" + cb);\n\t}\n\treturn o;\n}\n\n/* 2.4.355 */\nfunction parse_XFExt(blob, length) {\n\tvar end = blob.l + length;\n\tblob.l += 2;\n\tvar ixfe = blob.read_shift(2);\n\tblob.l += 2;\n\tvar cexts = blob.read_shift(2);\n\tvar ext = [];\n\twhile(cexts-- > 0) ext.push(parse_ExtProp(blob, end-blob.l));\n\treturn {ixfe:ixfe, ext:ext};\n}\n\n/* xf is an XF, see parse_XFExt for xfext */\nfunction update_xfext(xf, xfext) {\n\txfext.forEach(function(xfe) {\n\t\tswitch(xfe[0]) { /* 2.5.108 extPropData */\n\t\t\tcase 0x04: break; /* foreground color */\n\t\t\tcase 0x05: break; /* background color */\n\t\t\tcase 0x07: case 0x08: case 0x09: case 0x0a: break;\n\t\t\tcase 0x0d: break; /* text color */\n\t\t\tcase 0x0e: break; /* font scheme */\n\t\t\tdefault: throw \"bafuq\" + xfe[0].toString(16);\n\t\t}\n\t});\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_xml(data, opts) {\n\tvar d = [];\n\tvar l = 0, i = 1;\n\t(data.match(tagregex)||[]).forEach(function(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(y[0]) {\n\t\t\tcase '<?xml': break;\n\t\t\t/* 18.6.2 calcChain CT_CalcChain 1 */\n\t\t\tcase '<calcChain': case '<calcChain>': case '</calcChain>': break;\n\t\t\t/* 18.6.1 c CT_CalcCell 1 */\n\t\t\tcase '<c': delete y[0]; if(y.i) i = y.i; else y.i = i; d.push(y); break;\n\t\t}\n\t});\n\treturn d;\n}\n\nfunction write_cc_xml(data, opts) { }\n/* [MS-XLSB] 2.6.4.1 */\nfunction parse_BrtCalcChainItem$(data, length) {\n\tvar out = {};\n\tout.i = data.read_shift(4);\n\tvar cell = {};\n\tcell.r = data.read_shift(4);\n\tcell.c = data.read_shift(4);\n\tout.r = encode_cell(cell);\n\tvar flags = data.read_shift(1);\n\tif(flags & 0x2) out.l = '1';\n\tif(flags & 0x8) out.a = '1';\n\treturn out;\n}\n\n/* 18.6 Calculation Chain */\nfunction parse_cc_bin(data, opts) {\n\tvar out = [];\n\tvar pass = false;\n\trecordhopper(data, function hopper_cc(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtCalcChainItem$': out.push(val); break;\n\t\t\tcase 'BrtBeginCalcChain$': break;\n\t\t\tcase 'BrtEndCalcChain$': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_cc_bin(data, opts) { }\n\nfunction parse_comments(zip, dirComments, sheets, sheetRels, opts) {\n\tfor(var i = 0; i != dirComments.length; ++i) {\n\t\tvar canonicalpath=dirComments[i];\n\t\tvar comments=parse_cmnt(getzipdata(zip, canonicalpath.replace(/^\\//,''), true), canonicalpath, opts);\n\t\tif(!comments || !comments.length) continue;\n\t\t// find the sheets targeted by these comments\n\t\tvar sheetNames = keys(sheets);\n\t\tfor(var j = 0; j != sheetNames.length; ++j) {\n\t\t\tvar sheetName = sheetNames[j];\n\t\t\tvar rels = sheetRels[sheetName];\n\t\t\tif(rels) {\n\t\t\t\tvar rel = rels[canonicalpath];\n\t\t\t\tif(rel) insertCommentsIntoSheet(sheetName, sheets[sheetName], comments);\n\t\t\t}\n\t\t}\n\t}\n}\n\nfunction insertCommentsIntoSheet(sheetName, sheet, comments) {\n\tcomments.forEach(function(comment) {\n\t\tvar cell = sheet[comment.ref];\n\t\tif (!cell) {\n\t\t\tcell = {};\n\t\t\tsheet[comment.ref] = cell;\n\t\t\tvar range = safe_decode_range(sheet[\"!ref\"]||\"BDWGO1000001:A1\");\n\t\t\tvar thisCell = decode_cell(comment.ref);\n\t\t\tif(range.s.r > thisCell.r) range.s.r = thisCell.r;\n\t\t\tif(range.e.r < thisCell.r) range.e.r = thisCell.r;\n\t\t\tif(range.s.c > thisCell.c) range.s.c = thisCell.c;\n\t\t\tif(range.e.c < thisCell.c) range.e.c = thisCell.c;\n\t\t\tvar encoded = encode_range(range);\n\t\t\tif (encoded !== sheet[\"!ref\"]) sheet[\"!ref\"] = encoded;\n\t\t}\n\n\t\tif (!cell.c) cell.c = [];\n\t\tvar o = {a: comment.author, t: comment.t, r: comment.r};\n\t\tif(comment.h) o.h = comment.h;\n\t\tcell.c.push(o);\n\t});\n}\n\n/* 18.7.3 CT_Comment */\nfunction parse_comments_xml(data, opts) {\n\tif(data.match(/<(?:\\w+:)?comments *\\/>/)) return [];\n\tvar authors = [];\n\tvar commentList = [];\n\tdata.match(/<(?:\\w+:)?authors>([^\\u2603]*)<\\/(?:\\w+:)?authors>/)[1].split(/<\\/\\w*:?author>/).forEach(function(x) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tauthors.push(x.match(/<(?:\\w+:)?author[^>]*>(.*)/)[1]);\n\t});\n\t(data.match(/<(?:\\w+:)?commentList>([^\\u2603]*)<\\/(?:\\w+:)?commentList>/)||[\"\",\"\"])[1].split(/<\\/\\w*:?comment>/).forEach(function(x, index) {\n\t\tif(x === \"\" || x.trim() === \"\") return;\n\t\tvar y = parsexmltag(x.match(/<(?:\\w+:)?comment[^>]*>/)[0]);\n\t\tvar comment = { author: y.authorId && authors[y.authorId] ? authors[y.authorId] : undefined, ref: y.ref, guid: y.guid };\n\t\tvar cell = decode_cell(y.ref);\n\t\tif(opts.sheetRows && opts.sheetRows <= cell.r) return;\n\t\tvar textMatch = x.match(/<text>([^\\u2603]*)<\\/text>/);\n\t\tif (!textMatch || !textMatch[1]) return; // a comment may contain an empty text tag.\n\t\tvar rt = parse_si(textMatch[1]);\n\t\tcomment.r = rt.r;\n\t\tcomment.t = rt.t;\n\t\tif(opts.cellHTML) comment.h = rt.h;\n\t\tcommentList.push(comment);\n\t});\n\treturn commentList;\n}\n\nfunction write_comments_xml(data, opts) { }\n/* [MS-XLSB] 2.4.28 BrtBeginComment */\nfunction parse_BrtBeginComment(data, length) {\n\tvar out = {};\n\tout.iauthor = data.read_shift(4);\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tout.rfx = rfx.s;\n\tout.ref = encode_cell(rfx.s);\n\tdata.l += 16; /*var guid = parse_GUID(data); */\n\treturn out;\n}\n\n/* [MS-XLSB] 2.4.324 BrtCommentAuthor */\nvar parse_BrtCommentAuthor = parse_XLWideString;\n\n/* [MS-XLSB] 2.4.325 BrtCommentText */\nvar parse_BrtCommentText = parse_RichStr;\n\n/* [MS-XLSB] 2.1.7.8 Comments */\nfunction parse_comments_bin(data, opts) {\n\tvar out = [];\n\tvar authors = [];\n\tvar c = {};\n\tvar pass = false;\n\trecordhopper(data, function hopper_cmnt(val, R, RT) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtCommentAuthor': authors.push(val); break;\n\t\t\tcase 'BrtBeginComment': c = val; break;\n\t\t\tcase 'BrtCommentText': c.t = val.t; c.h = val.h; c.r = val.r; break;\n\t\t\tcase 'BrtEndComment':\n\t\t\t\tc.author = authors[c.iauthor];\n\t\t\t\tdelete c.iauthor;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= c.rfx.r) break;\n\t\t\t\tdelete c.rfx; out.push(c); break;\n\t\t\tcase 'BrtBeginComments': break;\n\t\t\tcase 'BrtEndComments': break;\n\t\t\tcase 'BrtBeginCommentAuthors': break;\n\t\t\tcase 'BrtEndCommentAuthors': break;\n\t\t\tcase 'BrtBeginCommentList': break;\n\t\t\tcase 'BrtEndCommentList': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + RT + \" \" + R.n);\n\t\t}\n\t});\n\treturn out;\n}\n\nfunction write_comments_bin(data, opts) { }\n/* TODO: it will be useful to parse the function str */\nvar rc_to_a1 = (function(){\n\tvar rcregex = /(^|[^A-Za-z])R(\\[?)(-?\\d+|)\\]?C(\\[?)(-?\\d+|)\\]?/g;\n\tvar rcbase;\n\tfunction rcfunc($$,$1,$2,$3,$4,$5) {\n\t\tvar R = $3.length>0?parseInt($3,10)|0:0, C = $5.length>0?parseInt($5,10)|0:0;\n\t\tif(C<0 && $4.length === 0) C=0;\n\t\tif($4.length > 0) C += rcbase.c;\n\t\tif($2.length > 0) R += rcbase.r;\n\t\treturn $1 + encode_col(C) + encode_row(R);\n\t}\n\treturn function rc_to_a1(fstr, base) {\n\t\trcbase = base;\n\t\treturn fstr.replace(rcregex, rcfunc);\n\t};\n})();\n\n/* --- formula references point to MS-XLS --- */\n/* Small helpers */\nfunction parseread(l) { return function(blob, length) { blob.l+=l; return; }; }\nfunction parseread1(blob, length) { blob.l+=1; return; }\n\n/* Rgce Helpers */\n\n/* 2.5.51 */\nfunction parse_ColRelU(blob, length) {\n\tvar c = blob.read_shift(2);\n\treturn [c & 0x3FFF, (c >> 14) & 1, (c >> 15) & 1];\n}\n\n/* 2.5.198.105 */\nfunction parse_RgceArea(blob, length) {\n\tvar r=blob.read_shift(2), R=blob.read_shift(2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* 2.5.198.105 TODO */\nfunction parse_RgceAreaRel(blob, length) {\n\tvar r=blob.read_shift(2), R=blob.read_shift(2);\n\tvar c=parse_ColRelU(blob, 2);\n\tvar C=parse_ColRelU(blob, 2);\n\treturn { s:{r:r, c:c[0], cRel:c[1], rRel:c[2]}, e:{r:R, c:C[0], cRel:C[1], rRel:C[2]} };\n}\n\n/* 2.5.198.109 */\nfunction parse_RgceLoc(blob, length) {\n\tvar r = blob.read_shift(2);\n\tvar c = parse_ColRelU(blob, 2);\n\treturn {r:r, c:c[0], cRel:c[1], rRel:c[2]};\n}\n\n/* 2.5.198.111 */\nfunction parse_RgceLocRel(blob, length) {\n\tvar r = blob.read_shift(2);\n\tvar cl = blob.read_shift(2);\n\tvar cRel = (cl & 0x8000) >> 15, rRel = (cl & 0x4000) >> 14;\n\tcl &= 0x3FFF;\n\tif(cRel !== 0) while(cl >= 0x100) cl -= 0x100;\n\treturn {r:r,c:cl,cRel:cRel,rRel:rRel};\n}\n\n/* Ptg Tokens */\n\n/* 2.5.198.27 */\nfunction parse_PtgArea(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceArea(blob, 8);\n\treturn [type, area];\n}\n\n/* 2.5.198.28 */\nfunction parse_PtgArea3d(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tvar area = parse_RgceArea(blob, 8);\n\treturn [type, ixti, area];\n}\n\n/* 2.5.198.29 */\nfunction parse_PtgAreaErr(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += 8;\n\treturn [type];\n}\n/* 2.5.198.30 */\nfunction parse_PtgAreaErr3d(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar ixti = blob.read_shift(2);\n\tblob.l += 8;\n\treturn [type, ixti];\n}\n\n/* 2.5.198.31 */\nfunction parse_PtgAreaN(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tvar area = parse_RgceAreaRel(blob, 8);\n\treturn [type, area];\n}\n\n/* 2.5.198.32 -- ignore this and look in PtgExtraArray for shape + values */\nfunction parse_PtgArray(blob, length) {\n\tvar type = (blob[blob.l++] & 0x60) >> 5;\n\tblob.l += 7;\n\treturn [type];\n}\n\n/* 2.5.198.33 */\nfunction parse_PtgAttrBaxcel(blob, length) {\n\tvar bitSemi = blob[blob.l+1] & 0x01; /* 1 = volatile */\n\tvar bitBaxcel = 1;\n\tblob.l += 4;\n\treturn [bitSemi, bitBaxcel];\n}\n\n/* 2.5.198.34 */\nfunction parse_PtgAttrChoose(blob, length) {\n\tblob.l +=2;\n\tvar offset = blob.read_shift(2);\n\tvar o = [];\n\t/* offset is 1 less than the number of elements */\n\tfor(var i = 0; i <= offset; ++i) o.push(blob.read_shift(2));\n\treturn o;\n}\n\n/* 2.5.198.35 */\nfunction parse_PtgAttrGoto(blob, length) {\n\tvar bitGoto = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitGoto, blob.read_shift(2)];\n}\n\n/* 2.5.198.36 */\nfunction parse_PtgAttrIf(blob, length) {\n\tvar bitIf = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 2;\n\treturn [bitIf, blob.read_shift(2)];\n}\n\n/* 2.5.198.37 */\nfunction parse_PtgAttrSemi(blob, length) {\n\tvar bitSemi = (blob[blob.l+1] & 0xFF) ? 1 : 0;\n\tblob.l += 4;\n\treturn [bitSemi];\n}\n\n/* 2.5.198.40 (used by PtgAttrSpace and PtgAttrSpaceSemi) */\nfunction parse_PtgAttrSpaceType(blob, length) {\n\tvar type = blob.read_shift(1), cch = blob.read_shift(1);\n\treturn [type, cch];\n}\n\n/* 2.5.198.38 */\nfunction parse_PtgAttrSpace(blob, length) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* 2.5.198.39 */\nfunction parse_PtgAttrSpaceSemi(blob, length) {\n\tblob.read_shift(2);\n\treturn parse_PtgAttrSpaceType(blob, 2);\n}\n\n/* 2.5.198.84 TODO */\nfunction parse_PtgRef(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLoc(blob,4);\n\treturn [type, loc];\n}\n\n/* 2.5.198.88 TODO */\nfunction parse_PtgRefN(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar loc = parse_RgceLocRel(blob,4);\n\treturn [type, loc];\n}\n\n/* 2.5.198.85 TODO */\nfunction parse_PtgRef3d(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar loc = parse_RgceLoc(blob,4);\n\treturn [type, ixti, loc];\n}\n\n\n/* 2.5.198.62 TODO */\nfunction parse_PtgFunc(blob, length) {\n\tvar ptg = blob[blob.l] & 0x1F;\n\tvar type = (blob[blob.l] & 0x60)>>5;\n\tblob.l += 1;\n\tvar iftab = blob.read_shift(2);\n\treturn [FtabArgc[iftab], Ftab[iftab]];\n}\n/* 2.5.198.63 TODO */\nfunction parse_PtgFuncVar(blob, length) {\n\tblob.l++;\n\tvar cparams = blob.read_shift(1), tab = parsetab(blob);\n\treturn [cparams, (tab[0] === 0 ? Ftab : Cetab)[tab[1]]];\n}\n\nfunction parsetab(blob, length) {\n\treturn [blob[blob.l+1]>>7, blob.read_shift(2) & 0x7FFF];\n}\n\n/* 2.5.198.41 */\nvar parse_PtgAttrSum = parseread(4);\n/* 2.5.198.43 */\nvar parse_PtgConcat = parseread1;\n\n/* 2.5.198.58 */\nfunction parse_PtgExp(blob, length) {\n\tblob.l++;\n\tvar row = blob.read_shift(2);\n\tvar col = blob.read_shift(2);\n\treturn [row, col];\n}\n\n/* 2.5.198.57 */\nfunction parse_PtgErr(blob, length) { blob.l++; return BErr[blob.read_shift(1)]; }\n\n/* 2.5.198.66 TODO */\nfunction parse_PtgInt(blob, length) { blob.l++; return blob.read_shift(2); }\n\n/* 2.5.198.42 */\nfunction parse_PtgBool(blob, length) { blob.l++; return blob.read_shift(1)!==0;}\n\n/* 2.5.198.79 */\nfunction parse_PtgNum(blob, length) { blob.l++; return parse_Xnum(blob, 8); }\n\n/* 2.5.198.89 */\nfunction parse_PtgStr(blob, length) { blob.l++; return parse_ShortXLUnicodeString(blob); }\n\n/* 2.5.192.112 + 2.5.192.11{3,4,5,6,7} */\nfunction parse_SerAr(blob) {\n\tvar val = [];\n\tswitch((val[0] = blob.read_shift(1))) {\n\t\t/* 2.5.192.113 */\n\t\tcase 0x04: /* SerBool -- boolean */\n\t\t\tval[1] = parsebool(blob, 1) ? 'TRUE' : 'FALSE';\n\t\t\tblob.l += 7; break;\n\t\t/* 2.5.192.114 */\n\t\tcase 0x10: /* SerErr -- error */\n\t\t\tval[1] = BErr[blob[blob.l]];\n\t\t\tblob.l += 8; break;\n\t\t/* 2.5.192.115 */\n\t\tcase 0x00: /* SerNil -- honestly, I'm not sure how to reproduce this */\n\t\t\tblob.l += 8; break;\n\t\t/* 2.5.192.116 */\n\t\tcase 0x01: /* SerNum -- Xnum */\n\t\t\tval[1] = parse_Xnum(blob, 8); break;\n\t\t/* 2.5.192.117 */\n\t\tcase 0x02: /* SerStr -- XLUnicodeString (<256 chars) */\n\t\t\tval[1] = parse_XLUnicodeString(blob); break;\n\t\t// default: throw \"Bad SerAr: \" + val[0]; /* Unreachable */\n\t}\n\treturn val;\n}\n\n/* 2.5.198.61 */\nfunction parse_PtgExtraMem(blob, cce) {\n\tvar count = blob.read_shift(2);\n\tvar out = [];\n\tfor(var i = 0; i != count; ++i) out.push(parse_Ref8U(blob, 8));\n\treturn out;\n}\n\n/* 2.5.198.59 */\nfunction parse_PtgExtraArray(blob) {\n\tvar cols = 1 + blob.read_shift(1); //DColByteU\n\tvar rows = 1 + blob.read_shift(2); //DRw\n\tfor(var i = 0, o=[]; i != rows && (o[i] = []); ++i)\n\t\tfor(var j = 0; j != cols; ++j) o[i][j] = parse_SerAr(blob);\n\treturn o;\n}\n\n/* 2.5.198.76 */\nfunction parse_PtgName(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, 0, nameindex];\n}\n\n/* 2.5.198.77 */\nfunction parse_PtgNameX(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar ixti = blob.read_shift(2); // XtiIndex\n\tvar nameindex = blob.read_shift(4);\n\treturn [type, ixti, nameindex];\n}\n\n/* 2.5.198.70 */\nfunction parse_PtgMemArea(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\n\n/* 2.5.198.72 */\nfunction parse_PtgMemFunc(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tvar cce = blob.read_shift(2);\n\treturn [type, cce];\n}\n\n\n/* 2.5.198.86 */\nfunction parse_PtgRefErr(blob, length) {\n\tvar type = (blob.read_shift(1) >>> 5) & 0x03;\n\tblob.l += 4;\n\treturn [type];\n}\n\n/* 2.5.198.26 */\nvar parse_PtgAdd = parseread1;\n/* 2.5.198.45 */\nvar parse_PtgDiv = parseread1;\n/* 2.5.198.56 */\nvar parse_PtgEq = parseread1;\n/* 2.5.198.64 */\nvar parse_PtgGe = parseread1;\n/* 2.5.198.65 */\nvar parse_PtgGt = parseread1;\n/* 2.5.198.67 */\nvar parse_PtgIsect = parseread1;\n/* 2.5.198.68 */\nvar parse_PtgLe = parseread1;\n/* 2.5.198.69 */\nvar parse_PtgLt = parseread1;\n/* 2.5.198.74 */\nvar parse_PtgMissArg = parseread1;\n/* 2.5.198.75 */\nvar parse_PtgMul = parseread1;\n/* 2.5.198.78 */\nvar parse_PtgNe = parseread1;\n/* 2.5.198.80 */\nvar parse_PtgParen = parseread1;\n/* 2.5.198.81 */\nvar parse_PtgPercent = parseread1;\n/* 2.5.198.82 */\nvar parse_PtgPower = parseread1;\n/* 2.5.198.83 */\nvar parse_PtgRange = parseread1;\n/* 2.5.198.90 */\nvar parse_PtgSub = parseread1;\n/* 2.5.198.93 */\nvar parse_PtgUminus = parseread1;\n/* 2.5.198.94 */\nvar parse_PtgUnion = parseread1;\n/* 2.5.198.95 */\nvar parse_PtgUplus = parseread1;\n\n/* 2.5.198.71 */\nvar parse_PtgMemErr = parsenoop;\n/* 2.5.198.73 */\nvar parse_PtgMemNoMem = parsenoop;\n/* 2.5.198.87 */\nvar parse_PtgRefErr3d = parsenoop;\n/* 2.5.198.92 */\nvar parse_PtgTbl = parsenoop;\n\n/* 2.5.198.25 */\nvar PtgTypes = {\n\t0x01: { n:'PtgExp', f:parse_PtgExp },\n\t0x02: { n:'PtgTbl', f:parse_PtgTbl },\n\t0x03: { n:'PtgAdd', f:parse_PtgAdd },\n\t0x04: { n:'PtgSub', f:parse_PtgSub },\n\t0x05: { n:'PtgMul', f:parse_PtgMul },\n\t0x06: { n:'PtgDiv', f:parse_PtgDiv },\n\t0x07: { n:'PtgPower', f:parse_PtgPower },\n\t0x08: { n:'PtgConcat', f:parse_PtgConcat },\n\t0x09: { n:'PtgLt', f:parse_PtgLt },\n\t0x0A: { n:'PtgLe', f:parse_PtgLe },\n\t0x0B: { n:'PtgEq', f:parse_PtgEq },\n\t0x0C: { n:'PtgGe', f:parse_PtgGe },\n\t0x0D: { n:'PtgGt', f:parse_PtgGt },\n\t0x0E: { n:'PtgNe', f:parse_PtgNe },\n\t0x0F: { n:'PtgIsect', f:parse_PtgIsect },\n\t0x10: { n:'PtgUnion', f:parse_PtgUnion },\n\t0x11: { n:'PtgRange', f:parse_PtgRange },\n\t0x12: { n:'PtgUplus', f:parse_PtgUplus },\n\t0x13: { n:'PtgUminus', f:parse_PtgUminus },\n\t0x14: { n:'PtgPercent', f:parse_PtgPercent },\n\t0x15: { n:'PtgParen', f:parse_PtgParen },\n\t0x16: { n:'PtgMissArg', f:parse_PtgMissArg },\n\t0x17: { n:'PtgStr', f:parse_PtgStr },\n\t0x1C: { n:'PtgErr', f:parse_PtgErr },\n\t0x1D: { n:'PtgBool', f:parse_PtgBool },\n\t0x1E: { n:'PtgInt', f:parse_PtgInt },\n\t0x1F: { n:'PtgNum', f:parse_PtgNum },\n\t0x20: { n:'PtgArray', f:parse_PtgArray },\n\t0x21: { n:'PtgFunc', f:parse_PtgFunc },\n\t0x22: { n:'PtgFuncVar', f:parse_PtgFuncVar },\n\t0x23: { n:'PtgName', f:parse_PtgName },\n\t0x24: { n:'PtgRef', f:parse_PtgRef },\n\t0x25: { n:'PtgArea', f:parse_PtgArea },\n\t0x26: { n:'PtgMemArea', f:parse_PtgMemArea },\n\t0x27: { n:'PtgMemErr', f:parse_PtgMemErr },\n\t0x28: { n:'PtgMemNoMem', f:parse_PtgMemNoMem },\n\t0x29: { n:'PtgMemFunc', f:parse_PtgMemFunc },\n\t0x2A: { n:'PtgRefErr', f:parse_PtgRefErr },\n\t0x2B: { n:'PtgAreaErr', f:parse_PtgAreaErr },\n\t0x2C: { n:'PtgRefN', f:parse_PtgRefN },\n\t0x2D: { n:'PtgAreaN', f:parse_PtgAreaN },\n\t0x39: { n:'PtgNameX', f:parse_PtgNameX },\n\t0x3A: { n:'PtgRef3d', f:parse_PtgRef3d },\n\t0x3B: { n:'PtgArea3d', f:parse_PtgArea3d },\n\t0x3C: { n:'PtgRefErr3d', f:parse_PtgRefErr3d },\n\t0x3D: { n:'PtgAreaErr3d', f:parse_PtgAreaErr3d },\n\t0xFF: {}\n};\n/* These are duplicated in the PtgTypes table */\nvar PtgDupes = {\n\t0x40: 0x20, 0x60: 0x20,\n\t0x41: 0x21, 0x61: 0x21,\n\t0x42: 0x22, 0x62: 0x22,\n\t0x43: 0x23, 0x63: 0x23,\n\t0x44: 0x24, 0x64: 0x24,\n\t0x45: 0x25, 0x65: 0x25,\n\t0x46: 0x26, 0x66: 0x26,\n\t0x47: 0x27, 0x67: 0x27,\n\t0x48: 0x28, 0x68: 0x28,\n\t0x49: 0x29, 0x69: 0x29,\n\t0x4A: 0x2A, 0x6A: 0x2A,\n\t0x4B: 0x2B, 0x6B: 0x2B,\n\t0x4C: 0x2C, 0x6C: 0x2C,\n\t0x4D: 0x2D, 0x6D: 0x2D,\n\t0x59: 0x39, 0x79: 0x39,\n\t0x5A: 0x3A, 0x7A: 0x3A,\n\t0x5B: 0x3B, 0x7B: 0x3B,\n\t0x5C: 0x3C, 0x7C: 0x3C,\n\t0x5D: 0x3D, 0x7D: 0x3D\n};\n(function(){for(var y in PtgDupes) PtgTypes[y] = PtgTypes[PtgDupes[y]];})();\n\nvar Ptg18 = {};\nvar Ptg19 = {\n\t0x01: { n:'PtgAttrSemi', f:parse_PtgAttrSemi },\n\t0x02: { n:'PtgAttrIf', f:parse_PtgAttrIf },\n\t0x04: { n:'PtgAttrChoose', f:parse_PtgAttrChoose },\n\t0x08: { n:'PtgAttrGoto', f:parse_PtgAttrGoto },\n\t0x10: { n:'PtgAttrSum', f:parse_PtgAttrSum },\n\t0x20: { n:'PtgAttrBaxcel', f:parse_PtgAttrBaxcel },\n\t0x40: { n:'PtgAttrSpace', f:parse_PtgAttrSpace },\n\t0x41: { n:'PtgAttrSpaceSemi', f:parse_PtgAttrSpaceSemi },\n\t0xFF: {}\n};\n\n/* 2.4.127 TODO */\nfunction parse_Formula(blob, length, opts) {\n\tvar cell = parse_XLSCell(blob, 6);\n\tvar val = parse_FormulaValue(blob,8);\n\tvar flags = blob.read_shift(1);\n\tblob.read_shift(1);\n\tvar chn = blob.read_shift(4);\n\tvar cbf = \"\";\n\tif(opts.biff === 5) blob.l += length-20;\n\telse cbf = parse_XLSCellParsedFormula(blob, length-20, opts);\n\treturn {cell:cell, val:val[0], formula:cbf, shared: (flags >> 3) & 1, tt:val[1]};\n}\n\n/* 2.5.133 TODO: how to emit empty strings? */\nfunction parse_FormulaValue(blob) {\n\tvar b;\n\tif(__readUInt16LE(blob,blob.l + 6) !== 0xFFFF) return [parse_Xnum(blob),'n'];\n\tswitch(blob[blob.l]) {\n\t\tcase 0x00: blob.l += 8; return [\"String\", 's'];\n\t\tcase 0x01: b = blob[blob.l+2] === 0x1; blob.l += 8; return [b,'b'];\n\t\tcase 0x02: b = blob[blob.l+2]; blob.l += 8; return [b,'e'];\n\t\tcase 0x03: blob.l += 8; return [\"\",'s'];\n\t}\n}\n\n/* 2.5.198.103 */\nfunction parse_RgbExtra(blob, length, rgce, opts) {\n\tif(opts.biff < 8) return parsenoop(blob, length);\n\tvar target = blob.l + length;\n\tvar o = [];\n\tfor(var i = 0; i !== rgce.length; ++i) {\n\t\tswitch(rgce[i][0]) {\n\t\t\tcase 'PtgArray': /* PtgArray -> PtgExtraArray */\n\t\t\t\trgce[i][1] = parse_PtgExtraArray(blob);\n\t\t\t\to.push(rgce[i][1]);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgMemArea': /* PtgMemArea -> PtgExtraMem */\n\t\t\t\trgce[i][2] = parse_PtgExtraMem(blob, rgce[i][1]);\n\t\t\t\to.push(rgce[i][2]);\n\t\t\t\tbreak;\n\t\t\tdefault: break;\n\t\t}\n\t}\n\tlength = target - blob.l;\n\tif(length !== 0) o.push(parsenoop(blob, length));\n\treturn o;\n}\n\n/* 2.5.198.21 */\nfunction parse_NameParsedFormula(blob, length, opts, cce) {\n\tvar target = blob.l + length;\n\tvar rgce = parse_Rgce(blob, cce);\n\tvar rgcb;\n\tif(target !== blob.l) rgcb = parse_RgbExtra(blob, target - blob.l, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.3 TODO */\nfunction parse_XLSCellParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, length - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.118 TODO */\nfunction parse_SharedParsedFormula(blob, length, opts) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.1 TODO */\nfunction parse_ArrayParsedFormula(blob, length, opts, ref) {\n\tvar target = blob.l + length;\n\tvar rgcb, cce = blob.read_shift(2); // length of rgce\n\tif(cce == 0xFFFF) return [[],parsenoop(blob, length-2)];\n\tvar rgce = parse_Rgce(blob, cce);\n\tif(length !== cce + 2) rgcb = parse_RgbExtra(blob, target - cce - 2, rgce, opts);\n\treturn [rgce, rgcb];\n}\n\n/* 2.5.198.104 */\nfunction parse_Rgce(blob, length) {\n\tvar target = blob.l + length;\n\tvar R, id, ptgs = [];\n\twhile(target != blob.l) {\n\t\tlength = target - blob.l;\n\t\tid = blob[blob.l];\n\t\tR = PtgTypes[id];\n\t\t//console.log(\"ptg\", id, R)\n\t\tif(id === 0x18 || id === 0x19) {\n\t\t\tid = blob[blob.l + 1];\n\t\t\tR = (id === 0x18 ? Ptg18 : Ptg19)[id];\n\t\t}\n\t\tif(!R || !R.f) { ptgs.push(parsenoop(blob, length)); }\n\t\telse { ptgs.push([R.n, R.f(blob, length)]); }\n\t}\n\treturn ptgs;\n}\n\nfunction mapper(x) { return x.map(function f2(y) { return y[1];}).join(\",\");}\n\n/* 2.2.2 + Magic TODO */\nfunction stringify_formula(formula, range, cell, supbooks, opts) {\n\tif(opts !== undefined && opts.biff === 5) return \"BIFF5??\";\n\tvar _range = range !== undefined ? range : {s:{c:0, r:0}};\n\tvar stack = [], e1, e2, type, c, ixti, nameidx, r;\n\tif(!formula[0] || !formula[0][0]) return \"\";\n\t//console.log(\"--\",cell,formula[0])\n\tfor(var ff = 0, fflen = formula[0].length; ff < fflen; ++ff) {\n\t\tvar f = formula[0][ff];\n\t\t//console.log(\"++\",f, stack)\n\t\tswitch(f[0]) {\n\t\t/* 2.2.2.1 Unary Operator Tokens */\n\t\t\t/* 2.5.198.93 */\n\t\t\tcase 'PtgUminus': stack.push(\"-\" + stack.pop()); break;\n\t\t\t/* 2.5.198.95 */\n\t\t\tcase 'PtgUplus': stack.push(\"+\" + stack.pop()); break;\n\t\t\t/* 2.5.198.81 */\n\t\t\tcase 'PtgPercent': stack.push(stack.pop() + \"%\"); break;\n\n\t\t/* 2.2.2.1 Binary Value Operator Token */\n\t\t\t/* 2.5.198.26 */\n\t\t\tcase 'PtgAdd':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"+\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.90 */\n\t\t\tcase 'PtgSub':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"-\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.75 */\n\t\t\tcase 'PtgMul':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"*\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.45 */\n\t\t\tcase 'PtgDiv':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"/\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.82 */\n\t\t\tcase 'PtgPower':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"^\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.43 */\n\t\t\tcase 'PtgConcat':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"&\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.69 */\n\t\t\tcase 'PtgLt':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.68 */\n\t\t\tcase 'PtgLe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.56 */\n\t\t\tcase 'PtgEq':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.64 */\n\t\t\tcase 'PtgGe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\">=\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.65 */\n\t\t\tcase 'PtgGt':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\">\"+e1);\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.78 */\n\t\t\tcase 'PtgNe':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\"<>\"+e1);\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.1 Binary Reference Operator Token */\n\t\t\t/* 2.5.198.67 */\n\t\t\tcase 'PtgIsect':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\" \"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgUnion':\n\t\t\t\te1 = stack.pop(); e2 = stack.pop();\n\t\t\t\tstack.push(e2+\",\"+e1);\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRange': break;\n\n\t\t/* 2.2.2.3 Control Tokens \"can be ignored\" */\n\t\t\t/* 2.5.198.34 */\n\t\t\tcase 'PtgAttrChoose': break;\n\t\t\t/* 2.5.198.35 */\n\t\t\tcase 'PtgAttrGoto': break;\n\t\t\t/* 2.5.198.36 */\n\t\t\tcase 'PtgAttrIf': break;\n\n\n\t\t\t/* 2.5.198.84 */\n\t\t\tcase 'PtgRef':\n\t\t\t\ttype = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), _range);\n\t\t\t\tstack.push(encode_cell(c));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.88 */\n\t\t\tcase 'PtgRefN':\n\t\t\t\ttype = f[1][0]; c = shift_cell_xls(decode_cell(encode_cell(f[1][1])), cell);\n\t\t\t\tstack.push(encode_cell(c));\n\t\t\t\tbreak;\n\t\t\tcase 'PtgRef3d': // TODO: lots of stuff\n\t\t\t\ttype = f[1][0]; ixti = f[1][1]; c = shift_cell_xls(f[1][2], _range);\n\t\t\t\tstack.push(supbooks[1][ixti+1]+\"!\"+encode_cell(c));\n\t\t\t\tbreak;\n\n\t\t/* Function Call */\n\t\t\t/* 2.5.198.62 */\n\t\t\tcase 'PtgFunc':\n\t\t\t/* 2.5.198.63 */\n\t\t\tcase 'PtgFuncVar':\n\t\t\t\t/* f[1] = [argc, func] */\n\t\t\t\tvar argc = f[1][0], func = f[1][1];\n\t\t\t\tif(!argc) argc = 0;\n\t\t\t\tvar args = stack.slice(-argc);\n\t\t\t\tstack.length -= argc;\n\t\t\t\tif(func === 'User') func = args.shift();\n\t\t\t\tstack.push(func + \"(\" + args.join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.42 */\n\t\t\tcase 'PtgBool': stack.push(f[1] ? \"TRUE\" : \"FALSE\"); break;\n\t\t\t/* 2.5.198.66 */\n\t\t\tcase 'PtgInt': stack.push(f[1]); break;\n\t\t\t/* 2.5.198.79 TODO: precision? */\n\t\t\tcase 'PtgNum': stack.push(String(f[1])); break;\n\t\t\t/* 2.5.198.89 */\n\t\t\tcase 'PtgStr': stack.push('\"' + f[1] + '\"'); break;\n\t\t\t/* 2.5.198.57 */\n\t\t\tcase 'PtgErr': stack.push(f[1]); break;\n\t\t\t/* 2.5.198.27 TODO: fixed points */\n\t\t\tcase 'PtgArea':\n\t\t\t\ttype = f[1][0]; r = shift_range_xls(f[1][1], _range);\n\t\t\t\tstack.push(encode_range(r));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.28 */\n\t\t\tcase 'PtgArea3d': // TODO: lots of stuff\n\t\t\t\ttype = f[1][0]; ixti = f[1][1]; r = f[1][2];\n\t\t\t\tstack.push(supbooks[1][ixti+1]+\"!\"+encode_range(r));\n\t\t\t\tbreak;\n\t\t\t/* 2.5.198.41 */\n\t\t\tcase 'PtgAttrSum':\n\t\t\t\tstack.push(\"SUM(\" + stack.pop() + \")\");\n\t\t\t\tbreak;\n\n\t\t/* Expression Prefixes */\n\t\t\t/* 2.5.198.37 */\n\t\t\tcase 'PtgAttrSemi': break;\n\n\t\t\t/* 2.5.97.60 TODO: do something different for revisions */\n\t\t\tcase 'PtgName':\n\t\t\t\t/* f[1] = type, 0, nameindex */\n\t\t\t\tnameidx = f[1][2];\n\t\t\t\tvar lbl = supbooks[0][nameidx];\n\t\t\t\tvar name = lbl.Name;\n\t\t\t\tif(name in XLSXFutureFunctions) name = XLSXFutureFunctions[name];\n\t\t\t\tstack.push(name);\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.97.61 TODO: do something different for revisions */\n\t\t\tcase 'PtgNameX':\n\t\t\t\t/* f[1] = type, ixti, nameindex */\n\t\t\t\tvar bookidx = f[1][1]; nameidx = f[1][2]; var externbook;\n\t\t\t\t/* TODO: Properly handle missing values */\n\t\t\t\tif(supbooks[bookidx+1]) externbook = supbooks[bookidx+1][nameidx];\n\t\t\t\telse if(supbooks[bookidx-1]) externbook = supbooks[bookidx-1][nameidx];\n\t\t\t\tif(!externbook) externbook = {body: \"??NAMEX??\"};\n\t\t\t\tstack.push(externbook.body);\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.4 Display Tokens */\n\t\t\t/* 2.5.198.80 */\n\t\t\tcase 'PtgParen': stack.push('(' + stack.pop() + ')'); break;\n\n\t\t\t/* 2.5.198.86 */\n\t\t\tcase 'PtgRefErr': stack.push('#REF!'); break;\n\n\t\t/* */\n\t\t\t/* 2.5.198.58 TODO */\n\t\t\tcase 'PtgExp':\n\t\t\t\tc = {c:f[1][1],r:f[1][0]};\n\t\t\t\tvar q = {c: cell.c, r:cell.r};\n\t\t\t\tif(supbooks.sharedf[encode_cell(c)]) {\n\t\t\t\t\tvar parsedf = (supbooks.sharedf[encode_cell(c)]);\n\t\t\t\t\tstack.push(stringify_formula(parsedf, _range, q, supbooks, opts));\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tvar fnd = false;\n\t\t\t\t\tfor(e1=0;e1!=supbooks.arrayf.length; ++e1) {\n\t\t\t\t\t\t/* TODO: should be something like range_has */\n\t\t\t\t\t\te2 = supbooks.arrayf[e1];\n\t\t\t\t\t\tif(c.c < e2[0].s.c || c.c > e2[0].e.c) continue;\n\t\t\t\t\t\tif(c.r < e2[0].s.r || c.r > e2[0].e.r) continue;\n\t\t\t\t\t\tstack.push(stringify_formula(e2[1], _range, q, supbooks, opts));\n\t\t\t\t\t}\n\t\t\t\t\tif(!fnd) stack.push(f[1]);\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.32 TODO */\n\t\t\tcase 'PtgArray':\n\t\t\t\tstack.push(\"{\" + f[1].map(mapper).join(\";\") + \"}\");\n\t\t\t\tbreak;\n\n\t\t/* 2.2.2.5 Mem Tokens */\n\t\t\t/* 2.5.198.70 TODO: confirm this is a non-display */\n\t\t\tcase 'PtgMemArea':\n\t\t\t\t//stack.push(\"(\" + f[2].map(encode_range).join(\",\") + \")\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.38 TODO */\n\t\t\tcase 'PtgAttrSpace': break;\n\n\t\t\t/* 2.5.198.92 TODO */\n\t\t\tcase 'PtgTbl': break;\n\n\t\t\t/* 2.5.198.71 */\n\t\t\tcase 'PtgMemErr': break;\n\n\t\t\t/* 2.5.198.74 */\n\t\t\tcase 'PtgMissArg':\n\t\t\t\tstack.push(\"\");\n\t\t\t\tbreak;\n\n\t\t\t/* 2.5.198.29 TODO */\n\t\t\tcase 'PtgAreaErr': break;\n\n\t\t\t/* 2.5.198.31 TODO */\n\t\t\tcase 'PtgAreaN': stack.push(\"\"); break;\n\n\t\t\t/* 2.5.198.87 TODO */\n\t\t\tcase 'PtgRefErr3d': break;\n\n\t\t\t/* 2.5.198.72 TODO */\n\t\t\tcase 'PtgMemFunc': break;\n\n\t\t\tdefault: throw 'Unrecognized Formula Token: ' + f;\n\t\t}\n\t\t//console.log(\"::\",f, stack)\n\t}\n\t//console.log(\"--\",stack);\n\treturn stack[0];\n}\n\n/* [MS-XLSB] 2.5.97.4 CellParsedFormula TODO: use similar logic to js-xls */\nfunction parse_XLSBCellParsedFormula(data, length) {\n\tvar cce = data.read_shift(4);\n\treturn parsenoop(data, length-4);\n}\n/* [MS-XLS] 2.5.198.44 */\nvar PtgDataType = {\n\t0x1: \"REFERENCE\", // reference to range\n\t0x2: \"VALUE\", // single value\n\t0x3: \"ARRAY\" // array of values\n};\n\n/* [MS-XLS] 2.5.198.4 */\nvar Cetab = {\n\t0x0000: 'BEEP',\n\t0x0001: 'OPEN',\n\t0x0002: 'OPEN.LINKS',\n\t0x0003: 'CLOSE.ALL',\n\t0x0004: 'SAVE',\n\t0x0005: 'SAVE.AS',\n\t0x0006: 'FILE.DELETE',\n\t0x0007: 'PAGE.SETUP',\n\t0x0008: 'PRINT',\n\t0x0009: 'PRINTER.SETUP',\n\t0x000A: 'QUIT',\n\t0x000B: 'NEW.WINDOW',\n\t0x000C: 'ARRANGE.ALL',\n\t0x000D: 'WINDOW.SIZE',\n\t0x000E: 'WINDOW.MOVE',\n\t0x000F: 'FULL',\n\t0x0010: 'CLOSE',\n\t0x0011: 'RUN',\n\t0x0016: 'SET.PRINT.AREA',\n\t0x0017: 'SET.PRINT.TITLES',\n\t0x0018: 'SET.PAGE.BREAK',\n\t0x0019: 'REMOVE.PAGE.BREAK',\n\t0x001A: 'FONT',\n\t0x001B: 'DISPLAY',\n\t0x001C: 'PROTECT.DOCUMENT',\n\t0x001D: 'PRECISION',\n\t0x001E: 'A1.R1C1',\n\t0x001F: 'CALCULATE.NOW',\n\t0x0020: 'CALCULATION',\n\t0x0022: 'DATA.FIND',\n\t0x0023: 'EXTRACT',\n\t0x0024: 'DATA.DELETE',\n\t0x0025: 'SET.DATABASE',\n\t0x0026: 'SET.CRITERIA',\n\t0x0027: 'SORT',\n\t0x0028: 'DATA.SERIES',\n\t0x0029: 'TABLE',\n\t0x002A: 'FORMAT.NUMBER',\n\t0x002B: 'ALIGNMENT',\n\t0x002C: 'STYLE',\n\t0x002D: 'BORDER',\n\t0x002E: 'CELL.PROTECTION',\n\t0x002F: 'COLUMN.WIDTH',\n\t0x0030: 'UNDO',\n\t0x0031: 'CUT',\n\t0x0032: 'COPY',\n\t0x0033: 'PASTE',\n\t0x0034: 'CLEAR',\n\t0x0035: 'PASTE.SPECIAL',\n\t0x0036: 'EDIT.DELETE',\n\t0x0037: 'INSERT',\n\t0x0038: 'FILL.RIGHT',\n\t0x0039: 'FILL.DOWN',\n\t0x003D: 'DEFINE.NAME',\n\t0x003E: 'CREATE.NAMES',\n\t0x003F: 'FORMULA.GOTO',\n\t0x0040: 'FORMULA.FIND',\n\t0x0041: 'SELECT.LAST.CELL',\n\t0x0042: 'SHOW.ACTIVE.CELL',\n\t0x0043: 'GALLERY.AREA',\n\t0x0044: 'GALLERY.BAR',\n\t0x0045: 'GALLERY.COLUMN',\n\t0x0046: 'GALLERY.LINE',\n\t0x0047: 'GALLERY.PIE',\n\t0x0048: 'GALLERY.SCATTER',\n\t0x0049: 'COMBINATION',\n\t0x004A: 'PREFERRED',\n\t0x004B: 'ADD.OVERLAY',\n\t0x004C: 'GRIDLINES',\n\t0x004D: 'SET.PREFERRED',\n\t0x004E: 'AXES',\n\t0x004F: 'LEGEND',\n\t0x0050: 'ATTACH.TEXT',\n\t0x0051: 'ADD.ARROW',\n\t0x0052: 'SELECT.CHART',\n\t0x0053: 'SELECT.PLOT.AREA',\n\t0x0054: 'PATTERNS',\n\t0x0055: 'MAIN.CHART',\n\t0x0056: 'OVERLAY',\n\t0x0057: 'SCALE',\n\t0x0058: 'FORMAT.LEGEND',\n\t0x0059: 'FORMAT.TEXT',\n\t0x005A: 'EDIT.REPEAT',\n\t0x005B: 'PARSE',\n\t0x005C: 'JUSTIFY',\n\t0x005D: 'HIDE',\n\t0x005E: 'UNHIDE',\n\t0x005F: 'WORKSPACE',\n\t0x0060: 'FORMULA',\n\t0x0061: 'FORMULA.FILL',\n\t0x0062: 'FORMULA.ARRAY',\n\t0x0063: 'DATA.FIND.NEXT',\n\t0x0064: 'DATA.FIND.PREV',\n\t0x0065: 'FORMULA.FIND.NEXT',\n\t0x0066: 'FORMULA.FIND.PREV',\n\t0x0067: 'ACTIVATE',\n\t0x0068: 'ACTIVATE.NEXT',\n\t0x0069: 'ACTIVATE.PREV',\n\t0x006A: 'UNLOCKED.NEXT',\n\t0x006B: 'UNLOCKED.PREV',\n\t0x006C: 'COPY.PICTURE',\n\t0x006D: 'SELECT',\n\t0x006E: 'DELETE.NAME',\n\t0x006F: 'DELETE.FORMAT',\n\t0x0070: 'VLINE',\n\t0x0071: 'HLINE',\n\t0x0072: 'VPAGE',\n\t0x0073: 'HPAGE',\n\t0x0074: 'VSCROLL',\n\t0x0075: 'HSCROLL',\n\t0x0076: 'ALERT',\n\t0x0077: 'NEW',\n\t0x0078: 'CANCEL.COPY',\n\t0x0079: 'SHOW.CLIPBOARD',\n\t0x007A: 'MESSAGE',\n\t0x007C: 'PASTE.LINK',\n\t0x007D: 'APP.ACTIVATE',\n\t0x007E: 'DELETE.ARROW',\n\t0x007F: 'ROW.HEIGHT',\n\t0x0080: 'FORMAT.MOVE',\n\t0x0081: 'FORMAT.SIZE',\n\t0x0082: 'FORMULA.REPLACE',\n\t0x0083: 'SEND.KEYS',\n\t0x0084: 'SELECT.SPECIAL',\n\t0x0085: 'APPLY.NAMES',\n\t0x0086: 'REPLACE.FONT',\n\t0x0087: 'FREEZE.PANES',\n\t0x0088: 'SHOW.INFO',\n\t0x0089: 'SPLIT',\n\t0x008A: 'ON.WINDOW',\n\t0x008B: 'ON.DATA',\n\t0x008C: 'DISABLE.INPUT',\n\t0x008E: 'OUTLINE',\n\t0x008F: 'LIST.NAMES',\n\t0x0090: 'FILE.CLOSE',\n\t0x0091: 'SAVE.WORKBOOK',\n\t0x0092: 'DATA.FORM',\n\t0x0093: 'COPY.CHART',\n\t0x0094: 'ON.TIME',\n\t0x0095: 'WAIT',\n\t0x0096: 'FORMAT.FONT',\n\t0x0097: 'FILL.UP',\n\t0x0098: 'FILL.LEFT',\n\t0x0099: 'DELETE.OVERLAY',\n\t0x009B: 'SHORT.MENUS',\n\t0x009F: 'SET.UPDATE.STATUS',\n\t0x00A1: 'COLOR.PALETTE',\n\t0x00A2: 'DELETE.STYLE',\n\t0x00A3: 'WINDOW.RESTORE',\n\t0x00A4: 'WINDOW.MAXIMIZE',\n\t0x00A6: 'CHANGE.LINK',\n\t0x00A7: 'CALCULATE.DOCUMENT',\n\t0x00A8: 'ON.KEY',\n\t0x00A9: 'APP.RESTORE',\n\t0x00AA: 'APP.MOVE',\n\t0x00AB: 'APP.SIZE',\n\t0x00AC: 'APP.MINIMIZE',\n\t0x00AD: 'APP.MAXIMIZE',\n\t0x00AE: 'BRING.TO.FRONT',\n\t0x00AF: 'SEND.TO.BACK',\n\t0x00B9: 'MAIN.CHART.TYPE',\n\t0x00BA: 'OVERLAY.CHART.TYPE',\n\t0x00BB: 'SELECT.END',\n\t0x00BC: 'OPEN.MAIL',\n\t0x00BD: 'SEND.MAIL',\n\t0x00BE: 'STANDARD.FONT',\n\t0x00BF: 'CONSOLIDATE',\n\t0x00C0: 'SORT.SPECIAL',\n\t0x00C1: 'GALLERY.3D.AREA',\n\t0x00C2: 'GALLERY.3D.COLUMN',\n\t0x00C3: 'GALLERY.3D.LINE',\n\t0x00C4: 'GALLERY.3D.PIE',\n\t0x00C5: 'VIEW.3D',\n\t0x00C6: 'GOAL.SEEK',\n\t0x00C7: 'WORKGROUP',\n\t0x00C8: 'FILL.GROUP',\n\t0x00C9: 'UPDATE.LINK',\n\t0x00CA: 'PROMOTE',\n\t0x00CB: 'DEMOTE',\n\t0x00CC: 'SHOW.DETAIL',\n\t0x00CE: 'UNGROUP',\n\t0x00CF: 'OBJECT.PROPERTIES',\n\t0x00D0: 'SAVE.NEW.OBJECT',\n\t0x00D1: 'SHARE',\n\t0x00D2: 'SHARE.NAME',\n\t0x00D3: 'DUPLICATE',\n\t0x00D4: 'APPLY.STYLE',\n\t0x00D5: 'ASSIGN.TO.OBJECT',\n\t0x00D6: 'OBJECT.PROTECTION',\n\t0x00D7: 'HIDE.OBJECT',\n\t0x00D8: 'SET.EXTRACT',\n\t0x00D9: 'CREATE.PUBLISHER',\n\t0x00DA: 'SUBSCRIBE.TO',\n\t0x00DB: 'ATTRIBUTES',\n\t0x00DC: 'SHOW.TOOLBAR',\n\t0x00DE: 'PRINT.PREVIEW',\n\t0x00DF: 'EDIT.COLOR',\n\t0x00E0: 'SHOW.LEVELS',\n\t0x00E1: 'FORMAT.MAIN',\n\t0x00E2: 'FORMAT.OVERLAY',\n\t0x00E3: 'ON.RECALC',\n\t0x00E4: 'EDIT.SERIES',\n\t0x00E5: 'DEFINE.STYLE',\n\t0x00F0: 'LINE.PRINT',\n\t0x00F3: 'ENTER.DATA',\n\t0x00F9: 'GALLERY.RADAR',\n\t0x00FA: 'MERGE.STYLES',\n\t0x00FB: 'EDITION.OPTIONS',\n\t0x00FC: 'PASTE.PICTURE',\n\t0x00FD: 'PASTE.PICTURE.LINK',\n\t0x00FE: 'SPELLING',\n\t0x0100: 'ZOOM',\n\t0x0103: 'INSERT.OBJECT',\n\t0x0104: 'WINDOW.MINIMIZE',\n\t0x0109: 'SOUND.NOTE',\n\t0x010A: 'SOUND.PLAY',\n\t0x010B: 'FORMAT.SHAPE',\n\t0x010C: 'EXTEND.POLYGON',\n\t0x010D: 'FORMAT.AUTO',\n\t0x0110: 'GALLERY.3D.BAR',\n\t0x0111: 'GALLERY.3D.SURFACE',\n\t0x0112: 'FILL.AUTO',\n\t0x0114: 'CUSTOMIZE.TOOLBAR',\n\t0x0115: 'ADD.TOOL',\n\t0x0116: 'EDIT.OBJECT',\n\t0x0117: 'ON.DOUBLECLICK',\n\t0x0118: 'ON.ENTRY',\n\t0x0119: 'WORKBOOK.ADD',\n\t0x011A: 'WORKBOOK.MOVE',\n\t0x011B: 'WORKBOOK.COPY',\n\t0x011C: 'WORKBOOK.OPTIONS',\n\t0x011D: 'SAVE.WORKSPACE',\n\t0x0120: 'CHART.WIZARD',\n\t0x0121: 'DELETE.TOOL',\n\t0x0122: 'MOVE.TOOL',\n\t0x0123: 'WORKBOOK.SELECT',\n\t0x0124: 'WORKBOOK.ACTIVATE',\n\t0x0125: 'ASSIGN.TO.TOOL',\n\t0x0127: 'COPY.TOOL',\n\t0x0128: 'RESET.TOOL',\n\t0x0129: 'CONSTRAIN.NUMERIC',\n\t0x012A: 'PASTE.TOOL',\n\t0x012E: 'WORKBOOK.NEW',\n\t0x0131: 'SCENARIO.CELLS',\n\t0x0132: 'SCENARIO.DELETE',\n\t0x0133: 'SCENARIO.ADD',\n\t0x0134: 'SCENARIO.EDIT',\n\t0x0135: 'SCENARIO.SHOW',\n\t0x0136: 'SCENARIO.SHOW.NEXT',\n\t0x0137: 'SCENARIO.SUMMARY',\n\t0x0138: 'PIVOT.TABLE.WIZARD',\n\t0x0139: 'PIVOT.FIELD.PROPERTIES',\n\t0x013A: 'PIVOT.FIELD',\n\t0x013B: 'PIVOT.ITEM',\n\t0x013C: 'PIVOT.ADD.FIELDS',\n\t0x013E: 'OPTIONS.CALCULATION',\n\t0x013F: 'OPTIONS.EDIT',\n\t0x0140: 'OPTIONS.VIEW',\n\t0x0141: 'ADDIN.MANAGER',\n\t0x0142: 'MENU.EDITOR',\n\t0x0143: 'ATTACH.TOOLBARS',\n\t0x0144: 'VBAActivate',\n\t0x0145: 'OPTIONS.CHART',\n\t0x0148: 'VBA.INSERT.FILE',\n\t0x014A: 'VBA.PROCEDURE.DEFINITION',\n\t0x0150: 'ROUTING.SLIP',\n\t0x0152: 'ROUTE.DOCUMENT',\n\t0x0153: 'MAIL.LOGON',\n\t0x0156: 'INSERT.PICTURE',\n\t0x0157: 'EDIT.TOOL',\n\t0x0158: 'GALLERY.DOUGHNUT',\n\t0x015E: 'CHART.TREND',\n\t0x0160: 'PIVOT.ITEM.PROPERTIES',\n\t0x0162: 'WORKBOOK.INSERT',\n\t0x0163: 'OPTIONS.TRANSITION',\n\t0x0164: 'OPTIONS.GENERAL',\n\t0x0172: 'FILTER.ADVANCED',\n\t0x0175: 'MAIL.ADD.MAILER',\n\t0x0176: 'MAIL.DELETE.MAILER',\n\t0x0177: 'MAIL.REPLY',\n\t0x0178: 'MAIL.REPLY.ALL',\n\t0x0179: 'MAIL.FORWARD',\n\t0x017A: 'MAIL.NEXT.LETTER',\n\t0x017B: 'DATA.LABEL',\n\t0x017C: 'INSERT.TITLE',\n\t0x017D: 'FONT.PROPERTIES',\n\t0x017E: 'MACRO.OPTIONS',\n\t0x017F: 'WORKBOOK.HIDE',\n\t0x0180: 'WORKBOOK.UNHIDE',\n\t0x0181: 'WORKBOOK.DELETE',\n\t0x0182: 'WORKBOOK.NAME',\n\t0x0184: 'GALLERY.CUSTOM',\n\t0x0186: 'ADD.CHART.AUTOFORMAT',\n\t0x0187: 'DELETE.CHART.AUTOFORMAT',\n\t0x0188: 'CHART.ADD.DATA',\n\t0x0189: 'AUTO.OUTLINE',\n\t0x018A: 'TAB.ORDER',\n\t0x018B: 'SHOW.DIALOG',\n\t0x018C: 'SELECT.ALL',\n\t0x018D: 'UNGROUP.SHEETS',\n\t0x018E: 'SUBTOTAL.CREATE',\n\t0x018F: 'SUBTOTAL.REMOVE',\n\t0x0190: 'RENAME.OBJECT',\n\t0x019C: 'WORKBOOK.SCROLL',\n\t0x019D: 'WORKBOOK.NEXT',\n\t0x019E: 'WORKBOOK.PREV',\n\t0x019F: 'WORKBOOK.TAB.SPLIT',\n\t0x01A0: 'FULL.SCREEN',\n\t0x01A1: 'WORKBOOK.PROTECT',\n\t0x01A4: 'SCROLLBAR.PROPERTIES',\n\t0x01A5: 'PIVOT.SHOW.PAGES',\n\t0x01A6: 'TEXT.TO.COLUMNS',\n\t0x01A7: 'FORMAT.CHARTTYPE',\n\t0x01A8: 'LINK.FORMAT',\n\t0x01A9: 'TRACER.DISPLAY',\n\t0x01AE: 'TRACER.NAVIGATE',\n\t0x01AF: 'TRACER.CLEAR',\n\t0x01B0: 'TRACER.ERROR',\n\t0x01B1: 'PIVOT.FIELD.GROUP',\n\t0x01B2: 'PIVOT.FIELD.UNGROUP',\n\t0x01B3: 'CHECKBOX.PROPERTIES',\n\t0x01B4: 'LABEL.PROPERTIES',\n\t0x01B5: 'LISTBOX.PROPERTIES',\n\t0x01B6: 'EDITBOX.PROPERTIES',\n\t0x01B7: 'PIVOT.REFRESH',\n\t0x01B8: 'LINK.COMBO',\n\t0x01B9: 'OPEN.TEXT',\n\t0x01BA: 'HIDE.DIALOG',\n\t0x01BB: 'SET.DIALOG.FOCUS',\n\t0x01BC: 'ENABLE.OBJECT',\n\t0x01BD: 'PUSHBUTTON.PROPERTIES',\n\t0x01BE: 'SET.DIALOG.DEFAULT',\n\t0x01BF: 'FILTER',\n\t0x01C0: 'FILTER.SHOW.ALL',\n\t0x01C1: 'CLEAR.OUTLINE',\n\t0x01C2: 'FUNCTION.WIZARD',\n\t0x01C3: 'ADD.LIST.ITEM',\n\t0x01C4: 'SET.LIST.ITEM',\n\t0x01C5: 'REMOVE.LIST.ITEM',\n\t0x01C6: 'SELECT.LIST.ITEM',\n\t0x01C7: 'SET.CONTROL.VALUE',\n\t0x01C8: 'SAVE.COPY.AS',\n\t0x01CA: 'OPTIONS.LISTS.ADD',\n\t0x01CB: 'OPTIONS.LISTS.DELETE',\n\t0x01CC: 'SERIES.AXES',\n\t0x01CD: 'SERIES.X',\n\t0x01CE: 'SERIES.Y',\n\t0x01CF: 'ERRORBAR.X',\n\t0x01D0: 'ERRORBAR.Y',\n\t0x01D1: 'FORMAT.CHART',\n\t0x01D2: 'SERIES.ORDER',\n\t0x01D3: 'MAIL.LOGOFF',\n\t0x01D4: 'CLEAR.ROUTING.SLIP',\n\t0x01D5: 'APP.ACTIVATE.MICROSOFT',\n\t0x01D6: 'MAIL.EDIT.MAILER',\n\t0x01D7: 'ON.SHEET',\n\t0x01D8: 'STANDARD.WIDTH',\n\t0x01D9: 'SCENARIO.MERGE',\n\t0x01DA: 'SUMMARY.INFO',\n\t0x01DB: 'FIND.FILE',\n\t0x01DC: 'ACTIVE.CELL.FONT',\n\t0x01DD: 'ENABLE.TIPWIZARD',\n\t0x01DE: 'VBA.MAKE.ADDIN',\n\t0x01E0: 'INSERTDATATABLE',\n\t0x01E1: 'WORKGROUP.OPTIONS',\n\t0x01E2: 'MAIL.SEND.MAILER',\n\t0x01E5: 'AUTOCORRECT',\n\t0x01E9: 'POST.DOCUMENT',\n\t0x01EB: 'PICKLIST',\n\t0x01ED: 'VIEW.SHOW',\n\t0x01EE: 'VIEW.DEFINE',\n\t0x01EF: 'VIEW.DELETE',\n\t0x01FD: 'SHEET.BACKGROUND',\n\t0x01FE: 'INSERT.MAP.OBJECT',\n\t0x01FF: 'OPTIONS.MENONO',\n\t0x0205: 'MSOCHECKS',\n\t0x0206: 'NORMAL',\n\t0x0207: 'LAYOUT',\n\t0x0208: 'RM.PRINT.AREA',\n\t0x0209: 'CLEAR.PRINT.AREA',\n\t0x020A: 'ADD.PRINT.AREA',\n\t0x020B: 'MOVE.BRK',\n\t0x0221: 'HIDECURR.NOTE',\n\t0x0222: 'HIDEALL.NOTES',\n\t0x0223: 'DELETE.NOTE',\n\t0x0224: 'TRAVERSE.NOTES',\n\t0x0225: 'ACTIVATE.NOTES',\n\t0x026C: 'PROTECT.REVISIONS',\n\t0x026D: 'UNPROTECT.REVISIONS',\n\t0x0287: 'OPTIONS.ME',\n\t0x028D: 'WEB.PUBLISH',\n\t0x029B: 'NEWWEBQUERY',\n\t0x02A1: 'PIVOT.TABLE.CHART',\n\t0x02F1: 'OPTIONS.SAVE',\n\t0x02F3: 'OPTIONS.SPELL',\n\t0x0328: 'HIDEALL.INKANNOTS'\n};\n\n/* [MS-XLS] 2.5.198.17 */\nvar Ftab = {\n\t0x0000: 'COUNT',\n\t0x0001: 'IF',\n\t0x0002: 'ISNA',\n\t0x0003: 'ISERROR',\n\t0x0004: 'SUM',\n\t0x0005: 'AVERAGE',\n\t0x0006: 'MIN',\n\t0x0007: 'MAX',\n\t0x0008: 'ROW',\n\t0x0009: 'COLUMN',\n\t0x000A: 'NA',\n\t0x000B: 'NPV',\n\t0x000C: 'STDEV',\n\t0x000D: 'DOLLAR',\n\t0x000E: 'FIXED',\n\t0x000F: 'SIN',\n\t0x0010: 'COS',\n\t0x0011: 'TAN',\n\t0x0012: 'ATAN',\n\t0x0013: 'PI',\n\t0x0014: 'SQRT',\n\t0x0015: 'EXP',\n\t0x0016: 'LN',\n\t0x0017: 'LOG10',\n\t0x0018: 'ABS',\n\t0x0019: 'INT',\n\t0x001A: 'SIGN',\n\t0x001B: 'ROUND',\n\t0x001C: 'LOOKUP',\n\t0x001D: 'INDEX',\n\t0x001E: 'REPT',\n\t0x001F: 'MID',\n\t0x0020: 'LEN',\n\t0x0021: 'VALUE',\n\t0x0022: 'TRUE',\n\t0x0023: 'FALSE',\n\t0x0024: 'AND',\n\t0x0025: 'OR',\n\t0x0026: 'NOT',\n\t0x0027: 'MOD',\n\t0x0028: 'DCOUNT',\n\t0x0029: 'DSUM',\n\t0x002A: 'DAVERAGE',\n\t0x002B: 'DMIN',\n\t0x002C: 'DMAX',\n\t0x002D: 'DSTDEV',\n\t0x002E: 'VAR',\n\t0x002F: 'DVAR',\n\t0x0030: 'TEXT',\n\t0x0031: 'LINEST',\n\t0x0032: 'TREND',\n\t0x0033: 'LOGEST',\n\t0x0034: 'GROWTH',\n\t0x0035: 'GOTO',\n\t0x0036: 'HALT',\n\t0x0037: 'RETURN',\n\t0x0038: 'PV',\n\t0x0039: 'FV',\n\t0x003A: 'NPER',\n\t0x003B: 'PMT',\n\t0x003C: 'RATE',\n\t0x003D: 'MIRR',\n\t0x003E: 'IRR',\n\t0x003F: 'RAND',\n\t0x0040: 'MATCH',\n\t0x0041: 'DATE',\n\t0x0042: 'TIME',\n\t0x0043: 'DAY',\n\t0x0044: 'MONTH',\n\t0x0045: 'YEAR',\n\t0x0046: 'WEEKDAY',\n\t0x0047: 'HOUR',\n\t0x0048: 'MINUTE',\n\t0x0049: 'SECOND',\n\t0x004A: 'NOW',\n\t0x004B: 'AREAS',\n\t0x004C: 'ROWS',\n\t0x004D: 'COLUMNS',\n\t0x004E: 'OFFSET',\n\t0x004F: 'ABSREF',\n\t0x0050: 'RELREF',\n\t0x0051: 'ARGUMENT',\n\t0x0052: 'SEARCH',\n\t0x0053: 'TRANSPOSE',\n\t0x0054: 'ERROR',\n\t0x0055: 'STEP',\n\t0x0056: 'TYPE',\n\t0x0057: 'ECHO',\n\t0x0058: 'SET.NAME',\n\t0x0059: 'CALLER',\n\t0x005A: 'DEREF',\n\t0x005B: 'WINDOWS',\n\t0x005C: 'SERIES',\n\t0x005D: 'DOCUMENTS',\n\t0x005E: 'ACTIVE.CELL',\n\t0x005F: 'SELECTION',\n\t0x0060: 'RESULT',\n\t0x0061: 'ATAN2',\n\t0x0062: 'ASIN',\n\t0x0063: 'ACOS',\n\t0x0064: 'CHOOSE',\n\t0x0065: 'HLOOKUP',\n\t0x0066: 'VLOOKUP',\n\t0x0067: 'LINKS',\n\t0x0068: 'INPUT',\n\t0x0069: 'ISREF',\n\t0x006A: 'GET.FORMULA',\n\t0x006B: 'GET.NAME',\n\t0x006C: 'SET.VALUE',\n\t0x006D: 'LOG',\n\t0x006E: 'EXEC',\n\t0x006F: 'CHAR',\n\t0x0070: 'LOWER',\n\t0x0071: 'UPPER',\n\t0x0072: 'PROPER',\n\t0x0073: 'LEFT',\n\t0x0074: 'RIGHT',\n\t0x0075: 'EXACT',\n\t0x0076: 'TRIM',\n\t0x0077: 'REPLACE',\n\t0x0078: 'SUBSTITUTE',\n\t0x0079: 'CODE',\n\t0x007A: 'NAMES',\n\t0x007B: 'DIRECTORY',\n\t0x007C: 'FIND',\n\t0x007D: 'CELL',\n\t0x007E: 'ISERR',\n\t0x007F: 'ISTEXT',\n\t0x0080: 'ISNUMBER',\n\t0x0081: 'ISBLANK',\n\t0x0082: 'T',\n\t0x0083: 'N',\n\t0x0084: 'FOPEN',\n\t0x0085: 'FCLOSE',\n\t0x0086: 'FSIZE',\n\t0x0087: 'FREADLN',\n\t0x0088: 'FREAD',\n\t0x0089: 'FWRITELN',\n\t0x008A: 'FWRITE',\n\t0x008B: 'FPOS',\n\t0x008C: 'DATEVALUE',\n\t0x008D: 'TIMEVALUE',\n\t0x008E: 'SLN',\n\t0x008F: 'SYD',\n\t0x0090: 'DDB',\n\t0x0091: 'GET.DEF',\n\t0x0092: 'REFTEXT',\n\t0x0093: 'TEXTREF',\n\t0x0094: 'INDIRECT',\n\t0x0095: 'REGISTER',\n\t0x0096: 'CALL',\n\t0x0097: 'ADD.BAR',\n\t0x0098: 'ADD.MENU',\n\t0x0099: 'ADD.COMMAND',\n\t0x009A: 'ENABLE.COMMAND',\n\t0x009B: 'CHECK.COMMAND',\n\t0x009C: 'RENAME.COMMAND',\n\t0x009D: 'SHOW.BAR',\n\t0x009E: 'DELETE.MENU',\n\t0x009F: 'DELETE.COMMAND',\n\t0x00A0: 'GET.CHART.ITEM',\n\t0x00A1: 'DIALOG.BOX',\n\t0x00A2: 'CLEAN',\n\t0x00A3: 'MDETERM',\n\t0x00A4: 'MINVERSE',\n\t0x00A5: 'MMULT',\n\t0x00A6: 'FILES',\n\t0x00A7: 'IPMT',\n\t0x00A8: 'PPMT',\n\t0x00A9: 'COUNTA',\n\t0x00AA: 'CANCEL.KEY',\n\t0x00AB: 'FOR',\n\t0x00AC: 'WHILE',\n\t0x00AD: 'BREAK',\n\t0x00AE: 'NEXT',\n\t0x00AF: 'INITIATE',\n\t0x00B0: 'REQUEST',\n\t0x00B1: 'POKE',\n\t0x00B2: 'EXECUTE',\n\t0x00B3: 'TERMINATE',\n\t0x00B4: 'RESTART',\n\t0x00B5: 'HELP',\n\t0x00B6: 'GET.BAR',\n\t0x00B7: 'PRODUCT',\n\t0x00B8: 'FACT',\n\t0x00B9: 'GET.CELL',\n\t0x00BA: 'GET.WORKSPACE',\n\t0x00BB: 'GET.WINDOW',\n\t0x00BC: 'GET.DOCUMENT',\n\t0x00BD: 'DPRODUCT',\n\t0x00BE: 'ISNONTEXT',\n\t0x00BF: 'GET.NOTE',\n\t0x00C0: 'NOTE',\n\t0x00C1: 'STDEVP',\n\t0x00C2: 'VARP',\n\t0x00C3: 'DSTDEVP',\n\t0x00C4: 'DVARP',\n\t0x00C5: 'TRUNC',\n\t0x00C6: 'ISLOGICAL',\n\t0x00C7: 'DCOUNTA',\n\t0x00C8: 'DELETE.BAR',\n\t0x00C9: 'UNREGISTER',\n\t0x00CC: 'USDOLLAR',\n\t0x00CD: 'FINDB',\n\t0x00CE: 'SEARCHB',\n\t0x00CF: 'REPLACEB',\n\t0x00D0: 'LEFTB',\n\t0x00D1: 'RIGHTB',\n\t0x00D2: 'MIDB',\n\t0x00D3: 'LENB',\n\t0x00D4: 'ROUNDUP',\n\t0x00D5: 'ROUNDDOWN',\n\t0x00D6: 'ASC',\n\t0x00D7: 'DBCS',\n\t0x00D8: 'RANK',\n\t0x00DB: 'ADDRESS',\n\t0x00DC: 'DAYS360',\n\t0x00DD: 'TODAY',\n\t0x00DE: 'VDB',\n\t0x00DF: 'ELSE',\n\t0x00E0: 'ELSE.IF',\n\t0x00E1: 'END.IF',\n\t0x00E2: 'FOR.CELL',\n\t0x00E3: 'MEDIAN',\n\t0x00E4: 'SUMPRODUCT',\n\t0x00E5: 'SINH',\n\t0x00E6: 'COSH',\n\t0x00E7: 'TANH',\n\t0x00E8: 'ASINH',\n\t0x00E9: 'ACOSH',\n\t0x00EA: 'ATANH',\n\t0x00EB: 'DGET',\n\t0x00EC: 'CREATE.OBJECT',\n\t0x00ED: 'VOLATILE',\n\t0x00EE: 'LAST.ERROR',\n\t0x00EF: 'CUSTOM.UNDO',\n\t0x00F0: 'CUSTOM.REPEAT',\n\t0x00F1: 'FORMULA.CONVERT',\n\t0x00F2: 'GET.LINK.INFO',\n\t0x00F3: 'TEXT.BOX',\n\t0x00F4: 'INFO',\n\t0x00F5: 'GROUP',\n\t0x00F6: 'GET.OBJECT',\n\t0x00F7: 'DB',\n\t0x00F8: 'PAUSE',\n\t0x00FB: 'RESUME',\n\t0x00FC: 'FREQUENCY',\n\t0x00FD: 'ADD.TOOLBAR',\n\t0x00FE: 'DELETE.TOOLBAR',\n\t0x00FF: 'User',\n\t0x0100: 'RESET.TOOLBAR',\n\t0x0101: 'EVALUATE',\n\t0x0102: 'GET.TOOLBAR',\n\t0x0103: 'GET.TOOL',\n\t0x0104: 'SPELLING.CHECK',\n\t0x0105: 'ERROR.TYPE',\n\t0x0106: 'APP.TITLE',\n\t0x0107: 'WINDOW.TITLE',\n\t0x0108: 'SAVE.TOOLBAR',\n\t0x0109: 'ENABLE.TOOL',\n\t0x010A: 'PRESS.TOOL',\n\t0x010B: 'REGISTER.ID',\n\t0x010C: 'GET.WORKBOOK',\n\t0x010D: 'AVEDEV',\n\t0x010E: 'BETADIST',\n\t0x010F: 'GAMMALN',\n\t0x0110: 'BETAINV',\n\t0x0111: 'BINOMDIST',\n\t0x0112: 'CHIDIST',\n\t0x0113: 'CHIINV',\n\t0x0114: 'COMBIN',\n\t0x0115: 'CONFIDENCE',\n\t0x0116: 'CRITBINOM',\n\t0x0117: 'EVEN',\n\t0x0118: 'EXPONDIST',\n\t0x0119: 'FDIST',\n\t0x011A: 'FINV',\n\t0x011B: 'FISHER',\n\t0x011C: 'FISHERINV',\n\t0x011D: 'FLOOR',\n\t0x011E: 'GAMMADIST',\n\t0x011F: 'GAMMAINV',\n\t0x0120: 'CEILING',\n\t0x0121: 'HYPGEOMDIST',\n\t0x0122: 'LOGNORMDIST',\n\t0x0123: 'LOGINV',\n\t0x0124: 'NEGBINOMDIST',\n\t0x0125: 'NORMDIST',\n\t0x0126: 'NORMSDIST',\n\t0x0127: 'NORMINV',\n\t0x0128: 'NORMSINV',\n\t0x0129: 'STANDARDIZE',\n\t0x012A: 'ODD',\n\t0x012B: 'PERMUT',\n\t0x012C: 'POISSON',\n\t0x012D: 'TDIST',\n\t0x012E: 'WEIBULL',\n\t0x012F: 'SUMXMY2',\n\t0x0130: 'SUMX2MY2',\n\t0x0131: 'SUMX2PY2',\n\t0x0132: 'CHITEST',\n\t0x0133: 'CORREL',\n\t0x0134: 'COVAR',\n\t0x0135: 'FORECAST',\n\t0x0136: 'FTEST',\n\t0x0137: 'INTERCEPT',\n\t0x0138: 'PEARSON',\n\t0x0139: 'RSQ',\n\t0x013A: 'STEYX',\n\t0x013B: 'SLOPE',\n\t0x013C: 'TTEST',\n\t0x013D: 'PROB',\n\t0x013E: 'DEVSQ',\n\t0x013F: 'GEOMEAN',\n\t0x0140: 'HARMEAN',\n\t0x0141: 'SUMSQ',\n\t0x0142: 'KURT',\n\t0x0143: 'SKEW',\n\t0x0144: 'ZTEST',\n\t0x0145: 'LARGE',\n\t0x0146: 'SMALL',\n\t0x0147: 'QUARTILE',\n\t0x0148: 'PERCENTILE',\n\t0x0149: 'PERCENTRANK',\n\t0x014A: 'MODE',\n\t0x014B: 'TRIMMEAN',\n\t0x014C: 'TINV',\n\t0x014E: 'MOVIE.COMMAND',\n\t0x014F: 'GET.MOVIE',\n\t0x0150: 'CONCATENATE',\n\t0x0151: 'POWER',\n\t0x0152: 'PIVOT.ADD.DATA',\n\t0x0153: 'GET.PIVOT.TABLE',\n\t0x0154: 'GET.PIVOT.FIELD',\n\t0x0155: 'GET.PIVOT.ITEM',\n\t0x0156: 'RADIANS',\n\t0x0157: 'DEGREES',\n\t0x0158: 'SUBTOTAL',\n\t0x0159: 'SUMIF',\n\t0x015A: 'COUNTIF',\n\t0x015B: 'COUNTBLANK',\n\t0x015C: 'SCENARIO.GET',\n\t0x015D: 'OPTIONS.LISTS.GET',\n\t0x015E: 'ISPMT',\n\t0x015F: 'DATEDIF',\n\t0x0160: 'DATESTRING',\n\t0x0161: 'NUMBERSTRING',\n\t0x0162: 'ROMAN',\n\t0x0163: 'OPEN.DIALOG',\n\t0x0164: 'SAVE.DIALOG',\n\t0x0165: 'VIEW.GET',\n\t0x0166: 'GETPIVOTDATA',\n\t0x0167: 'HYPERLINK',\n\t0x0168: 'PHONETIC',\n\t0x0169: 'AVERAGEA',\n\t0x016A: 'MAXA',\n\t0x016B: 'MINA',\n\t0x016C: 'STDEVPA',\n\t0x016D: 'VARPA',\n\t0x016E: 'STDEVA',\n\t0x016F: 'VARA',\n\t0x0170: 'BAHTTEXT',\n\t0x0171: 'THAIDAYOFWEEK',\n\t0x0172: 'THAIDIGIT',\n\t0x0173: 'THAIMONTHOFYEAR',\n\t0x0174: 'THAINUMSOUND',\n\t0x0175: 'THAINUMSTRING',\n\t0x0176: 'THAISTRINGLENGTH',\n\t0x0177: 'ISTHAIDIGIT',\n\t0x0178: 'ROUNDBAHTDOWN',\n\t0x0179: 'ROUNDBAHTUP',\n\t0x017A: 'THAIYEAR',\n\t0x017B: 'RTD'\n};\nvar FtabArgc = {\n\t0x0002: 1, /* ISNA */\n\t0x0003: 1, /* ISERROR */\n\t0x000F: 1, /* SIN */\n\t0x0010: 1, /* COS */\n\t0x0011: 1, /* TAN */\n\t0x0012: 1, /* ATAN */\n\t0x0014: 1, /* SQRT */\n\t0x0015: 1, /* EXP */\n\t0x0016: 1, /* LN */\n\t0x0017: 1, /* LOG10 */\n\t0x0018: 1, /* ABS */\n\t0x0019: 1, /* INT */\n\t0x001A: 1, /* SIGN */\n\t0x001B: 2, /* ROUND */\n\t0x001E: 2, /* REPT */\n\t0x001F: 3, /* MID */\n\t0x0020: 1, /* LEN */\n\t0x0021: 1, /* VALUE */\n\t0x0026: 1, /* NOT */\n\t0x0027: 2, /* MOD */\n\t0x0028: 3, /* DCOUNT */\n\t0x0029: 3, /* DSUM */\n\t0x002A: 3, /* DAVERAGE */\n\t0x002B: 3, /* DMIN */\n\t0x002C: 3, /* DMAX */\n\t0x002D: 3, /* DSTDEV */\n\t0x002F: 3, /* DVAR */\n\t0x0030: 2, /* TEXT */\n\t0x0035: 1, /* GOTO */\n\t0x003D: 3, /* MIRR */\n\t0x0041: 3, /* DATE */\n\t0x0042: 3, /* TIME */\n\t0x0043: 1, /* DAY */\n\t0x0044: 1, /* MONTH */\n\t0x0045: 1, /* YEAR */\n\t0x0047: 1, /* HOUR */\n\t0x0048: 1, /* MINUTE */\n\t0x0049: 1, /* SECOND */\n\t0x004B: 1, /* AREAS */\n\t0x004C: 1, /* ROWS */\n\t0x004D: 1, /* COLUMNS */\n\t0x004F: 2, /* ABSREF */\n\t0x0050: 2, /* RELREF */\n\t0x0053: 1, /* TRANSPOSE */\n\t0x0056: 1, /* TYPE */\n\t0x005A: 1, /* DEREF */\n\t0x0061: 2, /* ATAN2 */\n\t0x0062: 1, /* ASIN */\n\t0x0063: 1, /* ACOS */\n\t0x0069: 1, /* ISREF */\n\t0x006F: 1, /* CHAR */\n\t0x0070: 1, /* LOWER */\n\t0x0071: 1, /* UPPER */\n\t0x0072: 1, /* PROPER */\n\t0x0075: 2, /* EXACT */\n\t0x0076: 1, /* TRIM */\n\t0x0077: 4, /* REPLACE */\n\t0x0079: 1, /* CODE */\n\t0x007E: 1, /* ISERR */\n\t0x007F: 1, /* ISTEXT */\n\t0x0080: 1, /* ISNUMBER */\n\t0x0081: 1, /* ISBLANK */\n\t0x0082: 1, /* T */\n\t0x0083: 1, /* N */\n\t0x0085: 1, /* FCLOSE */\n\t0x0086: 1, /* FSIZE */\n\t0x0087: 1, /* FREADLN */\n\t0x0088: 2, /* FREAD */\n\t0x0089: 2, /* FWRITELN */\n\t0x008A: 2, /* FWRITE */\n\t0x008C: 1, /* DATEVALUE */\n\t0x008D: 1, /* TIMEVALUE */\n\t0x008E: 3, /* SLN */\n\t0x008F: 4, /* SYD */\n\t0x00A2: 1, /* CLEAN */\n\t0x00A3: 1, /* MDETERM */\n\t0x00A4: 1, /* MINVERSE */\n\t0x00A5: 2, /* MMULT */\n\t0x00AC: 1, /* WHILE */\n\t0x00AF: 2, /* INITIATE */\n\t0x00B0: 2, /* REQUEST */\n\t0x00B1: 3, /* POKE */\n\t0x00B2: 2, /* EXECUTE */\n\t0x00B3: 1, /* TERMINATE */\n\t0x00B8: 1, /* FACT */\n\t0x00BD: 3, /* DPRODUCT */\n\t0x00BE: 1, /* ISNONTEXT */\n\t0x00C3: 3, /* DSTDEVP */\n\t0x00C4: 3, /* DVARP */\n\t0x00C6: 1, /* ISLOGICAL */\n\t0x00C7: 3, /* DCOUNTA */\n\t0x00C9: 1, /* UNREGISTER */\n\t0x00CF: 4, /* REPLACEB */\n\t0x00D2: 3, /* MIDB */\n\t0x00D3: 1, /* LENB */\n\t0x00D4: 2, /* ROUNDUP */\n\t0x00D5: 2, /* ROUNDDOWN */\n\t0x00D6: 1, /* ASC */\n\t0x00D7: 1, /* DBCS */\n\t0x00E5: 1, /* SINH */\n\t0x00E6: 1, /* COSH */\n\t0x00E7: 1, /* TANH */\n\t0x00E8: 1, /* ASINH */\n\t0x00E9: 1, /* ACOSH */\n\t0x00EA: 1, /* ATANH */\n\t0x00EB: 3, /* DGET */\n\t0x00F4: 1, /* INFO */\n\t0x00FC: 2, /* FREQUENCY */\n\t0x0101: 1, /* EVALUATE */\n\t0x0105: 1, /* ERROR.TYPE */\n\t0x010F: 1, /* GAMMALN */\n\t0x0111: 4, /* BINOMDIST */\n\t0x0112: 2, /* CHIDIST */\n\t0x0113: 2, /* CHIINV */\n\t0x0114: 2, /* COMBIN */\n\t0x0115: 3, /* CONFIDENCE */\n\t0x0116: 3, /* CRITBINOM */\n\t0x0117: 1, /* EVEN */\n\t0x0118: 3, /* EXPONDIST */\n\t0x0119: 3, /* FDIST */\n\t0x011A: 3, /* FINV */\n\t0x011B: 1, /* FISHER */\n\t0x011C: 1, /* FISHERINV */\n\t0x011D: 2, /* FLOOR */\n\t0x011E: 4, /* GAMMADIST */\n\t0x011F: 3, /* GAMMAINV */\n\t0x0120: 2, /* CEILING */\n\t0x0121: 4, /* HYPGEOMDIST */\n\t0x0122: 3, /* LOGNORMDIST */\n\t0x0123: 3, /* LOGINV */\n\t0x0124: 3, /* NEGBINOMDIST */\n\t0x0125: 4, /* NORMDIST */\n\t0x0126: 1, /* NORMSDIST */\n\t0x0127: 3, /* NORMINV */\n\t0x0128: 1, /* NORMSINV */\n\t0x0129: 3, /* STANDARDIZE */\n\t0x012A: 1, /* ODD */\n\t0x012B: 2, /* PERMUT */\n\t0x012C: 3, /* POISSON */\n\t0x012D: 3, /* TDIST */\n\t0x012E: 4, /* WEIBULL */\n\t0x012F: 2, /* SUMXMY2 */\n\t0x0130: 2, /* SUMX2MY2 */\n\t0x0131: 2, /* SUMX2PY2 */\n\t0x0132: 2, /* CHITEST */\n\t0x0133: 2, /* CORREL */\n\t0x0134: 2, /* COVAR */\n\t0x0135: 3, /* FORECAST */\n\t0x0136: 2, /* FTEST */\n\t0x0137: 2, /* INTERCEPT */\n\t0x0138: 2, /* PEARSON */\n\t0x0139: 2, /* RSQ */\n\t0x013A: 2, /* STEYX */\n\t0x013B: 2, /* SLOPE */\n\t0x013C: 4, /* TTEST */\n\t0x0145: 2, /* LARGE */\n\t0x0146: 2, /* SMALL */\n\t0x0147: 2, /* QUARTILE */\n\t0x0148: 2, /* PERCENTILE */\n\t0x014B: 2, /* TRIMMEAN */\n\t0x014C: 2, /* TINV */\n\t0x0151: 2, /* POWER */\n\t0x0156: 1, /* RADIANS */\n\t0x0157: 1, /* DEGREES */\n\t0x015A: 2, /* COUNTIF */\n\t0x015B: 1, /* COUNTBLANK */\n\t0x015E: 4, /* ISPMT */\n\t0x015F: 3, /* DATEDIF */\n\t0x0160: 1, /* DATESTRING */\n\t0x0161: 2, /* NUMBERSTRING */\n\t0x0168: 1, /* PHONETIC */\n\t0x0170: 1, /* BAHTTEXT */\n\t0x0171: 1, /* THAIDAYOFWEEK */\n\t0x0172: 1, /* THAIDIGIT */\n\t0x0173: 1, /* THAIMONTHOFYEAR */\n\t0x0174: 1, /* THAINUMSOUND */\n\t0x0175: 1, /* THAINUMSTRING */\n\t0x0176: 1, /* THAISTRINGLENGTH */\n\t0x0177: 1, /* ISTHAIDIGIT */\n\t0x0178: 1, /* ROUNDBAHTDOWN */\n\t0x0179: 1, /* ROUNDBAHTUP */\n\t0x017A: 1, /* THAIYEAR */\n\t0xFFFF: 0\n};\n/* [MS-XLSX] 2.2.3 Functions */\nvar XLSXFutureFunctions = {\n\t\"_xlfn.ACOT\": \"ACOT\",\n\t\"_xlfn.ACOTH\": \"ACOTH\",\n\t\"_xlfn.AGGREGATE\": \"AGGREGATE\",\n\t\"_xlfn.ARABIC\": \"ARABIC\",\n\t\"_xlfn.AVERAGEIF\": \"AVERAGEIF\",\n\t\"_xlfn.AVERAGEIFS\": \"AVERAGEIFS\",\n\t\"_xlfn.BASE\": \"BASE\",\n\t\"_xlfn.BETA.DIST\": \"BETA.DIST\",\n\t\"_xlfn.BETA.INV\": \"BETA.INV\",\n\t\"_xlfn.BINOM.DIST\": \"BINOM.DIST\",\n\t\"_xlfn.BINOM.DIST.RANGE\": \"BINOM.DIST.RANGE\",\n\t\"_xlfn.BINOM.INV\": \"BINOM.INV\",\n\t\"_xlfn.BITAND\": \"BITAND\",\n\t\"_xlfn.BITLSHIFT\": \"BITLSHIFT\",\n\t\"_xlfn.BITOR\": \"BITOR\",\n\t\"_xlfn.BITRSHIFT\": \"BITRSHIFT\",\n\t\"_xlfn.BITXOR\": \"BITXOR\",\n\t\"_xlfn.CEILING.MATH\": \"CEILING.MATH\",\n\t\"_xlfn.CEILING.PRECISE\": \"CEILING.PRECISE\",\n\t\"_xlfn.CHISQ.DIST\": \"CHISQ.DIST\",\n\t\"_xlfn.CHISQ.DIST.RT\": \"CHISQ.DIST.RT\",\n\t\"_xlfn.CHISQ.INV\": \"CHISQ.INV\",\n\t\"_xlfn.CHISQ.INV.RT\": \"CHISQ.INV.RT\",\n\t\"_xlfn.CHISQ.TEST\": \"CHISQ.TEST\",\n\t\"_xlfn.COMBINA\": \"COMBINA\",\n\t\"_xlfn.CONFIDENCE.NORM\": \"CONFIDENCE.NORM\",\n\t\"_xlfn.CONFIDENCE.T\": \"CONFIDENCE.T\",\n\t\"_xlfn.COT\": \"COT\",\n\t\"_xlfn.COTH\": \"COTH\",\n\t\"_xlfn.COUNTIFS\": \"COUNTIFS\",\n\t\"_xlfn.COVARIANCE.P\": \"COVARIANCE.P\",\n\t\"_xlfn.COVARIANCE.S\": \"COVARIANCE.S\",\n\t\"_xlfn.CSC\": \"CSC\",\n\t\"_xlfn.CSCH\": \"CSCH\",\n\t\"_xlfn.DAYS\": \"DAYS\",\n\t\"_xlfn.DECIMAL\": \"DECIMAL\",\n\t\"_xlfn.ECMA.CEILING\": \"ECMA.CEILING\",\n\t\"_xlfn.ERF.PRECISE\": \"ERF.PRECISE\",\n\t\"_xlfn.ERFC.PRECISE\": \"ERFC.PRECISE\",\n\t\"_xlfn.EXPON.DIST\": \"EXPON.DIST\",\n\t\"_xlfn.F.DIST\": \"F.DIST\",\n\t\"_xlfn.F.DIST.RT\": \"F.DIST.RT\",\n\t\"_xlfn.F.INV\": \"F.INV\",\n\t\"_xlfn.F.INV.RT\": \"F.INV.RT\",\n\t\"_xlfn.F.TEST\": \"F.TEST\",\n\t\"_xlfn.FILTERXML\": \"FILTERXML\",\n\t\"_xlfn.FLOOR.MATH\": \"FLOOR.MATH\",\n\t\"_xlfn.FLOOR.PRECISE\": \"FLOOR.PRECISE\",\n\t\"_xlfn.FORMULATEXT\": \"FORMULATEXT\",\n\t\"_xlfn.GAMMA\": \"GAMMA\",\n\t\"_xlfn.GAMMA.DIST\": \"GAMMA.DIST\",\n\t\"_xlfn.GAMMA.INV\": \"GAMMA.INV\",\n\t\"_xlfn.GAMMALN.PRECISE\": \"GAMMALN.PRECISE\",\n\t\"_xlfn.GAUSS\": \"GAUSS\",\n\t\"_xlfn.HYPGEOM.DIST\": \"HYPGEOM.DIST\",\n\t\"_xlfn.IFNA\": \"IFNA\",\n\t\"_xlfn.IFERROR\": \"IFERROR\",\n\t\"_xlfn.IMCOSH\": \"IMCOSH\",\n\t\"_xlfn.IMCOT\": \"IMCOT\",\n\t\"_xlfn.IMCSC\": \"IMCSC\",\n\t\"_xlfn.IMCSCH\": \"IMCSCH\",\n\t\"_xlfn.IMSEC\": \"IMSEC\",\n\t\"_xlfn.IMSECH\": \"IMSECH\",\n\t\"_xlfn.IMSINH\": \"IMSINH\",\n\t\"_xlfn.IMTAN\": \"IMTAN\",\n\t\"_xlfn.ISFORMULA\": \"ISFORMULA\",\n\t\"_xlfn.ISO.CEILING\": \"ISO.CEILING\",\n\t\"_xlfn.ISOWEEKNUM\": \"ISOWEEKNUM\",\n\t\"_xlfn.LOGNORM.DIST\": \"LOGNORM.DIST\",\n\t\"_xlfn.LOGNORM.INV\": \"LOGNORM.INV\",\n\t\"_xlfn.MODE.MULT\": \"MODE.MULT\",\n\t\"_xlfn.MODE.SNGL\": \"MODE.SNGL\",\n\t\"_xlfn.MUNIT\": \"MUNIT\",\n\t\"_xlfn.NEGBINOM.DIST\": \"NEGBINOM.DIST\",\n\t\"_xlfn.NETWORKDAYS.INTL\": \"NETWORKDAYS.INTL\",\n\t\"_xlfn.NIGBINOM\": \"NIGBINOM\",\n\t\"_xlfn.NORM.DIST\": \"NORM.DIST\",\n\t\"_xlfn.NORM.INV\": \"NORM.INV\",\n\t\"_xlfn.NORM.S.DIST\": \"NORM.S.DIST\",\n\t\"_xlfn.NORM.S.INV\": \"NORM.S.INV\",\n\t\"_xlfn.NUMBERVALUE\": \"NUMBERVALUE\",\n\t\"_xlfn.PDURATION\": \"PDURATION\",\n\t\"_xlfn.PERCENTILE.EXC\": \"PERCENTILE.EXC\",\n\t\"_xlfn.PERCENTILE.INC\": \"PERCENTILE.INC\",\n\t\"_xlfn.PERCENTRANK.EXC\": \"PERCENTRANK.EXC\",\n\t\"_xlfn.PERCENTRANK.INC\": \"PERCENTRANK.INC\",\n\t\"_xlfn.PERMUTATIONA\": \"PERMUTATIONA\",\n\t\"_xlfn.PHI\": \"PHI\",\n\t\"_xlfn.POISSON.DIST\": \"POISSON.DIST\",\n\t\"_xlfn.QUARTILE.EXC\": \"QUARTILE.EXC\",\n\t\"_xlfn.QUARTILE.INC\": \"QUARTILE.INC\",\n\t\"_xlfn.QUERYSTRING\": \"QUERYSTRING\",\n\t\"_xlfn.RANK.AVG\": \"RANK.AVG\",\n\t\"_xlfn.RANK.EQ\": \"RANK.EQ\",\n\t\"_xlfn.RRI\": \"RRI\",\n\t\"_xlfn.SEC\": \"SEC\",\n\t\"_xlfn.SECH\": \"SECH\",\n\t\"_xlfn.SHEET\": \"SHEET\",\n\t\"_xlfn.SHEETS\": \"SHEETS\",\n\t\"_xlfn.SKEW.P\": \"SKEW.P\",\n\t\"_xlfn.STDEV.P\": \"STDEV.P\",\n\t\"_xlfn.STDEV.S\": \"STDEV.S\",\n\t\"_xlfn.SUMIFS\": \"SUMIFS\",\n\t\"_xlfn.T.DIST\": \"T.DIST\",\n\t\"_xlfn.T.DIST.2T\": \"T.DIST.2T\",\n\t\"_xlfn.T.DIST.RT\": \"T.DIST.RT\",\n\t\"_xlfn.T.INV\": \"T.INV\",\n\t\"_xlfn.T.INV.2T\": \"T.INV.2T\",\n\t\"_xlfn.T.TEST\": \"T.TEST\",\n\t\"_xlfn.UNICHAR\": \"UNICHAR\",\n\t\"_xlfn.UNICODE\": \"UNICODE\",\n\t\"_xlfn.VAR.P\": \"VAR.P\",\n\t\"_xlfn.VAR.S\": \"VAR.S\",\n\t\"_xlfn.WEBSERVICE\": \"WEBSERVICE\",\n\t\"_xlfn.WEIBULL.DIST\": \"WEIBULL.DIST\",\n\t\"_xlfn.WORKDAY.INTL\": \"WORKDAY.INTL\",\n\t\"_xlfn.XOR\": \"XOR\",\n\t\"_xlfn.Z.TEST\": \"Z.TEST\"\n};\n\nvar strs = {}; // shared strings\nvar _ssfopts = {}; // spreadsheet formatting options\n\nRELS.WS = \"http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet\";\n\nfunction get_sst_id(sst, str) {\n\tfor(var i = 0, len = sst.length; i < len; ++i) if(sst[i].t === str) { sst.Count ++; return i; }\n\tsst[len] = {t:str}; sst.Count ++; sst.Unique ++; return len;\n}\n\nfunction get_cell_style(styles, cell, opts) {\n\tvar z = opts.revssf[cell.z != null ? cell.z : \"General\"];\n\tfor(var i = 0, len = styles.length; i != len; ++i) if(styles[i].numFmtId === z) return i;\n\tstyles[len] = {\n\t\tnumFmtId:z,\n\t\tfontId:0,\n\t\tfillId:0,\n\t\tborderId:0,\n\t\txfId:0,\n\t\tapplyNumberFormat:1\n\t};\n\treturn len;\n}\n\nfunction safe_format(p, fmtid, fillid, opts) {\n\ttry {\n\t\tif(p.t === 'e') p.w = p.w || BErr[p.v];\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v,_ssfopts);\n\t\t\t\telse p.w = SSF._general_num(p.v,_ssfopts);\n\t\t\t}\n\t\t\telse if(p.t === 'd') {\n\t\t\t\tvar dd = datenum(p.v);\n\t\t\t\tif((dd|0) === dd) p.w = SSF._general_int(dd,_ssfopts);\n\t\t\t\telse p.w = SSF._general_num(dd,_ssfopts);\n\t\t\t}\n\t\t\telse if(p.v === undefined) return \"\";\n\t\t\telse p.w = SSF._general(p.v,_ssfopts);\n\t\t}\n\t\telse if(p.t === 'd') p.w = SSF.format(fmtid,datenum(p.v),_ssfopts);\n\t\telse p.w = SSF.format(fmtid,p.v,_ssfopts);\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n\tif(fillid) try {\n\t\tp.s = styles.Fills[fillid];\n\t\tif (p.s.fgColor && p.s.fgColor.theme) {\n\t\t\tp.s.fgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.fgColor.theme].rgb, p.s.fgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.fgColor.raw_rgb = themes.themeElements.clrScheme[p.s.fgColor.theme].rgb;\n\t\t}\n\t\tif (p.s.bgColor && p.s.bgColor.theme) {\n\t\t\tp.s.bgColor.rgb = rgb_tint(themes.themeElements.clrScheme[p.s.bgColor.theme].rgb, p.s.bgColor.tint || 0);\n\t\t\tif(opts.WTF) p.s.bgColor.raw_rgb = themes.themeElements.clrScheme[p.s.bgColor.theme].rgb;\n\t\t}\n\t} catch(e) { if(opts.WTF) throw e; }\n}\nfunction parse_ws_xml_dim(ws, s) {\n\tvar d = safe_decode_range(s);\n\tif(d.s.r<=d.e.r && d.s.c<=d.e.c && d.s.r>=0 && d.s.c>=0) ws[\"!ref\"] = encode_range(d);\n}\nvar mergecregex = /<mergeCell ref=\"[A-Z0-9:]+\"\\s*\\/>/g;\nvar sheetdataregex = /<(?:\\w+:)?sheetData>([^\\u2603]*)<\\/(?:\\w+:)?sheetData>/;\nvar hlinkregex = /<hyperlink[^>]*\\/>/g;\nvar dimregex = /\"(\\w*:\\w*)\"/;\nvar colregex = /<col[^>]*\\/>/g;\n/* 18.3 Worksheets */\nfunction parse_ws_xml(data, opts, rels) {\n\tif(!data) return data;\n\t/* 18.3.1.99 worksheet CT_Worksheet */\n\tvar s = {};\n\n\t/* 18.3.1.35 dimension CT_SheetDimension ? */\n\tvar ridx = data.indexOf(\"<dimension\");\n\tif(ridx > 0) {\n\t\tvar ref = data.substr(ridx,50).match(dimregex);\n\t\tif(ref != null) parse_ws_xml_dim(s, ref[1]);\n\t}\n\n\t/* 18.3.1.55 mergeCells CT_MergeCells */\n\tvar mergecells = [];\n\tif(data.indexOf(\"</mergeCells>\")!==-1) {\n\t\tvar merges = data.match(mergecregex);\n\t\tfor(ridx = 0; ridx != merges.length; ++ridx)\n\t\t\tmergecells[ridx] = safe_decode_range(merges[ridx].substr(merges[ridx].indexOf(\"\\\"\")+1));\n\t}\n\n\t/* 18.3.1.17 cols CT_Cols */\n\tvar columns = [];\n\tif(opts.cellStyles && data.indexOf(\"</cols>\")!==-1) {\n\t\t/* 18.3.1.13 col CT_Col */\n\t\tvar cols = data.match(colregex);\n\t\tparse_ws_xml_cols(columns, cols);\n\t}\n\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\n\t/* 18.3.1.80 sheetData CT_SheetData ? */\n\tvar mtch=data.match(sheetdataregex);\n\tif(mtch) parse_ws_xml_data(mtch[1], s, opts, refguess);\n\n\t/* 18.3.1.48 hyperlinks CT_Hyperlinks */\n\tif(data.indexOf(\"</hyperlinks>\")!==-1) parse_ws_xml_hlinks(s, data.match(hlinkregex), rels);\n\n\tif(!s[\"!ref\"] && refguess.e.c >= refguess.s.c && refguess.e.r >= refguess.s.r) s[\"!ref\"] = encode_range(refguess);\n\tif(opts.sheetRows > 0 && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows < +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(mergecells.length > 0) s[\"!merges\"] = mergecells;\n\tif(columns.length > 0) s[\"!cols\"] = columns;\n\treturn s;\n}\n\nfunction write_ws_xml_merges(merges) {\n\tif(merges.length == 0) return \"\";\n\tvar o = '<mergeCells count=\"' + merges.length + '\">';\n\tfor(var i = 0; i != merges.length; ++i) o += '<mergeCell ref=\"' + encode_range(merges[i]) + '\"/>';\n\treturn o + '</mergeCells>';\n}\n\nfunction parse_ws_xml_hlinks(s, data, rels) {\n\tfor(var i = 0; i != data.length; ++i) {\n\t\tvar val = parsexmltag(data[i], true);\n\t\tif(!val.ref) return;\n\t\tvar rel = rels ? rels['!id'][val.id] : null;\n\t\tif(rel) {\n\t\t\tval.Target = rel.Target;\n\t\t\tif(val.location) val.Target += \"#\"+val.location;\n\t\t\tval.Rel = rel;\n\t\t} else {\n\t\t\tval.Target = val.location;\n\t\t\trel = {Target: val.location, TargetMode: 'Internal'};\n\t\t\tval.Rel = rel;\n\t\t}\n\t\tvar rng = safe_decode_range(val.ref);\n\t\tfor(var R=rng.s.r;R<=rng.e.r;++R) for(var C=rng.s.c;C<=rng.e.c;++C) {\n\t\t\tvar addr = encode_cell({c:C,r:R});\n\t\t\tif(!s[addr]) s[addr] = {t:\"stub\",v:undefined};\n\t\t\ts[addr].l = val;\n\t\t}\n\t}\n}\n\nfunction parse_ws_xml_cols(columns, cols) {\n\tvar seencol = false;\n\tfor(var coli = 0; coli != cols.length; ++coli) {\n\t\tvar coll = parsexmltag(cols[coli], true);\n\t\tvar colm=parseInt(coll.min, 10)-1, colM=parseInt(coll.max,10)-1;\n\t\tdelete coll.min; delete coll.max;\n\t\tif(!seencol && coll.width) { seencol = true; find_mdw(+coll.width, coll); }\n\t\tif(coll.width) {\n\t\t\tcoll.wpx = width2px(+coll.width);\n\t\t\tcoll.wch = px2char(coll.wpx);\n\t\t\tcoll.MDW = MDW;\n\t\t}\n\t\twhile(colm <= colM) columns[colm++] = coll;\n\t}\n}\n\nfunction write_ws_xml_cols(ws, cols) {\n\tvar o = [\"<cols>\"], col, width;\n\tfor(var i = 0; i != cols.length; ++i) {\n\t\tif(!(col = cols[i])) continue;\n\t\tvar p = {min:i+1,max:i+1};\n\t\t/* wch (chars), wpx (pixels) */\n\t\twidth = -1;\n\t\tif(col.wpx) width = px2char(col.wpx);\n\t\telse if(col.wch) width = col.wch;\n\t\tif(width > -1) { p.width = char2width(width); p.customWidth= 1; }\n\t\to[o.length] = (writextag('col', null, p));\n\t}\n\to[o.length] = \"</cols>\";\n\treturn o.join(\"\");\n}\n\nfunction write_ws_xml_cell(cell, ref, ws, opts, idx, wb) {\n\tif(cell.v === undefined) return \"\";\n\tvar vv = \"\";\n\tvar oldt = cell.t, oldv = cell.v;\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': vv = ''+cell.v; break;\n\t\tcase 'e': vv = BErr[cell.v]; break;\n\t\tcase 'd':\n\t\t\tif(opts.cellDates) vv = new Date(cell.v).toISOString();\n\t\t\telse {\n\t\t\t\tcell.t = 'n';\n\t\t\t\tvv = ''+(cell.v = datenum(cell.v));\n\t\t\t\tif(typeof cell.z === 'undefined') cell.z = SSF._table[14];\n\t\t\t}\n\t\t\tbreak;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar v = writetag('v', escapexml(vv)), o = {r:ref};\n\t/* TODO: cell style */\n\tvar os = get_cell_style(opts.cellXfs, cell, opts);\n\tif(os !== 0) o.s = os;\n\tswitch(cell.t) {\n\t\tcase 'n': break;\n\t\tcase 'd': o.t = \"d\"; break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t\tdefault:\n\t\t\tif(opts.bookSST) {\n\t\t\t\tv = writetag('v', ''+get_sst_id(opts.Strings, cell.v));\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t}\n\tif(cell.t != oldt) { cell.t = oldt; cell.v = oldv; }\n\treturn writextag('c', v, o);\n}\n\nvar parse_ws_xml_data = (function parse_ws_xml_data_factory() {\n\tvar cellregex = /<(?:\\w+:)?c[ >]/, rowregex = /<\\/(?:\\w+:)?row>/;\n\tvar rregex = /r=[\"']([^\"']*)[\"']/, isregex = /<is>([\\S\\s]*?)<\\/is>/;\n\tvar match_v = matchtag(\"v\"), match_f = matchtag(\"f\");\n\nreturn function parse_ws_xml_data(sdata, s, opts, guess) {\n\tvar ri = 0, x = \"\", cells = [], cref = [], idx = 0, i=0, cc=0, d=\"\", p;\n\tvar tag, tagr = 0, tagc = 0;\n\tvar sstr;\n\tvar fmtid = 0, fillid = 0, do_format = Array.isArray(styles.CellXf), cf;\n\tfor(var marr = sdata.split(rowregex), mt = 0, marrlen = marr.length; mt != marrlen; ++mt) {\n\t\tx = marr[mt].trim();\n\t\tvar xlen = x.length;\n\t\tif(xlen === 0) continue;\n\n\t\t/* 18.3.1.73 row CT_Row */\n\t\tfor(ri = 0; ri < xlen; ++ri) if(x.charCodeAt(ri) === 62) break; ++ri;\n\t\ttag = parsexmltag(x.substr(0,ri), true);\n\t\t/* SpreadSheetGear uses implicit r/c */\n\t\ttagr = typeof tag.r !== 'undefined' ? parseInt(tag.r, 10) : tagr+1; tagc = -1;\n\t\tif(opts.sheetRows && opts.sheetRows < tagr) continue;\n\t\tif(guess.s.r > tagr - 1) guess.s.r = tagr - 1;\n\t\tif(guess.e.r < tagr - 1) guess.e.r = tagr - 1;\n\n\t\t/* 18.3.1.4 c CT_Cell */\n\t\tcells = x.substr(ri).split(cellregex);\n\t\tfor(ri = typeof tag.r === 'undefined' ? 0 : 1; ri != cells.length; ++ri) {\n\t\t\tx = cells[ri].trim();\n\t\t\tif(x.length === 0) continue;\n\t\t\tcref = x.match(rregex); idx = ri; i=0; cc=0;\n\t\t\tx = \"<c \" + (x.substr(0,1)==\"<\"?\">\":\"\") + x;\n\t\t\tif(cref !== null && cref.length === 2) {\n\t\t\t\tidx = 0; d=cref[1];\n\t\t\t\tfor(i=0; i != d.length; ++i) {\n\t\t\t\t\tif((cc=d.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\t\t\t\tidx = 26*idx + cc;\n\t\t\t\t}\n\t\t\t\t--idx;\n\t\t\t\ttagc = idx;\n\t\t\t} else ++tagc;\n\t\t\tfor(i = 0; i != x.length; ++i) if(x.charCodeAt(i) === 62) break; ++i;\n\t\t\ttag = parsexmltag(x.substr(0,i), true);\n\t\t\tif(!tag.r) tag.r = utils.encode_cell({r:tagr-1, c:tagc});\n\t\t\td = x.substr(i);\n\t\t\tp = {t:\"\"};\n\n\t\t\tif((cref=d.match(match_v))!== null && cref[1] !== '') p.v=unescapexml(cref[1]);\n\t\t\tif(opts.cellFormula && (cref=d.match(match_f))!== null) p.f=unescapexml(cref[1]);\n\n\t\t\t/* SCHEMA IS ACTUALLY INCORRECT HERE. IF A CELL HAS NO T, EMIT \"\" */\n\t\t\tif(tag.t === undefined && p.v === undefined) {\n\t\t\t\tif(!opts.sheetStubs) continue;\n\t\t\t\tp.t = \"stub\";\n\t\t\t}\n\t\t\telse p.t = tag.t || \"n\";\n\t\t\tif(guess.s.c > idx) guess.s.c = idx;\n\t\t\tif(guess.e.c < idx) guess.e.c = idx;\n\t\t\t/* 18.18.11 t ST_CellType */\n\t\t\tswitch(p.t) {\n\t\t\t\tcase 'n': p.v = parseFloat(p.v); break;\n\t\t\t\tcase 's':\n\t\t\t\t\tsstr = strs[parseInt(p.v, 10)];\n\t\t\t\t\tp.v = sstr.t;\n\t\t\t\t\tp.r = sstr.r;\n\t\t\t\t\tif(opts.cellHTML) p.h = sstr.h;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'str':\n\t\t\t\t\tp.t = \"s\";\n\t\t\t\t\tp.v = (p.v!=null) ? utf8read(p.v) : '';\n\t\t\t\t\tif(opts.cellHTML) p.h = p.v;\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'inlineStr':\n\t\t\t\t\tcref = d.match(isregex);\n\t\t\t\t\tp.t = 's';\n\t\t\t\t\tif(cref !== null) { sstr = parse_si(cref[1]); p.v = sstr.t; } else p.v = \"\";\n\t\t\t\t\tbreak; // inline string\n\t\t\t\tcase 'b': p.v = parsexmlbool(p.v); break;\n\t\t\t\tcase 'd':\n\t\t\t\t\tif(!opts.cellDates) { p.v = datenum(p.v); p.t = 'n'; }\n\t\t\t\t\tbreak;\n\t\t\t\t/* error string in .v, number in .v */\n\t\t\t\tcase 'e': p.w = p.v; p.v = RBErr[p.v]; break;\n\t\t\t}\n\t\t\t/* formatting */\n\t\t\tfmtid = fillid = 0;\n\t\t\tif(do_format && tag.s !== undefined) {\n\t\t\t\tcf = styles.CellXf[tag.s];\n\t\t\t\tif(cf != null) {\n\t\t\t\t\tif(cf.numFmtId != null) fmtid = cf.numFmtId;\n\t\t\t\t\tif(opts.cellStyles && cf.fillId != null) fillid = cf.fillId;\n\t\t\t\t}\n\t\t\t}\n\t\t\tsafe_format(p, fmtid, fillid, opts);\n\t\t\ts[tag.r] = p;\n\t\t}\n\t}\n}; })();\n\nfunction write_ws_xml_data(ws, opts, idx, wb) {\n\tvar o = [], r = [], range = safe_decode_range(ws['!ref']), cell, ref, rr = \"\", cols = [], R, C;\n\tfor(C = range.s.c; C <= range.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = range.s.r; R <= range.e.r; ++R) {\n\t\tr = [];\n\t\trr = encode_row(R);\n\t\tfor(C = range.s.c; C <= range.e.c; ++C) {\n\t\t\tref = cols[C] + rr;\n\t\t\tif(ws[ref] === undefined) continue;\n\t\t\tif((cell = write_ws_xml_cell(ws[ref], ref, ws, opts, idx, wb)) != null) r.push(cell);\n\t\t}\n\t\tif(r.length > 0) o[o.length] = (writextag('row', r.join(\"\"), {r:rr}));\n\t}\n\treturn o.join(\"\");\n}\n\nvar WS_XML_ROOT = writextag('worksheet', null, {\n\t'xmlns': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction write_ws_xml(idx, opts, wb) {\n\tvar o = [XML_HEADER, WS_XML_ROOT];\n\tvar s = wb.SheetNames[idx], sidx = 0, rdata = \"\";\n\tvar ws = wb.Sheets[s];\n\tif(ws === undefined) ws = {};\n\tvar ref = ws['!ref']; if(ref === undefined) ref = 'A1';\n\to[o.length] = (writextag('dimension', null, {'ref': ref}));\n\n\tif(ws['!cols'] !== undefined && ws['!cols'].length > 0) o[o.length] = (write_ws_xml_cols(ws, ws['!cols']));\n\to[sidx = o.length] = '<sheetData/>';\n\tif(ws['!ref'] !== undefined) {\n\t\trdata = write_ws_xml_data(ws, opts, idx, wb);\n\t\tif(rdata.length > 0) o[o.length] = (rdata);\n\t}\n\tif(o.length>sidx+1) { o[o.length] = ('</sheetData>'); o[sidx]=o[sidx].replace(\"/>\",\">\"); }\n\n\tif(ws['!merges'] !== undefined && ws['!merges'].length > 0) o[o.length] = (write_ws_xml_merges(ws['!merges']));\n\n\tif(o.length>2) { o[o.length] = ('</worksheet>'); o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n\n/* [MS-XLSB] 2.4.718 BrtRowHdr */\nfunction parse_BrtRowHdr(data, length) {\n\tvar z = [];\n\tz.r = data.read_shift(4);\n\tdata.l += length-4;\n\treturn z;\n}\n\n/* [MS-XLSB] 2.4.812 BrtWsDim */\nvar parse_BrtWsDim = parse_UncheckedRfX;\nvar write_BrtWsDim = write_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.815 BrtWsProp */\nfunction parse_BrtWsProp(data, length) {\n\tvar z = {};\n\t/* TODO: pull flags */\n\tdata.l += 19;\n\tz.name = parse_XLSBCodeName(data, length - 19);\n\treturn z;\n}\n\n/* [MS-XLSB] 2.4.303 BrtCellBlank */\nfunction parse_BrtCellBlank(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\treturn [cell];\n}\nfunction write_BrtCellBlank(cell, val, o) {\n\tif(o == null) o = new_buf(8);\n\treturn write_XLSBCell(val, o);\n}\n\n\n/* [MS-XLSB] 2.4.304 BrtCellBool */\nfunction parse_BrtCellBool(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'b'];\n}\n\n/* [MS-XLSB] 2.4.305 BrtCellError */\nfunction parse_BrtCellError(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar fBool = data.read_shift(1);\n\treturn [cell, fBool, 'e'];\n}\n\n/* [MS-XLSB] 2.4.308 BrtCellIsst */\nfunction parse_BrtCellIsst(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar isst = data.read_shift(4);\n\treturn [cell, isst, 's'];\n}\n\n/* [MS-XLSB] 2.4.310 BrtCellReal */\nfunction parse_BrtCellReal(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\treturn [cell, value, 'n'];\n}\n\n/* [MS-XLSB] 2.4.311 BrtCellRk */\nfunction parse_BrtCellRk(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_RkNumber(data);\n\treturn [cell, value, 'n'];\n}\n\n/* [MS-XLSB] 2.4.314 BrtCellSt */\nfunction parse_BrtCellSt(data, length) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\treturn [cell, value, 'str'];\n}\n\n/* [MS-XLSB] 2.4.647 BrtFmlaBool */\nfunction parse_BrtFmlaBool(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'b'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length-9);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-9;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.648 BrtFmlaError */\nfunction parse_BrtFmlaError(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = data.read_shift(1);\n\tvar o = [cell, value, 'e'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length-9);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-9;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.649 BrtFmlaNum */\nfunction parse_BrtFmlaNum(data, length, opts) {\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_Xnum(data);\n\tvar o = [cell, value, 'n'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, length - 16);\n\t\to[3] = \"\"; /* TODO */\n\t}\n\telse data.l += length-16;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.650 BrtFmlaString */\nfunction parse_BrtFmlaString(data, length, opts) {\n\tvar start = data.l;\n\tvar cell = parse_XLSBCell(data);\n\tvar value = parse_XLWideString(data);\n\tvar o = [cell, value, 'str'];\n\tif(opts.cellFormula) {\n\t\tvar formula = parse_XLSBCellParsedFormula(data, start + length - data.l);\n\t}\n\telse data.l = start + length;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.676 BrtMergeCell */\nvar parse_BrtMergeCell = parse_UncheckedRfX;\n\n/* [MS-XLSB] 2.4.656 BrtHLink */\nfunction parse_BrtHLink(data, length, opts) {\n\tvar end = data.l + length;\n\tvar rfx = parse_UncheckedRfX(data, 16);\n\tvar relId = parse_XLNullableWideString(data);\n\tvar loc = parse_XLWideString(data);\n\tvar tooltip = parse_XLWideString(data);\n\tvar display = parse_XLWideString(data);\n\tdata.l = end;\n\treturn {rfx:rfx, relId:relId, loc:loc, tooltip:tooltip, display:display};\n}\n\n/* [MS-XLSB] 2.1.7.61 Worksheet */\nfunction parse_ws_bin(data, opts, rels) {\n\tif(!data) return data;\n\tif(!rels) rels = {'!id':{}};\n\tvar s = {};\n\n\tvar ref;\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\n\tvar pass = false, end = false;\n\tvar row, p, cf, R, C, addr, sstr, rr;\n\tvar mergecells = [];\n\trecordhopper(data, function ws_parse(val, R) {\n\t\tif(end) return;\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtWsDim': ref = val; break;\n\t\t\tcase 'BrtRowHdr':\n\t\t\t\trow = val;\n\t\t\t\tif(opts.sheetRows && opts.sheetRows <= row.r) end=true;\n\t\t\t\trr = encode_row(row.r);\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtFmlaBool':\n\t\t\tcase 'BrtFmlaError':\n\t\t\tcase 'BrtFmlaNum':\n\t\t\tcase 'BrtFmlaString':\n\t\t\tcase 'BrtCellBool':\n\t\t\tcase 'BrtCellError':\n\t\t\tcase 'BrtCellIsst':\n\t\t\tcase 'BrtCellReal':\n\t\t\tcase 'BrtCellRk':\n\t\t\tcase 'BrtCellSt':\n\t\t\t\tp = {t:val[2]};\n\t\t\t\tswitch(val[2]) {\n\t\t\t\t\tcase 'n': p.v = val[1]; break;\n\t\t\t\t\tcase 's': sstr = strs[val[1]]; p.v = sstr.t; p.r = sstr.r; break;\n\t\t\t\t\tcase 'b': p.v = val[1] ? true : false; break;\n\t\t\t\t\tcase 'e': p.v = val[1]; p.w = BErr[p.v]; break;\n\t\t\t\t\tcase 'str': p.t = 's'; p.v = utf8read(val[1]); break;\n\t\t\t\t}\n\t\t\t\tif(opts.cellFormula && val.length > 3) p.f = val[3];\n\t\t\t\tif((cf = styles.CellXf[val[0].iStyleRef])) safe_format(p,cf.ifmt,null,opts);\n\t\t\t\ts[encode_col(C=val[0].c) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtCellBlank': if(!opts.sheetStubs) break;\n\t\t\t\tp = {t:'s',v:undefined};\n\t\t\t\ts[encode_col(C=val[0].c) + rr] = p;\n\t\t\t\tif(refguess.s.r > row.r) refguess.s.r = row.r;\n\t\t\t\tif(refguess.s.c > C) refguess.s.c = C;\n\t\t\t\tif(refguess.e.r < row.r) refguess.e.r = row.r;\n\t\t\t\tif(refguess.e.c < C) refguess.e.c = C;\n\t\t\t\tbreak;\n\n\t\t\t/* Merge Cells */\n\t\t\tcase 'BrtBeginMergeCells': break;\n\t\t\tcase 'BrtEndMergeCells': break;\n\t\t\tcase 'BrtMergeCell': mergecells.push(val); break;\n\n\t\t\tcase 'BrtHLink':\n\t\t\t\tvar rel = rels['!id'][val.relId];\n\t\t\t\tif(rel) {\n\t\t\t\t\tval.Target = rel.Target;\n\t\t\t\t\tif(val.loc) val.Target += \"#\"+val.loc;\n\t\t\t\t\tval.Rel = rel;\n\t\t\t\t}\n\t\t\t\tfor(R=val.rfx.s.r;R<=val.rfx.e.r;++R) for(C=val.rfx.s.c;C<=val.rfx.e.c;++C) {\n\t\t\t\t\taddr = encode_cell({c:C,r:R});\n\t\t\t\t\tif(!s[addr]) s[addr] = {t:'s',v:undefined};\n\t\t\t\t\ts[addr].l = val;\n\t\t\t\t}\n\t\t\t\tbreak;\n\n\t\t\tcase 'BrtArrFmla': break; // TODO\n\t\t\tcase 'BrtShrFmla': break; // TODO\n\t\t\tcase 'BrtBeginSheet': break;\n\t\t\tcase 'BrtWsProp': break; // TODO\n\t\t\tcase 'BrtSheetCalcProp': break; // TODO\n\t\t\tcase 'BrtBeginWsViews': break; // TODO\n\t\t\tcase 'BrtBeginWsView': break; // TODO\n\t\t\tcase 'BrtPane': break; // TODO\n\t\t\tcase 'BrtSel': break; // TODO\n\t\t\tcase 'BrtEndWsView': break; // TODO\n\t\t\tcase 'BrtEndWsViews': break; // TODO\n\t\t\tcase 'BrtACBegin': break; // TODO\n\t\t\tcase 'BrtRwDescent': break; // TODO\n\t\t\tcase 'BrtACEnd': break; // TODO\n\t\t\tcase 'BrtWsFmtInfoEx14': break; // TODO\n\t\t\tcase 'BrtWsFmtInfo': break; // TODO\n\t\t\tcase 'BrtBeginColInfos': break; // TODO\n\t\t\tcase 'BrtColInfo': break; // TODO\n\t\t\tcase 'BrtEndColInfos': break; // TODO\n\t\t\tcase 'BrtBeginSheetData': break; // TODO\n\t\t\tcase 'BrtEndSheetData': break; // TODO\n\t\t\tcase 'BrtSheetProtection': break; // TODO\n\t\t\tcase 'BrtPrintOptions': break; // TODO\n\t\t\tcase 'BrtMargins': break; // TODO\n\t\t\tcase 'BrtPageSetup': break; // TODO\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtEndSheet': break; // TODO\n\t\t\tcase 'BrtDrawing': break; // TODO\n\t\t\tcase 'BrtLegacyDrawing': break; // TODO\n\t\t\tcase 'BrtLegacyDrawingHF': break; // TODO\n\t\t\tcase 'BrtPhoneticInfo': break; // TODO\n\t\t\tcase 'BrtBeginHeaderFooter': break; // TODO\n\t\t\tcase 'BrtEndHeaderFooter': break; // TODO\n\t\t\tcase 'BrtBrk': break; // TODO\n\t\t\tcase 'BrtBeginRwBrk': break; // TODO\n\t\t\tcase 'BrtEndRwBrk': break; // TODO\n\t\t\tcase 'BrtBeginColBrk': break; // TODO\n\t\t\tcase 'BrtEndColBrk': break; // TODO\n\t\t\tcase 'BrtBeginUserShViews': break; // TODO\n\t\t\tcase 'BrtBeginUserShView': break; // TODO\n\t\t\tcase 'BrtEndUserShView': break; // TODO\n\t\t\tcase 'BrtEndUserShViews': break; // TODO\n\t\t\tcase 'BrtBkHim': break; // TODO\n\t\t\tcase 'BrtBeginOleObjects': break; // TODO\n\t\t\tcase 'BrtOleObject': break; // TODO\n\t\t\tcase 'BrtEndOleObjects': break; // TODO\n\t\t\tcase 'BrtBeginListParts': break; // TODO\n\t\t\tcase 'BrtListPart': break; // TODO\n\t\t\tcase 'BrtEndListParts': break; // TODO\n\t\t\tcase 'BrtBeginSortState': break; // TODO\n\t\t\tcase 'BrtBeginSortCond': break; // TODO\n\t\t\tcase 'BrtEndSortCond': break; // TODO\n\t\t\tcase 'BrtEndSortState': break; // TODO\n\t\t\tcase 'BrtBeginConditionalFormatting': break; // TODO\n\t\t\tcase 'BrtEndConditionalFormatting': break; // TODO\n\t\t\tcase 'BrtBeginCFRule': break; // TODO\n\t\t\tcase 'BrtEndCFRule': break; // TODO\n\t\t\tcase 'BrtBeginDVals': break; // TODO\n\t\t\tcase 'BrtDVal': break; // TODO\n\t\t\tcase 'BrtEndDVals': break; // TODO\n\t\t\tcase 'BrtRangeProtection': break; // TODO\n\t\t\tcase 'BrtBeginDCon': break; // TODO\n\t\t\tcase 'BrtEndDCon': break; // TODO\n\t\t\tcase 'BrtBeginDRefs': break;\n\t\t\tcase 'BrtDRef': break;\n\t\t\tcase 'BrtEndDRefs': break;\n\n\t\t\t/* ActiveX */\n\t\t\tcase 'BrtBeginActiveXControls': break;\n\t\t\tcase 'BrtActiveX': break;\n\t\t\tcase 'BrtEndActiveXControls': break;\n\n\t\t\t/* AutoFilter */\n\t\t\tcase 'BrtBeginAFilter': break;\n\t\t\tcase 'BrtEndAFilter': break;\n\t\t\tcase 'BrtBeginFilterColumn': break;\n\t\t\tcase 'BrtBeginFilters': break;\n\t\t\tcase 'BrtFilter': break;\n\t\t\tcase 'BrtEndFilters': break;\n\t\t\tcase 'BrtEndFilterColumn': break;\n\t\t\tcase 'BrtDynamicFilter': break;\n\t\t\tcase 'BrtTop10Filter': break;\n\t\t\tcase 'BrtBeginCustomFilters': break;\n\t\t\tcase 'BrtCustomFilter': break;\n\t\t\tcase 'BrtEndCustomFilters': break;\n\n\t\t\t/* Smart Tags */\n\t\t\tcase 'BrtBeginSmartTags': break;\n\t\t\tcase 'BrtBeginCellSmartTags': break;\n\t\t\tcase 'BrtBeginCellSmartTag': break;\n\t\t\tcase 'BrtCellSmartTagProperty': break;\n\t\t\tcase 'BrtEndCellSmartTag': break;\n\t\t\tcase 'BrtEndCellSmartTags': break;\n\t\t\tcase 'BrtEndSmartTags': break;\n\n\t\t\t/* Cell Watch */\n\t\t\tcase 'BrtBeginCellWatches': break;\n\t\t\tcase 'BrtCellWatch': break;\n\t\t\tcase 'BrtEndCellWatches': break;\n\n\t\t\t/* Table */\n\t\t\tcase 'BrtTable': break;\n\n\t\t\t/* Ignore Cell Errors */\n\t\t\tcase 'BrtBeginCellIgnoreECs': break;\n\t\t\tcase 'BrtCellIgnoreEC': break;\n\t\t\tcase 'BrtEndCellIgnoreECs': break;\n\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + R.n);\n\t\t}\n\t}, opts);\n\tif(!s[\"!ref\"] && (refguess.s.r < 1000000 || ref.e.r > 0 || ref.e.c > 0 || ref.s.r > 0 || ref.s.c > 0)) s[\"!ref\"] = encode_range(ref);\n\tif(opts.sheetRows && s[\"!ref\"]) {\n\t\tvar tmpref = safe_decode_range(s[\"!ref\"]);\n\t\tif(opts.sheetRows < +tmpref.e.r) {\n\t\t\ttmpref.e.r = opts.sheetRows - 1;\n\t\t\tif(tmpref.e.r > refguess.e.r) tmpref.e.r = refguess.e.r;\n\t\t\tif(tmpref.e.r < tmpref.s.r) tmpref.s.r = tmpref.e.r;\n\t\t\tif(tmpref.e.c > refguess.e.c) tmpref.e.c = refguess.e.c;\n\t\t\tif(tmpref.e.c < tmpref.s.c) tmpref.s.c = tmpref.e.c;\n\t\t\ts[\"!fullref\"] = s[\"!ref\"];\n\t\t\ts[\"!ref\"] = encode_range(tmpref);\n\t\t}\n\t}\n\tif(mergecells.length > 0) s[\"!merges\"] = mergecells;\n\treturn s;\n}\n\n/* TODO: something useful -- this is a stub */\nfunction write_ws_bin_cell(ba, cell, R, C, opts) {\n\tif(cell.v === undefined) return \"\";\n\tvar vv = \"\";\n\tswitch(cell.t) {\n\t\tcase 'b': vv = cell.v ? \"1\" : \"0\"; break;\n\t\tcase 'n': case 'e': vv = ''+cell.v; break;\n\t\tdefault: vv = cell.v; break;\n\t}\n\tvar o = {r:R, c:C};\n\t/* TODO: cell style */\n\to.s = get_cell_style(opts.cellXfs, cell, opts);\n\tswitch(cell.t) {\n\t\tcase 's': case 'str':\n\t\t\tif(opts.bookSST) {\n\t\t\t\tvv = get_sst_id(opts.Strings, cell.v);\n\t\t\t\to.t = \"s\"; break;\n\t\t\t}\n\t\t\to.t = \"str\"; break;\n\t\tcase 'n': break;\n\t\tcase 'b': o.t = \"b\"; break;\n\t\tcase 'e': o.t = \"e\"; break;\n\t}\n\twrite_record(ba, \"BrtCellBlank\", write_BrtCellBlank(cell, o));\n}\n\nfunction write_CELLTABLE(ba, ws, idx, opts, wb) {\n\tvar range = safe_decode_range(ws['!ref'] || \"A1\"), ref, rr = \"\", cols = [];\n\twrite_record(ba, 'BrtBeginSheetData');\n\tfor(var R = range.s.r; R <= range.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\t/* [ACCELLTABLE] */\n\t\t/* BrtRowHdr */\n\t\tfor(var C = range.s.c; C <= range.e.c; ++C) {\n\t\t\t/* *16384CELL */\n\t\t\tif(R === range.s.r) cols[C] = encode_col(C);\n\t\t\tref = cols[C] + rr;\n\t\t\tif(!ws[ref]) continue;\n\t\t\t/* write cell */\n\t\t\twrite_ws_bin_cell(ba, ws[ref], R, C, opts);\n\t\t}\n\t}\n\twrite_record(ba, 'BrtEndSheetData');\n}\n\nfunction write_ws_bin(idx, opts, wb) {\n\tvar ba = buf_array();\n\tvar s = wb.SheetNames[idx], ws = wb.Sheets[s] || {};\n\tvar r = safe_decode_range(ws['!ref'] || \"A1\");\n\twrite_record(ba, \"BrtBeginSheet\");\n\t/* [BrtWsProp] */\n\twrite_record(ba, \"BrtWsDim\", write_BrtWsDim(r));\n\t/* [WSVIEWS2] */\n\t/* [WSFMTINFO] */\n\t/* *COLINFOS */\n\twrite_CELLTABLE(ba, ws, idx, opts, wb);\n\t/* [BrtSheetCalcProp] */\n\t/* [[BrtSheetProtectionIso] BrtSheetProtection] */\n\t/* *([BrtRangeProtectionIso] BrtRangeProtection) */\n\t/* [SCENMAN] */\n\t/* [AUTOFILTER] */\n\t/* [SORTSTATE] */\n\t/* [DCON] */\n\t/* [USERSHVIEWS] */\n\t/* [MERGECELLS] */\n\t/* [BrtPhoneticInfo] */\n\t/* *CONDITIONALFORMATTING */\n\t/* [DVALS] */\n\t/* *BrtHLink */\n\t/* [BrtPrintOptions] */\n\t/* [BrtMargins] */\n\t/* [BrtPageSetup] */\n\t/* [HEADERFOOTER] */\n\t/* [RWBRK] */\n\t/* [COLBRK] */\n\t/* *BrtBigName */\n\t/* [CELLWATCHES] */\n\t/* [IGNOREECS] */\n\t/* [SMARTTAGS] */\n\t/* [BrtDrawing] */\n\t/* [BrtLegacyDrawing] */\n\t/* [BrtLegacyDrawingHF] */\n\t/* [BrtBkHim] */\n\t/* [OLEOBJECTS] */\n\t/* [ACTIVEXCONTROLS] */\n\t/* [WEBPUBITEMS] */\n\t/* [LISTPARTS] */\n\t/* FRTWORKSHEET */\n\twrite_record(ba, \"BrtEndSheet\");\n\treturn ba.end();\n}\n/* 18.2.28 (CT_WorkbookProtection) Defaults */\nvar WBPropsDef = [\n\t['allowRefreshQuery', '0'],\n\t['autoCompressPictures', '1'],\n\t['backupFile', '0'],\n\t['checkCompatibility', '0'],\n\t['codeName', ''],\n\t['date1904', '0'],\n\t['dateCompatibility', '1'],\n\t//['defaultThemeVersion', '0'],\n\t['filterPrivacy', '0'],\n\t['hidePivotFieldList', '0'],\n\t['promptedSolutions', '0'],\n\t['publishItems', '0'],\n\t['refreshAllConnections', false],\n\t['saveExternalLinkValues', '1'],\n\t['showBorderUnselectedTables', '1'],\n\t['showInkAnnotation', '1'],\n\t['showObjects', 'all'],\n\t['showPivotChartFilter', '0']\n\t//['updateLinks', 'userSet']\n];\n\n/* 18.2.30 (CT_BookView) Defaults */\nvar WBViewDef = [\n\t['activeTab', '0'],\n\t['autoFilterDateGrouping', '1'],\n\t['firstSheet', '0'],\n\t['minimized', '0'],\n\t['showHorizontalScroll', '1'],\n\t['showSheetTabs', '1'],\n\t['showVerticalScroll', '1'],\n\t['tabRatio', '600'],\n\t['visibility', 'visible']\n\t//window{Height,Width}, {x,y}Window\n];\n\n/* 18.2.19 (CT_Sheet) Defaults */\nvar SheetDef = [\n\t['state', 'visible']\n];\n\n/* 18.2.2 (CT_CalcPr) Defaults */\nvar CalcPrDef = [\n\t['calcCompleted', 'true'],\n\t['calcMode', 'auto'],\n\t['calcOnSave', 'true'],\n\t['concurrentCalc', 'true'],\n\t['fullCalcOnLoad', 'false'],\n\t['fullPrecision', 'true'],\n\t['iterate', 'false'],\n\t['iterateCount', '100'],\n\t['iterateDelta', '0.001'],\n\t['refMode', 'A1']\n];\n\n/* 18.2.3 (CT_CustomWorkbookView) Defaults */\nvar CustomWBViewDef = [\n\t['autoUpdate', 'false'],\n\t['changesSavedWin', 'false'],\n\t['includeHiddenRowCol', 'true'],\n\t['includePrintSettings', 'true'],\n\t['maximized', 'false'],\n\t['minimized', 'false'],\n\t['onlySync', 'false'],\n\t['personalView', 'false'],\n\t['showComments', 'commIndicator'],\n\t['showFormulaBar', 'true'],\n\t['showHorizontalScroll', 'true'],\n\t['showObjects', 'all'],\n\t['showSheetTabs', 'true'],\n\t['showStatusbar', 'true'],\n\t['showVerticalScroll', 'true'],\n\t['tabRatio', '600'],\n\t['xWindow', '0'],\n\t['yWindow', '0']\n];\n\nfunction push_defaults_array(target, defaults) {\n\tfor(var j = 0; j != target.length; ++j) { var w = target[j];\n\t\tfor(var i=0; i != defaults.length; ++i) { var z = defaults[i];\n\t\t\tif(w[z[0]] == null) w[z[0]] = z[1];\n\t\t}\n\t}\n}\nfunction push_defaults(target, defaults) {\n\tfor(var i = 0; i != defaults.length; ++i) { var z = defaults[i];\n\t\tif(target[z[0]] == null) target[z[0]] = z[1];\n\t}\n}\n\nfunction parse_wb_defaults(wb) {\n\tpush_defaults(wb.WBProps, WBPropsDef);\n\tpush_defaults(wb.CalcPr, CalcPrDef);\n\n\tpush_defaults_array(wb.WBView, WBViewDef);\n\tpush_defaults_array(wb.Sheets, SheetDef);\n\n\t_ssfopts.date1904 = parsexmlbool(wb.WBProps.date1904, 'date1904');\n}\n/* 18.2 Workbook */\nvar wbnsregex = /<\\w+:workbook/;\nfunction parse_wb_xml(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar pass = false, xmlns = \"xmlns\";\n\tdata.match(tagregex).forEach(function xml_wb(x) {\n\t\tvar y = parsexmltag(x);\n\t\tswitch(strip_ns(y[0])) {\n\t\t\tcase '<?xml': break;\n\n\t\t\t/* 18.2.27 workbook CT_Workbook 1 */\n\t\t\tcase '<workbook':\n\t\t\t\tif(x.match(wbnsregex)) xmlns = \"xmlns\" + x.match(/<(\\w+):/)[1];\n\t\t\t\twb.xmlns = y[xmlns];\n\t\t\t\tbreak;\n\t\t\tcase '</workbook>': break;\n\n\t\t\t/* 18.2.13 fileVersion CT_FileVersion ? */\n\t\t\tcase '<fileVersion': delete y[0]; wb.AppVersion = y; break;\n\t\t\tcase '<fileVersion/>': break;\n\n\t\t\t/* 18.2.12 fileSharing CT_FileSharing ? */\n\t\t\tcase '<fileSharing': case '<fileSharing/>': break;\n\n\t\t\t/* 18.2.28 workbookPr CT_WorkbookPr ? */\n\t\t\tcase '<workbookPr': delete y[0]; wb.WBProps = y; break;\n\t\t\tcase '<workbookPr/>': delete y[0]; wb.WBProps = y; break;\n\n\t\t\t/* 18.2.29 workbookProtection CT_WorkbookProtection ? */\n\t\t\tcase '<workbookProtection': break;\n\t\t\tcase '<workbookProtection/>': break;\n\n\t\t\t/* 18.2.1 bookViews CT_BookViews ? */\n\t\t\tcase '<bookViews>': case '</bookViews>': break;\n\t\t\t/* 18.2.30 workbookView CT_BookView + */\n\t\t\tcase '<workbookView': delete y[0]; wb.WBView.push(y); break;\n\n\t\t\t/* 18.2.20 sheets CT_Sheets 1 */\n\t\t\tcase '<sheets>': case '</sheets>': break; // aggregate sheet\n\t\t\t/* 18.2.19 sheet CT_Sheet + */\n\t\t\tcase '<sheet': delete y[0]; y.name = utf8read(y.name); wb.Sheets.push(y); break;\n\n\t\t\t/* 18.2.15 functionGroups CT_FunctionGroups ? */\n\t\t\tcase '<functionGroups': case '<functionGroups/>': break;\n\t\t\t/* 18.2.14 functionGroup CT_FunctionGroup + */\n\t\t\tcase '<functionGroup': break;\n\n\t\t\t/* 18.2.9 externalReferences CT_ExternalReferences ? */\n\t\t\tcase '<externalReferences': case '</externalReferences>': case '<externalReferences>': break;\n\t\t\t/* 18.2.8 externalReference CT_ExternalReference + */\n\t\t\tcase '<externalReference': break;\n\n\t\t\t/* 18.2.6 definedNames CT_DefinedNames ? */\n\t\t\tcase '<definedNames/>': break;\n\t\t\tcase '<definedNames>': case '<definedNames': pass=true; break;\n\t\t\tcase '</definedNames>': pass=false; break;\n\t\t\t/* 18.2.5 definedName CT_DefinedName + */\n\t\t\tcase '<definedName': case '<definedName/>': case '</definedName>': break;\n\n\t\t\t/* 18.2.2 calcPr CT_CalcPr ? */\n\t\t\tcase '<calcPr': delete y[0]; wb.CalcPr = y; break;\n\t\t\tcase '<calcPr/>': delete y[0]; wb.CalcPr = y; break;\n\n\t\t\t/* 18.2.16 oleSize CT_OleSize ? (ref required) */\n\t\t\tcase '<oleSize': break;\n\n\t\t\t/* 18.2.4 customWorkbookViews CT_CustomWorkbookViews ? */\n\t\t\tcase '<customWorkbookViews>': case '</customWorkbookViews>': case '<customWorkbookViews': break;\n\t\t\t/* 18.2.3 customWorkbookView CT_CustomWorkbookView + */\n\t\t\tcase '<customWorkbookView': case '</customWorkbookView>': break;\n\n\t\t\t/* 18.2.18 pivotCaches CT_PivotCaches ? */\n\t\t\tcase '<pivotCaches>': case '</pivotCaches>': case '<pivotCaches': break;\n\t\t\t/* 18.2.17 pivotCache CT_PivotCache ? */\n\t\t\tcase '<pivotCache': break;\n\n\t\t\t/* 18.2.21 smartTagPr CT_SmartTagPr ? */\n\t\t\tcase '<smartTagPr': case '<smartTagPr/>': break;\n\n\t\t\t/* 18.2.23 smartTagTypes CT_SmartTagTypes ? */\n\t\t\tcase '<smartTagTypes': case '<smartTagTypes>': case '</smartTagTypes>': break;\n\t\t\t/* 18.2.22 smartTagType CT_SmartTagType ? */\n\t\t\tcase '<smartTagType': break;\n\n\t\t\t/* 18.2.24 webPublishing CT_WebPublishing ? */\n\t\t\tcase '<webPublishing': case '<webPublishing/>': break;\n\n\t\t\t/* 18.2.11 fileRecoveryPr CT_FileRecoveryPr ? */\n\t\t\tcase '<fileRecoveryPr': case '<fileRecoveryPr/>': break;\n\n\t\t\t/* 18.2.26 webPublishObjects CT_WebPublishObjects ? */\n\t\t\tcase '<webPublishObjects>': case '<webPublishObjects': case '</webPublishObjects>': break;\n\t\t\t/* 18.2.25 webPublishObject CT_WebPublishObject ? */\n\t\t\tcase '<webPublishObject': break;\n\n\t\t\t/* 18.2.10 extLst CT_ExtensionList ? */\n\t\t\tcase '<extLst>': case '</extLst>': case '<extLst/>': break;\n\t\t\t/* 18.2.7 ext CT_Extension + */\n\t\t\tcase '<ext': pass=true; break; //TODO: check with versions of excel\n\t\t\tcase '</ext>': pass=false; break;\n\n\t\t\t/* Others */\n\t\t\tcase '<ArchID': break;\n\t\t\tcase '<AlternateContent': pass=true; break;\n\t\t\tcase '</AlternateContent>': pass=false; break;\n\n\t\t\tdefault: if(!pass && opts.WTF) throw 'unrecognized ' + y[0] + ' in workbook';\n\t\t}\n\t});\n\tif(XMLNS.main.indexOf(wb.xmlns) === -1) throw new Error(\"Unknown Namespace: \" + wb.xmlns);\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\nvar WB_XML_ROOT = writextag('workbook', null, {\n\t'xmlns': XMLNS.main[0],\n\t//'xmlns:mx': XMLNS.mx,\n\t//'xmlns:s': XMLNS.main[0],\n\t'xmlns:r': XMLNS.r\n});\n\nfunction safe1904(wb) {\n\t/* TODO: store date1904 somewhere else */\n\ttry { return parsexmlbool(wb.Workbook.WBProps.date1904) ? \"true\" : \"false\"; } catch(e) { return \"false\"; }\n}\n\nfunction write_wb_xml(wb, opts) {\n\tvar o = [XML_HEADER];\n\to[o.length] = WB_XML_ROOT;\n\to[o.length] = (writextag('workbookPr', null, {date1904:safe1904(wb)}));\n\to[o.length] = \"<sheets>\";\n\tfor(var i = 0; i != wb.SheetNames.length; ++i)\n\t\to[o.length] = (writextag('sheet',null,{name:wb.SheetNames[i].substr(0,31), sheetId:\"\"+(i+1), \"r:id\":\"rId\"+(i+1)}));\n\to[o.length] = \"</sheets>\";\n\tif(o.length>2){ o[o.length] = '</workbook>'; o[1]=o[1].replace(\"/>\",\">\"); }\n\treturn o.join(\"\");\n}\n/* [MS-XLSB] 2.4.301 BrtBundleSh */\nfunction parse_BrtBundleSh(data, length) {\n\tvar z = {};\n\tz.hsState = data.read_shift(4); //ST_SheetState\n\tz.iTabID = data.read_shift(4);\n\tz.strRelID = parse_RelID(data,length-8);\n\tz.name = parse_XLWideString(data);\n\treturn z;\n}\nfunction write_BrtBundleSh(data, o) {\n\tif(!o) o = new_buf(127);\n\to.write_shift(4, data.hsState);\n\to.write_shift(4, data.iTabID);\n\twrite_RelID(data.strRelID, o);\n\twrite_XLWideString(data.name.substr(0,31), o);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.4.807 BrtWbProp */\nfunction parse_BrtWbProp(data, length) {\n\tdata.read_shift(4);\n\tvar dwThemeVersion = data.read_shift(4);\n\tvar strName = (length > 8) ? parse_XLWideString(data) : \"\";\n\treturn [dwThemeVersion, strName];\n}\nfunction write_BrtWbProp(data, o) {\n\tif(!o) o = new_buf(8);\n\to.write_shift(4, 0);\n\to.write_shift(4, 0);\n\treturn o;\n}\n\nfunction parse_BrtFRTArchID$(data, length) {\n\tvar o = {};\n\tdata.read_shift(4);\n\to.ArchID = data.read_shift(4);\n\tdata.l += length - 8;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction parse_wb_bin(data, opts) {\n\tvar wb = { AppVersion:{}, WBProps:{}, WBView:[], Sheets:[], CalcPr:{}, xmlns: \"\" };\n\tvar pass = false, z;\n\n\trecordhopper(data, function hopper_wb(val, R) {\n\t\tswitch(R.n) {\n\t\t\tcase 'BrtBundleSh': wb.Sheets.push(val); break;\n\n\t\t\tcase 'BrtBeginBook': break;\n\t\t\tcase 'BrtFileVersion': break;\n\t\t\tcase 'BrtWbProp': break;\n\t\t\tcase 'BrtACBegin': break;\n\t\t\tcase 'BrtAbsPath15': break;\n\t\t\tcase 'BrtACEnd': break;\n\t\t\tcase 'BrtWbFactoid': break;\n\t\t\t/*case 'BrtBookProtectionIso': break;*/\n\t\t\tcase 'BrtBookProtection': break;\n\t\t\tcase 'BrtBeginBookViews': break;\n\t\t\tcase 'BrtBookView': break;\n\t\t\tcase 'BrtEndBookViews': break;\n\t\t\tcase 'BrtBeginBundleShs': break;\n\t\t\tcase 'BrtEndBundleShs': break;\n\t\t\tcase 'BrtBeginFnGroup': break;\n\t\t\tcase 'BrtEndFnGroup': break;\n\t\t\tcase 'BrtBeginExternals': break;\n\t\t\tcase 'BrtSupSelf': break;\n\t\t\tcase 'BrtSupBookSrc': break;\n\t\t\tcase 'BrtExternSheet': break;\n\t\t\tcase 'BrtEndExternals': break;\n\t\t\tcase 'BrtName': break;\n\t\t\tcase 'BrtCalcProp': break;\n\t\t\tcase 'BrtUserBookView': break;\n\t\t\tcase 'BrtBeginPivotCacheIDs': break;\n\t\t\tcase 'BrtBeginPivotCacheID': break;\n\t\t\tcase 'BrtEndPivotCacheID': break;\n\t\t\tcase 'BrtEndPivotCacheIDs': break;\n\t\t\tcase 'BrtWebOpt': break;\n\t\t\tcase 'BrtFileRecover': break;\n\t\t\tcase 'BrtFileSharing': break;\n\t\t\t/*case 'BrtBeginWebPubItems': break;\n\t\t\tcase 'BrtBeginWebPubItem': break;\n\t\t\tcase 'BrtEndWebPubItem': break;\n\t\t\tcase 'BrtEndWebPubItems': break;*/\n\n\t\t\t/* Smart Tags */\n\t\t\tcase 'BrtBeginSmartTagTypes': break;\n\t\t\tcase 'BrtSmartTagType': break;\n\t\t\tcase 'BrtEndSmartTagTypes': break;\n\n\t\t\tcase 'BrtFRTBegin': pass = true; break;\n\t\t\tcase 'BrtFRTArchID$': break;\n\t\t\tcase 'BrtWorkBookPr15': break;\n\t\t\tcase 'BrtFRTEnd': pass = false; break;\n\t\t\tcase 'BrtEndBook': break;\n\t\t\tdefault: if(!pass || opts.WTF) throw new Error(\"Unexpected record \" + R.n);\n\t\t}\n\t});\n\n\tparse_wb_defaults(wb);\n\n\treturn wb;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_BUNDLESHS(ba, wb, opts) {\n\twrite_record(ba, \"BrtBeginBundleShs\");\n\tfor(var idx = 0; idx != wb.SheetNames.length; ++idx) {\n\t\tvar d = { hsState: 0, iTabID: idx+1, strRelID: 'rId' + (idx+1), name: wb.SheetNames[idx] };\n\t\twrite_record(ba, \"BrtBundleSh\", write_BrtBundleSh(d));\n\t}\n\twrite_record(ba, \"BrtEndBundleShs\");\n}\n\n/* [MS-XLSB] 2.4.643 BrtFileVersion */\nfunction write_BrtFileVersion(data, o) {\n\tif(!o) o = new_buf(127);\n\tfor(var i = 0; i != 4; ++i) o.write_shift(4, 0);\n\twrite_XLWideString(\"SheetJS\", o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(XLSX.version, o);\n\twrite_XLWideString(\"7262\", o);\n\to.length = o.l;\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_BOOKVIEWS(ba, wb, opts) {\n\twrite_record(ba, \"BrtBeginBookViews\");\n\t/* 1*(BrtBookView *FRT) */\n\twrite_record(ba, \"BrtEndBookViews\");\n}\n\n/* [MS-XLSB] 2.4.302 BrtCalcProp */\nfunction write_BrtCalcProp(data, o) {\n\tif(!o) o = new_buf(26);\n\to.write_shift(4,0); /* force recalc */\n\to.write_shift(4,1);\n\to.write_shift(4,0);\n\twrite_Xnum(0, o);\n\to.write_shift(-4, 1023);\n\to.write_shift(1, 0x33);\n\to.write_shift(1, 0x00);\n\treturn o;\n}\n\nfunction write_BrtFileRecover(data, o) {\n\tif(!o) o = new_buf(1);\n\to.write_shift(1,0);\n\treturn o;\n}\n\n/* [MS-XLSB] 2.1.7.60 Workbook */\nfunction write_wb_bin(wb, opts) {\n\tvar ba = buf_array();\n\twrite_record(ba, \"BrtBeginBook\");\n\twrite_record(ba, \"BrtFileVersion\", write_BrtFileVersion());\n\t/* [[BrtFileSharingIso] BrtFileSharing] */\n\twrite_record(ba, \"BrtWbProp\", write_BrtWbProp());\n\t/* [ACABSPATH] */\n\t/* [[BrtBookProtectionIso] BrtBookProtection] */\n\twrite_BOOKVIEWS(ba, wb, opts);\n\twrite_BUNDLESHS(ba, wb, opts);\n\t/* [FNGROUP] */\n\t/* [EXTERNALS] */\n\t/* *BrtName */\n\twrite_record(ba, \"BrtCalcProp\", write_BrtCalcProp());\n\t/* [BrtOleSize] */\n\t/* *(BrtUserBookView *FRT) */\n\t/* [PIVOTCACHEIDS] */\n\t/* [BrtWbFactoid] */\n\t/* [SMARTTAGTYPES] */\n\t/* [BrtWebOpt] */\n\twrite_record(ba, \"BrtFileRecover\", write_BrtFileRecover());\n\t/* [WEBPUBITEMS] */\n\t/* [CRERRS] */\n\t/* FRTWORKBOOK */\n\twrite_record(ba, \"BrtEndBook\");\n\n\treturn ba.end();\n}\nfunction parse_wb(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_wb_bin : parse_wb_xml)(data, opts);\n}\n\nfunction parse_ws(data, name, opts, rels) {\n\treturn (name.substr(-4)===\".bin\" ? parse_ws_bin : parse_ws_xml)(data, opts, rels);\n}\n\nfunction parse_sty(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_sty_bin : parse_sty_xml)(data, opts);\n}\n\nfunction parse_theme(data, name, opts) {\n\treturn parse_theme_xml(data, opts);\n}\n\nfunction parse_sst(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_sst_bin : parse_sst_xml)(data, opts);\n}\n\nfunction parse_cmnt(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_comments_bin : parse_comments_xml)(data, opts);\n}\n\nfunction parse_cc(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? parse_cc_bin : parse_cc_xml)(data, opts);\n}\n\nfunction write_wb(wb, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_wb_bin : write_wb_xml)(wb, opts);\n}\n\nfunction write_ws(data, name, opts, wb) {\n\treturn (name.substr(-4)===\".bin\" ? write_ws_bin : write_ws_xml)(data, opts, wb);\n}\n\nfunction write_sty(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_sty_bin : write_sty_xml)(data, opts);\n}\n\nfunction write_sst(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_sst_bin : write_sst_xml)(data, opts);\n}\n/*\nfunction write_cmnt(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_comments_bin : write_comments_xml)(data, opts);\n}\n\nfunction write_cc(data, name, opts) {\n\treturn (name.substr(-4)===\".bin\" ? write_cc_bin : write_cc_xml)(data, opts);\n}\n*/\nvar attregexg2=/([\\w:]+)=((?:\")([^\"]*)(?:\")|(?:')([^']*)(?:'))/g;\nvar attregex2=/([\\w:]+)=((?:\")(?:[^\"]*)(?:\")|(?:')(?:[^']*)(?:'))/;\nvar _chr = function(c) { return String.fromCharCode(c); };\nfunction xlml_parsexmltag(tag, skip_root) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = []; if(!skip_root) z[0] = words[0];\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2);\n\t\telse {\n\t\t\tif(y[1].substr(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].substr(6);\n\t\t\telse w = y[1].substr(j+1);\n\t\t\tz[w] = y[2].substr(1,y[2].length-2);\n\t\t}\n\t}\n\treturn z;\n}\nfunction xlml_parsexmltagobj(tag) {\n\tvar words = tag.split(/\\s+/);\n\tvar z = {};\n\tif(words.length === 1) return z;\n\tvar m = tag.match(attregexg2), y, j, w, i;\n\tif(m) for(i = 0; i != m.length; ++i) {\n\t\ty = m[i].match(attregex2);\n\t\tif((j=y[1].indexOf(\":\")) === -1) z[y[1]] = y[2].substr(1,y[2].length-2);\n\t\telse {\n\t\t\tif(y[1].substr(0,6) === \"xmlns:\") w = \"xmlns\"+y[1].substr(6);\n\t\t\telse w = y[1].substr(j+1);\n\t\t\tz[w] = y[2].substr(1,y[2].length-2);\n\t\t}\n\t}\n\treturn z;\n}\n\n// ----\n\nfunction xlml_format(format, value) {\n\tvar fmt = XLMLFormatMap[format] || unescapexml(format);\n\tif(fmt === \"General\") return SSF._general(value);\n\treturn SSF.format(fmt, value);\n}\n\nfunction xlml_set_custprop(Custprops, Rn, cp, val) {\n\tswitch((cp[0].match(/dt:dt=\"([\\w.]+)\"/)||[\"\",\"\"])[1]) {\n\t\tcase \"boolean\": val = parsexmlbool(val); break;\n\t\tcase \"i2\": case \"int\": val = parseInt(val, 10); break;\n\t\tcase \"r4\": case \"float\": val = parseFloat(val); break;\n\t\tcase \"date\": case \"dateTime.tz\": val = new Date(val); break;\n\t\tcase \"i8\": case \"string\": case \"fixed\": case \"uuid\": case \"bin.base64\": break;\n\t\tdefault: throw \"bad custprop:\" + cp[0];\n\t}\n\tCustprops[unescapexml(Rn[3])] = val;\n}\n\nfunction safe_format_xlml(cell, nf, o) {\n\ttry {\n\t\tif(cell.t === 'e') { cell.w = cell.w || BErr[cell.v]; }\n\t\telse if(nf === \"General\") {\n\t\t\tif(cell.t === 'n') {\n\t\t\t\tif((cell.v|0) === cell.v) cell.w = SSF._general_int(cell.v);\n\t\t\t\telse cell.w = SSF._general_num(cell.v);\n\t\t\t}\n\t\t\telse cell.w = SSF._general(cell.v);\n\t\t}\n\t\telse cell.w = xlml_format(nf||\"General\", cell.v);\n\t\tif(o.cellNF) cell.z = XLMLFormatMap[nf]||nf||\"General\";\n\t} catch(e) { if(o.WTF) throw e; }\n}\n\nfunction process_style_xlml(styles, stag, opts) {\n\tif(opts.cellStyles) {\n\t\tif(stag.Interior) {\n\t\t\tvar I = stag.Interior;\n\t\t\tif(I.Pattern) I.patternType = XLMLPatternTypeMap[I.Pattern] || I.Pattern;\n\t\t}\n\t}\n\tstyles[stag.ID] = stag;\n}\n\n/* TODO: there must exist some form of OSP-blessed spec */\nfunction parse_xlml_data(xml, ss, data, cell, base, styles, csty, row, o) {\n\tvar nf = \"General\", sid = cell.StyleID, S = {}; o = o || {};\n\tvar interiors = [];\n\tif(sid === undefined && row) sid = row.StyleID;\n\tif(sid === undefined && csty) sid = csty.StyleID;\n\twhile(styles[sid] !== undefined) {\n\t\tif(styles[sid].nf) nf = styles[sid].nf;\n\t\tif(styles[sid].Interior) interiors.push(styles[sid].Interior);\n\t\tif(!styles[sid].Parent) break;\n\t\tsid = styles[sid].Parent;\n\t}\n\tswitch(data.Type) {\n\t\tcase 'Boolean':\n\t\t\tcell.t = 'b';\n\t\t\tcell.v = parsexmlbool(xml);\n\t\t\tbreak;\n\t\tcase 'String':\n\t\t\tcell.t = 's'; cell.r = xlml_fixstr(unescapexml(xml));\n\t\t\tcell.v = xml.indexOf(\"<\") > -1 ? ss : cell.r;\n\t\t\tbreak;\n\t\tcase 'DateTime':\n\t\t\tcell.v = (Date.parse(xml) - new Date(Date.UTC(1899, 11, 30))) / (24 * 60 * 60 * 1000);\n\t\t\tif(cell.v !== cell.v) cell.v = unescapexml(xml);\n\t\t\telse if(cell.v >= 1 && cell.v<60) cell.v = cell.v -1;\n\t\t\tif(!nf || nf == \"General\") nf = \"yyyy-mm-dd\";\n\t\t\t/* falls through */\n\t\tcase 'Number':\n\t\t\tif(cell.v === undefined) cell.v=+xml;\n\t\t\tif(!cell.t) cell.t = 'n';\n\t\t\tbreak;\n\t\tcase 'Error': cell.t = 'e'; cell.v = RBErr[xml]; cell.w = xml; break;\n\t\tdefault: cell.t = 's'; cell.v = xlml_fixstr(ss); break;\n\t}\n\tsafe_format_xlml(cell, nf, o);\n\tif(o.cellFormula != null && cell.Formula) {\n\t\tcell.f = rc_to_a1(unescapexml(cell.Formula), base);\n\t\tcell.Formula = undefined;\n\t}\n\tif(o.cellStyles) {\n\t\tinteriors.forEach(function(x) {\n\t\t\tif(!S.patternType && x.patternType) S.patternType = x.patternType;\n\t\t});\n\t\tcell.s = S;\n\t}\n\tcell.ixfe = cell.StyleID !== undefined ? cell.StyleID : 'Default';\n}\n\nfunction xlml_clean_comment(comment) {\n\tcomment.t = comment.v;\n\tcomment.v = comment.w = comment.ixfe = undefined;\n}\n\nfunction xlml_normalize(d) {\n\tif(has_buf && Buffer.isBuffer(d)) return d.toString('utf8');\n\tif(typeof d === 'string') return d;\n\tthrow \"badf\";\n}\n\n/* TODO: Everything */\nvar xlmlregex = /<(\\/?)([a-z0-9]*:|)(\\w+)[^>]*>/mg;\nfunction parse_xlml_xml(d, opts) {\n\tvar str = xlml_normalize(d);\n\tvar Rn;\n\tvar state = [], tmp;\n\tvar sheets = {}, sheetnames = [], cursheet = {}, sheetname = \"\";\n\tvar table = {}, cell = {}, row = {}, dtag, didx;\n\tvar c = 0, r = 0;\n\tvar refguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\tvar styles = {}, stag = {};\n\tvar ss = \"\", fidx = 0;\n\tvar mergecells = [];\n\tvar Props = {}, Custprops = {}, pidx = 0, cp = {};\n\tvar comments = [], comment = {};\n\tvar cstys = [], csty;\n\txlmlregex.lastIndex = 0;\n\twhile((Rn = xlmlregex.exec(str))) switch(Rn[3]) {\n\t\tcase 'Data':\n\t\t\tif(state[state.length-1][1]) break;\n\t\t\tif(Rn[1]==='/') parse_xlml_data(str.slice(didx, Rn.index), ss, dtag, state[state.length-1][0]==\"Comment\"?comment:cell, {c:c,r:r}, styles, cstys[c], row, opts);\n\t\t\telse { ss = \"\"; dtag = xlml_parsexmltag(Rn[0]); didx = Rn.index + Rn[0].length; }\n\t\t\tbreak;\n\t\tcase 'Cell':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif(comments.length > 0) cell.c = comments;\n\t\t\t\tif((!opts.sheetRows || opts.sheetRows > r) && cell.v !== undefined) cursheet[encode_col(c) + encode_row(r)] = cell;\n\t\t\t\tif(cell.HRef) {\n\t\t\t\t\tcell.l = {Target:cell.HRef, tooltip:cell.HRefScreenTip};\n\t\t\t\t\tcell.HRef = cell.HRefScreenTip = undefined;\n\t\t\t\t}\n\t\t\t\tif(cell.MergeAcross || cell.MergeDown) {\n\t\t\t\t\tvar cc = c + (parseInt(cell.MergeAcross,10)|0);\n\t\t\t\t\tvar rr = r + (parseInt(cell.MergeDown,10)|0);\n\t\t\t\t\tmergecells.push({s:{c:c,r:r},e:{c:cc,r:rr}});\n\t\t\t\t}\n\t\t\t\t++c;\n\t\t\t\tif(cell.MergeAcross) c += +cell.MergeAcross;\n\t\t\t} else {\n\t\t\t\tcell = xlml_parsexmltagobj(Rn[0]);\n\t\t\t\tif(cell.Index) c = +cell.Index - 1;\n\t\t\t\tif(c < refguess.s.c) refguess.s.c = c;\n\t\t\t\tif(c > refguess.e.c) refguess.e.c = c;\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") ++c;\n\t\t\t\tcomments = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Row':\n\t\t\tif(Rn[1]==='/' || Rn[0].substr(-2) === \"/>\") {\n\t\t\t\tif(r < refguess.s.r) refguess.s.r = r;\n\t\t\t\tif(r > refguess.e.r) refguess.e.r = r;\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") {\n\t\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t\t}\n\t\t\t\tc = 0; ++r;\n\t\t\t} else {\n\t\t\t\trow = xlml_parsexmltag(Rn[0]);\n\t\t\t\tif(row.Index) r = +row.Index - 1;\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Worksheet': /* TODO: read range from FullRows/FullColumns */\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\tsheetnames.push(sheetname);\n\t\t\t\tif(refguess.s.r <= refguess.e.r && refguess.s.c <= refguess.e.c) cursheet[\"!ref\"] = encode_range(refguess);\n\t\t\t\tif(mergecells.length) cursheet[\"!merges\"] = mergecells;\n\t\t\t\tsheets[sheetname] = cursheet;\n\t\t\t} else {\n\t\t\t\trefguess = {s: {r:1000000, c:1000000}, e: {r:0, c:0} };\n\t\t\t\tr = c = 0;\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tsheetname = tmp.Name;\n\t\t\t\tcursheet = {};\n\t\t\t\tmergecells = [];\n\t\t\t}\n\t\t\tbreak;\n\t\tcase 'Table':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse if(Rn[0].slice(-2) == \"/>\") break;\n\t\t\telse {\n\t\t\t\ttable = xlml_parsexmltag(Rn[0]);\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\tcstys = [];\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Style':\n\t\t\tif(Rn[1]==='/') process_style_xlml(styles, stag, opts);\n\t\t\telse stag = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\n\t\tcase 'NumberFormat':\n\t\t\tstag.nf = xlml_parsexmltag(Rn[0]).Format || \"General\";\n\t\t\tbreak;\n\n\t\tcase 'Column':\n\t\t\tif(state[state.length-1][0] !== 'Table') break;\n\t\t\tcsty = xlml_parsexmltag(Rn[0]);\n\t\t\tcstys[(csty.Index-1||cstys.length)] = csty;\n\t\t\tfor(var i = 0; i < +csty.Span; ++i) cstys[cstys.length] = csty;\n\t\t\tbreak;\n\n\t\tcase 'NamedRange': break;\n\t\tcase 'NamedCell': break;\n\t\tcase 'B': break;\n\t\tcase 'I': break;\n\t\tcase 'U': break;\n\t\tcase 'S': break;\n\t\tcase 'Sub': break;\n\t\tcase 'Sup': break;\n\t\tcase 'Span': break;\n\t\tcase 'Border': break;\n\t\tcase 'Alignment': break;\n\t\tcase 'Borders': break;\n\t\tcase 'Font':\n\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") ss += str.slice(fidx, Rn.index);\n\t\t\telse fidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Interior':\n\t\t\tif(!opts.cellStyles) break;\n\t\t\tstag.Interior = xlml_parsexmltag(Rn[0]);\n\t\t\tbreak;\n\t\tcase 'Protection': break;\n\n\t\tcase 'Author':\n\t\tcase 'Title':\n\t\tcase 'Description':\n\t\tcase 'Created':\n\t\tcase 'Keywords':\n\t\tcase 'Subject':\n\t\tcase 'Category':\n\t\tcase 'Company':\n\t\tcase 'LastAuthor':\n\t\tcase 'LastSaved':\n\t\tcase 'LastPrinted':\n\t\tcase 'Version':\n\t\tcase 'Revision':\n\t\tcase 'TotalTime':\n\t\tcase 'HyperlinkBase':\n\t\tcase 'Manager':\n\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\telse if(Rn[1]===\"/\") xlml_set_prop(Props, Rn[3], str.slice(pidx, Rn.index));\n\t\t\telse pidx = Rn.index + Rn[0].length;\n\t\t\tbreak;\n\t\tcase 'Paragraphs': break;\n\n\t\tcase 'Styles':\n\t\tcase 'Workbook':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse state.push([Rn[3], false]);\n\t\t\tbreak;\n\n\t\tcase 'Comment':\n\t\t\tif(Rn[1]==='/'){\n\t\t\t\tif((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;\n\t\t\t\txlml_clean_comment(comment);\n\t\t\t\tcomments.push(comment);\n\t\t\t} else {\n\t\t\t\tstate.push([Rn[3], false]);\n\t\t\t\ttmp = xlml_parsexmltag(Rn[0]);\n\t\t\t\tcomment = {a:tmp.Author};\n\t\t\t}\n\t\t\tbreak;\n\n\t\tcase 'Name': break;\n\n\t\tcase 'ComponentOptions':\n\t\tcase 'DocumentProperties':\n\t\tcase 'CustomDocumentProperties':\n\t\tcase 'OfficeDocumentSettings':\n\t\tcase 'PivotTable':\n\t\tcase 'PivotCache':\n\t\tcase 'Names':\n\t\tcase 'MapInfo':\n\t\tcase 'PageBreaks':\n\t\tcase 'QueryTable':\n\t\tcase 'DataValidation':\n\t\tcase 'AutoFilter':\n\t\tcase 'Sorting':\n\t\tcase 'Schema':\n\t\tcase 'data':\n\t\tcase 'ConditionalFormatting':\n\t\tcase 'SmartTagType':\n\t\tcase 'SmartTags':\n\t\tcase 'ExcelWorkbook':\n\t\tcase 'WorkbookOptions':\n\t\tcase 'WorksheetOptions':\n\t\t\tif(Rn[1]==='/'){if((tmp=state.pop())[0]!==Rn[3]) throw \"Bad state: \"+tmp;}\n\t\t\telse if(Rn[0].charAt(Rn[0].length-2) !== '/') state.push([Rn[3], true]);\n\t\t\tbreak;\n\n\t\tdefault:\n\t\t\tvar seen = true;\n\t\t\tswitch(state[state.length-1][0]) {\n\t\t\t\t/* OfficeDocumentSettings */\n\t\t\t\tcase 'OfficeDocumentSettings': switch(Rn[3]) {\n\t\t\t\t\tcase 'AllowPNG': break;\n\t\t\t\t\tcase 'RemovePersonalInformation': break;\n\t\t\t\t\tcase 'DownloadComponents': break;\n\t\t\t\t\tcase 'LocationOfComponents': break;\n\t\t\t\t\tcase 'Colors': break;\n\t\t\t\t\tcase 'Color': break;\n\t\t\t\t\tcase 'Index': break;\n\t\t\t\t\tcase 'RGB': break;\n\t\t\t\t\tcase 'PixelsPerInch': break;\n\t\t\t\t\tcase 'TargetScreenSize': break;\n\t\t\t\t\tcase 'ReadOnlyRecommended': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ComponentOptions */\n\t\t\t\tcase 'ComponentOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Toolbar': break;\n\t\t\t\t\tcase 'HideOfficeLogo': break;\n\t\t\t\t\tcase 'SpreadsheetAutoFit': break;\n\t\t\t\t\tcase 'Label': break;\n\t\t\t\t\tcase 'Caption': break;\n\t\t\t\t\tcase 'MaxHeight': break;\n\t\t\t\t\tcase 'MaxWidth': break;\n\t\t\t\t\tcase 'NextSheetNumber': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* ExcelWorkbook */\n\t\t\t\tcase 'ExcelWorkbook': switch(Rn[3]) {\n\t\t\t\t\tcase 'WindowHeight': break;\n\t\t\t\t\tcase 'WindowWidth': break;\n\t\t\t\t\tcase 'WindowTopX': break;\n\t\t\t\t\tcase 'WindowTopY': break;\n\t\t\t\t\tcase 'TabRatio': break;\n\t\t\t\t\tcase 'ProtectStructure': break;\n\t\t\t\t\tcase 'ProtectWindows': break;\n\t\t\t\t\tcase 'ActiveSheet': break;\n\t\t\t\t\tcase 'DisplayInkNotes': break;\n\t\t\t\t\tcase 'FirstVisibleSheet': break;\n\t\t\t\t\tcase 'SupBook': break;\n\t\t\t\t\tcase 'SheetName': break;\n\t\t\t\t\tcase 'SheetIndex': break;\n\t\t\t\t\tcase 'SheetIndexFirst': break;\n\t\t\t\t\tcase 'SheetIndexLast': break;\n\t\t\t\t\tcase 'Dll': break;\n\t\t\t\t\tcase 'AcceptLabelsInFormulas': break;\n\t\t\t\t\tcase 'DoNotSaveLinkValues': break;\n\t\t\t\t\tcase 'Date1904': break;\n\t\t\t\t\tcase 'Iteration': break;\n\t\t\t\t\tcase 'MaxIterations': break;\n\t\t\t\t\tcase 'MaxChange': break;\n\t\t\t\t\tcase 'Path': break;\n\t\t\t\t\tcase 'Xct': break;\n\t\t\t\t\tcase 'Count': break;\n\t\t\t\t\tcase 'SelectedSheets': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tcase 'Uncalced': break;\n\t\t\t\t\tcase 'StartupPrompt': break;\n\t\t\t\t\tcase 'Crn': break;\n\t\t\t\t\tcase 'ExternName': break;\n\t\t\t\t\tcase 'Formula': break;\n\t\t\t\t\tcase 'ColFirst': break;\n\t\t\t\t\tcase 'ColLast': break;\n\t\t\t\t\tcase 'WantAdvise': break;\n\t\t\t\t\tcase 'Boolean': break;\n\t\t\t\t\tcase 'Error': break;\n\t\t\t\t\tcase 'Text': break;\n\t\t\t\t\tcase 'OLE': break;\n\t\t\t\t\tcase 'NoAutoRecover': break;\n\t\t\t\t\tcase 'PublishObjects': break;\n\t\t\t\t\tcase 'DoNotCalculateBeforeSave': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'RefModeR1C1': break;\n\t\t\t\t\tcase 'EmbedSaveSmartTags': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorkbookOptions */\n\t\t\t\tcase 'WorkbookOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'OWCVersion': break;\n\t\t\t\t\tcase 'Height': break;\n\t\t\t\t\tcase 'Width': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* WorksheetOptions */\n\t\t\t\tcase 'WorksheetOptions': switch(Rn[3]) {\n\t\t\t\t\tcase 'Unsynced': break;\n\t\t\t\t\tcase 'Visible': break;\n\t\t\t\t\tcase 'Print': break;\n\t\t\t\t\tcase 'Panes': break;\n\t\t\t\t\tcase 'Scale': break;\n\t\t\t\t\tcase 'Pane': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Layout': break;\n\t\t\t\t\tcase 'Header': break;\n\t\t\t\t\tcase 'Footer': break;\n\t\t\t\t\tcase 'PageSetup': break;\n\t\t\t\t\tcase 'PageMargins': break;\n\t\t\t\t\tcase 'Selected': break;\n\t\t\t\t\tcase 'ProtectObjects': break;\n\t\t\t\t\tcase 'EnableSelection': break;\n\t\t\t\t\tcase 'ProtectScenarios': break;\n\t\t\t\t\tcase 'ValidPrinterInfo': break;\n\t\t\t\t\tcase 'HorizontalResolution': break;\n\t\t\t\t\tcase 'VerticalResolution': break;\n\t\t\t\t\tcase 'NumberofCopies': break;\n\t\t\t\t\tcase 'ActiveRow': break;\n\t\t\t\t\tcase 'ActiveCol': break;\n\t\t\t\t\tcase 'ActivePane': break;\n\t\t\t\t\tcase 'TopRowVisible': break;\n\t\t\t\t\tcase 'TopRowBottomPane': break;\n\t\t\t\t\tcase 'LeftColumnVisible': break;\n\t\t\t\t\tcase 'LeftColumnRightPane': break;\n\t\t\t\t\tcase 'FitToPage': break;\n\t\t\t\t\tcase 'RangeSelection': break;\n\t\t\t\t\tcase 'PaperSizeIndex': break;\n\t\t\t\t\tcase 'PageLayoutZoom': break;\n\t\t\t\t\tcase 'PageBreakZoom': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'DoNotDisplayGridlines': break;\n\t\t\t\t\tcase 'SplitHorizontal': break;\n\t\t\t\t\tcase 'SplitVertical': break;\n\t\t\t\t\tcase 'FreezePanes': break;\n\t\t\t\t\tcase 'FrozenNoSplit': break;\n\t\t\t\t\tcase 'FitWidth': break;\n\t\t\t\t\tcase 'FitHeight': break;\n\t\t\t\t\tcase 'CommentsLayout': break;\n\t\t\t\t\tcase 'Zoom': break;\n\t\t\t\t\tcase 'LeftToRight': break;\n\t\t\t\t\tcase 'Gridlines': break;\n\t\t\t\t\tcase 'AllowSort': break;\n\t\t\t\t\tcase 'AllowFilter': break;\n\t\t\t\t\tcase 'AllowInsertRows': break;\n\t\t\t\t\tcase 'AllowDeleteRows': break;\n\t\t\t\t\tcase 'AllowInsertCols': break;\n\t\t\t\t\tcase 'AllowDeleteCols': break;\n\t\t\t\t\tcase 'AllowInsertHyperlinks': break;\n\t\t\t\t\tcase 'AllowFormatCells': break;\n\t\t\t\t\tcase 'AllowSizeCols': break;\n\t\t\t\t\tcase 'AllowSizeRows': break;\n\t\t\t\t\tcase 'NoSummaryRowsBelowDetail': break;\n\t\t\t\t\tcase 'TabColorIndex': break;\n\t\t\t\t\tcase 'DoNotDisplayHeadings': break;\n\t\t\t\t\tcase 'ShowPageLayoutZoom': break;\n\t\t\t\t\tcase 'NoSummaryColumnsRightDetail': break;\n\t\t\t\t\tcase 'BlackAndWhite': break;\n\t\t\t\t\tcase 'DoNotDisplayZeros': break;\n\t\t\t\t\tcase 'DisplayPageBreak': break;\n\t\t\t\t\tcase 'RowColHeadings': break;\n\t\t\t\t\tcase 'DoNotDisplayOutline': break;\n\t\t\t\t\tcase 'NoOrientation': break;\n\t\t\t\t\tcase 'AllowUsePivotTables': break;\n\t\t\t\t\tcase 'ZeroHeight': break;\n\t\t\t\t\tcase 'ViewableRange': break;\n\t\t\t\t\tcase 'Selection': break;\n\t\t\t\t\tcase 'ProtectContents': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'PivotTable': case 'PivotCache': switch(Rn[3]) {\n\t\t\t\t\tcase 'ImmediateItemsOnDrop': break;\n\t\t\t\t\tcase 'ShowPageMultipleItemLabel': break;\n\t\t\t\t\tcase 'CompactRowIndent': break;\n\t\t\t\t\tcase 'Location': break;\n\t\t\t\t\tcase 'PivotField': break;\n\t\t\t\t\tcase 'Orientation': break;\n\t\t\t\t\tcase 'LayoutForm': break;\n\t\t\t\t\tcase 'LayoutSubtotalLocation': break;\n\t\t\t\t\tcase 'LayoutCompactRow': break;\n\t\t\t\t\tcase 'Position': break;\n\t\t\t\t\tcase 'PivotItem': break;\n\t\t\t\t\tcase 'DataType': break;\n\t\t\t\t\tcase 'DataField': break;\n\t\t\t\t\tcase 'SourceName': break;\n\t\t\t\t\tcase 'ParentField': break;\n\t\t\t\t\tcase 'PTLineItems': break;\n\t\t\t\t\tcase 'PTLineItem': break;\n\t\t\t\t\tcase 'CountOfSameItems': break;\n\t\t\t\t\tcase 'Item': break;\n\t\t\t\t\tcase 'ItemType': break;\n\t\t\t\t\tcase 'PTSource': break;\n\t\t\t\t\tcase 'CacheIndex': break;\n\t\t\t\t\tcase 'ConsolidationReference': break;\n\t\t\t\t\tcase 'FileName': break;\n\t\t\t\t\tcase 'Reference': break;\n\t\t\t\t\tcase 'NoColumnGrand': break;\n\t\t\t\t\tcase 'NoRowGrand': break;\n\t\t\t\t\tcase 'BlankLineAfterItems': break;\n\t\t\t\t\tcase 'Hidden': break;\n\t\t\t\t\tcase 'Subtotal': break;\n\t\t\t\t\tcase 'BaseField': break;\n\t\t\t\t\tcase 'MapChildItems': break;\n\t\t\t\t\tcase 'Function': break;\n\t\t\t\t\tcase 'RefreshOnFileOpen': break;\n\t\t\t\t\tcase 'PrintSetTitles': break;\n\t\t\t\t\tcase 'MergeLabels': break;\n\t\t\t\t\tcase 'DefaultVersion': break;\n\t\t\t\t\tcase 'RefreshName': break;\n\t\t\t\t\tcase 'RefreshDate': break;\n\t\t\t\t\tcase 'RefreshDateCopy': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tcase 'VersionLastUpdate': break;\n\t\t\t\t\tcase 'VersionUpdateableMin': break;\n\t\t\t\t\tcase 'VersionRefreshableMin': break;\n\t\t\t\t\tcase 'Calculation': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* PageBreaks */\n\t\t\t\tcase 'PageBreaks': switch(Rn[3]) {\n\t\t\t\t\tcase 'ColBreaks': break;\n\t\t\t\t\tcase 'ColBreak': break;\n\t\t\t\t\tcase 'RowBreaks': break;\n\t\t\t\t\tcase 'RowBreak': break;\n\t\t\t\t\tcase 'ColStart': break;\n\t\t\t\t\tcase 'ColEnd': break;\n\t\t\t\t\tcase 'RowEnd': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* AutoFilter */\n\t\t\t\tcase 'AutoFilter': switch(Rn[3]) {\n\t\t\t\t\tcase 'AutoFilterColumn': break;\n\t\t\t\t\tcase 'AutoFilterCondition': break;\n\t\t\t\t\tcase 'AutoFilterAnd': break;\n\t\t\t\t\tcase 'AutoFilterOr': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* QueryTable */\n\t\t\t\tcase 'QueryTable': switch(Rn[3]) {\n\t\t\t\t\tcase 'Id': break;\n\t\t\t\t\tcase 'AutoFormatFont': break;\n\t\t\t\t\tcase 'AutoFormatPattern': break;\n\t\t\t\t\tcase 'QuerySource': break;\n\t\t\t\t\tcase 'QueryType': break;\n\t\t\t\t\tcase 'EnableRedirections': break;\n\t\t\t\t\tcase 'RefreshedInXl9': break;\n\t\t\t\t\tcase 'URLString': break;\n\t\t\t\t\tcase 'HTMLTables': break;\n\t\t\t\t\tcase 'Connection': break;\n\t\t\t\t\tcase 'CommandText': break;\n\t\t\t\t\tcase 'RefreshInfo': break;\n\t\t\t\t\tcase 'NoTitles': break;\n\t\t\t\t\tcase 'NextId': break;\n\t\t\t\t\tcase 'ColumnInfo': break;\n\t\t\t\t\tcase 'OverwriteCells': break;\n\t\t\t\t\tcase 'DoNotPromptForFile': break;\n\t\t\t\t\tcase 'TextWizardSettings': break;\n\t\t\t\t\tcase 'Source': break;\n\t\t\t\t\tcase 'Number': break;\n\t\t\t\t\tcase 'Decimal': break;\n\t\t\t\t\tcase 'ThousandSeparator': break;\n\t\t\t\t\tcase 'TrailingMinusNumbers': break;\n\t\t\t\t\tcase 'FormatSettings': break;\n\t\t\t\t\tcase 'FieldType': break;\n\t\t\t\t\tcase 'Delimiters': break;\n\t\t\t\t\tcase 'Tab': break;\n\t\t\t\t\tcase 'Comma': break;\n\t\t\t\t\tcase 'AutoFormatName': break;\n\t\t\t\t\tcase 'VersionLastEdit': break;\n\t\t\t\t\tcase 'VersionLastRefresh': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* Sorting */\n\t\t\t\tcase 'Sorting':\n\t\t\t\t/* ConditionalFormatting */\n\t\t\t\tcase 'ConditionalFormatting':\n\t\t\t\t/* DataValidation */\n\t\t\t\tcase 'DataValidation': switch(Rn[3]) {\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'Type': break;\n\t\t\t\t\tcase 'Min': break;\n\t\t\t\t\tcase 'Max': break;\n\t\t\t\t\tcase 'Sort': break;\n\t\t\t\t\tcase 'Descending': break;\n\t\t\t\t\tcase 'Order': break;\n\t\t\t\t\tcase 'CaseSensitive': break;\n\t\t\t\t\tcase 'Value': break;\n\t\t\t\t\tcase 'ErrorStyle': break;\n\t\t\t\t\tcase 'ErrorMessage': break;\n\t\t\t\t\tcase 'ErrorTitle': break;\n\t\t\t\t\tcase 'CellRangeList': break;\n\t\t\t\t\tcase 'InputMessage': break;\n\t\t\t\t\tcase 'InputTitle': break;\n\t\t\t\t\tcase 'ComboHide': break;\n\t\t\t\t\tcase 'InputHide': break;\n\t\t\t\t\tcase 'Condition': break;\n\t\t\t\t\tcase 'Qualifier': break;\n\t\t\t\t\tcase 'UseBlank': break;\n\t\t\t\t\tcase 'Value1': break;\n\t\t\t\t\tcase 'Value2': break;\n\t\t\t\t\tcase 'Format': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* MapInfo (schema) */\n\t\t\t\tcase 'MapInfo': case 'Schema': case 'data': switch(Rn[3]) {\n\t\t\t\t\tcase 'Map': break;\n\t\t\t\t\tcase 'Entry': break;\n\t\t\t\t\tcase 'Range': break;\n\t\t\t\t\tcase 'XPath': break;\n\t\t\t\t\tcase 'Field': break;\n\t\t\t\t\tcase 'XSDType': break;\n\t\t\t\t\tcase 'FilterOn': break;\n\t\t\t\t\tcase 'Aggregate': break;\n\t\t\t\t\tcase 'ElementType': break;\n\t\t\t\t\tcase 'AttributeType': break;\n\t\t\t\t/* These are from xsd (XML Schema Definition) */\n\t\t\t\t\tcase 'schema':\n\t\t\t\t\tcase 'element':\n\t\t\t\t\tcase 'complexType':\n\t\t\t\t\tcase 'datatype':\n\t\t\t\t\tcase 'all':\n\t\t\t\t\tcase 'attribute':\n\t\t\t\t\tcase 'extends': break;\n\n\t\t\t\t\tcase 'row': break;\n\t\t\t\t\tdefault: seen = false;\n\t\t\t\t} break;\n\n\t\t\t\t/* SmartTags (can be anything) */\n\t\t\t\tcase 'SmartTags': break;\n\n\t\t\t\tdefault: seen = false; break;\n\t\t\t}\n\t\t\tif(seen) break;\n\t\t\t/* CustomDocumentProperties */\n\t\t\tif(!state[state.length-1][1]) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t\t\tif(state[state.length-1][0]==='CustomDocumentProperties') {\n\t\t\t\tif(Rn[0].substr(-2) === \"/>\") break;\n\t\t\t\telse if(Rn[1]===\"/\") xlml_set_custprop(Custprops, Rn, cp, str.slice(pidx, Rn.index));\n\t\t\t\telse { cp = Rn; pidx = Rn.index + Rn[0].length; }\n\t\t\t\tbreak;\n\t\t\t}\n\t\t\tif(opts.WTF) throw 'Unrecognized tag: ' + Rn[3] + \"|\" + state.join(\"|\");\n\t}\n\tvar out = {};\n\tif(!opts.bookSheets && !opts.bookProps) out.Sheets = sheets;\n\tout.SheetNames = sheetnames;\n\tout.SSF = SSF.get_table();\n\tout.Props = Props;\n\tout.Custprops = Custprops;\n\treturn out;\n}\n\nfunction parse_xlml(data, opts) {\n\tfix_read_opts(opts=opts||{});\n\tswitch(opts.type||\"base64\") {\n\t\tcase \"base64\": return parse_xlml_xml(Base64.decode(data), opts);\n\t\tcase \"binary\": case \"buffer\": case \"file\": return parse_xlml_xml(data, opts);\n\t\tcase \"array\": return parse_xlml_xml(data.map(_chr).join(\"\"), opts);\n\t}\n}\n\nfunction write_xlml(wb, opts) { }\n\n/* [MS-OLEDS] 2.3.8 CompObjStream */\nfunction parse_compobj(obj) {\n\tvar v = {};\n\tvar o = obj.content;\n\n\t/* [MS-OLEDS] 2.3.7 CompObjHeader -- All fields MUST be ignored */\n\tvar l = 28, m;\n\tm = __lpstr(o, l);\n\tl += 4 + __readUInt32LE(o,l);\n\tv.UserType = m;\n\n\t/* [MS-OLEDS] 2.3.1 ClipboardFormatOrAnsiString */\n\tm = __readUInt32LE(o,l); l+= 4;\n\tswitch(m) {\n\t\tcase 0x00000000: break;\n\t\tcase 0xffffffff: case 0xfffffffe: l+=4; break;\n\t\tdefault:\n\t\t\tif(m > 0x190) throw new Error(\"Unsupported Clipboard: \" + m.toString(16));\n\t\t\tl += m;\n\t}\n\n\tm = __lpstr(o, l); l += m.length === 0 ? 0 : 5 + m.length; v.Reserved1 = m;\n\n\tif((m = __readUInt32LE(o,l)) !== 0x71b2e9f4) return v;\n\tthrow \"Unsupported Unicode Extension\";\n}\n\n/* 2.4.58 Continue logic */\nfunction slurp(R, blob, length, opts) {\n\tvar l = length;\n\tvar bufs = [];\n\tvar d = blob.slice(blob.l,blob.l+l);\n\tif(opts && opts.enc && opts.enc.insitu_decrypt) switch(R.n) {\n\tcase 'BOF': case 'FilePass': case 'FileLock': case 'InterfaceHdr': case 'RRDInfo': case 'RRDHead': case 'UsrExcl': break;\n\tdefault:\n\t\tif(d.length === 0) break;\n\t\topts.enc.insitu_decrypt(d);\n\t}\n\tbufs.push(d);\n\tblob.l += l;\n\tvar next = (XLSRecordEnum[__readUInt16LE(blob,blob.l)]);\n\twhile(next != null && next.n === 'Continue') {\n\t\tl = __readUInt16LE(blob,blob.l+2);\n\t\tbufs.push(blob.slice(blob.l+4,blob.l+4+l));\n\t\tblob.l += 4+l;\n\t\tnext = (XLSRecordEnum[__readUInt16LE(blob, blob.l)]);\n\t}\n\tvar b = bconcat(bufs);\n\tprep_blob(b, 0);\n\tvar ll = 0; b.lens = [];\n\tfor(var j = 0; j < bufs.length; ++j) { b.lens.push(ll); ll += bufs[j].length; }\n\treturn R.f(b, b.length, opts);\n}\n\nfunction safe_format_xf(p, opts, date1904) {\n\tif(!p.XF) return;\n\ttry {\n\t\tvar fmtid = p.XF.ifmt||0;\n\t\tif(p.t === 'e') { p.w = p.w || BErr[p.v]; }\n\t\telse if(fmtid === 0) {\n\t\t\tif(p.t === 'n') {\n\t\t\t\tif((p.v|0) === p.v) p.w = SSF._general_int(p.v);\n\t\t\t\telse p.w = SSF._general_num(p.v);\n\t\t\t}\n\t\t\telse p.w = SSF._general(p.v);\n\t\t}\n\t\telse p.w = SSF.format(fmtid,p.v, {date1904:date1904||false});\n\t\tif(opts.cellNF) p.z = SSF._table[fmtid];\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nfunction make_cell(val, ixfe, t) {\n\treturn {v:val, ixfe:ixfe, t:t};\n}\n\n// 2.3.2\nfunction parse_workbook(blob, options) {\n\tvar wb = {opts:{}};\n\tvar Sheets = {};\n\tvar out = {};\n\tvar Directory = {};\n\tvar found_sheet = false;\n\tvar range = {};\n\tvar last_formula = null;\n\tvar sst = [];\n\tvar cur_sheet = \"\";\n\tvar Preamble = {};\n\tvar lastcell, last_cell, cc, cmnt, rng, rngC, rngR;\n\tvar shared_formulae = {};\n\tvar array_formulae = []; /* TODO: something more clever */\n\tvar temp_val;\n\tvar country;\n\tvar cell_valid = true;\n\tvar XFs = []; /* XF records */\n\tvar palette = [];\n\tvar get_rgb = function getrgb(icv) {\n\t\tif(icv < 8) return XLSIcv[icv];\n\t\tif(icv < 64) return palette[icv-8] || XLSIcv[icv];\n\t\treturn XLSIcv[icv];\n\t};\n\tvar process_cell_style = function pcs(cell, line) {\n\t\tvar xfd = line.XF.data;\n\t\tif(!xfd || !xfd.patternType) return;\n\t\tline.s = {};\n\t\tline.s.patternType = xfd.patternType;\n\t\tvar t;\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvFore)))) { line.s.fgColor = {rgb:t}; }\n\t\tif((t = rgb2Hex(get_rgb(xfd.icvBack)))) { line.s.bgColor = {rgb:t}; }\n\t};\n\tvar addcell = function addcell(cell, line, options) {\n\t\tif(!cell_valid) return;\n\t\tif(options.cellStyles && line.XF && line.XF.data) process_cell_style(cell, line);\n\t\tlastcell = cell;\n\t\tlast_cell = encode_cell(cell);\n\t\tif(range.s) {\n\t\t\tif(cell.r < range.s.r) range.s.r = cell.r;\n\t\t\tif(cell.c < range.s.c) range.s.c = cell.c;\n\t\t}\n\t\tif(range.e) {\n\t\t\tif(cell.r + 1 > range.e.r) range.e.r = cell.r + 1;\n\t\t\tif(cell.c + 1 > range.e.c) range.e.c = cell.c + 1;\n\t\t}\n\t\tif(options.sheetRows && lastcell.r >= options.sheetRows) cell_valid = false;\n\t\telse out[last_cell] = line;\n\t};\n\tvar opts = {\n\t\tenc: false, // encrypted\n\t\tsbcch: 0, // cch in the preceding SupBook\n\t\tsnames: [], // sheetnames\n\t\tsharedf: shared_formulae, // shared formulae by address\n\t\tarrayf: array_formulae, // array formulae array\n\t\trrtabid: [], // RRTabId\n\t\tlastuser: \"\", // Last User from WriteAccess\n\t\tbiff: 8, // BIFF version\n\t\tcodepage: 0, // CP from CodePage record\n\t\twinlocked: 0, // fLockWn from WinProtect\n\t\twtf: false\n\t};\n\tif(options.password) opts.password = options.password;\n\tvar mergecells = [];\n\tvar objects = [];\n\tvar supbooks = [[]]; // 1-indexed, will hold extern names\n\tvar sbc = 0, sbci = 0, sbcli = 0;\n\tsupbooks.SheetNames = opts.snames;\n\tsupbooks.sharedf = opts.sharedf;\n\tsupbooks.arrayf = opts.arrayf;\n\tvar last_Rn = '';\n\tvar file_depth = 0; /* TODO: make a real stack */\n\n\t/* explicit override for some broken writers */\n\topts.codepage = 1200;\n\tset_cp(1200);\n\n\twhile(blob.l < blob.length - 1) {\n\t\tvar s = blob.l;\n\t\tvar RecordType = blob.read_shift(2);\n\t\tif(RecordType === 0 && last_Rn === 'EOF') break;\n\t\tvar length = (blob.l === blob.length ? 0 : blob.read_shift(2)), y;\n\t\tvar R = XLSRecordEnum[RecordType];\n\t\tif(R && R.f) {\n\t\t\tif(options.bookSheets) {\n\t\t\t\tif(last_Rn === 'BoundSheet8' && R.n !== 'BoundSheet8') break;\n\t\t\t}\n\t\t\tlast_Rn = R.n;\n\t\t\tif(R.r === 2 || R.r == 12) {\n\t\t\t\tvar rt = blob.read_shift(2); length -= 2;\n\t\t\t\tif(!opts.enc && rt !== RecordType) throw \"rt mismatch\";\n\t\t\t\tif(R.r == 12){ blob.l += 10; length -= 10; } // skip FRT\n\t\t\t}\n\t\t\t//console.error(R,blob.l,length,blob.length);\n\t\t\tvar val;\n\t\t\tif(R.n === 'EOF') val = R.f(blob, length, opts);\n\t\t\telse val = slurp(R, blob, length, opts);\n\t\t\tvar Rn = R.n;\n\t\t\t/* BIFF5 overrides */\n\t\t\tif(opts.biff === 5 || opts.biff === 2) switch(Rn) {\n\t\t\t\tcase 'Lbl': Rn = 'Label'; break;\n\t\t\t}\n\t\t\t/* nested switch statements to workaround V8 128 limit */\n\t\t\tswitch(Rn) {\n\t\t\t\t/* Workbook Options */\n\t\t\t\tcase 'Date1904': wb.opts.Date1904 = val; break;\n\t\t\t\tcase 'WriteProtect': wb.opts.WriteProtect = true; break;\n\t\t\t\tcase 'FilePass':\n\t\t\t\t\tif(!opts.enc) blob.l = 0;\n\t\t\t\t\topts.enc = val;\n\t\t\t\t\tif(opts.WTF) console.error(val);\n\t\t\t\t\tif(!options.password) throw new Error(\"File is password-protected\");\n\t\t\t\t\tif(val.Type !== 0) throw new Error(\"Encryption scheme unsupported\");\n\t\t\t\t\tif(!val.valid) throw new Error(\"Password is incorrect\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'WriteAccess': opts.lastuser = val; break;\n\t\t\t\tcase 'FileSharing': break; //TODO\n\t\t\t\tcase 'CodePage':\n\t\t\t\t\t/* overrides based on test cases */\n\t\t\t\t\tif(val === 0x5212) val = 1200;\n\t\t\t\t\telse if(val === 0x8001) val = 1252;\n\t\t\t\t\topts.codepage = val;\n\t\t\t\t\tset_cp(val);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'RRTabId': opts.rrtabid = val; break;\n\t\t\t\tcase 'WinProtect': opts.winlocked = val; break;\n\t\t\t\tcase 'Template': break; // TODO\n\t\t\t\tcase 'RefreshAll': wb.opts.RefreshAll = val; break;\n\t\t\t\tcase 'BookBool': break; // TODO\n\t\t\t\tcase 'UsesELFs': /* if(val) console.error(\"Unsupported ELFs\"); */ break;\n\t\t\t\tcase 'MTRSettings': {\n\t\t\t\t\tif(val[0] && val[1]) throw \"Unsupported threads: \" + val;\n\t\t\t\t} break; // TODO: actually support threads\n\t\t\t\tcase 'CalcCount': wb.opts.CalcCount = val; break;\n\t\t\t\tcase 'CalcDelta': wb.opts.CalcDelta = val; break;\n\t\t\t\tcase 'CalcIter': wb.opts.CalcIter = val; break;\n\t\t\t\tcase 'CalcMode': wb.opts.CalcMode = val; break;\n\t\t\t\tcase 'CalcPrecision': wb.opts.CalcPrecision = val; break;\n\t\t\t\tcase 'CalcSaveRecalc': wb.opts.CalcSaveRecalc = val; break;\n\t\t\t\tcase 'CalcRefMode': opts.CalcRefMode = val; break; // TODO: implement R1C1\n\t\t\t\tcase 'Uncalced': break;\n\t\t\t\tcase 'ForceFullCalculation': wb.opts.FullCalc = val; break;\n\t\t\t\tcase 'WsBool': break; // TODO\n\t\t\t\tcase 'XF': XFs.push(val); break;\n\t\t\t\tcase 'ExtSST': break; // TODO\n\t\t\t\tcase 'BookExt': break; // TODO\n\t\t\t\tcase 'RichTextStream': break;\n\t\t\t\tcase 'BkHim': break;\n\n\t\t\t\tcase 'SupBook': supbooks[++sbc] = [val]; sbci = 0; break;\n\t\t\t\tcase 'ExternName': supbooks[sbc][++sbci] = val; break;\n\t\t\t\tcase 'Index': break; // TODO\n\t\t\t\tcase 'Lbl': supbooks[0][++sbcli] = val; break;\n\t\t\t\tcase 'ExternSheet': supbooks[sbc] = supbooks[sbc].concat(val); sbci += val.length; break;\n\n\t\t\t\tcase 'Protect': out[\"!protect\"] = val; break; /* for sheet or book */\n\t\t\t\tcase 'Password': if(val !== 0 && opts.WTF) console.error(\"Password verifier: \" + val); break;\n\t\t\t\tcase 'Prot4Rev': case 'Prot4RevPass': break; /*TODO: Revision Control*/\n\n\t\t\t\tcase 'BoundSheet8': {\n\t\t\t\t\tDirectory[val.pos] = val;\n\t\t\t\t\topts.snames.push(val.name);\n\t\t\t\t} break;\n\t\t\t\tcase 'EOF': {\n\t\t\t\t\tif(--file_depth) break;\n\t\t\t\t\tif(range.e) {\n\t\t\t\t\t\tout[\"!range\"] = range;\n\t\t\t\t\t\tif(range.e.r > 0 && range.e.c > 0) {\n\t\t\t\t\t\t\trange.e.r--; range.e.c--;\n\t\t\t\t\t\t\tout[\"!ref\"] = encode_range(range);\n\t\t\t\t\t\t\trange.e.r++; range.e.c++;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif(mergecells.length > 0) out[\"!merges\"] = mergecells;\n\t\t\t\t\t\tif(objects.length > 0) out[\"!objects\"] = objects;\n\t\t\t\t\t}\n\t\t\t\t\tif(cur_sheet === \"\") Preamble = out; else Sheets[cur_sheet] = out;\n\t\t\t\t\tout = {};\n\t\t\t\t} break;\n\t\t\t\tcase 'BOF': {\n\t\t\t\t\tif(opts.biff !== 8);\n\t\t\t\t\telse if(val.BIFFVer === 0x0500) opts.biff = 5;\n\t\t\t\t\telse if(val.BIFFVer === 0x0002) opts.biff = 2;\n\t\t\t\t\telse if(val.BIFFVer === 0x0007) opts.biff = 2;\n\t\t\t\t\tif(file_depth++) break;\n\t\t\t\t\tcell_valid = true;\n\t\t\t\t\tout = {};\n\t\t\t\t\tif(opts.biff === 2) {\n\t\t\t\t\t\tif(cur_sheet === \"\") cur_sheet = \"Sheet1\";\n\t\t\t\t\t\trange = {s:{r:0,c:0},e:{r:0,c:0}};\n\t\t\t\t\t}\n\t\t\t\t\telse cur_sheet = (Directory[s] || {name:\"\"}).name;\n\t\t\t\t\tmergecells = [];\n\t\t\t\t\tobjects = [];\n\t\t\t\t} break;\n\t\t\t\tcase 'Number': case 'BIFF2NUM': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:'n'};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'BoolErr': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.val, t:val.t};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'RK': {\n\t\t\t\t\ttemp_val = {ixfe: val.ixfe, XF: XFs[val.ixfe], v:val.rknum, t:'n'};\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t} break;\n\t\t\t\tcase 'MulRk': {\n\t\t\t\t\tfor(var j = val.c; j <= val.C; ++j) {\n\t\t\t\t\t\tvar ixfe = val.rkrec[j-val.c][0];\n\t\t\t\t\t\ttemp_val= {ixfe:ixfe, XF:XFs[ixfe], v:val.rkrec[j-val.c][1], t:'n'};\n\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell({c:j, r:val.r}, temp_val, options);\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Formula': {\n\t\t\t\t\tswitch(val.val) {\n\t\t\t\t\t\tcase 'String': last_formula = val; break;\n\t\t\t\t\t\tcase 'Array Formula': throw \"Array Formula unsupported\";\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\ttemp_val = {v:val.val, ixfe:val.cell.ixfe, t:val.tt};\n\t\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\t\tif(options.cellFormula) temp_val.f = \"=\"+stringify_formula(val.formula,range,val.cell,supbooks, opts);\n\t\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\t\taddcell(val.cell, temp_val, options);\n\t\t\t\t\t\t\tlast_formula = val;\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'String': {\n\t\t\t\t\tif(last_formula) {\n\t\t\t\t\t\tlast_formula.val = val;\n\t\t\t\t\t\ttemp_val = {v:last_formula.val, ixfe:last_formula.cell.ixfe, t:'s'};\n\t\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\t\tif(options.cellFormula) temp_val.f = \"=\"+stringify_formula(last_formula.formula, range, last_formula.cell, supbooks, opts);\n\t\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\t\taddcell(last_formula.cell, temp_val, options);\n\t\t\t\t\t\tlast_formula = null;\n\t\t\t\t\t}\n\t\t\t\t} break;\n\t\t\t\tcase 'Array': {\n\t\t\t\t\tarray_formulae.push(val);\n\t\t\t\t} break;\n\t\t\t\tcase 'ShrFmla': {\n\t\t\t\t\tif(!cell_valid) break;\n\t\t\t\t\t//if(options.cellFormula) out[last_cell].f = stringify_formula(val[0], range, lastcell, supbooks, opts);\n\t\t\t\t\t/* TODO: capture range */\n\t\t\t\t\tshared_formulae[encode_cell(last_formula.cell)]= val[0];\n\t\t\t\t} break;\n\t\t\t\tcase 'LabelSst':\n\t\t\t\t\t//temp_val={v:sst[val.isst].t, ixfe:val.ixfe, t:'s'};\n\t\t\t\t\ttemp_val=make_cell(sst[val.isst].t, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Label': case 'BIFF2STR':\n\t\t\t\t\t/* Some writers erroneously write Label */\n\t\t\t\t\ttemp_val=make_cell(val.val, val.ixfe, 's');\n\t\t\t\t\ttemp_val.XF = XFs[temp_val.ixfe];\n\t\t\t\t\tif(temp_val.XF) safe_format_xf(temp_val, options, wb.opts.Date1904);\n\t\t\t\t\taddcell({c:val.c, r:val.r}, temp_val, options);\n\t\t\t\t\tbreak;\n\t\t\t\tcase 'Dimensions': {\n\t\t\t\t\tif(file_depth === 1) range = val; /* TODO: stack */\n\t\t\t\t} break;\n\t\t\t\tcase 'SST': {\n\t\t\t\t\tsst = val;\n\t\t\t\t} break;\n\t\t\t\tcase 'Format': { /* val = [id, fmt] */\n\t\t\t\t\tSSF.load(val[1], val[0]);\n\t\t\t\t} break;\n\n\t\t\t\tcase 'MergeCells': mergecells = mergecells.concat(val); break;\n\n\t\t\t\tcase 'Obj': objects[val.cmo[0]] = opts.lastobj = val; break;\n\t\t\t\tcase 'TxO': opts.lastobj.TxO = val; break;\n\n\t\t\t\tcase 'HLink': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC)\n\t\t\t\t\t\t\tif(out[encode_cell({c:rngC,r:rngR})])\n\t\t\t\t\t\t\t\tout[encode_cell({c:rngC,r:rngR})].l = val[1];\n\t\t\t\t} break;\n\t\t\t\tcase 'HLinkTooltip': {\n\t\t\t\t\tfor(rngR = val[0].s.r; rngR <= val[0].e.r; ++rngR)\n\t\t\t\t\t\tfor(rngC = val[0].s.c; rngC <= val[0].e.c; ++rngC)\n\t\t\t\t\t\t\tif(out[encode_cell({c:rngC,r:rngR})])\n\t\t\t\t\t\t\t\tout[encode_cell({c:rngC,r:rngR})].l.tooltip = val[1];\n\t\t\t\t} break;\n\n\t\t\t\t/* Comments */\n\t\t\t\tcase 'Note': {\n\t\t\t\t\tif(opts.biff <= 5 && opts.biff >= 2) break; /* TODO: BIFF5 */\n\t\t\t\t\tcc = out[encode_cell(val[0])];\n\t\t\t\t\tvar noteobj = objects[val[2]];\n\t\t\t\t\tif(!cc) break;\n\t\t\t\t\tif(!cc.c) cc.c = [];\n\t\t\t\t\tcmnt = {a:val[1],t:noteobj.TxO.t};\n\t\t\t\t\tcc.c.push(cmnt);\n\t\t\t\t} break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\tcase 'ClrtClient': break;\n\t\t\t\tcase 'XFExt': update_xfext(XFs[val.ixfe], val.ext); break;\n\n\t\t\t\tcase 'NameCmt': break;\n\t\t\t\tcase 'Header': break; // TODO\n\t\t\t\tcase 'Footer': break; // TODO\n\t\t\t\tcase 'HCenter': break; // TODO\n\t\t\t\tcase 'VCenter': break; // TODO\n\t\t\t\tcase 'Pls': break; // TODO\n\t\t\t\tcase 'Setup': break; // TODO\n\t\t\t\tcase 'DefColWidth': break; // TODO\n\t\t\t\tcase 'GCW': break;\n\t\t\t\tcase 'LHRecord': break;\n\t\t\t\tcase 'ColInfo': break; // TODO\n\t\t\t\tcase 'Row': break; // TODO\n\t\t\t\tcase 'DBCell': break; // TODO\n\t\t\t\tcase 'MulBlank': break; // TODO\n\t\t\t\tcase 'EntExU2': break; // TODO\n\t\t\t\tcase 'SxView': break; // TODO\n\t\t\t\tcase 'Sxvd': break; // TODO\n\t\t\t\tcase 'SXVI': break; // TODO\n\t\t\t\tcase 'SXVDEx': break; // TODO\n\t\t\t\tcase 'SxIvd': break; // TODO\n\t\t\t\tcase 'SXDI': break; // TODO\n\t\t\t\tcase 'SXLI': break; // TODO\n\t\t\t\tcase 'SXEx': break; // TODO\n\t\t\t\tcase 'QsiSXTag': break; // TODO\n\t\t\t\tcase 'Selection': break;\n\t\t\t\tcase 'Feat': break;\n\t\t\t\tcase 'FeatHdr': case 'FeatHdr11': break;\n\t\t\t\tcase 'Feature11': case 'Feature12': case 'List12': break;\n\t\t\t\tcase 'Blank': break;\n\t\t\t\tcase 'Country': country = val; break;\n\t\t\t\tcase 'RecalcId': break;\n\t\t\t\tcase 'DefaultRowHeight': case 'DxGCol': break; // TODO: htmlify\n\t\t\t\tcase 'Fbi': case 'Fbi2': case 'GelFrame': break;\n\t\t\t\tcase 'Font': break; // TODO\n\t\t\t\tcase 'XFCRC': break; // TODO\n\t\t\t\tcase 'Style': break; // TODO\n\t\t\t\tcase 'StyleExt': break; // TODO\n\t\t\t\tcase 'Palette': palette = val; break; // TODO\n\t\t\t\tcase 'Theme': break; // TODO\n\t\t\t\t/* Protection */\n\t\t\t\tcase 'ScenarioProtect': break;\n\t\t\t\tcase 'ObjProtect': break;\n\n\t\t\t\t/* Conditional Formatting */\n\t\t\t\tcase 'CondFmt12': break;\n\n\t\t\t\t/* Table */\n\t\t\t\tcase 'Table': break; // TODO\n\t\t\t\tcase 'TableStyles': break; // TODO\n\t\t\t\tcase 'TableStyle': break; // TODO\n\t\t\t\tcase 'TableStyleElement': break; // TODO\n\n\t\t\t\t/* PivotTable */\n\t\t\t\tcase 'SXStreamID': break; // TODO\n\t\t\t\tcase 'SXVS': break; // TODO\n\t\t\t\tcase 'DConRef': break; // TODO\n\t\t\t\tcase 'SXAddl': break; // TODO\n\t\t\t\tcase 'DConBin': break; // TODO\n\t\t\t\tcase 'DConName': break; // TODO\n\t\t\t\tcase 'SXPI': break; // TODO\n\t\t\t\tcase 'SxFormat': break; // TODO\n\t\t\t\tcase 'SxSelect': break; // TODO\n\t\t\t\tcase 'SxRule': break; // TODO\n\t\t\t\tcase 'SxFilt': break; // TODO\n\t\t\t\tcase 'SxItm': break; // TODO\n\t\t\t\tcase 'SxDXF': break; // TODO\n\n\t\t\t\t/* Scenario Manager */\n\t\t\t\tcase 'ScenMan': break;\n\n\t\t\t\t/* Data Consolidation */\n\t\t\t\tcase 'DCon': break;\n\n\t\t\t\t/* Watched Cell */\n\t\t\t\tcase 'CellWatch': break;\n\n\t\t\t\t/* Print Settings */\n\t\t\t\tcase 'PrintRowCol': break;\n\t\t\t\tcase 'PrintGrid': break;\n\t\t\t\tcase 'PrintSize': break;\n\n\t\t\t\tcase 'XCT': break;\n\t\t\t\tcase 'CRN': break;\n\n\t\t\t\tcase 'Scl': {\n\t\t\t\t\t//console.log(\"Zoom Level:\", val[0]/val[1],val);\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExt': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'SheetExtOptional': {\n\n\t\t\t\t} break;\n\n\t\t\t\t/* VBA */\n\t\t\t\tcase 'ObNoMacros': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'ObProj': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'CodeName': {\n\n\t\t\t\t} break;\n\t\t\t\tcase 'GUIDTypeLib': {\n\n\t\t\t\t} break;\n\n\t\t\t\tcase 'WOpt': break; // TODO: WTF?\n\t\t\t\tcase 'PhoneticInfo': break;\n\n\t\t\t\tcase 'OleObjectSize': break;\n\n\t\t\t\t/* Differential Formatting */\n\t\t\t\tcase 'DXF': case 'DXFN': case 'DXFN12': case 'DXFN12List': case 'DXFN12NoCB': break;\n\n\t\t\t\t/* Data Validation */\n\t\t\t\tcase 'Dv': case 'DVal': break;\n\n\t\t\t\t/* Data Series */\n\t\t\t\tcase 'BRAI': case 'Series': case 'SeriesText': break;\n\n\t\t\t\t/* Data Connection */\n\t\t\t\tcase 'DConn': break;\n\t\t\t\tcase 'DbOrParamQry': break;\n\t\t\t\tcase 'DBQueryExt': break;\n\n\t\t\t\t/* Formatting */\n\t\t\t\tcase 'IFmtRecord': break;\n\t\t\t\tcase 'CondFmt': case 'CF': case 'CF12': case 'CFEx': break;\n\n\t\t\t\t/* Explicitly Ignored */\n\t\t\t\tcase 'Excel9File': break;\n\t\t\t\tcase 'Units': break;\n\t\t\t\tcase 'InterfaceHdr': case 'Mms': case 'InterfaceEnd': case 'DSF': case 'BuiltInFnGroupCount':\n\t\t\t\t/* View Stuff */\n\t\t\t\tcase 'Window1': case 'Window2': case 'HideObj': case 'GridSet': case 'Guts':\n\t\t\t\tcase 'UserBView': case 'UserSViewBegin': case 'UserSViewEnd':\n\t\t\t\tcase 'Pane': break;\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Chart */\n\t\t\t\tcase 'Dat':\n\t\t\t\tcase 'Begin': case 'End':\n\t\t\t\tcase 'StartBlock': case 'EndBlock':\n\t\t\t\tcase 'Frame': case 'Area':\n\t\t\t\tcase 'Axis': case 'AxisLine': case 'Tick': break;\n\t\t\t\tcase 'AxesUsed':\n\t\t\t\tcase 'CrtLayout12': case 'CrtLayout12A': case 'CrtLink': case 'CrtLine': case 'CrtMlFrt': case 'CrtMlFrtContinue': break;\n\t\t\t\tcase 'LineFormat': case 'AreaFormat':\n\t\t\t\tcase 'Chart': case 'Chart3d': case 'Chart3DBarShape': case 'ChartFormat': case 'ChartFrtInfo': break;\n\t\t\t\tcase 'PlotArea': case 'PlotGrowth': break;\n\t\t\t\tcase 'SeriesList': case 'SerParent': case 'SerAuxTrend': break;\n\t\t\t\tcase 'DataFormat': case 'SerToCrt': case 'FontX': break;\n\t\t\t\tcase 'CatSerRange': case 'AxcExt': case 'SerFmt': break;\n\t\t\t\tcase 'ShtProps': break;\n\t\t\t\tcase 'DefaultText': case 'Text': case 'CatLab': break;\n\t\t\t\tcase 'DataLabExtContents': break;\n\t\t\t\tcase 'Legend': case 'LegendException': break;\n\t\t\t\tcase 'Pie': case 'Scatter': break;\n\t\t\t\tcase 'PieFormat': case 'MarkerFormat': break;\n\t\t\t\tcase 'StartObject': case 'EndObject': break;\n\t\t\t\tcase 'AlRuns': case 'ObjectLink': break;\n\t\t\t\tcase 'SIIndex': break;\n\t\t\t\tcase 'AttachedLabel': case 'YMult': break;\n\n\t\t\t\t/* Chart Group */\n\t\t\t\tcase 'Line': case 'Bar': break;\n\t\t\t\tcase 'Surf': break;\n\n\t\t\t\t/* Axis Group */\n\t\t\t\tcase 'AxisParent': break;\n\t\t\t\tcase 'Pos': break;\n\t\t\t\tcase 'ValueRange': break;\n\n\t\t\t\t/* Pivot Chart */\n\t\t\t\tcase 'SXViewEx9': break; // TODO\n\t\t\t\tcase 'SXViewLink': break;\n\t\t\t\tcase 'PivotChartBits': break;\n\t\t\t\tcase 'SBaseRef': break;\n\t\t\t\tcase 'TextPropsStream': break;\n\n\t\t\t\t/* Chart Misc */\n\t\t\t\tcase 'LnExt': break;\n\t\t\t\tcase 'MkrExt': break;\n\t\t\t\tcase 'CrtCoopt': break;\n\n\t\t\t\t/* Query Table */\n\t\t\t\tcase 'Qsi': case 'Qsif': case 'Qsir': case 'QsiSXTag': break;\n\t\t\t\tcase 'TxtQry': break;\n\n\t\t\t\t/* Filter */\n\t\t\t\tcase 'FilterMode': break;\n\t\t\t\tcase 'AutoFilter': case 'AutoFilterInfo': break;\n\t\t\t\tcase 'AutoFilter12': break;\n\t\t\t\tcase 'DropDownObjIds': break;\n\t\t\t\tcase 'Sort': break;\n\t\t\t\tcase 'SortData': break;\n\n\t\t\t\t/* Drawing */\n\t\t\t\tcase 'ShapePropsStream': break;\n\t\t\t\tcase 'MsoDrawing': case 'MsoDrawingGroup': case 'MsoDrawingSelection': break;\n\t\t\t\tcase 'ImData': break;\n\t\t\t\t/* Pub Stuff */\n\t\t\t\tcase 'WebPub': case 'AutoWebPub':\n\n\t\t\t\t/* Print Stuff */\n\t\t\t\tcase 'RightMargin': case 'LeftMargin': case 'TopMargin': case 'BottomMargin':\n\t\t\t\tcase 'HeaderFooter': case 'HFPicture': case 'PLV':\n\t\t\t\tcase 'HorizontalPageBreaks': case 'VerticalPageBreaks':\n\t\t\t\t/* Behavioral */\n\t\t\t\tcase 'Backup': case 'CompressPictures': case 'Compat12': break;\n\n\t\t\t\t/* Should not Happen */\n\t\t\t\tcase 'Continue': case 'ContinueFrt12': break;\n\n\t\t\t\t/* Future Records */\n\t\t\t\tcase 'FrtFontList': case 'FrtWrapper': break;\n\n\t\t\t\t/* BIFF5 records */\n\t\t\t\tcase 'ExternCount': break;\n\t\t\t\tcase 'RString': break;\n\t\t\t\tcase 'TabIdConf': case 'Radar': case 'RadarArea': case 'DropBar': case 'Intl': case 'CoordList': case 'SerAuxErrBar': break;\n\n\t\t\t\tdefault: switch(R.n) { /* nested */\n\t\t\t\t/* Miscellaneous */\n\t\t\t\tcase 'SCENARIO': case 'DConBin': case 'PicF': case 'DataLabExt':\n\t\t\t\tcase 'Lel': case 'BopPop': case 'BopPopCustom': case 'RealTimeData':\n\t\t\t\tcase 'Name': break;\n\t\t\t\tdefault: if(options.WTF) throw 'Unrecognized Record ' + R.n;\n\t\t\t}}}}\n\t\t} else blob.l += length;\n\t}\n\tvar sheetnamesraw = opts.biff === 2 ? ['Sheet1'] : Object.keys(Directory).sort(function(a,b) { return Number(a) - Number(b); }).map(function(x){return Directory[x].name;});\n\tvar sheetnames = sheetnamesraw.slice();\n\twb.Directory=sheetnamesraw;\n\twb.SheetNames=sheetnamesraw;\n\tif(!options.bookSheets) wb.Sheets=Sheets;\n\twb.Preamble=Preamble;\n\twb.Strings = sst;\n\twb.SSF = SSF.get_table();\n\tif(opts.enc) wb.Encryption = opts.enc;\n\twb.Metadata = {};\n\tif(country !== undefined) wb.Metadata.Country = country;\n\treturn wb;\n}\n\nfunction parse_xlscfb(cfb, options) {\nif(!options) options = {};\nfix_read_opts(options);\nreset_cp();\nvar CompObj, Summary, Workbook;\nif(cfb.find) {\n\tCompObj = cfb.find('!CompObj');\n\tSummary = cfb.find('!SummaryInformation');\n\tWorkbook = cfb.find('/Workbook');\n} else {\n\tprep_blob(cfb, 0);\n\tWorkbook = {content: cfb};\n}\n\nif(!Workbook) Workbook = cfb.find('/Book');\nvar CompObjP, SummaryP, WorkbookP;\n\nif(CompObj) CompObjP = parse_compobj(CompObj);\nif(options.bookProps && !options.bookSheets) WorkbookP = {};\nelse {\n\tif(Workbook) WorkbookP = parse_workbook(Workbook.content, options, !!Workbook.find);\n\telse throw new Error(\"Cannot find Workbook stream\");\n}\n\nif(cfb.find) parse_props(cfb);\n\nvar props = {};\nfor(var y in cfb.Summary) props[y] = cfb.Summary[y];\nfor(y in cfb.DocSummary) props[y] = cfb.DocSummary[y];\nWorkbookP.Props = WorkbookP.Custprops = props; /* TODO: split up properties */\nif(options.bookFiles) WorkbookP.cfb = cfb;\nWorkbookP.CompObjP = CompObjP;\nreturn WorkbookP;\n}\n\n/* TODO: WTF */\nfunction parse_props(cfb) {\n\t/* [MS-OSHARED] 2.3.3.2.2 Document Summary Information Property Set */\n\tvar DSI = cfb.find('!DocumentSummaryInformation');\n\tif(DSI) try { cfb.DocSummary = parse_PropertySetStream(DSI, DocSummaryPIDDSI); } catch(e) {}\n\n\t/* [MS-OSHARED] 2.3.3.2.1 Summary Information Property Set*/\n\tvar SI = cfb.find('!SummaryInformation');\n\tif(SI) try { cfb.Summary = parse_PropertySetStream(SI, SummaryPIDSI); } catch(e) {}\n}\n\n/* [MS-XLSB] 2.3 Record Enumeration */\nvar XLSBRecordEnum = {\n\t0x0000: { n:\"BrtRowHdr\", f:parse_BrtRowHdr },\n\t0x0001: { n:\"BrtCellBlank\", f:parse_BrtCellBlank },\n\t0x0002: { n:\"BrtCellRk\", f:parse_BrtCellRk },\n\t0x0003: { n:\"BrtCellError\", f:parse_BrtCellError },\n\t0x0004: { n:\"BrtCellBool\", f:parse_BrtCellBool },\n\t0x0005: { n:\"BrtCellReal\", f:parse_BrtCellReal },\n\t0x0006: { n:\"BrtCellSt\", f:parse_BrtCellSt },\n\t0x0007: { n:\"BrtCellIsst\", f:parse_BrtCellIsst },\n\t0x0008: { n:\"BrtFmlaString\", f:parse_BrtFmlaString },\n\t0x0009: { n:\"BrtFmlaNum\", f:parse_BrtFmlaNum },\n\t0x000A: { n:\"BrtFmlaBool\", f:parse_BrtFmlaBool },\n\t0x000B: { n:\"BrtFmlaError\", f:parse_BrtFmlaError },\n\t0x0010: { n:\"BrtFRTArchID$\", f:parse_BrtFRTArchID$ },\n\t0x0013: { n:\"BrtSSTItem\", f:parse_RichStr },\n\t0x0014: { n:\"BrtPCDIMissing\", f:parsenoop },\n\t0x0015: { n:\"BrtPCDINumber\", f:parsenoop },\n\t0x0016: { n:\"BrtPCDIBoolean\", f:parsenoop },\n\t0x0017: { n:\"BrtPCDIError\", f:parsenoop },\n\t0x0018: { n:\"BrtPCDIString\", f:parsenoop },\n\t0x0019: { n:\"BrtPCDIDatetime\", f:parsenoop },\n\t0x001A: { n:\"BrtPCDIIndex\", f:parsenoop },\n\t0x001B: { n:\"BrtPCDIAMissing\", f:parsenoop },\n\t0x001C: { n:\"BrtPCDIANumber\", f:parsenoop },\n\t0x001D: { n:\"BrtPCDIABoolean\", f:parsenoop },\n\t0x001E: { n:\"BrtPCDIAError\", f:parsenoop },\n\t0x001F: { n:\"BrtPCDIAString\", f:parsenoop },\n\t0x0020: { n:\"BrtPCDIADatetime\", f:parsenoop },\n\t0x0021: { n:\"BrtPCRRecord\", f:parsenoop },\n\t0x0022: { n:\"BrtPCRRecordDt\", f:parsenoop },\n\t0x0023: { n:\"BrtFRTBegin\", f:parsenoop },\n\t0x0024: { n:\"BrtFRTEnd\", f:parsenoop },\n\t0x0025: { n:\"BrtACBegin\", f:parsenoop },\n\t0x0026: { n:\"BrtACEnd\", f:parsenoop },\n\t0x0027: { n:\"BrtName\", f:parsenoop },\n\t0x0028: { n:\"BrtIndexRowBlock\", f:parsenoop },\n\t0x002A: { n:\"BrtIndexBlock\", f:parsenoop },\n\t0x002B: { n:\"BrtFont\", f:parse_BrtFont },\n\t0x002C: { n:\"BrtFmt\", f:parse_BrtFmt },\n\t0x002D: { n:\"BrtFill\", f:parsenoop },\n\t0x002E: { n:\"BrtBorder\", f:parsenoop },\n\t0x002F: { n:\"BrtXF\", f:parse_BrtXF },\n\t0x0030: { n:\"BrtStyle\", f:parsenoop },\n\t0x0031: { n:\"BrtCellMeta\", f:parsenoop },\n\t0x0032: { n:\"BrtValueMeta\", f:parsenoop },\n\t0x0033: { n:\"BrtMdb\", f:parsenoop },\n\t0x0034: { n:\"BrtBeginFmd\", f:parsenoop },\n\t0x0035: { n:\"BrtEndFmd\", f:parsenoop },\n\t0x0036: { n:\"BrtBeginMdx\", f:parsenoop },\n\t0x0037: { n:\"BrtEndMdx\", f:parsenoop },\n\t0x0038: { n:\"BrtBeginMdxTuple\", f:parsenoop },\n\t0x0039: { n:\"BrtEndMdxTuple\", f:parsenoop },\n\t0x003A: { n:\"BrtMdxMbrIstr\", f:parsenoop },\n\t0x003B: { n:\"BrtStr\", f:parsenoop },\n\t0x003C: { n:\"BrtColInfo\", f:parsenoop },\n\t0x003E: { n:\"BrtCellRString\", f:parsenoop },\n\t0x003F: { n:\"BrtCalcChainItem$\", f:parse_BrtCalcChainItem$ },\n\t0x0040: { n:\"BrtDVal\", f:parsenoop },\n\t0x0041: { n:\"BrtSxvcellNum\", f:parsenoop },\n\t0x0042: { n:\"BrtSxvcellStr\", f:parsenoop },\n\t0x0043: { n:\"BrtSxvcellBool\", f:parsenoop },\n\t0x0044: { n:\"BrtSxvcellErr\", f:parsenoop },\n\t0x0045: { n:\"BrtSxvcellDate\", f:parsenoop },\n\t0x0046: { n:\"BrtSxvcellNil\", f:parsenoop },\n\t0x0080: { n:\"BrtFileVersion\", f:parsenoop },\n\t0x0081: { n:\"BrtBeginSheet\", f:parsenoop },\n\t0x0082: { n:\"BrtEndSheet\", f:parsenoop },\n\t0x0083: { n:\"BrtBeginBook\", f:parsenoop, p:0 },\n\t0x0084: { n:\"BrtEndBook\", f:parsenoop },\n\t0x0085: { n:\"BrtBeginWsViews\", f:parsenoop },\n\t0x0086: { n:\"BrtEndWsViews\", f:parsenoop },\n\t0x0087: { n:\"BrtBeginBookViews\", f:parsenoop },\n\t0x0088: { n:\"BrtEndBookViews\", f:parsenoop },\n\t0x0089: { n:\"BrtBeginWsView\", f:parsenoop },\n\t0x008A: { n:\"BrtEndWsView\", f:parsenoop },\n\t0x008B: { n:\"BrtBeginCsViews\", f:parsenoop },\n\t0x008C: { n:\"BrtEndCsViews\", f:parsenoop },\n\t0x008D: { n:\"BrtBeginCsView\", f:parsenoop },\n\t0x008E: { n:\"BrtEndCsView\", f:parsenoop },\n\t0x008F: { n:\"BrtBeginBundleShs\", f:parsenoop },\n\t0x0090: { n:\"BrtEndBundleShs\", f:parsenoop },\n\t0x0091: { n:\"BrtBeginSheetData\", f:parsenoop },\n\t0x0092: { n:\"BrtEndSheetData\", f:parsenoop },\n\t0x0093: { n:\"BrtWsProp\", f:parse_BrtWsProp },\n\t0x0094: { n:\"BrtWsDim\", f:parse_BrtWsDim, p:16 },\n\t0x0097: { n:\"BrtPane\", f:parsenoop },\n\t0x0098: { n:\"BrtSel\", f:parsenoop },\n\t0x0099: { n:\"BrtWbProp\", f:parse_BrtWbProp },\n\t0x009A: { n:\"BrtWbFactoid\", f:parsenoop },\n\t0x009B: { n:\"BrtFileRecover\", f:parsenoop },\n\t0x009C: { n:\"BrtBundleSh\", f:parse_BrtBundleSh },\n\t0x009D: { n:\"BrtCalcProp\", f:parsenoop },\n\t0x009E: { n:\"BrtBookView\", f:parsenoop },\n\t0x009F: { n:\"BrtBeginSst\", f:parse_BrtBeginSst },\n\t0x00A0: { n:\"BrtEndSst\", f:parsenoop },\n\t0x00A1: { n:\"BrtBeginAFilter\", f:parsenoop },\n\t0x00A2: { n:\"BrtEndAFilter\", f:parsenoop },\n\t0x00A3: { n:\"BrtBeginFilterColumn\", f:parsenoop },\n\t0x00A4: { n:\"BrtEndFilterColumn\", f:parsenoop },\n\t0x00A5: { n:\"BrtBeginFilters\", f:parsenoop },\n\t0x00A6: { n:\"BrtEndFilters\", f:parsenoop },\n\t0x00A7: { n:\"BrtFilter\", f:parsenoop },\n\t0x00A8: { n:\"BrtColorFilter\", f:parsenoop },\n\t0x00A9: { n:\"BrtIconFilter\", f:parsenoop },\n\t0x00AA: { n:\"BrtTop10Filter\", f:parsenoop },\n\t0x00AB: { n:\"BrtDynamicFilter\", f:parsenoop },\n\t0x00AC: { n:\"BrtBeginCustomFilters\", f:parsenoop },\n\t0x00AD: { n:\"BrtEndCustomFilters\", f:parsenoop },\n\t0x00AE: { n:\"BrtCustomFilter\", f:parsenoop },\n\t0x00AF: { n:\"BrtAFilterDateGroupItem\", f:parsenoop },\n\t0x00B0: { n:\"BrtMergeCell\", f:parse_BrtMergeCell },\n\t0x00B1: { n:\"BrtBeginMergeCells\", f:parsenoop },\n\t0x00B2: { n:\"BrtEndMergeCells\", f:parsenoop },\n\t0x00B3: { n:\"BrtBeginPivotCacheDef\", f:parsenoop },\n\t0x00B4: { n:\"BrtEndPivotCacheDef\", f:parsenoop },\n\t0x00B5: { n:\"BrtBeginPCDFields\", f:parsenoop },\n\t0x00B6: { n:\"BrtEndPCDFields\", f:parsenoop },\n\t0x00B7: { n:\"BrtBeginPCDField\", f:parsenoop },\n\t0x00B8: { n:\"BrtEndPCDField\", f:parsenoop },\n\t0x00B9: { n:\"BrtBeginPCDSource\", f:parsenoop },\n\t0x00BA: { n:\"BrtEndPCDSource\", f:parsenoop },\n\t0x00BB: { n:\"BrtBeginPCDSRange\", f:parsenoop },\n\t0x00BC: { n:\"BrtEndPCDSRange\", f:parsenoop },\n\t0x00BD: { n:\"BrtBeginPCDFAtbl\", f:parsenoop },\n\t0x00BE: { n:\"BrtEndPCDFAtbl\", f:parsenoop },\n\t0x00BF: { n:\"BrtBeginPCDIRun\", f:parsenoop },\n\t0x00C0: { n:\"BrtEndPCDIRun\", f:parsenoop },\n\t0x00C1: { n:\"BrtBeginPivotCacheRecords\", f:parsenoop },\n\t0x00C2: { n:\"BrtEndPivotCacheRecords\", f:parsenoop },\n\t0x00C3: { n:\"BrtBeginPCDHierarchies\", f:parsenoop },\n\t0x00C4: { n:\"BrtEndPCDHierarchies\", f:parsenoop },\n\t0x00C5: { n:\"BrtBeginPCDHierarchy\", f:parsenoop },\n\t0x00C6: { n:\"BrtEndPCDHierarchy\", f:parsenoop },\n\t0x00C7: { n:\"BrtBeginPCDHFieldsUsage\", f:parsenoop },\n\t0x00C8: { n:\"BrtEndPCDHFieldsUsage\", f:parsenoop },\n\t0x00C9: { n:\"BrtBeginExtConnection\", f:parsenoop },\n\t0x00CA: { n:\"BrtEndExtConnection\", f:parsenoop },\n\t0x00CB: { n:\"BrtBeginECDbProps\", f:parsenoop },\n\t0x00CC: { n:\"BrtEndECDbProps\", f:parsenoop },\n\t0x00CD: { n:\"BrtBeginECOlapProps\", f:parsenoop },\n\t0x00CE: { n:\"BrtEndECOlapProps\", f:parsenoop },\n\t0x00CF: { n:\"BrtBeginPCDSConsol\", f:parsenoop },\n\t0x00D0: { n:\"BrtEndPCDSConsol\", f:parsenoop },\n\t0x00D1: { n:\"BrtBeginPCDSCPages\", f:parsenoop },\n\t0x00D2: { n:\"BrtEndPCDSCPages\", f:parsenoop },\n\t0x00D3: { n:\"BrtBeginPCDSCPage\", f:parsenoop },\n\t0x00D4: { n:\"BrtEndPCDSCPage\", f:parsenoop },\n\t0x00D5: { n:\"BrtBeginPCDSCPItem\", f:parsenoop },\n\t0x00D6: { n:\"BrtEndPCDSCPItem\", f:parsenoop },\n\t0x00D7: { n:\"BrtBeginPCDSCSets\", f:parsenoop },\n\t0x00D8: { n:\"BrtEndPCDSCSets\", f:parsenoop },\n\t0x00D9: { n:\"BrtBeginPCDSCSet\", f:parsenoop },\n\t0x00DA: { n:\"BrtEndPCDSCSet\", f:parsenoop },\n\t0x00DB: { n:\"BrtBeginPCDFGroup\", f:parsenoop },\n\t0x00DC: { n:\"BrtEndPCDFGroup\", f:parsenoop },\n\t0x00DD: { n:\"BrtBeginPCDFGItems\", f:parsenoop },\n\t0x00DE: { n:\"BrtEndPCDFGItems\", f:parsenoop },\n\t0x00DF: { n:\"BrtBeginPCDFGRange\", f:parsenoop },\n\t0x00E0: { n:\"BrtEndPCDFGRange\", f:parsenoop },\n\t0x00E1: { n:\"BrtBeginPCDFGDiscrete\", f:parsenoop },\n\t0x00E2: { n:\"BrtEndPCDFGDiscrete\", f:parsenoop },\n\t0x00E3: { n:\"BrtBeginPCDSDTupleCache\", f:parsenoop },\n\t0x00E4: { n:\"BrtEndPCDSDTupleCache\", f:parsenoop },\n\t0x00E5: { n:\"BrtBeginPCDSDTCEntries\", f:parsenoop },\n\t0x00E6: { n:\"BrtEndPCDSDTCEntries\", f:parsenoop },\n\t0x00E7: { n:\"BrtBeginPCDSDTCEMembers\", f:parsenoop },\n\t0x00E8: { n:\"BrtEndPCDSDTCEMembers\", f:parsenoop },\n\t0x00E9: { n:\"BrtBeginPCDSDTCEMember\", f:parsenoop },\n\t0x00EA: { n:\"BrtEndPCDSDTCEMember\", f:parsenoop },\n\t0x00EB: { n:\"BrtBeginPCDSDTCQueries\", f:parsenoop },\n\t0x00EC: { n:\"BrtEndPCDSDTCQueries\", f:parsenoop },\n\t0x00ED: { n:\"BrtBeginPCDSDTCQuery\", f:parsenoop },\n\t0x00EE: { n:\"BrtEndPCDSDTCQuery\", f:parsenoop },\n\t0x00EF: { n:\"BrtBeginPCDSDTCSets\", f:parsenoop },\n\t0x00F0: { n:\"BrtEndPCDSDTCSets\", f:parsenoop },\n\t0x00F1: { n:\"BrtBeginPCDSDTCSet\", f:parsenoop },\n\t0x00F2: { n:\"BrtEndPCDSDTCSet\", f:parsenoop },\n\t0x00F3: { n:\"BrtBeginPCDCalcItems\", f:parsenoop },\n\t0x00F4: { n:\"BrtEndPCDCalcItems\", f:parsenoop },\n\t0x00F5: { n:\"BrtBeginPCDCalcItem\", f:parsenoop },\n\t0x00F6: { n:\"BrtEndPCDCalcItem\", f:parsenoop },\n\t0x00F7: { n:\"BrtBeginPRule\", f:parsenoop },\n\t0x00F8: { n:\"BrtEndPRule\", f:parsenoop },\n\t0x00F9: { n:\"BrtBeginPRFilters\", f:parsenoop },\n\t0x00FA: { n:\"BrtEndPRFilters\", f:parsenoop },\n\t0x00FB: { n:\"BrtBeginPRFilter\", f:parsenoop },\n\t0x00FC: { n:\"BrtEndPRFilter\", f:parsenoop },\n\t0x00FD: { n:\"BrtBeginPNames\", f:parsenoop },\n\t0x00FE: { n:\"BrtEndPNames\", f:parsenoop },\n\t0x00FF: { n:\"BrtBeginPName\", f:parsenoop },\n\t0x0100: { n:\"BrtEndPName\", f:parsenoop },\n\t0x0101: { n:\"BrtBeginPNPairs\", f:parsenoop },\n\t0x0102: { n:\"BrtEndPNPairs\", f:parsenoop },\n\t0x0103: { n:\"BrtBeginPNPair\", f:parsenoop },\n\t0x0104: { n:\"BrtEndPNPair\", f:parsenoop },\n\t0x0105: { n:\"BrtBeginECWebProps\", f:parsenoop },\n\t0x0106: { n:\"BrtEndECWebProps\", f:parsenoop },\n\t0x0107: { n:\"BrtBeginEcWpTables\", f:parsenoop },\n\t0x0108: { n:\"BrtEndECWPTables\", f:parsenoop },\n\t0x0109: { n:\"BrtBeginECParams\", f:parsenoop },\n\t0x010A: { n:\"BrtEndECParams\", f:parsenoop },\n\t0x010B: { n:\"BrtBeginECParam\", f:parsenoop },\n\t0x010C: { n:\"BrtEndECParam\", f:parsenoop },\n\t0x010D: { n:\"BrtBeginPCDKPIs\", f:parsenoop },\n\t0x010E: { n:\"BrtEndPCDKPIs\", f:parsenoop },\n\t0x010F: { n:\"BrtBeginPCDKPI\", f:parsenoop },\n\t0x0110: { n:\"BrtEndPCDKPI\", f:parsenoop },\n\t0x0111: { n:\"BrtBeginDims\", f:parsenoop },\n\t0x0112: { n:\"BrtEndDims\", f:parsenoop },\n\t0x0113: { n:\"BrtBeginDim\", f:parsenoop },\n\t0x0114: { n:\"BrtEndDim\", f:parsenoop },\n\t0x0115: { n:\"BrtIndexPartEnd\", f:parsenoop },\n\t0x0116: { n:\"BrtBeginStyleSheet\", f:parsenoop },\n\t0x0117: { n:\"BrtEndStyleSheet\", f:parsenoop },\n\t0x0118: { n:\"BrtBeginSXView\", f:parsenoop },\n\t0x0119: { n:\"BrtEndSXVI\", f:parsenoop },\n\t0x011A: { n:\"BrtBeginSXVI\", f:parsenoop },\n\t0x011B: { n:\"BrtBeginSXVIs\", f:parsenoop },\n\t0x011C: { n:\"BrtEndSXVIs\", f:parsenoop },\n\t0x011D: { n:\"BrtBeginSXVD\", f:parsenoop },\n\t0x011E: { n:\"BrtEndSXVD\", f:parsenoop },\n\t0x011F: { n:\"BrtBeginSXVDs\", f:parsenoop },\n\t0x0120: { n:\"BrtEndSXVDs\", f:parsenoop },\n\t0x0121: { n:\"BrtBeginSXPI\", f:parsenoop },\n\t0x0122: { n:\"BrtEndSXPI\", f:parsenoop },\n\t0x0123: { n:\"BrtBeginSXPIs\", f:parsenoop },\n\t0x0124: { n:\"BrtEndSXPIs\", f:parsenoop },\n\t0x0125: { n:\"BrtBeginSXDI\", f:parsenoop },\n\t0x0126: { n:\"BrtEndSXDI\", f:parsenoop },\n\t0x0127: { n:\"BrtBeginSXDIs\", f:parsenoop },\n\t0x0128: { n:\"BrtEndSXDIs\", f:parsenoop },\n\t0x0129: { n:\"BrtBeginSXLI\", f:parsenoop },\n\t0x012A: { n:\"BrtEndSXLI\", f:parsenoop },\n\t0x012B: { n:\"BrtBeginSXLIRws\", f:parsenoop },\n\t0x012C: { n:\"BrtEndSXLIRws\", f:parsenoop },\n\t0x012D: { n:\"BrtBeginSXLICols\", f:parsenoop },\n\t0x012E: { n:\"BrtEndSXLICols\", f:parsenoop },\n\t0x012F: { n:\"BrtBeginSXFormat\", f:parsenoop },\n\t0x0130: { n:\"BrtEndSXFormat\", f:parsenoop },\n\t0x0131: { n:\"BrtBeginSXFormats\", f:parsenoop },\n\t0x0132: { n:\"BrtEndSxFormats\", f:parsenoop },\n\t0x0133: { n:\"BrtBeginSxSelect\", f:parsenoop },\n\t0x0134: { n:\"BrtEndSxSelect\", f:parsenoop },\n\t0x0135: { n:\"BrtBeginISXVDRws\", f:parsenoop },\n\t0x0136: { n:\"BrtEndISXVDRws\", f:parsenoop },\n\t0x0137: { n:\"BrtBeginISXVDCols\", f:parsenoop },\n\t0x0138: { n:\"BrtEndISXVDCols\", f:parsenoop },\n\t0x0139: { n:\"BrtEndSXLocation\", f:parsenoop },\n\t0x013A: { n:\"BrtBeginSXLocation\", f:parsenoop },\n\t0x013B: { n:\"BrtEndSXView\", f:parsenoop },\n\t0x013C: { n:\"BrtBeginSXTHs\", f:parsenoop },\n\t0x013D: { n:\"BrtEndSXTHs\", f:parsenoop },\n\t0x013E: { n:\"BrtBeginSXTH\", f:parsenoop },\n\t0x013F: { n:\"BrtEndSXTH\", f:parsenoop },\n\t0x0140: { n:\"BrtBeginISXTHRws\", f:parsenoop },\n\t0x0141: { n:\"BrtEndISXTHRws\", f:parsenoop },\n\t0x0142: { n:\"BrtBeginISXTHCols\", f:parsenoop },\n\t0x0143: { n:\"BrtEndISXTHCols\", f:parsenoop },\n\t0x0144: { n:\"BrtBeginSXTDMPS\", f:parsenoop },\n\t0x0145: { n:\"BrtEndSXTDMPs\", f:parsenoop },\n\t0x0146: { n:\"BrtBeginSXTDMP\", f:parsenoop },\n\t0x0147: { n:\"BrtEndSXTDMP\", f:parsenoop },\n\t0x0148: { n:\"BrtBeginSXTHItems\", f:parsenoop },\n\t0x0149: { n:\"BrtEndSXTHItems\", f:parsenoop },\n\t0x014A: { n:\"BrtBeginSXTHItem\", f:parsenoop },\n\t0x014B: { n:\"BrtEndSXTHItem\", f:parsenoop },\n\t0x014C: { n:\"BrtBeginMetadata\", f:parsenoop },\n\t0x014D: { n:\"BrtEndMetadata\", f:parsenoop },\n\t0x014E: { n:\"BrtBeginEsmdtinfo\", f:parsenoop },\n\t0x014F: { n:\"BrtMdtinfo\", f:parsenoop },\n\t0x0150: { n:\"BrtEndEsmdtinfo\", f:parsenoop },\n\t0x0151: { n:\"BrtBeginEsmdb\", f:parsenoop },\n\t0x0152: { n:\"BrtEndEsmdb\", f:parsenoop },\n\t0x0153: { n:\"BrtBeginEsfmd\", f:parsenoop },\n\t0x0154: { n:\"BrtEndEsfmd\", f:parsenoop },\n\t0x0155: { n:\"BrtBeginSingleCells\", f:parsenoop },\n\t0x0156: { n:\"BrtEndSingleCells\", f:parsenoop },\n\t0x0157: { n:\"BrtBeginList\", f:parsenoop },\n\t0x0158: { n:\"BrtEndList\", f:parsenoop },\n\t0x0159: { n:\"BrtBeginListCols\", f:parsenoop },\n\t0x015A: { n:\"BrtEndListCols\", f:parsenoop },\n\t0x015B: { n:\"BrtBeginListCol\", f:parsenoop },\n\t0x015C: { n:\"BrtEndListCol\", f:parsenoop },\n\t0x015D: { n:\"BrtBeginListXmlCPr\", f:parsenoop },\n\t0x015E: { n:\"BrtEndListXmlCPr\", f:parsenoop },\n\t0x015F: { n:\"BrtListCCFmla\", f:parsenoop },\n\t0x0160: { n:\"BrtListTrFmla\", f:parsenoop },\n\t0x0161: { n:\"BrtBeginExternals\", f:parsenoop },\n\t0x0162: { n:\"BrtEndExternals\", f:parsenoop },\n\t0x0163: { n:\"BrtSupBookSrc\", f:parsenoop },\n\t0x0165: { n:\"BrtSupSelf\", f:parsenoop },\n\t0x0166: { n:\"BrtSupSame\", f:parsenoop },\n\t0x0167: { n:\"BrtSupTabs\", f:parsenoop },\n\t0x0168: { n:\"BrtBeginSupBook\", f:parsenoop },\n\t0x0169: { n:\"BrtPlaceholderName\", f:parsenoop },\n\t0x016A: { n:\"BrtExternSheet\", f:parsenoop },\n\t0x016B: { n:\"BrtExternTableStart\", f:parsenoop },\n\t0x016C: { n:\"BrtExternTableEnd\", f:parsenoop },\n\t0x016E: { n:\"BrtExternRowHdr\", f:parsenoop },\n\t0x016F: { n:\"BrtExternCellBlank\", f:parsenoop },\n\t0x0170: { n:\"BrtExternCellReal\", f:parsenoop },\n\t0x0171: { n:\"BrtExternCellBool\", f:parsenoop },\n\t0x0172: { n:\"BrtExternCellError\", f:parsenoop },\n\t0x0173: { n:\"BrtExternCellString\", f:parsenoop },\n\t0x0174: { n:\"BrtBeginEsmdx\", f:parsenoop },\n\t0x0175: { n:\"BrtEndEsmdx\", f:parsenoop },\n\t0x0176: { n:\"BrtBeginMdxSet\", f:parsenoop },\n\t0x0177: { n:\"BrtEndMdxSet\", f:parsenoop },\n\t0x0178: { n:\"BrtBeginMdxMbrProp\", f:parsenoop },\n\t0x0179: { n:\"BrtEndMdxMbrProp\", f:parsenoop },\n\t0x017A: { n:\"BrtBeginMdxKPI\", f:parsenoop },\n\t0x017B: { n:\"BrtEndMdxKPI\", f:parsenoop },\n\t0x017C: { n:\"BrtBeginEsstr\", f:parsenoop },\n\t0x017D: { n:\"BrtEndEsstr\", f:parsenoop },\n\t0x017E: { n:\"BrtBeginPRFItem\", f:parsenoop },\n\t0x017F: { n:\"BrtEndPRFItem\", f:parsenoop },\n\t0x0180: { n:\"BrtBeginPivotCacheIDs\", f:parsenoop },\n\t0x0181: { n:\"BrtEndPivotCacheIDs\", f:parsenoop },\n\t0x0182: { n:\"BrtBeginPivotCacheID\", f:parsenoop },\n\t0x0183: { n:\"BrtEndPivotCacheID\", f:parsenoop },\n\t0x0184: { n:\"BrtBeginISXVIs\", f:parsenoop },\n\t0x0185: { n:\"BrtEndISXVIs\", f:parsenoop },\n\t0x0186: { n:\"BrtBeginColInfos\", f:parsenoop },\n\t0x0187: { n:\"BrtEndColInfos\", f:parsenoop },\n\t0x0188: { n:\"BrtBeginRwBrk\", f:parsenoop },\n\t0x0189: { n:\"BrtEndRwBrk\", f:parsenoop },\n\t0x018A: { n:\"BrtBeginColBrk\", f:parsenoop },\n\t0x018B: { n:\"BrtEndColBrk\", f:parsenoop },\n\t0x018C: { n:\"BrtBrk\", f:parsenoop },\n\t0x018D: { n:\"BrtUserBookView\", f:parsenoop },\n\t0x018E: { n:\"BrtInfo\", f:parsenoop },\n\t0x018F: { n:\"BrtCUsr\", f:parsenoop },\n\t0x0190: { n:\"BrtUsr\", f:parsenoop },\n\t0x0191: { n:\"BrtBeginUsers\", f:parsenoop },\n\t0x0193: { n:\"BrtEOF\", f:parsenoop },\n\t0x0194: { n:\"BrtUCR\", f:parsenoop },\n\t0x0195: { n:\"BrtRRInsDel\", f:parsenoop },\n\t0x0196: { n:\"BrtRREndInsDel\", f:parsenoop },\n\t0x0197: { n:\"BrtRRMove\", f:parsenoop },\n\t0x0198: { n:\"BrtRREndMove\", f:parsenoop },\n\t0x0199: { n:\"BrtRRChgCell\", f:parsenoop },\n\t0x019A: { n:\"BrtRREndChgCell\", f:parsenoop },\n\t0x019B: { n:\"BrtRRHeader\", f:parsenoop },\n\t0x019C: { n:\"BrtRRUserView\", f:parsenoop },\n\t0x019D: { n:\"BrtRRRenSheet\", f:parsenoop },\n\t0x019E: { n:\"BrtRRInsertSh\", f:parsenoop },\n\t0x019F: { n:\"BrtRRDefName\", f:parsenoop },\n\t0x01A0: { n:\"BrtRRNote\", f:parsenoop },\n\t0x01A1: { n:\"BrtRRConflict\", f:parsenoop },\n\t0x01A2: { n:\"BrtRRTQSIF\", f:parsenoop },\n\t0x01A3: { n:\"BrtRRFormat\", f:parsenoop },\n\t0x01A4: { n:\"BrtRREndFormat\", f:parsenoop },\n\t0x01A5: { n:\"BrtRRAutoFmt\", f:parsenoop },\n\t0x01A6: { n:\"BrtBeginUserShViews\", f:parsenoop },\n\t0x01A7: { n:\"BrtBeginUserShView\", f:parsenoop },\n\t0x01A8: { n:\"BrtEndUserShView\", f:parsenoop },\n\t0x01A9: { n:\"BrtEndUserShViews\", f:parsenoop },\n\t0x01AA: { n:\"BrtArrFmla\", f:parsenoop },\n\t0x01AB: { n:\"BrtShrFmla\", f:parsenoop },\n\t0x01AC: { n:\"BrtTable\", f:parsenoop },\n\t0x01AD: { n:\"BrtBeginExtConnections\", f:parsenoop },\n\t0x01AE: { n:\"BrtEndExtConnections\", f:parsenoop },\n\t0x01AF: { n:\"BrtBeginPCDCalcMems\", f:parsenoop },\n\t0x01B0: { n:\"BrtEndPCDCalcMems\", f:parsenoop },\n\t0x01B1: { n:\"BrtBeginPCDCalcMem\", f:parsenoop },\n\t0x01B2: { n:\"BrtEndPCDCalcMem\", f:parsenoop },\n\t0x01B3: { n:\"BrtBeginPCDHGLevels\", f:parsenoop },\n\t0x01B4: { n:\"BrtEndPCDHGLevels\", f:parsenoop },\n\t0x01B5: { n:\"BrtBeginPCDHGLevel\", f:parsenoop },\n\t0x01B6: { n:\"BrtEndPCDHGLevel\", f:parsenoop },\n\t0x01B7: { n:\"BrtBeginPCDHGLGroups\", f:parsenoop },\n\t0x01B8: { n:\"BrtEndPCDHGLGroups\", f:parsenoop },\n\t0x01B9: { n:\"BrtBeginPCDHGLGroup\", f:parsenoop },\n\t0x01BA: { n:\"BrtEndPCDHGLGroup\", f:parsenoop },\n\t0x01BB: { n:\"BrtBeginPCDHGLGMembers\", f:parsenoop },\n\t0x01BC: { n:\"BrtEndPCDHGLGMembers\", f:parsenoop },\n\t0x01BD: { n:\"BrtBeginPCDHGLGMember\", f:parsenoop },\n\t0x01BE: { n:\"BrtEndPCDHGLGMember\", f:parsenoop },\n\t0x01BF: { n:\"BrtBeginQSI\", f:parsenoop },\n\t0x01C0: { n:\"BrtEndQSI\", f:parsenoop },\n\t0x01C1: { n:\"BrtBeginQSIR\", f:parsenoop },\n\t0x01C2: { n:\"BrtEndQSIR\", f:parsenoop },\n\t0x01C3: { n:\"BrtBeginDeletedNames\", f:parsenoop },\n\t0x01C4: { n:\"BrtEndDeletedNames\", f:parsenoop },\n\t0x01C5: { n:\"BrtBeginDeletedName\", f:parsenoop },\n\t0x01C6: { n:\"BrtEndDeletedName\", f:parsenoop },\n\t0x01C7: { n:\"BrtBeginQSIFs\", f:parsenoop },\n\t0x01C8: { n:\"BrtEndQSIFs\", f:parsenoop },\n\t0x01C9: { n:\"BrtBeginQSIF\", f:parsenoop },\n\t0x01CA: { n:\"BrtEndQSIF\", f:parsenoop },\n\t0x01CB: { n:\"BrtBeginAutoSortScope\", f:parsenoop },\n\t0x01CC: { n:\"BrtEndAutoSortScope\", f:parsenoop },\n\t0x01CD: { n:\"BrtBeginConditionalFormatting\", f:parsenoop },\n\t0x01CE: { n:\"BrtEndConditionalFormatting\", f:parsenoop },\n\t0x01CF: { n:\"BrtBeginCFRule\", f:parsenoop },\n\t0x01D0: { n:\"BrtEndCFRule\", f:parsenoop },\n\t0x01D1: { n:\"BrtBeginIconSet\", f:parsenoop },\n\t0x01D2: { n:\"BrtEndIconSet\", f:parsenoop },\n\t0x01D3: { n:\"BrtBeginDatabar\", f:parsenoop },\n\t0x01D4: { n:\"BrtEndDatabar\", f:parsenoop },\n\t0x01D5: { n:\"BrtBeginColorScale\", f:parsenoop },\n\t0x01D6: { n:\"BrtEndColorScale\", f:parsenoop },\n\t0x01D7: { n:\"BrtCFVO\", f:parsenoop },\n\t0x01D8: { n:\"BrtExternValueMeta\", f:parsenoop },\n\t0x01D9: { n:\"BrtBeginColorPalette\", f:parsenoop },\n\t0x01DA: { n:\"BrtEndColorPalette\", f:parsenoop },\n\t0x01DB: { n:\"BrtIndexedColor\", f:parsenoop },\n\t0x01DC: { n:\"BrtMargins\", f:parsenoop },\n\t0x01DD: { n:\"BrtPrintOptions\", f:parsenoop },\n\t0x01DE: { n:\"BrtPageSetup\", f:parsenoop },\n\t0x01DF: { n:\"BrtBeginHeaderFooter\", f:parsenoop },\n\t0x01E0: { n:\"BrtEndHeaderFooter\", f:parsenoop },\n\t0x01E1: { n:\"BrtBeginSXCrtFormat\", f:parsenoop },\n\t0x01E2: { n:\"BrtEndSXCrtFormat\", f:parsenoop },\n\t0x01E3: { n:\"BrtBeginSXCrtFormats\", f:parsenoop },\n\t0x01E4: { n:\"BrtEndSXCrtFormats\", f:parsenoop },\n\t0x01E5: { n:\"BrtWsFmtInfo\", f:parsenoop },\n\t0x01E6: { n:\"BrtBeginMgs\", f:parsenoop },\n\t0x01E7: { n:\"BrtEndMGs\", f:parsenoop },\n\t0x01E8: { n:\"BrtBeginMGMaps\", f:parsenoop },\n\t0x01E9: { n:\"BrtEndMGMaps\", f:parsenoop },\n\t0x01EA: { n:\"BrtBeginMG\", f:parsenoop },\n\t0x01EB: { n:\"BrtEndMG\", f:parsenoop },\n\t0x01EC: { n:\"BrtBeginMap\", f:parsenoop },\n\t0x01ED: { n:\"BrtEndMap\", f:parsenoop },\n\t0x01EE: { n:\"BrtHLink\", f:parse_BrtHLink },\n\t0x01EF: { n:\"BrtBeginDCon\", f:parsenoop },\n\t0x01F0: { n:\"BrtEndDCon\", f:parsenoop },\n\t0x01F1: { n:\"BrtBeginDRefs\", f:parsenoop },\n\t0x01F2: { n:\"BrtEndDRefs\", f:parsenoop },\n\t0x01F3: { n:\"BrtDRef\", f:parsenoop },\n\t0x01F4: { n:\"BrtBeginScenMan\", f:parsenoop },\n\t0x01F5: { n:\"BrtEndScenMan\", f:parsenoop },\n\t0x01F6: { n:\"BrtBeginSct\", f:parsenoop },\n\t0x01F7: { n:\"BrtEndSct\", f:parsenoop },\n\t0x01F8: { n:\"BrtSlc\", f:parsenoop },\n\t0x01F9: { n:\"BrtBeginDXFs\", f:parsenoop },\n\t0x01FA: { n:\"BrtEndDXFs\", f:parsenoop },\n\t0x01FB: { n:\"BrtDXF\", f:parsenoop },\n\t0x01FC: { n:\"BrtBeginTableStyles\", f:parsenoop },\n\t0x01FD: { n:\"BrtEndTableStyles\", f:parsenoop },\n\t0x01FE: { n:\"BrtBeginTableStyle\", f:parsenoop },\n\t0x01FF: { n:\"BrtEndTableStyle\", f:parsenoop },\n\t0x0200: { n:\"BrtTableStyleElement\", f:parsenoop },\n\t0x0201: { n:\"BrtTableStyleClient\", f:parsenoop },\n\t0x0202: { n:\"BrtBeginVolDeps\", f:parsenoop },\n\t0x0203: { n:\"BrtEndVolDeps\", f:parsenoop },\n\t0x0204: { n:\"BrtBeginVolType\", f:parsenoop },\n\t0x0205: { n:\"BrtEndVolType\", f:parsenoop },\n\t0x0206: { n:\"BrtBeginVolMain\", f:parsenoop },\n\t0x0207: { n:\"BrtEndVolMain\", f:parsenoop },\n\t0x0208: { n:\"BrtBeginVolTopic\", f:parsenoop },\n\t0x0209: { n:\"BrtEndVolTopic\", f:parsenoop },\n\t0x020A: { n:\"BrtVolSubtopic\", f:parsenoop },\n\t0x020B: { n:\"BrtVolRef\", f:parsenoop },\n\t0x020C: { n:\"BrtVolNum\", f:parsenoop },\n\t0x020D: { n:\"BrtVolErr\", f:parsenoop },\n\t0x020E: { n:\"BrtVolStr\", f:parsenoop },\n\t0x020F: { n:\"BrtVolBool\", f:parsenoop },\n\t0x0210: { n:\"BrtBeginCalcChain$\", f:parsenoop },\n\t0x0211: { n:\"BrtEndCalcChain$\", f:parsenoop },\n\t0x0212: { n:\"BrtBeginSortState\", f:parsenoop },\n\t0x0213: { n:\"BrtEndSortState\", f:parsenoop },\n\t0x0214: { n:\"BrtBeginSortCond\", f:parsenoop },\n\t0x0215: { n:\"BrtEndSortCond\", f:parsenoop },\n\t0x0216: { n:\"BrtBookProtection\", f:parsenoop },\n\t0x0217: { n:\"BrtSheetProtection\", f:parsenoop },\n\t0x0218: { n:\"BrtRangeProtection\", f:parsenoop },\n\t0x0219: { n:\"BrtPhoneticInfo\", f:parsenoop },\n\t0x021A: { n:\"BrtBeginECTxtWiz\", f:parsenoop },\n\t0x021B: { n:\"BrtEndECTxtWiz\", f:parsenoop },\n\t0x021C: { n:\"BrtBeginECTWFldInfoLst\", f:parsenoop },\n\t0x021D: { n:\"BrtEndECTWFldInfoLst\", f:parsenoop },\n\t0x021E: { n:\"BrtBeginECTwFldInfo\", f:parsenoop },\n\t0x0224: { n:\"BrtFileSharing\", f:parsenoop },\n\t0x0225: { n:\"BrtOleSize\", f:parsenoop },\n\t0x0226: { n:\"BrtDrawing\", f:parsenoop },\n\t0x0227: { n:\"BrtLegacyDrawing\", f:parsenoop },\n\t0x0228: { n:\"BrtLegacyDrawingHF\", f:parsenoop },\n\t0x0229: { n:\"BrtWebOpt\", f:parsenoop },\n\t0x022A: { n:\"BrtBeginWebPubItems\", f:parsenoop },\n\t0x022B: { n:\"BrtEndWebPubItems\", f:parsenoop },\n\t0x022C: { n:\"BrtBeginWebPubItem\", f:parsenoop },\n\t0x022D: { n:\"BrtEndWebPubItem\", f:parsenoop },\n\t0x022E: { n:\"BrtBeginSXCondFmt\", f:parsenoop },\n\t0x022F: { n:\"BrtEndSXCondFmt\", f:parsenoop },\n\t0x0230: { n:\"BrtBeginSXCondFmts\", f:parsenoop },\n\t0x0231: { n:\"BrtEndSXCondFmts\", f:parsenoop },\n\t0x0232: { n:\"BrtBkHim\", f:parsenoop },\n\t0x0234: { n:\"BrtColor\", f:parsenoop },\n\t0x0235: { n:\"BrtBeginIndexedColors\", f:parsenoop },\n\t0x0236: { n:\"BrtEndIndexedColors\", f:parsenoop },\n\t0x0239: { n:\"BrtBeginMRUColors\", f:parsenoop },\n\t0x023A: { n:\"BrtEndMRUColors\", f:parsenoop },\n\t0x023C: { n:\"BrtMRUColor\", f:parsenoop },\n\t0x023D: { n:\"BrtBeginDVals\", f:parsenoop },\n\t0x023E: { n:\"BrtEndDVals\", f:parsenoop },\n\t0x0241: { n:\"BrtSupNameStart\", f:parsenoop },\n\t0x0242: { n:\"BrtSupNameValueStart\", f:parsenoop },\n\t0x0243: { n:\"BrtSupNameValueEnd\", f:parsenoop },\n\t0x0244: { n:\"BrtSupNameNum\", f:parsenoop },\n\t0x0245: { n:\"BrtSupNameErr\", f:parsenoop },\n\t0x0246: { n:\"BrtSupNameSt\", f:parsenoop },\n\t0x0247: { n:\"BrtSupNameNil\", f:parsenoop },\n\t0x0248: { n:\"BrtSupNameBool\", f:parsenoop },\n\t0x0249: { n:\"BrtSupNameFmla\", f:parsenoop },\n\t0x024A: { n:\"BrtSupNameBits\", f:parsenoop },\n\t0x024B: { n:\"BrtSupNameEnd\", f:parsenoop },\n\t0x024C: { n:\"BrtEndSupBook\", f:parsenoop },\n\t0x024D: { n:\"BrtCellSmartTagProperty\", f:parsenoop },\n\t0x024E: { n:\"BrtBeginCellSmartTag\", f:parsenoop },\n\t0x024F: { n:\"BrtEndCellSmartTag\", f:parsenoop },\n\t0x0250: { n:\"BrtBeginCellSmartTags\", f:parsenoop },\n\t0x0251: { n:\"BrtEndCellSmartTags\", f:parsenoop },\n\t0x0252: { n:\"BrtBeginSmartTags\", f:parsenoop },\n\t0x0253: { n:\"BrtEndSmartTags\", f:parsenoop },\n\t0x0254: { n:\"BrtSmartTagType\", f:parsenoop },\n\t0x0255: { n:\"BrtBeginSmartTagTypes\", f:parsenoop },\n\t0x0256: { n:\"BrtEndSmartTagTypes\", f:parsenoop },\n\t0x0257: { n:\"BrtBeginSXFilters\", f:parsenoop },\n\t0x0258: { n:\"BrtEndSXFilters\", f:parsenoop },\n\t0x0259: { n:\"BrtBeginSXFILTER\", f:parsenoop },\n\t0x025A: { n:\"BrtEndSXFilter\", f:parsenoop },\n\t0x025B: { n:\"BrtBeginFills\", f:parsenoop },\n\t0x025C: { n:\"BrtEndFills\", f:parsenoop },\n\t0x025D: { n:\"BrtBeginCellWatches\", f:parsenoop },\n\t0x025E: { n:\"BrtEndCellWatches\", f:parsenoop },\n\t0x025F: { n:\"BrtCellWatch\", f:parsenoop },\n\t0x0260: { n:\"BrtBeginCRErrs\", f:parsenoop },\n\t0x0261: { n:\"BrtEndCRErrs\", f:parsenoop },\n\t0x0262: { n:\"BrtCrashRecErr\", f:parsenoop },\n\t0x0263: { n:\"BrtBeginFonts\", f:parsenoop },\n\t0x0264: { n:\"BrtEndFonts\", f:parsenoop },\n\t0x0265: { n:\"BrtBeginBorders\", f:parsenoop },\n\t0x0266: { n:\"BrtEndBorders\", f:parsenoop },\n\t0x0267: { n:\"BrtBeginFmts\", f:parsenoop },\n\t0x0268: { n:\"BrtEndFmts\", f:parsenoop },\n\t0x0269: { n:\"BrtBeginCellXFs\", f:parsenoop },\n\t0x026A: { n:\"BrtEndCellXFs\", f:parsenoop },\n\t0x026B: { n:\"BrtBeginStyles\", f:parsenoop },\n\t0x026C: { n:\"BrtEndStyles\", f:parsenoop },\n\t0x0271: { n:\"BrtBigName\", f:parsenoop },\n\t0x0272: { n:\"BrtBeginCellStyleXFs\", f:parsenoop },\n\t0x0273: { n:\"BrtEndCellStyleXFs\", f:parsenoop },\n\t0x0274: { n:\"BrtBeginComments\", f:parsenoop },\n\t0x0275: { n:\"BrtEndComments\", f:parsenoop },\n\t0x0276: { n:\"BrtBeginCommentAuthors\", f:parsenoop },\n\t0x0277: { n:\"BrtEndCommentAuthors\", f:parsenoop },\n\t0x0278: { n:\"BrtCommentAuthor\", f:parse_BrtCommentAuthor },\n\t0x0279: { n:\"BrtBeginCommentList\", f:parsenoop },\n\t0x027A: { n:\"BrtEndCommentList\", f:parsenoop },\n\t0x027B: { n:\"BrtBeginComment\", f:parse_BrtBeginComment},\n\t0x027C: { n:\"BrtEndComment\", f:parsenoop },\n\t0x027D: { n:\"BrtCommentText\", f:parse_BrtCommentText },\n\t0x027E: { n:\"BrtBeginOleObjects\", f:parsenoop },\n\t0x027F: { n:\"BrtOleObject\", f:parsenoop },\n\t0x0280: { n:\"BrtEndOleObjects\", f:parsenoop },\n\t0x0281: { n:\"BrtBeginSxrules\", f:parsenoop },\n\t0x0282: { n:\"BrtEndSxRules\", f:parsenoop },\n\t0x0283: { n:\"BrtBeginActiveXControls\", f:parsenoop },\n\t0x0284: { n:\"BrtActiveX\", f:parsenoop },\n\t0x0285: { n:\"BrtEndActiveXControls\", f:parsenoop },\n\t0x0286: { n:\"BrtBeginPCDSDTCEMembersSortBy\", f:parsenoop },\n\t0x0288: { n:\"BrtBeginCellIgnoreECs\", f:parsenoop },\n\t0x0289: { n:\"BrtCellIgnoreEC\", f:parsenoop },\n\t0x028A: { n:\"BrtEndCellIgnoreECs\", f:parsenoop },\n\t0x028B: { n:\"BrtCsProp\", f:parsenoop },\n\t0x028C: { n:\"BrtCsPageSetup\", f:parsenoop },\n\t0x028D: { n:\"BrtBeginUserCsViews\", f:parsenoop },\n\t0x028E: { n:\"BrtEndUserCsViews\", f:parsenoop },\n\t0x028F: { n:\"BrtBeginUserCsView\", f:parsenoop },\n\t0x0290: { n:\"BrtEndUserCsView\", f:parsenoop },\n\t0x0291: { n:\"BrtBeginPcdSFCIEntries\", f:parsenoop },\n\t0x0292: { n:\"BrtEndPCDSFCIEntries\", f:parsenoop },\n\t0x0293: { n:\"BrtPCDSFCIEntry\", f:parsenoop },\n\t0x0294: { n:\"BrtBeginListParts\", f:parsenoop },\n\t0x0295: { n:\"BrtListPart\", f:parsenoop },\n\t0x0296: { n:\"BrtEndListParts\", f:parsenoop },\n\t0x0297: { n:\"BrtSheetCalcProp\", f:parsenoop },\n\t0x0298: { n:\"BrtBeginFnGroup\", f:parsenoop },\n\t0x0299: { n:\"BrtFnGroup\", f:parsenoop },\n\t0x029A: { n:\"BrtEndFnGroup\", f:parsenoop },\n\t0x029B: { n:\"BrtSupAddin\", f:parsenoop },\n\t0x029C: { n:\"BrtSXTDMPOrder\", f:parsenoop },\n\t0x029D: { n:\"BrtCsProtection\", f:parsenoop },\n\t0x029F: { n:\"BrtBeginWsSortMap\", f:parsenoop },\n\t0x02A0: { n:\"BrtEndWsSortMap\", f:parsenoop },\n\t0x02A1: { n:\"BrtBeginRRSort\", f:parsenoop },\n\t0x02A2: { n:\"BrtEndRRSort\", f:parsenoop },\n\t0x02A3: { n:\"BrtRRSortItem\", f:parsenoop },\n\t0x02A4: { n:\"BrtFileSharingIso\", f:parsenoop },\n\t0x02A5: { n:\"BrtBookProtectionIso\", f:parsenoop },\n\t0x02A6: { n:\"BrtSheetProtectionIso\", f:parsenoop },\n\t0x02A7: { n:\"BrtCsProtectionIso\", f:parsenoop },\n\t0x02A8: { n:\"BrtRangeProtectionIso\", f:parsenoop },\n\t0x0400: { n:\"BrtRwDescent\", f:parsenoop },\n\t0x0401: { n:\"BrtKnownFonts\", f:parsenoop },\n\t0x0402: { n:\"BrtBeginSXTupleSet\", f:parsenoop },\n\t0x0403: { n:\"BrtEndSXTupleSet\", f:parsenoop },\n\t0x0404: { n:\"BrtBeginSXTupleSetHeader\", f:parsenoop },\n\t0x0405: { n:\"BrtEndSXTupleSetHeader\", f:parsenoop },\n\t0x0406: { n:\"BrtSXTupleSetHeaderItem\", f:parsenoop },\n\t0x0407: { n:\"BrtBeginSXTupleSetData\", f:parsenoop },\n\t0x0408: { n:\"BrtEndSXTupleSetData\", f:parsenoop },\n\t0x0409: { n:\"BrtBeginSXTupleSetRow\", f:parsenoop },\n\t0x040A: { n:\"BrtEndSXTupleSetRow\", f:parsenoop },\n\t0x040B: { n:\"BrtSXTupleSetRowItem\", f:parsenoop },\n\t0x040C: { n:\"BrtNameExt\", f:parsenoop },\n\t0x040D: { n:\"BrtPCDH14\", f:parsenoop },\n\t0x040E: { n:\"BrtBeginPCDCalcMem14\", f:parsenoop },\n\t0x040F: { n:\"BrtEndPCDCalcMem14\", f:parsenoop },\n\t0x0410: { n:\"BrtSXTH14\", f:parsenoop },\n\t0x0411: { n:\"BrtBeginSparklineGroup\", f:parsenoop },\n\t0x0412: { n:\"BrtEndSparklineGroup\", f:parsenoop },\n\t0x0413: { n:\"BrtSparkline\", f:parsenoop },\n\t0x0414: { n:\"BrtSXDI14\", f:parsenoop },\n\t0x0415: { n:\"BrtWsFmtInfoEx14\", f:parsenoop },\n\t0x0416: { n:\"BrtBeginConditionalFormatting14\", f:parsenoop },\n\t0x0417: { n:\"BrtEndConditionalFormatting14\", f:parsenoop },\n\t0x0418: { n:\"BrtBeginCFRule14\", f:parsenoop },\n\t0x0419: { n:\"BrtEndCFRule14\", f:parsenoop },\n\t0x041A: { n:\"BrtCFVO14\", f:parsenoop },\n\t0x041B: { n:\"BrtBeginDatabar14\", f:parsenoop },\n\t0x041C: { n:\"BrtBeginIconSet14\", f:parsenoop },\n\t0x041D: { n:\"BrtDVal14\", f:parsenoop },\n\t0x041E: { n:\"BrtBeginDVals14\", f:parsenoop },\n\t0x041F: { n:\"BrtColor14\", f:parsenoop },\n\t0x0420: { n:\"BrtBeginSparklines\", f:parsenoop },\n\t0x0421: { n:\"BrtEndSparklines\", f:parsenoop },\n\t0x0422: { n:\"BrtBeginSparklineGroups\", f:parsenoop },\n\t0x0423: { n:\"BrtEndSparklineGroups\", f:parsenoop },\n\t0x0425: { n:\"BrtSXVD14\", f:parsenoop },\n\t0x0426: { n:\"BrtBeginSxview14\", f:parsenoop },\n\t0x0427: { n:\"BrtEndSxview14\", f:parsenoop },\n\t0x042A: { n:\"BrtBeginPCD14\", f:parsenoop },\n\t0x042B: { n:\"BrtEndPCD14\", f:parsenoop },\n\t0x042C: { n:\"BrtBeginExtConn14\", f:parsenoop },\n\t0x042D: { n:\"BrtEndExtConn14\", f:parsenoop },\n\t0x042E: { n:\"BrtBeginSlicerCacheIDs\", f:parsenoop },\n\t0x042F: { n:\"BrtEndSlicerCacheIDs\", f:parsenoop },\n\t0x0430: { n:\"BrtBeginSlicerCacheID\", f:parsenoop },\n\t0x0431: { n:\"BrtEndSlicerCacheID\", f:parsenoop },\n\t0x0433: { n:\"BrtBeginSlicerCache\", f:parsenoop },\n\t0x0434: { n:\"BrtEndSlicerCache\", f:parsenoop },\n\t0x0435: { n:\"BrtBeginSlicerCacheDef\", f:parsenoop },\n\t0x0436: { n:\"BrtEndSlicerCacheDef\", f:parsenoop },\n\t0x0437: { n:\"BrtBeginSlicersEx\", f:parsenoop },\n\t0x0438: { n:\"BrtEndSlicersEx\", f:parsenoop },\n\t0x0439: { n:\"BrtBeginSlicerEx\", f:parsenoop },\n\t0x043A: { n:\"BrtEndSlicerEx\", f:parsenoop },\n\t0x043B: { n:\"BrtBeginSlicer\", f:parsenoop },\n\t0x043C: { n:\"BrtEndSlicer\", f:parsenoop },\n\t0x043D: { n:\"BrtSlicerCachePivotTables\", f:parsenoop },\n\t0x043E: { n:\"BrtBeginSlicerCacheOlapImpl\", f:parsenoop },\n\t0x043F: { n:\"BrtEndSlicerCacheOlapImpl\", f:parsenoop },\n\t0x0440: { n:\"BrtBeginSlicerCacheLevelsData\", f:parsenoop },\n\t0x0441: { n:\"BrtEndSlicerCacheLevelsData\", f:parsenoop },\n\t0x0442: { n:\"BrtBeginSlicerCacheLevelData\", f:parsenoop },\n\t0x0443: { n:\"BrtEndSlicerCacheLevelData\", f:parsenoop },\n\t0x0444: { n:\"BrtBeginSlicerCacheSiRanges\", f:parsenoop },\n\t0x0445: { n:\"BrtEndSlicerCacheSiRanges\", f:parsenoop },\n\t0x0446: { n:\"BrtBeginSlicerCacheSiRange\", f:parsenoop },\n\t0x0447: { n:\"BrtEndSlicerCacheSiRange\", f:parsenoop },\n\t0x0448: { n:\"BrtSlicerCacheOlapItem\", f:parsenoop },\n\t0x0449: { n:\"BrtBeginSlicerCacheSelections\", f:parsenoop },\n\t0x044A: { n:\"BrtSlicerCacheSelection\", f:parsenoop },\n\t0x044B: { n:\"BrtEndSlicerCacheSelections\", f:parsenoop },\n\t0x044C: { n:\"BrtBeginSlicerCacheNative\", f:parsenoop },\n\t0x044D: { n:\"BrtEndSlicerCacheNative\", f:parsenoop },\n\t0x044E: { n:\"BrtSlicerCacheNativeItem\", f:parsenoop },\n\t0x044F: { n:\"BrtRangeProtection14\", f:parsenoop },\n\t0x0450: { n:\"BrtRangeProtectionIso14\", f:parsenoop },\n\t0x0451: { n:\"BrtCellIgnoreEC14\", f:parsenoop },\n\t0x0457: { n:\"BrtList14\", f:parsenoop },\n\t0x0458: { n:\"BrtCFIcon\", f:parsenoop },\n\t0x0459: { n:\"BrtBeginSlicerCachesPivotCacheIDs\", f:parsenoop },\n\t0x045A: { n:\"BrtEndSlicerCachesPivotCacheIDs\", f:parsenoop },\n\t0x045B: { n:\"BrtBeginSlicers\", f:parsenoop },\n\t0x045C: { n:\"BrtEndSlicers\", f:parsenoop },\n\t0x045D: { n:\"BrtWbProp14\", f:parsenoop },\n\t0x045E: { n:\"BrtBeginSXEdit\", f:parsenoop },\n\t0x045F: { n:\"BrtEndSXEdit\", f:parsenoop },\n\t0x0460: { n:\"BrtBeginSXEdits\", f:parsenoop },\n\t0x0461: { n:\"BrtEndSXEdits\", f:parsenoop },\n\t0x0462: { n:\"BrtBeginSXChange\", f:parsenoop },\n\t0x0463: { n:\"BrtEndSXChange\", f:parsenoop },\n\t0x0464: { n:\"BrtBeginSXChanges\", f:parsenoop },\n\t0x0465: { n:\"BrtEndSXChanges\", f:parsenoop },\n\t0x0466: { n:\"BrtSXTupleItems\", f:parsenoop },\n\t0x0468: { n:\"BrtBeginSlicerStyle\", f:parsenoop },\n\t0x0469: { n:\"BrtEndSlicerStyle\", f:parsenoop },\n\t0x046A: { n:\"BrtSlicerStyleElement\", f:parsenoop },\n\t0x046B: { n:\"BrtBeginStyleSheetExt14\", f:parsenoop },\n\t0x046C: { n:\"BrtEndStyleSheetExt14\", f:parsenoop },\n\t0x046D: { n:\"BrtBeginSlicerCachesPivotCacheID\", f:parsenoop },\n\t0x046E: { n:\"BrtEndSlicerCachesPivotCacheID\", f:parsenoop },\n\t0x046F: { n:\"BrtBeginConditionalFormattings\", f:parsenoop },\n\t0x0470: { n:\"BrtEndConditionalFormattings\", f:parsenoop },\n\t0x0471: { n:\"BrtBeginPCDCalcMemExt\", f:parsenoop },\n\t0x0472: { n:\"BrtEndPCDCalcMemExt\", f:parsenoop },\n\t0x0473: { n:\"BrtBeginPCDCalcMemsExt\", f:parsenoop },\n\t0x0474: { n:\"BrtEndPCDCalcMemsExt\", f:parsenoop },\n\t0x0475: { n:\"BrtPCDField14\", f:parsenoop },\n\t0x0476: { n:\"BrtBeginSlicerStyles\", f:parsenoop },\n\t0x0477: { n:\"BrtEndSlicerStyles\", f:parsenoop },\n\t0x0478: { n:\"BrtBeginSlicerStyleElements\", f:parsenoop },\n\t0x0479: { n:\"BrtEndSlicerStyleElements\", f:parsenoop },\n\t0x047A: { n:\"BrtCFRuleExt\", f:parsenoop },\n\t0x047B: { n:\"BrtBeginSXCondFmt14\", f:parsenoop },\n\t0x047C: { n:\"BrtEndSXCondFmt14\", f:parsenoop },\n\t0x047D: { n:\"BrtBeginSXCondFmts14\", f:parsenoop },\n\t0x047E: { n:\"BrtEndSXCondFmts14\", f:parsenoop },\n\t0x0480: { n:\"BrtBeginSortCond14\", f:parsenoop },\n\t0x0481: { n:\"BrtEndSortCond14\", f:parsenoop },\n\t0x0482: { n:\"BrtEndDVals14\", f:parsenoop },\n\t0x0483: { n:\"BrtEndIconSet14\", f:parsenoop },\n\t0x0484: { n:\"BrtEndDatabar14\", f:parsenoop },\n\t0x0485: { n:\"BrtBeginColorScale14\", f:parsenoop },\n\t0x0486: { n:\"BrtEndColorScale14\", f:parsenoop },\n\t0x0487: { n:\"BrtBeginSxrules14\", f:parsenoop },\n\t0x0488: { n:\"BrtEndSxrules14\", f:parsenoop },\n\t0x0489: { n:\"BrtBeginPRule14\", f:parsenoop },\n\t0x048A: { n:\"BrtEndPRule14\", f:parsenoop },\n\t0x048B: { n:\"BrtBeginPRFilters14\", f:parsenoop },\n\t0x048C: { n:\"BrtEndPRFilters14\", f:parsenoop },\n\t0x048D: { n:\"BrtBeginPRFilter14\", f:parsenoop },\n\t0x048E: { n:\"BrtEndPRFilter14\", f:parsenoop },\n\t0x048F: { n:\"BrtBeginPRFItem14\", f:parsenoop },\n\t0x0490: { n:\"BrtEndPRFItem14\", f:parsenoop },\n\t0x0491: { n:\"BrtBeginCellIgnoreECs14\", f:parsenoop },\n\t0x0492: { n:\"BrtEndCellIgnoreECs14\", f:parsenoop },\n\t0x0493: { n:\"BrtDxf14\", f:parsenoop },\n\t0x0494: { n:\"BrtBeginDxF14s\", f:parsenoop },\n\t0x0495: { n:\"BrtEndDxf14s\", f:parsenoop },\n\t0x0499: { n:\"BrtFilter14\", f:parsenoop },\n\t0x049A: { n:\"BrtBeginCustomFilters14\", f:parsenoop },\n\t0x049C: { n:\"BrtCustomFilter14\", f:parsenoop },\n\t0x049D: { n:\"BrtIconFilter14\", f:parsenoop },\n\t0x049E: { n:\"BrtPivotCacheConnectionName\", f:parsenoop },\n\t0x0800: { n:\"BrtBeginDecoupledPivotCacheIDs\", f:parsenoop },\n\t0x0801: { n:\"BrtEndDecoupledPivotCacheIDs\", f:parsenoop },\n\t0x0802: { n:\"BrtDecoupledPivotCacheID\", f:parsenoop },\n\t0x0803: { n:\"BrtBeginPivotTableRefs\", f:parsenoop },\n\t0x0804: { n:\"BrtEndPivotTableRefs\", f:parsenoop },\n\t0x0805: { n:\"BrtPivotTableRef\", f:parsenoop },\n\t0x0806: { n:\"BrtSlicerCacheBookPivotTables\", f:parsenoop },\n\t0x0807: { n:\"BrtBeginSxvcells\", f:parsenoop },\n\t0x0808: { n:\"BrtEndSxvcells\", f:parsenoop },\n\t0x0809: { n:\"BrtBeginSxRow\", f:parsenoop },\n\t0x080A: { n:\"BrtEndSxRow\", f:parsenoop },\n\t0x080C: { n:\"BrtPcdCalcMem15\", f:parsenoop },\n\t0x0813: { n:\"BrtQsi15\", f:parsenoop },\n\t0x0814: { n:\"BrtBeginWebExtensions\", f:parsenoop },\n\t0x0815: { n:\"BrtEndWebExtensions\", f:parsenoop },\n\t0x0816: { n:\"BrtWebExtension\", f:parsenoop },\n\t0x0817: { n:\"BrtAbsPath15\", f:parsenoop },\n\t0x0818: { n:\"BrtBeginPivotTableUISettings\", f:parsenoop },\n\t0x0819: { n:\"BrtEndPivotTableUISettings\", f:parsenoop },\n\t0x081B: { n:\"BrtTableSlicerCacheIDs\", f:parsenoop },\n\t0x081C: { n:\"BrtTableSlicerCacheID\", f:parsenoop },\n\t0x081D: { n:\"BrtBeginTableSlicerCache\", f:parsenoop },\n\t0x081E: { n:\"BrtEndTableSlicerCache\", f:parsenoop },\n\t0x081F: { n:\"BrtSxFilter15\", f:parsenoop },\n\t0x0820: { n:\"BrtBeginTimelineCachePivotCacheIDs\", f:parsenoop },\n\t0x0821: { n:\"BrtEndTimelineCachePivotCacheIDs\", f:parsenoop },\n\t0x0822: { n:\"BrtTimelineCachePivotCacheID\", f:parsenoop },\n\t0x0823: { n:\"BrtBeginTimelineCacheIDs\", f:parsenoop },\n\t0x0824: { n:\"BrtEndTimelineCacheIDs\", f:parsenoop },\n\t0x0825: { n:\"BrtBeginTimelineCacheID\", f:parsenoop },\n\t0x0826: { n:\"BrtEndTimelineCacheID\", f:parsenoop },\n\t0x0827: { n:\"BrtBeginTimelinesEx\", f:parsenoop },\n\t0x0828: { n:\"BrtEndTimelinesEx\", f:parsenoop },\n\t0x0829: { n:\"BrtBeginTimelineEx\", f:parsenoop },\n\t0x082A: { n:\"BrtEndTimelineEx\", f:parsenoop },\n\t0x082B: { n:\"BrtWorkBookPr15\", f:parsenoop },\n\t0x082C: { n:\"BrtPCDH15\", f:parsenoop },\n\t0x082D: { n:\"BrtBeginTimelineStyle\", f:parsenoop },\n\t0x082E: { n:\"BrtEndTimelineStyle\", f:parsenoop },\n\t0x082F: { n:\"BrtTimelineStyleElement\", f:parsenoop },\n\t0x0830: { n:\"BrtBeginTimelineStylesheetExt15\", f:parsenoop },\n\t0x0831: { n:\"BrtEndTimelineStylesheetExt15\", f:parsenoop },\n\t0x0832: { n:\"BrtBeginTimelineStyles\", f:parsenoop },\n\t0x0833: { n:\"BrtEndTimelineStyles\", f:parsenoop },\n\t0x0834: { n:\"BrtBeginTimelineStyleElements\", f:parsenoop },\n\t0x0835: { n:\"BrtEndTimelineStyleElements\", f:parsenoop },\n\t0x0836: { n:\"BrtDxf15\", f:parsenoop },\n\t0x0837: { n:\"BrtBeginDxfs15\", f:parsenoop },\n\t0x0838: { n:\"brtEndDxfs15\", f:parsenoop },\n\t0x0839: { n:\"BrtSlicerCacheHideItemsWithNoData\", f:parsenoop },\n\t0x083A: { n:\"BrtBeginItemUniqueNames\", f:parsenoop },\n\t0x083B: { n:\"BrtEndItemUniqueNames\", f:parsenoop },\n\t0x083C: { n:\"BrtItemUniqueName\", f:parsenoop },\n\t0x083D: { n:\"BrtBeginExtConn15\", f:parsenoop },\n\t0x083E: { n:\"BrtEndExtConn15\", f:parsenoop },\n\t0x083F: { n:\"BrtBeginOledbPr15\", f:parsenoop },\n\t0x0840: { n:\"BrtEndOledbPr15\", f:parsenoop },\n\t0x0841: { n:\"BrtBeginDataFeedPr15\", f:parsenoop },\n\t0x0842: { n:\"BrtEndDataFeedPr15\", f:parsenoop },\n\t0x0843: { n:\"BrtTextPr15\", f:parsenoop },\n\t0x0844: { n:\"BrtRangePr15\", f:parsenoop },\n\t0x0845: { n:\"BrtDbCommand15\", f:parsenoop },\n\t0x0846: { n:\"BrtBeginDbTables15\", f:parsenoop },\n\t0x0847: { n:\"BrtEndDbTables15\", f:parsenoop },\n\t0x0848: { n:\"BrtDbTable15\", f:parsenoop },\n\t0x0849: { n:\"BrtBeginDataModel\", f:parsenoop },\n\t0x084A: { n:\"BrtEndDataModel\", f:parsenoop },\n\t0x084B: { n:\"BrtBeginModelTables\", f:parsenoop },\n\t0x084C: { n:\"BrtEndModelTables\", f:parsenoop },\n\t0x084D: { n:\"BrtModelTable\", f:parsenoop },\n\t0x084E: { n:\"BrtBeginModelRelationships\", f:parsenoop },\n\t0x084F: { n:\"BrtEndModelRelationships\", f:parsenoop },\n\t0x0850: { n:\"BrtModelRelationship\", f:parsenoop },\n\t0x0851: { n:\"BrtBeginECTxtWiz15\", f:parsenoop },\n\t0x0852: { n:\"BrtEndECTxtWiz15\", f:parsenoop },\n\t0x0853: { n:\"BrtBeginECTWFldInfoLst15\", f:parsenoop },\n\t0x0854: { n:\"BrtEndECTWFldInfoLst15\", f:parsenoop },\n\t0x0855: { n:\"BrtBeginECTWFldInfo15\", f:parsenoop },\n\t0x0856: { n:\"BrtFieldListActiveItem\", f:parsenoop },\n\t0x0857: { n:\"BrtPivotCacheIdVersion\", f:parsenoop },\n\t0x0858: { n:\"BrtSXDI15\", f:parsenoop },\n\t0xFFFF: { n:\"\", f:parsenoop }\n};\n\nvar evert_RE = evert_key(XLSBRecordEnum, 'n');\n\n/* [MS-XLS] 2.3 Record Enumeration */\nvar XLSRecordEnum = {\n\t0x0003: { n:\"BIFF2NUM\", f:parse_BIFF2NUM },\n\t0x0004: { n:\"BIFF2STR\", f:parse_BIFF2STR },\n\t0x0006: { n:\"Formula\", f:parse_Formula },\n\t0x0009: { n:'BOF', f:parse_BOF },\n\t0x000a: { n:'EOF', f:parse_EOF },\n\t0x000c: { n:\"CalcCount\", f:parse_CalcCount },\n\t0x000d: { n:\"CalcMode\", f:parse_CalcMode },\n\t0x000e: { n:\"CalcPrecision\", f:parse_CalcPrecision },\n\t0x000f: { n:\"CalcRefMode\", f:parse_CalcRefMode },\n\t0x0010: { n:\"CalcDelta\", f:parse_CalcDelta },\n\t0x0011: { n:\"CalcIter\", f:parse_CalcIter },\n\t0x0012: { n:\"Protect\", f:parse_Protect },\n\t0x0013: { n:\"Password\", f:parse_Password },\n\t0x0014: { n:\"Header\", f:parse_Header },\n\t0x0015: { n:\"Footer\", f:parse_Footer },\n\t0x0017: { n:\"ExternSheet\", f:parse_ExternSheet },\n\t0x0018: { n:\"Lbl\", f:parse_Lbl },\n\t0x0019: { n:\"WinProtect\", f:parse_WinProtect },\n\t0x001a: { n:\"VerticalPageBreaks\", f:parse_VerticalPageBreaks },\n\t0x001b: { n:\"HorizontalPageBreaks\", f:parse_HorizontalPageBreaks },\n\t0x001c: { n:\"Note\", f:parse_Note },\n\t0x001d: { n:\"Selection\", f:parse_Selection },\n\t0x0022: { n:\"Date1904\", f:parse_Date1904 },\n\t0x0023: { n:\"ExternName\", f:parse_ExternName },\n\t0x0026: { n:\"LeftMargin\", f:parse_LeftMargin },\n\t0x0027: { n:\"RightMargin\", f:parse_RightMargin },\n\t0x0028: { n:\"TopMargin\", f:parse_TopMargin },\n\t0x0029: { n:\"BottomMargin\", f:parse_BottomMargin },\n\t0x002a: { n:\"PrintRowCol\", f:parse_PrintRowCol },\n\t0x002b: { n:\"PrintGrid\", f:parse_PrintGrid },\n\t0x002f: { n:\"FilePass\", f:parse_FilePass },\n\t0x0031: { n:\"Font\", f:parse_Font },\n\t0x0033: { n:\"PrintSize\", f:parse_PrintSize },\n\t0x003c: { n:\"Continue\", f:parse_Continue },\n\t0x003d: { n:\"Window1\", f:parse_Window1 },\n\t0x0040: { n:\"Backup\", f:parse_Backup },\n\t0x0041: { n:\"Pane\", f:parse_Pane },\n\t0x0042: { n:'CodePage', f:parse_CodePage },\n\t0x004d: { n:\"Pls\", f:parse_Pls },\n\t0x0050: { n:\"DCon\", f:parse_DCon },\n\t0x0051: { n:\"DConRef\", f:parse_DConRef },\n\t0x0052: { n:\"DConName\", f:parse_DConName },\n\t0x0055: { n:\"DefColWidth\", f:parse_DefColWidth },\n\t0x0059: { n:\"XCT\", f:parse_XCT },\n\t0x005a: { n:\"CRN\", f:parse_CRN },\n\t0x005b: { n:\"FileSharing\", f:parse_FileSharing },\n\t0x005c: { n:'WriteAccess', f:parse_WriteAccess },\n\t0x005d: { n:\"Obj\", f:parse_Obj },\n\t0x005e: { n:\"Uncalced\", f:parse_Uncalced },\n\t0x005f: { n:\"CalcSaveRecalc\", f:parse_CalcSaveRecalc },\n\t0x0060: { n:\"Template\", f:parse_Template },\n\t0x0061: { n:\"Intl\", f:parse_Intl },\n\t0x0063: { n:\"ObjProtect\", f:parse_ObjProtect },\n\t0x007d: { n:\"ColInfo\", f:parse_ColInfo },\n\t0x0080: { n:\"Guts\", f:parse_Guts },\n\t0x0081: { n:\"WsBool\", f:parse_WsBool },\n\t0x0082: { n:\"GridSet\", f:parse_GridSet },\n\t0x0083: { n:\"HCenter\", f:parse_HCenter },\n\t0x0084: { n:\"VCenter\", f:parse_VCenter },\n\t0x0085: { n:'BoundSheet8', f:parse_BoundSheet8 },\n\t0x0086: { n:\"WriteProtect\", f:parse_WriteProtect },\n\t0x008c: { n:\"Country\", f:parse_Country },\n\t0x008d: { n:\"HideObj\", f:parse_HideObj },\n\t0x0090: { n:\"Sort\", f:parse_Sort },\n\t0x0092: { n:\"Palette\", f:parse_Palette },\n\t0x0097: { n:\"Sync\", f:parse_Sync },\n\t0x0098: { n:\"LPr\", f:parse_LPr },\n\t0x0099: { n:\"DxGCol\", f:parse_DxGCol },\n\t0x009a: { n:\"FnGroupName\", f:parse_FnGroupName },\n\t0x009b: { n:\"FilterMode\", f:parse_FilterMode },\n\t0x009c: { n:\"BuiltInFnGroupCount\", f:parse_BuiltInFnGroupCount },\n\t0x009d: { n:\"AutoFilterInfo\", f:parse_AutoFilterInfo },\n\t0x009e: { n:\"AutoFilter\", f:parse_AutoFilter },\n\t0x00a0: { n:\"Scl\", f:parse_Scl },\n\t0x00a1: { n:\"Setup\", f:parse_Setup },\n\t0x00ae: { n:\"ScenMan\", f:parse_ScenMan },\n\t0x00af: { n:\"SCENARIO\", f:parse_SCENARIO },\n\t0x00b0: { n:\"SxView\", f:parse_SxView },\n\t0x00b1: { n:\"Sxvd\", f:parse_Sxvd },\n\t0x00b2: { n:\"SXVI\", f:parse_SXVI },\n\t0x00b4: { n:\"SxIvd\", f:parse_SxIvd },\n\t0x00b5: { n:\"SXLI\", f:parse_SXLI },\n\t0x00b6: { n:\"SXPI\", f:parse_SXPI },\n\t0x00b8: { n:\"DocRoute\", f:parse_DocRoute },\n\t0x00b9: { n:\"RecipName\", f:parse_RecipName },\n\t0x00bd: { n:\"MulRk\", f:parse_MulRk },\n\t0x00be: { n:\"MulBlank\", f:parse_MulBlank },\n\t0x00c1: { n:'Mms', f:parse_Mms },\n\t0x00c5: { n:\"SXDI\", f:parse_SXDI },\n\t0x00c6: { n:\"SXDB\", f:parse_SXDB },\n\t0x00c7: { n:\"SXFDB\", f:parse_SXFDB },\n\t0x00c8: { n:\"SXDBB\", f:parse_SXDBB },\n\t0x00c9: { n:\"SXNum\", f:parse_SXNum },\n\t0x00ca: { n:\"SxBool\", f:parse_SxBool },\n\t0x00cb: { n:\"SxErr\", f:parse_SxErr },\n\t0x00cc: { n:\"SXInt\", f:parse_SXInt },\n\t0x00cd: { n:\"SXString\", f:parse_SXString },\n\t0x00ce: { n:\"SXDtr\", f:parse_SXDtr },\n\t0x00cf: { n:\"SxNil\", f:parse_SxNil },\n\t0x00d0: { n:\"SXTbl\", f:parse_SXTbl },\n\t0x00d1: { n:\"SXTBRGIITM\", f:parse_SXTBRGIITM },\n\t0x00d2: { n:\"SxTbpg\", f:parse_SxTbpg },\n\t0x00d3: { n:\"ObProj\", f:parse_ObProj },\n\t0x00d5: { n:\"SXStreamID\", f:parse_SXStreamID },\n\t0x00d7: { n:\"DBCell\", f:parse_DBCell },\n\t0x00d8: { n:\"SXRng\", f:parse_SXRng },\n\t0x00d9: { n:\"SxIsxoper\", f:parse_SxIsxoper },\n\t0x00da: { n:\"BookBool\", f:parse_BookBool },\n\t0x00dc: { n:\"DbOrParamQry\", f:parse_DbOrParamQry },\n\t0x00dd: { n:\"ScenarioProtect\", f:parse_ScenarioProtect },\n\t0x00de: { n:\"OleObjectSize\", f:parse_OleObjectSize },\n\t0x00e0: { n:\"XF\", f:parse_XF },\n\t0x00e1: { n:'InterfaceHdr', f:parse_InterfaceHdr },\n\t0x00e2: { n:'InterfaceEnd', f:parse_InterfaceEnd },\n\t0x00e3: { n:\"SXVS\", f:parse_SXVS },\n\t0x00e5: { n:\"MergeCells\", f:parse_MergeCells },\n\t0x00e9: { n:\"BkHim\", f:parse_BkHim },\n\t0x00eb: { n:\"MsoDrawingGroup\", f:parse_MsoDrawingGroup },\n\t0x00ec: { n:\"MsoDrawing\", f:parse_MsoDrawing },\n\t0x00ed: { n:\"MsoDrawingSelection\", f:parse_MsoDrawingSelection },\n\t0x00ef: { n:\"PhoneticInfo\", f:parse_PhoneticInfo },\n\t0x00f0: { n:\"SxRule\", f:parse_SxRule },\n\t0x00f1: { n:\"SXEx\", f:parse_SXEx },\n\t0x00f2: { n:\"SxFilt\", f:parse_SxFilt },\n\t0x00f4: { n:\"SxDXF\", f:parse_SxDXF },\n\t0x00f5: { n:\"SxItm\", f:parse_SxItm },\n\t0x00f6: { n:\"SxName\", f:parse_SxName },\n\t0x00f7: { n:\"SxSelect\", f:parse_SxSelect },\n\t0x00f8: { n:\"SXPair\", f:parse_SXPair },\n\t0x00f9: { n:\"SxFmla\", f:parse_SxFmla },\n\t0x00fb: { n:\"SxFormat\", f:parse_SxFormat },\n\t0x00fc: { n:\"SST\", f:parse_SST },\n\t0x00fd: { n:\"LabelSst\", f:parse_LabelSst },\n\t0x00ff: { n:\"ExtSST\", f:parse_ExtSST },\n\t0x0100: { n:\"SXVDEx\", f:parse_SXVDEx },\n\t0x0103: { n:\"SXFormula\", f:parse_SXFormula },\n\t0x0122: { n:\"SXDBEx\", f:parse_SXDBEx },\n\t0x0137: { n:\"RRDInsDel\", f:parse_RRDInsDel },\n\t0x0138: { n:\"RRDHead\", f:parse_RRDHead },\n\t0x013b: { n:\"RRDChgCell\", f:parse_RRDChgCell },\n\t0x013d: { n:\"RRTabId\", f:parse_RRTabId },\n\t0x013e: { n:\"RRDRenSheet\", f:parse_RRDRenSheet },\n\t0x013f: { n:\"RRSort\", f:parse_RRSort },\n\t0x0140: { n:\"RRDMove\", f:parse_RRDMove },\n\t0x014a: { n:\"RRFormat\", f:parse_RRFormat },\n\t0x014b: { n:\"RRAutoFmt\", f:parse_RRAutoFmt },\n\t0x014d: { n:\"RRInsertSh\", f:parse_RRInsertSh },\n\t0x014e: { n:\"RRDMoveBegin\", f:parse_RRDMoveBegin },\n\t0x014f: { n:\"RRDMoveEnd\", f:parse_RRDMoveEnd },\n\t0x0150: { n:\"RRDInsDelBegin\", f:parse_RRDInsDelBegin },\n\t0x0151: { n:\"RRDInsDelEnd\", f:parse_RRDInsDelEnd },\n\t0x0152: { n:\"RRDConflict\", f:parse_RRDConflict },\n\t0x0153: { n:\"RRDDefName\", f:parse_RRDDefName },\n\t0x0154: { n:\"RRDRstEtxp\", f:parse_RRDRstEtxp },\n\t0x015f: { n:\"LRng\", f:parse_LRng },\n\t0x0160: { n:\"UsesELFs\", f:parse_UsesELFs },\n\t0x0161: { n:\"DSF\", f:parse_DSF },\n\t0x0191: { n:\"CUsr\", f:parse_CUsr },\n\t0x0192: { n:\"CbUsr\", f:parse_CbUsr },\n\t0x0193: { n:\"UsrInfo\", f:parse_UsrInfo },\n\t0x0194: { n:\"UsrExcl\", f:parse_UsrExcl },\n\t0x0195: { n:\"FileLock\", f:parse_FileLock },\n\t0x0196: { n:\"RRDInfo\", f:parse_RRDInfo },\n\t0x0197: { n:\"BCUsrs\", f:parse_BCUsrs },\n\t0x0198: { n:\"UsrChk\", f:parse_UsrChk },\n\t0x01a9: { n:\"UserBView\", f:parse_UserBView },\n\t0x01aa: { n:\"UserSViewBegin\", f:parse_UserSViewBegin },\n\t0x01ab: { n:\"UserSViewEnd\", f:parse_UserSViewEnd },\n\t0x01ac: { n:\"RRDUserView\", f:parse_RRDUserView },\n\t0x01ad: { n:\"Qsi\", f:parse_Qsi },\n\t0x01ae: { n:\"SupBook\", f:parse_SupBook },\n\t0x01af: { n:\"Prot4Rev\", f:parse_Prot4Rev },\n\t0x01b0: { n:\"CondFmt\", f:parse_CondFmt },\n\t0x01b1: { n:\"CF\", f:parse_CF },\n\t0x01b2: { n:\"DVal\", f:parse_DVal },\n\t0x01b5: { n:\"DConBin\", f:parse_DConBin },\n\t0x01b6: { n:\"TxO\", f:parse_TxO },\n\t0x01b7: { n:\"RefreshAll\", f:parse_RefreshAll },\n\t0x01b8: { n:\"HLink\", f:parse_HLink },\n\t0x01b9: { n:\"Lel\", f:parse_Lel },\n\t0x01ba: { n:\"CodeName\", f:parse_XLSCodeName },\n\t0x01bb: { n:\"SXFDBType\", f:parse_SXFDBType },\n\t0x01bc: { n:\"Prot4RevPass\", f:parse_Prot4RevPass },\n\t0x01bd: { n:\"ObNoMacros\", f:parse_ObNoMacros },\n\t0x01be: { n:\"Dv\", f:parse_Dv },\n\t0x01c0: { n:\"Excel9File\", f:parse_Excel9File },\n\t0x01c1: { n:\"RecalcId\", f:parse_RecalcId, r:2},\n\t0x01c2: { n:\"EntExU2\", f:parse_EntExU2 },\n\t0x0200: { n:\"Dimensions\", f:parse_Dimensions },\n\t0x0201: { n:\"Blank\", f:parse_Blank },\n\t0x0203: { n:\"Number\", f:parse_Number },\n\t0x0204: { n:\"Label\", f:parse_Label },\n\t0x0205: { n:\"BoolErr\", f:parse_BoolErr },\n\t0x0207: { n:\"String\", f:parse_String },\n\t0x0208: { n:'Row', f:parse_Row },\n\t0x020b: { n:\"Index\", f:parse_Index },\n\t0x0221: { n:\"Array\", f:parse_Array },\n\t0x0225: { n:\"DefaultRowHeight\", f:parse_DefaultRowHeight },\n\t0x0236: { n:\"Table\", f:parse_Table },\n\t0x023e: { n:\"Window2\", f:parse_Window2 },\n\t0x027e: { n:\"RK\", f:parse_RK },\n\t0x0293: { n:\"Style\", f:parse_Style },\n\t0x0418: { n:\"BigName\", f:parse_BigName },\n\t0x041e: { n:\"Format\", f:parse_Format },\n\t0x043c: { n:\"ContinueBigName\", f:parse_ContinueBigName },\n\t0x04bc: { n:\"ShrFmla\", f:parse_ShrFmla },\n\t0x0800: { n:\"HLinkTooltip\", f:parse_HLinkTooltip },\n\t0x0801: { n:\"WebPub\", f:parse_WebPub },\n\t0x0802: { n:\"QsiSXTag\", f:parse_QsiSXTag },\n\t0x0803: { n:\"DBQueryExt\", f:parse_DBQueryExt },\n\t0x0804: { n:\"ExtString\", f:parse_ExtString },\n\t0x0805: { n:\"TxtQry\", f:parse_TxtQry },\n\t0x0806: { n:\"Qsir\", f:parse_Qsir },\n\t0x0807: { n:\"Qsif\", f:parse_Qsif },\n\t0x0808: { n:\"RRDTQSIF\", f:parse_RRDTQSIF },\n\t0x0809: { n:'BOF', f:parse_BOF },\n\t0x080a: { n:\"OleDbConn\", f:parse_OleDbConn },\n\t0x080b: { n:\"WOpt\", f:parse_WOpt },\n\t0x080c: { n:\"SXViewEx\", f:parse_SXViewEx },\n\t0x080d: { n:\"SXTH\", f:parse_SXTH },\n\t0x080e: { n:\"SXPIEx\", f:parse_SXPIEx },\n\t0x080f: { n:\"SXVDTEx\", f:parse_SXVDTEx },\n\t0x0810: { n:\"SXViewEx9\", f:parse_SXViewEx9 },\n\t0x0812: { n:\"ContinueFrt\", f:parse_ContinueFrt },\n\t0x0813: { n:\"RealTimeData\", f:parse_RealTimeData },\n\t0x0850: { n:\"ChartFrtInfo\", f:parse_ChartFrtInfo },\n\t0x0851: { n:\"FrtWrapper\", f:parse_FrtWrapper },\n\t0x0852: { n:\"StartBlock\", f:parse_StartBlock },\n\t0x0853: { n:\"EndBlock\", f:parse_EndBlock },\n\t0x0854: { n:\"StartObject\", f:parse_StartObject },\n\t0x0855: { n:\"EndObject\", f:parse_EndObject },\n\t0x0856: { n:\"CatLab\", f:parse_CatLab },\n\t0x0857: { n:\"YMult\", f:parse_YMult },\n\t0x0858: { n:\"SXViewLink\", f:parse_SXViewLink },\n\t0x0859: { n:\"PivotChartBits\", f:parse_PivotChartBits },\n\t0x085a: { n:\"FrtFontList\", f:parse_FrtFontList },\n\t0x0862: { n:\"SheetExt\", f:parse_SheetExt },\n\t0x0863: { n:\"BookExt\", f:parse_BookExt, r:12},\n\t0x0864: { n:\"SXAddl\", f:parse_SXAddl },\n\t0x0865: { n:\"CrErr\", f:parse_CrErr },\n\t0x0866: { n:\"HFPicture\", f:parse_HFPicture },\n\t0x0867: { n:'FeatHdr', f:parse_FeatHdr },\n\t0x0868: { n:\"Feat\", f:parse_Feat },\n\t0x086a: { n:\"DataLabExt\", f:parse_DataLabExt },\n\t0x086b: { n:\"DataLabExtContents\", f:parse_DataLabExtContents },\n\t0x086c: { n:\"CellWatch\", f:parse_CellWatch },\n\t0x0871: { n:\"FeatHdr11\", f:parse_FeatHdr11 },\n\t0x0872: { n:\"Feature11\", f:parse_Feature11 },\n\t0x0874: { n:\"DropDownObjIds\", f:parse_DropDownObjIds },\n\t0x0875: { n:\"ContinueFrt11\", f:parse_ContinueFrt11 },\n\t0x0876: { n:\"DConn\", f:parse_DConn },\n\t0x0877: { n:\"List12\", f:parse_List12 },\n\t0x0878: { n:\"Feature12\", f:parse_Feature12 },\n\t0x0879: { n:\"CondFmt12\", f:parse_CondFmt12 },\n\t0x087a: { n:\"CF12\", f:parse_CF12 },\n\t0x087b: { n:\"CFEx\", f:parse_CFEx },\n\t0x087c: { n:\"XFCRC\", f:parse_XFCRC, r:12 },\n\t0x087d: { n:\"XFExt\", f:parse_XFExt, r:12 },\n\t0x087e: { n:\"AutoFilter12\", f:parse_AutoFilter12 },\n\t0x087f: { n:\"ContinueFrt12\", f:parse_ContinueFrt12 },\n\t0x0884: { n:\"MDTInfo\", f:parse_MDTInfo },\n\t0x0885: { n:\"MDXStr\", f:parse_MDXStr },\n\t0x0886: { n:\"MDXTuple\", f:parse_MDXTuple },\n\t0x0887: { n:\"MDXSet\", f:parse_MDXSet },\n\t0x0888: { n:\"MDXProp\", f:parse_MDXProp },\n\t0x0889: { n:\"MDXKPI\", f:parse_MDXKPI },\n\t0x088a: { n:\"MDB\", f:parse_MDB },\n\t0x088b: { n:\"PLV\", f:parse_PLV },\n\t0x088c: { n:\"Compat12\", f:parse_Compat12, r:12 },\n\t0x088d: { n:\"DXF\", f:parse_DXF },\n\t0x088e: { n:\"TableStyles\", f:parse_TableStyles, r:12 },\n\t0x088f: { n:\"TableStyle\", f:parse_TableStyle },\n\t0x0890: { n:\"TableStyleElement\", f:parse_TableStyleElement },\n\t0x0892: { n:\"StyleExt\", f:parse_StyleExt },\n\t0x0893: { n:\"NamePublish\", f:parse_NamePublish },\n\t0x0894: { n:\"NameCmt\", f:parse_NameCmt },\n\t0x0895: { n:\"SortData\", f:parse_SortData },\n\t0x0896: { n:\"Theme\", f:parse_Theme, r:12 },\n\t0x0897: { n:\"GUIDTypeLib\", f:parse_GUIDTypeLib },\n\t0x0898: { n:\"FnGrp12\", f:parse_FnGrp12 },\n\t0x0899: { n:\"NameFnGrp12\", f:parse_NameFnGrp12 },\n\t0x089a: { n:\"MTRSettings\", f:parse_MTRSettings, r:12 },\n\t0x089b: { n:\"CompressPictures\", f:parse_CompressPictures },\n\t0x089c: { n:\"HeaderFooter\", f:parse_HeaderFooter },\n\t0x089d: { n:\"CrtLayout12\", f:parse_CrtLayout12 },\n\t0x089e: { n:\"CrtMlFrt\", f:parse_CrtMlFrt },\n\t0x089f: { n:\"CrtMlFrtContinue\", f:parse_CrtMlFrtContinue },\n\t0x08a3: { n:\"ForceFullCalculation\", f:parse_ForceFullCalculation },\n\t0x08a4: { n:\"ShapePropsStream\", f:parse_ShapePropsStream },\n\t0x08a5: { n:\"TextPropsStream\", f:parse_TextPropsStream },\n\t0x08a6: { n:\"RichTextStream\", f:parse_RichTextStream },\n\t0x08a7: { n:\"CrtLayout12A\", f:parse_CrtLayout12A },\n\t0x1001: { n:\"Units\", f:parse_Units },\n\t0x1002: { n:\"Chart\", f:parse_Chart },\n\t0x1003: { n:\"Series\", f:parse_Series },\n\t0x1006: { n:\"DataFormat\", f:parse_DataFormat },\n\t0x1007: { n:\"LineFormat\", f:parse_LineFormat },\n\t0x1009: { n:\"MarkerFormat\", f:parse_MarkerFormat },\n\t0x100a: { n:\"AreaFormat\", f:parse_AreaFormat },\n\t0x100b: { n:\"PieFormat\", f:parse_PieFormat },\n\t0x100c: { n:\"AttachedLabel\", f:parse_AttachedLabel },\n\t0x100d: { n:\"SeriesText\", f:parse_SeriesText },\n\t0x1014: { n:\"ChartFormat\", f:parse_ChartFormat },\n\t0x1015: { n:\"Legend\", f:parse_Legend },\n\t0x1016: { n:\"SeriesList\", f:parse_SeriesList },\n\t0x1017: { n:\"Bar\", f:parse_Bar },\n\t0x1018: { n:\"Line\", f:parse_Line },\n\t0x1019: { n:\"Pie\", f:parse_Pie },\n\t0x101a: { n:\"Area\", f:parse_Area },\n\t0x101b: { n:\"Scatter\", f:parse_Scatter },\n\t0x101c: { n:\"CrtLine\", f:parse_CrtLine },\n\t0x101d: { n:\"Axis\", f:parse_Axis },\n\t0x101e: { n:\"Tick\", f:parse_Tick },\n\t0x101f: { n:\"ValueRange\", f:parse_ValueRange },\n\t0x1020: { n:\"CatSerRange\", f:parse_CatSerRange },\n\t0x1021: { n:\"AxisLine\", f:parse_AxisLine },\n\t0x1022: { n:\"CrtLink\", f:parse_CrtLink },\n\t0x1024: { n:\"DefaultText\", f:parse_DefaultText },\n\t0x1025: { n:\"Text\", f:parse_Text },\n\t0x1026: { n:\"FontX\", f:parse_FontX },\n\t0x1027: { n:\"ObjectLink\", f:parse_ObjectLink },\n\t0x1032: { n:\"Frame\", f:parse_Frame },\n\t0x1033: { n:\"Begin\", f:parse_Begin },\n\t0x1034: { n:\"End\", f:parse_End },\n\t0x1035: { n:\"PlotArea\", f:parse_PlotArea },\n\t0x103a: { n:\"Chart3d\", f:parse_Chart3d },\n\t0x103c: { n:\"PicF\", f:parse_PicF },\n\t0x103d: { n:\"DropBar\", f:parse_DropBar },\n\t0x103e: { n:\"Radar\", f:parse_Radar },\n\t0x103f: { n:\"Surf\", f:parse_Surf },\n\t0x1040: { n:\"RadarArea\", f:parse_RadarArea },\n\t0x1041: { n:\"AxisParent\", f:parse_AxisParent },\n\t0x1043: { n:\"LegendException\", f:parse_LegendException },\n\t0x1044: { n:\"ShtProps\", f:parse_ShtProps },\n\t0x1045: { n:\"SerToCrt\", f:parse_SerToCrt },\n\t0x1046: { n:\"AxesUsed\", f:parse_AxesUsed },\n\t0x1048: { n:\"SBaseRef\", f:parse_SBaseRef },\n\t0x104a: { n:\"SerParent\", f:parse_SerParent },\n\t0x104b: { n:\"SerAuxTrend\", f:parse_SerAuxTrend },\n\t0x104e: { n:\"IFmtRecord\", f:parse_IFmtRecord },\n\t0x104f: { n:\"Pos\", f:parse_Pos },\n\t0x1050: { n:\"AlRuns\", f:parse_AlRuns },\n\t0x1051: { n:\"BRAI\", f:parse_BRAI },\n\t0x105b: { n:\"SerAuxErrBar\", f:parse_SerAuxErrBar },\n\t0x105c: { n:\"ClrtClient\", f:parse_ClrtClient },\n\t0x105d: { n:\"SerFmt\", f:parse_SerFmt },\n\t0x105f: { n:\"Chart3DBarShape\", f:parse_Chart3DBarShape },\n\t0x1060: { n:\"Fbi\", f:parse_Fbi },\n\t0x1061: { n:\"BopPop\", f:parse_BopPop },\n\t0x1062: { n:\"AxcExt\", f:parse_AxcExt },\n\t0x1063: { n:\"Dat\", f:parse_Dat },\n\t0x1064: { n:\"PlotGrowth\", f:parse_PlotGrowth },\n\t0x1065: { n:\"SIIndex\", f:parse_SIIndex },\n\t0x1066: { n:\"GelFrame\", f:parse_GelFrame },\n\t0x1067: { n:\"BopPopCustom\", f:parse_BopPopCustom },\n\t0x1068: { n:\"Fbi2\", f:parse_Fbi2 },\n\n\t/* These are specified in an older version of the spec */\n\t0x0016: { n:\"ExternCount\", f:parsenoop },\n\t0x007e: { n:\"RK\", f:parsenoop }, /* Not necessarily same as 0x027e */\n\t0x007f: { n:\"ImData\", f:parsenoop },\n\t0x0087: { n:\"Addin\", f:parsenoop },\n\t0x0088: { n:\"Edg\", f:parsenoop },\n\t0x0089: { n:\"Pub\", f:parsenoop },\n\t0x0091: { n:\"Sub\", f:parsenoop },\n\t0x0094: { n:\"LHRecord\", f:parsenoop },\n\t0x0095: { n:\"LHNGraph\", f:parsenoop },\n\t0x0096: { n:\"Sound\", f:parsenoop },\n\t0x00a9: { n:\"CoordList\", f:parsenoop },\n\t0x00ab: { n:\"GCW\", f:parsenoop },\n\t0x00bc: { n:\"ShrFmla\", f:parsenoop }, /* Not necessarily same as 0x04bc */\n\t0x00c2: { n:\"AddMenu\", f:parsenoop },\n\t0x00c3: { n:\"DelMenu\", f:parsenoop },\n\t0x00d6: { n:\"RString\", f:parsenoop },\n\t0x00df: { n:\"UDDesc\", f:parsenoop },\n\t0x00ea: { n:\"TabIdConf\", f:parsenoop },\n\t0x0162: { n:\"XL5Modify\", f:parsenoop },\n\t0x01a5: { n:\"FileSharing2\", f:parsenoop },\n\t0x0218: { n:\"Name\", f:parsenoop },\n\t0x0223: { n:\"ExternName\", f:parse_ExternName },\n\t0x0231: { n:\"Font\", f:parsenoop },\n\t0x0406: { n:\"Formula\", f:parse_Formula },\n\t0x086d: { n:\"FeatInfo\", f:parsenoop },\n\t0x0873: { n:\"FeatInfo11\", f:parsenoop },\n\t0x0881: { n:\"SXAddl12\", f:parsenoop },\n\t0x08c0: { n:\"AutoWebPub\", f:parsenoop },\n\t0x08c1: { n:\"ListObj\", f:parsenoop },\n\t0x08c2: { n:\"ListField\", f:parsenoop },\n\t0x08c3: { n:\"ListDV\", f:parsenoop },\n\t0x08c4: { n:\"ListCondFmt\", f:parsenoop },\n\t0x08c5: { n:\"ListCF\", f:parsenoop },\n\t0x08c6: { n:\"FMQry\", f:parsenoop },\n\t0x08c7: { n:\"FMSQry\", f:parsenoop },\n\t0x08c8: { n:\"PLV\", f:parsenoop }, /* supposedly PLV for Excel 11 */\n\t0x08c9: { n:\"LnExt\", f:parsenoop },\n\t0x08ca: { n:\"MkrExt\", f:parsenoop },\n\t0x08cb: { n:\"CrtCoopt\", f:parsenoop },\n\n\t0x0000: {}\n};\n\n\n/* Helper function to call out to ODS parser */\nfunction parse_ods(zip, opts) {\n\tif(typeof module !== \"undefined\" && typeof require !== 'undefined' && typeof ODS === 'undefined') ODS = require('./od' + 's');\n\tif(typeof ODS === 'undefined' || !ODS.parse_ods) throw new Error(\"Unsupported ODS\");\n\treturn ODS.parse_ods(zip, opts);\n}\nfunction fix_opts_func(defaults) {\n\treturn function fix_opts(opts) {\n\t\tfor(var i = 0; i != defaults.length; ++i) {\n\t\t\tvar d = defaults[i];\n\t\t\tif(opts[d[0]] === undefined) opts[d[0]] = d[1];\n\t\t\tif(d[2] === 'n') opts[d[0]] = Number(opts[d[0]]);\n\t\t}\n\t};\n}\n\nvar fix_read_opts = fix_opts_func([\n\t['cellNF', false], /* emit cell number format string as .z */\n\t['cellHTML', true], /* emit html string as .h */\n\t['cellFormula', true], /* emit formulae as .f */\n\t['cellStyles', false], /* emits style/theme as .s */\n\t['cellDates', false], /* emit date cells with type `d` */\n\n\t['sheetStubs', false], /* emit empty cells */\n\t['sheetRows', 0, 'n'], /* read n rows (0 = read all rows) */\n\n\t['bookDeps', false], /* parse calculation chains */\n\t['bookSheets', false], /* only try to get sheet names (no Sheets) */\n\t['bookProps', false], /* only try to get properties (no Sheets) */\n\t['bookFiles', false], /* include raw file structure (keys, files, cfb) */\n\t['bookVBA', false], /* include vba raw data (vbaraw) */\n\n\t['password',''], /* password */\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\n\n\nvar fix_write_opts = fix_opts_func([\n\t['cellDates', false], /* write date cells with type `d` */\n\n\t['bookSST', false], /* Generate Shared String Table */\n\n\t['bookType', 'xlsx'], /* Type of workbook (xlsx/m/b) */\n\n\t['WTF', false] /* WTF mode (throws errors) */\n]);\nfunction safe_parse_wbrels(wbrels, sheets) {\n\tif(!wbrels) return 0;\n\ttry {\n\t\twbrels = sheets.map(function pwbr(w) { return [w.name, wbrels['!id'][w.id].Target]; });\n\t} catch(e) { return null; }\n\treturn !wbrels || wbrels.length === 0 ? null : wbrels;\n}\n\nfunction safe_parse_ws(zip, path, relsPath, sheet, sheetRels, sheets, opts) {\n\ttry {\n\t\tsheetRels[sheet]=parse_rels(getzipdata(zip, relsPath, true), path);\n\t\tsheets[sheet]=parse_ws(getzipdata(zip, path),path,opts,sheetRels[sheet]);\n\t} catch(e) { if(opts.WTF) throw e; }\n}\n\nvar nodirs = function nodirs(x){return x.substr(-1) != '/';};\nfunction parse_zip(zip, opts) {\n\tmake_ssf(SSF);\n\topts = opts || {};\n\tfix_read_opts(opts);\n\treset_cp();\n\n\t/* OpenDocument Part 3 Section 2.2.1 OpenDocument Package */\n\tif(safegetzipfile(zip, 'META-INF/manifest.xml')) return parse_ods(zip, opts);\n\n\tvar entries = keys(zip.files).filter(nodirs).sort();\n\tvar dir = parse_ct(getzipdata(zip, '[Content_Types].xml'), opts);\n\tvar xlsb = false;\n\tvar sheets, binname;\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.xml\";\n\t\tif(getzipdata(zip,binname, true)) dir.workbooks.push(binname);\n\t}\n\tif(dir.workbooks.length === 0) {\n\t\tbinname = \"xl/workbook.bin\";\n\t\tif(!getzipfile(zip,binname,true)) throw new Error(\"Could not find workbook\");\n\t\tdir.workbooks.push(binname);\n\t\txlsb = true;\n\t}\n\tif(dir.workbooks[0].substr(-3) == \"bin\") xlsb = true;\n\tif(xlsb) set_cp(1200);\n\n\tif(!opts.bookSheets && !opts.bookProps) {\n\t\tstrs = [];\n\t\tif(dir.sst) strs=parse_sst(getzipdata(zip, dir.sst.replace(/^\\//,'')), dir.sst, opts);\n\n\t\tstyles = {};\n\t\tif(dir.style) styles = parse_sty(getzipdata(zip, dir.style.replace(/^\\//,'')),dir.style, opts);\n\n\t\tthemes = {};\n\t\tif(opts.cellStyles && dir.themes.length) themes = parse_theme(getzipdata(zip, dir.themes[0].replace(/^\\//,''), true),dir.themes[0], opts);\n\t}\n\n\tvar wb = parse_wb(getzipdata(zip, dir.workbooks[0].replace(/^\\//,'')), dir.workbooks[0], opts);\n\n\tvar props = {}, propdata = \"\";\n\n\tif(dir.coreprops.length !== 0) {\n\t\tpropdata = getzipdata(zip, dir.coreprops[0].replace(/^\\//,''), true);\n\t\tif(propdata) props = parse_core_props(propdata);\n\t\tif(dir.extprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, dir.extprops[0].replace(/^\\//,''), true);\n\t\t\tif(propdata) parse_ext_props(propdata, props);\n\t\t}\n\t}\n\n\tvar custprops = {};\n\tif(!opts.bookSheets || opts.bookProps) {\n\t\tif (dir.custprops.length !== 0) {\n\t\t\tpropdata = getzipdata(zip, dir.custprops[0].replace(/^\\//,''), true);\n\t\t\tif(propdata) custprops = parse_cust_props(propdata, opts);\n\t\t}\n\t}\n\n\tvar out = {};\n\tif(opts.bookSheets || opts.bookProps) {\n\t\tif(props.Worksheets && props.SheetNames.length > 0) sheets=props.SheetNames;\n\t\telse if(wb.Sheets) sheets = wb.Sheets.map(function pluck(x){ return x.name; });\n\t\tif(opts.bookProps) { out.Props = props; out.Custprops = custprops; }\n\t\tif(typeof sheets !== 'undefined') out.SheetNames = sheets;\n\t\tif(opts.bookSheets ? out.SheetNames : opts.bookProps) return out;\n\t}\n\tsheets = {};\n\n\tvar deps = {};\n\tif(opts.bookDeps && dir.calcchain) deps=parse_cc(getzipdata(zip, dir.calcchain.replace(/^\\//,'')),dir.calcchain,opts);\n\n\tvar i=0;\n\tvar sheetRels = {};\n\tvar path, relsPath;\n\tif(!props.Worksheets) {\n\t\tvar wbsheets = wb.Sheets;\n\t\tprops.Worksheets = wbsheets.length;\n\t\tprops.SheetNames = [];\n\t\tfor(var j = 0; j != wbsheets.length; ++j) {\n\t\t\tprops.SheetNames[j] = wbsheets[j].name;\n\t\t}\n\t}\n\n\tvar wbext = xlsb ? \"bin\" : \"xml\";\n\tvar wbrelsfile = 'xl/_rels/workbook.' + wbext + '.rels';\n\tvar wbrels = parse_rels(getzipdata(zip, wbrelsfile, true), wbrelsfile);\n\tif(wbrels) wbrels = safe_parse_wbrels(wbrels, wb.Sheets);\n\t/* Numbers iOS hack */\n\tvar nmode = (getzipdata(zip,\"xl/worksheets/sheet.xml\",true))?1:0;\n\tfor(i = 0; i != props.Worksheets; ++i) {\n\t\tif(wbrels) path = 'xl/' + (wbrels[i][1]).replace(/[\\/]?xl\\//, \"\");\n\t\telse {\n\t\t\tpath = 'xl/worksheets/sheet'+(i+1-nmode)+\".\" + wbext;\n\t\t\tpath = path.replace(/sheet0\\./,\"sheet.\");\n\t\t}\n\t\trelsPath = path.replace(/^(.*)(\\/)([^\\/]*)$/, \"$1/_rels/$3.rels\");\n\t\tsafe_parse_ws(zip, path, relsPath, props.SheetNames[i], sheetRels, sheets, opts);\n\t}\n\n\tif(dir.comments) parse_comments(zip, dir.comments, sheets, sheetRels, opts);\n\n\tout = {\n\t\tDirectory: dir,\n\t\tWorkbook: wb,\n\t\tProps: props,\n\t\tCustprops: custprops,\n\t\tDeps: deps,\n\t\tSheets: sheets,\n\t\tSheetNames: props.SheetNames,\n\t\tStrings: strs,\n\t\tStyles: styles,\n\t\tThemes: themes,\n\t\tSSF: SSF.get_table()\n\t};\n\tif(opts.bookFiles) {\n\t\tout.keys = entries;\n\t\tout.files = zip.files;\n\t}\n\tif(opts.bookVBA) {\n\t\tif(dir.vba.length > 0) out.vbaraw = getzipdata(zip,dir.vba[0],true);\n\t\telse if(dir.defaults.bin === 'application/vnd.ms-office.vbaProject') out.vbaraw = getzipdata(zip,'xl/vbaProject.bin',true);\n\t}\n\treturn out;\n}\nfunction add_rels(rels, rId, f, type, relobj) {\n\tif(!relobj) relobj = {};\n\tif(!rels['!id']) rels['!id'] = {};\n\trelobj.Id = 'rId' + rId;\n\trelobj.Type = type;\n\trelobj.Target = f;\n\tif(rels['!id'][relobj.Id]) throw new Error(\"Cannot rewrite rId \" + rId);\n\trels['!id'][relobj.Id] = relobj;\n\trels[('/' + relobj.Target).replace(\"//\",\"/\")] = relobj;\n}\n\nfunction write_zip(wb, opts) {\n\tif(wb && !wb.SSF) {\n\t\twb.SSF = SSF.get_table();\n\t}\n\tif(wb && wb.SSF) {\n\t\tmake_ssf(SSF); SSF.load_table(wb.SSF);\n\t\topts.revssf = evert_num(wb.SSF); opts.revssf[wb.SSF[65535]] = 0;\n\t}\n\topts.rels = {}; opts.wbrels = {};\n\topts.Strings = []; opts.Strings.Count = 0; opts.Strings.Unique = 0;\n\tvar wbext = opts.bookType == \"xlsb\" ? \"bin\" : \"xml\";\n\tvar ct = { workbooks: [], sheets: [], calcchains: [], themes: [], styles: [],\n\t\tcoreprops: [], extprops: [], custprops: [], strs:[], comments: [], vba: [],\n\t\tTODO:[], rels:[], xmlns: \"\" };\n\tfix_write_opts(opts = opts || {});\n\tvar zip = new jszip();\n\tvar f = \"\", rId = 0;\n\n\topts.cellXfs = [];\n\tget_cell_style(opts.cellXfs, {}, {revssf:{\"General\":0}});\n\n\tf = \"docProps/core.xml\";\n\tzip.file(f, write_core_props(wb.Props, opts));\n\tct.coreprops.push(f);\n\tadd_rels(opts.rels, 2, f, RELS.CORE_PROPS);\n\n\tf = \"docProps/app.xml\";\n\tif(!wb.Props) wb.Props = {};\n\twb.Props.SheetNames = wb.SheetNames;\n\twb.Props.Worksheets = wb.SheetNames.length;\n\tzip.file(f, write_ext_props(wb.Props, opts));\n\tct.extprops.push(f);\n\tadd_rels(opts.rels, 3, f, RELS.EXT_PROPS);\n\n\tif(wb.Custprops !== wb.Props && keys(wb.Custprops||{}).length > 0) {\n\t\tf = \"docProps/custom.xml\";\n\t\tzip.file(f, write_cust_props(wb.Custprops, opts));\n\t\tct.custprops.push(f);\n\t\tadd_rels(opts.rels, 4, f, RELS.CUST_PROPS);\n\t}\n\n\tf = \"xl/workbook.\" + wbext;\n\tzip.file(f, write_wb(wb, f, opts));\n\tct.workbooks.push(f);\n\tadd_rels(opts.rels, 1, f, RELS.WB);\n\n\tfor(rId=1;rId <= wb.SheetNames.length; ++rId) {\n\t\tf = \"xl/worksheets/sheet\" + rId + \".\" + wbext;\n\t\tzip.file(f, write_ws(rId-1, f, opts, wb));\n\t\tct.sheets.push(f);\n\t\tadd_rels(opts.wbrels, rId, \"worksheets/sheet\" + rId + \".\" + wbext, RELS.WS);\n\t}\n\n\tif(opts.Strings != null && opts.Strings.length > 0) {\n\t\tf = \"xl/sharedStrings.\" + wbext;\n\t\tzip.file(f, write_sst(opts.Strings, f, opts));\n\t\tct.strs.push(f);\n\t\tadd_rels(opts.wbrels, ++rId, \"sharedStrings.\" + wbext, RELS.SST);\n\t}\n\n\t/* TODO: something more intelligent with themes */\n\n\tf = \"xl/theme/theme1.xml\";\n\tzip.file(f, write_theme());\n\tct.themes.push(f);\n\tadd_rels(opts.wbrels, ++rId, \"theme/theme1.xml\", RELS.THEME);\n\n\t/* TODO: something more intelligent with styles */\n\n\tf = \"xl/styles.\" + wbext;\n\tzip.file(f, write_sty(wb, f, opts));\n\tct.styles.push(f);\n\tadd_rels(opts.wbrels, ++rId, \"styles.\" + wbext, RELS.STY);\n\n\tzip.file(\"[Content_Types].xml\", write_ct(ct, opts));\n\tzip.file('_rels/.rels', write_rels(opts.rels));\n\tzip.file('xl/_rels/workbook.' + wbext + '.rels', write_rels(opts.wbrels));\n\treturn zip;\n}\nfunction firstbyte(f,o) {\n\tswitch((o||{}).type || \"base64\") {\n\t\tcase 'buffer': return f[0];\n\t\tcase 'base64': return Base64.decode(f.substr(0,12)).charCodeAt(0);\n\t\tcase 'binary': return f.charCodeAt(0);\n\t\tcase 'array': return f[0];\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n}\n\nfunction read_zip(data, opts) {\n\tvar zip, d = data;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tswitch(o.type) {\n\t\tcase \"base64\": zip = new jszip(d, { base64:true }); break;\n\t\tcase \"binary\": case \"array\": zip = new jszip(d, { base64:false }); break;\n\t\tcase \"buffer\": zip = new jszip(d); break;\n\t\tcase \"file\": zip=new jszip(d=_fs.readFileSync(data)); break;\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n\treturn parse_zip(zip, o);\n}\n\nfunction readSync(data, opts) {\n\tvar zip, d = data, isfile = false, n;\n\tvar o = opts||{};\n\tif(!o.type) o.type = (has_buf && Buffer.isBuffer(data)) ? \"buffer\" : \"base64\";\n\tif(o.type == \"file\") { isfile = true; o.type = \"buffer\"; d = _fs.readFileSync(data); }\n\tswitch((n = firstbyte(d, o))) {\n\t\tcase 0xD0:\n\t\t\tif(isfile) o.type = \"file\";\n\t\t\treturn parse_xlscfb(CFB.read(data, o), o);\n\t\tcase 0x09: return parse_xlscfb(s2a(o.type === 'base64' ? Base64.decode(data) : data), o);\n\t\tcase 0x3C: return parse_xlml(d, o);\n\t\tcase 0x50:\n\t\t\tif(isfile) o.type = \"file\";\n\t\t\treturn read_zip(data, opts);\n\t\tdefault: throw new Error(\"Unsupported file \" + n);\n\t}\n}\n\nfunction readFileSync(data, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\treturn readSync(data, o);\n}\nfunction write_zip_type(wb, opts) {\n\tvar o = opts||{};\n\tvar z = write_zip(wb, o);\n\tswitch(o.type) {\n\t\tcase \"base64\": return z.generate({type:\"base64\"});\n\t\tcase \"binary\": return z.generate({type:\"string\"});\n\t\tcase \"buffer\": return z.generate({type:\"nodebuffer\"});\n\t\tcase \"file\": return _fs.writeFileSync(o.file, z.generate({type:\"nodebuffer\"}));\n\t\tdefault: throw new Error(\"Unrecognized type \" + o.type);\n\t}\n}\n\nfunction writeSync(wb, opts) {\n\tvar o = opts||{};\n\tswitch(o.bookType) {\n\t\tcase 'xml': return write_xlml(wb, o);\n\t\tdefault: return write_zip_type(wb, o);\n\t}\n}\n\nfunction writeFileSync(wb, filename, opts) {\n\tvar o = opts||{}; o.type = 'file';\n\to.file = filename;\n\tswitch(o.file.substr(-5).toLowerCase()) {\n\t\tcase '.xlsx': o.bookType = 'xlsx'; break;\n\t\tcase '.xlsm': o.bookType = 'xlsm'; break;\n\t\tcase '.xlsb': o.bookType = 'xlsb'; break;\n\tdefault: switch(o.file.substr(-4).toLowerCase()) {\n\t\tcase '.xls': o.bookType = 'xls'; break;\n\t\tcase '.xml': o.bookType = 'xml'; break;\n\t}}\n\treturn writeSync(wb, o);\n}\n\nfunction decode_row(rowstr) { return parseInt(unfix_row(rowstr),10) - 1; }\nfunction encode_row(row) { return \"\" + (row + 1); }\nfunction fix_row(cstr) { return cstr.replace(/([A-Z]|^)(\\d+)$/,\"$1$$$2\"); }\nfunction unfix_row(cstr) { return cstr.replace(/\\$(\\d+)$/,\"$1\"); }\n\nfunction decode_col(colstr) { var c = unfix_col(colstr), d = 0, i = 0; for(; i !== c.length; ++i) d = 26*d + c.charCodeAt(i) - 64; return d - 1; }\nfunction encode_col(col) { var s=\"\"; for(++col; col; col=Math.floor((col-1)/26)) s = String.fromCharCode(((col-1)%26) + 65) + s; return s; }\nfunction fix_col(cstr) { return cstr.replace(/^([A-Z])/,\"$$$1\"); }\nfunction unfix_col(cstr) { return cstr.replace(/^\\$([A-Z])/,\"$1\"); }\n\nfunction split_cell(cstr) { return cstr.replace(/(\\$?[A-Z]*)(\\$?\\d*)/,\"$1,$2\").split(\",\"); }\nfunction decode_cell(cstr) { var splt = split_cell(cstr); return { c:decode_col(splt[0]), r:decode_row(splt[1]) }; }\nfunction encode_cell(cell) { return encode_col(cell.c) + encode_row(cell.r); }\nfunction fix_cell(cstr) { return fix_col(fix_row(cstr)); }\nfunction unfix_cell(cstr) { return unfix_col(unfix_row(cstr)); }\nfunction decode_range(range) { var x =range.split(\":\").map(decode_cell); return {s:x[0],e:x[x.length-1]}; }\nfunction encode_range(cs,ce) {\n\tif(ce === undefined || typeof ce === 'number') return encode_range(cs.s, cs.e);\n\tif(typeof cs !== 'string') cs = encode_cell(cs); if(typeof ce !== 'string') ce = encode_cell(ce);\n\treturn cs == ce ? cs : cs + \":\" + ce;\n}\n\nfunction safe_decode_range(range) {\n\tvar o = {s:{c:0,r:0},e:{c:0,r:0}};\n\tvar idx = 0, i = 0, cc = 0;\n\tvar len = range.length;\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.s.c = --idx;\n\n\tfor(idx = 0; i < len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.s.r = --idx;\n\n\tif(i === len || range.charCodeAt(++i) === 58) { o.e.c=o.s.c; o.e.r=o.s.r; return o; }\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-64) < 1 || cc > 26) break;\n\t\tidx = 26*idx + cc;\n\t}\n\to.e.c = --idx;\n\n\tfor(idx = 0; i != len; ++i) {\n\t\tif((cc=range.charCodeAt(i)-48) < 0 || cc > 9) break;\n\t\tidx = 10*idx + cc;\n\t}\n\to.e.r = --idx;\n\treturn o;\n}\n\nfunction safe_format_cell(cell, v) {\n\tif(cell.z !== undefined) try { return (cell.w = SSF.format(cell.z, v)); } catch(e) { }\n\tif(!cell.XF) return v;\n\ttry { return (cell.w = SSF.format(cell.XF.ifmt||0, v)); } catch(e) { return ''+v; }\n}\n\nfunction format_cell(cell, v) {\n\tif(cell == null || cell.t == null) return \"\";\n\tif(cell.w !== undefined) return cell.w;\n\tif(v === undefined) return safe_format_cell(cell, cell.v);\n\treturn safe_format_cell(cell, v);\n}\n\nfunction sheet_to_json(sheet, opts){\n\tvar val, row, range, header = 0, offset = 1, r, hdr = [], isempty, R, C, v;\n\tvar o = opts != null ? opts : {};\n\tvar raw = o.raw;\n\tif(sheet == null || sheet[\"!ref\"] == null) return [];\n\trange = o.range !== undefined ? o.range : sheet[\"!ref\"];\n\tif(o.header === 1) header = 1;\n\telse if(o.header === \"A\") header = 2;\n\telse if(Array.isArray(o.header)) header = 3;\n\tswitch(typeof range) {\n\t\tcase 'string': r = safe_decode_range(range); break;\n\t\tcase 'number': r = safe_decode_range(sheet[\"!ref\"]); r.s.r = range; break;\n\t\tdefault: r = range;\n\t}\n\tif(header > 0) offset = 0;\n\tvar rr = encode_row(r.s.r);\n\tvar cols = new Array(r.e.c-r.s.c+1);\n\tvar out = new Array(r.e.r-r.s.r-offset+1);\n\tvar outi = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\tcols[C] = encode_col(C);\n\t\tval = sheet[cols[C] + rr];\n\t\tswitch(header) {\n\t\t\tcase 1: hdr[C] = C; break;\n\t\t\tcase 2: hdr[C] = cols[C]; break;\n\t\t\tcase 3: hdr[C] = o.header[C - r.s.c]; break;\n\t\t\tdefault:\n\t\t\t\tif(val === undefined) continue;\n\t\t\t\thdr[C] = format_cell(val);\n\t\t}\n\t}\n\n\tfor (R = r.s.r + offset; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tisempty = true;\n\t\tif(header === 1) row = [];\n\t\telse {\n\t\t\trow = {};\n\t\t\tif(Object.defineProperty) Object.defineProperty(row, '__rowNum__', {value:R, enumerable:false});\n\t\t\telse row.__rowNum__ = R;\n\t\t}\n\t\tfor (C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tval = sheet[cols[C] + rr];\n\t\t\tif(val === undefined || val.t === undefined) continue;\n\t\t\tv = val.v;\n\t\t\tswitch(val.t){\n\t\t\t\tcase 'e': continue;\n\t\t\t\tcase 's': break;\n\t\t\t\tcase 'b': case 'n': break;\n\t\t\t\tdefault: throw 'unrecognized type ' + val.t;\n\t\t\t}\n\t\t\tif(v !== undefined) {\n\t\t\t\trow[hdr[C]] = raw ? v : format_cell(val,v);\n\t\t\t\tisempty = false;\n\t\t\t}\n\t\t}\n\t\tif(isempty === false || header === 1) out[outi++] = row;\n\t}\n\tout.length = outi;\n\treturn out;\n}\n\nfunction sheet_to_row_object_array(sheet, opts) { return sheet_to_json(sheet, opts != null ? opts : {}); }\n\nfunction sheet_to_csv(sheet, opts) {\n\tvar out = \"\", txt = \"\", qreg = /\"/g;\n\tvar o = opts == null ? {} : opts;\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet[\"!ref\"]);\n\tvar FS = o.FS !== undefined ? o.FS : \",\", fs = FS.charCodeAt(0);\n\tvar RS = o.RS !== undefined ? o.RS : \"\\n\", rs = RS.charCodeAt(0);\n\tvar row = \"\", rr = \"\", cols = [];\n\tvar i = 0, cc = 0, val;\n\tvar R = 0, C = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(R = r.s.r; R <= r.e.r; ++R) {\n\t\trow = \"\";\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\tval = sheet[cols[C] + rr];\n\t\t\ttxt = val !== undefined ? ''+format_cell(val) : \"\";\n\t\t\tfor(i = 0, cc = 0; i !== txt.length; ++i) if((cc = txt.charCodeAt(i)) === fs || cc === rs || cc === 34) {\n\t\t\t\ttxt = \"\\\"\" + txt.replace(qreg, '\"\"') + \"\\\"\"; break; }\n\t\t\trow += (C === r.s.c ? \"\" : FS) + txt;\n\t\t}\n\t\tout += row + RS;\n\t}\n\treturn out;\n}\nvar make_csv = sheet_to_csv;\n\nfunction sheet_to_formulae(sheet) {\n\tvar cmds, y = \"\", x, val=\"\";\n\tif(sheet == null || sheet[\"!ref\"] == null) return \"\";\n\tvar r = safe_decode_range(sheet['!ref']), rr = \"\", cols = [], C;\n\tcmds = new Array((r.e.r-r.s.r+1)*(r.e.c-r.s.c+1));\n\tvar i = 0;\n\tfor(C = r.s.c; C <= r.e.c; ++C) cols[C] = encode_col(C);\n\tfor(var R = r.s.r; R <= r.e.r; ++R) {\n\t\trr = encode_row(R);\n\t\tfor(C = r.s.c; C <= r.e.c; ++C) {\n\t\t\ty = cols[C] + rr;\n\t\t\tx = sheet[y];\n\t\t\tval = \"\";\n\t\t\tif(x === undefined) continue;\n\t\t\tif(x.f != null) val = x.f;\n\t\t\telse if(x.w !== undefined) val = \"'\" + x.w;\n\t\t\telse if(x.v === undefined) continue;\n\t\t\telse val = \"\"+x.v;\n\t\t\tcmds[i++] = y + \"=\" + val;\n\t\t}\n\t}\n\tcmds.length = i;\n\treturn cmds;\n}\n\nvar utils = {\n\tencode_col: encode_col,\n\tencode_row: encode_row,\n\tencode_cell: encode_cell,\n\tencode_range: encode_range,\n\tdecode_col: decode_col,\n\tdecode_row: decode_row,\n\tsplit_cell: split_cell,\n\tdecode_cell: decode_cell,\n\tdecode_range: decode_range,\n\tformat_cell: format_cell,\n\tget_formulae: sheet_to_formulae,\n\tmake_csv: sheet_to_csv,\n\tmake_json: sheet_to_json,\n\tmake_formulae: sheet_to_formulae,\n\tsheet_to_csv: sheet_to_csv,\n\tsheet_to_json: sheet_to_json,\n\tsheet_to_formulae: sheet_to_formulae,\n\tsheet_to_row_object_array: sheet_to_row_object_array\n};\nXLSX.parse_xlscfb = parse_xlscfb;\nXLSX.parse_zip = parse_zip;\nXLSX.read = readSync; //xlsread\nXLSX.readFile = readFileSync; //readFile\nXLSX.readFileSync = readFileSync;\nXLSX.write = writeSync;\nXLSX.writeFile = writeFileSync;\nXLSX.writeFileSync = writeFileSync;\nXLSX.utils = utils;\nXLSX.CFB = CFB;\nXLSX.SSF = SSF;\n})(typeof exports !== 'undefined' ? exports : XLSX);\nvar XLS = XLSX;\n$tw.utils.extend(old_exports,exports);exports = old_exports;module.exports=exports;",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xlsx-utils/xlsx.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xlsx-utils/dist/cpexcel.js": {
"text": "if($tw.browser){Buffer = undefined;};/* cpexcel.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint -W100 */\nvar cptable = {version:\"1.3.7\"};\ncptable[874] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€����…�����������‘’“”•–—�������� กขฃคฅฆงจฉชซฌญฎฏฐฑฒณดตถทธนบปผฝพฟภมยรฤลฦวศษสหฬอฮฯะัาำิีึืฺุู����฿เแโใไๅๆ็่้๊๋์ํ๎๏๐๑๒๓๔๕๖๗๘๙๚๛����\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[932] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~���������������������������������。「」、・ヲァィゥェォャュョッーアイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワン゙゚��������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"���������������������������������������������������������������� 、。,.・:;?!゛゜´`¨^ ̄_ヽヾゝゞ〃仝々〆〇ー―‐/\~∥|…‥‘’“”()〔〕[]{}〈〉《》「」『』【】+-±×�÷=≠<>≦≧∞∴♂♀°′″℃¥$¢£%#&*@§☆★○●◎◇◆□■△▲▽▼※〒→←↑↓〓�����������∈∋⊆⊇⊂⊃∪∩��������∧∨¬⇒⇔∀∃�����������∠⊥⌒∂∇≡≒≪≫√∽∝∵∫∬�������ʼn♯♭♪†‡¶����◯���\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�������������������������������������������������������������������������������0123456789�������ABCDEFGHIJKLMNOPQRSTUVWXYZ�������abcdefghijklmnopqrstuvwxyz����ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん��������������\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミ�ムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ��������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�����������������������������������������\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмн�опрстуфхцчшщъыьэюя�������������─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂�����������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[135] = \"����������������������������������������������������������������①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮⑯⑰⑱⑲⑳ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�㍉㌔㌢㍍㌘㌧㌃㌶㍑㍗㌍㌦㌣㌫㍊㌻㎜㎝㎞㎎㎏㏄㎡��������㍻�〝〟№㏍℡㊤㊥㊦㊧㊨㈱㈲㈹㍾㍽㍼≒≡∫∮∑√⊥∠∟⊿∵∩∪���������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"���������������������������������������������������������������������������������������������������������������������������������������������������������������亜唖娃阿哀愛挨姶逢葵茜穐悪握渥旭葦芦鯵梓圧斡扱宛姐虻飴絢綾鮎或粟袷安庵按暗案闇鞍杏以伊位依偉囲夷委威尉惟意慰易椅為畏異移維緯胃萎衣謂違遺医井亥域育郁磯一壱溢逸稲茨芋鰯允印咽員因姻引飲淫胤蔭���\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������院陰隠韻吋右宇烏羽迂雨卯鵜窺丑碓臼渦嘘唄欝蔚鰻姥厩浦瓜閏噂云運雲荏餌叡営嬰影映曳栄永泳洩瑛盈穎頴英衛詠鋭液疫益駅悦謁越閲榎厭円�園堰奄宴延怨掩援沿演炎焔煙燕猿縁艶苑薗遠鉛鴛塩於汚甥凹央奥往応押旺横欧殴王翁襖鴬鴎黄岡沖荻億屋憶臆桶牡乙俺卸恩温穏音下化仮何伽価佳加可嘉夏嫁家寡科暇果架歌河火珂禍禾稼箇花苛茄荷華菓蝦課嘩貨迦過霞蚊俄峨我牙画臥芽蛾賀雅餓駕介会解回塊壊廻快怪悔恢懐戒拐改���\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������魁晦械海灰界皆絵芥蟹開階貝凱劾外咳害崖慨概涯碍蓋街該鎧骸浬馨蛙垣柿蛎鈎劃嚇各廓拡撹格核殻獲確穫覚角赫較郭閣隔革学岳楽額顎掛笠樫�橿梶鰍潟割喝恰括活渇滑葛褐轄且鰹叶椛樺鞄株兜竃蒲釜鎌噛鴨栢茅萱粥刈苅瓦乾侃冠寒刊勘勧巻喚堪姦完官寛干幹患感慣憾換敢柑桓棺款歓汗漢澗潅環甘監看竿管簡緩缶翰肝艦莞観諌貫還鑑間閑関陥韓館舘丸含岸巌玩癌眼岩翫贋雁頑顔願企伎危喜器基奇嬉寄岐希幾忌揮机旗既期棋棄���\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������機帰毅気汽畿祈季稀紀徽規記貴起軌輝飢騎鬼亀偽儀妓宜戯技擬欺犠疑祇義蟻誼議掬菊鞠吉吃喫桔橘詰砧杵黍却客脚虐逆丘久仇休及吸宮弓急救�朽求汲泣灸球究窮笈級糾給旧牛去居巨拒拠挙渠虚許距鋸漁禦魚亨享京供侠僑兇競共凶協匡卿叫喬境峡強彊怯恐恭挟教橋況狂狭矯胸脅興蕎郷鏡響饗驚仰凝尭暁業局曲極玉桐粁僅勤均巾錦斤欣欽琴禁禽筋緊芹菌衿襟謹近金吟銀九倶句区狗玖矩苦躯駆駈駒具愚虞喰空偶寓遇隅串櫛釧屑屈���\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������掘窟沓靴轡窪熊隈粂栗繰桑鍬勲君薫訓群軍郡卦袈祁係傾刑兄啓圭珪型契形径恵慶慧憩掲携敬景桂渓畦稽系経継繋罫茎荊蛍計詣警軽頚鶏芸迎鯨�劇戟撃激隙桁傑欠決潔穴結血訣月件倹倦健兼券剣喧圏堅嫌建憲懸拳捲検権牽犬献研硯絹県肩見謙賢軒遣鍵険顕験鹸元原厳幻弦減源玄現絃舷言諺限乎個古呼固姑孤己庫弧戸故枯湖狐糊袴股胡菰虎誇跨鈷雇顧鼓五互伍午呉吾娯後御悟梧檎瑚碁語誤護醐乞鯉交佼侯候倖光公功効勾厚口向���\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������后喉坑垢好孔孝宏工巧巷幸広庚康弘恒慌抗拘控攻昂晃更杭校梗構江洪浩港溝甲皇硬稿糠紅紘絞綱耕考肯肱腔膏航荒行衡講貢購郊酵鉱砿鋼閤降�項香高鴻剛劫号合壕拷濠豪轟麹克刻告国穀酷鵠黒獄漉腰甑忽惚骨狛込此頃今困坤墾婚恨懇昏昆根梱混痕紺艮魂些佐叉唆嵯左差査沙瑳砂詐鎖裟坐座挫債催再最哉塞妻宰彩才採栽歳済災采犀砕砦祭斎細菜裁載際剤在材罪財冴坂阪堺榊肴咲崎埼碕鷺作削咋搾昨朔柵窄策索錯桜鮭笹匙冊刷���\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������察拶撮擦札殺薩雑皐鯖捌錆鮫皿晒三傘参山惨撒散桟燦珊産算纂蚕讃賛酸餐斬暫残仕仔伺使刺司史嗣四士始姉姿子屍市師志思指支孜斯施旨枝止�死氏獅祉私糸紙紫肢脂至視詞詩試誌諮資賜雌飼歯事似侍児字寺慈持時次滋治爾璽痔磁示而耳自蒔辞汐鹿式識鴫竺軸宍雫七叱執失嫉室悉湿漆疾質実蔀篠偲柴芝屡蕊縞舎写射捨赦斜煮社紗者謝車遮蛇邪借勺尺杓灼爵酌釈錫若寂弱惹主取守手朱殊狩珠種腫趣酒首儒受呪寿授樹綬需囚収周���\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������宗就州修愁拾洲秀秋終繍習臭舟蒐衆襲讐蹴輯週酋酬集醜什住充十従戎柔汁渋獣縦重銃叔夙宿淑祝縮粛塾熟出術述俊峻春瞬竣舜駿准循旬楯殉淳�準潤盾純巡遵醇順処初所暑曙渚庶緒署書薯藷諸助叙女序徐恕鋤除傷償勝匠升召哨商唱嘗奨妾娼宵将小少尚庄床廠彰承抄招掌捷昇昌昭晶松梢樟樵沼消渉湘焼焦照症省硝礁祥称章笑粧紹肖菖蒋蕉衝裳訟証詔詳象賞醤鉦鍾鐘障鞘上丈丞乗冗剰城場壌嬢常情擾条杖浄状畳穣蒸譲醸錠嘱埴飾���\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������拭植殖燭織職色触食蝕辱尻伸信侵唇娠寝審心慎振新晋森榛浸深申疹真神秦紳臣芯薪親診身辛進針震人仁刃塵壬尋甚尽腎訊迅陣靭笥諏須酢図厨�逗吹垂帥推水炊睡粋翠衰遂酔錐錘随瑞髄崇嵩数枢趨雛据杉椙菅頗雀裾澄摺寸世瀬畝是凄制勢姓征性成政整星晴棲栖正清牲生盛精聖声製西誠誓請逝醒青静斉税脆隻席惜戚斥昔析石積籍績脊責赤跡蹟碩切拙接摂折設窃節説雪絶舌蝉仙先千占宣専尖川戦扇撰栓栴泉浅洗染潜煎煽旋穿箭線���\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������繊羨腺舛船薦詮賎践選遷銭銑閃鮮前善漸然全禅繕膳糎噌塑岨措曾曽楚狙疏疎礎祖租粗素組蘇訴阻遡鼠僧創双叢倉喪壮奏爽宋層匝惣想捜掃挿掻�操早曹巣槍槽漕燥争痩相窓糟総綜聡草荘葬蒼藻装走送遭鎗霜騒像増憎臓蔵贈造促側則即息捉束測足速俗属賊族続卒袖其揃存孫尊損村遜他多太汰詑唾堕妥惰打柁舵楕陀駄騨体堆対耐岱帯待怠態戴替泰滞胎腿苔袋貸退逮隊黛鯛代台大第醍題鷹滝瀧卓啄宅托択拓沢濯琢託鐸濁諾茸凧蛸只���\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������叩但達辰奪脱巽竪辿棚谷狸鱈樽誰丹単嘆坦担探旦歎淡湛炭短端箪綻耽胆蛋誕鍛団壇弾断暖檀段男談値知地弛恥智池痴稚置致蜘遅馳築畜竹筑蓄�逐秩窒茶嫡着中仲宙忠抽昼柱注虫衷註酎鋳駐樗瀦猪苧著貯丁兆凋喋寵帖帳庁弔張彫徴懲挑暢朝潮牒町眺聴脹腸蝶調諜超跳銚長頂鳥勅捗直朕沈珍賃鎮陳津墜椎槌追鎚痛通塚栂掴槻佃漬柘辻蔦綴鍔椿潰坪壷嬬紬爪吊釣鶴亭低停偵剃貞呈堤定帝底庭廷弟悌抵挺提梯汀碇禎程締艇訂諦蹄逓���\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������邸鄭釘鼎泥摘擢敵滴的笛適鏑溺哲徹撤轍迭鉄典填天展店添纏甜貼転顛点伝殿澱田電兎吐堵塗妬屠徒斗杜渡登菟賭途都鍍砥砺努度土奴怒倒党冬�凍刀唐塔塘套宕島嶋悼投搭東桃梼棟盗淘湯涛灯燈当痘祷等答筒糖統到董蕩藤討謄豆踏逃透鐙陶頭騰闘働動同堂導憧撞洞瞳童胴萄道銅峠鴇匿得徳涜特督禿篤毒独読栃橡凸突椴届鳶苫寅酉瀞噸屯惇敦沌豚遁頓呑曇鈍奈那内乍凪薙謎灘捺鍋楢馴縄畷南楠軟難汝二尼弐迩匂賑肉虹廿日乳入���\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������如尿韮任妊忍認濡禰祢寧葱猫熱年念捻撚燃粘乃廼之埜嚢悩濃納能脳膿農覗蚤巴把播覇杷波派琶破婆罵芭馬俳廃拝排敗杯盃牌背肺輩配倍培媒梅�楳煤狽買売賠陪這蝿秤矧萩伯剥博拍柏泊白箔粕舶薄迫曝漠爆縛莫駁麦函箱硲箸肇筈櫨幡肌畑畠八鉢溌発醗髪伐罰抜筏閥鳩噺塙蛤隼伴判半反叛帆搬斑板氾汎版犯班畔繁般藩販範釆煩頒飯挽晩番盤磐蕃蛮匪卑否妃庇彼悲扉批披斐比泌疲皮碑秘緋罷肥被誹費避非飛樋簸備尾微枇毘琵眉美���\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������鼻柊稗匹疋髭彦膝菱肘弼必畢筆逼桧姫媛紐百謬俵彪標氷漂瓢票表評豹廟描病秒苗錨鋲蒜蛭鰭品彬斌浜瀕貧賓頻敏瓶不付埠夫婦富冨布府怖扶敷�斧普浮父符腐膚芙譜負賦赴阜附侮撫武舞葡蕪部封楓風葺蕗伏副復幅服福腹複覆淵弗払沸仏物鮒分吻噴墳憤扮焚奮粉糞紛雰文聞丙併兵塀幣平弊柄並蔽閉陛米頁僻壁癖碧別瞥蔑箆偏変片篇編辺返遍便勉娩弁鞭保舗鋪圃捕歩甫補輔穂募墓慕戊暮母簿菩倣俸包呆報奉宝峰峯崩庖抱捧放方朋���\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������法泡烹砲縫胞芳萌蓬蜂褒訪豊邦鋒飽鳳鵬乏亡傍剖坊妨帽忘忙房暴望某棒冒紡肪膨謀貌貿鉾防吠頬北僕卜墨撲朴牧睦穆釦勃没殆堀幌奔本翻凡盆�摩磨魔麻埋妹昧枚毎哩槙幕膜枕鮪柾鱒桝亦俣又抹末沫迄侭繭麿万慢満漫蔓味未魅巳箕岬密蜜湊蓑稔脈妙粍民眠務夢無牟矛霧鵡椋婿娘冥名命明盟迷銘鳴姪牝滅免棉綿緬面麺摸模茂妄孟毛猛盲網耗蒙儲木黙目杢勿餅尤戻籾貰問悶紋門匁也冶夜爺耶野弥矢厄役約薬訳躍靖柳薮鑓愉愈油癒���\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������諭輸唯佑優勇友宥幽悠憂揖有柚湧涌猶猷由祐裕誘遊邑郵雄融夕予余与誉輿預傭幼妖容庸揚揺擁曜楊様洋溶熔用窯羊耀葉蓉要謡踊遥陽養慾抑欲�沃浴翌翼淀羅螺裸来莱頼雷洛絡落酪乱卵嵐欄濫藍蘭覧利吏履李梨理璃痢裏裡里離陸律率立葎掠略劉流溜琉留硫粒隆竜龍侶慮旅虜了亮僚両凌寮料梁涼猟療瞭稜糧良諒遼量陵領力緑倫厘林淋燐琳臨輪隣鱗麟瑠塁涙累類令伶例冷励嶺怜玲礼苓鈴隷零霊麗齢暦歴列劣烈裂廉恋憐漣煉簾練聯���\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������蓮連錬呂魯櫓炉賂路露労婁廊弄朗楼榔浪漏牢狼篭老聾蝋郎六麓禄肋録論倭和話歪賄脇惑枠鷲亙亘鰐詫藁蕨椀湾碗腕��������������������������������������������弌丐丕个丱丶丼丿乂乖乘亂亅豫亊舒弍于亞亟亠亢亰亳亶从仍仄仆仂仗仞仭仟价伉佚估佛佝佗佇佶侈侏侘佻佩佰侑佯來侖儘俔俟俎俘俛俑俚俐俤俥倚倨倔倪倥倅伜俶倡倩倬俾俯們倆偃假會偕偐偈做偖偬偸傀傚傅傴傲���\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������僉僊傳僂僖僞僥僭僣僮價僵儉儁儂儖儕儔儚儡儺儷儼儻儿兀兒兌兔兢竸兩兪兮冀冂囘册冉冏冑冓冕冖冤冦冢冩冪冫决冱冲冰况冽凅凉凛几處凩凭�凰凵凾刄刋刔刎刧刪刮刳刹剏剄剋剌剞剔剪剴剩剳剿剽劍劔劒剱劈劑辨辧劬劭劼劵勁勍勗勞勣勦飭勠勳勵勸勹匆匈甸匍匐匏匕匚匣匯匱匳匸區卆卅丗卉卍凖卞卩卮夘卻卷厂厖厠厦厥厮厰厶參簒雙叟曼燮叮叨叭叺吁吽呀听吭吼吮吶吩吝呎咏呵咎呟呱呷呰咒呻咀呶咄咐咆哇咢咸咥咬哄哈咨���\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������咫哂咤咾咼哘哥哦唏唔哽哮哭哺哢唹啀啣啌售啜啅啖啗唸唳啝喙喀咯喊喟啻啾喘喞單啼喃喩喇喨嗚嗅嗟嗄嗜嗤嗔嘔嗷嘖嗾嗽嘛嗹噎噐營嘴嘶嘲嘸�噫噤嘯噬噪嚆嚀嚊嚠嚔嚏嚥嚮嚶嚴囂嚼囁囃囀囈囎囑囓囗囮囹圀囿圄圉圈國圍圓團圖嗇圜圦圷圸坎圻址坏坩埀垈坡坿垉垓垠垳垤垪垰埃埆埔埒埓堊埖埣堋堙堝塲堡塢塋塰毀塒堽塹墅墹墟墫墺壞墻墸墮壅壓壑壗壙壘壥壜壤壟壯壺壹壻壼壽夂夊夐夛梦夥夬夭夲夸夾竒奕奐奎奚奘奢奠奧奬奩���\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������奸妁妝佞侫妣妲姆姨姜妍姙姚娥娟娑娜娉娚婀婬婉娵娶婢婪媚媼媾嫋嫂媽嫣嫗嫦嫩嫖嫺嫻嬌嬋嬖嬲嫐嬪嬶嬾孃孅孀孑孕孚孛孥孩孰孳孵學斈孺宀�它宦宸寃寇寉寔寐寤實寢寞寥寫寰寶寳尅將專對尓尠尢尨尸尹屁屆屎屓屐屏孱屬屮乢屶屹岌岑岔妛岫岻岶岼岷峅岾峇峙峩峽峺峭嶌峪崋崕崗嵜崟崛崑崔崢崚崙崘嵌嵒嵎嵋嵬嵳嵶嶇嶄嶂嶢嶝嶬嶮嶽嶐嶷嶼巉巍巓巒巖巛巫已巵帋帚帙帑帛帶帷幄幃幀幎幗幔幟幢幤幇幵并幺麼广庠廁廂廈廐廏���\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������廖廣廝廚廛廢廡廨廩廬廱廳廰廴廸廾弃弉彝彜弋弑弖弩弭弸彁彈彌彎弯彑彖彗彙彡彭彳彷徃徂彿徊很徑徇從徙徘徠徨徭徼忖忻忤忸忱忝悳忿怡恠�怙怐怩怎怱怛怕怫怦怏怺恚恁恪恷恟恊恆恍恣恃恤恂恬恫恙悁悍惧悃悚悄悛悖悗悒悧悋惡悸惠惓悴忰悽惆悵惘慍愕愆惶惷愀惴惺愃愡惻惱愍愎慇愾愨愧慊愿愼愬愴愽慂慄慳慷慘慙慚慫慴慯慥慱慟慝慓慵憙憖憇憬憔憚憊憑憫憮懌懊應懷懈懃懆憺懋罹懍懦懣懶懺懴懿懽懼懾戀戈戉戍戌戔戛���\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������戞戡截戮戰戲戳扁扎扞扣扛扠扨扼抂抉找抒抓抖拔抃抔拗拑抻拏拿拆擔拈拜拌拊拂拇抛拉挌拮拱挧挂挈拯拵捐挾捍搜捏掖掎掀掫捶掣掏掉掟掵捫�捩掾揩揀揆揣揉插揶揄搖搴搆搓搦搶攝搗搨搏摧摯摶摎攪撕撓撥撩撈撼據擒擅擇撻擘擂擱擧舉擠擡抬擣擯攬擶擴擲擺攀擽攘攜攅攤攣攫攴攵攷收攸畋效敖敕敍敘敞敝敲數斂斃變斛斟斫斷旃旆旁旄旌旒旛旙无旡旱杲昊昃旻杳昵昶昴昜晏晄晉晁晞晝晤晧晨晟晢晰暃暈暎暉暄暘暝曁暹曉暾暼���\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������曄暸曖曚曠昿曦曩曰曵曷朏朖朞朦朧霸朮朿朶杁朸朷杆杞杠杙杣杤枉杰枩杼杪枌枋枦枡枅枷柯枴柬枳柩枸柤柞柝柢柮枹柎柆柧檜栞框栩桀桍栲桎�梳栫桙档桷桿梟梏梭梔條梛梃檮梹桴梵梠梺椏梍桾椁棊椈棘椢椦棡椌棍棔棧棕椶椒椄棗棣椥棹棠棯椨椪椚椣椡棆楹楷楜楸楫楔楾楮椹楴椽楙椰楡楞楝榁楪榲榮槐榿槁槓榾槎寨槊槝榻槃榧樮榑榠榜榕榴槞槨樂樛槿權槹槲槧樅榱樞槭樔槫樊樒櫁樣樓橄樌橲樶橸橇橢橙橦橈樸樢檐檍檠檄檢檣���\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������檗蘗檻櫃櫂檸檳檬櫞櫑櫟檪櫚櫪櫻欅蘖櫺欒欖鬱欟欸欷盜欹飮歇歃歉歐歙歔歛歟歡歸歹歿殀殄殃殍殘殕殞殤殪殫殯殲殱殳殷殼毆毋毓毟毬毫毳毯�麾氈氓气氛氤氣汞汕汢汪沂沍沚沁沛汾汨汳沒沐泄泱泓沽泗泅泝沮沱沾沺泛泯泙泪洟衍洶洫洽洸洙洵洳洒洌浣涓浤浚浹浙涎涕濤涅淹渕渊涵淇淦涸淆淬淞淌淨淒淅淺淙淤淕淪淮渭湮渮渙湲湟渾渣湫渫湶湍渟湃渺湎渤滿渝游溂溪溘滉溷滓溽溯滄溲滔滕溏溥滂溟潁漑灌滬滸滾漿滲漱滯漲滌���\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[224] = \"����������������������������������������������������������������漾漓滷澆潺潸澁澀潯潛濳潭澂潼潘澎澑濂潦澳澣澡澤澹濆澪濟濕濬濔濘濱濮濛瀉瀋濺瀑瀁瀏濾瀛瀚潴瀝瀘瀟瀰瀾瀲灑灣炙炒炯烱炬炸炳炮烟烋烝�烙焉烽焜焙煥煕熈煦煢煌煖煬熏燻熄熕熨熬燗熹熾燒燉燔燎燠燬燧燵燼燹燿爍爐爛爨爭爬爰爲爻爼爿牀牆牋牘牴牾犂犁犇犒犖犢犧犹犲狃狆狄狎狒狢狠狡狹狷倏猗猊猜猖猝猴猯猩猥猾獎獏默獗獪獨獰獸獵獻獺珈玳珎玻珀珥珮珞璢琅瑯琥珸琲琺瑕琿瑟瑙瑁瑜瑩瑰瑣瑪瑶瑾璋璞璧瓊瓏瓔珱���\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������瓠瓣瓧瓩瓮瓲瓰瓱瓸瓷甄甃甅甌甎甍甕甓甞甦甬甼畄畍畊畉畛畆畚畩畤畧畫畭畸當疆疇畴疊疉疂疔疚疝疥疣痂疳痃疵疽疸疼疱痍痊痒痙痣痞痾痿�痼瘁痰痺痲痳瘋瘍瘉瘟瘧瘠瘡瘢瘤瘴瘰瘻癇癈癆癜癘癡癢癨癩癪癧癬癰癲癶癸發皀皃皈皋皎皖皓皙皚皰皴皸皹皺盂盍盖盒盞盡盥盧盪蘯盻眈眇眄眩眤眞眥眦眛眷眸睇睚睨睫睛睥睿睾睹瞎瞋瞑瞠瞞瞰瞶瞹瞿瞼瞽瞻矇矍矗矚矜矣矮矼砌砒礦砠礪硅碎硴碆硼碚碌碣碵碪碯磑磆磋磔碾碼磅磊磬���\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������磧磚磽磴礇礒礑礙礬礫祀祠祗祟祚祕祓祺祿禊禝禧齋禪禮禳禹禺秉秕秧秬秡秣稈稍稘稙稠稟禀稱稻稾稷穃穗穉穡穢穩龝穰穹穽窈窗窕窘窖窩竈窰�窶竅竄窿邃竇竊竍竏竕竓站竚竝竡竢竦竭竰笂笏笊笆笳笘笙笞笵笨笶筐筺笄筍笋筌筅筵筥筴筧筰筱筬筮箝箘箟箍箜箚箋箒箏筝箙篋篁篌篏箴篆篝篩簑簔篦篥籠簀簇簓篳篷簗簍篶簣簧簪簟簷簫簽籌籃籔籏籀籐籘籟籤籖籥籬籵粃粐粤粭粢粫粡粨粳粲粱粮粹粽糀糅糂糘糒糜糢鬻糯糲糴糶糺紆���\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������紂紜紕紊絅絋紮紲紿紵絆絳絖絎絲絨絮絏絣經綉絛綏絽綛綺綮綣綵緇綽綫總綢綯緜綸綟綰緘緝緤緞緻緲緡縅縊縣縡縒縱縟縉縋縢繆繦縻縵縹繃縷�縲縺繧繝繖繞繙繚繹繪繩繼繻纃緕繽辮繿纈纉續纒纐纓纔纖纎纛纜缸缺罅罌罍罎罐网罕罔罘罟罠罨罩罧罸羂羆羃羈羇羌羔羞羝羚羣羯羲羹羮羶羸譱翅翆翊翕翔翡翦翩翳翹飜耆耄耋耒耘耙耜耡耨耿耻聊聆聒聘聚聟聢聨聳聲聰聶聹聽聿肄肆肅肛肓肚肭冐肬胛胥胙胝胄胚胖脉胯胱脛脩脣脯腋���\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������隋腆脾腓腑胼腱腮腥腦腴膃膈膊膀膂膠膕膤膣腟膓膩膰膵膾膸膽臀臂膺臉臍臑臙臘臈臚臟臠臧臺臻臾舁舂舅與舊舍舐舖舩舫舸舳艀艙艘艝艚艟艤�艢艨艪艫舮艱艷艸艾芍芒芫芟芻芬苡苣苟苒苴苳苺莓范苻苹苞茆苜茉苙茵茴茖茲茱荀茹荐荅茯茫茗茘莅莚莪莟莢莖茣莎莇莊荼莵荳荵莠莉莨菴萓菫菎菽萃菘萋菁菷萇菠菲萍萢萠莽萸蔆菻葭萪萼蕚蒄葷葫蒭葮蒂葩葆萬葯葹萵蓊葢蒹蒿蒟蓙蓍蒻蓚蓐蓁蓆蓖蒡蔡蓿蓴蔗蔘蔬蔟蔕蔔蓼蕀蕣蕘蕈���\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������蕁蘂蕋蕕薀薤薈薑薊薨蕭薔薛藪薇薜蕷蕾薐藉薺藏薹藐藕藝藥藜藹蘊蘓蘋藾藺蘆蘢蘚蘰蘿虍乕虔號虧虱蚓蚣蚩蚪蚋蚌蚶蚯蛄蛆蚰蛉蠣蚫蛔蛞蛩蛬�蛟蛛蛯蜒蜆蜈蜀蜃蛻蜑蜉蜍蛹蜊蜴蜿蜷蜻蜥蜩蜚蝠蝟蝸蝌蝎蝴蝗蝨蝮蝙蝓蝣蝪蠅螢螟螂螯蟋螽蟀蟐雖螫蟄螳蟇蟆螻蟯蟲蟠蠏蠍蟾蟶蟷蠎蟒蠑蠖蠕蠢蠡蠱蠶蠹蠧蠻衄衂衒衙衞衢衫袁衾袞衵衽袵衲袂袗袒袮袙袢袍袤袰袿袱裃裄裔裘裙裝裹褂裼裴裨裲褄褌褊褓襃褞褥褪褫襁襄褻褶褸襌褝襠襞���\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������襦襤襭襪襯襴襷襾覃覈覊覓覘覡覩覦覬覯覲覺覽覿觀觚觜觝觧觴觸訃訖訐訌訛訝訥訶詁詛詒詆詈詼詭詬詢誅誂誄誨誡誑誥誦誚誣諄諍諂諚諫諳諧�諤諱謔諠諢諷諞諛謌謇謚諡謖謐謗謠謳鞫謦謫謾謨譁譌譏譎證譖譛譚譫譟譬譯譴譽讀讌讎讒讓讖讙讚谺豁谿豈豌豎豐豕豢豬豸豺貂貉貅貊貍貎貔豼貘戝貭貪貽貲貳貮貶賈賁賤賣賚賽賺賻贄贅贊贇贏贍贐齎贓賍贔贖赧赭赱赳趁趙跂趾趺跏跚跖跌跛跋跪跫跟跣跼踈踉跿踝踞踐踟蹂踵踰踴蹊���\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������蹇蹉蹌蹐蹈蹙蹤蹠踪蹣蹕蹶蹲蹼躁躇躅躄躋躊躓躑躔躙躪躡躬躰軆躱躾軅軈軋軛軣軼軻軫軾輊輅輕輒輙輓輜輟輛輌輦輳輻輹轅轂輾轌轉轆轎轗轜�轢轣轤辜辟辣辭辯辷迚迥迢迪迯邇迴逅迹迺逑逕逡逍逞逖逋逧逶逵逹迸遏遐遑遒逎遉逾遖遘遞遨遯遶隨遲邂遽邁邀邊邉邏邨邯邱邵郢郤扈郛鄂鄒鄙鄲鄰酊酖酘酣酥酩酳酲醋醉醂醢醫醯醪醵醴醺釀釁釉釋釐釖釟釡釛釼釵釶鈞釿鈔鈬鈕鈑鉞鉗鉅鉉鉤鉈銕鈿鉋鉐銜銖銓銛鉚鋏銹銷鋩錏鋺鍄錮���\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������錙錢錚錣錺錵錻鍜鍠鍼鍮鍖鎰鎬鎭鎔鎹鏖鏗鏨鏥鏘鏃鏝鏐鏈鏤鐚鐔鐓鐃鐇鐐鐶鐫鐵鐡鐺鑁鑒鑄鑛鑠鑢鑞鑪鈩鑰鑵鑷鑽鑚鑼鑾钁鑿閂閇閊閔閖閘閙�閠閨閧閭閼閻閹閾闊濶闃闍闌闕闔闖關闡闥闢阡阨阮阯陂陌陏陋陷陜陞陝陟陦陲陬隍隘隕隗險隧隱隲隰隴隶隸隹雎雋雉雍襍雜霍雕雹霄霆霈霓霎霑霏霖霙霤霪霰霹霽霾靄靆靈靂靉靜靠靤靦靨勒靫靱靹鞅靼鞁靺鞆鞋鞏鞐鞜鞨鞦鞣鞳鞴韃韆韈韋韜韭齏韲竟韶韵頏頌頸頤頡頷頽顆顏顋顫顯顰���\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������顱顴顳颪颯颱颶飄飃飆飩飫餃餉餒餔餘餡餝餞餤餠餬餮餽餾饂饉饅饐饋饑饒饌饕馗馘馥馭馮馼駟駛駝駘駑駭駮駱駲駻駸騁騏騅駢騙騫騷驅驂驀驃�騾驕驍驛驗驟驢驥驤驩驫驪骭骰骼髀髏髑髓體髞髟髢髣髦髯髫髮髴髱髷髻鬆鬘鬚鬟鬢鬣鬥鬧鬨鬩鬪鬮鬯鬲魄魃魏魍魎魑魘魴鮓鮃鮑鮖鮗鮟鮠鮨鮴鯀鯊鮹鯆鯏鯑鯒鯣鯢鯤鯔鯡鰺鯲鯱鯰鰕鰔鰉鰓鰌鰆鰈鰒鰊鰄鰮鰛鰥鰤鰡鰰鱇鰲鱆鰾鱚鱠鱧鱶鱸鳧鳬鳰鴉鴈鳫鴃鴆鴪鴦鶯鴣鴟鵄鴕鴒鵁鴿鴾鵆鵈���\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������鵝鵞鵤鵑鵐鵙鵲鶉鶇鶫鵯鵺鶚鶤鶩鶲鷄鷁鶻鶸鶺鷆鷏鷂鷙鷓鷸鷦鷭鷯鷽鸚鸛鸞鹵鹹鹽麁麈麋麌麒麕麑麝麥麩麸麪麭靡黌黎黏黐黔黜點黝黠黥黨黯�黴黶黷黹黻黼黽鼇鼈皷鼕鼡鼬鼾齊齒齔齣齟齠齡齦齧齬齪齷齲齶龕龜龠堯槇遙瑤凜熙�������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[237] = \"����������������������������������������������������������������纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏�塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱���\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙�蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑��ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ¬¦'"���\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[250] = \"����������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ¬¦'"㈱№℡∵纊褜鍈銈蓜俉炻昱棈鋹曻彅丨仡仼伀伃伹佖侒侊侚侔俍偀倢俿倞偆偰偂傔僴僘兊�兤冝冾凬刕劜劦勀勛匀匇匤卲厓厲叝﨎咜咊咩哿喆坙坥垬埈埇﨏塚增墲夋奓奛奝奣妤妺孖寀甯寘寬尞岦岺峵崧嵓﨑嵂嵭嶸嶹巐弡弴彧德忞恝悅悊惞惕愠惲愑愷愰憘戓抦揵摠撝擎敎昀昕昻昉昮昞昤晥晗晙晴晳暙暠暲暿曺朎朗杦枻桒柀栁桄棏﨓楨﨔榘槢樰橫橆橳橾櫢櫤毖氿汜沆汯泚洄涇浯���\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������涖涬淏淸淲淼渹湜渧渼溿澈澵濵瀅瀇瀨炅炫焏焄煜煆煇凞燁燾犱犾猤猪獷玽珉珖珣珒琇珵琦琪琩琮瑢璉璟甁畯皂皜皞皛皦益睆劯砡硎硤硺礰礼神�祥禔福禛竑竧靖竫箞精絈絜綷綠緖繒罇羡羽茁荢荿菇菶葈蒴蕓蕙蕫﨟薰蘒﨡蠇裵訒訷詹誧誾諟諸諶譓譿賰賴贒赶﨣軏﨤逸遧郞都鄕鄧釚釗釞釭釮釤釥鈆鈐鈊鈺鉀鈼鉎鉙鉑鈹鉧銧鉷鉸鋧鋗鋙鋐﨧鋕鋠鋓錥錡鋻﨨錞鋿錝錂鍰鍗鎤鏆鏞鏸鐱鑅鑈閒隆﨩隝隯霳霻靃靍靏靑靕顗顥飯飼餧館馞驎髙���\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������髜魵魲鮏鮱鮻鰀鵰鵫鶴鸙黑������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[936] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"����������������������������������������������������������������丂丄丅丆丏丒丗丟丠両丣並丩丮丯丱丳丵丷丼乀乁乂乄乆乊乑乕乗乚乛乢乣乤乥乧乨乪乫乬乭乮乯乲乴乵乶乷乸乹乺乻乼乽乿亀亁亂亃亄亅亇亊�亐亖亗亙亜亝亞亣亪亯亰亱亴亶亷亸亹亼亽亾仈仌仏仐仒仚仛仜仠仢仦仧仩仭仮仯仱仴仸仹仺仼仾伀伂伃伄伅伆伇伈伋伌伒伓伔伕伖伜伝伡伣伨伩伬伭伮伱伳伵伷伹伻伾伿佀佁佂佄佅佇佈佉佊佋佌佒佔佖佡佢佦佨佪佫佭佮佱佲併佷佸佹佺佽侀侁侂侅來侇侊侌侎侐侒侓侕侖侘侙侚侜侞侟価侢�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"����������������������������������������������������������������侤侫侭侰侱侲侳侴侶侷侸侹侺侻侼侽侾俀俁係俆俇俈俉俋俌俍俒俓俔俕俖俙俛俠俢俤俥俧俫俬俰俲俴俵俶俷俹俻俼俽俿倀倁倂倃倄倅倆倇倈倉倊�個倎倐們倓倕倖倗倛倝倞倠倢倣値倧倫倯倰倱倲倳倴倵倶倷倸倹倻倽倿偀偁偂偄偅偆偉偊偋偍偐偑偒偓偔偖偗偘偙偛偝偞偟偠偡偢偣偤偦偧偨偩偪偫偭偮偯偰偱偲偳側偵偸偹偺偼偽傁傂傃傄傆傇傉傊傋傌傎傏傐傑傒傓傔傕傖傗傘備傚傛傜傝傞傟傠傡傢傤傦傪傫傭傮傯傰傱傳傴債傶傷傸傹傼�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"����������������������������������������������������������������傽傾傿僀僁僂僃僄僅僆僇僈僉僊僋僌働僎僐僑僒僓僔僕僗僘僙僛僜僝僞僟僠僡僢僣僤僥僨僩僪僫僯僰僱僲僴僶僷僸價僺僼僽僾僿儀儁儂儃億儅儈�儉儊儌儍儎儏儐儑儓儔儕儖儗儘儙儚儛儜儝儞償儠儢儣儤儥儦儧儨儩優儫儬儭儮儯儰儱儲儳儴儵儶儷儸儹儺儻儼儽儾兂兇兊兌兎兏児兒兓兗兘兙兛兝兞兟兠兡兣兤兦內兩兪兯兲兺兾兿冃冄円冇冊冋冎冏冐冑冓冔冘冚冝冞冟冡冣冦冧冨冩冪冭冮冴冸冹冺冾冿凁凂凃凅凈凊凍凎凐凒凓凔凕凖凗�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"����������������������������������������������������������������凘凙凚凜凞凟凢凣凥処凧凨凩凪凬凮凱凲凴凷凾刄刅刉刋刌刏刐刓刔刕刜刞刟刡刢刣別刦刧刪刬刯刱刲刴刵刼刾剄剅剆則剈剉剋剎剏剒剓剕剗剘�剙剚剛剝剟剠剢剣剤剦剨剫剬剭剮剰剱剳剴創剶剷剸剹剺剻剼剾劀劃劄劅劆劇劉劊劋劌劍劎劏劑劒劔劕劖劗劘劙劚劜劤劥劦劧劮劯劰労劵劶劷劸効劺劻劼劽勀勁勂勄勅勆勈勊勌勍勎勏勑勓勔動勗務勚勛勜勝勞勠勡勢勣勥勦勧勨勩勪勫勬勭勮勯勱勲勳勴勵勶勷勸勻勼勽匁匂匃匄匇匉匊匋匌匎�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"����������������������������������������������������������������匑匒匓匔匘匛匜匞匟匢匤匥匧匨匩匫匬匭匯匰匱匲匳匴匵匶匷匸匼匽區卂卄卆卋卌卍卐協単卙卛卝卥卨卪卬卭卲卶卹卻卼卽卾厀厁厃厇厈厊厎厏�厐厑厒厓厔厖厗厙厛厜厞厠厡厤厧厪厫厬厭厯厰厱厲厳厴厵厷厸厹厺厼厽厾叀參叄叅叆叇収叏叐叒叓叕叚叜叝叞叡叢叧叴叺叾叿吀吂吅吇吋吔吘吙吚吜吢吤吥吪吰吳吶吷吺吽吿呁呂呄呅呇呉呌呍呎呏呑呚呝呞呟呠呡呣呥呧呩呪呫呬呭呮呯呰呴呹呺呾呿咁咃咅咇咈咉咊咍咑咓咗咘咜咞咟咠咡�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"����������������������������������������������������������������咢咥咮咰咲咵咶咷咹咺咼咾哃哅哊哋哖哘哛哠員哢哣哤哫哬哯哰哱哴哵哶哷哸哹哻哾唀唂唃唄唅唈唊唋唌唍唎唒唓唕唖唗唘唙唚唜唝唞唟唡唥唦�唨唩唫唭唲唴唵唶唸唹唺唻唽啀啂啅啇啈啋啌啍啎問啑啒啓啔啗啘啙啚啛啝啞啟啠啢啣啨啩啫啯啰啱啲啳啴啹啺啽啿喅喆喌喍喎喐喒喓喕喖喗喚喛喞喠喡喢喣喤喥喦喨喩喪喫喬喭單喯喰喲喴営喸喺喼喿嗀嗁嗂嗃嗆嗇嗈嗊嗋嗎嗏嗐嗕嗗嗘嗙嗚嗛嗞嗠嗢嗧嗩嗭嗮嗰嗱嗴嗶嗸嗹嗺嗻嗼嗿嘂嘃嘄嘅�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"����������������������������������������������������������������嘆嘇嘊嘋嘍嘐嘑嘒嘓嘔嘕嘖嘗嘙嘚嘜嘝嘠嘡嘢嘥嘦嘨嘩嘪嘫嘮嘯嘰嘳嘵嘷嘸嘺嘼嘽嘾噀噁噂噃噄噅噆噇噈噉噊噋噏噐噑噒噓噕噖噚噛噝噞噟噠噡�噣噥噦噧噭噮噯噰噲噳噴噵噷噸噹噺噽噾噿嚀嚁嚂嚃嚄嚇嚈嚉嚊嚋嚌嚍嚐嚑嚒嚔嚕嚖嚗嚘嚙嚚嚛嚜嚝嚞嚟嚠嚡嚢嚤嚥嚦嚧嚨嚩嚪嚫嚬嚭嚮嚰嚱嚲嚳嚴嚵嚶嚸嚹嚺嚻嚽嚾嚿囀囁囂囃囄囅囆囇囈囉囋囌囍囎囏囐囑囒囓囕囖囘囙囜団囥囦囧囨囩囪囬囮囯囲図囶囷囸囻囼圀圁圂圅圇國圌圍圎圏圐圑�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"����������������������������������������������������������������園圓圔圕圖圗團圙圚圛圝圞圠圡圢圤圥圦圧圫圱圲圴圵圶圷圸圼圽圿坁坃坄坅坆坈坉坋坒坓坔坕坖坘坙坢坣坥坧坬坮坰坱坲坴坵坸坹坺坽坾坿垀�垁垇垈垉垊垍垎垏垐垑垔垕垖垗垘垙垚垜垝垞垟垥垨垪垬垯垰垱垳垵垶垷垹垺垻垼垽垾垿埀埁埄埅埆埇埈埉埊埌埍埐埑埓埖埗埛埜埞埡埢埣埥埦埧埨埩埪埫埬埮埰埱埲埳埵埶執埻埼埾埿堁堃堄堅堈堉堊堌堎堏堐堒堓堔堖堗堘堚堛堜堝堟堢堣堥堦堧堨堩堫堬堭堮堯報堲堳場堶堷堸堹堺堻堼堽�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"����������������������������������������������������������������堾堿塀塁塂塃塅塆塇塈塉塊塋塎塏塐塒塓塕塖塗塙塚塛塜塝塟塠塡塢塣塤塦塧塨塩塪塭塮塯塰塱塲塳塴塵塶塷塸塹塺塻塼塽塿墂墄墆墇墈墊墋墌�墍墎墏墐墑墔墕墖増墘墛墜墝墠墡墢墣墤墥墦墧墪墫墬墭墮墯墰墱墲墳墴墵墶墷墸墹墺墻墽墾墿壀壂壃壄壆壇壈壉壊壋壌壍壎壏壐壒壓壔壖壗壘壙壚壛壜壝壞壟壠壡壢壣壥壦壧壨壩壪壭壯壱売壴壵壷壸壺壻壼壽壾壿夀夁夃夅夆夈変夊夋夌夎夐夑夒夓夗夘夛夝夞夠夡夢夣夦夨夬夰夲夳夵夶夻�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"����������������������������������������������������������������夽夾夿奀奃奅奆奊奌奍奐奒奓奙奛奜奝奞奟奡奣奤奦奧奨奩奪奫奬奭奮奯奰奱奲奵奷奺奻奼奾奿妀妅妉妋妌妎妏妐妑妔妕妘妚妛妜妝妟妠妡妢妦�妧妬妭妰妱妳妴妵妶妷妸妺妼妽妿姀姁姂姃姄姅姇姈姉姌姍姎姏姕姖姙姛姞姟姠姡姢姤姦姧姩姪姫姭姮姯姰姱姲姳姴姵姶姷姸姺姼姽姾娀娂娊娋娍娎娏娐娒娔娕娖娗娙娚娛娝娞娡娢娤娦娧娨娪娫娬娭娮娯娰娳娵娷娸娹娺娻娽娾娿婁婂婃婄婅婇婈婋婌婍婎婏婐婑婒婓婔婖婗婘婙婛婜婝婞婟婠�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"����������������������������������������������������������������婡婣婤婥婦婨婩婫婬婭婮婯婰婱婲婳婸婹婻婼婽婾媀媁媂媃媄媅媆媇媈媉媊媋媌媍媎媏媐媑媓媔媕媖媗媘媙媜媝媞媟媠媡媢媣媤媥媦媧媨媩媫媬�媭媮媯媰媱媴媶媷媹媺媻媼媽媿嫀嫃嫄嫅嫆嫇嫈嫊嫋嫍嫎嫏嫐嫑嫓嫕嫗嫙嫚嫛嫝嫞嫟嫢嫤嫥嫧嫨嫪嫬嫭嫮嫯嫰嫲嫳嫴嫵嫶嫷嫸嫹嫺嫻嫼嫽嫾嫿嬀嬁嬂嬃嬄嬅嬆嬇嬈嬊嬋嬌嬍嬎嬏嬐嬑嬒嬓嬔嬕嬘嬙嬚嬛嬜嬝嬞嬟嬠嬡嬢嬣嬤嬥嬦嬧嬨嬩嬪嬫嬬嬭嬮嬯嬰嬱嬳嬵嬶嬸嬹嬺嬻嬼嬽嬾嬿孁孂孃孄孅孆孇�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"����������������������������������������������������������������孈孉孊孋孌孍孎孏孒孖孞孠孡孧孨孫孭孮孯孲孴孶孷學孹孻孼孾孿宂宆宊宍宎宐宑宒宔宖実宧宨宩宬宭宮宯宱宲宷宺宻宼寀寁寃寈寉寊寋寍寎寏�寑寔寕寖寗寘寙寚寛寜寠寢寣實寧審寪寫寬寭寯寱寲寳寴寵寶寷寽対尀専尃尅將專尋尌對導尐尒尓尗尙尛尞尟尠尡尣尦尨尩尪尫尭尮尯尰尲尳尵尶尷屃屄屆屇屌屍屒屓屔屖屗屘屚屛屜屝屟屢層屧屨屩屪屫屬屭屰屲屳屴屵屶屷屸屻屼屽屾岀岃岄岅岆岇岉岊岋岎岏岒岓岕岝岞岟岠岡岤岥岦岧岨�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"����������������������������������������������������������������岪岮岯岰岲岴岶岹岺岻岼岾峀峂峃峅峆峇峈峉峊峌峍峎峏峐峑峓峔峕峖峗峘峚峛峜峝峞峟峠峢峣峧峩峫峬峮峯峱峲峳峴峵島峷峸峹峺峼峽峾峿崀�崁崄崅崈崉崊崋崌崍崏崐崑崒崓崕崗崘崙崚崜崝崟崠崡崢崣崥崨崪崫崬崯崰崱崲崳崵崶崷崸崹崺崻崼崿嵀嵁嵂嵃嵄嵅嵆嵈嵉嵍嵎嵏嵐嵑嵒嵓嵔嵕嵖嵗嵙嵚嵜嵞嵟嵠嵡嵢嵣嵤嵥嵦嵧嵨嵪嵭嵮嵰嵱嵲嵳嵵嵶嵷嵸嵹嵺嵻嵼嵽嵾嵿嶀嶁嶃嶄嶅嶆嶇嶈嶉嶊嶋嶌嶍嶎嶏嶐嶑嶒嶓嶔嶕嶖嶗嶘嶚嶛嶜嶞嶟嶠�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"����������������������������������������������������������������嶡嶢嶣嶤嶥嶦嶧嶨嶩嶪嶫嶬嶭嶮嶯嶰嶱嶲嶳嶴嶵嶶嶸嶹嶺嶻嶼嶽嶾嶿巀巁巂巃巄巆巇巈巉巊巋巌巎巏巐巑巒巓巔巕巖巗巘巙巚巜巟巠巣巤巪巬巭�巰巵巶巸巹巺巻巼巿帀帄帇帉帊帋帍帎帒帓帗帞帟帠帡帢帣帤帥帨帩帪師帬帯帰帲帳帴帵帶帹帺帾帿幀幁幃幆幇幈幉幊幋幍幎幏幐幑幒幓幖幗幘幙幚幜幝幟幠幣幤幥幦幧幨幩幪幫幬幭幮幯幰幱幵幷幹幾庁庂広庅庈庉庌庍庎庒庘庛庝庡庢庣庤庨庩庪庫庬庮庯庰庱庲庴庺庻庼庽庿廀廁廂廃廄廅�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"����������������������������������������������������������������廆廇廈廋廌廍廎廏廐廔廕廗廘廙廚廜廝廞廟廠廡廢廣廤廥廦廧廩廫廬廭廮廯廰廱廲廳廵廸廹廻廼廽弅弆弇弉弌弍弎弐弒弔弖弙弚弜弝弞弡弢弣弤�弨弫弬弮弰弲弳弴張弶強弸弻弽弾弿彁彂彃彄彅彆彇彈彉彊彋彌彍彎彏彑彔彙彚彛彜彞彟彠彣彥彧彨彫彮彯彲彴彵彶彸彺彽彾彿徃徆徍徎徏徑従徔徖徚徛徝從徟徠徢徣徤徥徦徧復徫徬徯徰徱徲徳徴徶徸徹徺徻徾徿忀忁忂忇忈忊忋忎忓忔忕忚忛応忞忟忢忣忥忦忨忩忬忯忰忲忳忴忶忷忹忺忼怇�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"����������������������������������������������������������������怈怉怋怌怐怑怓怗怘怚怞怟怢怣怤怬怭怮怰怱怲怳怴怶怷怸怹怺怽怾恀恄恅恆恇恈恉恊恌恎恏恑恓恔恖恗恘恛恜恞恟恠恡恥恦恮恱恲恴恵恷恾悀�悁悂悅悆悇悈悊悋悎悏悐悑悓悕悗悘悙悜悞悡悢悤悥悧悩悪悮悰悳悵悶悷悹悺悽悾悿惀惁惂惃惄惇惈惉惌惍惎惏惐惒惓惔惖惗惙惛惞惡惢惣惤惥惪惱惲惵惷惸惻惼惽惾惿愂愃愄愅愇愊愋愌愐愑愒愓愔愖愗愘愙愛愜愝愞愡愢愥愨愩愪愬愭愮愯愰愱愲愳愴愵愶愷愸愹愺愻愼愽愾慀慁慂慃慄慅慆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"����������������������������������������������������������������慇慉態慍慏慐慒慓慔慖慗慘慙慚慛慜慞慟慠慡慣慤慥慦慩慪慫慬慭慮慯慱慲慳慴慶慸慹慺慻慼慽慾慿憀憁憂憃憄憅憆憇憈憉憊憌憍憏憐憑憒憓憕�憖憗憘憙憚憛憜憞憟憠憡憢憣憤憥憦憪憫憭憮憯憰憱憲憳憴憵憶憸憹憺憻憼憽憿懀懁懃懄懅懆懇應懌懍懎懏懐懓懕懖懗懘懙懚懛懜懝懞懟懠懡懢懣懤懥懧懨懩懪懫懬懭懮懯懰懱懲懳懴懶懷懸懹懺懻懼懽懾戀戁戂戃戄戅戇戉戓戔戙戜戝戞戠戣戦戧戨戩戫戭戯戰戱戲戵戶戸戹戺戻戼扂扄扅扆扊�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"����������������������������������������������������������������扏扐払扖扗扙扚扜扝扞扟扠扡扢扤扥扨扱扲扴扵扷扸扺扻扽抁抂抃抅抆抇抈抋抌抍抎抏抐抔抙抜抝択抣抦抧抩抪抭抮抯抰抲抳抴抶抷抸抺抾拀拁�拃拋拏拑拕拝拞拠拡拤拪拫拰拲拵拸拹拺拻挀挃挄挅挆挊挋挌挍挏挐挒挓挔挕挗挘挙挜挦挧挩挬挭挮挰挱挳挴挵挶挷挸挻挼挾挿捀捁捄捇捈捊捑捒捓捔捖捗捘捙捚捛捜捝捠捤捥捦捨捪捫捬捯捰捲捳捴捵捸捹捼捽捾捿掁掃掄掅掆掋掍掑掓掔掕掗掙掚掛掜掝掞掟採掤掦掫掯掱掲掵掶掹掻掽掿揀�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"����������������������������������������������������������������揁揂揃揅揇揈揊揋揌揑揓揔揕揗揘揙揚換揜揝揟揢揤揥揦揧揨揫揬揮揯揰揱揳揵揷揹揺揻揼揾搃搄搆搇搈搉搊損搎搑搒搕搖搗搘搙搚搝搟搢搣搤�搥搧搨搩搫搮搯搰搱搲搳搵搶搷搸搹搻搼搾摀摂摃摉摋摌摍摎摏摐摑摓摕摖摗摙摚摛摜摝摟摠摡摢摣摤摥摦摨摪摫摬摮摯摰摱摲摳摴摵摶摷摻摼摽摾摿撀撁撃撆撈撉撊撋撌撍撎撏撐撓撔撗撘撚撛撜撝撟撠撡撢撣撥撦撧撨撪撫撯撱撲撳撴撶撹撻撽撾撿擁擃擄擆擇擈擉擊擋擌擏擑擓擔擕擖擙據�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"����������������������������������������������������������������擛擜擝擟擠擡擣擥擧擨擩擪擫擬擭擮擯擰擱擲擳擴擵擶擷擸擹擺擻擼擽擾擿攁攂攃攄攅攆攇攈攊攋攌攍攎攏攐攑攓攔攕攖攗攙攚攛攜攝攞攟攠攡�攢攣攤攦攧攨攩攪攬攭攰攱攲攳攷攺攼攽敀敁敂敃敄敆敇敊敋敍敎敐敒敓敔敗敘敚敜敟敠敡敤敥敧敨敩敪敭敮敯敱敳敵敶數敹敺敻敼敽敾敿斀斁斂斃斄斅斆斈斉斊斍斎斏斒斔斕斖斘斚斝斞斠斢斣斦斨斪斬斮斱斲斳斴斵斶斷斸斺斻斾斿旀旂旇旈旉旊旍旐旑旓旔旕旘旙旚旛旜旝旞旟旡旣旤旪旫�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"����������������������������������������������������������������旲旳旴旵旸旹旻旼旽旾旿昁昄昅昇昈昉昋昍昐昑昒昖昗昘昚昛昜昞昡昢昣昤昦昩昪昫昬昮昰昲昳昷昸昹昺昻昽昿晀時晄晅晆晇晈晉晊晍晎晐晑晘�晙晛晜晝晞晠晢晣晥晧晩晪晫晬晭晱晲晳晵晸晹晻晼晽晿暀暁暃暅暆暈暉暊暋暍暎暏暐暒暓暔暕暘暙暚暛暜暞暟暠暡暢暣暤暥暦暩暪暫暬暭暯暰暱暲暳暵暶暷暸暺暻暼暽暿曀曁曂曃曄曅曆曇曈曉曊曋曌曍曎曏曐曑曒曓曔曕曖曗曘曚曞曟曠曡曢曣曤曥曧曨曪曫曬曭曮曯曱曵曶書曺曻曽朁朂會�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"����������������������������������������������������������������朄朅朆朇朌朎朏朑朒朓朖朘朙朚朜朞朠朡朢朣朤朥朧朩朮朰朲朳朶朷朸朹朻朼朾朿杁杄杅杇杊杋杍杒杔杕杗杘杙杚杛杝杢杣杤杦杧杫杬杮東杴杶�杸杹杺杻杽枀枂枃枅枆枈枊枌枍枎枏枑枒枓枔枖枙枛枟枠枡枤枦枩枬枮枱枲枴枹枺枻枼枽枾枿柀柂柅柆柇柈柉柊柋柌柍柎柕柖柗柛柟柡柣柤柦柧柨柪柫柭柮柲柵柶柷柸柹柺査柼柾栁栂栃栄栆栍栐栒栔栕栘栙栚栛栜栞栟栠栢栣栤栥栦栧栨栫栬栭栮栯栰栱栴栵栶栺栻栿桇桋桍桏桒桖桗桘桙桚桛�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"����������������������������������������������������������������桜桝桞桟桪桬桭桮桯桰桱桲桳桵桸桹桺桻桼桽桾桿梀梂梄梇梈梉梊梋梌梍梎梐梑梒梔梕梖梘梙梚梛梜條梞梟梠梡梣梤梥梩梪梫梬梮梱梲梴梶梷梸�梹梺梻梼梽梾梿棁棃棄棅棆棇棈棊棌棎棏棐棑棓棔棖棗棙棛棜棝棞棟棡棢棤棥棦棧棨棩棪棫棬棭棯棲棳棴棶棷棸棻棽棾棿椀椂椃椄椆椇椈椉椊椌椏椑椓椔椕椖椗椘椙椚椛検椝椞椡椢椣椥椦椧椨椩椪椫椬椮椯椱椲椳椵椶椷椸椺椻椼椾楀楁楃楄楅楆楇楈楉楊楋楌楍楎楏楐楑楒楓楕楖楘楙楛楜楟�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"����������������������������������������������������������������楡楢楤楥楧楨楩楪楬業楯楰楲楳楴極楶楺楻楽楾楿榁榃榅榊榋榌榎榏榐榑榒榓榖榗榙榚榝榞榟榠榡榢榣榤榥榦榩榪榬榮榯榰榲榳榵榶榸榹榺榼榽�榾榿槀槂槃槄槅槆槇槈槉構槍槏槑槒槓槕槖槗様槙槚槜槝槞槡槢槣槤槥槦槧槨槩槪槫槬槮槯槰槱槳槴槵槶槷槸槹槺槻槼槾樀樁樂樃樄樅樆樇樈樉樋樌樍樎樏樐樑樒樓樔樕樖標樚樛樜樝樞樠樢樣樤樥樦樧権樫樬樭樮樰樲樳樴樶樷樸樹樺樻樼樿橀橁橂橃橅橆橈橉橊橋橌橍橎橏橑橒橓橔橕橖橗橚�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"����������������������������������������������������������������橜橝橞機橠橢橣橤橦橧橨橩橪橫橬橭橮橯橰橲橳橴橵橶橷橸橺橻橽橾橿檁檂檃檅檆檇檈檉檊檋檌檍檏檒檓檔檕檖檘檙檚檛檜檝檞檟檡檢檣檤檥檦�檧檨檪檭檮檯檰檱檲檳檴檵檶檷檸檹檺檻檼檽檾檿櫀櫁櫂櫃櫄櫅櫆櫇櫈櫉櫊櫋櫌櫍櫎櫏櫐櫑櫒櫓櫔櫕櫖櫗櫘櫙櫚櫛櫜櫝櫞櫟櫠櫡櫢櫣櫤櫥櫦櫧櫨櫩櫪櫫櫬櫭櫮櫯櫰櫱櫲櫳櫴櫵櫶櫷櫸櫹櫺櫻櫼櫽櫾櫿欀欁欂欃欄欅欆欇欈欉權欋欌欍欎欏欐欑欒欓欔欕欖欗欘欙欚欛欜欝欞欟欥欦欨欩欪欫欬欭欮�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"����������������������������������������������������������������欯欰欱欳欴欵欶欸欻欼欽欿歀歁歂歄歅歈歊歋歍歎歏歐歑歒歓歔歕歖歗歘歚歛歜歝歞歟歠歡歨歩歫歬歭歮歯歰歱歲歳歴歵歶歷歸歺歽歾歿殀殅殈�殌殎殏殐殑殔殕殗殘殙殜殝殞殟殠殢殣殤殥殦殧殨殩殫殬殭殮殯殰殱殲殶殸殹殺殻殼殽殾毀毃毄毆毇毈毉毊毌毎毐毑毘毚毜毝毞毟毠毢毣毤毥毦毧毨毩毬毭毮毰毱毲毴毶毷毸毺毻毼毾毿氀氁氂氃氄氈氉氊氋氌氎氒気氜氝氞氠氣氥氫氬氭氱氳氶氷氹氺氻氼氾氿汃汄汅汈汋汌汍汎汏汑汒汓汖汘�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"����������������������������������������������������������������汙汚汢汣汥汦汧汫汬汭汮汯汱汳汵汷汸決汻汼汿沀沄沇沊沋沍沎沑沒沕沖沗沘沚沜沝沞沠沢沨沬沯沰沴沵沶沷沺泀況泂泃泆泇泈泋泍泎泏泑泒泘�泙泚泜泝泟泤泦泧泩泬泭泲泴泹泿洀洂洃洅洆洈洉洊洍洏洐洑洓洔洕洖洘洜洝洟洠洡洢洣洤洦洨洩洬洭洯洰洴洶洷洸洺洿浀浂浄浉浌浐浕浖浗浘浛浝浟浡浢浤浥浧浨浫浬浭浰浱浲浳浵浶浹浺浻浽浾浿涀涁涃涄涆涇涊涋涍涏涐涒涖涗涘涙涚涜涢涥涬涭涰涱涳涴涶涷涹涺涻涼涽涾淁淂淃淈淉淊�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"����������������������������������������������������������������淍淎淏淐淒淓淔淕淗淚淛淜淟淢淣淥淧淨淩淪淭淯淰淲淴淵淶淸淺淽淾淿渀渁渂渃渄渆渇済渉渋渏渒渓渕渘渙減渜渞渟渢渦渧渨渪測渮渰渱渳渵�渶渷渹渻渼渽渾渿湀湁湂湅湆湇湈湉湊湋湌湏湐湑湒湕湗湙湚湜湝湞湠湡湢湣湤湥湦湧湨湩湪湬湭湯湰湱湲湳湴湵湶湷湸湹湺湻湼湽満溁溂溄溇溈溊溋溌溍溎溑溒溓溔溕準溗溙溚溛溝溞溠溡溣溤溦溨溩溫溬溭溮溰溳溵溸溹溼溾溿滀滃滄滅滆滈滉滊滌滍滎滐滒滖滘滙滛滜滝滣滧滪滫滬滭滮滯�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"����������������������������������������������������������������滰滱滲滳滵滶滷滸滺滻滼滽滾滿漀漁漃漄漅漇漈漊漋漌漍漎漐漑漒漖漗漘漙漚漛漜漝漞漟漡漢漣漥漦漧漨漬漮漰漲漴漵漷漸漹漺漻漼漽漿潀潁潂�潃潄潅潈潉潊潌潎潏潐潑潒潓潔潕潖潗潙潚潛潝潟潠潡潣潤潥潧潨潩潪潫潬潯潰潱潳潵潶潷潹潻潽潾潿澀澁澂澃澅澆澇澊澋澏澐澑澒澓澔澕澖澗澘澙澚澛澝澞澟澠澢澣澤澥澦澨澩澪澫澬澭澮澯澰澱澲澴澵澷澸澺澻澼澽澾澿濁濃濄濅濆濇濈濊濋濌濍濎濏濐濓濔濕濖濗濘濙濚濛濜濝濟濢濣濤濥�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"����������������������������������������������������������������濦濧濨濩濪濫濬濭濰濱濲濳濴濵濶濷濸濹濺濻濼濽濾濿瀀瀁瀂瀃瀄瀅瀆瀇瀈瀉瀊瀋瀌瀍瀎瀏瀐瀒瀓瀔瀕瀖瀗瀘瀙瀜瀝瀞瀟瀠瀡瀢瀤瀥瀦瀧瀨瀩瀪�瀫瀬瀭瀮瀯瀰瀱瀲瀳瀴瀶瀷瀸瀺瀻瀼瀽瀾瀿灀灁灂灃灄灅灆灇灈灉灊灋灍灎灐灑灒灓灔灕灖灗灘灙灚灛灜灝灟灠灡灢灣灤灥灦灧灨灩灪灮灱灲灳灴灷灹灺灻災炁炂炃炄炆炇炈炋炌炍炏炐炑炓炗炘炚炛炞炟炠炡炢炣炤炥炦炧炨炩炪炰炲炴炵炶為炾炿烄烅烆烇烉烋烌烍烎烏烐烑烒烓烔烕烖烗烚�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"����������������������������������������������������������������烜烝烞烠烡烢烣烥烪烮烰烱烲烳烴烵烶烸烺烻烼烾烿焀焁焂焃焄焅焆焇焈焋焌焍焎焏焑焒焔焗焛焜焝焞焟焠無焢焣焤焥焧焨焩焪焫焬焭焮焲焳焴�焵焷焸焹焺焻焼焽焾焿煀煁煂煃煄煆煇煈煉煋煍煏煐煑煒煓煔煕煖煗煘煙煚煛煝煟煠煡煢煣煥煩煪煫煬煭煯煰煱煴煵煶煷煹煻煼煾煿熀熁熂熃熅熆熇熈熉熋熌熍熎熐熑熒熓熕熖熗熚熛熜熝熞熡熢熣熤熥熦熧熩熪熫熭熮熯熰熱熲熴熶熷熸熺熻熼熽熾熿燀燁燂燄燅燆燇燈燉燊燋燌燍燏燐燑燒燓�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"����������������������������������������������������������������燖燗燘燙燚燛燜燝燞營燡燢燣燤燦燨燩燪燫燬燭燯燰燱燲燳燴燵燶燷燸燺燻燼燽燾燿爀爁爂爃爄爅爇爈爉爊爋爌爍爎爏爐爑爒爓爔爕爖爗爘爙爚�爛爜爞爟爠爡爢爣爤爥爦爧爩爫爭爮爯爲爳爴爺爼爾牀牁牂牃牄牅牆牉牊牋牎牏牐牑牓牔牕牗牘牚牜牞牠牣牤牥牨牪牫牬牭牰牱牳牴牶牷牸牻牼牽犂犃犅犆犇犈犉犌犎犐犑犓犔犕犖犗犘犙犚犛犜犝犞犠犡犢犣犤犥犦犧犨犩犪犫犮犱犲犳犵犺犻犼犽犾犿狀狅狆狇狉狊狋狌狏狑狓狔狕狖狘狚狛�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"����������������������������������������������������������������������������������������������������������������������������������������������������������������� 、。·ˉˇ¨〃々—~‖…‘’“”〔〕〈〉《》「」『』〖〗【】±×÷∶∧∨∑∏∪∩∈∷√⊥∥∠⌒⊙∫∮≡≌≈∽∝≠≮≯≤≥∞∵∴♂♀°′″℃$¤¢£‰§№☆★○●◎◇◆□■△▲※→←↑↓〓�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ������⒈⒉⒊⒋⒌⒍⒎⒏⒐⒑⒒⒓⒔⒕⒖⒗⒘⒙⒚⒛⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂⒃⒄⒅⒆⒇①②③④⑤⑥⑦⑧⑨⑩��㈠㈡㈢㈣㈤㈥㈦㈧㈨㈩��ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩⅪⅫ���\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������!"#¥%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������︵︶︹︺︿﹀︽︾﹁﹂﹃﹄��︻︼︷︸︱�︳︴����������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������ˊˋ˙–―‥‵℅℉↖↗↘↙∕∟∣≒≦≧⊿═║╒╓╔╕╖╗╘╙╚╛╜╝╞╟╠╡╢╣╤╥╦╧╨╩╪╫╬╭╮╯╰╱╲╳▁▂▃▄▅▆▇�█▉▊▋▌▍▎▏▓▔▕▼▽◢◣◤◥☉⊕〒〝〞�����������āáǎàēéěèīíǐìōóǒòūúǔùǖǘǚǜüêɑ�ńň�ɡ����ㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ����������������������\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������〡〢〣〤〥〦〧〨〩㊣㎎㎏㎜㎝㎞㎡㏄㏎㏑㏒㏕︰¬¦�℡㈱�‐���ー゛゜ヽヾ〆ゝゞ﹉﹊﹋﹌﹍﹎﹏﹐﹑﹒﹔﹕﹖﹗﹙﹚﹛﹜﹝﹞﹟﹠﹡�﹢﹣﹤﹥﹦﹨﹩﹪﹫�������������〇�������������─━│┃┄┅┆┇┈┉┊┋┌┍┎┏┐┑┒┓└┕┖┗┘┙┚┛├┝┞┟┠┡┢┣┤┥┦┧┨┩┪┫┬┭┮┯┰┱┲┳┴┵┶┷┸┹┺┻┼┽┾┿╀╁╂╃╄╅╆╇╈╉╊╋����������������\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������狜狝狟狢狣狤狥狦狧狪狫狵狶狹狽狾狿猀猂猄猅猆猇猈猉猋猌猍猏猐猑猒猔猘猙猚猟猠猣猤猦猧猨猭猯猰猲猳猵猶猺猻猼猽獀獁獂獃獄獅獆獇獈�獉獊獋獌獎獏獑獓獔獕獖獘獙獚獛獜獝獞獟獡獢獣獤獥獦獧獨獩獪獫獮獰獱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������獲獳獴獵獶獷獸獹獺獻獼獽獿玀玁玂玃玅玆玈玊玌玍玏玐玒玓玔玕玗玘玙玚玜玝玞玠玡玣玤玥玦玧玨玪玬玭玱玴玵玶玸玹玼玽玾玿珁珃珄珅珆珇�珋珌珎珒珓珔珕珖珗珘珚珛珜珝珟珡珢珣珤珦珨珪珫珬珮珯珰珱珳珴珵珶珷�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������珸珹珺珻珼珽現珿琀琁琂琄琇琈琋琌琍琎琑琒琓琔琕琖琗琘琙琜琝琞琟琠琡琣琤琧琩琫琭琯琱琲琷琸琹琺琻琽琾琿瑀瑂瑃瑄瑅瑆瑇瑈瑉瑊瑋瑌瑍�瑎瑏瑐瑑瑒瑓瑔瑖瑘瑝瑠瑡瑢瑣瑤瑥瑦瑧瑨瑩瑪瑫瑬瑮瑯瑱瑲瑳瑴瑵瑸瑹瑺�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������瑻瑼瑽瑿璂璄璅璆璈璉璊璌璍璏璑璒璓璔璕璖璗璘璙璚璛璝璟璠璡璢璣璤璥璦璪璫璬璭璮璯環璱璲璳璴璵璶璷璸璹璻璼璽璾璿瓀瓁瓂瓃瓄瓅瓆瓇�瓈瓉瓊瓋瓌瓍瓎瓏瓐瓑瓓瓔瓕瓖瓗瓘瓙瓚瓛瓝瓟瓡瓥瓧瓨瓩瓪瓫瓬瓭瓰瓱瓲�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������瓳瓵瓸瓹瓺瓻瓼瓽瓾甀甁甂甃甅甆甇甈甉甊甋甌甎甐甒甔甕甖甗甛甝甞甠甡產産甤甦甧甪甮甴甶甹甼甽甿畁畂畃畄畆畇畉畊畍畐畑畒畓畕畖畗畘�畝畞畟畠畡畢畣畤畧畨畩畫畬畭畮畯異畱畳畵當畷畺畻畼畽畾疀疁疂疄疅疇�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������疈疉疊疌疍疎疐疓疕疘疛疜疞疢疦疧疨疩疪疭疶疷疺疻疿痀痁痆痋痌痎痏痐痑痓痗痙痚痜痝痟痠痡痥痩痬痭痮痯痲痳痵痶痷痸痺痻痽痾瘂瘄瘆瘇�瘈瘉瘋瘍瘎瘏瘑瘒瘓瘔瘖瘚瘜瘝瘞瘡瘣瘧瘨瘬瘮瘯瘱瘲瘶瘷瘹瘺瘻瘽癁療癄�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������癅癆癇癈癉癊癋癎癏癐癑癒癓癕癗癘癙癚癛癝癟癠癡癢癤癥癦癧癨癩癪癬癭癮癰癱癲癳癴癵癶癷癹発發癿皀皁皃皅皉皊皌皍皏皐皒皔皕皗皘皚皛�皜皝皞皟皠皡皢皣皥皦皧皨皩皪皫皬皭皯皰皳皵皶皷皸皹皺皻皼皽皾盀盁盃啊阿埃挨哎唉哀皑癌蔼矮艾碍爱隘鞍氨安俺按暗岸胺案肮昂盎凹敖熬翱袄傲奥懊澳芭捌扒叭吧笆八疤巴拔跋靶把耙坝霸罢爸白柏百摆佰败拜稗斑班搬扳般颁板版扮拌伴瓣半办绊邦帮梆榜膀绑棒磅蚌镑傍谤苞胞包褒剥�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������盄盇盉盋盌盓盕盙盚盜盝盞盠盡盢監盤盦盧盨盩盪盫盬盭盰盳盵盶盷盺盻盽盿眀眂眃眅眆眊県眎眏眐眑眒眓眔眕眖眗眘眛眜眝眞眡眣眤眥眧眪眫�眬眮眰眱眲眳眴眹眻眽眾眿睂睄睅睆睈睉睊睋睌睍睎睏睒睓睔睕睖睗睘睙睜薄雹保堡饱宝抱报暴豹鲍爆杯碑悲卑北辈背贝钡倍狈备惫焙被奔苯本笨崩绷甭泵蹦迸逼鼻比鄙笔彼碧蓖蔽毕毙毖币庇痹闭敝弊必辟壁臂避陛鞭边编贬扁便变卞辨辩辫遍标彪膘表鳖憋别瘪彬斌濒滨宾摈兵冰柄丙秉饼炳�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������睝睞睟睠睤睧睩睪睭睮睯睰睱睲睳睴睵睶睷睸睺睻睼瞁瞂瞃瞆瞇瞈瞉瞊瞋瞏瞐瞓瞔瞕瞖瞗瞘瞙瞚瞛瞜瞝瞞瞡瞣瞤瞦瞨瞫瞭瞮瞯瞱瞲瞴瞶瞷瞸瞹瞺�瞼瞾矀矁矂矃矄矅矆矇矈矉矊矋矌矎矏矐矑矒矓矔矕矖矘矙矚矝矞矟矠矡矤病并玻菠播拨钵波博勃搏铂箔伯帛舶脖膊渤泊驳捕卜哺补埠不布步簿部怖擦猜裁材才财睬踩采彩菜蔡餐参蚕残惭惨灿苍舱仓沧藏操糙槽曹草厕策侧册测层蹭插叉茬茶查碴搽察岔差诧拆柴豺搀掺蝉馋谗缠铲产阐颤昌猖�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������矦矨矪矯矰矱矲矴矵矷矹矺矻矼砃砄砅砆砇砈砊砋砎砏砐砓砕砙砛砞砠砡砢砤砨砪砫砮砯砱砲砳砵砶砽砿硁硂硃硄硆硈硉硊硋硍硏硑硓硔硘硙硚�硛硜硞硟硠硡硢硣硤硥硦硧硨硩硯硰硱硲硳硴硵硶硸硹硺硻硽硾硿碀碁碂碃场尝常长偿肠厂敞畅唱倡超抄钞朝嘲潮巢吵炒车扯撤掣彻澈郴臣辰尘晨忱沉陈趁衬撑称城橙成呈乘程惩澄诚承逞骋秤吃痴持匙池迟弛驰耻齿侈尺赤翅斥炽充冲虫崇宠抽酬畴踌稠愁筹仇绸瞅丑臭初出橱厨躇锄雏滁除楚�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������碄碅碆碈碊碋碏碐碒碔碕碖碙碝碞碠碢碤碦碨碩碪碫碬碭碮碯碵碶碷碸確碻碼碽碿磀磂磃磄磆磇磈磌磍磎磏磑磒磓磖磗磘磚磛磜磝磞磟磠磡磢磣�磤磥磦磧磩磪磫磭磮磯磰磱磳磵磶磸磹磻磼磽磾磿礀礂礃礄礆礇礈礉礊礋礌础储矗搐触处揣川穿椽传船喘串疮窗幢床闯创吹炊捶锤垂春椿醇唇淳纯蠢戳绰疵茨磁雌辞慈瓷词此刺赐次聪葱囱匆从丛凑粗醋簇促蹿篡窜摧崔催脆瘁粹淬翠村存寸磋撮搓措挫错搭达答瘩打大呆歹傣戴带殆代贷袋待逮�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������礍礎礏礐礑礒礔礕礖礗礘礙礚礛礜礝礟礠礡礢礣礥礦礧礨礩礪礫礬礭礮礯礰礱礲礳礵礶礷礸礹礽礿祂祃祄祅祇祊祋祌祍祎祏祐祑祒祔祕祘祙祡祣�祤祦祩祪祫祬祮祰祱祲祳祴祵祶祹祻祼祽祾祿禂禃禆禇禈禉禋禌禍禎禐禑禒怠耽担丹单郸掸胆旦氮但惮淡诞弹蛋当挡党荡档刀捣蹈倒岛祷导到稻悼道盗德得的蹬灯登等瞪凳邓堤低滴迪敌笛狄涤翟嫡抵底地蒂第帝弟递缔颠掂滇碘点典靛垫电佃甸店惦奠淀殿碉叼雕凋刁掉吊钓调跌爹碟蝶迭谍叠�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������禓禔禕禖禗禘禙禛禜禝禞禟禠禡禢禣禤禥禦禨禩禪禫禬禭禮禯禰禱禲禴禵禶禷禸禼禿秂秄秅秇秈秊秌秎秏秐秓秔秖秗秙秚秛秜秝秞秠秡秢秥秨秪�秬秮秱秲秳秴秵秶秷秹秺秼秾秿稁稄稅稇稈稉稊稌稏稐稑稒稓稕稖稘稙稛稜丁盯叮钉顶鼎锭定订丢东冬董懂动栋侗恫冻洞兜抖斗陡豆逗痘都督毒犊独读堵睹赌杜镀肚度渡妒端短锻段断缎堆兑队对墩吨蹲敦顿囤钝盾遁掇哆多夺垛躲朵跺舵剁惰堕蛾峨鹅俄额讹娥恶厄扼遏鄂饿恩而儿耳尔饵洱二�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������稝稟稡稢稤稥稦稧稨稩稪稫稬稭種稯稰稱稲稴稵稶稸稺稾穀穁穂穃穄穅穇穈穉穊穋穌積穎穏穐穒穓穔穕穖穘穙穚穛穜穝穞穟穠穡穢穣穤穥穦穧穨�穩穪穫穬穭穮穯穱穲穳穵穻穼穽穾窂窅窇窉窊窋窌窎窏窐窓窔窙窚窛窞窡窢贰发罚筏伐乏阀法珐藩帆番翻樊矾钒繁凡烦反返范贩犯饭泛坊芳方肪房防妨仿访纺放菲非啡飞肥匪诽吠肺废沸费芬酚吩氛分纷坟焚汾粉奋份忿愤粪丰封枫蜂峰锋风疯烽逢冯缝讽奉凤佛否夫敷肤孵扶拂辐幅氟符伏俘服�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������窣窤窧窩窪窫窮窯窰窱窲窴窵窶窷窸窹窺窻窼窽窾竀竁竂竃竄竅竆竇竈竉竊竌竍竎竏竐竑竒竓竔竕竗竘竚竛竜竝竡竢竤竧竨竩竪竫竬竮竰竱竲竳�竴竵競竷竸竻竼竾笀笁笂笅笇笉笌笍笎笐笒笓笖笗笘笚笜笝笟笡笢笣笧笩笭浮涪福袱弗甫抚辅俯釜斧脯腑府腐赴副覆赋复傅付阜父腹负富讣附妇缚咐噶嘎该改概钙盖溉干甘杆柑竿肝赶感秆敢赣冈刚钢缸肛纲岗港杠篙皋高膏羔糕搞镐稿告哥歌搁戈鸽胳疙割革葛格蛤阁隔铬个各给根跟耕更庚羹�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������笯笰笲笴笵笶笷笹笻笽笿筀筁筂筃筄筆筈筊筍筎筓筕筗筙筜筞筟筡筣筤筥筦筧筨筩筪筫筬筭筯筰筳筴筶筸筺筼筽筿箁箂箃箄箆箇箈箉箊箋箌箎箏�箑箒箓箖箘箙箚箛箞箟箠箣箤箥箮箯箰箲箳箵箶箷箹箺箻箼箽箾箿節篂篃範埂耿梗工攻功恭龚供躬公宫弓巩汞拱贡共钩勾沟苟狗垢构购够辜菇咕箍估沽孤姑鼓古蛊骨谷股故顾固雇刮瓜剐寡挂褂乖拐怪棺关官冠观管馆罐惯灌贯光广逛瑰规圭硅归龟闺轨鬼诡癸桂柜跪贵刽辊滚棍锅郭国果裹过哈�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������篅篈築篊篋篍篎篏篐篒篔篕篖篗篘篛篜篞篟篠篢篣篤篧篨篩篫篬篭篯篰篲篳篴篵篶篸篹篺篻篽篿簀簁簂簃簄簅簆簈簉簊簍簎簐簑簒簓簔簕簗簘簙�簚簛簜簝簞簠簡簢簣簤簥簨簩簫簬簭簮簯簰簱簲簳簴簵簶簷簹簺簻簼簽簾籂骸孩海氦亥害骇酣憨邯韩含涵寒函喊罕翰撼捍旱憾悍焊汗汉夯杭航壕嚎豪毫郝好耗号浩呵喝荷菏核禾和何合盒貉阂河涸赫褐鹤贺嘿黑痕很狠恨哼亨横衡恒轰哄烘虹鸿洪宏弘红喉侯猴吼厚候后呼乎忽瑚壶葫胡蝴狐糊湖�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������籃籄籅籆籇籈籉籊籋籌籎籏籐籑籒籓籔籕籖籗籘籙籚籛籜籝籞籟籠籡籢籣籤籥籦籧籨籩籪籫籬籭籮籯籰籱籲籵籶籷籸籹籺籾籿粀粁粂粃粄粅粆粇�粈粊粋粌粍粎粏粐粓粔粖粙粚粛粠粡粣粦粧粨粩粫粬粭粯粰粴粵粶粷粸粺粻弧虎唬护互沪户花哗华猾滑画划化话槐徊怀淮坏欢环桓还缓换患唤痪豢焕涣宦幻荒慌黄磺蝗簧皇凰惶煌晃幌恍谎灰挥辉徽恢蛔回毁悔慧卉惠晦贿秽会烩汇讳诲绘荤昏婚魂浑混豁活伙火获或惑霍货祸击圾基机畸稽积箕�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������粿糀糂糃糄糆糉糋糎糏糐糑糒糓糔糘糚糛糝糞糡糢糣糤糥糦糧糩糪糫糬糭糮糰糱糲糳糴糵糶糷糹糺糼糽糾糿紀紁紂紃約紅紆紇紈紉紋紌納紎紏紐�紑紒紓純紕紖紗紘紙級紛紜紝紞紟紡紣紤紥紦紨紩紪紬紭紮細紱紲紳紴紵紶肌饥迹激讥鸡姬绩缉吉极棘辑籍集及急疾汲即嫉级挤几脊己蓟技冀季伎祭剂悸济寄寂计记既忌际妓继纪嘉枷夹佳家加荚颊贾甲钾假稼价架驾嫁歼监坚尖笺间煎兼肩艰奸缄茧检柬碱硷拣捡简俭剪减荐槛鉴践贱见键箭件�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������紷紸紹紺紻紼紽紾紿絀絁終絃組絅絆絇絈絉絊絋経絍絎絏結絑絒絓絔絕絖絗絘絙絚絛絜絝絞絟絠絡絢絣絤絥給絧絨絩絪絫絬絭絯絰統絲絳絴絵絶�絸絹絺絻絼絽絾絿綀綁綂綃綄綅綆綇綈綉綊綋綌綍綎綏綐綑綒經綔綕綖綗綘健舰剑饯渐溅涧建僵姜将浆江疆蒋桨奖讲匠酱降蕉椒礁焦胶交郊浇骄娇嚼搅铰矫侥脚狡角饺缴绞剿教酵轿较叫窖揭接皆秸街阶截劫节桔杰捷睫竭洁结解姐戒藉芥界借介疥诫届巾筋斤金今津襟紧锦仅谨进靳晋禁近烬浸�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������継続綛綜綝綞綟綠綡綢綣綤綥綧綨綩綪綫綬維綯綰綱網綳綴綵綶綷綸綹綺綻綼綽綾綿緀緁緂緃緄緅緆緇緈緉緊緋緌緍緎総緐緑緒緓緔緕緖緗緘緙�線緛緜緝緞緟締緡緢緣緤緥緦緧編緩緪緫緬緭緮緯緰緱緲緳練緵緶緷緸緹緺尽劲荆兢茎睛晶鲸京惊精粳经井警景颈静境敬镜径痉靖竟竞净炯窘揪究纠玖韭久灸九酒厩救旧臼舅咎就疚鞠拘狙疽居驹菊局咀矩举沮聚拒据巨具距踞锯俱句惧炬剧捐鹃娟倦眷卷绢撅攫抉掘倔爵觉决诀绝均菌钧军君峻�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������緻緼緽緾緿縀縁縂縃縄縅縆縇縈縉縊縋縌縍縎縏縐縑縒縓縔縕縖縗縘縙縚縛縜縝縞縟縠縡縢縣縤縥縦縧縨縩縪縫縬縭縮縯縰縱縲縳縴縵縶縷縸縹�縺縼總績縿繀繂繃繄繅繆繈繉繊繋繌繍繎繏繐繑繒繓織繕繖繗繘繙繚繛繜繝俊竣浚郡骏喀咖卡咯开揩楷凯慨刊堪勘坎砍看康慷糠扛抗亢炕考拷烤靠坷苛柯棵磕颗科壳咳可渴克刻客课肯啃垦恳坑吭空恐孔控抠口扣寇枯哭窟苦酷库裤夸垮挎跨胯块筷侩快宽款匡筐狂框矿眶旷况亏盔岿窥葵奎魁傀�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������繞繟繠繡繢繣繤繥繦繧繨繩繪繫繬繭繮繯繰繱繲繳繴繵繶繷繸繹繺繻繼繽繾繿纀纁纃纄纅纆纇纈纉纊纋續纍纎纏纐纑纒纓纔纕纖纗纘纙纚纜纝纞�纮纴纻纼绖绤绬绹缊缐缞缷缹缻缼缽缾缿罀罁罃罆罇罈罉罊罋罌罍罎罏罒罓馈愧溃坤昆捆困括扩廓阔垃拉喇蜡腊辣啦莱来赖蓝婪栏拦篮阑兰澜谰揽览懒缆烂滥琅榔狼廊郎朗浪捞劳牢老佬姥酪烙涝勒乐雷镭蕾磊累儡垒擂肋类泪棱楞冷厘梨犁黎篱狸离漓理李里鲤礼莉荔吏栗丽厉励砾历利傈例俐�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������罖罙罛罜罝罞罠罣罤罥罦罧罫罬罭罯罰罳罵罶罷罸罺罻罼罽罿羀羂羃羄羅羆羇羈羉羋羍羏羐羑羒羓羕羖羗羘羙羛羜羠羢羣羥羦羨義羪羫羬羭羮羱�羳羴羵羶羷羺羻羾翀翂翃翄翆翇翈翉翋翍翏翐翑習翓翖翗翙翚翛翜翝翞翢翣痢立粒沥隶力璃哩俩联莲连镰廉怜涟帘敛脸链恋炼练粮凉梁粱良两辆量晾亮谅撩聊僚疗燎寥辽潦了撂镣廖料列裂烈劣猎琳林磷霖临邻鳞淋凛赁吝拎玲菱零龄铃伶羚凌灵陵岭领另令溜琉榴硫馏留刘瘤流柳六龙聋咙笼窿�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������翤翧翨翪翫翬翭翯翲翴翵翶翷翸翹翺翽翾翿耂耇耈耉耊耎耏耑耓耚耛耝耞耟耡耣耤耫耬耭耮耯耰耲耴耹耺耼耾聀聁聄聅聇聈聉聎聏聐聑聓聕聖聗�聙聛聜聝聞聟聠聡聢聣聤聥聦聧聨聫聬聭聮聯聰聲聳聴聵聶職聸聹聺聻聼聽隆垄拢陇楼娄搂篓漏陋芦卢颅庐炉掳卤虏鲁麓碌露路赂鹿潞禄录陆戮驴吕铝侣旅履屡缕虑氯律率滤绿峦挛孪滦卵乱掠略抡轮伦仑沦纶论萝螺罗逻锣箩骡裸落洛骆络妈麻玛码蚂马骂嘛吗埋买麦卖迈脉瞒馒蛮满蔓曼慢漫�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������聾肁肂肅肈肊肍肎肏肐肑肒肔肕肗肙肞肣肦肧肨肬肰肳肵肶肸肹肻胅胇胈胉胊胋胏胐胑胒胓胔胕胘胟胠胢胣胦胮胵胷胹胻胾胿脀脁脃脄脅脇脈脋�脌脕脗脙脛脜脝脟脠脡脢脣脤脥脦脧脨脩脪脫脭脮脰脳脴脵脷脹脺脻脼脽脿谩芒茫盲氓忙莽猫茅锚毛矛铆卯茂冒帽貌贸么玫枚梅酶霉煤没眉媒镁每美昧寐妹媚门闷们萌蒙檬盟锰猛梦孟眯醚靡糜迷谜弥米秘觅泌蜜密幂棉眠绵冕免勉娩缅面苗描瞄藐秒渺庙妙蔑灭民抿皿敏悯闽明螟鸣铭名命谬摸�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������腀腁腂腃腄腅腇腉腍腎腏腒腖腗腘腛腜腝腞腟腡腢腣腤腦腨腪腫腬腯腲腳腵腶腷腸膁膃膄膅膆膇膉膋膌膍膎膐膒膓膔膕膖膗膙膚膞膟膠膡膢膤膥�膧膩膫膬膭膮膯膰膱膲膴膵膶膷膸膹膼膽膾膿臄臅臇臈臉臋臍臎臏臐臑臒臓摹蘑模膜磨摩魔抹末莫墨默沫漠寞陌谋牟某拇牡亩姆母墓暮幕募慕木目睦牧穆拿哪呐钠那娜纳氖乃奶耐奈南男难囊挠脑恼闹淖呢馁内嫩能妮霓倪泥尼拟你匿腻逆溺蔫拈年碾撵捻念娘酿鸟尿捏聂孽啮镊镍涅您柠狞凝宁�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������臔臕臖臗臘臙臚臛臜臝臞臟臠臡臢臤臥臦臨臩臫臮臯臰臱臲臵臶臷臸臹臺臽臿舃與興舉舊舋舎舏舑舓舕舖舗舘舙舚舝舠舤舥舦舧舩舮舲舺舼舽舿�艀艁艂艃艅艆艈艊艌艍艎艐艑艒艓艔艕艖艗艙艛艜艝艞艠艡艢艣艤艥艦艧艩拧泞牛扭钮纽脓浓农弄奴努怒女暖虐疟挪懦糯诺哦欧鸥殴藕呕偶沤啪趴爬帕怕琶拍排牌徘湃派攀潘盘磐盼畔判叛乓庞旁耪胖抛咆刨炮袍跑泡呸胚培裴赔陪配佩沛喷盆砰抨烹澎彭蓬棚硼篷膨朋鹏捧碰坯砒霹批披劈琵毗�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������艪艫艬艭艱艵艶艷艸艻艼芀芁芃芅芆芇芉芌芐芓芔芕芖芚芛芞芠芢芣芧芲芵芶芺芻芼芿苀苂苃苅苆苉苐苖苙苚苝苢苧苨苩苪苬苭苮苰苲苳苵苶苸�苺苼苽苾苿茀茊茋茍茐茒茓茖茘茙茝茞茟茠茡茢茣茤茥茦茩茪茮茰茲茷茻茽啤脾疲皮匹痞僻屁譬篇偏片骗飘漂瓢票撇瞥拼频贫品聘乒坪苹萍平凭瓶评屏坡泼颇婆破魄迫粕剖扑铺仆莆葡菩蒲埔朴圃普浦谱曝瀑期欺栖戚妻七凄漆柒沏其棋奇歧畦崎脐齐旗祈祁骑起岂乞企启契砌器气迄弃汽泣讫掐�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"����������������������������������������������������������������茾茿荁荂荄荅荈荊荋荌荍荎荓荕荖荗荘荙荝荢荰荱荲荳荴荵荶荹荺荾荿莀莁莂莃莄莇莈莊莋莌莍莏莐莑莔莕莖莗莙莚莝莟莡莢莣莤莥莦莧莬莭莮�莯莵莻莾莿菂菃菄菆菈菉菋菍菎菐菑菒菓菕菗菙菚菛菞菢菣菤菦菧菨菫菬菭恰洽牵扦钎铅千迁签仟谦乾黔钱钳前潜遣浅谴堑嵌欠歉枪呛腔羌墙蔷强抢橇锹敲悄桥瞧乔侨巧鞘撬翘峭俏窍切茄且怯窃钦侵亲秦琴勤芹擒禽寝沁青轻氢倾卿清擎晴氰情顷请庆琼穷秋丘邱球求囚酋泅趋区蛆曲躯屈驱渠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"����������������������������������������������������������������菮華菳菴菵菶菷菺菻菼菾菿萀萂萅萇萈萉萊萐萒萓萔萕萖萗萙萚萛萞萟萠萡萢萣萩萪萫萬萭萮萯萰萲萳萴萵萶萷萹萺萻萾萿葀葁葂葃葄葅葇葈葉�葊葋葌葍葎葏葐葒葓葔葕葖葘葝葞葟葠葢葤葥葦葧葨葪葮葯葰葲葴葷葹葻葼取娶龋趣去圈颧权醛泉全痊拳犬券劝缺炔瘸却鹊榷确雀裙群然燃冉染瓤壤攘嚷让饶扰绕惹热壬仁人忍韧任认刃妊纫扔仍日戎茸蓉荣融熔溶容绒冗揉柔肉茹蠕儒孺如辱乳汝入褥软阮蕊瑞锐闰润若弱撒洒萨腮鳃塞赛三叁�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[201] = \"����������������������������������������������������������������葽葾葿蒀蒁蒃蒄蒅蒆蒊蒍蒏蒐蒑蒒蒓蒔蒕蒖蒘蒚蒛蒝蒞蒟蒠蒢蒣蒤蒥蒦蒧蒨蒩蒪蒫蒬蒭蒮蒰蒱蒳蒵蒶蒷蒻蒼蒾蓀蓂蓃蓅蓆蓇蓈蓋蓌蓎蓏蓒蓔蓕蓗�蓘蓙蓚蓛蓜蓞蓡蓢蓤蓧蓨蓩蓪蓫蓭蓮蓯蓱蓲蓳蓴蓵蓶蓷蓸蓹蓺蓻蓽蓾蔀蔁蔂伞散桑嗓丧搔骚扫嫂瑟色涩森僧莎砂杀刹沙纱傻啥煞筛晒珊苫杉山删煽衫闪陕擅赡膳善汕扇缮墒伤商赏晌上尚裳梢捎稍烧芍勺韶少哨邵绍奢赊蛇舌舍赦摄射慑涉社设砷申呻伸身深娠绅神沈审婶甚肾慎渗声生甥牲升绳�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������蔃蔄蔅蔆蔇蔈蔉蔊蔋蔍蔎蔏蔐蔒蔔蔕蔖蔘蔙蔛蔜蔝蔞蔠蔢蔣蔤蔥蔦蔧蔨蔩蔪蔭蔮蔯蔰蔱蔲蔳蔴蔵蔶蔾蔿蕀蕁蕂蕄蕅蕆蕇蕋蕌蕍蕎蕏蕐蕑蕒蕓蕔蕕�蕗蕘蕚蕛蕜蕝蕟蕠蕡蕢蕣蕥蕦蕧蕩蕪蕫蕬蕭蕮蕯蕰蕱蕳蕵蕶蕷蕸蕼蕽蕿薀薁省盛剩胜圣师失狮施湿诗尸虱十石拾时什食蚀实识史矢使屎驶始式示士世柿事拭誓逝势是嗜噬适仕侍释饰氏市恃室视试收手首守寿授售受瘦兽蔬枢梳殊抒输叔舒淑疏书赎孰熟薯暑曙署蜀黍鼠属术述树束戍竖墅庶数漱�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������薂薃薆薈薉薊薋薌薍薎薐薑薒薓薔薕薖薗薘薙薚薝薞薟薠薡薢薣薥薦薧薩薫薬薭薱薲薳薴薵薶薸薺薻薼薽薾薿藀藂藃藄藅藆藇藈藊藋藌藍藎藑藒�藔藖藗藘藙藚藛藝藞藟藠藡藢藣藥藦藧藨藪藫藬藭藮藯藰藱藲藳藴藵藶藷藸恕刷耍摔衰甩帅栓拴霜双爽谁水睡税吮瞬顺舜说硕朔烁斯撕嘶思私司丝死肆寺嗣四伺似饲巳松耸怂颂送宋讼诵搜艘擞嗽苏酥俗素速粟僳塑溯宿诉肃酸蒜算虽隋随绥髓碎岁穗遂隧祟孙损笋蓑梭唆缩琐索锁所塌他它她塔�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������藹藺藼藽藾蘀蘁蘂蘃蘄蘆蘇蘈蘉蘊蘋蘌蘍蘎蘏蘐蘒蘓蘔蘕蘗蘘蘙蘚蘛蘜蘝蘞蘟蘠蘡蘢蘣蘤蘥蘦蘨蘪蘫蘬蘭蘮蘯蘰蘱蘲蘳蘴蘵蘶蘷蘹蘺蘻蘽蘾蘿虀�虁虂虃虄虅虆虇虈虉虊虋虌虒虓處虖虗虘虙虛虜虝號虠虡虣虤虥虦虧虨虩虪獭挞蹋踏胎苔抬台泰酞太态汰坍摊贪瘫滩坛檀痰潭谭谈坦毯袒碳探叹炭汤塘搪堂棠膛唐糖倘躺淌趟烫掏涛滔绦萄桃逃淘陶讨套特藤腾疼誊梯剔踢锑提题蹄啼体替嚏惕涕剃屉天添填田甜恬舔腆挑条迢眺跳贴铁帖厅听烃�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������虭虯虰虲虳虴虵虶虷虸蚃蚄蚅蚆蚇蚈蚉蚎蚏蚐蚑蚒蚔蚖蚗蚘蚙蚚蚛蚞蚟蚠蚡蚢蚥蚦蚫蚭蚮蚲蚳蚷蚸蚹蚻蚼蚽蚾蚿蛁蛂蛃蛅蛈蛌蛍蛒蛓蛕蛖蛗蛚蛜�蛝蛠蛡蛢蛣蛥蛦蛧蛨蛪蛫蛬蛯蛵蛶蛷蛺蛻蛼蛽蛿蜁蜄蜅蜆蜋蜌蜎蜏蜐蜑蜔蜖汀廷停亭庭挺艇通桐酮瞳同铜彤童桶捅筒统痛偷投头透凸秃突图徒途涂屠土吐兔湍团推颓腿蜕褪退吞屯臀拖托脱鸵陀驮驼椭妥拓唾挖哇蛙洼娃瓦袜歪外豌弯湾玩顽丸烷完碗挽晚皖惋宛婉万腕汪王亡枉网往旺望忘妄威�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������蜙蜛蜝蜟蜠蜤蜦蜧蜨蜪蜫蜬蜭蜯蜰蜲蜳蜵蜶蜸蜹蜺蜼蜽蝀蝁蝂蝃蝄蝅蝆蝊蝋蝍蝏蝐蝑蝒蝔蝕蝖蝘蝚蝛蝜蝝蝞蝟蝡蝢蝦蝧蝨蝩蝪蝫蝬蝭蝯蝱蝲蝳蝵�蝷蝸蝹蝺蝿螀螁螄螆螇螉螊螌螎螏螐螑螒螔螕螖螘螙螚螛螜螝螞螠螡螢螣螤巍微危韦违桅围唯惟为潍维苇萎委伟伪尾纬未蔚味畏胃喂魏位渭谓尉慰卫瘟温蚊文闻纹吻稳紊问嗡翁瓮挝蜗涡窝我斡卧握沃巫呜钨乌污诬屋无芜梧吾吴毋武五捂午舞伍侮坞戊雾晤物勿务悟误昔熙析西硒矽晰嘻吸锡牺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������螥螦螧螩螪螮螰螱螲螴螶螷螸螹螻螼螾螿蟁蟂蟃蟄蟅蟇蟈蟉蟌蟍蟎蟏蟐蟔蟕蟖蟗蟘蟙蟚蟜蟝蟞蟟蟡蟢蟣蟤蟦蟧蟨蟩蟫蟬蟭蟯蟰蟱蟲蟳蟴蟵蟶蟷蟸�蟺蟻蟼蟽蟿蠀蠁蠂蠄蠅蠆蠇蠈蠉蠋蠌蠍蠎蠏蠐蠑蠒蠔蠗蠘蠙蠚蠜蠝蠞蠟蠠蠣稀息希悉膝夕惜熄烯溪汐犀檄袭席习媳喜铣洗系隙戏细瞎虾匣霞辖暇峡侠狭下厦夏吓掀锨先仙鲜纤咸贤衔舷闲涎弦嫌显险现献县腺馅羡宪陷限线相厢镶香箱襄湘乡翔祥详想响享项巷橡像向象萧硝霄削哮嚣销消宵淆晓�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������蠤蠥蠦蠧蠨蠩蠪蠫蠬蠭蠮蠯蠰蠱蠳蠴蠵蠶蠷蠸蠺蠻蠽蠾蠿衁衂衃衆衇衈衉衊衋衎衏衐衑衒術衕衖衘衚衛衜衝衞衟衠衦衧衪衭衯衱衳衴衵衶衸衹衺�衻衼袀袃袆袇袉袊袌袎袏袐袑袓袔袕袗袘袙袚袛袝袞袟袠袡袣袥袦袧袨袩袪小孝校肖啸笑效楔些歇蝎鞋协挟携邪斜胁谐写械卸蟹懈泄泻谢屑薪芯锌欣辛新忻心信衅星腥猩惺兴刑型形邢行醒幸杏性姓兄凶胸匈汹雄熊休修羞朽嗅锈秀袖绣墟戌需虚嘘须徐许蓄酗叙旭序畜恤絮婿绪续轩喧宣悬旋玄�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������袬袮袯袰袲袳袴袵袶袸袹袺袻袽袾袿裀裃裄裇裈裊裋裌裍裏裐裑裓裖裗裚裛補裝裞裠裡裦裧裩裪裫裬裭裮裯裲裵裶裷裺裻製裿褀褁褃褄褅褆複褈�褉褋褌褍褎褏褑褔褕褖褗褘褜褝褞褟褠褢褣褤褦褧褨褩褬褭褮褯褱褲褳褵褷选癣眩绚靴薛学穴雪血勋熏循旬询寻驯巡殉汛训讯逊迅压押鸦鸭呀丫芽牙蚜崖衙涯雅哑亚讶焉咽阉烟淹盐严研蜒岩延言颜阎炎沿奄掩眼衍演艳堰燕厌砚雁唁彦焰宴谚验殃央鸯秧杨扬佯疡羊洋阳氧仰痒养样漾邀腰妖瑶�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������褸褹褺褻褼褽褾褿襀襂襃襅襆襇襈襉襊襋襌襍襎襏襐襑襒襓襔襕襖襗襘襙襚襛襜襝襠襡襢襣襤襥襧襨襩襪襫襬襭襮襯襰襱襲襳襴襵襶襷襸襹襺襼�襽襾覀覂覄覅覇覈覉覊見覌覍覎規覐覑覒覓覔覕視覗覘覙覚覛覜覝覞覟覠覡摇尧遥窑谣姚咬舀药要耀椰噎耶爷野冶也页掖业叶曳腋夜液一壹医揖铱依伊衣颐夷遗移仪胰疑沂宜姨彝椅蚁倚已乙矣以艺抑易邑屹亿役臆逸肄疫亦裔意毅忆义益溢诣议谊译异翼翌绎茵荫因殷音阴姻吟银淫寅饮尹引隐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������覢覣覤覥覦覧覨覩親覫覬覭覮覯覰覱覲観覴覵覶覷覸覹覺覻覼覽覾覿觀觃觍觓觔觕觗觘觙觛觝觟觠觡觢觤觧觨觩觪觬觭觮觰觱觲觴觵觶觷觸觹觺�觻觼觽觾觿訁訂訃訄訅訆計訉訊訋訌訍討訏訐訑訒訓訔訕訖託記訙訚訛訜訝印英樱婴鹰应缨莹萤营荧蝇迎赢盈影颖硬映哟拥佣臃痈庸雍踊蛹咏泳涌永恿勇用幽优悠忧尤由邮铀犹油游酉有友右佑釉诱又幼迂淤于盂榆虞愚舆余俞逾鱼愉渝渔隅予娱雨与屿禹宇语羽玉域芋郁吁遇喻峪御愈欲狱育誉�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������訞訟訠訡訢訣訤訥訦訧訨訩訪訫訬設訮訯訰許訲訳訴訵訶訷訸訹診註証訽訿詀詁詂詃詄詅詆詇詉詊詋詌詍詎詏詐詑詒詓詔評詖詗詘詙詚詛詜詝詞�詟詠詡詢詣詤詥試詧詨詩詪詫詬詭詮詯詰話該詳詴詵詶詷詸詺詻詼詽詾詿誀浴寓裕预豫驭鸳渊冤元垣袁原援辕园员圆猿源缘远苑愿怨院曰约越跃钥岳粤月悦阅耘云郧匀陨允运蕴酝晕韵孕匝砸杂栽哉灾宰载再在咱攒暂赞赃脏葬遭糟凿藻枣早澡蚤躁噪造皂灶燥责择则泽贼怎增憎曾赠扎喳渣札轧�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������誁誂誃誄誅誆誇誈誋誌認誎誏誐誑誒誔誕誖誗誘誙誚誛誜誝語誟誠誡誢誣誤誥誦誧誨誩說誫説読誮誯誰誱課誳誴誵誶誷誸誹誺誻誼誽誾調諀諁諂�諃諄諅諆談諈諉諊請諌諍諎諏諐諑諒諓諔諕論諗諘諙諚諛諜諝諞諟諠諡諢諣铡闸眨栅榨咋乍炸诈摘斋宅窄债寨瞻毡詹粘沾盏斩辗崭展蘸栈占战站湛绽樟章彰漳张掌涨杖丈帐账仗胀瘴障招昭找沼赵照罩兆肇召遮折哲蛰辙者锗蔗这浙珍斟真甄砧臻贞针侦枕疹诊震振镇阵蒸挣睁征狰争怔整拯正政�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������諤諥諦諧諨諩諪諫諬諭諮諯諰諱諲諳諴諵諶諷諸諹諺諻諼諽諾諿謀謁謂謃謄謅謆謈謉謊謋謌謍謎謏謐謑謒謓謔謕謖謗謘謙謚講謜謝謞謟謠謡謢謣�謤謥謧謨謩謪謫謬謭謮謯謰謱謲謳謴謵謶謷謸謹謺謻謼謽謾謿譀譁譂譃譄譅帧症郑证芝枝支吱蜘知肢脂汁之织职直植殖执值侄址指止趾只旨纸志挚掷至致置帜峙制智秩稚质炙痔滞治窒中盅忠钟衷终种肿重仲众舟周州洲诌粥轴肘帚咒皱宙昼骤珠株蛛朱猪诸诛逐竹烛煮拄瞩嘱主著柱助蛀贮铸筑�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������譆譇譈證譊譋譌譍譎譏譐譑譒譓譔譕譖譗識譙譚譛譜譝譞譟譠譡譢譣譤譥譧譨譩譪譫譭譮譯議譱譲譳譴譵譶護譸譹譺譻譼譽譾譿讀讁讂讃讄讅讆�讇讈讉變讋讌讍讎讏讐讑讒讓讔讕讖讗讘讙讚讛讜讝讞讟讬讱讻诇诐诪谉谞住注祝驻抓爪拽专砖转撰赚篆桩庄装妆撞壮状椎锥追赘坠缀谆准捉拙卓桌琢茁酌啄着灼浊兹咨资姿滋淄孜紫仔籽滓子自渍字鬃棕踪宗综总纵邹走奏揍租足卒族祖诅阻组钻纂嘴醉最罪尊遵昨左佐柞做作坐座������\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������谸谹谺谻谼谽谾谿豀豂豃豄豅豈豊豋豍豎豏豐豑豒豓豔豖豗豘豙豛豜豝豞豟豠豣豤豥豦豧豨豩豬豭豮豯豰豱豲豴豵豶豷豻豼豽豾豿貀貁貃貄貆貇�貈貋貍貎貏貐貑貒貓貕貖貗貙貚貛貜貝貞貟負財貢貣貤貥貦貧貨販貪貫責貭亍丌兀丐廿卅丕亘丞鬲孬噩丨禺丿匕乇夭爻卮氐囟胤馗毓睾鼗丶亟鼐乜乩亓芈孛啬嘏仄厍厝厣厥厮靥赝匚叵匦匮匾赜卦卣刂刈刎刭刳刿剀剌剞剡剜蒯剽劂劁劐劓冂罔亻仃仉仂仨仡仫仞伛仳伢佤仵伥伧伉伫佞佧攸佚佝�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������貮貯貰貱貲貳貴貵貶買貸貹貺費貼貽貾貿賀賁賂賃賄賅賆資賈賉賊賋賌賍賎賏賐賑賒賓賔賕賖賗賘賙賚賛賜賝賞賟賠賡賢賣賤賥賦賧賨賩質賫賬�賭賮賯賰賱賲賳賴賵賶賷賸賹賺賻購賽賾賿贀贁贂贃贄贅贆贇贈贉贊贋贌贍佟佗伲伽佶佴侑侉侃侏佾佻侪佼侬侔俦俨俪俅俚俣俜俑俟俸倩偌俳倬倏倮倭俾倜倌倥倨偾偃偕偈偎偬偻傥傧傩傺僖儆僭僬僦僮儇儋仝氽佘佥俎龠汆籴兮巽黉馘冁夔勹匍訇匐凫夙兕亠兖亳衮袤亵脔裒禀嬴蠃羸冫冱冽冼�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������贎贏贐贑贒贓贔贕贖贗贘贙贚贛贜贠赑赒赗赟赥赨赩赪赬赮赯赱赲赸赹赺赻赼赽赾赿趀趂趃趆趇趈趉趌趍趎趏趐趒趓趕趖趗趘趙趚趛趜趝趞趠趡�趢趤趥趦趧趨趩趪趫趬趭趮趯趰趲趶趷趹趻趽跀跁跂跅跇跈跉跊跍跐跒跓跔凇冖冢冥讠讦讧讪讴讵讷诂诃诋诏诎诒诓诔诖诘诙诜诟诠诤诨诩诮诰诳诶诹诼诿谀谂谄谇谌谏谑谒谔谕谖谙谛谘谝谟谠谡谥谧谪谫谮谯谲谳谵谶卩卺阝阢阡阱阪阽阼陂陉陔陟陧陬陲陴隈隍隗隰邗邛邝邙邬邡邴邳邶邺�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������跕跘跙跜跠跡跢跥跦跧跩跭跮跰跱跲跴跶跼跾跿踀踁踂踃踄踆踇踈踋踍踎踐踑踒踓踕踖踗踘踙踚踛踜踠踡踤踥踦踧踨踫踭踰踲踳踴踶踷踸踻踼踾�踿蹃蹅蹆蹌蹍蹎蹏蹐蹓蹔蹕蹖蹗蹘蹚蹛蹜蹝蹞蹟蹠蹡蹢蹣蹤蹥蹧蹨蹪蹫蹮蹱邸邰郏郅邾郐郄郇郓郦郢郜郗郛郫郯郾鄄鄢鄞鄣鄱鄯鄹酃酆刍奂劢劬劭劾哿勐勖勰叟燮矍廴凵凼鬯厶弁畚巯坌垩垡塾墼壅壑圩圬圪圳圹圮圯坜圻坂坩垅坫垆坼坻坨坭坶坳垭垤垌垲埏垧垴垓垠埕埘埚埙埒垸埴埯埸埤埝�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������蹳蹵蹷蹸蹹蹺蹻蹽蹾躀躂躃躄躆躈躉躊躋躌躍躎躑躒躓躕躖躗躘躙躚躛躝躟躠躡躢躣躤躥躦躧躨躩躪躭躮躰躱躳躴躵躶躷躸躹躻躼躽躾躿軀軁軂�軃軄軅軆軇軈軉車軋軌軍軏軐軑軒軓軔軕軖軗軘軙軚軛軜軝軞軟軠軡転軣軤堋堍埽埭堀堞堙塄堠塥塬墁墉墚墀馨鼙懿艹艽艿芏芊芨芄芎芑芗芙芫芸芾芰苈苊苣芘芷芮苋苌苁芩芴芡芪芟苄苎芤苡茉苷苤茏茇苜苴苒苘茌苻苓茑茚茆茔茕苠苕茜荑荛荜茈莒茼茴茱莛荞茯荏荇荃荟荀茗荠茭茺茳荦荥�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������軥軦軧軨軩軪軫軬軭軮軯軰軱軲軳軴軵軶軷軸軹軺軻軼軽軾軿輀輁輂較輄輅輆輇輈載輊輋輌輍輎輏輐輑輒輓輔輕輖輗輘輙輚輛輜輝輞輟輠輡輢輣�輤輥輦輧輨輩輪輫輬輭輮輯輰輱輲輳輴輵輶輷輸輹輺輻輼輽輾輿轀轁轂轃轄荨茛荩荬荪荭荮莰荸莳莴莠莪莓莜莅荼莶莩荽莸荻莘莞莨莺莼菁萁菥菘堇萘萋菝菽菖萜萸萑萆菔菟萏萃菸菹菪菅菀萦菰菡葜葑葚葙葳蒇蒈葺蒉葸萼葆葩葶蒌蒎萱葭蓁蓍蓐蓦蒽蓓蓊蒿蒺蓠蒡蒹蒴蒗蓥蓣蔌甍蔸蓰蔹蔟蔺�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������轅轆轇轈轉轊轋轌轍轎轏轐轑轒轓轔轕轖轗轘轙轚轛轜轝轞轟轠轡轢轣轤轥轪辀辌辒辝辠辡辢辤辥辦辧辪辬辭辮辯農辳辴辵辷辸辺辻込辿迀迃迆�迉迊迋迌迍迏迒迖迗迚迠迡迣迧迬迯迱迲迴迵迶迺迻迼迾迿逇逈逌逎逓逕逘蕖蔻蓿蓼蕙蕈蕨蕤蕞蕺瞢蕃蕲蕻薤薨薇薏蕹薮薜薅薹薷薰藓藁藜藿蘧蘅蘩蘖蘼廾弈夼奁耷奕奚奘匏尢尥尬尴扌扪抟抻拊拚拗拮挢拶挹捋捃掭揶捱捺掎掴捭掬掊捩掮掼揲揸揠揿揄揞揎摒揆掾摅摁搋搛搠搌搦搡摞撄摭撖�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������這逜連逤逥逧逨逩逪逫逬逰週進逳逴逷逹逺逽逿遀遃遅遆遈遉遊運遌過達違遖遙遚遜遝遞遟遠遡遤遦遧適遪遫遬遯遰遱遲遳遶遷選遹遺遻遼遾邁�還邅邆邇邉邊邌邍邎邏邐邒邔邖邘邚邜邞邟邠邤邥邧邨邩邫邭邲邷邼邽邿郀摺撷撸撙撺擀擐擗擤擢攉攥攮弋忒甙弑卟叱叽叩叨叻吒吖吆呋呒呓呔呖呃吡呗呙吣吲咂咔呷呱呤咚咛咄呶呦咝哐咭哂咴哒咧咦哓哔呲咣哕咻咿哌哙哚哜咩咪咤哝哏哞唛哧唠哽唔哳唢唣唏唑唧唪啧喏喵啉啭啁啕唿啐唼�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������郂郃郆郈郉郋郌郍郒郔郕郖郘郙郚郞郟郠郣郤郥郩郪郬郮郰郱郲郳郵郶郷郹郺郻郼郿鄀鄁鄃鄅鄆鄇鄈鄉鄊鄋鄌鄍鄎鄏鄐鄑鄒鄓鄔鄕鄖鄗鄘鄚鄛鄜�鄝鄟鄠鄡鄤鄥鄦鄧鄨鄩鄪鄫鄬鄭鄮鄰鄲鄳鄴鄵鄶鄷鄸鄺鄻鄼鄽鄾鄿酀酁酂酄唷啖啵啶啷唳唰啜喋嗒喃喱喹喈喁喟啾嗖喑啻嗟喽喾喔喙嗪嗷嗉嘟嗑嗫嗬嗔嗦嗝嗄嗯嗥嗲嗳嗌嗍嗨嗵嗤辔嘞嘈嘌嘁嘤嘣嗾嘀嘧嘭噘嘹噗嘬噍噢噙噜噌噔嚆噤噱噫噻噼嚅嚓嚯囔囗囝囡囵囫囹囿圄圊圉圜帏帙帔帑帱帻帼�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������酅酇酈酑酓酔酕酖酘酙酛酜酟酠酦酧酨酫酭酳酺酻酼醀醁醂醃醄醆醈醊醎醏醓醔醕醖醗醘醙醜醝醞醟醠醡醤醥醦醧醨醩醫醬醰醱醲醳醶醷醸醹醻�醼醽醾醿釀釁釂釃釄釅釆釈釋釐釒釓釔釕釖釗釘釙釚釛針釞釟釠釡釢釣釤釥帷幄幔幛幞幡岌屺岍岐岖岈岘岙岑岚岜岵岢岽岬岫岱岣峁岷峄峒峤峋峥崂崃崧崦崮崤崞崆崛嵘崾崴崽嵬嵛嵯嵝嵫嵋嵊嵩嵴嶂嶙嶝豳嶷巅彳彷徂徇徉後徕徙徜徨徭徵徼衢彡犭犰犴犷犸狃狁狎狍狒狨狯狩狲狴狷猁狳猃狺�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������釦釧釨釩釪釫釬釭釮釯釰釱釲釳釴釵釶釷釸釹釺釻釼釽釾釿鈀鈁鈂鈃鈄鈅鈆鈇鈈鈉鈊鈋鈌鈍鈎鈏鈐鈑鈒鈓鈔鈕鈖鈗鈘鈙鈚鈛鈜鈝鈞鈟鈠鈡鈢鈣鈤�鈥鈦鈧鈨鈩鈪鈫鈬鈭鈮鈯鈰鈱鈲鈳鈴鈵鈶鈷鈸鈹鈺鈻鈼鈽鈾鈿鉀鉁鉂鉃鉄鉅狻猗猓猡猊猞猝猕猢猹猥猬猸猱獐獍獗獠獬獯獾舛夥飧夤夂饣饧饨饩饪饫饬饴饷饽馀馄馇馊馍馐馑馓馔馕庀庑庋庖庥庠庹庵庾庳赓廒廑廛廨廪膺忄忉忖忏怃忮怄忡忤忾怅怆忪忭忸怙怵怦怛怏怍怩怫怊怿怡恸恹恻恺恂�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������鉆鉇鉈鉉鉊鉋鉌鉍鉎鉏鉐鉑鉒鉓鉔鉕鉖鉗鉘鉙鉚鉛鉜鉝鉞鉟鉠鉡鉢鉣鉤鉥鉦鉧鉨鉩鉪鉫鉬鉭鉮鉯鉰鉱鉲鉳鉵鉶鉷鉸鉹鉺鉻鉼鉽鉾鉿銀銁銂銃銄銅�銆銇銈銉銊銋銌銍銏銐銑銒銓銔銕銖銗銘銙銚銛銜銝銞銟銠銡銢銣銤銥銦銧恪恽悖悚悭悝悃悒悌悛惬悻悱惝惘惆惚悴愠愦愕愣惴愀愎愫慊慵憬憔憧憷懔懵忝隳闩闫闱闳闵闶闼闾阃阄阆阈阊阋阌阍阏阒阕阖阗阙阚丬爿戕氵汔汜汊沣沅沐沔沌汨汩汴汶沆沩泐泔沭泷泸泱泗沲泠泖泺泫泮沱泓泯泾�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������銨銩銪銫銬銭銯銰銱銲銳銴銵銶銷銸銹銺銻銼銽銾銿鋀鋁鋂鋃鋄鋅鋆鋇鋉鋊鋋鋌鋍鋎鋏鋐鋑鋒鋓鋔鋕鋖鋗鋘鋙鋚鋛鋜鋝鋞鋟鋠鋡鋢鋣鋤鋥鋦鋧鋨�鋩鋪鋫鋬鋭鋮鋯鋰鋱鋲鋳鋴鋵鋶鋷鋸鋹鋺鋻鋼鋽鋾鋿錀錁錂錃錄錅錆錇錈錉洹洧洌浃浈洇洄洙洎洫浍洮洵洚浏浒浔洳涑浯涞涠浞涓涔浜浠浼浣渚淇淅淞渎涿淠渑淦淝淙渖涫渌涮渫湮湎湫溲湟溆湓湔渲渥湄滟溱溘滠漭滢溥溧溽溻溷滗溴滏溏滂溟潢潆潇漤漕滹漯漶潋潴漪漉漩澉澍澌潸潲潼潺濑�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������錊錋錌錍錎錏錐錑錒錓錔錕錖錗錘錙錚錛錜錝錞錟錠錡錢錣錤錥錦錧錨錩錪錫錬錭錮錯錰錱録錳錴錵錶錷錸錹錺錻錼錽錿鍀鍁鍂鍃鍄鍅鍆鍇鍈鍉�鍊鍋鍌鍍鍎鍏鍐鍑鍒鍓鍔鍕鍖鍗鍘鍙鍚鍛鍜鍝鍞鍟鍠鍡鍢鍣鍤鍥鍦鍧鍨鍩鍫濉澧澹澶濂濡濮濞濠濯瀚瀣瀛瀹瀵灏灞宀宄宕宓宥宸甯骞搴寤寮褰寰蹇謇辶迓迕迥迮迤迩迦迳迨逅逄逋逦逑逍逖逡逵逶逭逯遄遑遒遐遨遘遢遛暹遴遽邂邈邃邋彐彗彖彘尻咫屐屙孱屣屦羼弪弩弭艴弼鬻屮妁妃妍妩妪妣�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������鍬鍭鍮鍯鍰鍱鍲鍳鍴鍵鍶鍷鍸鍹鍺鍻鍼鍽鍾鍿鎀鎁鎂鎃鎄鎅鎆鎇鎈鎉鎊鎋鎌鎍鎎鎐鎑鎒鎓鎔鎕鎖鎗鎘鎙鎚鎛鎜鎝鎞鎟鎠鎡鎢鎣鎤鎥鎦鎧鎨鎩鎪鎫�鎬鎭鎮鎯鎰鎱鎲鎳鎴鎵鎶鎷鎸鎹鎺鎻鎼鎽鎾鎿鏀鏁鏂鏃鏄鏅鏆鏇鏈鏉鏋鏌鏍妗姊妫妞妤姒妲妯姗妾娅娆姝娈姣姘姹娌娉娲娴娑娣娓婀婧婊婕娼婢婵胬媪媛婷婺媾嫫媲嫒嫔媸嫠嫣嫱嫖嫦嫘嫜嬉嬗嬖嬲嬷孀尕尜孚孥孳孑孓孢驵驷驸驺驿驽骀骁骅骈骊骐骒骓骖骘骛骜骝骟骠骢骣骥骧纟纡纣纥纨纩�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������鏎鏏鏐鏑鏒鏓鏔鏕鏗鏘鏙鏚鏛鏜鏝鏞鏟鏠鏡鏢鏣鏤鏥鏦鏧鏨鏩鏪鏫鏬鏭鏮鏯鏰鏱鏲鏳鏴鏵鏶鏷鏸鏹鏺鏻鏼鏽鏾鏿鐀鐁鐂鐃鐄鐅鐆鐇鐈鐉鐊鐋鐌鐍�鐎鐏鐐鐑鐒鐓鐔鐕鐖鐗鐘鐙鐚鐛鐜鐝鐞鐟鐠鐡鐢鐣鐤鐥鐦鐧鐨鐩鐪鐫鐬鐭鐮纭纰纾绀绁绂绉绋绌绐绔绗绛绠绡绨绫绮绯绱绲缍绶绺绻绾缁缂缃缇缈缋缌缏缑缒缗缙缜缛缟缡缢缣缤缥缦缧缪缫缬缭缯缰缱缲缳缵幺畿巛甾邕玎玑玮玢玟珏珂珑玷玳珀珉珈珥珙顼琊珩珧珞玺珲琏琪瑛琦琥琨琰琮琬�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������鐯鐰鐱鐲鐳鐴鐵鐶鐷鐸鐹鐺鐻鐼鐽鐿鑀鑁鑂鑃鑄鑅鑆鑇鑈鑉鑊鑋鑌鑍鑎鑏鑐鑑鑒鑓鑔鑕鑖鑗鑘鑙鑚鑛鑜鑝鑞鑟鑠鑡鑢鑣鑤鑥鑦鑧鑨鑩鑪鑬鑭鑮鑯�鑰鑱鑲鑳鑴鑵鑶鑷鑸鑹鑺鑻鑼鑽鑾鑿钀钁钂钃钄钑钖钘铇铏铓铔铚铦铻锜锠琛琚瑁瑜瑗瑕瑙瑷瑭瑾璜璎璀璁璇璋璞璨璩璐璧瓒璺韪韫韬杌杓杞杈杩枥枇杪杳枘枧杵枨枞枭枋杷杼柰栉柘栊柩枰栌柙枵柚枳柝栀柃枸柢栎柁柽栲栳桠桡桎桢桄桤梃栝桕桦桁桧桀栾桊桉栩梵梏桴桷梓桫棂楮棼椟椠棹�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������锧锳锽镃镈镋镕镚镠镮镴镵長镸镹镺镻镼镽镾門閁閂閃閄閅閆閇閈閉閊開閌閍閎閏閐閑閒間閔閕閖閗閘閙閚閛閜閝閞閟閠閡関閣閤閥閦閧閨閩閪�閫閬閭閮閯閰閱閲閳閴閵閶閷閸閹閺閻閼閽閾閿闀闁闂闃闄闅闆闇闈闉闊闋椤棰椋椁楗棣椐楱椹楠楂楝榄楫榀榘楸椴槌榇榈槎榉楦楣楹榛榧榻榫榭槔榱槁槊槟榕槠榍槿樯槭樗樘橥槲橄樾檠橐橛樵檎橹樽樨橘橼檑檐檩檗檫猷獒殁殂殇殄殒殓殍殚殛殡殪轫轭轱轲轳轵轶轸轷轹轺轼轾辁辂辄辇辋�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������闌闍闎闏闐闑闒闓闔闕闖闗闘闙闚闛關闝闞闟闠闡闢闣闤闥闦闧闬闿阇阓阘阛阞阠阣阤阥阦阧阨阩阫阬阭阯阰阷阸阹阺阾陁陃陊陎陏陑陒陓陖陗�陘陙陚陜陝陞陠陣陥陦陫陭陮陯陰陱陳陸陹険陻陼陽陾陿隀隁隂隃隄隇隉隊辍辎辏辘辚軎戋戗戛戟戢戡戥戤戬臧瓯瓴瓿甏甑甓攴旮旯旰昊昙杲昃昕昀炅曷昝昴昱昶昵耆晟晔晁晏晖晡晗晷暄暌暧暝暾曛曜曦曩贲贳贶贻贽赀赅赆赈赉赇赍赕赙觇觊觋觌觎觏觐觑牮犟牝牦牯牾牿犄犋犍犏犒挈挲掰�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������隌階隑隒隓隕隖隚際隝隞隟隠隡隢隣隤隥隦隨隩險隫隬隭隮隯隱隲隴隵隷隸隺隻隿雂雃雈雊雋雐雑雓雔雖雗雘雙雚雛雜雝雞雟雡離難雤雥雦雧雫�雬雭雮雰雱雲雴雵雸雺電雼雽雿霂霃霅霊霋霌霐霑霒霔霕霗霘霙霚霛霝霟霠搿擘耄毪毳毽毵毹氅氇氆氍氕氘氙氚氡氩氤氪氲攵敕敫牍牒牖爰虢刖肟肜肓肼朊肽肱肫肭肴肷胧胨胩胪胛胂胄胙胍胗朐胝胫胱胴胭脍脎胲胼朕脒豚脶脞脬脘脲腈腌腓腴腙腚腱腠腩腼腽腭腧塍媵膈膂膑滕膣膪臌朦臊膻�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������霡霢霣霤霥霦霧霨霩霫霬霮霯霱霳霴霵霶霷霺霻霼霽霿靀靁靂靃靄靅靆靇靈靉靊靋靌靍靎靏靐靑靔靕靗靘靚靜靝靟靣靤靦靧靨靪靫靬靭靮靯靰靱�靲靵靷靸靹靺靻靽靾靿鞀鞁鞂鞃鞄鞆鞇鞈鞉鞊鞌鞎鞏鞐鞓鞕鞖鞗鞙鞚鞛鞜鞝臁膦欤欷欹歃歆歙飑飒飓飕飙飚殳彀毂觳斐齑斓於旆旄旃旌旎旒旖炀炜炖炝炻烀炷炫炱烨烊焐焓焖焯焱煳煜煨煅煲煊煸煺熘熳熵熨熠燠燔燧燹爝爨灬焘煦熹戾戽扃扈扉礻祀祆祉祛祜祓祚祢祗祠祯祧祺禅禊禚禧禳忑忐�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������鞞鞟鞡鞢鞤鞥鞦鞧鞨鞩鞪鞬鞮鞰鞱鞳鞵鞶鞷鞸鞹鞺鞻鞼鞽鞾鞿韀韁韂韃韄韅韆韇韈韉韊韋韌韍韎韏韐韑韒韓韔韕韖韗韘韙韚韛韜韝韞韟韠韡韢韣�韤韥韨韮韯韰韱韲韴韷韸韹韺韻韼韽韾響頀頁頂頃頄項順頇須頉頊頋頌頍頎怼恝恚恧恁恙恣悫愆愍慝憩憝懋懑戆肀聿沓泶淼矶矸砀砉砗砘砑斫砭砜砝砹砺砻砟砼砥砬砣砩硎硭硖硗砦硐硇硌硪碛碓碚碇碜碡碣碲碹碥磔磙磉磬磲礅磴礓礤礞礴龛黹黻黼盱眄眍盹眇眈眚眢眙眭眦眵眸睐睑睇睃睚睨�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������頏預頑頒頓頔頕頖頗領頙頚頛頜頝頞頟頠頡頢頣頤頥頦頧頨頩頪頫頬頭頮頯頰頱頲頳頴頵頶頷頸頹頺頻頼頽頾頿顀顁顂顃顄顅顆顇顈顉顊顋題額�顎顏顐顑顒顓顔顕顖顗願顙顚顛顜顝類顟顠顡顢顣顤顥顦顧顨顩顪顫顬顭顮睢睥睿瞍睽瞀瞌瞑瞟瞠瞰瞵瞽町畀畎畋畈畛畲畹疃罘罡罟詈罨罴罱罹羁罾盍盥蠲钅钆钇钋钊钌钍钏钐钔钗钕钚钛钜钣钤钫钪钭钬钯钰钲钴钶钷钸钹钺钼钽钿铄铈铉铊铋铌铍铎铐铑铒铕铖铗铙铘铛铞铟铠铢铤铥铧铨铪�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������顯顰顱顲顳顴颋颎颒颕颙颣風颩颪颫颬颭颮颯颰颱颲颳颴颵颶颷颸颹颺颻颼颽颾颿飀飁飂飃飄飅飆飇飈飉飊飋飌飍飏飐飔飖飗飛飜飝飠飡飢飣飤�飥飦飩飪飫飬飭飮飯飰飱飲飳飴飵飶飷飸飹飺飻飼飽飾飿餀餁餂餃餄餅餆餇铩铫铮铯铳铴铵铷铹铼铽铿锃锂锆锇锉锊锍锎锏锒锓锔锕锖锘锛锝锞锟锢锪锫锩锬锱锲锴锶锷锸锼锾锿镂锵镄镅镆镉镌镎镏镒镓镔镖镗镘镙镛镞镟镝镡镢镤镥镦镧镨镩镪镫镬镯镱镲镳锺矧矬雉秕秭秣秫稆嵇稃稂稞稔�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������餈餉養餋餌餎餏餑餒餓餔餕餖餗餘餙餚餛餜餝餞餟餠餡餢餣餤餥餦餧館餩餪餫餬餭餯餰餱餲餳餴餵餶餷餸餹餺餻餼餽餾餿饀饁饂饃饄饅饆饇饈饉�饊饋饌饍饎饏饐饑饒饓饖饗饘饙饚饛饜饝饞饟饠饡饢饤饦饳饸饹饻饾馂馃馉稹稷穑黏馥穰皈皎皓皙皤瓞瓠甬鸠鸢鸨鸩鸪鸫鸬鸲鸱鸶鸸鸷鸹鸺鸾鹁鹂鹄鹆鹇鹈鹉鹋鹌鹎鹑鹕鹗鹚鹛鹜鹞鹣鹦鹧鹨鹩鹪鹫鹬鹱鹭鹳疒疔疖疠疝疬疣疳疴疸痄疱疰痃痂痖痍痣痨痦痤痫痧瘃痱痼痿瘐瘀瘅瘌瘗瘊瘥瘘瘕瘙�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������馌馎馚馛馜馝馞馟馠馡馢馣馤馦馧馩馪馫馬馭馮馯馰馱馲馳馴馵馶馷馸馹馺馻馼馽馾馿駀駁駂駃駄駅駆駇駈駉駊駋駌駍駎駏駐駑駒駓駔駕駖駗駘�駙駚駛駜駝駞駟駠駡駢駣駤駥駦駧駨駩駪駫駬駭駮駯駰駱駲駳駴駵駶駷駸駹瘛瘼瘢瘠癀瘭瘰瘿瘵癃瘾瘳癍癞癔癜癖癫癯翊竦穸穹窀窆窈窕窦窠窬窨窭窳衤衩衲衽衿袂袢裆袷袼裉裢裎裣裥裱褚裼裨裾裰褡褙褓褛褊褴褫褶襁襦襻疋胥皲皴矜耒耔耖耜耠耢耥耦耧耩耨耱耋耵聃聆聍聒聩聱覃顸颀颃�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������駺駻駼駽駾駿騀騁騂騃騄騅騆騇騈騉騊騋騌騍騎騏騐騑騒験騔騕騖騗騘騙騚騛騜騝騞騟騠騡騢騣騤騥騦騧騨騩騪騫騬騭騮騯騰騱騲騳騴騵騶騷騸�騹騺騻騼騽騾騿驀驁驂驃驄驅驆驇驈驉驊驋驌驍驎驏驐驑驒驓驔驕驖驗驘驙颉颌颍颏颔颚颛颞颟颡颢颥颦虍虔虬虮虿虺虼虻蚨蚍蚋蚬蚝蚧蚣蚪蚓蚩蚶蛄蚵蛎蚰蚺蚱蚯蛉蛏蚴蛩蛱蛲蛭蛳蛐蜓蛞蛴蛟蛘蛑蜃蜇蛸蜈蜊蜍蜉蜣蜻蜞蜥蜮蜚蜾蝈蜴蜱蜩蜷蜿螂蜢蝽蝾蝻蝠蝰蝌蝮螋蝓蝣蝼蝤蝙蝥螓螯螨蟒�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������驚驛驜驝驞驟驠驡驢驣驤驥驦驧驨驩驪驫驲骃骉骍骎骔骕骙骦骩骪骫骬骭骮骯骲骳骴骵骹骻骽骾骿髃髄髆髇髈髉髊髍髎髏髐髒體髕髖髗髙髚髛髜�髝髞髠髢髣髤髥髧髨髩髪髬髮髰髱髲髳髴髵髶髷髸髺髼髽髾髿鬀鬁鬂鬄鬅鬆蟆螈螅螭螗螃螫蟥螬螵螳蟋蟓螽蟑蟀蟊蟛蟪蟠蟮蠖蠓蟾蠊蠛蠡蠹蠼缶罂罄罅舐竺竽笈笃笄笕笊笫笏筇笸笪笙笮笱笠笥笤笳笾笞筘筚筅筵筌筝筠筮筻筢筲筱箐箦箧箸箬箝箨箅箪箜箢箫箴篑篁篌篝篚篥篦篪簌篾篼簏簖簋�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������鬇鬉鬊鬋鬌鬍鬎鬐鬑鬒鬔鬕鬖鬗鬘鬙鬚鬛鬜鬝鬞鬠鬡鬢鬤鬥鬦鬧鬨鬩鬪鬫鬬鬭鬮鬰鬱鬳鬴鬵鬶鬷鬸鬹鬺鬽鬾鬿魀魆魊魋魌魎魐魒魓魕魖魗魘魙魚�魛魜魝魞魟魠魡魢魣魤魥魦魧魨魩魪魫魬魭魮魯魰魱魲魳魴魵魶魷魸魹魺魻簟簪簦簸籁籀臾舁舂舄臬衄舡舢舣舭舯舨舫舸舻舳舴舾艄艉艋艏艚艟艨衾袅袈裘裟襞羝羟羧羯羰羲籼敉粑粝粜粞粢粲粼粽糁糇糌糍糈糅糗糨艮暨羿翎翕翥翡翦翩翮翳糸絷綦綮繇纛麸麴赳趄趔趑趱赧赭豇豉酊酐酎酏酤�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������魼魽魾魿鮀鮁鮂鮃鮄鮅鮆鮇鮈鮉鮊鮋鮌鮍鮎鮏鮐鮑鮒鮓鮔鮕鮖鮗鮘鮙鮚鮛鮜鮝鮞鮟鮠鮡鮢鮣鮤鮥鮦鮧鮨鮩鮪鮫鮬鮭鮮鮯鮰鮱鮲鮳鮴鮵鮶鮷鮸鮹鮺�鮻鮼鮽鮾鮿鯀鯁鯂鯃鯄鯅鯆鯇鯈鯉鯊鯋鯌鯍鯎鯏鯐鯑鯒鯓鯔鯕鯖鯗鯘鯙鯚鯛酢酡酰酩酯酽酾酲酴酹醌醅醐醍醑醢醣醪醭醮醯醵醴醺豕鹾趸跫踅蹙蹩趵趿趼趺跄跖跗跚跞跎跏跛跆跬跷跸跣跹跻跤踉跽踔踝踟踬踮踣踯踺蹀踹踵踽踱蹉蹁蹂蹑蹒蹊蹰蹶蹼蹯蹴躅躏躔躐躜躞豸貂貊貅貘貔斛觖觞觚觜�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������鯜鯝鯞鯟鯠鯡鯢鯣鯤鯥鯦鯧鯨鯩鯪鯫鯬鯭鯮鯯鯰鯱鯲鯳鯴鯵鯶鯷鯸鯹鯺鯻鯼鯽鯾鯿鰀鰁鰂鰃鰄鰅鰆鰇鰈鰉鰊鰋鰌鰍鰎鰏鰐鰑鰒鰓鰔鰕鰖鰗鰘鰙鰚�鰛鰜鰝鰞鰟鰠鰡鰢鰣鰤鰥鰦鰧鰨鰩鰪鰫鰬鰭鰮鰯鰰鰱鰲鰳鰴鰵鰶鰷鰸鰹鰺鰻觥觫觯訾謦靓雩雳雯霆霁霈霏霎霪霭霰霾龀龃龅龆龇龈龉龊龌黾鼋鼍隹隼隽雎雒瞿雠銎銮鋈錾鍪鏊鎏鐾鑫鱿鲂鲅鲆鲇鲈稣鲋鲎鲐鲑鲒鲔鲕鲚鲛鲞鲟鲠鲡鲢鲣鲥鲦鲧鲨鲩鲫鲭鲮鲰鲱鲲鲳鲴鲵鲶鲷鲺鲻鲼鲽鳄鳅鳆鳇鳊鳋�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������鰼鰽鰾鰿鱀鱁鱂鱃鱄鱅鱆鱇鱈鱉鱊鱋鱌鱍鱎鱏鱐鱑鱒鱓鱔鱕鱖鱗鱘鱙鱚鱛鱜鱝鱞鱟鱠鱡鱢鱣鱤鱥鱦鱧鱨鱩鱪鱫鱬鱭鱮鱯鱰鱱鱲鱳鱴鱵鱶鱷鱸鱹鱺�鱻鱽鱾鲀鲃鲄鲉鲊鲌鲏鲓鲖鲗鲘鲙鲝鲪鲬鲯鲹鲾鲿鳀鳁鳂鳈鳉鳑鳒鳚鳛鳠鳡鳌鳍鳎鳏鳐鳓鳔鳕鳗鳘鳙鳜鳝鳟鳢靼鞅鞑鞒鞔鞯鞫鞣鞲鞴骱骰骷鹘骶骺骼髁髀髅髂髋髌髑魅魃魇魉魈魍魑飨餍餮饕饔髟髡髦髯髫髻髭髹鬈鬏鬓鬟鬣麽麾縻麂麇麈麋麒鏖麝麟黛黜黝黠黟黢黩黧黥黪黯鼢鼬鼯鼹鼷鼽鼾齄�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������鳣鳤鳥鳦鳧鳨鳩鳪鳫鳬鳭鳮鳯鳰鳱鳲鳳鳴鳵鳶鳷鳸鳹鳺鳻鳼鳽鳾鳿鴀鴁鴂鴃鴄鴅鴆鴇鴈鴉鴊鴋鴌鴍鴎鴏鴐鴑鴒鴓鴔鴕鴖鴗鴘鴙鴚鴛鴜鴝鴞鴟鴠鴡�鴢鴣鴤鴥鴦鴧鴨鴩鴪鴫鴬鴭鴮鴯鴰鴱鴲鴳鴴鴵鴶鴷鴸鴹鴺鴻鴼鴽鴾鴿鵀鵁鵂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������鵃鵄鵅鵆鵇鵈鵉鵊鵋鵌鵍鵎鵏鵐鵑鵒鵓鵔鵕鵖鵗鵘鵙鵚鵛鵜鵝鵞鵟鵠鵡鵢鵣鵤鵥鵦鵧鵨鵩鵪鵫鵬鵭鵮鵯鵰鵱鵲鵳鵴鵵鵶鵷鵸鵹鵺鵻鵼鵽鵾鵿鶀鶁�鶂鶃鶄鶅鶆鶇鶈鶉鶊鶋鶌鶍鶎鶏鶐鶑鶒鶓鶔鶕鶖鶗鶘鶙鶚鶛鶜鶝鶞鶟鶠鶡鶢�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"����������������������������������������������������������������鶣鶤鶥鶦鶧鶨鶩鶪鶫鶬鶭鶮鶯鶰鶱鶲鶳鶴鶵鶶鶷鶸鶹鶺鶻鶼鶽鶾鶿鷀鷁鷂鷃鷄鷅鷆鷇鷈鷉鷊鷋鷌鷍鷎鷏鷐鷑鷒鷓鷔鷕鷖鷗鷘鷙鷚鷛鷜鷝鷞鷟鷠鷡�鷢鷣鷤鷥鷦鷧鷨鷩鷪鷫鷬鷭鷮鷯鷰鷱鷲鷳鷴鷵鷶鷷鷸鷹鷺鷻鷼鷽鷾鷿鸀鸁鸂�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"����������������������������������������������������������������鸃鸄鸅鸆鸇鸈鸉鸊鸋鸌鸍鸎鸏鸐鸑鸒鸓鸔鸕鸖鸗鸘鸙鸚鸛鸜鸝鸞鸤鸧鸮鸰鸴鸻鸼鹀鹍鹐鹒鹓鹔鹖鹙鹝鹟鹠鹡鹢鹥鹮鹯鹲鹴鹵鹶鹷鹸鹹鹺鹻鹼鹽麀�麁麃麄麅麆麉麊麌麍麎麏麐麑麔麕麖麗麘麙麚麛麜麞麠麡麢麣麤麥麧麨麩麪�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"����������������������������������������������������������������麫麬麭麮麯麰麱麲麳麵麶麷麹麺麼麿黀黁黂黃黅黆黇黈黊黋黌黐黒黓黕黖黗黙黚點黡黣黤黦黨黫黬黭黮黰黱黲黳黴黵黶黷黸黺黽黿鼀鼁鼂鼃鼄鼅�鼆鼇鼈鼉鼊鼌鼏鼑鼒鼔鼕鼖鼘鼚鼛鼜鼝鼞鼟鼡鼣鼤鼥鼦鼧鼨鼩鼪鼫鼭鼮鼰鼱�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"����������������������������������������������������������������鼲鼳鼴鼵鼶鼸鼺鼼鼿齀齁齂齃齅齆齇齈齉齊齋齌齍齎齏齒齓齔齕齖齗齘齙齚齛齜齝齞齟齠齡齢齣齤齥齦齧齨齩齪齫齬齭齮齯齰齱齲齳齴齵齶齷齸�齹齺齻齼齽齾龁龂龍龎龏龐龑龒龓龔龕龖龗龘龜龝龞龡龢龣龤龥郎凉秊裏隣�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nD[254] = \"����������������������������������������������������������������兀嗀﨎﨏﨑﨓﨔礼﨟蘒﨡﨣﨤﨧﨨﨩��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[254].length; ++j) if(D[254][j].charCodeAt(0) !== 0xFFFD) { e[D[254][j]] = 65024 + j; d[65024 + j] = D[254][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[949] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[129] = \"�����������������������������������������������������������������갂갃갅갆갋갌갍갎갏갘갞갟갡갢갣갥갦갧갨갩갪갫갮갲갳갴������갵갶갷갺갻갽갾갿걁걂걃걄걅걆걇걈걉걊걌걎걏걐걑걒걓걕������걖걗걙걚걛걝걞걟걠걡걢걣걤걥걦걧걨걩걪걫걬걭걮걯걲걳걵걶걹걻걼걽걾걿겂겇겈겍겎겏겑겒겓겕겖겗겘겙겚겛겞겢겣겤겥겦겧겫겭겮겱겲겳겴겵겶겷겺겾겿곀곂곃곅곆곇곉곊곋곍곎곏곐곑곒곓곔곖곘곙곚곛곜곝곞곟곢곣곥곦곩곫곭곮곲곴곷곸곹곺곻곾곿괁괂괃괅괇괈괉괊괋괎괐괒괓�\".split(\"\");\nfor(j = 0; j != D[129].length; ++j) if(D[129][j].charCodeAt(0) !== 0xFFFD) { e[D[129][j]] = 33024 + j; d[33024 + j] = D[129][j];}\nD[130] = \"�����������������������������������������������������������������괔괕괖괗괙괚괛괝괞괟괡괢괣괤괥괦괧괨괪괫괮괯괰괱괲괳������괶괷괹괺괻괽괾괿굀굁굂굃굆굈굊굋굌굍굎굏굑굒굓굕굖굗������굙굚굛굜굝굞굟굠굢굤굥굦굧굨굩굪굫굮굯굱굲굷굸굹굺굾궀궃궄궅궆궇궊궋궍궎궏궑궒궓궔궕궖궗궘궙궚궛궞궟궠궡궢궣궥궦궧궨궩궪궫궬궭궮궯궰궱궲궳궴궵궶궸궹궺궻궼궽궾궿귂귃귅귆귇귉귊귋귌귍귎귏귒귔귕귖귗귘귙귚귛귝귞귟귡귢귣귥귦귧귨귩귪귫귬귭귮귯귰귱귲귳귴귵귶귷�\".split(\"\");\nfor(j = 0; j != D[130].length; ++j) if(D[130][j].charCodeAt(0) !== 0xFFFD) { e[D[130][j]] = 33280 + j; d[33280 + j] = D[130][j];}\nD[131] = \"�����������������������������������������������������������������귺귻귽귾긂긃긄긅긆긇긊긌긎긏긐긑긒긓긕긖긗긘긙긚긛긜������긝긞긟긠긡긢긣긤긥긦긧긨긩긪긫긬긭긮긯긲긳긵긶긹긻긼������긽긾긿깂깄깇깈깉깋깏깑깒깓깕깗깘깙깚깛깞깢깣깤깦깧깪깫깭깮깯깱깲깳깴깵깶깷깺깾깿꺀꺁꺂꺃꺆꺇꺈꺉꺊꺋꺍꺎꺏꺐꺑꺒꺓꺔꺕꺖꺗꺘꺙꺚꺛꺜꺝꺞꺟꺠꺡꺢꺣꺤꺥꺦꺧꺨꺩꺪꺫꺬꺭꺮꺯꺰꺱꺲꺳꺴꺵꺶꺷꺸꺹꺺꺻꺿껁껂껃껅껆껇껈껉껊껋껎껒껓껔껕껖껗껚껛껝껞껟껠껡껢껣껤껥�\".split(\"\");\nfor(j = 0; j != D[131].length; ++j) if(D[131][j].charCodeAt(0) !== 0xFFFD) { e[D[131][j]] = 33536 + j; d[33536 + j] = D[131][j];}\nD[132] = \"�����������������������������������������������������������������껦껧껩껪껬껮껯껰껱껲껳껵껶껷껹껺껻껽껾껿꼀꼁꼂꼃꼄꼅������꼆꼉꼊꼋꼌꼎꼏꼑꼒꼓꼔꼕꼖꼗꼘꼙꼚꼛꼜꼝꼞꼟꼠꼡꼢꼣������꼤꼥꼦꼧꼨꼩꼪꼫꼮꼯꼱꼳꼵꼶꼷꼸꼹꼺꼻꼾꽀꽄꽅꽆꽇꽊꽋꽌꽍꽎꽏꽑꽒꽓꽔꽕꽖꽗꽘꽙꽚꽛꽞꽟꽠꽡꽢꽣꽦꽧꽨꽩꽪꽫꽬꽭꽮꽯꽰꽱꽲꽳꽴꽵꽶꽷꽸꽺꽻꽼꽽꽾꽿꾁꾂꾃꾅꾆꾇꾉꾊꾋꾌꾍꾎꾏꾒꾓꾔꾖꾗꾘꾙꾚꾛꾝꾞꾟꾠꾡꾢꾣꾤꾥꾦꾧꾨꾩꾪꾫꾬꾭꾮꾯꾰꾱꾲꾳꾴꾵꾶꾷꾺꾻꾽꾾�\".split(\"\");\nfor(j = 0; j != D[132].length; ++j) if(D[132][j].charCodeAt(0) !== 0xFFFD) { e[D[132][j]] = 33792 + j; d[33792 + j] = D[132][j];}\nD[133] = \"�����������������������������������������������������������������꾿꿁꿂꿃꿄꿅꿆꿊꿌꿏꿐꿑꿒꿓꿕꿖꿗꿘꿙꿚꿛꿝꿞꿟꿠꿡������꿢꿣꿤꿥꿦꿧꿪꿫꿬꿭꿮꿯꿲꿳꿵꿶꿷꿹꿺꿻꿼꿽꿾꿿뀂뀃������뀅뀆뀇뀈뀉뀊뀋뀍뀎뀏뀑뀒뀓뀕뀖뀗뀘뀙뀚뀛뀞뀟뀠뀡뀢뀣뀤뀥뀦뀧뀩뀪뀫뀬뀭뀮뀯뀰뀱뀲뀳뀴뀵뀶뀷뀸뀹뀺뀻뀼뀽뀾뀿끀끁끂끃끆끇끉끋끍끏끐끑끒끖끘끚끛끜끞끟끠끡끢끣끤끥끦끧끨끩끪끫끬끭끮끯끰끱끲끳끴끵끶끷끸끹끺끻끾끿낁낂낃낅낆낇낈낉낊낋낎낐낒낓낔낕낖낗낛낝낞낣낤�\".split(\"\");\nfor(j = 0; j != D[133].length; ++j) if(D[133][j].charCodeAt(0) !== 0xFFFD) { e[D[133][j]] = 34048 + j; d[34048 + j] = D[133][j];}\nD[134] = \"�����������������������������������������������������������������낥낦낧낪낰낲낶낷낹낺낻낽낾낿냀냁냂냃냆냊냋냌냍냎냏냒������냓냕냖냗냙냚냛냜냝냞냟냡냢냣냤냦냧냨냩냪냫냬냭냮냯냰������냱냲냳냴냵냶냷냸냹냺냻냼냽냾냿넀넁넂넃넄넅넆넇넊넍넎넏넑넔넕넖넗넚넞넟넠넡넢넦넧넩넪넫넭넮넯넰넱넲넳넶넺넻넼넽넾넿녂녃녅녆녇녉녊녋녌녍녎녏녒녓녖녗녙녚녛녝녞녟녡녢녣녤녥녦녧녨녩녪녫녬녭녮녯녰녱녲녳녴녵녶녷녺녻녽녾녿놁놃놄놅놆놇놊놌놎놏놐놑놕놖놗놙놚놛놝�\".split(\"\");\nfor(j = 0; j != D[134].length; ++j) if(D[134][j].charCodeAt(0) !== 0xFFFD) { e[D[134][j]] = 34304 + j; d[34304 + j] = D[134][j];}\nD[135] = \"�����������������������������������������������������������������놞놟놠놡놢놣놤놥놦놧놩놪놫놬놭놮놯놰놱놲놳놴놵놶놷놸������놹놺놻놼놽놾놿뇀뇁뇂뇃뇄뇅뇆뇇뇈뇉뇊뇋뇍뇎뇏뇑뇒뇓뇕������뇖뇗뇘뇙뇚뇛뇞뇠뇡뇢뇣뇤뇥뇦뇧뇪뇫뇭뇮뇯뇱뇲뇳뇴뇵뇶뇷뇸뇺뇼뇾뇿눀눁눂눃눆눇눉눊눍눎눏눐눑눒눓눖눘눚눛눜눝눞눟눡눢눣눤눥눦눧눨눩눪눫눬눭눮눯눰눱눲눳눵눶눷눸눹눺눻눽눾눿뉀뉁뉂뉃뉄뉅뉆뉇뉈뉉뉊뉋뉌뉍뉎뉏뉐뉑뉒뉓뉔뉕뉖뉗뉙뉚뉛뉝뉞뉟뉡뉢뉣뉤뉥뉦뉧뉪뉫뉬뉭뉮�\".split(\"\");\nfor(j = 0; j != D[135].length; ++j) if(D[135][j].charCodeAt(0) !== 0xFFFD) { e[D[135][j]] = 34560 + j; d[34560 + j] = D[135][j];}\nD[136] = \"�����������������������������������������������������������������뉯뉰뉱뉲뉳뉶뉷뉸뉹뉺뉻뉽뉾뉿늀늁늂늃늆늇늈늊늋늌늍늎������늏늒늓늕늖늗늛늜늝늞늟늢늤늧늨늩늫늭늮늯늱늲늳늵늶늷������늸늹늺늻늼늽늾늿닀닁닂닃닄닅닆닇닊닋닍닎닏닑닓닔닕닖닗닚닜닞닟닠닡닣닧닩닪닰닱닲닶닼닽닾댂댃댅댆댇댉댊댋댌댍댎댏댒댖댗댘댙댚댛댝댞댟댠댡댢댣댤댥댦댧댨댩댪댫댬댭댮댯댰댱댲댳댴댵댶댷댸댹댺댻댼댽댾댿덀덁덂덃덄덅덆덇덈덉덊덋덌덍덎덏덐덑덒덓덗덙덚덝덠덡덢덣�\".split(\"\");\nfor(j = 0; j != D[136].length; ++j) if(D[136][j].charCodeAt(0) !== 0xFFFD) { e[D[136][j]] = 34816 + j; d[34816 + j] = D[136][j];}\nD[137] = \"�����������������������������������������������������������������덦덨덪덬덭덯덲덳덵덶덷덹덺덻덼덽덾덿뎂뎆뎇뎈뎉뎊뎋뎍������뎎뎏뎑뎒뎓뎕뎖뎗뎘뎙뎚뎛뎜뎝뎞뎟뎢뎣뎤뎥뎦뎧뎩뎪뎫뎭������뎮뎯뎰뎱뎲뎳뎴뎵뎶뎷뎸뎹뎺뎻뎼뎽뎾뎿돀돁돂돃돆돇돉돊돍돏돑돒돓돖돘돚돜돞돟돡돢돣돥돦돧돩돪돫돬돭돮돯돰돱돲돳돴돵돶돷돸돹돺돻돽돾돿됀됁됂됃됄됅됆됇됈됉됊됋됌됍됎됏됑됒됓됔됕됖됗됙됚됛됝됞됟됡됢됣됤됥됦됧됪됬됭됮됯됰됱됲됳됵됶됷됸됹됺됻됼됽됾됿둀둁둂둃둄�\".split(\"\");\nfor(j = 0; j != D[137].length; ++j) if(D[137][j].charCodeAt(0) !== 0xFFFD) { e[D[137][j]] = 35072 + j; d[35072 + j] = D[137][j];}\nD[138] = \"�����������������������������������������������������������������둅둆둇둈둉둊둋둌둍둎둏둒둓둕둖둗둙둚둛둜둝둞둟둢둤둦������둧둨둩둪둫둭둮둯둰둱둲둳둴둵둶둷둸둹둺둻둼둽둾둿뒁뒂������뒃뒄뒅뒆뒇뒉뒊뒋뒌뒍뒎뒏뒐뒑뒒뒓뒔뒕뒖뒗뒘뒙뒚뒛뒜뒞뒟뒠뒡뒢뒣뒥뒦뒧뒩뒪뒫뒭뒮뒯뒰뒱뒲뒳뒴뒶뒸뒺뒻뒼뒽뒾뒿듁듂듃듅듆듇듉듊듋듌듍듎듏듑듒듓듔듖듗듘듙듚듛듞듟듡듢듥듧듨듩듪듫듮듰듲듳듴듵듶듷듹듺듻듼듽듾듿딀딁딂딃딄딅딆딇딈딉딊딋딌딍딎딏딐딑딒딓딖딗딙딚딝�\".split(\"\");\nfor(j = 0; j != D[138].length; ++j) if(D[138][j].charCodeAt(0) !== 0xFFFD) { e[D[138][j]] = 35328 + j; d[35328 + j] = D[138][j];}\nD[139] = \"�����������������������������������������������������������������딞딟딠딡딢딣딦딫딬딭딮딯딲딳딵딶딷딹딺딻딼딽딾딿땂땆������땇땈땉땊땎땏땑땒땓땕땖땗땘땙땚땛땞땢땣땤땥땦땧땨땩땪������땫땬땭땮땯땰땱땲땳땴땵땶땷땸땹땺땻땼땽땾땿떀떁떂떃떄떅떆떇떈떉떊떋떌떍떎떏떐떑떒떓떔떕떖떗떘떙떚떛떜떝떞떟떢떣떥떦떧떩떬떭떮떯떲떶떷떸떹떺떾떿뗁뗂뗃뗅뗆뗇뗈뗉뗊뗋뗎뗒뗓뗔뗕뗖뗗뗙뗚뗛뗜뗝뗞뗟뗠뗡뗢뗣뗤뗥뗦뗧뗨뗩뗪뗫뗭뗮뗯뗰뗱뗲뗳뗴뗵뗶뗷뗸뗹뗺뗻뗼뗽뗾뗿�\".split(\"\");\nfor(j = 0; j != D[139].length; ++j) if(D[139][j].charCodeAt(0) !== 0xFFFD) { e[D[139][j]] = 35584 + j; d[35584 + j] = D[139][j];}\nD[140] = \"�����������������������������������������������������������������똀똁똂똃똄똅똆똇똈똉똊똋똌똍똎똏똒똓똕똖똗똙똚똛똜똝������똞똟똠똡똢똣똤똦똧똨똩똪똫똭똮똯똰똱똲똳똵똶똷똸똹똺������똻똼똽똾똿뙀뙁뙂뙃뙄뙅뙆뙇뙉뙊뙋뙌뙍뙎뙏뙐뙑뙒뙓뙔뙕뙖뙗뙘뙙뙚뙛뙜뙝뙞뙟뙠뙡뙢뙣뙥뙦뙧뙩뙪뙫뙬뙭뙮뙯뙰뙱뙲뙳뙴뙵뙶뙷뙸뙹뙺뙻뙼뙽뙾뙿뚀뚁뚂뚃뚄뚅뚆뚇뚈뚉뚊뚋뚌뚍뚎뚏뚐뚑뚒뚓뚔뚕뚖뚗뚘뚙뚚뚛뚞뚟뚡뚢뚣뚥뚦뚧뚨뚩뚪뚭뚮뚯뚰뚲뚳뚴뚵뚶뚷뚸뚹뚺뚻뚼뚽뚾뚿뛀뛁뛂�\".split(\"\");\nfor(j = 0; j != D[140].length; ++j) if(D[140][j].charCodeAt(0) !== 0xFFFD) { e[D[140][j]] = 35840 + j; d[35840 + j] = D[140][j];}\nD[141] = \"�����������������������������������������������������������������뛃뛄뛅뛆뛇뛈뛉뛊뛋뛌뛍뛎뛏뛐뛑뛒뛓뛕뛖뛗뛘뛙뛚뛛뛜뛝������뛞뛟뛠뛡뛢뛣뛤뛥뛦뛧뛨뛩뛪뛫뛬뛭뛮뛯뛱뛲뛳뛵뛶뛷뛹뛺������뛻뛼뛽뛾뛿뜂뜃뜄뜆뜇뜈뜉뜊뜋뜌뜍뜎뜏뜐뜑뜒뜓뜔뜕뜖뜗뜘뜙뜚뜛뜜뜝뜞뜟뜠뜡뜢뜣뜤뜥뜦뜧뜪뜫뜭뜮뜱뜲뜳뜴뜵뜶뜷뜺뜼뜽뜾뜿띀띁띂띃띅띆띇띉띊띋띍띎띏띐띑띒띓띖띗띘띙띚띛띜띝띞띟띡띢띣띥띦띧띩띪띫띬띭띮띯띲띴띶띷띸띹띺띻띾띿랁랂랃랅랆랇랈랉랊랋랎랓랔랕랚랛랝랞�\".split(\"\");\nfor(j = 0; j != D[141].length; ++j) if(D[141][j].charCodeAt(0) !== 0xFFFD) { e[D[141][j]] = 36096 + j; d[36096 + j] = D[141][j];}\nD[142] = \"�����������������������������������������������������������������랟랡랢랣랤랥랦랧랪랮랯랰랱랲랳랶랷랹랺랻랼랽랾랿럀럁������럂럃럄럅럆럈럊럋럌럍럎럏럐럑럒럓럔럕럖럗럘럙럚럛럜럝������럞럟럠럡럢럣럤럥럦럧럨럩럪럫럮럯럱럲럳럵럶럷럸럹럺럻럾렂렃렄렅렆렊렋렍렎렏렑렒렓렔렕렖렗렚렜렞렟렠렡렢렣렦렧렩렪렫렭렮렯렰렱렲렳렶렺렻렼렽렾렿롁롂롃롅롆롇롈롉롊롋롌롍롎롏롐롒롔롕롖롗롘롙롚롛롞롟롡롢롣롥롦롧롨롩롪롫롮롰롲롳롴롵롶롷롹롺롻롽롾롿뢀뢁뢂뢃뢄�\".split(\"\");\nfor(j = 0; j != D[142].length; ++j) if(D[142][j].charCodeAt(0) !== 0xFFFD) { e[D[142][j]] = 36352 + j; d[36352 + j] = D[142][j];}\nD[143] = \"�����������������������������������������������������������������뢅뢆뢇뢈뢉뢊뢋뢌뢎뢏뢐뢑뢒뢓뢔뢕뢖뢗뢘뢙뢚뢛뢜뢝뢞뢟������뢠뢡뢢뢣뢤뢥뢦뢧뢩뢪뢫뢬뢭뢮뢯뢱뢲뢳뢵뢶뢷뢹뢺뢻뢼뢽������뢾뢿룂룄룆룇룈룉룊룋룍룎룏룑룒룓룕룖룗룘룙룚룛룜룞룠룢룣룤룥룦룧룪룫룭룮룯룱룲룳룴룵룶룷룺룼룾룿뤀뤁뤂뤃뤅뤆뤇뤈뤉뤊뤋뤌뤍뤎뤏뤐뤑뤒뤓뤔뤕뤖뤗뤙뤚뤛뤜뤝뤞뤟뤡뤢뤣뤤뤥뤦뤧뤨뤩뤪뤫뤬뤭뤮뤯뤰뤱뤲뤳뤴뤵뤶뤷뤸뤹뤺뤻뤾뤿륁륂륃륅륆륇륈륉륊륋륍륎륐륒륓륔륕륖륗�\".split(\"\");\nfor(j = 0; j != D[143].length; ++j) if(D[143][j].charCodeAt(0) !== 0xFFFD) { e[D[143][j]] = 36608 + j; d[36608 + j] = D[143][j];}\nD[144] = \"�����������������������������������������������������������������륚륛륝륞륟륡륢륣륤륥륦륧륪륬륮륯륰륱륲륳륶륷륹륺륻륽������륾륿릀릁릂릃릆릈릋릌릏릐릑릒릓릔릕릖릗릘릙릚릛릜릝릞������릟릠릡릢릣릤릥릦릧릨릩릪릫릮릯릱릲릳릵릶릷릸릹릺릻릾맀맂맃맄맅맆맇맊맋맍맓맔맕맖맗맚맜맟맠맢맦맧맩맪맫맭맮맯맰맱맲맳맶맻맼맽맾맿먂먃먄먅먆먇먉먊먋먌먍먎먏먐먑먒먓먔먖먗먘먙먚먛먜먝먞먟먠먡먢먣먤먥먦먧먨먩먪먫먬먭먮먯먰먱먲먳먴먵먶먷먺먻먽먾먿멁멃멄멅멆�\".split(\"\");\nfor(j = 0; j != D[144].length; ++j) if(D[144][j].charCodeAt(0) !== 0xFFFD) { e[D[144][j]] = 36864 + j; d[36864 + j] = D[144][j];}\nD[145] = \"�����������������������������������������������������������������멇멊멌멏멐멑멒멖멗멙멚멛멝멞멟멠멡멢멣멦멪멫멬멭멮멯������멲멳멵멶멷멹멺멻멼멽멾멿몀몁몂몆몈몉몊몋몍몎몏몐몑몒������몓몔몕몖몗몘몙몚몛몜몝몞몟몠몡몢몣몤몥몦몧몪몭몮몯몱몳몴몵몶몷몺몼몾몿뫀뫁뫂뫃뫅뫆뫇뫉뫊뫋뫌뫍뫎뫏뫐뫑뫒뫓뫔뫕뫖뫗뫚뫛뫜뫝뫞뫟뫠뫡뫢뫣뫤뫥뫦뫧뫨뫩뫪뫫뫬뫭뫮뫯뫰뫱뫲뫳뫴뫵뫶뫷뫸뫹뫺뫻뫽뫾뫿묁묂묃묅묆묇묈묉묊묋묌묎묐묒묓묔묕묖묗묙묚묛묝묞묟묡묢묣묤묥묦묧�\".split(\"\");\nfor(j = 0; j != D[145].length; ++j) if(D[145][j].charCodeAt(0) !== 0xFFFD) { e[D[145][j]] = 37120 + j; d[37120 + j] = D[145][j];}\nD[146] = \"�����������������������������������������������������������������묨묪묬묭묮묯묰묱묲묳묷묹묺묿뭀뭁뭂뭃뭆뭈뭊뭋뭌뭎뭑뭒������뭓뭕뭖뭗뭙뭚뭛뭜뭝뭞뭟뭠뭢뭤뭥뭦뭧뭨뭩뭪뭫뭭뭮뭯뭰뭱������뭲뭳뭴뭵뭶뭷뭸뭹뭺뭻뭼뭽뭾뭿뮀뮁뮂뮃뮄뮅뮆뮇뮉뮊뮋뮍뮎뮏뮑뮒뮓뮔뮕뮖뮗뮘뮙뮚뮛뮜뮝뮞뮟뮠뮡뮢뮣뮥뮦뮧뮩뮪뮫뮭뮮뮯뮰뮱뮲뮳뮵뮶뮸뮹뮺뮻뮼뮽뮾뮿믁믂믃믅믆믇믉믊믋믌믍믎믏믑믒믔믕믖믗믘믙믚믛믜믝믞믟믠믡믢믣믤믥믦믧믨믩믪믫믬믭믮믯믰믱믲믳믴믵믶믷믺믻믽믾밁�\".split(\"\");\nfor(j = 0; j != D[146].length; ++j) if(D[146][j].charCodeAt(0) !== 0xFFFD) { e[D[146][j]] = 37376 + j; d[37376 + j] = D[146][j];}\nD[147] = \"�����������������������������������������������������������������밃밄밅밆밇밊밎밐밒밓밙밚밠밡밢밣밦밨밪밫밬밮밯밲밳밵������밶밷밹밺밻밼밽밾밿뱂뱆뱇뱈뱊뱋뱎뱏뱑뱒뱓뱔뱕뱖뱗뱘뱙������뱚뱛뱜뱞뱟뱠뱡뱢뱣뱤뱥뱦뱧뱨뱩뱪뱫뱬뱭뱮뱯뱰뱱뱲뱳뱴뱵뱶뱷뱸뱹뱺뱻뱼뱽뱾뱿벀벁벂벃벆벇벉벊벍벏벐벑벒벓벖벘벛벜벝벞벟벢벣벥벦벩벪벫벬벭벮벯벲벶벷벸벹벺벻벾벿볁볂볃볅볆볇볈볉볊볋볌볎볒볓볔볖볗볙볚볛볝볞볟볠볡볢볣볤볥볦볧볨볩볪볫볬볭볮볯볰볱볲볳볷볹볺볻볽�\".split(\"\");\nfor(j = 0; j != D[147].length; ++j) if(D[147][j].charCodeAt(0) !== 0xFFFD) { e[D[147][j]] = 37632 + j; d[37632 + j] = D[147][j];}\nD[148] = \"�����������������������������������������������������������������볾볿봀봁봂봃봆봈봊봋봌봍봎봏봑봒봓봕봖봗봘봙봚봛봜봝������봞봟봠봡봢봣봥봦봧봨봩봪봫봭봮봯봰봱봲봳봴봵봶봷봸봹������봺봻봼봽봾봿뵁뵂뵃뵄뵅뵆뵇뵊뵋뵍뵎뵏뵑뵒뵓뵔뵕뵖뵗뵚뵛뵜뵝뵞뵟뵠뵡뵢뵣뵥뵦뵧뵩뵪뵫뵬뵭뵮뵯뵰뵱뵲뵳뵴뵵뵶뵷뵸뵹뵺뵻뵼뵽뵾뵿붂붃붅붆붋붌붍붎붏붒붔붖붗붘붛붝붞붟붠붡붢붣붥붦붧붨붩붪붫붬붭붮붯붱붲붳붴붵붶붷붹붺붻붼붽붾붿뷀뷁뷂뷃뷄뷅뷆뷇뷈뷉뷊뷋뷌뷍뷎뷏뷐뷑�\".split(\"\");\nfor(j = 0; j != D[148].length; ++j) if(D[148][j].charCodeAt(0) !== 0xFFFD) { e[D[148][j]] = 37888 + j; d[37888 + j] = D[148][j];}\nD[149] = \"�����������������������������������������������������������������뷒뷓뷖뷗뷙뷚뷛뷝뷞뷟뷠뷡뷢뷣뷤뷥뷦뷧뷨뷪뷫뷬뷭뷮뷯뷱������뷲뷳뷵뷶뷷뷹뷺뷻뷼뷽뷾뷿븁븂븄븆븇븈븉븊븋븎븏븑븒븓������븕븖븗븘븙븚븛븞븠븡븢븣븤븥븦븧븨븩븪븫븬븭븮븯븰븱븲븳븴븵븶븷븸븹븺븻븼븽븾븿빀빁빂빃빆빇빉빊빋빍빏빐빑빒빓빖빘빜빝빞빟빢빣빥빦빧빩빫빬빭빮빯빲빶빷빸빹빺빾빿뺁뺂뺃뺅뺆뺇뺈뺉뺊뺋뺎뺒뺓뺔뺕뺖뺗뺚뺛뺜뺝뺞뺟뺠뺡뺢뺣뺤뺥뺦뺧뺩뺪뺫뺬뺭뺮뺯뺰뺱뺲뺳뺴뺵뺶뺷�\".split(\"\");\nfor(j = 0; j != D[149].length; ++j) if(D[149][j].charCodeAt(0) !== 0xFFFD) { e[D[149][j]] = 38144 + j; d[38144 + j] = D[149][j];}\nD[150] = \"�����������������������������������������������������������������뺸뺹뺺뺻뺼뺽뺾뺿뻀뻁뻂뻃뻄뻅뻆뻇뻈뻉뻊뻋뻌뻍뻎뻏뻒뻓������뻕뻖뻙뻚뻛뻜뻝뻞뻟뻡뻢뻦뻧뻨뻩뻪뻫뻭뻮뻯뻰뻱뻲뻳뻴뻵������뻶뻷뻸뻹뻺뻻뻼뻽뻾뻿뼀뼂뼃뼄뼅뼆뼇뼊뼋뼌뼍뼎뼏뼐뼑뼒뼓뼔뼕뼖뼗뼚뼞뼟뼠뼡뼢뼣뼤뼥뼦뼧뼨뼩뼪뼫뼬뼭뼮뼯뼰뼱뼲뼳뼴뼵뼶뼷뼸뼹뼺뼻뼼뼽뼾뼿뽂뽃뽅뽆뽇뽉뽊뽋뽌뽍뽎뽏뽒뽓뽔뽖뽗뽘뽙뽚뽛뽜뽝뽞뽟뽠뽡뽢뽣뽤뽥뽦뽧뽨뽩뽪뽫뽬뽭뽮뽯뽰뽱뽲뽳뽴뽵뽶뽷뽸뽹뽺뽻뽼뽽뽾뽿뾀뾁뾂�\".split(\"\");\nfor(j = 0; j != D[150].length; ++j) if(D[150][j].charCodeAt(0) !== 0xFFFD) { e[D[150][j]] = 38400 + j; d[38400 + j] = D[150][j];}\nD[151] = \"�����������������������������������������������������������������뾃뾄뾅뾆뾇뾈뾉뾊뾋뾌뾍뾎뾏뾐뾑뾒뾓뾕뾖뾗뾘뾙뾚뾛뾜뾝������뾞뾟뾠뾡뾢뾣뾤뾥뾦뾧뾨뾩뾪뾫뾬뾭뾮뾯뾱뾲뾳뾴뾵뾶뾷뾸������뾹뾺뾻뾼뾽뾾뾿뿀뿁뿂뿃뿄뿆뿇뿈뿉뿊뿋뿎뿏뿑뿒뿓뿕뿖뿗뿘뿙뿚뿛뿝뿞뿠뿢뿣뿤뿥뿦뿧뿨뿩뿪뿫뿬뿭뿮뿯뿰뿱뿲뿳뿴뿵뿶뿷뿸뿹뿺뿻뿼뿽뿾뿿쀀쀁쀂쀃쀄쀅쀆쀇쀈쀉쀊쀋쀌쀍쀎쀏쀐쀑쀒쀓쀔쀕쀖쀗쀘쀙쀚쀛쀜쀝쀞쀟쀠쀡쀢쀣쀤쀥쀦쀧쀨쀩쀪쀫쀬쀭쀮쀯쀰쀱쀲쀳쀴쀵쀶쀷쀸쀹쀺쀻쀽쀾쀿�\".split(\"\");\nfor(j = 0; j != D[151].length; ++j) if(D[151][j].charCodeAt(0) !== 0xFFFD) { e[D[151][j]] = 38656 + j; d[38656 + j] = D[151][j];}\nD[152] = \"�����������������������������������������������������������������쁀쁁쁂쁃쁄쁅쁆쁇쁈쁉쁊쁋쁌쁍쁎쁏쁐쁒쁓쁔쁕쁖쁗쁙쁚쁛������쁝쁞쁟쁡쁢쁣쁤쁥쁦쁧쁪쁫쁬쁭쁮쁯쁰쁱쁲쁳쁴쁵쁶쁷쁸쁹������쁺쁻쁼쁽쁾쁿삀삁삂삃삄삅삆삇삈삉삊삋삌삍삎삏삒삓삕삖삗삙삚삛삜삝삞삟삢삤삦삧삨삩삪삫삮삱삲삷삸삹삺삻삾샂샃샄샆샇샊샋샍샎샏샑샒샓샔샕샖샗샚샞샟샠샡샢샣샦샧샩샪샫샭샮샯샰샱샲샳샶샸샺샻샼샽샾샿섁섂섃섅섆섇섉섊섋섌섍섎섏섑섒섓섔섖섗섘섙섚섛섡섢섥섨섩섪섫섮�\".split(\"\");\nfor(j = 0; j != D[152].length; ++j) if(D[152][j].charCodeAt(0) !== 0xFFFD) { e[D[152][j]] = 38912 + j; d[38912 + j] = D[152][j];}\nD[153] = \"�����������������������������������������������������������������섲섳섴섵섷섺섻섽섾섿셁셂셃셄셅셆셇셊셎셏셐셑셒셓셖셗������셙셚셛셝셞셟셠셡셢셣셦셪셫셬셭셮셯셱셲셳셵셶셷셹셺셻������셼셽셾셿솀솁솂솃솄솆솇솈솉솊솋솏솑솒솓솕솗솘솙솚솛솞솠솢솣솤솦솧솪솫솭솮솯솱솲솳솴솵솶솷솸솹솺솻솼솾솿쇀쇁쇂쇃쇅쇆쇇쇉쇊쇋쇍쇎쇏쇐쇑쇒쇓쇕쇖쇙쇚쇛쇜쇝쇞쇟쇡쇢쇣쇥쇦쇧쇩쇪쇫쇬쇭쇮쇯쇲쇴쇵쇶쇷쇸쇹쇺쇻쇾쇿숁숂숃숅숆숇숈숉숊숋숎숐숒숓숔숕숖숗숚숛숝숞숡숢숣�\".split(\"\");\nfor(j = 0; j != D[153].length; ++j) if(D[153][j].charCodeAt(0) !== 0xFFFD) { e[D[153][j]] = 39168 + j; d[39168 + j] = D[153][j];}\nD[154] = \"�����������������������������������������������������������������숤숥숦숧숪숬숮숰숳숵숶숷숸숹숺숻숼숽숾숿쉀쉁쉂쉃쉄쉅������쉆쉇쉉쉊쉋쉌쉍쉎쉏쉒쉓쉕쉖쉗쉙쉚쉛쉜쉝쉞쉟쉡쉢쉣쉤쉦������쉧쉨쉩쉪쉫쉮쉯쉱쉲쉳쉵쉶쉷쉸쉹쉺쉻쉾슀슂슃슄슅슆슇슊슋슌슍슎슏슑슒슓슔슕슖슗슙슚슜슞슟슠슡슢슣슦슧슩슪슫슮슯슰슱슲슳슶슸슺슻슼슽슾슿싀싁싂싃싄싅싆싇싈싉싊싋싌싍싎싏싐싑싒싓싔싕싖싗싘싙싚싛싞싟싡싢싥싦싧싨싩싪싮싰싲싳싴싵싷싺싽싾싿쌁쌂쌃쌄쌅쌆쌇쌊쌋쌎쌏�\".split(\"\");\nfor(j = 0; j != D[154].length; ++j) if(D[154][j].charCodeAt(0) !== 0xFFFD) { e[D[154][j]] = 39424 + j; d[39424 + j] = D[154][j];}\nD[155] = \"�����������������������������������������������������������������쌐쌑쌒쌖쌗쌙쌚쌛쌝쌞쌟쌠쌡쌢쌣쌦쌧쌪쌫쌬쌭쌮쌯쌰쌱쌲������쌳쌴쌵쌶쌷쌸쌹쌺쌻쌼쌽쌾쌿썀썁썂썃썄썆썇썈썉썊썋썌썍������썎썏썐썑썒썓썔썕썖썗썘썙썚썛썜썝썞썟썠썡썢썣썤썥썦썧썪썫썭썮썯썱썳썴썵썶썷썺썻썾썿쎀쎁쎂쎃쎅쎆쎇쎉쎊쎋쎍쎎쎏쎐쎑쎒쎓쎔쎕쎖쎗쎘쎙쎚쎛쎜쎝쎞쎟쎠쎡쎢쎣쎤쎥쎦쎧쎨쎩쎪쎫쎬쎭쎮쎯쎰쎱쎲쎳쎴쎵쎶쎷쎸쎹쎺쎻쎼쎽쎾쎿쏁쏂쏃쏄쏅쏆쏇쏈쏉쏊쏋쏌쏍쏎쏏쏐쏑쏒쏓쏔쏕쏖쏗쏚�\".split(\"\");\nfor(j = 0; j != D[155].length; ++j) if(D[155][j].charCodeAt(0) !== 0xFFFD) { e[D[155][j]] = 39680 + j; d[39680 + j] = D[155][j];}\nD[156] = \"�����������������������������������������������������������������쏛쏝쏞쏡쏣쏤쏥쏦쏧쏪쏫쏬쏮쏯쏰쏱쏲쏳쏶쏷쏹쏺쏻쏼쏽쏾������쏿쐀쐁쐂쐃쐄쐅쐆쐇쐉쐊쐋쐌쐍쐎쐏쐑쐒쐓쐔쐕쐖쐗쐘쐙쐚������쐛쐜쐝쐞쐟쐠쐡쐢쐣쐥쐦쐧쐨쐩쐪쐫쐭쐮쐯쐱쐲쐳쐵쐶쐷쐸쐹쐺쐻쐾쐿쑀쑁쑂쑃쑄쑅쑆쑇쑉쑊쑋쑌쑍쑎쑏쑐쑑쑒쑓쑔쑕쑖쑗쑘쑙쑚쑛쑜쑝쑞쑟쑠쑡쑢쑣쑦쑧쑩쑪쑫쑭쑮쑯쑰쑱쑲쑳쑶쑷쑸쑺쑻쑼쑽쑾쑿쒁쒂쒃쒄쒅쒆쒇쒈쒉쒊쒋쒌쒍쒎쒏쒐쒑쒒쒓쒕쒖쒗쒘쒙쒚쒛쒝쒞쒟쒠쒡쒢쒣쒤쒥쒦쒧쒨쒩�\".split(\"\");\nfor(j = 0; j != D[156].length; ++j) if(D[156][j].charCodeAt(0) !== 0xFFFD) { e[D[156][j]] = 39936 + j; d[39936 + j] = D[156][j];}\nD[157] = \"�����������������������������������������������������������������쒪쒫쒬쒭쒮쒯쒰쒱쒲쒳쒴쒵쒶쒷쒹쒺쒻쒽쒾쒿쓀쓁쓂쓃쓄쓅������쓆쓇쓈쓉쓊쓋쓌쓍쓎쓏쓐쓑쓒쓓쓔쓕쓖쓗쓘쓙쓚쓛쓜쓝쓞쓟������쓠쓡쓢쓣쓤쓥쓦쓧쓨쓪쓫쓬쓭쓮쓯쓲쓳쓵쓶쓷쓹쓻쓼쓽쓾씂씃씄씅씆씇씈씉씊씋씍씎씏씑씒씓씕씖씗씘씙씚씛씝씞씟씠씡씢씣씤씥씦씧씪씫씭씮씯씱씲씳씴씵씶씷씺씼씾씿앀앁앂앃앆앇앋앏앐앑앒앖앚앛앜앟앢앣앥앦앧앩앪앫앬앭앮앯앲앶앷앸앹앺앻앾앿얁얂얃얅얆얈얉얊얋얎얐얒얓얔�\".split(\"\");\nfor(j = 0; j != D[157].length; ++j) if(D[157][j].charCodeAt(0) !== 0xFFFD) { e[D[157][j]] = 40192 + j; d[40192 + j] = D[157][j];}\nD[158] = \"�����������������������������������������������������������������얖얙얚얛얝얞얟얡얢얣얤얥얦얧얨얪얫얬얭얮얯얰얱얲얳얶������얷얺얿엀엁엂엃엋엍엏엒엓엕엖엗엙엚엛엜엝엞엟엢엤엦엧������엨엩엪엫엯엱엲엳엵엸엹엺엻옂옃옄옉옊옋옍옎옏옑옒옓옔옕옖옗옚옝옞옟옠옡옢옣옦옧옩옪옫옯옱옲옶옸옺옼옽옾옿왂왃왅왆왇왉왊왋왌왍왎왏왒왖왗왘왙왚왛왞왟왡왢왣왤왥왦왧왨왩왪왫왭왮왰왲왳왴왵왶왷왺왻왽왾왿욁욂욃욄욅욆욇욊욌욎욏욐욑욒욓욖욗욙욚욛욝욞욟욠욡욢욣욦�\".split(\"\");\nfor(j = 0; j != D[158].length; ++j) if(D[158][j].charCodeAt(0) !== 0xFFFD) { e[D[158][j]] = 40448 + j; d[40448 + j] = D[158][j];}\nD[159] = \"�����������������������������������������������������������������욨욪욫욬욭욮욯욲욳욵욶욷욻욼욽욾욿웂웄웆웇웈웉웊웋웎������웏웑웒웓웕웖웗웘웙웚웛웞웟웢웣웤웥웦웧웪웫웭웮웯웱웲������웳웴웵웶웷웺웻웼웾웿윀윁윂윃윆윇윉윊윋윍윎윏윐윑윒윓윖윘윚윛윜윝윞윟윢윣윥윦윧윩윪윫윬윭윮윯윲윴윶윸윹윺윻윾윿읁읂읃읅읆읇읈읉읋읎읐읙읚읛읝읞읟읡읢읣읤읥읦읧읩읪읬읭읮읯읰읱읲읳읶읷읹읺읻읿잀잁잂잆잋잌잍잏잒잓잕잙잛잜잝잞잟잢잧잨잩잪잫잮잯잱잲잳잵잶잷�\".split(\"\");\nfor(j = 0; j != D[159].length; ++j) if(D[159][j].charCodeAt(0) !== 0xFFFD) { e[D[159][j]] = 40704 + j; d[40704 + j] = D[159][j];}\nD[160] = \"�����������������������������������������������������������������잸잹잺잻잾쟂쟃쟄쟅쟆쟇쟊쟋쟍쟏쟑쟒쟓쟔쟕쟖쟗쟙쟚쟛쟜������쟞쟟쟠쟡쟢쟣쟥쟦쟧쟩쟪쟫쟭쟮쟯쟰쟱쟲쟳쟴쟵쟶쟷쟸쟹쟺������쟻쟼쟽쟾쟿젂젃젅젆젇젉젋젌젍젎젏젒젔젗젘젙젚젛젞젟젡젢젣젥젦젧젨젩젪젫젮젰젲젳젴젵젶젷젹젺젻젽젾젿졁졂졃졄졅졆졇졊졋졎졏졐졑졒졓졕졖졗졘졙졚졛졜졝졞졟졠졡졢졣졤졥졦졧졨졩졪졫졬졭졮졯졲졳졵졶졷졹졻졼졽졾졿좂좄좈좉좊좎좏좐좑좒좓좕좖좗좘좙좚좛좜좞좠좢좣좤�\".split(\"\");\nfor(j = 0; j != D[160].length; ++j) if(D[160][j].charCodeAt(0) !== 0xFFFD) { e[D[160][j]] = 40960 + j; d[40960 + j] = D[160][j];}\nD[161] = \"�����������������������������������������������������������������좥좦좧좩좪좫좬좭좮좯좰좱좲좳좴좵좶좷좸좹좺좻좾좿죀죁������죂죃죅죆죇죉죊죋죍죎죏죐죑죒죓죖죘죚죛죜죝죞죟죢죣죥������죦죧죨죩죪죫죬죭죮죯죰죱죲죳죴죶죷죸죹죺죻죾죿줁줂줃줇줈줉줊줋줎 、。·‥…¨〃―∥\∼‘’“”〔〕〈〉《》「」『』【】±×÷≠≤≥∞∴°′″℃Å¢£¥♂♀∠⊥⌒∂∇≡≒§※☆★○●◎◇◆□■△▲▽▼→←↑↓↔〓≪≫√∽∝∵∫∬∈∋⊆⊇⊂⊃∪∩∧∨¬�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"�����������������������������������������������������������������줐줒줓줔줕줖줗줙줚줛줜줝줞줟줠줡줢줣줤줥줦줧줨줩줪줫������줭줮줯줰줱줲줳줵줶줷줸줹줺줻줼줽줾줿쥀쥁쥂쥃쥄쥅쥆쥇������쥈쥉쥊쥋쥌쥍쥎쥏쥒쥓쥕쥖쥗쥙쥚쥛쥜쥝쥞쥟쥢쥤쥥쥦쥧쥨쥩쥪쥫쥭쥮쥯⇒⇔∀∃´~ˇ˘˝˚˙¸˛¡¿ː∮∑∏¤℉‰◁◀▷▶♤♠♡♥♧♣⊙◈▣◐◑▒▤▥▨▧▦▩♨☏☎☜☞¶†‡↕↗↙↖↘♭♩♪♬㉿㈜№㏇™㏂㏘℡€®������������������������\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"�����������������������������������������������������������������쥱쥲쥳쥵쥶쥷쥸쥹쥺쥻쥽쥾쥿즀즁즂즃즄즅즆즇즊즋즍즎즏������즑즒즓즔즕즖즗즚즜즞즟즠즡즢즣즤즥즦즧즨즩즪즫즬즭즮������즯즰즱즲즳즴즵즶즷즸즹즺즻즼즽즾즿짂짃짅짆짉짋짌짍짎짏짒짔짗짘짛!"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[₩]^_`abcdefghijklmnopqrstuvwxyz{|} ̄�\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"�����������������������������������������������������������������짞짟짡짣짥짦짨짩짪짫짮짲짳짴짵짶짷짺짻짽짾짿쨁쨂쨃쨄������쨅쨆쨇쨊쨎쨏쨐쨑쨒쨓쨕쨖쨗쨙쨚쨛쨜쨝쨞쨟쨠쨡쨢쨣쨤쨥������쨦쨧쨨쨪쨫쨬쨭쨮쨯쨰쨱쨲쨳쨴쨵쨶쨷쨸쨹쨺쨻쨼쨽쨾쨿쩀쩁쩂쩃쩄쩅쩆ㄱㄲㄳㄴㄵㄶㄷㄸㄹㄺㄻㄼㄽㄾㄿㅀㅁㅂㅃㅄㅅㅆㅇㅈㅉㅊㅋㅌㅍㅎㅏㅐㅑㅒㅓㅔㅕㅖㅗㅘㅙㅚㅛㅜㅝㅞㅟㅠㅡㅢㅣㅤㅥㅦㅧㅨㅩㅪㅫㅬㅭㅮㅯㅰㅱㅲㅳㅴㅵㅶㅷㅸㅹㅺㅻㅼㅽㅾㅿㆀㆁㆂㆃㆄㆅㆆㆇㆈㆉㆊㆋㆌㆍㆎ�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"�����������������������������������������������������������������쩇쩈쩉쩊쩋쩎쩏쩑쩒쩓쩕쩖쩗쩘쩙쩚쩛쩞쩢쩣쩤쩥쩦쩧쩩쩪������쩫쩬쩭쩮쩯쩰쩱쩲쩳쩴쩵쩶쩷쩸쩹쩺쩻쩼쩾쩿쪀쪁쪂쪃쪅쪆������쪇쪈쪉쪊쪋쪌쪍쪎쪏쪐쪑쪒쪓쪔쪕쪖쪗쪙쪚쪛쪜쪝쪞쪟쪠쪡쪢쪣쪤쪥쪦쪧ⅰⅱⅲⅳⅴⅵⅶⅷⅸⅹ�����ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ�������ΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩ��������αβγδεζηθικλμνξοπρστυφχψω�������\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"�����������������������������������������������������������������쪨쪩쪪쪫쪬쪭쪮쪯쪰쪱쪲쪳쪴쪵쪶쪷쪸쪹쪺쪻쪾쪿쫁쫂쫃쫅������쫆쫇쫈쫉쫊쫋쫎쫐쫒쫔쫕쫖쫗쫚쫛쫜쫝쫞쫟쫡쫢쫣쫤쫥쫦쫧������쫨쫩쫪쫫쫭쫮쫯쫰쫱쫲쫳쫵쫶쫷쫸쫹쫺쫻쫼쫽쫾쫿쬀쬁쬂쬃쬄쬅쬆쬇쬉쬊─│┌┐┘└├┬┤┴┼━┃┏┓┛┗┣┳┫┻╋┠┯┨┷┿┝┰┥┸╂┒┑┚┙┖┕┎┍┞┟┡┢┦┧┩┪┭┮┱┲┵┶┹┺┽┾╀╁╃╄╅╆╇╈╉╊���������������������������\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"�����������������������������������������������������������������쬋쬌쬍쬎쬏쬑쬒쬓쬕쬖쬗쬙쬚쬛쬜쬝쬞쬟쬢쬣쬤쬥쬦쬧쬨쬩������쬪쬫쬬쬭쬮쬯쬰쬱쬲쬳쬴쬵쬶쬷쬸쬹쬺쬻쬼쬽쬾쬿쭀쭂쭃쭄������쭅쭆쭇쭊쭋쭍쭎쭏쭑쭒쭓쭔쭕쭖쭗쭚쭛쭜쭞쭟쭠쭡쭢쭣쭥쭦쭧쭨쭩쭪쭫쭬㎕㎖㎗ℓ㎘㏄㎣㎤㎥㎦㎙㎚㎛㎜㎝㎞㎟㎠㎡㎢㏊㎍㎎㎏㏏㎈㎉㏈㎧㎨㎰㎱㎲㎳㎴㎵㎶㎷㎸㎹㎀㎁㎂㎃㎄㎺㎻㎼㎽㎾㎿㎐㎑㎒㎓㎔Ω㏀㏁㎊㎋㎌㏖㏅㎭㎮㎯㏛㎩㎪㎫㎬㏝㏐㏓㏃㏉㏜㏆����������������\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"�����������������������������������������������������������������쭭쭮쭯쭰쭱쭲쭳쭴쭵쭶쭷쭺쭻쭼쭽쭾쭿쮀쮁쮂쮃쮄쮅쮆쮇쮈������쮉쮊쮋쮌쮍쮎쮏쮐쮑쮒쮓쮔쮕쮖쮗쮘쮙쮚쮛쮝쮞쮟쮠쮡쮢쮣������쮤쮥쮦쮧쮨쮩쮪쮫쮬쮭쮮쮯쮰쮱쮲쮳쮴쮵쮶쮷쮹쮺쮻쮼쮽쮾쮿쯀쯁쯂쯃쯄ÆÐªĦ�IJ�ĿŁØŒºÞŦŊ�㉠㉡㉢㉣㉤㉥㉦㉧㉨㉩㉪㉫㉬㉭㉮㉯㉰㉱㉲㉳㉴㉵㉶㉷㉸㉹㉺㉻ⓐⓑⓒⓓⓔⓕⓖⓗⓘⓙⓚⓛⓜⓝⓞⓟⓠⓡⓢⓣⓤⓥⓦⓧⓨⓩ①②③④⑤⑥⑦⑧⑨⑩⑪⑫⑬⑭⑮½⅓⅔¼¾⅛⅜⅝⅞�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"�����������������������������������������������������������������쯅쯆쯇쯈쯉쯊쯋쯌쯍쯎쯏쯐쯑쯒쯓쯕쯖쯗쯘쯙쯚쯛쯜쯝쯞쯟������쯠쯡쯢쯣쯥쯦쯨쯪쯫쯬쯭쯮쯯쯰쯱쯲쯳쯴쯵쯶쯷쯸쯹쯺쯻쯼������쯽쯾쯿찀찁찂찃찄찅찆찇찈찉찊찋찎찏찑찒찓찕찖찗찘찙찚찛찞찟찠찣찤æđðħıijĸŀłøœßþŧŋʼn㈀㈁㈂㈃㈄㈅㈆㈇㈈㈉㈊㈋㈌㈍㈎㈏㈐㈑㈒㈓㈔㈕㈖㈗㈘㈙㈚㈛⒜⒝⒞⒟⒠⒡⒢⒣⒤⒥⒦⒧⒨⒩⒪⒫⒬⒭⒮⒯⒰⒱⒲⒳⒴⒵⑴⑵⑶⑷⑸⑹⑺⑻⑼⑽⑾⑿⒀⒁⒂¹²³⁴ⁿ₁₂₃₄�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"�����������������������������������������������������������������찥찦찪찫찭찯찱찲찳찴찵찶찷찺찿챀챁챂챃챆챇챉챊챋챍챎������챏챐챑챒챓챖챚챛챜챝챞챟챡챢챣챥챧챩챪챫챬챭챮챯챱챲������챳챴챶챷챸챹챺챻챼챽챾챿첀첁첂첃첄첅첆첇첈첉첊첋첌첍첎첏첐첑첒첓ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをん������������\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"�����������������������������������������������������������������첔첕첖첗첚첛첝첞첟첡첢첣첤첥첦첧첪첮첯첰첱첲첳첶첷첹������첺첻첽첾첿쳀쳁쳂쳃쳆쳈쳊쳋쳌쳍쳎쳏쳑쳒쳓쳕쳖쳗쳘쳙쳚������쳛쳜쳝쳞쳟쳠쳡쳢쳣쳥쳦쳧쳨쳩쳪쳫쳭쳮쳯쳱쳲쳳쳴쳵쳶쳷쳸쳹쳺쳻쳼쳽ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶ���������\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"�����������������������������������������������������������������쳾쳿촀촂촃촄촅촆촇촊촋촍촎촏촑촒촓촔촕촖촗촚촜촞촟촠������촡촢촣촥촦촧촩촪촫촭촮촯촰촱촲촳촴촵촶촷촸촺촻촼촽촾������촿쵀쵁쵂쵃쵄쵅쵆쵇쵈쵉쵊쵋쵌쵍쵎쵏쵐쵑쵒쵓쵔쵕쵖쵗쵘쵙쵚쵛쵝쵞쵟АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ���������������абвгдеёжзийклмнопрстуфхцчшщъыьэюя��������������\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"�����������������������������������������������������������������쵡쵢쵣쵥쵦쵧쵨쵩쵪쵫쵮쵰쵲쵳쵴쵵쵶쵷쵹쵺쵻쵼쵽쵾쵿춀������춁춂춃춄춅춆춇춉춊춋춌춍춎춏춐춑춒춓춖춗춙춚춛춝춞춟������춠춡춢춣춦춨춪춫춬춭춮춯춱춲춳춴춵춶춷춸춹춺춻춼춽춾춿췀췁췂췃췅�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"�����������������������������������������������������������������췆췇췈췉췊췋췍췎췏췑췒췓췔췕췖췗췘췙췚췛췜췝췞췟췠췡������췢췣췤췥췦췧췩췪췫췭췮췯췱췲췳췴췵췶췷췺췼췾췿츀츁츂������츃츅츆츇츉츊츋츍츎츏츐츑츒츓츕츖츗츘츚츛츜츝츞츟츢츣츥츦츧츩츪츫�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"�����������������������������������������������������������������츬츭츮츯츲츴츶츷츸츹츺츻츼츽츾츿칀칁칂칃칄칅칆칇칈칉������칊칋칌칍칎칏칐칑칒칓칔칕칖칗칚칛칝칞칢칣칤칥칦칧칪칬������칮칯칰칱칲칳칶칷칹칺칻칽칾칿캀캁캂캃캆캈캊캋캌캍캎캏캒캓캕캖캗캙�����������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"�����������������������������������������������������������������캚캛캜캝캞캟캢캦캧캨캩캪캫캮캯캰캱캲캳캴캵캶캷캸캹캺������캻캼캽캾캿컀컂컃컄컅컆컇컈컉컊컋컌컍컎컏컐컑컒컓컔컕������컖컗컘컙컚컛컜컝컞컟컠컡컢컣컦컧컩컪컭컮컯컰컱컲컳컶컺컻컼컽컾컿가각간갇갈갉갊감갑값갓갔강갖갗같갚갛개객갠갤갬갭갯갰갱갸갹갼걀걋걍걔걘걜거걱건걷걸걺검겁것겄겅겆겉겊겋게겐겔겜겝겟겠겡겨격겪견겯결겸겹겻겼경곁계곈곌곕곗고곡곤곧골곪곬곯곰곱곳공곶과곽관괄괆�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"�����������������������������������������������������������������켂켃켅켆켇켉켊켋켌켍켎켏켒켔켖켗켘켙켚켛켝켞켟켡켢켣������켥켦켧켨켩켪켫켮켲켳켴켵켶켷켹켺켻켼켽켾켿콀콁콂콃콄������콅콆콇콈콉콊콋콌콍콎콏콐콑콒콓콖콗콙콚콛콝콞콟콠콡콢콣콦콨콪콫콬괌괍괏광괘괜괠괩괬괭괴괵괸괼굄굅굇굉교굔굘굡굣구국군굳굴굵굶굻굼굽굿궁궂궈궉권궐궜궝궤궷귀귁귄귈귐귑귓규균귤그극근귿글긁금급긋긍긔기긱긴긷길긺김깁깃깅깆깊까깍깎깐깔깖깜깝깟깠깡깥깨깩깬깰깸�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"�����������������������������������������������������������������콭콮콯콲콳콵콶콷콹콺콻콼콽콾콿쾁쾂쾃쾄쾆쾇쾈쾉쾊쾋쾍������쾎쾏쾐쾑쾒쾓쾔쾕쾖쾗쾘쾙쾚쾛쾜쾝쾞쾟쾠쾢쾣쾤쾥쾦쾧쾩������쾪쾫쾬쾭쾮쾯쾱쾲쾳쾴쾵쾶쾷쾸쾹쾺쾻쾼쾽쾾쾿쿀쿁쿂쿃쿅쿆쿇쿈쿉쿊쿋깹깻깼깽꺄꺅꺌꺼꺽꺾껀껄껌껍껏껐껑께껙껜껨껫껭껴껸껼꼇꼈꼍꼐꼬꼭꼰꼲꼴꼼꼽꼿꽁꽂꽃꽈꽉꽐꽜꽝꽤꽥꽹꾀꾄꾈꾐꾑꾕꾜꾸꾹꾼꿀꿇꿈꿉꿋꿍꿎꿔꿜꿨꿩꿰꿱꿴꿸뀀뀁뀄뀌뀐뀔뀜뀝뀨끄끅끈끊끌끎끓끔끕끗끙�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"�����������������������������������������������������������������쿌쿍쿎쿏쿐쿑쿒쿓쿔쿕쿖쿗쿘쿙쿚쿛쿜쿝쿞쿟쿢쿣쿥쿦쿧쿩������쿪쿫쿬쿭쿮쿯쿲쿴쿶쿷쿸쿹쿺쿻쿽쿾쿿퀁퀂퀃퀅퀆퀇퀈퀉퀊������퀋퀌퀍퀎퀏퀐퀒퀓퀔퀕퀖퀗퀙퀚퀛퀜퀝퀞퀟퀠퀡퀢퀣퀤퀥퀦퀧퀨퀩퀪퀫퀬끝끼끽낀낄낌낍낏낑나낙낚난낟날낡낢남납낫났낭낮낯낱낳내낵낸낼냄냅냇냈냉냐냑냔냘냠냥너넉넋넌널넒넓넘넙넛넜넝넣네넥넨넬넴넵넷넸넹녀녁년녈념녑녔녕녘녜녠노녹논놀놂놈놉놋농높놓놔놘놜놨뇌뇐뇔뇜뇝�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"�����������������������������������������������������������������퀮퀯퀰퀱퀲퀳퀶퀷퀹퀺퀻퀽퀾퀿큀큁큂큃큆큈큊큋큌큍큎큏������큑큒큓큕큖큗큙큚큛큜큝큞큟큡큢큣큤큥큦큧큨큩큪큫큮큯������큱큲큳큵큶큷큸큹큺큻큾큿킀킂킃킄킅킆킇킈킉킊킋킌킍킎킏킐킑킒킓킔뇟뇨뇩뇬뇰뇹뇻뇽누눅눈눋눌눔눕눗눙눠눴눼뉘뉜뉠뉨뉩뉴뉵뉼늄늅늉느늑는늘늙늚늠늡늣능늦늪늬늰늴니닉닌닐닒님닙닛닝닢다닥닦단닫달닭닮닯닳담답닷닸당닺닻닿대댁댄댈댐댑댓댔댕댜더덕덖던덛덜덞덟덤덥�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"�����������������������������������������������������������������킕킖킗킘킙킚킛킜킝킞킟킠킡킢킣킦킧킩킪킫킭킮킯킰킱킲������킳킶킸킺킻킼킽킾킿탂탃탅탆탇탊탋탌탍탎탏탒탖탗탘탙탚������탛탞탟탡탢탣탥탦탧탨탩탪탫탮탲탳탴탵탶탷탹탺탻탼탽탾탿턀턁턂턃턄덧덩덫덮데덱덴델뎀뎁뎃뎄뎅뎌뎐뎔뎠뎡뎨뎬도독돈돋돌돎돐돔돕돗동돛돝돠돤돨돼됐되된될됨됩됫됴두둑둔둘둠둡둣둥둬뒀뒈뒝뒤뒨뒬뒵뒷뒹듀듄듈듐듕드득든듣들듦듬듭듯등듸디딕딘딛딜딤딥딧딨딩딪따딱딴딸�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"�����������������������������������������������������������������턅턆턇턈턉턊턋턌턎턏턐턑턒턓턔턕턖턗턘턙턚턛턜턝턞턟������턠턡턢턣턤턥턦턧턨턩턪턫턬턭턮턯턲턳턵턶턷턹턻턼턽턾������턿텂텆텇텈텉텊텋텎텏텑텒텓텕텖텗텘텙텚텛텞텠텢텣텤텥텦텧텩텪텫텭땀땁땃땄땅땋때땍땐땔땜땝땟땠땡떠떡떤떨떪떫떰떱떳떴떵떻떼떽뗀뗄뗌뗍뗏뗐뗑뗘뗬또똑똔똘똥똬똴뙈뙤뙨뚜뚝뚠뚤뚫뚬뚱뛔뛰뛴뛸뜀뜁뜅뜨뜩뜬뜯뜰뜸뜹뜻띄띈띌띔띕띠띤띨띰띱띳띵라락란랄람랍랏랐랑랒랖랗�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"�����������������������������������������������������������������텮텯텰텱텲텳텴텵텶텷텸텹텺텻텽텾텿톀톁톂톃톅톆톇톉톊������톋톌톍톎톏톐톑톒톓톔톕톖톗톘톙톚톛톜톝톞톟톢톣톥톦톧������톩톪톫톬톭톮톯톲톴톶톷톸톹톻톽톾톿퇁퇂퇃퇄퇅퇆퇇퇈퇉퇊퇋퇌퇍퇎퇏래랙랜랠램랩랫랬랭랴략랸럇량러럭런럴럼럽럿렀렁렇레렉렌렐렘렙렛렝려력련렬렴렵렷렸령례롄롑롓로록론롤롬롭롯롱롸롼뢍뢨뢰뢴뢸룀룁룃룅료룐룔룝룟룡루룩룬룰룸룹룻룽뤄뤘뤠뤼뤽륀륄륌륏륑류륙륜률륨륩�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"�����������������������������������������������������������������퇐퇑퇒퇓퇔퇕퇖퇗퇙퇚퇛퇜퇝퇞퇟퇠퇡퇢퇣퇤퇥퇦퇧퇨퇩퇪������퇫퇬퇭퇮퇯퇰퇱퇲퇳퇵퇶퇷퇹퇺퇻퇼퇽퇾퇿툀툁툂툃툄툅툆������툈툊툋툌툍툎툏툑툒툓툔툕툖툗툘툙툚툛툜툝툞툟툠툡툢툣툤툥툦툧툨툩륫륭르륵른를름릅릇릉릊릍릎리릭린릴림립릿링마막만많맏말맑맒맘맙맛망맞맡맣매맥맨맬맴맵맷맸맹맺먀먁먈먕머먹먼멀멂멈멉멋멍멎멓메멕멘멜멤멥멧멨멩며멱면멸몃몄명몇몌모목몫몬몰몲몸몹못몽뫄뫈뫘뫙뫼�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"�����������������������������������������������������������������툪툫툮툯툱툲툳툵툶툷툸툹툺툻툾퉀퉂퉃퉄퉅퉆퉇퉉퉊퉋퉌������퉍퉎퉏퉐퉑퉒퉓퉔퉕퉖퉗퉘퉙퉚퉛퉝퉞퉟퉠퉡퉢퉣퉥퉦퉧퉨������퉩퉪퉫퉬퉭퉮퉯퉰퉱퉲퉳퉴퉵퉶퉷퉸퉹퉺퉻퉼퉽퉾퉿튂튃튅튆튇튉튊튋튌묀묄묍묏묑묘묜묠묩묫무묵묶문묻물묽묾뭄뭅뭇뭉뭍뭏뭐뭔뭘뭡뭣뭬뮈뮌뮐뮤뮨뮬뮴뮷므믄믈믐믓미믹민믿밀밂밈밉밋밌밍및밑바박밖밗반받발밝밞밟밤밥밧방밭배백밴밸뱀뱁뱃뱄뱅뱉뱌뱍뱐뱝버벅번벋벌벎범법벗�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"�����������������������������������������������������������������튍튎튏튒튓튔튖튗튘튙튚튛튝튞튟튡튢튣튥튦튧튨튩튪튫튭������튮튯튰튲튳튴튵튶튷튺튻튽튾틁틃틄틅틆틇틊틌틍틎틏틐틑������틒틓틕틖틗틙틚틛틝틞틟틠틡틢틣틦틧틨틩틪틫틬틭틮틯틲틳틵틶틷틹틺벙벚베벡벤벧벨벰벱벳벴벵벼벽변별볍볏볐병볕볘볜보복볶본볼봄봅봇봉봐봔봤봬뵀뵈뵉뵌뵐뵘뵙뵤뵨부북분붇불붉붊붐붑붓붕붙붚붜붤붰붸뷔뷕뷘뷜뷩뷰뷴뷸븀븃븅브븍븐블븜븝븟비빅빈빌빎빔빕빗빙빚빛빠빡빤�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"�����������������������������������������������������������������틻틼틽틾틿팂팄팆팇팈팉팊팋팏팑팒팓팕팗팘팙팚팛팞팢팣������팤팦팧팪팫팭팮팯팱팲팳팴팵팶팷팺팾팿퍀퍁퍂퍃퍆퍇퍈퍉������퍊퍋퍌퍍퍎퍏퍐퍑퍒퍓퍔퍕퍖퍗퍘퍙퍚퍛퍜퍝퍞퍟퍠퍡퍢퍣퍤퍥퍦퍧퍨퍩빨빪빰빱빳빴빵빻빼빽뺀뺄뺌뺍뺏뺐뺑뺘뺙뺨뻐뻑뻔뻗뻘뻠뻣뻤뻥뻬뼁뼈뼉뼘뼙뼛뼜뼝뽀뽁뽄뽈뽐뽑뽕뾔뾰뿅뿌뿍뿐뿔뿜뿟뿡쀼쁑쁘쁜쁠쁨쁩삐삑삔삘삠삡삣삥사삭삯산삳살삵삶삼삽삿샀상샅새색샌샐샘샙샛샜생샤�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"�����������������������������������������������������������������퍪퍫퍬퍭퍮퍯퍰퍱퍲퍳퍴퍵퍶퍷퍸퍹퍺퍻퍾퍿펁펂펃펅펆펇������펈펉펊펋펎펒펓펔펕펖펗펚펛펝펞펟펡펢펣펤펥펦펧펪펬펮������펯펰펱펲펳펵펶펷펹펺펻펽펾펿폀폁폂폃폆폇폊폋폌폍폎폏폑폒폓폔폕폖샥샨샬샴샵샷샹섀섄섈섐섕서석섞섟선섣설섦섧섬섭섯섰성섶세섹센셀셈셉셋셌셍셔셕션셜셤셥셧셨셩셰셴셸솅소속솎손솔솖솜솝솟송솥솨솩솬솰솽쇄쇈쇌쇔쇗쇘쇠쇤쇨쇰쇱쇳쇼쇽숀숄숌숍숏숑수숙순숟술숨숩숫숭�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"�����������������������������������������������������������������폗폙폚폛폜폝폞폟폠폢폤폥폦폧폨폩폪폫폮폯폱폲폳폵폶폷������폸폹폺폻폾퐀퐂퐃퐄퐅퐆퐇퐉퐊퐋퐌퐍퐎퐏퐐퐑퐒퐓퐔퐕퐖������퐗퐘퐙퐚퐛퐜퐞퐟퐠퐡퐢퐣퐤퐥퐦퐧퐨퐩퐪퐫퐬퐭퐮퐯퐰퐱퐲퐳퐴퐵퐶퐷숯숱숲숴쉈쉐쉑쉔쉘쉠쉥쉬쉭쉰쉴쉼쉽쉿슁슈슉슐슘슛슝스슥슨슬슭슴습슷승시식신싣실싫심십싯싱싶싸싹싻싼쌀쌈쌉쌌쌍쌓쌔쌕쌘쌜쌤쌥쌨쌩썅써썩썬썰썲썸썹썼썽쎄쎈쎌쏀쏘쏙쏜쏟쏠쏢쏨쏩쏭쏴쏵쏸쐈쐐쐤쐬쐰�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"�����������������������������������������������������������������퐸퐹퐺퐻퐼퐽퐾퐿푁푂푃푅푆푇푈푉푊푋푌푍푎푏푐푑푒푓������푔푕푖푗푘푙푚푛푝푞푟푡푢푣푥푦푧푨푩푪푫푬푮푰푱푲������푳푴푵푶푷푺푻푽푾풁풃풄풅풆풇풊풌풎풏풐풑풒풓풕풖풗풘풙풚풛풜풝쐴쐼쐽쑈쑤쑥쑨쑬쑴쑵쑹쒀쒔쒜쒸쒼쓩쓰쓱쓴쓸쓺쓿씀씁씌씐씔씜씨씩씬씰씸씹씻씽아악안앉않알앍앎앓암압앗았앙앝앞애액앤앨앰앱앳앴앵야약얀얄얇얌얍얏양얕얗얘얜얠얩어억언얹얻얼얽얾엄업없엇었엉엊엌엎�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"�����������������������������������������������������������������풞풟풠풡풢풣풤풥풦풧풨풪풫풬풭풮풯풰풱풲풳풴풵풶풷풸������풹풺풻풼풽풾풿퓀퓁퓂퓃퓄퓅퓆퓇퓈퓉퓊퓋퓍퓎퓏퓑퓒퓓퓕������퓖퓗퓘퓙퓚퓛퓝퓞퓠퓡퓢퓣퓤퓥퓦퓧퓩퓪퓫퓭퓮퓯퓱퓲퓳퓴퓵퓶퓷퓹퓺퓼에엑엔엘엠엡엣엥여역엮연열엶엷염엽엾엿였영옅옆옇예옌옐옘옙옛옜오옥온올옭옮옰옳옴옵옷옹옻와왁완왈왐왑왓왔왕왜왝왠왬왯왱외왹왼욀욈욉욋욍요욕욘욜욤욥욧용우욱운울욹욺움웁웃웅워웍원월웜웝웠웡웨�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"�����������������������������������������������������������������퓾퓿픀픁픂픃픅픆픇픉픊픋픍픎픏픐픑픒픓픖픘픙픚픛픜픝������픞픟픠픡픢픣픤픥픦픧픨픩픪픫픬픭픮픯픰픱픲픳픴픵픶픷������픸픹픺픻픾픿핁핂핃핅핆핇핈핉핊핋핎핐핒핓핔핕핖핗핚핛핝핞핟핡핢핣웩웬웰웸웹웽위윅윈윌윔윕윗윙유육윤율윰윱윳융윷으윽은을읊음읍읏응읒읓읔읕읖읗의읜읠읨읫이익인일읽읾잃임입잇있잉잊잎자작잔잖잗잘잚잠잡잣잤장잦재잭잰잴잼잽잿쟀쟁쟈쟉쟌쟎쟐쟘쟝쟤쟨쟬저적전절젊�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"�����������������������������������������������������������������핤핦핧핪핬핮핯핰핱핲핳핶핷핹핺핻핽핾핿햀햁햂햃햆햊햋������햌햍햎햏햑햒햓햔햕햖햗햘햙햚햛햜햝햞햟햠햡햢햣햤햦햧������햨햩햪햫햬햭햮햯햰햱햲햳햴햵햶햷햸햹햺햻햼햽햾햿헀헁헂헃헄헅헆헇점접젓정젖제젝젠젤젬젭젯젱져젼졀졈졉졌졍졔조족존졸졺좀좁좃종좆좇좋좌좍좔좝좟좡좨좼좽죄죈죌죔죕죗죙죠죡죤죵주죽준줄줅줆줌줍줏중줘줬줴쥐쥑쥔쥘쥠쥡쥣쥬쥰쥴쥼즈즉즌즐즘즙즛증지직진짇질짊짐집짓�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"�����������������������������������������������������������������헊헋헍헎헏헑헓헔헕헖헗헚헜헞헟헠헡헢헣헦헧헩헪헫헭헮������헯헰헱헲헳헶헸헺헻헼헽헾헿혂혃혅혆혇혉혊혋혌혍혎혏혒������혖혗혘혙혚혛혝혞혟혡혢혣혥혦혧혨혩혪혫혬혮혯혰혱혲혳혴혵혶혷혺혻징짖짙짚짜짝짠짢짤짧짬짭짯짰짱째짹짼쨀쨈쨉쨋쨌쨍쨔쨘쨩쩌쩍쩐쩔쩜쩝쩟쩠쩡쩨쩽쪄쪘쪼쪽쫀쫄쫌쫍쫏쫑쫓쫘쫙쫠쫬쫴쬈쬐쬔쬘쬠쬡쭁쭈쭉쭌쭐쭘쭙쭝쭤쭸쭹쮜쮸쯔쯤쯧쯩찌찍찐찔찜찝찡찢찧차착찬찮찰참찹찻�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"�����������������������������������������������������������������혽혾혿홁홂홃홄홆홇홊홌홎홏홐홒홓홖홗홙홚홛홝홞홟홠홡������홢홣홤홥홦홨홪홫홬홭홮홯홲홳홵홶홷홸홹홺홻홼홽홾홿횀������횁횂횄횆횇횈횉횊횋횎횏횑횒횓횕횖횗횘횙횚횛횜횞횠횢횣횤횥횦횧횩횪찼창찾채책챈챌챔챕챗챘챙챠챤챦챨챰챵처척천철첨첩첫첬청체첵첸첼쳄쳅쳇쳉쳐쳔쳤쳬쳰촁초촉촌촐촘촙촛총촤촨촬촹최쵠쵤쵬쵭쵯쵱쵸춈추축춘출춤춥춧충춰췄췌췐취췬췰췸췹췻췽츄츈츌츔츙츠측츤츨츰츱츳층�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"�����������������������������������������������������������������횫횭횮횯횱횲횳횴횵횶횷횸횺횼횽횾횿훀훁훂훃훆훇훉훊훋������훍훎훏훐훒훓훕훖훘훚훛훜훝훞훟훡훢훣훥훦훧훩훪훫훬훭������훮훯훱훲훳훴훶훷훸훹훺훻훾훿휁휂휃휅휆휇휈휉휊휋휌휍휎휏휐휒휓휔치칙친칟칠칡침칩칫칭카칵칸칼캄캅캇캉캐캑캔캘캠캡캣캤캥캬캭컁커컥컨컫컬컴컵컷컸컹케켁켄켈켐켑켓켕켜켠켤켬켭켯켰켱켸코콕콘콜콤콥콧콩콰콱콴콸쾀쾅쾌쾡쾨쾰쿄쿠쿡쿤쿨쿰쿱쿳쿵쿼퀀퀄퀑퀘퀭퀴퀵퀸퀼�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"�����������������������������������������������������������������휕휖휗휚휛휝휞휟휡휢휣휤휥휦휧휪휬휮휯휰휱휲휳휶휷휹������휺휻휽휾휿흀흁흂흃흅흆흈흊흋흌흍흎흏흒흓흕흚흛흜흝흞������흟흢흤흦흧흨흪흫흭흮흯흱흲흳흵흶흷흸흹흺흻흾흿힀힂힃힄힅힆힇힊힋큄큅큇큉큐큔큘큠크큭큰클큼큽킁키킥킨킬킴킵킷킹타탁탄탈탉탐탑탓탔탕태택탠탤탬탭탯탰탱탸턍터턱턴털턺텀텁텃텄텅테텍텐텔템텝텟텡텨텬텼톄톈토톡톤톨톰톱톳통톺톼퇀퇘퇴퇸툇툉툐투툭툰툴툼툽툿퉁퉈퉜�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"�����������������������������������������������������������������힍힎힏힑힒힓힔힕힖힗힚힜힞힟힠힡힢힣������������������������������������������������������������������������������퉤튀튁튄튈튐튑튕튜튠튤튬튱트특튼튿틀틂틈틉틋틔틘틜틤틥티틱틴틸팀팁팃팅파팍팎판팔팖팜팝팟팠팡팥패팩팬팰팸팹팻팼팽퍄퍅퍼퍽펀펄펌펍펏펐펑페펙펜펠펨펩펫펭펴편펼폄폅폈평폐폘폡폣포폭폰폴폼폽폿퐁�\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[199] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������퐈퐝푀푄표푠푤푭푯푸푹푼푿풀풂품풉풋풍풔풩퓌퓐퓔퓜퓟퓨퓬퓰퓸퓻퓽프픈플픔픕픗피픽핀필핌핍핏핑하학한할핥함합핫항해핵핸핼햄햅햇했행햐향허헉헌헐헒험헙헛헝헤헥헨헬헴헵헷헹혀혁현혈혐협혓혔형혜혠�\".split(\"\");\nfor(j = 0; j != D[199].length; ++j) if(D[199][j].charCodeAt(0) !== 0xFFFD) { e[D[199][j]] = 50944 + j; d[50944 + j] = D[199][j];}\nD[200] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������혤혭호혹혼홀홅홈홉홋홍홑화확환활홧황홰홱홴횃횅회획횐횔횝횟횡효횬횰횹횻후훅훈훌훑훔훗훙훠훤훨훰훵훼훽휀휄휑휘휙휜휠휨휩휫휭휴휵휸휼흄흇흉흐흑흔흖흗흘흙흠흡흣흥흩희흰흴흼흽힁히힉힌힐힘힙힛힝�\".split(\"\");\nfor(j = 0; j != D[200].length; ++j) if(D[200][j].charCodeAt(0) !== 0xFFFD) { e[D[200][j]] = 51200 + j; d[51200 + j] = D[200][j];}\nD[202] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������伽佳假價加可呵哥嘉嫁家暇架枷柯歌珂痂稼苛茄街袈訶賈跏軻迦駕刻却各恪慤殼珏脚覺角閣侃刊墾奸姦干幹懇揀杆柬桿澗癎看磵稈竿簡肝艮艱諫間乫喝曷渴碣竭葛褐蝎鞨勘坎堪嵌感憾戡敢柑橄減甘疳監瞰紺邯鑑鑒龕�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������匣岬甲胛鉀閘剛堈姜岡崗康强彊慷江畺疆糠絳綱羌腔舡薑襁講鋼降鱇介价個凱塏愷愾慨改槪漑疥皆盖箇芥蓋豈鎧開喀客坑更粳羹醵倨去居巨拒据據擧渠炬祛距踞車遽鉅鋸乾件健巾建愆楗腱虔蹇鍵騫乞傑杰桀儉劍劒檢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������瞼鈐黔劫怯迲偈憩揭擊格檄激膈覡隔堅牽犬甄絹繭肩見譴遣鵑抉決潔結缺訣兼慊箝謙鉗鎌京俓倞傾儆勁勍卿坰境庚徑慶憬擎敬景暻更梗涇炅烱璟璥瓊痙硬磬竟競絅經耕耿脛莖警輕逕鏡頃頸驚鯨係啓堺契季屆悸戒桂械�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棨溪界癸磎稽系繫繼計誡谿階鷄古叩告呱固姑孤尻庫拷攷故敲暠枯槁沽痼皐睾稿羔考股膏苦苽菰藁蠱袴誥賈辜錮雇顧高鼓哭斛曲梏穀谷鵠困坤崑昆梱棍滾琨袞鯤汨滑骨供公共功孔工恐恭拱控攻珙空蚣貢鞏串寡戈果瓜�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������科菓誇課跨過鍋顆廓槨藿郭串冠官寬慣棺款灌琯瓘管罐菅觀貫關館刮恝括适侊光匡壙廣曠洸炚狂珖筐胱鑛卦掛罫乖傀塊壞怪愧拐槐魁宏紘肱轟交僑咬喬嬌嶠巧攪敎校橋狡皎矯絞翹膠蕎蛟較轎郊餃驕鮫丘久九仇俱具勾�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������區口句咎嘔坵垢寇嶇廐懼拘救枸柩構歐毆毬求溝灸狗玖球瞿矩究絿耉臼舅舊苟衢謳購軀逑邱鉤銶駒驅鳩鷗龜國局菊鞠鞫麴君窘群裙軍郡堀屈掘窟宮弓穹窮芎躬倦券勸卷圈拳捲權淃眷厥獗蕨蹶闕机櫃潰詭軌饋句晷歸貴�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鬼龜叫圭奎揆槻珪硅窺竅糾葵規赳逵閨勻均畇筠菌鈞龜橘克剋劇戟棘極隙僅劤勤懃斤根槿瑾筋芹菫覲謹近饉契今妗擒昑檎琴禁禽芩衾衿襟金錦伋及急扱汲級給亘兢矜肯企伎其冀嗜器圻基埼夔奇妓寄岐崎己幾忌技旗旣�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������朞期杞棋棄機欺氣汽沂淇玘琦琪璂璣畸畿碁磯祁祇祈祺箕紀綺羈耆耭肌記譏豈起錡錤飢饑騎騏驥麒緊佶吉拮桔金喫儺喇奈娜懦懶拏拿癩羅蘿螺裸邏那樂洛烙珞落諾酪駱亂卵暖欄煖爛蘭難鸞捏捺南嵐枏楠湳濫男藍襤拉�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������納臘蠟衲囊娘廊朗浪狼郎乃來內奈柰耐冷女年撚秊念恬拈捻寧寗努勞奴弩怒擄櫓爐瑙盧老蘆虜路露駑魯鷺碌祿綠菉錄鹿論壟弄濃籠聾膿農惱牢磊腦賂雷尿壘屢樓淚漏累縷陋嫩訥杻紐勒肋凜凌稜綾能菱陵尼泥匿溺多茶�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������丹亶但單團壇彖斷旦檀段湍短端簞緞蛋袒鄲鍛撻澾獺疸達啖坍憺擔曇淡湛潭澹痰聃膽蕁覃談譚錟沓畓答踏遝唐堂塘幢戇撞棠當糖螳黨代垈坮大對岱帶待戴擡玳臺袋貸隊黛宅德悳倒刀到圖堵塗導屠島嶋度徒悼挑掉搗桃�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������棹櫂淘渡滔濤燾盜睹禱稻萄覩賭跳蹈逃途道都鍍陶韜毒瀆牘犢獨督禿篤纛讀墩惇敦旽暾沌焞燉豚頓乭突仝冬凍動同憧東桐棟洞潼疼瞳童胴董銅兜斗杜枓痘竇荳讀豆逗頭屯臀芚遁遯鈍得嶝橙燈登等藤謄鄧騰喇懶拏癩羅�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蘿螺裸邏樂洛烙珞絡落諾酪駱丹亂卵欄欒瀾爛蘭鸞剌辣嵐擥攬欖濫籃纜藍襤覽拉臘蠟廊朗浪狼琅瑯螂郞來崍徠萊冷掠略亮倆兩凉梁樑粮粱糧良諒輛量侶儷勵呂廬慮戾旅櫚濾礪藜蠣閭驢驪麗黎力曆歷瀝礫轢靂憐戀攣漣�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煉璉練聯蓮輦連鍊冽列劣洌烈裂廉斂殮濂簾獵令伶囹寧岺嶺怜玲笭羚翎聆逞鈴零靈領齡例澧禮醴隷勞怒撈擄櫓潞瀘爐盧老蘆虜路輅露魯鷺鹵碌祿綠菉錄鹿麓論壟弄朧瀧瓏籠聾儡瀨牢磊賂賚賴雷了僚寮廖料燎療瞭聊蓼�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������遼鬧龍壘婁屢樓淚漏瘻累縷蔞褸鏤陋劉旒柳榴流溜瀏琉瑠留瘤硫謬類六戮陸侖倫崙淪綸輪律慄栗率隆勒肋凜凌楞稜綾菱陵俚利厘吏唎履悧李梨浬犁狸理璃異痢籬罹羸莉裏裡里釐離鯉吝潾燐璘藺躪隣鱗麟林淋琳臨霖砬�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒摩瑪痲碼磨馬魔麻寞幕漠膜莫邈万卍娩巒彎慢挽晩曼滿漫灣瞞萬蔓蠻輓饅鰻唜抹末沫茉襪靺亡妄忘忙望網罔芒茫莽輞邙埋妹媒寐昧枚梅每煤罵買賣邁魅脈貊陌驀麥孟氓猛盲盟萌冪覓免冕勉棉沔眄眠綿緬面麵滅�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������蔑冥名命明暝椧溟皿瞑茗蓂螟酩銘鳴袂侮冒募姆帽慕摸摹暮某模母毛牟牡瑁眸矛耗芼茅謀謨貌木沐牧目睦穆鶩歿沒夢朦蒙卯墓妙廟描昴杳渺猫竗苗錨務巫憮懋戊拇撫无楙武毋無珷畝繆舞茂蕪誣貿霧鵡墨默們刎吻問文�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������汶紊紋聞蚊門雯勿沕物味媚尾嵋彌微未梶楣渼湄眉米美薇謎迷靡黴岷悶愍憫敏旻旼民泯玟珉緡閔密蜜謐剝博拍搏撲朴樸泊珀璞箔粕縛膊舶薄迫雹駁伴半反叛拌搬攀斑槃泮潘班畔瘢盤盼磐磻礬絆般蟠返頒飯勃拔撥渤潑�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������發跋醱鉢髮魃倣傍坊妨尨幇彷房放方旁昉枋榜滂磅紡肪膀舫芳蒡蚌訪謗邦防龐倍俳北培徘拜排杯湃焙盃背胚裴裵褙賠輩配陪伯佰帛柏栢白百魄幡樊煩燔番磻繁蕃藩飜伐筏罰閥凡帆梵氾汎泛犯範范法琺僻劈壁擘檗璧癖�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������碧蘗闢霹便卞弁變辨辯邊別瞥鱉鼈丙倂兵屛幷昞昺柄棅炳甁病秉竝輧餠騈保堡報寶普步洑湺潽珤甫菩補褓譜輔伏僕匐卜宓復服福腹茯蔔複覆輹輻馥鰒本乶俸奉封峯峰捧棒烽熢琫縫蓬蜂逢鋒鳳不付俯傅剖副否咐埠夫婦�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������孚孵富府復扶敷斧浮溥父符簿缶腐腑膚艀芙莩訃負賦賻赴趺部釜阜附駙鳧北分吩噴墳奔奮忿憤扮昐汾焚盆粉糞紛芬賁雰不佛弗彿拂崩朋棚硼繃鵬丕備匕匪卑妃婢庇悲憊扉批斐枇榧比毖毗毘沸泌琵痺砒碑秕秘粃緋翡肥�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������脾臂菲蜚裨誹譬費鄙非飛鼻嚬嬪彬斌檳殯浜濱瀕牝玭貧賓頻憑氷聘騁乍事些仕伺似使俟僿史司唆嗣四士奢娑寫寺射巳師徙思捨斜斯柶査梭死沙泗渣瀉獅砂社祀祠私篩紗絲肆舍莎蓑蛇裟詐詞謝賜赦辭邪飼駟麝削數朔索�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������傘刪山散汕珊産疝算蒜酸霰乷撒殺煞薩三參杉森渗芟蔘衫揷澁鈒颯上傷像償商喪嘗孀尙峠常床庠廂想桑橡湘爽牀狀相祥箱翔裳觴詳象賞霜塞璽賽嗇塞穡索色牲生甥省笙墅壻嶼序庶徐恕抒捿敍暑曙書栖棲犀瑞筮絮緖署�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������胥舒薯西誓逝鋤黍鼠夕奭席惜昔晳析汐淅潟石碩蓆釋錫仙僊先善嬋宣扇敾旋渲煽琁瑄璇璿癬禪線繕羨腺膳船蘚蟬詵跣選銑鐥饍鮮卨屑楔泄洩渫舌薛褻設說雪齧剡暹殲纖蟾贍閃陝攝涉燮葉城姓宬性惺成星晟猩珹盛省筬�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������聖聲腥誠醒世勢歲洗稅笹細說貰召嘯塑宵小少巢所掃搔昭梳沼消溯瀟炤燒甦疏疎瘙笑篠簫素紹蔬蕭蘇訴逍遡邵銷韶騷俗屬束涑粟續謖贖速孫巽損蓀遜飡率宋悚松淞訟誦送頌刷殺灑碎鎖衰釗修受嗽囚垂壽嫂守岫峀帥愁�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������戍手授搜收數樹殊水洙漱燧狩獸琇璲瘦睡秀穗竪粹綏綬繡羞脩茱蒐蓚藪袖誰讐輸遂邃酬銖銹隋隧隨雖需須首髓鬚叔塾夙孰宿淑潚熟琡璹肅菽巡徇循恂旬栒楯橓殉洵淳珣盾瞬筍純脣舜荀蓴蕣詢諄醇錞順馴戌術述鉥崇崧�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������嵩瑟膝蝨濕拾習褶襲丞乘僧勝升承昇繩蠅陞侍匙嘶始媤尸屎屍市弑恃施是時枾柴猜矢示翅蒔蓍視試詩諡豕豺埴寔式息拭植殖湜熄篒蝕識軾食飾伸侁信呻娠宸愼新晨燼申神紳腎臣莘薪藎蜃訊身辛辰迅失室實悉審尋心沁�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������沈深瀋甚芯諶什十拾雙氏亞俄兒啞娥峨我牙芽莪蛾衙訝阿雅餓鴉鵝堊岳嶽幄惡愕握樂渥鄂鍔顎鰐齷安岸按晏案眼雁鞍顔鮟斡謁軋閼唵岩巖庵暗癌菴闇壓押狎鴨仰央怏昻殃秧鴦厓哀埃崖愛曖涯碍艾隘靄厄扼掖液縊腋額�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������櫻罌鶯鸚也倻冶夜惹揶椰爺耶若野弱掠略約若葯蒻藥躍亮佯兩凉壤孃恙揚攘敭暘梁楊樣洋瀁煬痒瘍禳穰糧羊良襄諒讓釀陽量養圄御於漁瘀禦語馭魚齬億憶抑檍臆偃堰彦焉言諺孼蘖俺儼嚴奄掩淹嶪業円予余勵呂女如廬�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������旅歟汝濾璵礖礪與艅茹輿轝閭餘驪麗黎亦力域役易曆歷疫繹譯轢逆驛嚥堧姸娟宴年延憐戀捐挻撚椽沇沿涎涓淵演漣烟然煙煉燃燕璉硏硯秊筵緣練縯聯衍軟輦蓮連鉛鍊鳶列劣咽悅涅烈熱裂說閱厭廉念捻染殮炎焰琰艶苒�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������簾閻髥鹽曄獵燁葉令囹塋寧嶺嶸影怜映暎楹榮永泳渶潁濚瀛瀯煐營獰玲瑛瑩瓔盈穎纓羚聆英詠迎鈴鍈零霙靈領乂倪例刈叡曳汭濊猊睿穢芮藝蘂禮裔詣譽豫醴銳隸霓預五伍俉傲午吾吳嗚塢墺奧娛寤悟惡懊敖旿晤梧汚澳�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������烏熬獒筽蜈誤鰲鼇屋沃獄玉鈺溫瑥瘟穩縕蘊兀壅擁瓮甕癰翁邕雍饔渦瓦窩窪臥蛙蝸訛婉完宛梡椀浣玩琓琬碗緩翫脘腕莞豌阮頑曰往旺枉汪王倭娃歪矮外嵬巍猥畏了僚僥凹堯夭妖姚寥寮尿嶢拗搖撓擾料曜樂橈燎燿瑤療�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������窈窯繇繞耀腰蓼蟯要謠遙遼邀饒慾欲浴縟褥辱俑傭冗勇埇墉容庸慂榕涌湧溶熔瑢用甬聳茸蓉踊鎔鏞龍于佑偶優又友右宇寓尤愚憂旴牛玗瑀盂祐禑禹紆羽芋藕虞迂遇郵釪隅雨雩勖彧旭昱栯煜稶郁頊云暈橒殞澐熉耘芸蕓�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������運隕雲韻蔚鬱亐熊雄元原員圓園垣媛嫄寃怨愿援沅洹湲源爰猿瑗苑袁轅遠阮院願鴛月越鉞位偉僞危圍委威尉慰暐渭爲瑋緯胃萎葦蔿蝟衛褘謂違韋魏乳侑儒兪劉唯喩孺宥幼幽庾悠惟愈愉揄攸有杻柔柚柳楡楢油洧流游溜�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������濡猶猷琉瑜由留癒硫紐維臾萸裕誘諛諭踰蹂遊逾遺酉釉鍮類六堉戮毓肉育陸倫允奫尹崙淪潤玧胤贇輪鈗閏律慄栗率聿戎瀜絨融隆垠恩慇殷誾銀隱乙吟淫蔭陰音飮揖泣邑凝應膺鷹依倚儀宜意懿擬椅毅疑矣義艤薏蟻衣誼�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������議醫二以伊利吏夷姨履已弛彛怡易李梨泥爾珥理異痍痢移罹而耳肄苡荑裏裡貽貳邇里離飴餌匿溺瀷益翊翌翼謚人仁刃印吝咽因姻寅引忍湮燐璘絪茵藺蚓認隣靭靷鱗麟一佚佾壹日溢逸鎰馹任壬妊姙恁林淋稔臨荏賃入卄�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������立笠粒仍剩孕芿仔刺咨姉姿子字孜恣慈滋炙煮玆瓷疵磁紫者自茨蔗藉諮資雌作勺嚼斫昨灼炸爵綽芍酌雀鵲孱棧殘潺盞岑暫潛箴簪蠶雜丈仗匠場墻壯奬將帳庄張掌暲杖樟檣欌漿牆狀獐璋章粧腸臟臧莊葬蔣薔藏裝贓醬長�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������障再哉在宰才材栽梓渽滓災縡裁財載齋齎爭箏諍錚佇低儲咀姐底抵杵楮樗沮渚狙猪疽箸紵苧菹著藷詛貯躇這邸雎齟勣吊嫡寂摘敵滴狄炙的積笛籍績翟荻謫賊赤跡蹟迪迹適鏑佃佺傳全典前剪塡塼奠專展廛悛戰栓殿氈澱�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������煎琠田甸畑癲筌箋箭篆纏詮輾轉鈿銓錢鐫電顚顫餞切截折浙癤竊節絶占岾店漸点粘霑鮎點接摺蝶丁井亭停偵呈姃定幀庭廷征情挺政整旌晶晸柾楨檉正汀淀淨渟湞瀞炡玎珽町睛碇禎程穽精綎艇訂諪貞鄭酊釘鉦鋌錠霆靖�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������靜頂鼎制劑啼堤帝弟悌提梯濟祭第臍薺製諸蹄醍除際霽題齊俎兆凋助嘲弔彫措操早晁曺曹朝條棗槽漕潮照燥爪璪眺祖祚租稠窕粗糟組繰肇藻蚤詔調趙躁造遭釣阻雕鳥族簇足鏃存尊卒拙猝倧宗從悰慫棕淙琮種終綜縱腫�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������踪踵鍾鐘佐坐左座挫罪主住侏做姝胄呪周嗾奏宙州廚晝朱柱株注洲湊澍炷珠疇籌紂紬綢舟蛛註誅走躊輳週酎酒鑄駐竹粥俊儁准埈寯峻晙樽浚準濬焌畯竣蠢逡遵雋駿茁中仲衆重卽櫛楫汁葺增憎曾拯烝甑症繒蒸證贈之只�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������咫地址志持指摯支旨智枝枳止池沚漬知砥祉祗紙肢脂至芝芷蜘誌識贄趾遲直稙稷織職唇嗔塵振搢晉晋桭榛殄津溱珍瑨璡畛疹盡眞瞋秦縉縝臻蔯袗診賑軫辰進鎭陣陳震侄叱姪嫉帙桎瓆疾秩窒膣蛭質跌迭斟朕什執潗緝輯�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鏶集徵懲澄且侘借叉嗟嵯差次此磋箚茶蹉車遮捉搾着窄錯鑿齪撰澯燦璨瓚竄簒纂粲纘讚贊鑽餐饌刹察擦札紮僭參塹慘慙懺斬站讒讖倉倡創唱娼廠彰愴敞昌昶暢槍滄漲猖瘡窓脹艙菖蒼債埰寀寨彩採砦綵菜蔡采釵冊柵策�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������責凄妻悽處倜刺剔尺慽戚拓擲斥滌瘠脊蹠陟隻仟千喘天川擅泉淺玔穿舛薦賤踐遷釧闡阡韆凸哲喆徹撤澈綴輟轍鐵僉尖沾添甛瞻簽籤詹諂堞妾帖捷牒疊睫諜貼輒廳晴淸聽菁請靑鯖切剃替涕滯締諦逮遞體初剿哨憔抄招梢�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������椒楚樵炒焦硝礁礎秒稍肖艸苕草蕉貂超酢醋醮促囑燭矗蜀觸寸忖村邨叢塚寵悤憁摠總聰蔥銃撮催崔最墜抽推椎楸樞湫皺秋芻萩諏趨追鄒酋醜錐錘鎚雛騶鰍丑畜祝竺筑築縮蓄蹙蹴軸逐春椿瑃出朮黜充忠沖蟲衝衷悴膵萃�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������贅取吹嘴娶就炊翠聚脆臭趣醉驟鷲側仄厠惻測層侈値嗤峙幟恥梔治淄熾痔痴癡稚穉緇緻置致蚩輜雉馳齒則勅飭親七柒漆侵寢枕沈浸琛砧針鍼蟄秤稱快他咤唾墮妥惰打拖朶楕舵陀馱駝倬卓啄坼度托拓擢晫柝濁濯琢琸託�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������鐸呑嘆坦彈憚歎灘炭綻誕奪脫探眈耽貪塔搭榻宕帑湯糖蕩兌台太怠態殆汰泰笞胎苔跆邰颱宅擇澤撑攄兎吐土討慟桶洞痛筒統通堆槌腿褪退頹偸套妬投透鬪慝特闖坡婆巴把播擺杷波派爬琶破罷芭跛頗判坂板版瓣販辦鈑�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������阪八叭捌佩唄悖敗沛浿牌狽稗覇貝彭澎烹膨愎便偏扁片篇編翩遍鞭騙貶坪平枰萍評吠嬖幣廢弊斃肺蔽閉陛佈包匍匏咆哺圃布怖抛抱捕暴泡浦疱砲胞脯苞葡蒲袍褒逋鋪飽鮑幅暴曝瀑爆輻俵剽彪慓杓標漂瓢票表豹飇飄驃�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������品稟楓諷豊風馮彼披疲皮被避陂匹弼必泌珌畢疋筆苾馝乏逼下何厦夏廈昰河瑕荷蝦賀遐霞鰕壑學虐謔鶴寒恨悍旱汗漢澣瀚罕翰閑閒限韓割轄函含咸啣喊檻涵緘艦銜陷鹹合哈盒蛤閤闔陜亢伉姮嫦巷恒抗杭桁沆港缸肛航�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nD[250] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������行降項亥偕咳垓奚孩害懈楷海瀣蟹解該諧邂駭骸劾核倖幸杏荇行享向嚮珦鄕響餉饗香噓墟虛許憲櫶獻軒歇險驗奕爀赫革俔峴弦懸晛泫炫玄玹現眩睍絃絢縣舷衒見賢鉉顯孑穴血頁嫌俠協夾峽挾浹狹脅脇莢鋏頰亨兄刑型�\".split(\"\");\nfor(j = 0; j != D[250].length; ++j) if(D[250][j].charCodeAt(0) !== 0xFFFD) { e[D[250][j]] = 64000 + j; d[64000 + j] = D[250][j];}\nD[251] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������形泂滎瀅灐炯熒珩瑩荊螢衡逈邢鎣馨兮彗惠慧暳蕙蹊醯鞋乎互呼壕壺好岵弧戶扈昊晧毫浩淏湖滸澔濠濩灝狐琥瑚瓠皓祜糊縞胡芦葫蒿虎號蝴護豪鎬頀顥惑或酷婚昏混渾琿魂忽惚笏哄弘汞泓洪烘紅虹訌鴻化和嬅樺火畵�\".split(\"\");\nfor(j = 0; j != D[251].length; ++j) if(D[251][j].charCodeAt(0) !== 0xFFFD) { e[D[251][j]] = 64256 + j; d[64256 + j] = D[251][j];}\nD[252] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������禍禾花華話譁貨靴廓擴攫確碻穫丸喚奐宦幻患換歡晥桓渙煥環紈還驩鰥活滑猾豁闊凰幌徨恍惶愰慌晃晄榥況湟滉潢煌璜皇篁簧荒蝗遑隍黃匯回廻徊恢悔懷晦會檜淮澮灰獪繪膾茴蛔誨賄劃獲宖橫鐄哮嚆孝效斅曉梟涍淆�\".split(\"\");\nfor(j = 0; j != D[252].length; ++j) if(D[252][j].charCodeAt(0) !== 0xFFFD) { e[D[252][j]] = 64512 + j; d[64512 + j] = D[252][j];}\nD[253] = \"�����������������������������������������������������������������������������������������������������������������������������������������������������������������爻肴酵驍侯候厚后吼喉嗅帿後朽煦珝逅勛勳塤壎焄熏燻薰訓暈薨喧暄煊萱卉喙毁彙徽揮暉煇諱輝麾休携烋畦虧恤譎鷸兇凶匈洶胸黑昕欣炘痕吃屹紇訖欠欽歆吸恰洽翕興僖凞喜噫囍姬嬉希憙憘戱晞曦熙熹熺犧禧稀羲詰�\".split(\"\");\nfor(j = 0; j != D[253].length; ++j) if(D[253][j].charCodeAt(0) !== 0xFFFD) { e[D[253][j]] = 64768 + j; d[64768 + j] = D[253][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[950] = (function(){ var d = [], e = {}, D = [], j;\nD[0] = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~��������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[0].length; ++j) if(D[0][j].charCodeAt(0) !== 0xFFFD) { e[D[0][j]] = 0 + j; d[0 + j] = D[0][j];}\nD[161] = \"���������������������������������������������������������������� ,、。.‧;:?!︰…‥﹐﹑﹒·﹔﹕﹖﹗|–︱—︳╴︴﹏()︵︶{}︷︸〔〕︹︺【】︻︼《》︽︾〈〉︿﹀「」﹁﹂『』﹃﹄﹙﹚����������������������������������﹛﹜﹝﹞‘’“”〝〞‵′#&*※§〃○●△▲◎☆★◇◆□■▽▼㊣℅¯ ̄_ˍ﹉﹊﹍﹎﹋﹌﹟﹠﹡+-×÷±√<>=≦≧≠∞≒≡﹢﹣﹤﹥﹦~∩∪⊥∠∟⊿㏒㏑∫∮∵∴♀♂⊕⊙↑↓←→↖↗↙↘∥∣/�\".split(\"\");\nfor(j = 0; j != D[161].length; ++j) if(D[161][j].charCodeAt(0) !== 0xFFFD) { e[D[161][j]] = 41216 + j; d[41216 + j] = D[161][j];}\nD[162] = \"����������������������������������������������������������������\∕﹨$¥〒¢£%@℃℉﹩﹪﹫㏕㎜㎝㎞㏎㎡㎎㎏㏄°兙兛兞兝兡兣嗧瓩糎▁▂▃▄▅▆▇█▏▎▍▌▋▊▉┼┴┬┤├▔─│▕┌┐└┘╭����������������������������������╮╰╯═╞╪╡◢◣◥◤╱╲╳0123456789ⅠⅡⅢⅣⅤⅥⅦⅧⅨⅩ〡〢〣〤〥〦〧〨〩十卄卅ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuv�\".split(\"\");\nfor(j = 0; j != D[162].length; ++j) if(D[162][j].charCodeAt(0) !== 0xFFFD) { e[D[162][j]] = 41472 + j; d[41472 + j] = D[162][j];}\nD[163] = \"����������������������������������������������������������������wxyzΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡΣΤΥΦΧΨΩαβγδεζηθικλμνξοπρστυφχψωㄅㄆㄇㄈㄉㄊㄋㄌㄍㄎㄏ����������������������������������ㄐㄑㄒㄓㄔㄕㄖㄗㄘㄙㄚㄛㄜㄝㄞㄟㄠㄡㄢㄣㄤㄥㄦㄧㄨㄩ˙ˉˊˇˋ���������������������������������€������������������������������\".split(\"\");\nfor(j = 0; j != D[163].length; ++j) if(D[163][j].charCodeAt(0) !== 0xFFFD) { e[D[163][j]] = 41728 + j; d[41728 + j] = D[163][j];}\nD[164] = \"����������������������������������������������������������������一乙丁七乃九了二人儿入八几刀刁力匕十卜又三下丈上丫丸凡久么也乞于亡兀刃勺千叉口土士夕大女子孑孓寸小尢尸山川工己已巳巾干廾弋弓才����������������������������������丑丐不中丰丹之尹予云井互五亢仁什仃仆仇仍今介仄元允內六兮公冗凶分切刈勻勾勿化匹午升卅卞厄友及反壬天夫太夭孔少尤尺屯巴幻廿弔引心戈戶手扎支文斗斤方日曰月木欠止歹毋比毛氏水火爪父爻片牙牛犬王丙�\".split(\"\");\nfor(j = 0; j != D[164].length; ++j) if(D[164][j].charCodeAt(0) !== 0xFFFD) { e[D[164][j]] = 41984 + j; d[41984 + j] = D[164][j];}\nD[165] = \"����������������������������������������������������������������世丕且丘主乍乏乎以付仔仕他仗代令仙仞充兄冉冊冬凹出凸刊加功包匆北匝仟半卉卡占卯卮去可古右召叮叩叨叼司叵叫另只史叱台句叭叻四囚外����������������������������������央失奴奶孕它尼巨巧左市布平幼弁弘弗必戊打扔扒扑斥旦朮本未末札正母民氐永汁汀氾犯玄玉瓜瓦甘生用甩田由甲申疋白皮皿目矛矢石示禾穴立丞丟乒乓乩亙交亦亥仿伉伙伊伕伍伐休伏仲件任仰仳份企伋光兇兆先全�\".split(\"\");\nfor(j = 0; j != D[165].length; ++j) if(D[165][j].charCodeAt(0) !== 0xFFFD) { e[D[165][j]] = 42240 + j; d[42240 + j] = D[165][j];}\nD[166] = \"����������������������������������������������������������������共再冰列刑划刎刖劣匈匡匠印危吉吏同吊吐吁吋各向名合吃后吆吒因回囝圳地在圭圬圯圩夙多夷夸妄奸妃好她如妁字存宇守宅安寺尖屹州帆并年����������������������������������式弛忙忖戎戌戍成扣扛托收早旨旬旭曲曳有朽朴朱朵次此死氖汝汗汙江池汐汕污汛汍汎灰牟牝百竹米糸缶羊羽老考而耒耳聿肉肋肌臣自至臼舌舛舟艮色艾虫血行衣西阡串亨位住佇佗佞伴佛何估佐佑伽伺伸佃佔似但佣�\".split(\"\");\nfor(j = 0; j != D[166].length; ++j) if(D[166][j].charCodeAt(0) !== 0xFFFD) { e[D[166][j]] = 42496 + j; d[42496 + j] = D[166][j];}\nD[167] = \"����������������������������������������������������������������作你伯低伶余佝佈佚兌克免兵冶冷別判利刪刨劫助努劬匣即卵吝吭吞吾否呎吧呆呃吳呈呂君吩告吹吻吸吮吵吶吠吼呀吱含吟听囪困囤囫坊坑址坍����������������������������������均坎圾坐坏圻壯夾妝妒妨妞妣妙妖妍妤妓妊妥孝孜孚孛完宋宏尬局屁尿尾岐岑岔岌巫希序庇床廷弄弟彤形彷役忘忌志忍忱快忸忪戒我抄抗抖技扶抉扭把扼找批扳抒扯折扮投抓抑抆改攻攸旱更束李杏材村杜杖杞杉杆杠�\".split(\"\");\nfor(j = 0; j != D[167].length; ++j) if(D[167][j].charCodeAt(0) !== 0xFFFD) { e[D[167][j]] = 42752 + j; d[42752 + j] = D[167][j];}\nD[168] = \"����������������������������������������������������������������杓杗步每求汞沙沁沈沉沅沛汪決沐汰沌汨沖沒汽沃汲汾汴沆汶沍沔沘沂灶灼災灸牢牡牠狄狂玖甬甫男甸皂盯矣私秀禿究系罕肖肓肝肘肛肚育良芒����������������������������������芋芍見角言谷豆豕貝赤走足身車辛辰迂迆迅迄巡邑邢邪邦那酉釆里防阮阱阪阬並乖乳事些亞享京佯依侍佳使佬供例來侃佰併侈佩佻侖佾侏侑佺兔兒兕兩具其典冽函刻券刷刺到刮制剁劾劻卒協卓卑卦卷卸卹取叔受味呵�\".split(\"\");\nfor(j = 0; j != D[168].length; ++j) if(D[168][j].charCodeAt(0) !== 0xFFFD) { e[D[168][j]] = 43008 + j; d[43008 + j] = D[168][j];}\nD[169] = \"����������������������������������������������������������������咖呸咕咀呻呷咄咒咆呼咐呱呶和咚呢周咋命咎固垃坷坪坩坡坦坤坼夜奉奇奈奄奔妾妻委妹妮姑姆姐姍始姓姊妯妳姒姅孟孤季宗定官宜宙宛尚屈居����������������������������������屆岷岡岸岩岫岱岳帘帚帖帕帛帑幸庚店府底庖延弦弧弩往征彿彼忝忠忽念忿怏怔怯怵怖怪怕怡性怩怫怛或戕房戾所承拉拌拄抿拂抹拒招披拓拔拋拈抨抽押拐拙拇拍抵拚抱拘拖拗拆抬拎放斧於旺昔易昌昆昂明昀昏昕昊�\".split(\"\");\nfor(j = 0; j != D[169].length; ++j) if(D[169][j].charCodeAt(0) !== 0xFFFD) { e[D[169][j]] = 43264 + j; d[43264 + j] = D[169][j];}\nD[170] = \"����������������������������������������������������������������昇服朋杭枋枕東果杳杷枇枝林杯杰板枉松析杵枚枓杼杪杲欣武歧歿氓氛泣注泳沱泌泥河沽沾沼波沫法泓沸泄油況沮泗泅泱沿治泡泛泊沬泯泜泖泠����������������������������������炕炎炒炊炙爬爭爸版牧物狀狎狙狗狐玩玨玟玫玥甽疝疙疚的盂盲直知矽社祀祁秉秈空穹竺糾罔羌羋者肺肥肢肱股肫肩肴肪肯臥臾舍芳芝芙芭芽芟芹花芬芥芯芸芣芰芾芷虎虱初表軋迎返近邵邸邱邶采金長門阜陀阿阻附�\".split(\"\");\nfor(j = 0; j != D[170].length; ++j) if(D[170][j].charCodeAt(0) !== 0xFFFD) { e[D[170][j]] = 43520 + j; d[43520 + j] = D[170][j];}\nD[171] = \"����������������������������������������������������������������陂隹雨青非亟亭亮信侵侯便俠俑俏保促侶俘俟俊俗侮俐俄係俚俎俞侷兗冒冑冠剎剃削前剌剋則勇勉勃勁匍南卻厚叛咬哀咨哎哉咸咦咳哇哂咽咪品����������������������������������哄哈咯咫咱咻咩咧咿囿垂型垠垣垢城垮垓奕契奏奎奐姜姘姿姣姨娃姥姪姚姦威姻孩宣宦室客宥封屎屏屍屋峙峒巷帝帥帟幽庠度建弈弭彥很待徊律徇後徉怒思怠急怎怨恍恰恨恢恆恃恬恫恪恤扁拜挖按拼拭持拮拽指拱拷�\".split(\"\");\nfor(j = 0; j != D[171].length; ++j) if(D[171][j].charCodeAt(0) !== 0xFFFD) { e[D[171][j]] = 43776 + j; d[43776 + j] = D[171][j];}\nD[172] = \"����������������������������������������������������������������拯括拾拴挑挂政故斫施既春昭映昧是星昨昱昤曷柿染柱柔某柬架枯柵柩柯柄柑枴柚查枸柏柞柳枰柙柢柝柒歪殃殆段毒毗氟泉洋洲洪流津洌洱洞洗����������������������������������活洽派洶洛泵洹洧洸洩洮洵洎洫炫為炳炬炯炭炸炮炤爰牲牯牴狩狠狡玷珊玻玲珍珀玳甚甭畏界畎畋疫疤疥疢疣癸皆皇皈盈盆盃盅省盹相眉看盾盼眇矜砂研砌砍祆祉祈祇禹禺科秒秋穿突竿竽籽紂紅紀紉紇約紆缸美羿耄�\".split(\"\");\nfor(j = 0; j != D[172].length; ++j) if(D[172][j].charCodeAt(0) !== 0xFFFD) { e[D[172][j]] = 44032 + j; d[44032 + j] = D[172][j];}\nD[173] = \"����������������������������������������������������������������耐耍耑耶胖胥胚胃胄背胡胛胎胞胤胝致舢苧范茅苣苛苦茄若茂茉苒苗英茁苜苔苑苞苓苟苯茆虐虹虻虺衍衫要觔計訂訃貞負赴赳趴軍軌述迦迢迪迥����������������������������������迭迫迤迨郊郎郁郃酋酊重閂限陋陌降面革韋韭音頁風飛食首香乘亳倌倍倣俯倦倥俸倩倖倆值借倚倒們俺倀倔倨俱倡個候倘俳修倭倪俾倫倉兼冤冥冢凍凌准凋剖剜剔剛剝匪卿原厝叟哨唐唁唷哼哥哲唆哺唔哩哭員唉哮哪�\".split(\"\");\nfor(j = 0; j != D[173].length; ++j) if(D[173][j].charCodeAt(0) !== 0xFFFD) { e[D[173][j]] = 44288 + j; d[44288 + j] = D[173][j];}\nD[174] = \"����������������������������������������������������������������哦唧唇哽唏圃圄埂埔埋埃堉夏套奘奚娑娘娜娟娛娓姬娠娣娩娥娌娉孫屘宰害家宴宮宵容宸射屑展屐峭峽峻峪峨峰島崁峴差席師庫庭座弱徒徑徐恙����������������������������������恣恥恐恕恭恩息悄悟悚悍悔悌悅悖扇拳挈拿捎挾振捕捂捆捏捉挺捐挽挪挫挨捍捌效敉料旁旅時晉晏晃晒晌晅晁書朔朕朗校核案框桓根桂桔栩梳栗桌桑栽柴桐桀格桃株桅栓栘桁殊殉殷氣氧氨氦氤泰浪涕消涇浦浸海浙涓�\".split(\"\");\nfor(j = 0; j != D[174].length; ++j) if(D[174][j].charCodeAt(0) !== 0xFFFD) { e[D[174][j]] = 44544 + j; d[44544 + j] = D[174][j];}\nD[175] = \"����������������������������������������������������������������浬涉浮浚浴浩涌涊浹涅浥涔烊烘烤烙烈烏爹特狼狹狽狸狷玆班琉珮珠珪珞畔畝畜畚留疾病症疲疳疽疼疹痂疸皋皰益盍盎眩真眠眨矩砰砧砸砝破砷����������������������������������砥砭砠砟砲祕祐祠祟祖神祝祗祚秤秣秧租秦秩秘窄窈站笆笑粉紡紗紋紊素索純紐紕級紜納紙紛缺罟羔翅翁耆耘耕耙耗耽耿胱脂胰脅胭胴脆胸胳脈能脊胼胯臭臬舀舐航舫舨般芻茫荒荔荊茸荐草茵茴荏茲茹茶茗荀茱茨荃�\".split(\"\");\nfor(j = 0; j != D[175].length; ++j) if(D[175][j].charCodeAt(0) !== 0xFFFD) { e[D[175][j]] = 44800 + j; d[44800 + j] = D[175][j];}\nD[176] = \"����������������������������������������������������������������虔蚊蚪蚓蚤蚩蚌蚣蚜衰衷袁袂衽衹記訐討訌訕訊託訓訖訏訑豈豺豹財貢起躬軒軔軏辱送逆迷退迺迴逃追逅迸邕郡郝郢酒配酌釘針釗釜釙閃院陣陡����������������������������������陛陝除陘陞隻飢馬骨高鬥鬲鬼乾偺偽停假偃偌做偉健偶偎偕偵側偷偏倏偯偭兜冕凰剪副勒務勘動匐匏匙匿區匾參曼商啪啦啄啞啡啃啊唱啖問啕唯啤唸售啜唬啣唳啁啗圈國圉域堅堊堆埠埤基堂堵執培夠奢娶婁婉婦婪婀�\".split(\"\");\nfor(j = 0; j != D[176].length; ++j) if(D[176][j].charCodeAt(0) !== 0xFFFD) { e[D[176][j]] = 45056 + j; d[45056 + j] = D[176][j];}\nD[177] = \"����������������������������������������������������������������娼婢婚婆婊孰寇寅寄寂宿密尉專將屠屜屝崇崆崎崛崖崢崑崩崔崙崤崧崗巢常帶帳帷康庸庶庵庾張強彗彬彩彫得徙從徘御徠徜恿患悉悠您惋悴惦悽����������������������������������情悻悵惜悼惘惕惆惟悸惚惇戚戛扈掠控捲掖探接捷捧掘措捱掩掉掃掛捫推掄授掙採掬排掏掀捻捩捨捺敝敖救教敗啟敏敘敕敔斜斛斬族旋旌旎晝晚晤晨晦晞曹勗望梁梯梢梓梵桿桶梱梧梗械梃棄梭梆梅梔條梨梟梡梂欲殺�\".split(\"\");\nfor(j = 0; j != D[177].length; ++j) if(D[177][j].charCodeAt(0) !== 0xFFFD) { e[D[177][j]] = 45312 + j; d[45312 + j] = D[177][j];}\nD[178] = \"����������������������������������������������������������������毫毬氫涎涼淳淙液淡淌淤添淺清淇淋涯淑涮淞淹涸混淵淅淒渚涵淚淫淘淪深淮淨淆淄涪淬涿淦烹焉焊烽烯爽牽犁猜猛猖猓猙率琅琊球理現琍瓠瓶����������������������������������瓷甜產略畦畢異疏痔痕疵痊痍皎盔盒盛眷眾眼眶眸眺硫硃硎祥票祭移窒窕笠笨笛第符笙笞笮粒粗粕絆絃統紮紹紼絀細紳組累終紲紱缽羞羚翌翎習耜聊聆脯脖脣脫脩脰脤舂舵舷舶船莎莞莘荸莢莖莽莫莒莊莓莉莠荷荻荼�\".split(\"\");\nfor(j = 0; j != D[178].length; ++j) if(D[178][j].charCodeAt(0) !== 0xFFFD) { e[D[178][j]] = 45568 + j; d[45568 + j] = D[178][j];}\nD[179] = \"����������������������������������������������������������������莆莧處彪蛇蛀蚶蛄蚵蛆蛋蚱蚯蛉術袞袈被袒袖袍袋覓規訪訝訣訥許設訟訛訢豉豚販責貫貨貪貧赧赦趾趺軛軟這逍通逗連速逝逐逕逞造透逢逖逛途����������������������������������部郭都酗野釵釦釣釧釭釩閉陪陵陳陸陰陴陶陷陬雀雪雩章竟頂頃魚鳥鹵鹿麥麻傢傍傅備傑傀傖傘傚最凱割剴創剩勞勝勛博厥啻喀喧啼喊喝喘喂喜喪喔喇喋喃喳單喟唾喲喚喻喬喱啾喉喫喙圍堯堪場堤堰報堡堝堠壹壺奠�\".split(\"\");\nfor(j = 0; j != D[179].length; ++j) if(D[179][j].charCodeAt(0) !== 0xFFFD) { e[D[179][j]] = 45824 + j; d[45824 + j] = D[179][j];}\nD[180] = \"����������������������������������������������������������������婷媚婿媒媛媧孳孱寒富寓寐尊尋就嵌嵐崴嵇巽幅帽幀幃幾廊廁廂廄弼彭復循徨惑惡悲悶惠愜愣惺愕惰惻惴慨惱愎惶愉愀愒戟扉掣掌描揀揩揉揆揍����������������������������������插揣提握揖揭揮捶援揪換摒揚揹敞敦敢散斑斐斯普晰晴晶景暑智晾晷曾替期朝棺棕棠棘棗椅棟棵森棧棹棒棲棣棋棍植椒椎棉棚楮棻款欺欽殘殖殼毯氮氯氬港游湔渡渲湧湊渠渥渣減湛湘渤湖湮渭渦湯渴湍渺測湃渝渾滋�\".split(\"\");\nfor(j = 0; j != D[180].length; ++j) if(D[180][j].charCodeAt(0) !== 0xFFFD) { e[D[180][j]] = 46080 + j; d[46080 + j] = D[180][j];}\nD[181] = \"����������������������������������������������������������������溉渙湎湣湄湲湩湟焙焚焦焰無然煮焜牌犄犀猶猥猴猩琺琪琳琢琥琵琶琴琯琛琦琨甥甦畫番痢痛痣痙痘痞痠登發皖皓皴盜睏短硝硬硯稍稈程稅稀窘����������������������������������窗窖童竣等策筆筐筒答筍筋筏筑粟粥絞結絨絕紫絮絲絡給絢絰絳善翔翕耋聒肅腕腔腋腑腎脹腆脾腌腓腴舒舜菩萃菸萍菠菅萋菁華菱菴著萊菰萌菌菽菲菊萸萎萄菜萇菔菟虛蛟蛙蛭蛔蛛蛤蛐蛞街裁裂袱覃視註詠評詞証詁�\".split(\"\");\nfor(j = 0; j != D[181].length; ++j) if(D[181][j].charCodeAt(0) !== 0xFFFD) { e[D[181][j]] = 46336 + j; d[46336 + j] = D[181][j];}\nD[182] = \"����������������������������������������������������������������詔詛詐詆訴診訶詖象貂貯貼貳貽賁費賀貴買貶貿貸越超趁跎距跋跚跑跌跛跆軻軸軼辜逮逵週逸進逶鄂郵鄉郾酣酥量鈔鈕鈣鈉鈞鈍鈐鈇鈑閔閏開閑����������������������������������間閒閎隊階隋陽隅隆隍陲隄雁雅雄集雇雯雲韌項順須飧飪飯飩飲飭馮馭黃黍黑亂傭債傲傳僅傾催傷傻傯僇剿剷剽募勦勤勢勣匯嗟嗨嗓嗦嗎嗜嗇嗑嗣嗤嗯嗚嗡嗅嗆嗥嗉園圓塞塑塘塗塚塔填塌塭塊塢塒塋奧嫁嫉嫌媾媽媼�\".split(\"\");\nfor(j = 0; j != D[182].length; ++j) if(D[182][j].charCodeAt(0) !== 0xFFFD) { e[D[182][j]] = 46592 + j; d[46592 + j] = D[182][j];}\nD[183] = \"����������������������������������������������������������������媳嫂媲嵩嵯幌幹廉廈弒彙徬微愚意慈感想愛惹愁愈慎慌慄慍愾愴愧愍愆愷戡戢搓搾搞搪搭搽搬搏搜搔損搶搖搗搆敬斟新暗暉暇暈暖暄暘暍會榔業����������������������������������楚楷楠楔極椰概楊楨楫楞楓楹榆楝楣楛歇歲毀殿毓毽溢溯滓溶滂源溝滇滅溥溘溼溺溫滑準溜滄滔溪溧溴煎煙煩煤煉照煜煬煦煌煥煞煆煨煖爺牒猷獅猿猾瑯瑚瑕瑟瑞瑁琿瑙瑛瑜當畸瘀痰瘁痲痱痺痿痴痳盞盟睛睫睦睞督�\".split(\"\");\nfor(j = 0; j != D[183].length; ++j) if(D[183][j].charCodeAt(0) !== 0xFFFD) { e[D[183][j]] = 46848 + j; d[46848 + j] = D[183][j];}\nD[184] = \"����������������������������������������������������������������睹睪睬睜睥睨睢矮碎碰碗碘碌碉硼碑碓硿祺祿禁萬禽稜稚稠稔稟稞窟窠筷節筠筮筧粱粳粵經絹綑綁綏絛置罩罪署義羨群聖聘肆肄腱腰腸腥腮腳腫����������������������������������腹腺腦舅艇蒂葷落萱葵葦葫葉葬葛萼萵葡董葩葭葆虞虜號蛹蜓蜈蜇蜀蛾蛻蜂蜃蜆蜊衙裟裔裙補裘裝裡裊裕裒覜解詫該詳試詩詰誇詼詣誠話誅詭詢詮詬詹詻訾詨豢貊貉賊資賈賄貲賃賂賅跡跟跨路跳跺跪跤跦躲較載軾輊�\".split(\"\");\nfor(j = 0; j != D[184].length; ++j) if(D[184][j].charCodeAt(0) !== 0xFFFD) { e[D[184][j]] = 47104 + j; d[47104 + j] = D[184][j];}\nD[185] = \"����������������������������������������������������������������辟農運遊道遂達逼違遐遇遏過遍遑逾遁鄒鄗酬酪酩釉鈷鉗鈸鈽鉀鈾鉛鉋鉤鉑鈴鉉鉍鉅鈹鈿鉚閘隘隔隕雍雋雉雊雷電雹零靖靴靶預頑頓頊頒頌飼飴����������������������������������飽飾馳馱馴髡鳩麂鼎鼓鼠僧僮僥僖僭僚僕像僑僱僎僩兢凳劃劂匱厭嗾嘀嘛嘗嗽嘔嘆嘉嘍嘎嗷嘖嘟嘈嘐嗶團圖塵塾境墓墊塹墅塽壽夥夢夤奪奩嫡嫦嫩嫗嫖嫘嫣孵寞寧寡寥實寨寢寤察對屢嶄嶇幛幣幕幗幔廓廖弊彆彰徹慇�\".split(\"\");\nfor(j = 0; j != D[185].length; ++j) if(D[185][j].charCodeAt(0) !== 0xFFFD) { e[D[185][j]] = 47360 + j; d[47360 + j] = D[185][j];}\nD[186] = \"����������������������������������������������������������������愿態慷慢慣慟慚慘慵截撇摘摔撤摸摟摺摑摧搴摭摻敲斡旗旖暢暨暝榜榨榕槁榮槓構榛榷榻榫榴槐槍榭槌榦槃榣歉歌氳漳演滾漓滴漩漾漠漬漏漂漢����������������������������������滿滯漆漱漸漲漣漕漫漯澈漪滬漁滲滌滷熔熙煽熊熄熒爾犒犖獄獐瑤瑣瑪瑰瑭甄疑瘧瘍瘋瘉瘓盡監瞄睽睿睡磁碟碧碳碩碣禎福禍種稱窪窩竭端管箕箋筵算箝箔箏箸箇箄粹粽精綻綰綜綽綾綠緊綴網綱綺綢綿綵綸維緒緇綬�\".split(\"\");\nfor(j = 0; j != D[186].length; ++j) if(D[186][j].charCodeAt(0) !== 0xFFFD) { e[D[186][j]] = 47616 + j; d[47616 + j] = D[186][j];}\nD[187] = \"����������������������������������������������������������������罰翠翡翟聞聚肇腐膀膏膈膊腿膂臧臺與舔舞艋蓉蒿蓆蓄蒙蒞蒲蒜蓋蒸蓀蓓蒐蒼蓑蓊蜿蜜蜻蜢蜥蜴蜘蝕蜷蜩裳褂裴裹裸製裨褚裯誦誌語誣認誡誓誤����������������������������������說誥誨誘誑誚誧豪貍貌賓賑賒赫趙趕跼輔輒輕輓辣遠遘遜遣遙遞遢遝遛鄙鄘鄞酵酸酷酴鉸銀銅銘銖鉻銓銜銨鉼銑閡閨閩閣閥閤隙障際雌雒需靼鞅韶頗領颯颱餃餅餌餉駁骯骰髦魁魂鳴鳶鳳麼鼻齊億儀僻僵價儂儈儉儅凜�\".split(\"\");\nfor(j = 0; j != D[187].length; ++j) if(D[187][j].charCodeAt(0) !== 0xFFFD) { e[D[187][j]] = 47872 + j; d[47872 + j] = D[187][j];}\nD[188] = \"����������������������������������������������������������������劇劈劉劍劊勰厲嘮嘻嘹嘲嘿嘴嘩噓噎噗噴嘶嘯嘰墀墟增墳墜墮墩墦奭嬉嫻嬋嫵嬌嬈寮寬審寫層履嶝嶔幢幟幡廢廚廟廝廣廠彈影德徵慶慧慮慝慕憂����������������������������������慼慰慫慾憧憐憫憎憬憚憤憔憮戮摩摯摹撞撲撈撐撰撥撓撕撩撒撮播撫撚撬撙撢撳敵敷數暮暫暴暱樣樟槨樁樞標槽模樓樊槳樂樅槭樑歐歎殤毅毆漿潼澄潑潦潔澆潭潛潸潮澎潺潰潤澗潘滕潯潠潟熟熬熱熨牖犛獎獗瑩璋璃�\".split(\"\");\nfor(j = 0; j != D[188].length; ++j) if(D[188][j].charCodeAt(0) !== 0xFFFD) { e[D[188][j]] = 48128 + j; d[48128 + j] = D[188][j];}\nD[189] = \"����������������������������������������������������������������瑾璀畿瘠瘩瘟瘤瘦瘡瘢皚皺盤瞎瞇瞌瞑瞋磋磅確磊碾磕碼磐稿稼穀稽稷稻窯窮箭箱範箴篆篇篁箠篌糊締練緯緻緘緬緝編緣線緞緩綞緙緲緹罵罷羯����������������������������������翩耦膛膜膝膠膚膘蔗蔽蔚蓮蔬蔭蔓蔑蔣蔡蔔蓬蔥蓿蔆螂蝴蝶蝠蝦蝸蝨蝙蝗蝌蝓衛衝褐複褒褓褕褊誼諒談諄誕請諸課諉諂調誰論諍誶誹諛豌豎豬賠賞賦賤賬賭賢賣賜質賡赭趟趣踫踐踝踢踏踩踟踡踞躺輝輛輟輩輦輪輜輞�\".split(\"\");\nfor(j = 0; j != D[189].length; ++j) if(D[189][j].charCodeAt(0) !== 0xFFFD) { e[D[189][j]] = 48384 + j; d[48384 + j] = D[189][j];}\nD[190] = \"����������������������������������������������������������������輥適遮遨遭遷鄰鄭鄧鄱醇醉醋醃鋅銻銷鋪銬鋤鋁銳銼鋒鋇鋰銲閭閱霄霆震霉靠鞍鞋鞏頡頫頜颳養餓餒餘駝駐駟駛駑駕駒駙骷髮髯鬧魅魄魷魯鴆鴉����������������������������������鴃麩麾黎墨齒儒儘儔儐儕冀冪凝劑劓勳噙噫噹噩噤噸噪器噥噱噯噬噢噶壁墾壇壅奮嬝嬴學寰導彊憲憑憩憊懍憶憾懊懈戰擅擁擋撻撼據擄擇擂操撿擒擔撾整曆曉暹曄曇暸樽樸樺橙橫橘樹橄橢橡橋橇樵機橈歙歷氅濂澱澡�\".split(\"\");\nfor(j = 0; j != D[190].length; ++j) if(D[190][j].charCodeAt(0) !== 0xFFFD) { e[D[190][j]] = 48640 + j; d[48640 + j] = D[190][j];}\nD[191] = \"����������������������������������������������������������������濃澤濁澧澳激澹澶澦澠澴熾燉燐燒燈燕熹燎燙燜燃燄獨璜璣璘璟璞瓢甌甍瘴瘸瘺盧盥瞠瞞瞟瞥磨磚磬磧禦積穎穆穌穋窺篙簑築篤篛篡篩篦糕糖縊����������������������������������縑縈縛縣縞縝縉縐罹羲翰翱翮耨膳膩膨臻興艘艙蕊蕙蕈蕨蕩蕃蕉蕭蕪蕞螃螟螞螢融衡褪褲褥褫褡親覦諦諺諫諱謀諜諧諮諾謁謂諷諭諳諶諼豫豭貓賴蹄踱踴蹂踹踵輻輯輸輳辨辦遵遴選遲遼遺鄴醒錠錶鋸錳錯錢鋼錫錄錚�\".split(\"\");\nfor(j = 0; j != D[191].length; ++j) if(D[191][j].charCodeAt(0) !== 0xFFFD) { e[D[191][j]] = 48896 + j; d[48896 + j] = D[191][j];}\nD[192] = \"����������������������������������������������������������������錐錦錡錕錮錙閻隧隨險雕霎霑霖霍霓霏靛靜靦鞘頰頸頻頷頭頹頤餐館餞餛餡餚駭駢駱骸骼髻髭鬨鮑鴕鴣鴦鴨鴒鴛默黔龍龜優償儡儲勵嚎嚀嚐嚅嚇����������������������������������嚏壕壓壑壎嬰嬪嬤孺尷屨嶼嶺嶽嶸幫彌徽應懂懇懦懋戲戴擎擊擘擠擰擦擬擱擢擭斂斃曙曖檀檔檄檢檜櫛檣橾檗檐檠歜殮毚氈濘濱濟濠濛濤濫濯澀濬濡濩濕濮濰燧營燮燦燥燭燬燴燠爵牆獰獲璩環璦璨癆療癌盪瞳瞪瞰瞬�\".split(\"\");\nfor(j = 0; j != D[192].length; ++j) if(D[192][j].charCodeAt(0) !== 0xFFFD) { e[D[192][j]] = 49152 + j; d[49152 + j] = D[192][j];}\nD[193] = \"����������������������������������������������������������������瞧瞭矯磷磺磴磯礁禧禪穗窿簇簍篾篷簌篠糠糜糞糢糟糙糝縮績繆縷縲繃縫總縱繅繁縴縹繈縵縿縯罄翳翼聱聲聰聯聳臆臃膺臂臀膿膽臉膾臨舉艱薪����������������������������������薄蕾薜薑薔薯薛薇薨薊虧蟀蟑螳蟒蟆螫螻螺蟈蟋褻褶襄褸褽覬謎謗謙講謊謠謝謄謐豁谿豳賺賽購賸賻趨蹉蹋蹈蹊轄輾轂轅輿避遽還邁邂邀鄹醣醞醜鍍鎂錨鍵鍊鍥鍋錘鍾鍬鍛鍰鍚鍔闊闋闌闈闆隱隸雖霜霞鞠韓顆颶餵騁�\".split(\"\");\nfor(j = 0; j != D[193].length; ++j) if(D[193][j].charCodeAt(0) !== 0xFFFD) { e[D[193][j]] = 49408 + j; d[49408 + j] = D[193][j];}\nD[194] = \"����������������������������������������������������������������駿鮮鮫鮪鮭鴻鴿麋黏點黜黝黛鼾齋叢嚕嚮壙壘嬸彝懣戳擴擲擾攆擺擻擷斷曜朦檳檬櫃檻檸櫂檮檯歟歸殯瀉瀋濾瀆濺瀑瀏燻燼燾燸獷獵璧璿甕癖癘����������������������������������癒瞽瞿瞻瞼礎禮穡穢穠竄竅簫簧簪簞簣簡糧織繕繞繚繡繒繙罈翹翻職聶臍臏舊藏薩藍藐藉薰薺薹薦蟯蟬蟲蟠覆覲觴謨謹謬謫豐贅蹙蹣蹦蹤蹟蹕軀轉轍邇邃邈醫醬釐鎔鎊鎖鎢鎳鎮鎬鎰鎘鎚鎗闔闖闐闕離雜雙雛雞霤鞣鞦�\".split(\"\");\nfor(j = 0; j != D[194].length; ++j) if(D[194][j].charCodeAt(0) !== 0xFFFD) { e[D[194][j]] = 49664 + j; d[49664 + j] = D[194][j];}\nD[195] = \"����������������������������������������������������������������鞭韹額顏題顎顓颺餾餿餽餮馥騎髁鬃鬆魏魎魍鯊鯉鯽鯈鯀鵑鵝鵠黠鼕鼬儳嚥壞壟壢寵龐廬懲懷懶懵攀攏曠曝櫥櫝櫚櫓瀛瀟瀨瀚瀝瀕瀘爆爍牘犢獸����������������������������������獺璽瓊瓣疇疆癟癡矇礙禱穫穩簾簿簸簽簷籀繫繭繹繩繪羅繳羶羹羸臘藩藝藪藕藤藥藷蟻蠅蠍蟹蟾襠襟襖襞譁譜識證譚譎譏譆譙贈贊蹼蹲躇蹶蹬蹺蹴轔轎辭邊邋醱醮鏡鏑鏟鏃鏈鏜鏝鏖鏢鏍鏘鏤鏗鏨關隴難霪霧靡韜韻類�\".split(\"\");\nfor(j = 0; j != D[195].length; ++j) if(D[195][j].charCodeAt(0) !== 0xFFFD) { e[D[195][j]] = 49920 + j; d[49920 + j] = D[195][j];}\nD[196] = \"����������������������������������������������������������������願顛颼饅饉騖騙鬍鯨鯧鯖鯛鶉鵡鵲鵪鵬麒麗麓麴勸嚨嚷嚶嚴嚼壤孀孃孽寶巉懸懺攘攔攙曦朧櫬瀾瀰瀲爐獻瓏癢癥礦礪礬礫竇競籌籃籍糯糰辮繽繼����������������������������������纂罌耀臚艦藻藹蘑藺蘆蘋蘇蘊蠔蠕襤覺觸議譬警譯譟譫贏贍躉躁躅躂醴釋鐘鐃鏽闡霰飄饒饑馨騫騰騷騵鰓鰍鹹麵黨鼯齟齣齡儷儸囁囀囂夔屬巍懼懾攝攜斕曩櫻欄櫺殲灌爛犧瓖瓔癩矓籐纏續羼蘗蘭蘚蠣蠢蠡蠟襪襬覽譴�\".split(\"\");\nfor(j = 0; j != D[196].length; ++j) if(D[196][j].charCodeAt(0) !== 0xFFFD) { e[D[196][j]] = 50176 + j; d[50176 + j] = D[196][j];}\nD[197] = \"����������������������������������������������������������������護譽贓躊躍躋轟辯醺鐮鐳鐵鐺鐸鐲鐫闢霸霹露響顧顥饗驅驃驀騾髏魔魑鰭鰥鶯鶴鷂鶸麝黯鼙齜齦齧儼儻囈囊囉孿巔巒彎懿攤權歡灑灘玀瓤疊癮癬����������������������������������禳籠籟聾聽臟襲襯觼讀贖贗躑躓轡酈鑄鑑鑒霽霾韃韁顫饕驕驍髒鬚鱉鰱鰾鰻鷓鷗鼴齬齪龔囌巖戀攣攫攪曬欐瓚竊籤籣籥纓纖纔臢蘸蘿蠱變邐邏鑣鑠鑤靨顯饜驚驛驗髓體髑鱔鱗鱖鷥麟黴囑壩攬灞癱癲矗罐羈蠶蠹衢讓讒�\".split(\"\");\nfor(j = 0; j != D[197].length; ++j) if(D[197][j].charCodeAt(0) !== 0xFFFD) { e[D[197][j]] = 50432 + j; d[50432 + j] = D[197][j];}\nD[198] = \"����������������������������������������������������������������讖艷贛釀鑪靂靈靄韆顰驟鬢魘鱟鷹鷺鹼鹽鼇齷齲廳欖灣籬籮蠻觀躡釁鑲鑰顱饞髖鬣黌灤矚讚鑷韉驢驥纜讜躪釅鑽鑾鑼鱷鱸黷豔鑿鸚爨驪鬱鸛鸞籲���������������������������������������������������������������������������������������������������������������������������������\".split(\"\");\nfor(j = 0; j != D[198].length; ++j) if(D[198][j].charCodeAt(0) !== 0xFFFD) { e[D[198][j]] = 50688 + j; d[50688 + j] = D[198][j];}\nD[201] = \"����������������������������������������������������������������乂乜凵匚厂万丌乇亍囗兀屮彳丏冇与丮亓仂仉仈冘勼卬厹圠夃夬尐巿旡殳毌气爿丱丼仨仜仩仡仝仚刌匜卌圢圣夗夯宁宄尒尻屴屳帄庀庂忉戉扐氕����������������������������������氶汃氿氻犮犰玊禸肊阞伎优伬仵伔仱伀价伈伝伂伅伢伓伄仴伒冱刓刉刐劦匢匟卍厊吇囡囟圮圪圴夼妀奼妅奻奾奷奿孖尕尥屼屺屻屾巟幵庄异弚彴忕忔忏扜扞扤扡扦扢扙扠扚扥旯旮朾朹朸朻机朿朼朳氘汆汒汜汏汊汔汋�\".split(\"\");\nfor(j = 0; j != D[201].length; ++j) if(D[201][j].charCodeAt(0) !== 0xFFFD) { e[D[201][j]] = 51456 + j; d[51456 + j] = D[201][j];}\nD[202] = \"����������������������������������������������������������������汌灱牞犴犵玎甪癿穵网艸艼芀艽艿虍襾邙邗邘邛邔阢阤阠阣佖伻佢佉体佤伾佧佒佟佁佘伭伳伿佡冏冹刜刞刡劭劮匉卣卲厎厏吰吷吪呔呅吙吜吥吘����������������������������������吽呏呁吨吤呇囮囧囥坁坅坌坉坋坒夆奀妦妘妠妗妎妢妐妏妧妡宎宒尨尪岍岏岈岋岉岒岊岆岓岕巠帊帎庋庉庌庈庍弅弝彸彶忒忑忐忭忨忮忳忡忤忣忺忯忷忻怀忴戺抃抌抎抏抔抇扱扻扺扰抁抈扷扽扲扴攷旰旴旳旲旵杅杇�\".split(\"\");\nfor(j = 0; j != D[202].length; ++j) if(D[202][j].charCodeAt(0) !== 0xFFFD) { e[D[202][j]] = 51712 + j; d[51712 + j] = D[202][j];}\nD[203] = \"����������������������������������������������������������������杙杕杌杈杝杍杚杋毐氙氚汸汧汫沄沋沏汱汯汩沚汭沇沕沜汦汳汥汻沎灴灺牣犿犽狃狆狁犺狅玕玗玓玔玒町甹疔疕皁礽耴肕肙肐肒肜芐芏芅芎芑芓����������������������������������芊芃芄豸迉辿邟邡邥邞邧邠阰阨阯阭丳侘佼侅佽侀侇佶佴侉侄佷佌侗佪侚佹侁佸侐侜侔侞侒侂侕佫佮冞冼冾刵刲刳剆刱劼匊匋匼厒厔咇呿咁咑咂咈呫呺呾呥呬呴呦咍呯呡呠咘呣呧呤囷囹坯坲坭坫坱坰坶垀坵坻坳坴坢�\".split(\"\");\nfor(j = 0; j != D[203].length; ++j) if(D[203][j].charCodeAt(0) !== 0xFFFD) { e[D[203][j]] = 51968 + j; d[51968 + j] = D[203][j];}\nD[204] = \"����������������������������������������������������������������坨坽夌奅妵妺姏姎妲姌姁妶妼姃姖妱妽姀姈妴姇孢孥宓宕屄屇岮岤岠岵岯岨岬岟岣岭岢岪岧岝岥岶岰岦帗帔帙弨弢弣弤彔徂彾彽忞忥怭怦怙怲怋����������������������������������怴怊怗怳怚怞怬怢怍怐怮怓怑怌怉怜戔戽抭抴拑抾抪抶拊抮抳抯抻抩抰抸攽斨斻昉旼昄昒昈旻昃昋昍昅旽昑昐曶朊枅杬枎枒杶杻枘枆构杴枍枌杺枟枑枙枃杽极杸杹枔欥殀歾毞氝沓泬泫泮泙沶泔沭泧沷泐泂沺泃泆泭泲�\".split(\"\");\nfor(j = 0; j != D[204].length; ++j) if(D[204][j].charCodeAt(0) !== 0xFFFD) { e[D[204][j]] = 52224 + j; d[52224 + j] = D[204][j];}\nD[205] = \"����������������������������������������������������������������泒泝沴沊沝沀泞泀洰泍泇沰泹泏泩泑炔炘炅炓炆炄炑炖炂炚炃牪狖狋狘狉狜狒狔狚狌狑玤玡玭玦玢玠玬玝瓝瓨甿畀甾疌疘皯盳盱盰盵矸矼矹矻矺����������������������������������矷祂礿秅穸穻竻籵糽耵肏肮肣肸肵肭舠芠苀芫芚芘芛芵芧芮芼芞芺芴芨芡芩苂芤苃芶芢虰虯虭虮豖迒迋迓迍迖迕迗邲邴邯邳邰阹阽阼阺陃俍俅俓侲俉俋俁俔俜俙侻侳俛俇俖侺俀侹俬剄剉勀勂匽卼厗厖厙厘咺咡咭咥哏�\".split(\"\");\nfor(j = 0; j != D[205].length; ++j) if(D[205][j].charCodeAt(0) !== 0xFFFD) { e[D[205][j]] = 52480 + j; d[52480 + j] = D[205][j];}\nD[206] = \"����������������������������������������������������������������哃茍咷咮哖咶哅哆咠呰咼咢咾呲哞咰垵垞垟垤垌垗垝垛垔垘垏垙垥垚垕壴复奓姡姞姮娀姱姝姺姽姼姶姤姲姷姛姩姳姵姠姾姴姭宨屌峐峘峌峗峋峛����������������������������������峞峚峉峇峊峖峓峔峏峈峆峎峟峸巹帡帢帣帠帤庰庤庢庛庣庥弇弮彖徆怷怹恔恲恞恅恓恇恉恛恌恀恂恟怤恄恘恦恮扂扃拏挍挋拵挎挃拫拹挏挌拸拶挀挓挔拺挕拻拰敁敃斪斿昶昡昲昵昜昦昢昳昫昺昝昴昹昮朏朐柁柲柈枺�\".split(\"\");\nfor(j = 0; j != D[206].length; ++j) if(D[206][j].charCodeAt(0) !== 0xFFFD) { e[D[206][j]] = 52736 + j; d[52736 + j] = D[206][j];}\nD[207] = \"����������������������������������������������������������������柜枻柸柘柀枷柅柫柤柟枵柍枳柷柶柮柣柂枹柎柧柰枲柼柆柭柌枮柦柛柺柉柊柃柪柋欨殂殄殶毖毘毠氠氡洨洴洭洟洼洿洒洊泚洳洄洙洺洚洑洀洝浂����������������������������������洁洘洷洃洏浀洇洠洬洈洢洉洐炷炟炾炱炰炡炴炵炩牁牉牊牬牰牳牮狊狤狨狫狟狪狦狣玅珌珂珈珅玹玶玵玴珫玿珇玾珃珆玸珋瓬瓮甮畇畈疧疪癹盄眈眃眄眅眊盷盻盺矧矨砆砑砒砅砐砏砎砉砃砓祊祌祋祅祄秕种秏秖秎窀�\".split(\"\");\nfor(j = 0; j != D[207].length; ++j) if(D[207][j].charCodeAt(0) !== 0xFFFD) { e[D[207][j]] = 52992 + j; d[52992 + j] = D[207][j];}\nD[208] = \"����������������������������������������������������������������穾竑笀笁籺籸籹籿粀粁紃紈紁罘羑羍羾耇耎耏耔耷胘胇胠胑胈胂胐胅胣胙胜胊胕胉胏胗胦胍臿舡芔苙苾苹茇苨茀苕茺苫苖苴苬苡苲苵茌苻苶苰苪����������������������������������苤苠苺苳苭虷虴虼虳衁衎衧衪衩觓訄訇赲迣迡迮迠郱邽邿郕郅邾郇郋郈釔釓陔陏陑陓陊陎倞倅倇倓倢倰倛俵俴倳倷倬俶俷倗倜倠倧倵倯倱倎党冔冓凊凄凅凈凎剡剚剒剞剟剕剢勍匎厞唦哢唗唒哧哳哤唚哿唄唈哫唑唅哱�\".split(\"\");\nfor(j = 0; j != D[208].length; ++j) if(D[208][j].charCodeAt(0) !== 0xFFFD) { e[D[208][j]] = 53248 + j; d[53248 + j] = D[208][j];}\nD[209] = \"����������������������������������������������������������������唊哻哷哸哠唎唃唋圁圂埌堲埕埒垺埆垽垼垸垶垿埇埐垹埁夎奊娙娖娭娮娕娏娗娊娞娳孬宧宭宬尃屖屔峬峿峮峱峷崀峹帩帨庨庮庪庬弳弰彧恝恚恧����������������������������������恁悢悈悀悒悁悝悃悕悛悗悇悜悎戙扆拲挐捖挬捄捅挶捃揤挹捋捊挼挩捁挴捘捔捙挭捇挳捚捑挸捗捀捈敊敆旆旃旄旂晊晟晇晑朒朓栟栚桉栲栳栻桋桏栖栱栜栵栫栭栯桎桄栴栝栒栔栦栨栮桍栺栥栠欬欯欭欱欴歭肂殈毦毤�\".split(\"\");\nfor(j = 0; j != D[209].length; ++j) if(D[209][j].charCodeAt(0) !== 0xFFFD) { e[D[209][j]] = 53504 + j; d[53504 + j] = D[209][j];}\nD[210] = \"����������������������������������������������������������������毨毣毢毧氥浺浣浤浶洍浡涒浘浢浭浯涑涍淯浿涆浞浧浠涗浰浼浟涂涘洯浨涋浾涀涄洖涃浻浽浵涐烜烓烑烝烋缹烢烗烒烞烠烔烍烅烆烇烚烎烡牂牸����������������������������������牷牶猀狺狴狾狶狳狻猁珓珙珥珖玼珧珣珩珜珒珛珔珝珚珗珘珨瓞瓟瓴瓵甡畛畟疰痁疻痄痀疿疶疺皊盉眝眛眐眓眒眣眑眕眙眚眢眧砣砬砢砵砯砨砮砫砡砩砳砪砱祔祛祏祜祓祒祑秫秬秠秮秭秪秜秞秝窆窉窅窋窌窊窇竘笐�\".split(\"\");\nfor(j = 0; j != D[210].length; ++j) if(D[210][j].charCodeAt(0) !== 0xFFFD) { e[D[210][j]] = 53760 + j; d[53760 + j] = D[210][j];}\nD[211] = \"����������������������������������������������������������������笄笓笅笏笈笊笎笉笒粄粑粊粌粈粍粅紞紝紑紎紘紖紓紟紒紏紌罜罡罞罠罝罛羖羒翃翂翀耖耾耹胺胲胹胵脁胻脀舁舯舥茳茭荄茙荑茥荖茿荁茦茜茢����������������������������������荂荎茛茪茈茼荍茖茤茠茷茯茩荇荅荌荓茞茬荋茧荈虓虒蚢蚨蚖蚍蚑蚞蚇蚗蚆蚋蚚蚅蚥蚙蚡蚧蚕蚘蚎蚝蚐蚔衃衄衭衵衶衲袀衱衿衯袃衾衴衼訒豇豗豻貤貣赶赸趵趷趶軑軓迾迵适迿迻逄迼迶郖郠郙郚郣郟郥郘郛郗郜郤酐�\".split(\"\");\nfor(j = 0; j != D[211].length; ++j) if(D[211][j].charCodeAt(0) !== 0xFFFD) { e[D[211][j]] = 54016 + j; d[54016 + j] = D[211][j];}\nD[212] = \"����������������������������������������������������������������酎酏釕釢釚陜陟隼飣髟鬯乿偰偪偡偞偠偓偋偝偲偈偍偁偛偊偢倕偅偟偩偫偣偤偆偀偮偳偗偑凐剫剭剬剮勖勓匭厜啵啶唼啍啐唴唪啑啢唶唵唰啒啅����������������������������������唌唲啥啎唹啈唭唻啀啋圊圇埻堔埢埶埜埴堀埭埽堈埸堋埳埏堇埮埣埲埥埬埡堎埼堐埧堁堌埱埩埰堍堄奜婠婘婕婧婞娸娵婭婐婟婥婬婓婤婗婃婝婒婄婛婈媎娾婍娹婌婰婩婇婑婖婂婜孲孮寁寀屙崞崋崝崚崠崌崨崍崦崥崏�\".split(\"\");\nfor(j = 0; j != D[212].length; ++j) if(D[212][j].charCodeAt(0) !== 0xFFFD) { e[D[212][j]] = 54272 + j; d[54272 + j] = D[212][j];}\nD[213] = \"����������������������������������������������������������������崰崒崣崟崮帾帴庱庴庹庲庳弶弸徛徖徟悊悐悆悾悰悺惓惔惏惤惙惝惈悱惛悷惊悿惃惍惀挲捥掊掂捽掽掞掭掝掗掫掎捯掇掐据掯捵掜捭掮捼掤挻掟����������������������������������捸掅掁掑掍捰敓旍晥晡晛晙晜晢朘桹梇梐梜桭桮梮梫楖桯梣梬梩桵桴梲梏桷梒桼桫桲梪梀桱桾梛梖梋梠梉梤桸桻梑梌梊桽欶欳欷欸殑殏殍殎殌氪淀涫涴涳湴涬淩淢涷淶淔渀淈淠淟淖涾淥淜淝淛淴淊涽淭淰涺淕淂淏淉�\".split(\"\");\nfor(j = 0; j != D[213].length; ++j) if(D[213][j].charCodeAt(0) !== 0xFFFD) { e[D[213][j]] = 54528 + j; d[54528 + j] = D[213][j];}\nD[214] = \"����������������������������������������������������������������淐淲淓淽淗淍淣涻烺焍烷焗烴焌烰焄烳焐烼烿焆焓焀烸烶焋焂焎牾牻牼牿猝猗猇猑猘猊猈狿猏猞玈珶珸珵琄琁珽琇琀珺珼珿琌琋珴琈畤畣痎痒痏����������������������������������痋痌痑痐皏皉盓眹眯眭眱眲眴眳眽眥眻眵硈硒硉硍硊硌砦硅硐祤祧祩祪祣祫祡离秺秸秶秷窏窔窐笵筇笴笥笰笢笤笳笘笪笝笱笫笭笯笲笸笚笣粔粘粖粣紵紽紸紶紺絅紬紩絁絇紾紿絊紻紨罣羕羜羝羛翊翋翍翐翑翇翏翉耟�\".split(\"\");\nfor(j = 0; j != D[214].length; ++j) if(D[214][j].charCodeAt(0) !== 0xFFFD) { e[D[214][j]] = 54784 + j; d[54784 + j] = D[214][j];}\nD[215] = \"����������������������������������������������������������������耞耛聇聃聈脘脥脙脛脭脟脬脞脡脕脧脝脢舑舸舳舺舴舲艴莐莣莨莍荺荳莤荴莏莁莕莙荵莔莩荽莃莌莝莛莪莋荾莥莯莈莗莰荿莦莇莮荶莚虙虖蚿蚷����������������������������������蛂蛁蛅蚺蚰蛈蚹蚳蚸蛌蚴蚻蚼蛃蚽蚾衒袉袕袨袢袪袚袑袡袟袘袧袙袛袗袤袬袌袓袎覂觖觙觕訰訧訬訞谹谻豜豝豽貥赽赻赹趼跂趹趿跁軘軞軝軜軗軠軡逤逋逑逜逌逡郯郪郰郴郲郳郔郫郬郩酖酘酚酓酕釬釴釱釳釸釤釹釪�\".split(\"\");\nfor(j = 0; j != D[215].length; ++j) if(D[215][j].charCodeAt(0) !== 0xFFFD) { e[D[215][j]] = 55040 + j; d[55040 + j] = D[215][j];}\nD[216] = \"����������������������������������������������������������������釫釷釨釮镺閆閈陼陭陫陱陯隿靪頄飥馗傛傕傔傞傋傣傃傌傎傝偨傜傒傂傇兟凔匒匑厤厧喑喨喥喭啷噅喢喓喈喏喵喁喣喒喤啽喌喦啿喕喡喎圌堩堷����������������������������������堙堞堧堣堨埵塈堥堜堛堳堿堶堮堹堸堭堬堻奡媯媔媟婺媢媞婸媦婼媥媬媕媮娷媄媊媗媃媋媩婻婽媌媜媏媓媝寪寍寋寔寑寊寎尌尰崷嵃嵫嵁嵋崿崵嵑嵎嵕崳崺嵒崽崱嵙嵂崹嵉崸崼崲崶嵀嵅幄幁彘徦徥徫惉悹惌惢惎惄愔�\".split(\"\");\nfor(j = 0; j != D[216].length; ++j) if(D[216][j].charCodeAt(0) !== 0xFFFD) { e[D[216][j]] = 55296 + j; d[55296 + j] = D[216][j];}\nD[217] = \"����������������������������������������������������������������惲愊愖愅惵愓惸惼惾惁愃愘愝愐惿愄愋扊掔掱掰揎揥揨揯揃撝揳揊揠揶揕揲揵摡揟掾揝揜揄揘揓揂揇揌揋揈揰揗揙攲敧敪敤敜敨敥斌斝斞斮旐旒����������������������������������晼晬晻暀晱晹晪晲朁椌棓椄棜椪棬棪棱椏棖棷棫棤棶椓椐棳棡椇棌椈楰梴椑棯棆椔棸棐棽棼棨椋椊椗棎棈棝棞棦棴棑椆棔棩椕椥棇欹欻欿欼殔殗殙殕殽毰毲毳氰淼湆湇渟湉溈渼渽湅湢渫渿湁湝湳渜渳湋湀湑渻渃渮湞�\".split(\"\");\nfor(j = 0; j != D[217].length; ++j) if(D[217][j].charCodeAt(0) !== 0xFFFD) { e[D[217][j]] = 55552 + j; d[55552 + j] = D[217][j];}\nD[218] = \"����������������������������������������������������������������湨湜湡渱渨湠湱湫渹渢渰湓湥渧湸湤湷湕湹湒湦渵渶湚焠焞焯烻焮焱焣焥焢焲焟焨焺焛牋牚犈犉犆犅犋猒猋猰猢猱猳猧猲猭猦猣猵猌琮琬琰琫琖����������������������������������琚琡琭琱琤琣琝琩琠琲瓻甯畯畬痧痚痡痦痝痟痤痗皕皒盚睆睇睄睍睅睊睎睋睌矞矬硠硤硥硜硭硱硪确硰硩硨硞硢祴祳祲祰稂稊稃稌稄窙竦竤筊笻筄筈筌筎筀筘筅粢粞粨粡絘絯絣絓絖絧絪絏絭絜絫絒絔絩絑絟絎缾缿罥�\".split(\"\");\nfor(j = 0; j != D[218].length; ++j) if(D[218][j].charCodeAt(0) !== 0xFFFD) { e[D[218][j]] = 55808 + j; d[55808 + j] = D[218][j];}\nD[219] = \"����������������������������������������������������������������罦羢羠羡翗聑聏聐胾胔腃腊腒腏腇脽腍脺臦臮臷臸臹舄舼舽舿艵茻菏菹萣菀菨萒菧菤菼菶萐菆菈菫菣莿萁菝菥菘菿菡菋菎菖菵菉萉萏菞萑萆菂菳����������������������������������菕菺菇菑菪萓菃菬菮菄菻菗菢萛菛菾蛘蛢蛦蛓蛣蛚蛪蛝蛫蛜蛬蛩蛗蛨蛑衈衖衕袺裗袹袸裀袾袶袼袷袽袲褁裉覕覘覗觝觚觛詎詍訹詙詀詗詘詄詅詒詈詑詊詌詏豟貁貀貺貾貰貹貵趄趀趉跘跓跍跇跖跜跏跕跙跈跗跅軯軷軺�\".split(\"\");\nfor(j = 0; j != D[219].length; ++j) if(D[219][j].charCodeAt(0) !== 0xFFFD) { e[D[219][j]] = 56064 + j; d[56064 + j] = D[219][j];}\nD[220] = \"����������������������������������������������������������������軹軦軮軥軵軧軨軶軫軱軬軴軩逭逴逯鄆鄬鄄郿郼鄈郹郻鄁鄀鄇鄅鄃酡酤酟酢酠鈁鈊鈥鈃鈚鈦鈏鈌鈀鈒釿釽鈆鈄鈧鈂鈜鈤鈙鈗鈅鈖镻閍閌閐隇陾隈����������������������������������隉隃隀雂雈雃雱雰靬靰靮頇颩飫鳦黹亃亄亶傽傿僆傮僄僊傴僈僂傰僁傺傱僋僉傶傸凗剺剸剻剼嗃嗛嗌嗐嗋嗊嗝嗀嗔嗄嗩喿嗒喍嗏嗕嗢嗖嗈嗲嗍嗙嗂圔塓塨塤塏塍塉塯塕塎塝塙塥塛堽塣塱壼嫇嫄嫋媺媸媱媵媰媿嫈媻嫆�\".split(\"\");\nfor(j = 0; j != D[220].length; ++j) if(D[220][j].charCodeAt(0) !== 0xFFFD) { e[D[220][j]] = 56320 + j; d[56320 + j] = D[220][j];}\nD[221] = \"����������������������������������������������������������������媷嫀嫊媴媶嫍媹媐寖寘寙尟尳嵱嵣嵊嵥嵲嵬嵞嵨嵧嵢巰幏幎幊幍幋廅廌廆廋廇彀徯徭惷慉慊愫慅愶愲愮慆愯慏愩慀戠酨戣戥戤揅揱揫搐搒搉搠搤����������������������������������搳摃搟搕搘搹搷搢搣搌搦搰搨摁搵搯搊搚摀搥搧搋揧搛搮搡搎敯斒旓暆暌暕暐暋暊暙暔晸朠楦楟椸楎楢楱椿楅楪椹楂楗楙楺楈楉椵楬椳椽楥棰楸椴楩楀楯楄楶楘楁楴楌椻楋椷楜楏楑椲楒椯楻椼歆歅歃歂歈歁殛嗀毻毼�\".split(\"\");\nfor(j = 0; j != D[221].length; ++j) if(D[221][j].charCodeAt(0) !== 0xFFFD) { e[D[221][j]] = 56576 + j; d[56576 + j] = D[221][j];}\nD[222] = \"����������������������������������������������������������������毹毷毸溛滖滈溏滀溟溓溔溠溱溹滆滒溽滁溞滉溷溰滍溦滏溲溾滃滜滘溙溒溎溍溤溡溿溳滐滊溗溮溣煇煔煒煣煠煁煝煢煲煸煪煡煂煘煃煋煰煟煐煓����������������������������������煄煍煚牏犍犌犑犐犎猼獂猻猺獀獊獉瑄瑊瑋瑒瑑瑗瑀瑏瑐瑎瑂瑆瑍瑔瓡瓿瓾瓽甝畹畷榃痯瘏瘃痷痾痼痹痸瘐痻痶痭痵痽皙皵盝睕睟睠睒睖睚睩睧睔睙睭矠碇碚碔碏碄碕碅碆碡碃硹碙碀碖硻祼禂祽祹稑稘稙稒稗稕稢稓�\".split(\"\");\nfor(j = 0; j != D[222].length; ++j) if(D[222][j].charCodeAt(0) !== 0xFFFD) { e[D[222][j]] = 56832 + j; d[56832 + j] = D[222][j];}\nD[223] = \"����������������������������������������������������������������稛稐窣窢窞竫筦筤筭筴筩筲筥筳筱筰筡筸筶筣粲粴粯綈綆綀綍絿綅絺綎絻綃絼綌綔綄絽綒罭罫罧罨罬羦羥羧翛翜耡腤腠腷腜腩腛腢腲朡腞腶腧腯����������������������������������腄腡舝艉艄艀艂艅蓱萿葖葶葹蒏蒍葥葑葀蒆葧萰葍葽葚葙葴葳葝蔇葞萷萺萴葺葃葸萲葅萩菙葋萯葂萭葟葰萹葎葌葒葯蓅蒎萻葇萶萳葨葾葄萫葠葔葮葐蜋蜄蛷蜌蛺蛖蛵蝍蛸蜎蜉蜁蛶蜍蜅裖裋裍裎裞裛裚裌裐覅覛觟觥觤�\".split(\"\");\nfor(j = 0; j != D[223].length; ++j) if(D[223][j].charCodeAt(0) !== 0xFFFD) { e[D[223][j]] = 57088 + j; d[57088 + j] = D[223][j];}\nD[224] = \"����������������������������������������������������������������觡觠觢觜触詶誆詿詡訿詷誂誄詵誃誁詴詺谼豋豊豥豤豦貆貄貅賌赨赩趑趌趎趏趍趓趔趐趒跰跠跬跱跮跐跩跣跢跧跲跫跴輆軿輁輀輅輇輈輂輋遒逿����������������������������������遄遉逽鄐鄍鄏鄑鄖鄔鄋鄎酮酯鉈鉒鈰鈺鉦鈳鉥鉞銃鈮鉊鉆鉭鉬鉏鉠鉧鉯鈶鉡鉰鈱鉔鉣鉐鉲鉎鉓鉌鉖鈲閟閜閞閛隒隓隑隗雎雺雽雸雵靳靷靸靲頏頍頎颬飶飹馯馲馰馵骭骫魛鳪鳭鳧麀黽僦僔僗僨僳僛僪僝僤僓僬僰僯僣僠�\".split(\"\");\nfor(j = 0; j != D[224].length; ++j) if(D[224][j].charCodeAt(0) !== 0xFFFD) { e[D[224][j]] = 57344 + j; d[57344 + j] = D[224][j];}\nD[225] = \"����������������������������������������������������������������凘劀劁勩勫匰厬嘧嘕嘌嘒嗼嘏嘜嘁嘓嘂嗺嘝嘄嗿嗹墉塼墐墘墆墁塿塴墋塺墇墑墎塶墂墈塻墔墏壾奫嫜嫮嫥嫕嫪嫚嫭嫫嫳嫢嫠嫛嫬嫞嫝嫙嫨嫟孷寠����������������������������������寣屣嶂嶀嵽嶆嵺嶁嵷嶊嶉嶈嵾嵼嶍嵹嵿幘幙幓廘廑廗廎廜廕廙廒廔彄彃彯徶愬愨慁慞慱慳慒慓慲慬憀慴慔慺慛慥愻慪慡慖戩戧戫搫摍摛摝摴摶摲摳摽摵摦撦摎撂摞摜摋摓摠摐摿搿摬摫摙摥摷敳斠暡暠暟朅朄朢榱榶槉�\".split(\"\");\nfor(j = 0; j != D[225].length; ++j) if(D[225][j].charCodeAt(0) !== 0xFFFD) { e[D[225][j]] = 57600 + j; d[57600 + j] = D[225][j];}\nD[226] = \"����������������������������������������������������������������榠槎榖榰榬榼榑榙榎榧榍榩榾榯榿槄榽榤槔榹槊榚槏榳榓榪榡榞槙榗榐槂榵榥槆歊歍歋殞殟殠毃毄毾滎滵滱漃漥滸漷滻漮漉潎漙漚漧漘漻漒滭漊����������������������������������漶潳滹滮漭潀漰漼漵滫漇漎潃漅滽滶漹漜滼漺漟漍漞漈漡熇熐熉熀熅熂熏煻熆熁熗牄牓犗犕犓獃獍獑獌瑢瑳瑱瑵瑲瑧瑮甀甂甃畽疐瘖瘈瘌瘕瘑瘊瘔皸瞁睼瞅瞂睮瞀睯睾瞃碲碪碴碭碨硾碫碞碥碠碬碢碤禘禊禋禖禕禔禓�\".split(\"\");\nfor(j = 0; j != D[226].length; ++j) if(D[226][j].charCodeAt(0) !== 0xFFFD) { e[D[226][j]] = 57856 + j; d[57856 + j] = D[226][j];}\nD[227] = \"����������������������������������������������������������������禗禈禒禐稫穊稰稯稨稦窨窫窬竮箈箜箊箑箐箖箍箌箛箎箅箘劄箙箤箂粻粿粼粺綧綷緂綣綪緁緀緅綝緎緄緆緋緌綯綹綖綼綟綦綮綩綡緉罳翢翣翥翞����������������������������������耤聝聜膉膆膃膇膍膌膋舕蒗蒤蒡蒟蒺蓎蓂蒬蒮蒫蒹蒴蓁蓍蒪蒚蒱蓐蒝蒧蒻蒢蒔蓇蓌蒛蒩蒯蒨蓖蒘蒶蓏蒠蓗蓔蓒蓛蒰蒑虡蜳蜣蜨蝫蝀蜮蜞蜡蜙蜛蝃蜬蝁蜾蝆蜠蜲蜪蜭蜼蜒蜺蜱蜵蝂蜦蜧蜸蜤蜚蜰蜑裷裧裱裲裺裾裮裼裶裻�\".split(\"\");\nfor(j = 0; j != D[227].length; ++j) if(D[227][j].charCodeAt(0) !== 0xFFFD) { e[D[227][j]] = 58112 + j; d[58112 + j] = D[227][j];}\nD[228] = \"����������������������������������������������������������������裰裬裫覝覡覟覞觩觫觨誫誙誋誒誏誖谽豨豩賕賏賗趖踉踂跿踍跽踊踃踇踆踅跾踀踄輐輑輎輍鄣鄜鄠鄢鄟鄝鄚鄤鄡鄛酺酲酹酳銥銤鉶銛鉺銠銔銪銍����������������������������������銦銚銫鉹銗鉿銣鋮銎銂銕銢鉽銈銡銊銆銌銙銧鉾銇銩銝銋鈭隞隡雿靘靽靺靾鞃鞀鞂靻鞄鞁靿韎韍頖颭颮餂餀餇馝馜駃馹馻馺駂馽駇骱髣髧鬾鬿魠魡魟鳱鳲鳵麧僿儃儰僸儆儇僶僾儋儌僽儊劋劌勱勯噈噂噌嘵噁噊噉噆噘�\".split(\"\");\nfor(j = 0; j != D[228].length; ++j) if(D[228][j].charCodeAt(0) !== 0xFFFD) { e[D[228][j]] = 58368 + j; d[58368 + j] = D[228][j];}\nD[229] = \"����������������������������������������������������������������噚噀嘳嘽嘬嘾嘸嘪嘺圚墫墝墱墠墣墯墬墥墡壿嫿嫴嫽嫷嫶嬃嫸嬂嫹嬁嬇嬅嬏屧嶙嶗嶟嶒嶢嶓嶕嶠嶜嶡嶚嶞幩幝幠幜緳廛廞廡彉徲憋憃慹憱憰憢憉����������������������������������憛憓憯憭憟憒憪憡憍慦憳戭摮摰撖撠撅撗撜撏撋撊撌撣撟摨撱撘敶敺敹敻斲斳暵暰暩暲暷暪暯樀樆樗槥槸樕槱槤樠槿槬槢樛樝槾樧槲槮樔槷槧橀樈槦槻樍槼槫樉樄樘樥樏槶樦樇槴樖歑殥殣殢殦氁氀毿氂潁漦潾澇濆澒�\".split(\"\");\nfor(j = 0; j != D[229].length; ++j) if(D[229][j].charCodeAt(0) !== 0xFFFD) { e[D[229][j]] = 58624 + j; d[58624 + j] = D[229][j];}\nD[230] = \"����������������������������������������������������������������澍澉澌潢潏澅潚澖潶潬澂潕潲潒潐潗澔澓潝漀潡潫潽潧澐潓澋潩潿澕潣潷潪潻熲熯熛熰熠熚熩熵熝熥熞熤熡熪熜熧熳犘犚獘獒獞獟獠獝獛獡獚獙����������������������������������獢璇璉璊璆璁瑽璅璈瑼瑹甈甇畾瘥瘞瘙瘝瘜瘣瘚瘨瘛皜皝皞皛瞍瞏瞉瞈磍碻磏磌磑磎磔磈磃磄磉禚禡禠禜禢禛歶稹窲窴窳箷篋箾箬篎箯箹篊箵糅糈糌糋緷緛緪緧緗緡縃緺緦緶緱緰緮緟罶羬羰羭翭翫翪翬翦翨聤聧膣膟�\".split(\"\");\nfor(j = 0; j != D[230].length; ++j) if(D[230][j].charCodeAt(0) !== 0xFFFD) { e[D[230][j]] = 58880 + j; d[58880 + j] = D[230][j];}\nD[231] = \"����������������������������������������������������������������膞膕膢膙膗舖艏艓艒艐艎艑蔤蔻蔏蔀蔩蔎蔉蔍蔟蔊蔧蔜蓻蔫蓺蔈蔌蓴蔪蓲蔕蓷蓫蓳蓼蔒蓪蓩蔖蓾蔨蔝蔮蔂蓽蔞蓶蔱蔦蓧蓨蓰蓯蓹蔘蔠蔰蔋蔙蔯虢����������������������������������蝖蝣蝤蝷蟡蝳蝘蝔蝛蝒蝡蝚蝑蝞蝭蝪蝐蝎蝟蝝蝯蝬蝺蝮蝜蝥蝏蝻蝵蝢蝧蝩衚褅褌褔褋褗褘褙褆褖褑褎褉覢覤覣觭觰觬諏諆誸諓諑諔諕誻諗誾諀諅諘諃誺誽諙谾豍貏賥賟賙賨賚賝賧趠趜趡趛踠踣踥踤踮踕踛踖踑踙踦踧�\".split(\"\");\nfor(j = 0; j != D[231].length; ++j) if(D[231][j].charCodeAt(0) !== 0xFFFD) { e[D[231][j]] = 59136 + j; d[59136 + j] = D[231][j];}\nD[232] = \"����������������������������������������������������������������踔踒踘踓踜踗踚輬輤輘輚輠輣輖輗遳遰遯遧遫鄯鄫鄩鄪鄲鄦鄮醅醆醊醁醂醄醀鋐鋃鋄鋀鋙銶鋏鋱鋟鋘鋩鋗鋝鋌鋯鋂鋨鋊鋈鋎鋦鋍鋕鋉鋠鋞鋧鋑鋓����������������������������������銵鋡鋆銴镼閬閫閮閰隤隢雓霅霈霂靚鞊鞎鞈韐韏頞頝頦頩頨頠頛頧颲餈飺餑餔餖餗餕駜駍駏駓駔駎駉駖駘駋駗駌骳髬髫髳髲髱魆魃魧魴魱魦魶魵魰魨魤魬鳼鳺鳽鳿鳷鴇鴀鳹鳻鴈鴅鴄麃黓鼏鼐儜儓儗儚儑凞匴叡噰噠噮�\".split(\"\");\nfor(j = 0; j != D[232].length; ++j) if(D[232][j].charCodeAt(0) !== 0xFFFD) { e[D[232][j]] = 59392 + j; d[59392 + j] = D[232][j];}\nD[233] = \"����������������������������������������������������������������噳噦噣噭噲噞噷圜圛壈墽壉墿墺壂墼壆嬗嬙嬛嬡嬔嬓嬐嬖嬨嬚嬠嬞寯嶬嶱嶩嶧嶵嶰嶮嶪嶨嶲嶭嶯嶴幧幨幦幯廩廧廦廨廥彋徼憝憨憖懅憴懆懁懌憺����������������������������������憿憸憌擗擖擐擏擉撽撉擃擛擳擙攳敿敼斢曈暾曀曊曋曏暽暻暺曌朣樴橦橉橧樲橨樾橝橭橶橛橑樨橚樻樿橁橪橤橐橏橔橯橩橠樼橞橖橕橍橎橆歕歔歖殧殪殫毈毇氄氃氆澭濋澣濇澼濎濈潞濄澽澞濊澨瀄澥澮澺澬澪濏澿澸�\".split(\"\");\nfor(j = 0; j != D[233].length; ++j) if(D[233][j].charCodeAt(0) !== 0xFFFD) { e[D[233][j]] = 59648 + j; d[59648 + j] = D[233][j];}\nD[234] = \"����������������������������������������������������������������澢濉澫濍澯澲澰燅燂熿熸燖燀燁燋燔燊燇燏熽燘熼燆燚燛犝犞獩獦獧獬獥獫獪瑿璚璠璔璒璕璡甋疀瘯瘭瘱瘽瘳瘼瘵瘲瘰皻盦瞚瞝瞡瞜瞛瞢瞣瞕瞙����������������������������������瞗磝磩磥磪磞磣磛磡磢磭磟磠禤穄穈穇窶窸窵窱窷篞篣篧篝篕篥篚篨篹篔篪篢篜篫篘篟糒糔糗糐糑縒縡縗縌縟縠縓縎縜縕縚縢縋縏縖縍縔縥縤罃罻罼罺羱翯耪耩聬膱膦膮膹膵膫膰膬膴膲膷膧臲艕艖艗蕖蕅蕫蕍蕓蕡蕘�\".split(\"\");\nfor(j = 0; j != D[234].length; ++j) if(D[234][j].charCodeAt(0) !== 0xFFFD) { e[D[234][j]] = 59904 + j; d[59904 + j] = D[234][j];}\nD[235] = \"����������������������������������������������������������������蕀蕆蕤蕁蕢蕄蕑蕇蕣蔾蕛蕱蕎蕮蕵蕕蕧蕠薌蕦蕝蕔蕥蕬虣虥虤螛螏螗螓螒螈螁螖螘蝹螇螣螅螐螑螝螄螔螜螚螉褞褦褰褭褮褧褱褢褩褣褯褬褟觱諠����������������������������������諢諲諴諵諝謔諤諟諰諈諞諡諨諿諯諻貑貒貐賵賮賱賰賳赬赮趥趧踳踾踸蹀蹅踶踼踽蹁踰踿躽輶輮輵輲輹輷輴遶遹遻邆郺鄳鄵鄶醓醐醑醍醏錧錞錈錟錆錏鍺錸錼錛錣錒錁鍆錭錎錍鋋錝鋺錥錓鋹鋷錴錂錤鋿錩錹錵錪錔錌�\".split(\"\");\nfor(j = 0; j != D[235].length; ++j) if(D[235][j].charCodeAt(0) !== 0xFFFD) { e[D[235][j]] = 60160 + j; d[60160 + j] = D[235][j];}\nD[236] = \"����������������������������������������������������������������錋鋾錉錀鋻錖閼闍閾閹閺閶閿閵閽隩雔霋霒霐鞙鞗鞔韰韸頵頯頲餤餟餧餩馞駮駬駥駤駰駣駪駩駧骹骿骴骻髶髺髹髷鬳鮀鮅鮇魼魾魻鮂鮓鮒鮐魺鮕����������������������������������魽鮈鴥鴗鴠鴞鴔鴩鴝鴘鴢鴐鴙鴟麈麆麇麮麭黕黖黺鼒鼽儦儥儢儤儠儩勴嚓嚌嚍嚆嚄嚃噾嚂噿嚁壖壔壏壒嬭嬥嬲嬣嬬嬧嬦嬯嬮孻寱寲嶷幬幪徾徻懃憵憼懧懠懥懤懨懞擯擩擣擫擤擨斁斀斶旚曒檍檖檁檥檉檟檛檡檞檇檓檎�\".split(\"\");\nfor(j = 0; j != D[236].length; ++j) if(D[236][j].charCodeAt(0) !== 0xFFFD) { e[D[236][j]] = 60416 + j; d[60416 + j] = D[236][j];}\nD[237] = \"����������������������������������������������������������������檕檃檨檤檑橿檦檚檅檌檒歛殭氉濌澩濴濔濣濜濭濧濦濞濲濝濢濨燡燱燨燲燤燰燢獳獮獯璗璲璫璐璪璭璱璥璯甐甑甒甏疄癃癈癉癇皤盩瞵瞫瞲瞷瞶����������������������������������瞴瞱瞨矰磳磽礂磻磼磲礅磹磾礄禫禨穜穛穖穘穔穚窾竀竁簅簏篲簀篿篻簎篴簋篳簂簉簃簁篸篽簆篰篱簐簊糨縭縼繂縳顈縸縪繉繀繇縩繌縰縻縶繄縺罅罿罾罽翴翲耬膻臄臌臊臅臇膼臩艛艚艜薃薀薏薧薕薠薋薣蕻薤薚薞�\".split(\"\");\nfor(j = 0; j != D[237].length; ++j) if(D[237][j].charCodeAt(0) !== 0xFFFD) { e[D[237][j]] = 60672 + j; d[60672 + j] = D[237][j];}\nD[238] = \"����������������������������������������������������������������蕷蕼薉薡蕺蕸蕗薎薖薆薍薙薝薁薢薂薈薅蕹蕶薘薐薟虨螾螪螭蟅螰螬螹螵螼螮蟉蟃蟂蟌螷螯蟄蟊螴螶螿螸螽蟞螲褵褳褼褾襁襒褷襂覭覯覮觲觳謞����������������������������������謘謖謑謅謋謢謏謒謕謇謍謈謆謜謓謚豏豰豲豱豯貕貔賹赯蹎蹍蹓蹐蹌蹇轃轀邅遾鄸醚醢醛醙醟醡醝醠鎡鎃鎯鍤鍖鍇鍼鍘鍜鍶鍉鍐鍑鍠鍭鎏鍌鍪鍹鍗鍕鍒鍏鍱鍷鍻鍡鍞鍣鍧鎀鍎鍙闇闀闉闃闅閷隮隰隬霠霟霘霝霙鞚鞡鞜�\".split(\"\");\nfor(j = 0; j != D[238].length; ++j) if(D[238][j].charCodeAt(0) !== 0xFFFD) { e[D[238][j]] = 60928 + j; d[60928 + j] = D[238][j];}\nD[239] = \"����������������������������������������������������������������鞞鞝韕韔韱顁顄顊顉顅顃餥餫餬餪餳餲餯餭餱餰馘馣馡騂駺駴駷駹駸駶駻駽駾駼騃骾髾髽鬁髼魈鮚鮨鮞鮛鮦鮡鮥鮤鮆鮢鮠鮯鴳鵁鵧鴶鴮鴯鴱鴸鴰����������������������������������鵅鵂鵃鴾鴷鵀鴽翵鴭麊麉麍麰黈黚黻黿鼤鼣鼢齔龠儱儭儮嚘嚜嚗嚚嚝嚙奰嬼屩屪巀幭幮懘懟懭懮懱懪懰懫懖懩擿攄擽擸攁攃擼斔旛曚曛曘櫅檹檽櫡櫆檺檶檷櫇檴檭歞毉氋瀇瀌瀍瀁瀅瀔瀎濿瀀濻瀦濼濷瀊爁燿燹爃燽獶�\".split(\"\");\nfor(j = 0; j != D[239].length; ++j) if(D[239][j].charCodeAt(0) !== 0xFFFD) { e[D[239][j]] = 61184 + j; d[61184 + j] = D[239][j];}\nD[240] = \"����������������������������������������������������������������璸瓀璵瓁璾璶璻瓂甔甓癜癤癙癐癓癗癚皦皽盬矂瞺磿礌礓礔礉礐礒礑禭禬穟簜簩簙簠簟簭簝簦簨簢簥簰繜繐繖繣繘繢繟繑繠繗繓羵羳翷翸聵臑臒����������������������������������臐艟艞薴藆藀藃藂薳薵薽藇藄薿藋藎藈藅薱薶藒蘤薸薷薾虩蟧蟦蟢蟛蟫蟪蟥蟟蟳蟤蟔蟜蟓蟭蟘蟣螤蟗蟙蠁蟴蟨蟝襓襋襏襌襆襐襑襉謪謧謣謳謰謵譇謯謼謾謱謥謷謦謶謮謤謻謽謺豂豵貙貘貗賾贄贂贀蹜蹢蹠蹗蹖蹞蹥蹧�\".split(\"\");\nfor(j = 0; j != D[240].length; ++j) if(D[240][j].charCodeAt(0) !== 0xFFFD) { e[D[240][j]] = 61440 + j; d[61440 + j] = D[240][j];}\nD[241] = \"����������������������������������������������������������������蹛蹚蹡蹝蹩蹔轆轇轈轋鄨鄺鄻鄾醨醥醧醯醪鎵鎌鎒鎷鎛鎝鎉鎧鎎鎪鎞鎦鎕鎈鎙鎟鎍鎱鎑鎲鎤鎨鎴鎣鎥闒闓闑隳雗雚巂雟雘雝霣霢霥鞬鞮鞨鞫鞤鞪����������������������������������鞢鞥韗韙韖韘韺顐顑顒颸饁餼餺騏騋騉騍騄騑騊騅騇騆髀髜鬈鬄鬅鬩鬵魊魌魋鯇鯆鯃鮿鯁鮵鮸鯓鮶鯄鮹鮽鵜鵓鵏鵊鵛鵋鵙鵖鵌鵗鵒鵔鵟鵘鵚麎麌黟鼁鼀鼖鼥鼫鼪鼩鼨齌齕儴儵劖勷厴嚫嚭嚦嚧嚪嚬壚壝壛夒嬽嬾嬿巃幰�\".split(\"\");\nfor(j = 0; j != D[241].length; ++j) if(D[241][j].charCodeAt(0) !== 0xFFFD) { e[D[241][j]] = 61696 + j; d[61696 + j] = D[241][j];}\nD[242] = \"����������������������������������������������������������������徿懻攇攐攍攉攌攎斄旞旝曞櫧櫠櫌櫑櫙櫋櫟櫜櫐櫫櫏櫍櫞歠殰氌瀙瀧瀠瀖瀫瀡瀢瀣瀩瀗瀤瀜瀪爌爊爇爂爅犥犦犤犣犡瓋瓅璷瓃甖癠矉矊矄矱礝礛����������������������������������礡礜礗礞禰穧穨簳簼簹簬簻糬糪繶繵繸繰繷繯繺繲繴繨罋罊羃羆羷翽翾聸臗臕艤艡艣藫藱藭藙藡藨藚藗藬藲藸藘藟藣藜藑藰藦藯藞藢蠀蟺蠃蟶蟷蠉蠌蠋蠆蟼蠈蟿蠊蠂襢襚襛襗襡襜襘襝襙覈覷覶觶譐譈譊譀譓譖譔譋譕�\".split(\"\");\nfor(j = 0; j != D[242].length; ++j) if(D[242][j].charCodeAt(0) !== 0xFFFD) { e[D[242][j]] = 61952 + j; d[61952 + j] = D[242][j];}\nD[243] = \"����������������������������������������������������������������譑譂譒譗豃豷豶貚贆贇贉趬趪趭趫蹭蹸蹳蹪蹯蹻軂轒轑轏轐轓辴酀鄿醰醭鏞鏇鏏鏂鏚鏐鏹鏬鏌鏙鎩鏦鏊鏔鏮鏣鏕鏄鏎鏀鏒鏧镽闚闛雡霩霫霬霨霦����������������������������������鞳鞷鞶韝韞韟顜顙顝顗颿颽颻颾饈饇饃馦馧騚騕騥騝騤騛騢騠騧騣騞騜騔髂鬋鬊鬎鬌鬷鯪鯫鯠鯞鯤鯦鯢鯰鯔鯗鯬鯜鯙鯥鯕鯡鯚鵷鶁鶊鶄鶈鵱鶀鵸鶆鶋鶌鵽鵫鵴鵵鵰鵩鶅鵳鵻鶂鵯鵹鵿鶇鵨麔麑黀黼鼭齀齁齍齖齗齘匷嚲�\".split(\"\");\nfor(j = 0; j != D[243].length; ++j) if(D[243][j].charCodeAt(0) !== 0xFFFD) { e[D[243][j]] = 62208 + j; d[62208 + j] = D[243][j];}\nD[244] = \"����������������������������������������������������������������嚵嚳壣孅巆巇廮廯忀忁懹攗攖攕攓旟曨曣曤櫳櫰櫪櫨櫹櫱櫮櫯瀼瀵瀯瀷瀴瀱灂瀸瀿瀺瀹灀瀻瀳灁爓爔犨獽獼璺皫皪皾盭矌矎矏矍矲礥礣礧礨礤礩����������������������������������禲穮穬穭竷籉籈籊籇籅糮繻繾纁纀羺翿聹臛臙舋艨艩蘢藿蘁藾蘛蘀藶蘄蘉蘅蘌藽蠙蠐蠑蠗蠓蠖襣襦覹觷譠譪譝譨譣譥譧譭趮躆躈躄轙轖轗轕轘轚邍酃酁醷醵醲醳鐋鐓鏻鐠鐏鐔鏾鐕鐐鐨鐙鐍鏵鐀鏷鐇鐎鐖鐒鏺鐉鏸鐊鏿�\".split(\"\");\nfor(j = 0; j != D[244].length; ++j) if(D[244][j].charCodeAt(0) !== 0xFFFD) { e[D[244][j]] = 62464 + j; d[62464 + j] = D[244][j];}\nD[245] = \"����������������������������������������������������������������鏼鐌鏶鐑鐆闞闠闟霮霯鞹鞻韽韾顠顢顣顟飁飂饐饎饙饌饋饓騲騴騱騬騪騶騩騮騸騭髇髊髆鬐鬒鬑鰋鰈鯷鰅鰒鯸鱀鰇鰎鰆鰗鰔鰉鶟鶙鶤鶝鶒鶘鶐鶛����������������������������������鶠鶔鶜鶪鶗鶡鶚鶢鶨鶞鶣鶿鶩鶖鶦鶧麙麛麚黥黤黧黦鼰鼮齛齠齞齝齙龑儺儹劘劗囃嚽嚾孈孇巋巏廱懽攛欂櫼欃櫸欀灃灄灊灈灉灅灆爝爚爙獾甗癪矐礭礱礯籔籓糲纊纇纈纋纆纍罍羻耰臝蘘蘪蘦蘟蘣蘜蘙蘧蘮蘡蘠蘩蘞蘥�\".split(\"\");\nfor(j = 0; j != D[245].length; ++j) if(D[245][j].charCodeAt(0) !== 0xFFFD) { e[D[245][j]] = 62720 + j; d[62720 + j] = D[245][j];}\nD[246] = \"����������������������������������������������������������������蠩蠝蠛蠠蠤蠜蠫衊襭襩襮襫觺譹譸譅譺譻贐贔趯躎躌轞轛轝酆酄酅醹鐿鐻鐶鐩鐽鐼鐰鐹鐪鐷鐬鑀鐱闥闤闣霵霺鞿韡顤飉飆飀饘饖騹騽驆驄驂驁騺����������������������������������騿髍鬕鬗鬘鬖鬺魒鰫鰝鰜鰬鰣鰨鰩鰤鰡鶷鶶鶼鷁鷇鷊鷏鶾鷅鷃鶻鶵鷎鶹鶺鶬鷈鶱鶭鷌鶳鷍鶲鹺麜黫黮黭鼛鼘鼚鼱齎齥齤龒亹囆囅囋奱孋孌巕巑廲攡攠攦攢欋欈欉氍灕灖灗灒爞爟犩獿瓘瓕瓙瓗癭皭礵禴穰穱籗籜籙籛籚�\".split(\"\");\nfor(j = 0; j != D[246].length; ++j) if(D[246][j].charCodeAt(0) !== 0xFFFD) { e[D[246][j]] = 62976 + j; d[62976 + j] = D[246][j];}\nD[247] = \"����������������������������������������������������������������糴糱纑罏羇臞艫蘴蘵蘳蘬蘲蘶蠬蠨蠦蠪蠥襱覿覾觻譾讄讂讆讅譿贕躕躔躚躒躐躖躗轠轢酇鑌鑐鑊鑋鑏鑇鑅鑈鑉鑆霿韣顪顩飋饔饛驎驓驔驌驏驈驊����������������������������������驉驒驐髐鬙鬫鬻魖魕鱆鱈鰿鱄鰹鰳鱁鰼鰷鰴鰲鰽鰶鷛鷒鷞鷚鷋鷐鷜鷑鷟鷩鷙鷘鷖鷵鷕鷝麶黰鼵鼳鼲齂齫龕龢儽劙壨壧奲孍巘蠯彏戁戃戄攩攥斖曫欑欒欏毊灛灚爢玂玁玃癰矔籧籦纕艬蘺虀蘹蘼蘱蘻蘾蠰蠲蠮蠳襶襴襳觾�\".split(\"\");\nfor(j = 0; j != D[247].length; ++j) if(D[247][j].charCodeAt(0) !== 0xFFFD) { e[D[247][j]] = 63232 + j; d[63232 + j] = D[247][j];}\nD[248] = \"����������������������������������������������������������������讌讎讋讈豅贙躘轤轣醼鑢鑕鑝鑗鑞韄韅頀驖驙鬞鬟鬠鱒鱘鱐鱊鱍鱋鱕鱙鱌鱎鷻鷷鷯鷣鷫鷸鷤鷶鷡鷮鷦鷲鷰鷢鷬鷴鷳鷨鷭黂黐黲黳鼆鼜鼸鼷鼶齃齏����������������������������������齱齰齮齯囓囍孎屭攭曭曮欓灟灡灝灠爣瓛瓥矕礸禷禶籪纗羉艭虃蠸蠷蠵衋讔讕躞躟躠躝醾醽釂鑫鑨鑩雥靆靃靇韇韥驞髕魙鱣鱧鱦鱢鱞鱠鸂鷾鸇鸃鸆鸅鸀鸁鸉鷿鷽鸄麠鼞齆齴齵齶囔攮斸欘欙欗欚灢爦犪矘矙礹籩籫糶纚�\".split(\"\");\nfor(j = 0; j != D[248].length; ++j) if(D[248][j].charCodeAt(0) !== 0xFFFD) { e[D[248][j]] = 63488 + j; d[63488 + j] = D[248][j];}\nD[249] = \"����������������������������������������������������������������纘纛纙臠臡虆虇虈襹襺襼襻觿讘讙躥躤躣鑮鑭鑯鑱鑳靉顲饟鱨鱮鱭鸋鸍鸐鸏鸒鸑麡黵鼉齇齸齻齺齹圞灦籯蠼趲躦釃鑴鑸鑶鑵驠鱴鱳鱱鱵鸔鸓黶鼊����������������������������������龤灨灥糷虪蠾蠽蠿讞貜躩軉靋顳顴飌饡馫驤驦驧鬤鸕鸗齈戇欞爧虌躨钂钀钁驩驨鬮鸙爩虋讟钃鱹麷癵驫鱺鸝灩灪麤齾齉龘碁銹裏墻恒粧嫺╔╦╗╠╬╣╚╩╝╒╤╕╞╪╡╘╧╛╓╥╖╟╫╢╙╨╜║═╭╮╰╯▓�\".split(\"\");\nfor(j = 0; j != D[249].length; ++j) if(D[249][j].charCodeAt(0) !== 0xFFFD) { e[D[249][j]] = 63744 + j; d[63744 + j] = D[249][j];}\nreturn {\"enc\": e, \"dec\": d }; })();\ncptable[1250] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰Š‹ŚŤŽŹ�‘’“”•–—�™š›śťžź ˇ˘Ł¤Ą¦§¨©Ş«¬®Ż°±˛ł´µ¶·¸ąş»Ľ˝ľżŔÁÂĂÄĹĆÇČÉĘËĚÍÎĎĐŃŇÓÔŐÖ×ŘŮÚŰÜÝŢßŕáâăäĺćçčéęëěíîďđńňóôőö÷řůúűüýţ˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1251] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ЂЃ‚ѓ„…†‡€‰Љ‹ЊЌЋЏђ‘’“”•–—�™љ›њќћџ ЎўЈ¤Ґ¦§Ё©Є«¬®Ї°±Ііґµ¶·ё№є»јЅѕїАБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯабвгдежзийклмнопрстуфхцчшщъыьэюя\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1252] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1253] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡�‰�‹�����‘’“”•–—�™�›���� ΅Ά£¤¥¦§¨©�«¬®―°±²³΄µ¶·ΈΉΊ»Ό½ΎΏΐΑΒΓΔΕΖΗΘΙΚΛΜΝΞΟΠΡ�ΣΤΥΦΧΨΩΪΫάέήίΰαβγδεζηθικλμνξοπρςστυφχψωϊϋόύώ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1254] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ����‘’“”•–—˜™š›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏĞÑÒÓÔÕÖרÙÚÛÜİŞßàáâãäåæçèéêëìíîïğñòóôõö÷øùúûüışÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1255] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹�����‘’“”•–—˜™�›���� ¡¢£₪¥¦§¨©×«¬®¯°±²³´µ¶·¸¹÷»¼½¾¿ְֱֲֳִֵֶַָֹ�ֻּֽ־ֿ׀ׁׂ׃װױײ׳״�������אבגדהוזחטיךכלםמןנסעףפץצקרשת���\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1256] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€پ‚ƒ„…†‡ˆ‰ٹ‹Œچژڈگ‘’“”•–—ک™ڑ›œں ،¢£¤¥¦§¨©ھ«¬®¯°±²³´µ¶·¸¹؛»¼½¾؟ہءآأؤإئابةتثجحخدذرزسشصض×طظعغـفقكàلâمنهوçèéêëىيîïًٌٍَôُِ÷ّùْûüے\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1257] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚�„…†‡�‰�‹�¨ˇ¸�‘’“”•–—�™�›�¯˛� �¢£¤�¦§Ø©Ŗ«¬®Æ°±²³´µ¶·ø¹ŗ»¼½¾æĄĮĀĆÄÅĘĒČÉŹĖĢĶĪĻŠŃŅÓŌÕÖ×ŲŁŚŪÜŻŽßąįāćäåęēčéźėģķīļšńņóōõö÷ųłśūüżž˙\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[1258] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰�‹Œ����‘’“”•–—˜™�›œ��Ÿ ¡¢£¤¥¦§¨©ª«¬®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂĂÄÅÆÇÈÉÊË̀ÍÎÏĐÑ̉ÓÔƠÖרÙÚÛÜỮßàáâăäåæçèéêë́íîïđṇ̃óôơö÷øùúûüư₫ÿ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10000] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤‹›fifl‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10006] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~Ĺ²É³ÖÜ΅àâä΄¨çéèê룙î‰ôö¦ùûü†ΓΔΘΛΞΠß®©ΣΪ§≠°·Α±≤≥¥ΒΕΖΗΙΚΜΦΫΨΩάΝ¬ΟΡ≈Τ«»… ΥΧΆΈœ–―“”‘’÷ΉΊΌΎέήίόΏύαβψδεφγηιξκλμνοπώρστθωςχυζϊϋΐΰ�\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10007] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~АБВГДЕЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ†°¢£§•¶І®©™Ђђ≠Ѓѓ∞±≤≥іµ∂ЈЄєЇїЉљЊњјЅ¬√ƒ≈∆«»… ЋћЌќѕ–—“”‘’÷„ЎўЏџ№Ёёяабвгдежзийклмнопрстуфхцчшщъыьэю¤\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10029] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄĀāÉĄÖÜáąČäčĆć鏟ĎíďĒēĖóėôöõúĚěü†°Ę£§•¶ß®©™ę¨≠ģĮįĪ≤≥īĶ∂∑łĻļĽľĹĺŅņѬ√ńŇ∆«»… ňŐÕőŌ–—“”‘’÷◊ōŔŕŘ‹›řŖŗŠ‚„šŚśÁŤťÍŽžŪÓÔūŮÚůŰűŲųÝýķŻŁżĢˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10079] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûüݰ¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸ⁄¤ÐðÞþý·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙıˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\ncptable[10081] = (function(){ var d = \"\\u0000\\u0001\\u0002\\u0003\\u0004\\u0005\\u0006\\u0007\\b\\t\\n\\u000b\\f\\r\\u000e\\u000f\\u0010\\u0011\\u0012\\u0013\\u0014\\u0015\\u0016\\u0017\\u0018\\u0019\\u001a\\u001b\\u001c\\u001d\\u001e\\u001f !\\\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\\\]^_`abcdefghijklmnopqrstuvwxyz{|}~ÄÅÇÉÑÖÜáàâäãåçéèêëíìîïñóòôöõúùûü†°¢£§•¶ß®©™´¨≠ÆØ∞±≤≥¥µ∂∑∏π∫ªºΩæø¿¡¬√ƒ≈∆«»… ÀÃÕŒœ–—“”‘’÷◊ÿŸĞğİıŞş‡·‚„‰ÂÊÁËÈÍÎÏÌÓÔ�ÒÚÛÙ�ˆ˜¯˘˙˚¸˝˛ˇ\", D = [], e = {}; for(var i=0;i!=d.length;++i) { if(d.charCodeAt(i) !== 0xFFFD) e[d[i]] = i; D[i] = d.charAt(i); } return {\"enc\": e, \"dec\": D }; })();\nif (typeof module !== 'undefined' && module.exports) module.exports = cptable;\n/* cputils.js (C) 2013-2014 SheetJS -- http://sheetjs.com */\n/*jshint newcap: false */\n(function(root, factory){\n \"use strict\";\n if(typeof cptable === \"undefined\") {\n if(typeof require !== \"undefined\"){\n var cpt = require('./cpt' + 'able');\n if (typeof module !== 'undefined' && module.exports) module.exports = factory(cpt);\n else root.cptable = factory(cpt);\n } else throw new Error(\"cptable not found\");\n } else cptable = factory(cptable);\n}(this, function(cpt){\n \"use strict\";\n var magic = {\n \"1200\":\"utf16le\",\n \"1201\":\"utf16be\",\n \"12000\":\"utf32le\",\n \"12001\":\"utf32be\",\n \"16969\":\"utf64le\",\n \"20127\":\"ascii\",\n \"65000\":\"utf7\",\n \"65001\":\"utf8\"\n };\n\n var sbcs_cache = [874,1250,1251,1252,1253,1254,1255,1256,10000];\n var dbcs_cache = [932,936,949,950];\n var magic_cache = [65001];\n var magic_decode = {};\n var magic_encode = {};\n var cpecache = {};\n var cpdcache = {};\n\n var sfcc = function sfcc(x) { return String.fromCharCode(x); };\n var cca = function cca(x){ return x.charCodeAt(0); };\n\n var has_buf = (typeof Buffer !== 'undefined');\n if(has_buf) {\n var mdl = 1024, mdb = new Buffer(mdl);\n var make_EE = function make_EE(E){\n var EE = new Buffer(65536);\n for(var i = 0; i < 65536;++i) EE[i] = 0;\n var keys = Object.keys(E), len = keys.length;\n for(var ee = 0, e = keys[ee]; ee < len; ++ee) {\n if(!(e = keys[ee])) continue;\n EE[e.charCodeAt(0)] = E[e];\n }\n return EE;\n };\n var sbcs_encode = function make_sbcs_encode(cp) {\n var EE = make_EE(cpt[cp].enc);\n return function sbcs_e(data, ofmt) {\n var len = data.length;\n var out, i, j, D, w;\n if(typeof data === 'string') {\n out = Buffer(len);\n for(i = 0; i < len; ++i) out[i] = EE[data.charCodeAt(i)];\n } else if(Buffer.isBuffer(data)) {\n out = Buffer(2*len);\n j = 0;\n for(i = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) out[j++] = EE[D];\n else if(D < 224) { out[j++] = EE[((D&31)<<6)+(data[i+1]&63)]; ++i; }\n else if(D < 240) { out[j++] = EE[((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63)]; i+=2; }\n else {\n w = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3;\n if(w < 65536) out[j++] = EE[w];\n else { w -= 65536; out[j++] = EE[0xD800 + ((w>>10)&1023)]; out[j++] = EE[0xDC00 + (w&1023)]; }\n }\n }\n out.length = j;\n out = out.slice(0,j);\n } else {\n out = Buffer(len);\n for(i = 0; i < len; ++i) out[i] = EE[data[i].charCodeAt(0)];\n }\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var sbcs_decode = function make_sbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = new Buffer(131072), d=0, c;\n for(d=0;d<D.length;++d) {\n if(!(c=D[d])) continue;\n var w = c.charCodeAt(0);\n DD[2*d] = w&255; DD[2*d+1] = w>>8;\n }\n return function sbcs_d(data) {\n var len = data.length, i=0, j;\n if(2 * len > mdl) { mdl = 2 * len; mdb = new Buffer(mdl); }\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n mdb[2*i] = DD[j]; mdb[2*i+1] = DD[j+1];\n }\n }\n mdb.length = 2 * len;\n return mdb.toString('ucs2');\n };\n };\n var dbcs_encode = function make_dbcs_encode(cp) {\n var E = cpt[cp].enc;\n var EE = new Buffer(131072);\n for(var i = 0; i < 131072; ++i) EE[i] = 0;\n var keys = Object.keys(E);\n for(var ee = 0, e = keys[ee]; ee < keys.length; ++ee) {\n if(!(e = keys[ee])) continue;\n var f = e.charCodeAt(0);\n EE[2*f] = E[e] & 255; EE[2*f+1] = E[e]>>8;\n }\n return function dbcs_e(data, ofmt) {\n var len = data.length, out = new Buffer(2*len), i, j, jj, k, D;\n if(typeof data === 'string') {\n for(i = k = 0; i < len; ++i) {\n j = data.charCodeAt(i)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n out.length = k;\n out = out.slice(0,k);\n } else if(Buffer.isBuffer(data)) {\n for(i = k = 0; i < len; ++i) {\n D = data[i];\n if(D < 128) j = D;\n else if(D < 224) { j = ((D&31)<<6)+(data[i+1]&63); ++i; }\n else if(D < 240) { j = ((D&15)<<12)+((data[i+1]&63)<<6)+(data[i+2]&63); i+=2; }\n else { j = ((D&7)<<18)+((data[i+1]&63)<<12)+((data[i+2]&63)<<6)+(data[i+3]&63); i+=3; }\n if(j<65536) { j*=2; out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j]; }\n else { jj = j-65536;\n j=2*(0xD800 + ((jj>>10)&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n j=2*(0xDC00 + (jj&1023)); out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n out.length = k;\n out = out.slice(0,k);\n } else {\n for(i = k = 0; i < len; i++) {\n j = data[i].charCodeAt(0)*2;\n out[k++] = EE[j+1] || EE[j]; if(EE[j+1] > 0) out[k++] = EE[j];\n }\n }\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n };\n var dbcs_decode = function make_dbcs_decode(cp) {\n var D = cpt[cp].dec;\n var DD = new Buffer(131072), d=0, c, w=0, j=0, i=0;\n for(i = 0; i < 65536; ++i) { DD[2*i] = 0xFF; DD[2*i+1] = 0xFD;}\n for(d = 0; d < D.length; ++d) {\n if(!(c=D[d])) continue;\n w = c.charCodeAt(0);\n j = 2*d;\n DD[j] = w&255; DD[j+1] = w>>8;\n }\n return function dbcs_d(data) {\n var len = data.length, out = new Buffer(2*len), i, j, k=0;\n if(Buffer.isBuffer(data)) {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else if(typeof data === \"string\") {\n for(i = 0; i < len; i++) {\n j = 2*data.charCodeAt(i);\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data.charCodeAt(i)<<8)+data.charCodeAt(i+1)); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n } else {\n for(i = 0; i < len; i++) {\n j = 2*data[i];\n if(DD[j]===0xFF && DD[j+1]===0xFD) { j=2*((data[i]<<8)+data[i+1]); ++i; }\n out[k++] = DD[j]; out[k++] = DD[j+1];\n }\n }\n out.length = k;\n return out.toString('ucs2');\n };\n };\n magic_decode[65001] = function utf8_d(data) {\n var len = data.length, w = 0, ww = 0;\n if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }\n mdb.length = 0;\n var i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(var j = 1, k = 0, D = 0; i < len; i+=j) {\n j = 1; D = data[i];\n if(D < 128) w = D;\n else if(D < 224) { w=(D&31)*64+(data[i+1]&63); j=2; }\n else if(D < 240) { w=((D&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(D&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { mdb[k++] = w&255; mdb[k++] = w>>8; }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n mdb[k++] = ww&255; mdb[k++] = ww>>>8; mdb[k++] = w&255; mdb[k++] = (w>>>8)&255;\n }\n }\n mdb.length = k;\n return mdb.toString('ucs2');\n };\n magic_encode[65001] = function utf8_e(data, ofmt) {\n var len = data.length, w = 0, ww = 0, j = 0;\n var direct = typeof data === \"string\";\n if(4 * len > mdl) { mdl = 4 * len; mdb = new Buffer(mdl); }\n for(var i = 0; i < len; ++i) {\n w = direct ? data.charCodeAt(i) : data[i].charCodeAt(0);\n if(w <= 0x007F) mdb[j++] = w;\n else if(w <= 0x07FF) {\n mdb[j++] = 192 + (w >> 6);\n mdb[j++] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800; ++i;\n ww = (direct ? data.charCodeAt(i) : data[i].charCodeAt(0)) - 0xDC00 + (w << 10);\n mdb[j++] = 240 + ((ww>>>18) & 0x07);\n mdb[j++] = 144 + ((ww>>>12) & 0x3F);\n mdb[j++] = 128 + ((ww>>>6) & 0x3F);\n mdb[j++] = 128 + (ww & 0x3F);\n } else {\n mdb[j++] = 224 + (w >> 12);\n mdb[j++] = 128 + ((w >> 6)&63);\n mdb[j++] = 128 + (w&63);\n }\n }\n mdb.length = j;\n if(ofmt === undefined || ofmt === 'buf') return mdb;\n if(ofmt !== 'arr') return mdb.toString('binary');\n return [].slice.call(mdb);\n };\n }\n\n var encache = function encache() {\n if(has_buf) {\n if(cpdcache[sbcs_cache[0]]) return;\n var i, s;\n for(i = 0; i < sbcs_cache.length; ++i) {\n s = sbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = sbcs_decode(s);\n cpecache[s] = sbcs_encode(s);\n }\n }\n for(i = 0; i < dbcs_cache.length; ++i) {\n s = dbcs_cache[i];\n if(cpt[s]) {\n cpdcache[s] = dbcs_decode(s);\n cpecache[s] = dbcs_encode(s);\n }\n }\n for(i = 0; i < magic_cache.length; ++i) {\n s = magic_cache[i];\n if(magic_decode[s]) cpdcache[s] = magic_decode[s];\n if(magic_encode[s]) cpecache[s] = magic_encode[s];\n }\n }\n };\n var cp_decache = function cp_decache(cp) { cpdcache[cp] = cpecache[cp] = undefined; };\n var decache = function decache() {\n if(has_buf) {\n if(!cpdcache[sbcs_cache[0]]) return;\n sbcs_cache.forEach(cp_decache);\n dbcs_cache.forEach(cp_decache);\n magic_cache.forEach(cp_decache);\n }\n last_enc = last_cp = undefined;\n };\n var cache = {\n encache: encache,\n decache: decache,\n sbcs: sbcs_cache,\n dbcs: dbcs_cache\n };\n\n encache();\n\n var BM = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/\";\n var SetD = \"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789'(),-./:?\";\n var last_enc, last_cp;\n var encode = function encode(cp, data, ofmt) {\n if(cp === last_cp) { return last_enc(data, ofmt); }\n if(cpecache[cp] !== undefined) { last_enc = cpecache[last_cp=cp]; return last_enc(data, ofmt); }\n if(has_buf && Buffer.isBuffer(data)) data = data.toString('utf8');\n var len = data.length;\n var out = has_buf ? new Buffer(4*len) : [], w, i, j = 0, c, tt, ww;\n var C = cpt[cp], E, M;\n if(C && (E=C.enc)) for(i = 0; i < len; ++i, ++j) {\n w = E[data[i]];\n out[j] = w&255;\n if(w > 255) {\n out[j] = w>>8;\n out[++j] = w&255;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else if(w <= 0x07FF) {\n out[j] = 192 + (w >> 6);\n out[++j] = 128 + (w&63);\n } else if(w >= 0xD800 && w <= 0xDFFF) {\n w -= 0xD800;\n ww = data[++i].charCodeAt(0) - 0xDC00 + (w << 10);\n out[j] = 240 + ((ww>>>18) & 0x07);\n out[++j] = 144 + ((ww>>>12) & 0x3F);\n out[++j] = 128 + ((ww>>>6) & 0x3F);\n out[++j] = 128 + (ww & 0x3F);\n } else {\n out[j] = 224 + (w >> 12);\n out[++j] = 128 + ((w >> 6)&63);\n out[++j] = 128 + (w&63);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i, ++j) {\n w = data[i].charCodeAt(0);\n if(w <= 0x007F) out[j] = w;\n else throw new Error(\"bad ascii \" + w);\n }\n break;\n case \"utf16le\":\n if(has_buf && typeof data === \"string\") { out = new Buffer(data, M); j = out.length; break; }\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n out[j++] = w&255;\n out[j++] = w>>8;\n }\n break;\n case \"utf16be\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n out[j++] = w>>8;\n out[j++] = w&255;\n }\n break;\n case \"utf32le\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255; w >>= 8;\n out[j++] = w&255;\n }\n break;\n case \"utf32be\":\n for(i = 0; i < len; ++i) {\n w = data[i].charCodeAt(0);\n if(w >= 0xD800 && w <= 0xDFFF) w = 0x10000 + ((w - 0xD800) << 10) + (data[++i].charCodeAt(0) - 0xDC00);\n out[j+3] = w&255; w >>= 8;\n out[j+2] = w&255; w >>= 8;\n out[j+1] = w&255; w >>= 8;\n out[j] = w&255; w >>= 8;\n j+=4;\n }\n break;\n case \"utf7\":\n for(i = 0; i < len; i++) {\n c = data[i];\n if(c === \"+\") { out[j++] = 0x2b; out[j++] = 0x2d; continue; }\n if(SetD.indexOf(c) > -1) { out[j++] = c.charCodeAt(0); continue; }\n tt = encode(1201, c);\n out[j++] = 0x2b;\n out[j++] = BM.charCodeAt(tt[0]>>2);\n out[j++] = BM.charCodeAt(((tt[0]&0x03)<<4) + ((tt[1]||0)>>4));\n out[j++] = BM.charCodeAt(((tt[1]&0x0F)<<2) + ((tt[2]||0)>>6));\n out[j++] = 0x2d;\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out.length = j;\n out = out.slice(0,j);\n if(typeof Buffer === 'undefined') return (ofmt == 'str') ? out.map(sfcc).join(\"\") : out;\n if(ofmt === undefined || ofmt === 'buf') return out;\n if(ofmt !== 'arr') return out.toString('binary');\n return [].slice.call(out);\n };\n var decode = function decode(cp, data) {\n var F; if((F=cpdcache[cp])) return F(data);\n var len = data.length, out = new Array(len), w, i, j = 1, k = 0, ww;\n var C = cpt[cp], D, M;\n if(C && (D=C.dec)) {\n if(typeof data === \"string\") data = data.split(\"\").map(cca);\n for(i = 0; i < len; i+=j) {\n j = 2;\n w = D[(data[i]<<8)+ data[i+1]];\n if(!w) {\n j = 1;\n w = D[data[i]];\n }\n if(!w) throw new Error('Unrecognized code: ' + data[i] + ' ' + data[i+j-1] + ' ' + i + ' ' + j + ' ' + D[data[i]]);\n out[k++] = w;\n }\n }\n else if((M=magic[cp])) switch(M) {\n case \"utf8\":\n i = 0;\n if(len >= 3 && data[0] == 0xEF) if(data[1] == 0xBB && data[2] == 0xBF) i = 3;\n for(; i < len; i+=j) {\n j = 1;\n if(data[i] < 128) w = data[i];\n else if(data[i] < 224) { w=(data[i]&31)*64+(data[i+1]&63); j=2; }\n else if(data[i] < 240) { w=((data[i]&15)<<12)+(data[i+1]&63)*64+(data[i+2]&63); j=3; }\n else { w=(data[i]&7)*262144+((data[i+1]&63)<<12)+(data[i+2]&63)*64+(data[i+3]&63); j=4; }\n if(w < 65536) { out[k++] = String.fromCharCode(w); }\n else {\n w -= 65536; ww = 0xD800 + ((w>>10)&1023); w = 0xDC00 + (w&1023);\n out[k++] = String.fromCharCode(ww); out[k++] = String.fromCharCode(w);\n }\n }\n break;\n case \"ascii\":\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n for(i = 0; i < len; i++) out[i] = String.fromCharCode(data[i]);\n k = len; break;\n case \"utf16le\":\n i = 0;\n if(len >= 2 && data[0] == 0xFF) if(data[1] == 0xFE) i = 2;\n if(has_buf && Buffer.isBuffer(data)) return data.toString(M);\n j = 2;\n for(; i < len; i+=j) {\n out[k++] = String.fromCharCode((data[i+1]<<8) + data[i]);\n }\n break;\n case \"utf16be\":\n i = 0;\n if(len >= 2 && data[0] == 0xFE) if(data[1] == 0xFF) i = 2;\n j = 2;\n for(; i < len; i+=j) {\n out[k++] = String.fromCharCode((data[i]<<8) + data[i+1]);\n }\n break;\n case \"utf32le\":\n i = 0;\n if(len >= 4 && data[0] == 0xFF) if(data[1] == 0xFE && data[2] == 0 && data[3] == 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i+3]<<24) + (data[i+2]<<16) + (data[i+1]<<8) + (data[i]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf32be\":\n i = 0;\n if(len >= 4 && data[3] == 0xFF) if(data[2] == 0xFE && data[1] == 0 && data[0] == 0) i = 4;\n j = 4;\n for(; i < len; i+=j) {\n w = (data[i]<<24) + (data[i+1]<<16) + (data[i+2]<<8) + (data[i+3]);\n if(w > 0xFFFF) {\n w -= 0x10000;\n out[k++] = String.fromCharCode(0xD800 + ((w >> 10) & 0x3FF));\n out[k++] = String.fromCharCode(0xDC00 + (w & 0x3FF));\n }\n else out[k++] = String.fromCharCode(w);\n }\n break;\n case \"utf7\":\n i = 0;\n if(len >= 4 && data[0] == 0x2B && data[1] == 0x2F && data[2] == 0x76) {\n if(len >= 5 && data[3] == 0x38 && data[4] == 0x2D) i = 5;\n else if(data[3] == 0x38 || data[3] == 0x39 || data[3] == 0x2B || data[3] == 0x2F) i = 4;\n }\n for(; i < len; i+=j) {\n if(data[i] !== 0x2b) { j=1; out[k++] = String.fromCharCode(data[i]); continue; }\n j=1;\n if(data[i+1] === 0x2d) { j = 2; out[k++] = \"+\"; continue; }\n while(String.fromCharCode(data[i+j]).match(/[A-Za-z0-9+\\/]/)) j++;\n var dash = 0;\n if(data[i+j] === 0x2d) { ++j; dash=1; }\n var tt = [];\n var o64;\n var c1, c2, c3;\n var e1, e2, e3, e4;\n for(var l = 1; l < j - dash;) {\n e1 = BM.indexOf(String.fromCharCode(data[i+l++]));\n e2 = BM.indexOf(String.fromCharCode(data[i+l++]));\n c1 = e1 << 2 | e2 >> 4;\n tt.push(c1);\n e3 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e3 === -1) break;\n c2 = (e2 & 15) << 4 | e3 >> 2;\n tt.push(c2);\n e4 = BM.indexOf(String.fromCharCode(data[i+l++]));\n if(e4 === -1) break;\n c3 = (e3 & 3) << 6 | e4;\n if(e4 < 64) tt.push(c3);\n }\n if((tt.length & 1) === 1) tt.length--;\n o64 = decode(1201, tt);\n for(l = 0; l < o64.length; ++l) out[k++] = o64[l];\n }\n break;\n default: throw new Error(\"Unsupported magic: \" + cp + \" \" + magic[cp]);\n }\n else throw new Error(\"Unrecognized CP: \" + cp);\n out.length = k;\n return out.join(\"\");\n };\n var hascp = function hascp(cp) { return cpt[cp] || magic[cp]; };\n cpt.utils = { decode: decode, encode: encode, hascp: hascp, magic: magic, cache:cache };\n return cpt;\n}));\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xlsx-utils/dist/cpexcel.js",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xlsx-utils/license": {
"text": "Copyright (C) 2012-2015 SheetJS\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\nExcept where noted, this license applies to any and all software programs and associated documentation files created by the Original Author and distributed with the Software:\n\n'jszip.js' is a modified version of JSZip, Copyright (c) Stuart Knightley, David Duponchel, Franz Buchinger, Ant'onio Afonso. JSZip is dual licensed and is used according to the terms of the MIT License.\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/xlsx-utils/license"
},
"$:/language/Help/xlsx-import": {
"title": "$:/language/Help/xlsx-import",
"description": "Import tiddlers from an XLSX spreadsheet file",
"text": "Imports tiddlers from an XLSX spreadsheet file\n\n```\n--xlsx-import <filename> <importSpec>\n```\n\n* ''filename'': filename of the `.xlsx` file\n* ''title'': title of the import specification tiddler to be used for the import"
},
"$:/plugins/tiddlywiki/xlsx-utils/importer.js": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/importer.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/importer.js\ntype: application/javascript\nmodule-type: library\n\nClass to import an Excel file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nvar DEFAULT_IMPORT_SPEC_TITLE = \"$:/config/plugins/tiddlywiki/xlsx-utils/default-import-spec\";\n\nvar XLSX = require(\"$:/plugins/tiddlywiki/xlsx-utils/xlsx.js\"),\n\tJSZip = require(\"$:/plugins/tiddlywiki/jszip/jszip.js\");\n\nvar XLSXImporter = function(options) {\n\tthis.filename = options.filename;\n\tthis.text = options.text;\n\tthis.importSpec = options.importSpec || $tw.wiki.getTiddlerText(DEFAULT_IMPORT_SPEC_TITLE);\n\tthis.logger = new $tw.utils.Logger(\"xlsx-utils\");\n\tthis.results = [];\n\tif(JSZip) {\n\t\tthis.processWorkbook();\t\t\n\t}\n};\n\nXLSXImporter.prototype.getResults = function() {\n\treturn this.results;\n};\n\nXLSXImporter.prototype.processWorkbook = function() {\n\t// Read the workbook\n\tif(this.filename) {\n\t\tthis.workbook = XLSX.readFile(this.filename);\t\n\t} else if(this.text) {\n\t\tthis.workbook = XLSX.read(this.text,{type:\"base64\"});\n\t}\n\t// Read the root import specification\n\tthis.rootImportSpec = $tw.wiki.getTiddler(this.importSpec);\n\tif(this.rootImportSpec) {\n\t\t// Iterate through the sheets specified in the list field\n\t\t$tw.utils.each(this.rootImportSpec.fields.list || [],this.processSheet.bind(this));\n\t}\n};\n\nXLSXImporter.prototype.processSheet = function(sheetImportSpecTitle) {\n\t// Get the sheet import specifier\n\tthis.sheetImportSpec = $tw.wiki.getTiddler(sheetImportSpecTitle);\n\tif(this.sheetImportSpec) {\n\t\tthis.sheetName = this.sheetImportSpec.fields[\"import-sheet-name\"];\n\t\tthis.sheet = this.workbook.Sheets[this.sheetName];\n\t\tif(!this.sheet) {\n\t\t\tthis.logger.alert(\"Missing sheet '\" + this.sheetName + \"'\");\n\t\t} else {\n\t\t\t// Get the size of the sheet\n\t\t\tthis.sheetSize = this.measureSheet(this.sheet);\n\t\t\t// Read the column names from the first row\n\t\t\tthis.columnsByName = this.findColumns(this.sheet,this.sheetSize);\n\t\t\t// Iterate through the rows\n\t\t\tfor(this.row=this.sheetSize.startRow+1; this.row<=this.sheetSize.endRow; this.row++) {\n\t\t\t\t// Iterate through the row import specifiers\n\t\t\t\t$tw.utils.each(this.sheetImportSpec.fields.list || [],this.processRow.bind(this));\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n};\n\nXLSXImporter.prototype.processRow = function(rowImportSpecTitle) {\n\tthis.rowImportSpec = $tw.wiki.getTiddler(rowImportSpecTitle);\n\tif(this.rowImportSpec) {\n\t\tthis.tiddlerFields = {};\n\t\tthis.skipTiddler = false;\n\t\t// Determine the type of row\n\t\tthis.rowType = this.rowImportSpec.fields[\"import-row-type\"] || \"by-field\";\n\t\tswitch(this.rowType) {\n\t\t\tcase \"by-column\":\n\t\t\t\tthis.processRowByColumn();\n\t\t\t\tbreak;\n\t\t\tcase \"by-field\":\n\t\t\t\tthis.processRowByField();\n\t\t\t\tbreak;\n\t\t}\n\t\t// Save the tiddler if not skipped\n\t\tif(!this.skipTiddler) {\n\t\t\tif(!this.tiddlerFields.title) {\n\t\t\t\tthis.logger.alert(\"Missing title field for \" + JSON.stringify(this.tiddlerFields));\n\t\t\t}\n\t\t\tthis.results.push(this.tiddlerFields);\t\t\t\t\t\t\t\t\n\t\t}\n\t}\n};\n\nXLSXImporter.prototype.processRowByColumn = function() {\n\tvar self = this;\n\t// Iterate through the columns for the row\n\t$tw.utils.each(this.columnsByName,function(index,name) {\n\t\tvar cell = self.sheet[XLSX.utils.encode_cell({c: self.columnsByName[name], r: self.row})];\n\t\tname = name.toLowerCase();\n\t\tif(cell && cell.w && $tw.utils.isValidFieldName(name)) {\n\t\t\tself.tiddlerFields[name] = cell.w;\t\t\n\t\t}\n\t});\n\t// Skip the tiddler entirely if it doesn't have a title\n\tif(!this.tiddlerFields.title) {\n\t\tthis.skipTiddler = true;\n\t}\n};\n\nXLSXImporter.prototype.processRowByField = function() {\n\t// Iterate through the fields for the row\n\t$tw.utils.each(this.rowImportSpec.fields.list || [],this.processField.bind(this));\n};\n\nXLSXImporter.prototype.processField = function(fieldImportSpecTitle) {\n\tvar fieldImportSpec = $tw.wiki.getTiddler(fieldImportSpecTitle);\n\tif(fieldImportSpec) {\n\t\tvar fieldName = fieldImportSpec.fields[\"import-field-name\"],\n\t\t\tvalue;\n\t\tswitch(fieldImportSpec.fields[\"import-field-source\"]) {\n\t\t\tcase \"column\":\n\t\t\t\tvar columnName = fieldImportSpec.fields[\"import-field-column\"],\n\t\t\t\t\tcell = this.sheet[XLSX.utils.encode_cell({c: this.columnsByName[columnName], r: this.row})];\n\t\t\t\tif(cell) {\n\t\t\t\t\tswitch(fieldImportSpec.fields[\"import-field-type\"] || \"string\") {\n\t\t\t\t\t\tcase \"date\":\n\t\t\t\t\t\t\tif(cell.t === \"n\") {\n\t\t\t\t\t\t\t\tvalue = $tw.utils.stringifyDate(new Date((cell.v - (25567 + 2)) * 86400 * 1000));\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\tcase \"string\":\n\t\t\t\t\t\t\t// Intentional fall-through\n\t\t\t\t\t\tdefault:\n\t\t\t\t\t\t\tvalue = cell.w;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tbreak;\n\t\t\tcase \"constant\":\n\t\t\t\tvalue = fieldImportSpec.fields[\"import-field-value\"]\n\t\t\t\tbreak;\n\t\t}\n\t\tvalue = (value || \"\").trim();\n\t\tif(value === \"\") {\n\t\t\tif((fieldImportSpec.fields[\"import-field-skip-tiddler-if-blank\"] || \"\").trim().toLowerCase() === \"yes\") {\n\t\t\t\tthis.skipTiddler = true;\n\t\t\t}\n\t\t\tif(fieldImportSpec.fields[\"import-field-replace-blank\"]) {\n\t\t\t\tvalue = fieldImportSpec.fields[\"import-field-replace-blank\"];\n\t\t\t}\n\t\t}\n\t\tif(fieldImportSpec.fields[\"import-field-prefix\"]) {\n\t\t\tvalue = fieldImportSpec.fields[\"import-field-prefix\"] + value;\n\t\t}\n\t\tif(fieldImportSpec.fields[\"import-field-suffix\"]) {\n\t\t\tvalue = value + fieldImportSpec.fields[\"import-field-suffix\"];\n\t\t}\n\t\tswitch(fieldImportSpec.fields[\"import-field-list-op\"] || \"none\") {\n\t\t\tcase \"none\":\n\t\t\t\tthis.tiddlerFields[fieldName] = value;\n\t\t\t\tbreak;\n\t\t\tcase \"append\":\n\t\t\t\tvar list = $tw.utils.parseStringArray(this.tiddlerFields[fieldName] || \"\");\n\t\t\t\t$tw.utils.pushTop(list,value)\n\t\t\t\tthis.tiddlerFields[fieldName] = list;\n\t\t\t\tbreak;\n\t\t}\n\t}\n}\n\nXLSXImporter.prototype.measureSheet = function(sheet) {\n\tvar sheetRange = XLSX.utils.decode_range(sheet[\"!ref\"]);\n\treturn {\n\t\tstartRow: Math.min(sheetRange.s.r,sheetRange.e.r),\n\t\tendRow: Math.max(sheetRange.s.r,sheetRange.e.r),\n\t\tstartCol: Math.min(sheetRange.s.c,sheetRange.e.c),\n\t\tendCol: Math.max(sheetRange.s.c,sheetRange.e.c)\n\t}\n};\n\nXLSXImporter.prototype.findColumns = function(sheet,sheetSize) {\n\tvar columnsByName = {};\n\tfor(var col=sheetSize.startCol; col<=sheetSize.endCol; col++) {\n\t\tvar cell = sheet[XLSX.utils.encode_cell({c: col, r: sheetSize.startRow})],\n\t\t\tcolumnName;\n\t\tif(cell) {\n\t\t\tcolumnName = cell.w;\n\t\t\tif(columnName) {\n\t\t\t\tcolumnsByName[columnName] = col;\t\t\t\t\t\t\t\n\t\t\t}\n\t\t}\n\t}\n\treturn columnsByName;\n};\n\nexports.XLSXImporter = XLSXImporter;\n\n})();\n",
"type": "application/javascript",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xlsx-utils/readme": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/readme",
"text": "This plugin provides a flexible way to import tiddlers from Excel files. It is based on the library [[js-xlsx|https://github.com/SheetJS/js-xlsx]].\n\nThe plugin uses //import specifications// to determine how incoming spreadsheets are processed. You can view, create and edit import specifications in the control panel \"XLSX Utilities\" tab, or directly in the [[plugin controls|$:/plugins/tiddlywiki/xlsx-utils]]. This is also where you select which import specification is selected for use during the next import operation.\n\nEach sheet is expected to consist of a single header row followed by multiple content rows, each consisting of an independent record. The plugin automatically detects the extent of each sheet by looking for the bottom right cell that contains a value. This can lead to unexpected results if a cell is accidentally created with an invisible, blank value.\n\nImport specifications describe how tiddlers are created from a particular row of a sheet; multiple tiddlers can be generated from a single row. (Conversely, if different rows yield tiddlers with the same title then they will overwrite one another).\n\nEach field of each tiddler can be assigned a constant value, or a value taken from a named column of the sheet, optionally with a prefix and/or suffix added. There is special support for handling list fields (like the tags field), with the ability to append new items to the list.\n\nInternally, each import specifier is actually modelled as a hierarchy of connected tiddlers with the field ''import-spec-role'' indicating the following roles:\n\n* ''workbook'': describes the sheets to be imported from the workbook\n* ''sheet'': describes each sheet to be processed\n* ''row'': describes the tiddlers to be imported from each row of each sheet\n* ''field'': describes the fields to be assigned to each tiddler from each row of each sheet\n\nThe easiest way to understand the structure is to explore the example import specifications, and the corresponding spreadsheets they are designed to handle.\n\nNote that there are many possible different ways of importing a particular spreadsheet, depending on whether the structures are modelled with fields, tags, prefixes or other mechanisms. The plugin is designed to support a wide range of applications.\n\nThis plugin also requires the JSZip plugin ([[$:/plugins/tiddlywiki/jszip]]) to be installed.\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/startup.js": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/startup.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/startup.js\ntype: application/javascript\nmodule-type: startup\n\nInitialisation\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\n// Export name and synchronous status\nexports.name = \"xlsx-startup\";\nexports.after = [\"load-modules\"];\nexports.synchronous = true;\n\nexports.startup = function() {\n\t// Check JSZip is installed\n\tif(!$tw.utils.hop($tw.modules.titles,\"$:/plugins/tiddlywiki/jszip/jszip.js\")) {\n\t\t// Make a logger\n\t\tvar logger = new $tw.utils.Logger(\"xlsx-utils\");\n\t\tlogger.alert(\"The plugin 'xlsx-utils' requires the 'jszip' plugin to be installed\");\n\t}\n};\n\n})();\n",
"type": "application/javascript",
"module-type": "startup"
},
"$:/plugins/tiddlywiki/xlsx-utils/styles": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/styles",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define quick-colour-selector-background() #bac0f1\n\\define quick-colour-selector-border() #9196c1\n\n\\define quick-colour-editor-background() #bae3f1\n\\define quick-colour-editor-controls() #d2ffff\n\\define quick-colour-editor-border() #97b8c3\n\n\\define quick-colour-workbook-background() #baf1db\n\\define quick-colour-workbook-controls() #d3fff6\n\\define quick-colour-workbook-border() #98c3b2\n\n\\define quick-colour-sheet-background() #f1ebba\n\\define quick-colour-sheet-controls() #fffed3\n\\define quick-colour-sheet-border() #c4be98\n\n\\define quick-colour-row-background() #f1baba\n\\define quick-colour-row-controls() #fed1d2\n\\define quick-colour-row-border() #c39697\n\n\\define quick-colour-field-background() #e0d4fb\n\\define quick-colour-field-controls() #fcefff\n\\define quick-colour-field-border() #b6adcb\n\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-import-spec-selector {\n\tborder: 1px solid <<quick-colour-selector-border>>;\n\tbackground-color: <<quick-colour-selector-background>>;\n\tpadding: 0.25em;\n}\n\n.tc-import-spec-editor-wrapper {\n\tborder: 1px solid <<quick-colour-editor-border>>;\n\tbackground-color: <<quick-colour-editor-background>>;\n\tpadding: 0.25em;\n}\n\n.tc-import-spec-editor {\n\tborder: 1px solid <<quick-colour-editor-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-editor-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-editor-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-editor-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-editor-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-editor-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-editor-background>>;\n}\n\n.tc-import-spec-editor-list {\n}\n\n.tc-import-spec-workbook-wrapper {\n\tborder: 1px solid <<quick-colour-workbook-border>>;\n\tbackground-color: <<quick-colour-workbook-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-workbook {\n\tborder: 1px solid <<quick-colour-workbook-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-workbook-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-workbook-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-workbook-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-workbook-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-workbook-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-workbook-background>>;\n}\n\n.tc-import-spec-workbook-list {\n}\n\n.tc-import-spec-sheet-wrapper {\n\tborder: 1px solid <<quick-colour-sheet-border>>;\n\tbackground-color: <<quick-colour-sheet-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-sheet {\n\tborder: 1px solid <<quick-colour-sheet-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-sheet-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-sheet-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-sheet-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-sheet-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-sheet-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-sheet-background>>;\n}\n\n.tc-import-spec-sheet-list {\n}\n\n.tc-import-spec-row-wrapper {\n\tborder: 1px solid <<quick-colour-row-border>>;\n\tbackground-color: <<quick-colour-row-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n\n.tc-import-spec-row {\n\tborder: 1px solid <<quick-colour-row-border>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.25em;\n}\n\n.tc-import-spec-row-controls {\n\tdisplay: block;\n\tbackground-color: <<quick-colour-row-controls>>;\n\tborder-bottom: 1px solid <<quick-colour-row-background>>;\n\tpadding: 0;\n\tmargin: 0;\n\tlist-style: none;\n}\n\n.tc-import-spec-row-controls li {\n\tpadding: 0.25em 0.5em;\n}\n\n.tc-import-spec-row-controls li:not(:last-child) {\n\tborder-bottom: 1px solid <<quick-colour-row-background>>;\n}\n\n.tc-import-spec-row-list {\n\tlist-style: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-import-spec-field-wrapper {\n\tfont-size: 0.9em;\n\tborder: 1px solid <<quick-colour-field-border>>;\n\tbackground-color: <<quick-colour-field-background>>;\n\tpadding: 0.25em;\n\tmargin: 0.5em;\n}\n"
},
"$:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js": {
"title": "$:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js",
"text": "/*\\\ntitle: $:/plugins/tiddlywiki/xlsx-utils/xlsx-import-command.js\ntype: application/javascript\nmodule-type: command\n\nCommand to import an xlsx file\n\n\\*/\n(function(){\n\n/*jslint node: true, browser: true */\n/*global $tw: false */\n\"use strict\";\n\nexports.info = {\n\tname: \"xlsx-import\",\n\tsynchronous: true\n};\n\nvar Command = function(params,commander,callback) {\n\tthis.params = params;\n\tthis.commander = commander;\n\tthis.callback = callback;\n};\n\nCommand.prototype.execute = function() {\n\tif(this.params.length < 1) {\n\t\treturn \"Missing parameters\";\n\t}\n\tvar self = this,\n\t\twiki = this.commander.wiki,\n\t\tfilename = this.params[0],\n\t\timportSpec = this.params[1],\n\t\tXLSXImporter = require(\"$:/plugins/tiddlywiki/xlsx-utils/importer.js\").XLSXImporter,\n\t\timporter = new XLSXImporter({\n\t\t\tfilename: filename,\n\t\t\timportSpec: importSpec\n\t\t});\n\t$tw.wiki.addTiddlers(importer.getResults());\n\treturn null;\n};\n\nexports.Command = Command;\n\n})();\n",
"type": "application/javascript",
"module-type": "command"
}
}
}
{
"tiddlers": {
"$:/plugins/tiddlywiki/xmldom/dom": {
"text": "/*\n * DOM Level 2\n * Object DOMException\n * @see http://www.w3.org/TR/REC-DOM-Level-1/ecma-script-language-binding.html\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/ecma-script-binding.html\n */\n\nfunction copy(src,dest){\n\tfor(var p in src){\n\t\tdest[p] = src[p];\n\t}\n}\n/**\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*((?:.*\\{\\s*?[\\r\\n][\\s\\S]*?^})|\\S.*?(?=[;\\r\\n]));?\n^\\w+\\.prototype\\.([_\\w]+)\\s*=\\s*(\\S.*?(?=[;\\r\\n]));?\n */\nfunction _extends(Class,Super){\n\tvar pt = Class.prototype;\n\tif(Object.create){\n\t\tvar ppt = Object.create(Super.prototype)\n\t\tpt.__proto__ = ppt;\n\t}\n\tif(!(pt instanceof Super)){\n\t\tfunction t(){};\n\t\tt.prototype = Super.prototype;\n\t\tt = new t();\n\t\tcopy(pt,t);\n\t\tClass.prototype = pt = t;\n\t}\n\tif(pt.constructor != Class){\n\t\tif(typeof Class != 'function'){\n\t\t\tconsole.error(\"unknow Class:\"+Class)\n\t\t}\n\t\tpt.constructor = Class\n\t}\n}\nvar htmlns = 'http://www.w3.org/1999/xhtml' ;\n// Node Types\nvar NodeType = {}\nvar ELEMENT_NODE = NodeType.ELEMENT_NODE = 1;\nvar ATTRIBUTE_NODE = NodeType.ATTRIBUTE_NODE = 2;\nvar TEXT_NODE = NodeType.TEXT_NODE = 3;\nvar CDATA_SECTION_NODE = NodeType.CDATA_SECTION_NODE = 4;\nvar ENTITY_REFERENCE_NODE = NodeType.ENTITY_REFERENCE_NODE = 5;\nvar ENTITY_NODE = NodeType.ENTITY_NODE = 6;\nvar PROCESSING_INSTRUCTION_NODE = NodeType.PROCESSING_INSTRUCTION_NODE = 7;\nvar COMMENT_NODE = NodeType.COMMENT_NODE = 8;\nvar DOCUMENT_NODE = NodeType.DOCUMENT_NODE = 9;\nvar DOCUMENT_TYPE_NODE = NodeType.DOCUMENT_TYPE_NODE = 10;\nvar DOCUMENT_FRAGMENT_NODE = NodeType.DOCUMENT_FRAGMENT_NODE = 11;\nvar NOTATION_NODE = NodeType.NOTATION_NODE = 12;\n\n// ExceptionCode\nvar ExceptionCode = {}\nvar ExceptionMessage = {};\nvar INDEX_SIZE_ERR = ExceptionCode.INDEX_SIZE_ERR = ((ExceptionMessage[1]=\"Index size error\"),1);\nvar DOMSTRING_SIZE_ERR = ExceptionCode.DOMSTRING_SIZE_ERR = ((ExceptionMessage[2]=\"DOMString size error\"),2);\nvar HIERARCHY_REQUEST_ERR = ExceptionCode.HIERARCHY_REQUEST_ERR = ((ExceptionMessage[3]=\"Hierarchy request error\"),3);\nvar WRONG_DOCUMENT_ERR = ExceptionCode.WRONG_DOCUMENT_ERR = ((ExceptionMessage[4]=\"Wrong document\"),4);\nvar INVALID_CHARACTER_ERR = ExceptionCode.INVALID_CHARACTER_ERR = ((ExceptionMessage[5]=\"Invalid character\"),5);\nvar NO_DATA_ALLOWED_ERR = ExceptionCode.NO_DATA_ALLOWED_ERR = ((ExceptionMessage[6]=\"No data allowed\"),6);\nvar NO_MODIFICATION_ALLOWED_ERR = ExceptionCode.NO_MODIFICATION_ALLOWED_ERR = ((ExceptionMessage[7]=\"No modification allowed\"),7);\nvar NOT_FOUND_ERR = ExceptionCode.NOT_FOUND_ERR = ((ExceptionMessage[8]=\"Not found\"),8);\nvar NOT_SUPPORTED_ERR = ExceptionCode.NOT_SUPPORTED_ERR = ((ExceptionMessage[9]=\"Not supported\"),9);\nvar INUSE_ATTRIBUTE_ERR = ExceptionCode.INUSE_ATTRIBUTE_ERR = ((ExceptionMessage[10]=\"Attribute in use\"),10);\n//level2\nvar INVALID_STATE_ERR \t= ExceptionCode.INVALID_STATE_ERR \t= ((ExceptionMessage[11]=\"Invalid state\"),11);\nvar SYNTAX_ERR \t= ExceptionCode.SYNTAX_ERR \t= ((ExceptionMessage[12]=\"Syntax error\"),12);\nvar INVALID_MODIFICATION_ERR \t= ExceptionCode.INVALID_MODIFICATION_ERR \t= ((ExceptionMessage[13]=\"Invalid modification\"),13);\nvar NAMESPACE_ERR \t= ExceptionCode.NAMESPACE_ERR \t= ((ExceptionMessage[14]=\"Invalid namespace\"),14);\nvar INVALID_ACCESS_ERR \t= ExceptionCode.INVALID_ACCESS_ERR \t= ((ExceptionMessage[15]=\"Invalid access\"),15);\n\n\nfunction DOMException(code, message) {\n\tif(message instanceof Error){\n\t\tvar error = message;\n\t}else{\n\t\terror = this;\n\t\tError.call(this, ExceptionMessage[code]);\n\t\tthis.message = ExceptionMessage[code];\n\t\tif(Error.captureStackTrace) Error.captureStackTrace(this, DOMException);\n\t}\n\terror.code = code;\n\tif(message) this.message = this.message + \": \" + message;\n\treturn error;\n};\nDOMException.prototype = Error.prototype;\ncopy(ExceptionCode,DOMException)\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-536297177\n * The NodeList interface provides the abstraction of an ordered collection of nodes, without defining or constraining how this collection is implemented. NodeList objects in the DOM are live.\n * The items in the NodeList are accessible via an integral index, starting from 0.\n */\nfunction NodeList() {\n};\nNodeList.prototype = {\n\t/**\n\t * The number of nodes in the list. The range of valid child node indices is 0 to length-1 inclusive.\n\t * @standard level1\n\t */\n\tlength:0, \n\t/**\n\t * Returns the indexth item in the collection. If index is greater than or equal to the number of nodes in the list, this returns null.\n\t * @standard level1\n\t * @param index unsigned long \n\t * Index into the collection.\n\t * @return Node\n\t * \tThe node at the indexth position in the NodeList, or null if that is not a valid index. \n\t */\n\titem: function(index) {\n\t\treturn this[index] || null;\n\t},\n\ttoString:function(isHTML,nodeFilter){\n\t\tfor(var buf = [], i = 0;i<this.length;i++){\n\t\t\tserializeToString(this[i],buf,isHTML,nodeFilter);\n\t\t}\n\t\treturn buf.join('');\n\t}\n};\nfunction LiveNodeList(node,refresh){\n\tthis._node = node;\n\tthis._refresh = refresh\n\t_updateLiveList(this);\n}\nfunction _updateLiveList(list){\n\tvar inc = list._node._inc || list._node.ownerDocument._inc;\n\tif(list._inc != inc){\n\t\tvar ls = list._refresh(list._node);\n\t\t//console.log(ls.length)\n\t\t__set__(list,'length',ls.length);\n\t\tcopy(ls,list);\n\t\tlist._inc = inc;\n\t}\n}\nLiveNodeList.prototype.item = function(i){\n\t_updateLiveList(this);\n\treturn this[i];\n}\n\n_extends(LiveNodeList,NodeList);\n/**\n * \n * Objects implementing the NamedNodeMap interface are used to represent collections of nodes that can be accessed by name. Note that NamedNodeMap does not inherit from NodeList; NamedNodeMaps are not maintained in any particular order. Objects contained in an object implementing NamedNodeMap may also be accessed by an ordinal index, but this is simply to allow convenient enumeration of the contents of a NamedNodeMap, and does not imply that the DOM specifies an order to these Nodes.\n * NamedNodeMap objects in the DOM are live.\n * used for attributes or DocumentType entities \n */\nfunction NamedNodeMap() {\n};\n\nfunction _findNodeIndex(list,node){\n\tvar i = list.length;\n\twhile(i--){\n\t\tif(list[i] === node){return i}\n\t}\n}\n\nfunction _addNamedNode(el,list,newAttr,oldAttr){\n\tif(oldAttr){\n\t\tlist[_findNodeIndex(list,oldAttr)] = newAttr;\n\t}else{\n\t\tlist[list.length++] = newAttr;\n\t}\n\tif(el){\n\t\tnewAttr.ownerElement = el;\n\t\tvar doc = el.ownerDocument;\n\t\tif(doc){\n\t\t\toldAttr && _onRemoveAttribute(doc,el,oldAttr);\n\t\t\t_onAddAttribute(doc,el,newAttr);\n\t\t}\n\t}\n}\nfunction _removeNamedNode(el,list,attr){\n\t//console.log('remove attr:'+attr)\n\tvar i = _findNodeIndex(list,attr);\n\tif(i>=0){\n\t\tvar lastIndex = list.length-1\n\t\twhile(i<lastIndex){\n\t\t\tlist[i] = list[++i]\n\t\t}\n\t\tlist.length = lastIndex;\n\t\tif(el){\n\t\t\tvar doc = el.ownerDocument;\n\t\t\tif(doc){\n\t\t\t\t_onRemoveAttribute(doc,el,attr);\n\t\t\t\tattr.ownerElement = null;\n\t\t\t}\n\t\t}\n\t}else{\n\t\tthrow DOMException(NOT_FOUND_ERR,new Error(el.tagName+'@'+attr))\n\t}\n}\nNamedNodeMap.prototype = {\n\tlength:0,\n\titem:NodeList.prototype.item,\n\tgetNamedItem: function(key) {\n//\t\tif(key.indexOf(':')>0 || key == 'xmlns'){\n//\t\t\treturn null;\n//\t\t}\n\t\t//console.log()\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar attr = this[i];\n\t\t\t//console.log(attr.nodeName,key)\n\t\t\tif(attr.nodeName == key){\n\t\t\t\treturn attr;\n\t\t\t}\n\t\t}\n\t},\n\tsetNamedItem: function(attr) {\n\t\tvar el = attr.ownerElement;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\tvar oldAttr = this.getNamedItem(attr.nodeName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\t/* returns Node */\n\tsetNamedItemNS: function(attr) {// raises: WRONG_DOCUMENT_ERR,NO_MODIFICATION_ALLOWED_ERR,INUSE_ATTRIBUTE_ERR\n\t\tvar el = attr.ownerElement, oldAttr;\n\t\tif(el && el!=this._ownerElement){\n\t\t\tthrow new DOMException(INUSE_ATTRIBUTE_ERR);\n\t\t}\n\t\toldAttr = this.getNamedItemNS(attr.namespaceURI,attr.localName);\n\t\t_addNamedNode(this._ownerElement,this,attr,oldAttr);\n\t\treturn oldAttr;\n\t},\n\n\t/* returns Node */\n\tremoveNamedItem: function(key) {\n\t\tvar attr = this.getNamedItem(key);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t\t\n\t\t\n\t},// raises: NOT_FOUND_ERR,NO_MODIFICATION_ALLOWED_ERR\n\t\n\t//for level2\n\tremoveNamedItemNS:function(namespaceURI,localName){\n\t\tvar attr = this.getNamedItemNS(namespaceURI,localName);\n\t\t_removeNamedNode(this._ownerElement,this,attr);\n\t\treturn attr;\n\t},\n\tgetNamedItemNS: function(namespaceURI, localName) {\n\t\tvar i = this.length;\n\t\twhile(i--){\n\t\t\tvar node = this[i];\n\t\t\tif(node.localName == localName && node.namespaceURI == namespaceURI){\n\t\t\t\treturn node;\n\t\t\t}\n\t\t}\n\t\treturn null;\n\t}\n};\n/**\n * @see http://www.w3.org/TR/REC-DOM-Level-1/level-one-core.html#ID-102161490\n */\nfunction DOMImplementation(/* Object */ features) {\n\tthis._features = {};\n\tif (features) {\n\t\tfor (var feature in features) {\n\t\t\t this._features = features[feature];\n\t\t}\n\t}\n};\n\nDOMImplementation.prototype = {\n\thasFeature: function(/* string */ feature, /* string */ version) {\n\t\tvar versions = this._features[feature.toLowerCase()];\n\t\tif (versions && (!version || version in versions)) {\n\t\t\treturn true;\n\t\t} else {\n\t\t\treturn false;\n\t\t}\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocument:function(namespaceURI, qualifiedName, doctype){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR,WRONG_DOCUMENT_ERR\n\t\tvar doc = new Document();\n\t\tdoc.implementation = this;\n\t\tdoc.childNodes = new NodeList();\n\t\tdoc.doctype = doctype;\n\t\tif(doctype){\n\t\t\tdoc.appendChild(doctype);\n\t\t}\n\t\tif(qualifiedName){\n\t\t\tvar root = doc.createElementNS(namespaceURI,qualifiedName);\n\t\t\tdoc.appendChild(root);\n\t\t}\n\t\treturn doc;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateDocumentType:function(qualifiedName, publicId, systemId){// raises:INVALID_CHARACTER_ERR,NAMESPACE_ERR\n\t\tvar node = new DocumentType();\n\t\tnode.name = qualifiedName;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.publicId = publicId;\n\t\tnode.systemId = systemId;\n\t\t// Introduced in DOM Level 2:\n\t\t//readonly attribute DOMString internalSubset;\n\t\t\n\t\t//TODO:..\n\t\t// readonly attribute NamedNodeMap entities;\n\t\t// readonly attribute NamedNodeMap notations;\n\t\treturn node;\n\t}\n};\n\n\n/**\n * @see http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113/core.html#ID-1950641247\n */\n\nfunction Node() {\n};\n\nNode.prototype = {\n\tfirstChild : null,\n\tlastChild : null,\n\tpreviousSibling : null,\n\tnextSibling : null,\n\tattributes : null,\n\tparentNode : null,\n\tchildNodes : null,\n\townerDocument : null,\n\tnodeValue : null,\n\tnamespaceURI : null,\n\tprefix : null,\n\tlocalName : null,\n\t// Modified in DOM Level 2:\n\tinsertBefore:function(newChild, refChild){//raises \n\t\treturn _insertBefore(this,newChild,refChild);\n\t},\n\treplaceChild:function(newChild, oldChild){//raises \n\t\tthis.insertBefore(newChild,oldChild);\n\t\tif(oldChild){\n\t\t\tthis.removeChild(oldChild);\n\t\t}\n\t},\n\tremoveChild:function(oldChild){\n\t\treturn _removeChild(this,oldChild);\n\t},\n\tappendChild:function(newChild){\n\t\treturn this.insertBefore(newChild,null);\n\t},\n\thasChildNodes:function(){\n\t\treturn this.firstChild != null;\n\t},\n\tcloneNode:function(deep){\n\t\treturn cloneNode(this.ownerDocument||this,this,deep);\n\t},\n\t// Modified in DOM Level 2:\n\tnormalize:function(){\n\t\tvar child = this.firstChild;\n\t\twhile(child){\n\t\t\tvar next = child.nextSibling;\n\t\t\tif(next && next.nodeType == TEXT_NODE && child.nodeType == TEXT_NODE){\n\t\t\t\tthis.removeChild(next);\n\t\t\t\tchild.appendData(next.data);\n\t\t\t}else{\n\t\t\t\tchild.normalize();\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t}\n\t},\n \t// Introduced in DOM Level 2:\n\tisSupported:function(feature, version){\n\t\treturn this.ownerDocument.implementation.hasFeature(feature,version);\n\t},\n // Introduced in DOM Level 2:\n hasAttributes:function(){\n \treturn this.attributes.length>0;\n },\n lookupPrefix:function(namespaceURI){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tfor(var n in map){\n \t\t\t\tif(map[n] == namespaceURI){\n \t\t\t\t\treturn n;\n \t\t\t\t}\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n lookupNamespaceURI:function(prefix){\n \tvar el = this;\n \twhile(el){\n \t\tvar map = el._nsMap;\n \t\t//console.dir(map)\n \t\tif(map){\n \t\t\tif(prefix in map){\n \t\t\t\treturn map[prefix] ;\n \t\t\t}\n \t\t}\n \t\tel = el.nodeType == ATTRIBUTE_NODE?el.ownerDocument : el.parentNode;\n \t}\n \treturn null;\n },\n // Introduced in DOM Level 3:\n isDefaultNamespace:function(namespaceURI){\n \tvar prefix = this.lookupPrefix(namespaceURI);\n \treturn prefix == null;\n }\n};\n\n\nfunction _xmlEncoder(c){\n\treturn c == '<' && '<' ||\n c == '>' && '>' ||\n c == '&' && '&' ||\n c == '\"' && '"' ||\n '&#'+c.charCodeAt()+';'\n}\n\n\ncopy(NodeType,Node);\ncopy(NodeType,Node.prototype);\n\n/**\n * @param callback return true for continue,false for break\n * @return boolean true: break visit;\n */\nfunction _visitNode(node,callback){\n\tif(callback(node)){\n\t\treturn true;\n\t}\n\tif(node = node.firstChild){\n\t\tdo{\n\t\t\tif(_visitNode(node,callback)){return true}\n }while(node=node.nextSibling)\n }\n}\n\n\n\nfunction Document(){\n}\nfunction _onAddAttribute(doc,el,newAttr){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tel._nsMap[newAttr.prefix?newAttr.localName:''] = newAttr.value\n\t}\n}\nfunction _onRemoveAttribute(doc,el,newAttr,remove){\n\tdoc && doc._inc++;\n\tvar ns = newAttr.namespaceURI ;\n\tif(ns == 'http://www.w3.org/2000/xmlns/'){\n\t\t//update namespace\n\t\tdelete el._nsMap[newAttr.prefix?newAttr.localName:'']\n\t}\n}\nfunction _onUpdateChild(doc,el,newChild){\n\tif(doc && doc._inc){\n\t\tdoc._inc++;\n\t\t//update childNodes\n\t\tvar cs = el.childNodes;\n\t\tif(newChild){\n\t\t\tcs[cs.length++] = newChild;\n\t\t}else{\n\t\t\t//console.log(1)\n\t\t\tvar child = el.firstChild;\n\t\t\tvar i = 0;\n\t\t\twhile(child){\n\t\t\t\tcs[i++] = child;\n\t\t\t\tchild =child.nextSibling;\n\t\t\t}\n\t\t\tcs.length = i;\n\t\t}\n\t}\n}\n\n/**\n * attributes;\n * children;\n * \n * writeable properties:\n * nodeValue,Attr:value,CharacterData:data\n * prefix\n */\nfunction _removeChild(parentNode,child){\n\tvar previous = child.previousSibling;\n\tvar next = child.nextSibling;\n\tif(previous){\n\t\tprevious.nextSibling = next;\n\t}else{\n\t\tparentNode.firstChild = next\n\t}\n\tif(next){\n\t\tnext.previousSibling = previous;\n\t}else{\n\t\tparentNode.lastChild = previous;\n\t}\n\t_onUpdateChild(parentNode.ownerDocument,parentNode);\n\treturn child;\n}\n/**\n * preformance key(refChild == null)\n */\nfunction _insertBefore(parentNode,newChild,nextChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tcp.removeChild(newChild);//remove and update\n\t}\n\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\tvar newFirst = newChild.firstChild;\n\t\tif (newFirst == null) {\n\t\t\treturn newChild;\n\t\t}\n\t\tvar newLast = newChild.lastChild;\n\t}else{\n\t\tnewFirst = newLast = newChild;\n\t}\n\tvar pre = nextChild ? nextChild.previousSibling : parentNode.lastChild;\n\n\tnewFirst.previousSibling = pre;\n\tnewLast.nextSibling = nextChild;\n\t\n\t\n\tif(pre){\n\t\tpre.nextSibling = newFirst;\n\t}else{\n\t\tparentNode.firstChild = newFirst;\n\t}\n\tif(nextChild == null){\n\t\tparentNode.lastChild = newLast;\n\t}else{\n\t\tnextChild.previousSibling = newLast;\n\t}\n\tdo{\n\t\tnewFirst.parentNode = parentNode;\n\t}while(newFirst !== newLast && (newFirst= newFirst.nextSibling))\n\t_onUpdateChild(parentNode.ownerDocument||parentNode,parentNode);\n\t//console.log(parentNode.lastChild.nextSibling == null)\n\tif (newChild.nodeType == DOCUMENT_FRAGMENT_NODE) {\n\t\tnewChild.firstChild = newChild.lastChild = null;\n\t}\n\treturn newChild;\n}\nfunction _appendSingleChild(parentNode,newChild){\n\tvar cp = newChild.parentNode;\n\tif(cp){\n\t\tvar pre = parentNode.lastChild;\n\t\tcp.removeChild(newChild);//remove and update\n\t\tvar pre = parentNode.lastChild;\n\t}\n\tvar pre = parentNode.lastChild;\n\tnewChild.parentNode = parentNode;\n\tnewChild.previousSibling = pre;\n\tnewChild.nextSibling = null;\n\tif(pre){\n\t\tpre.nextSibling = newChild;\n\t}else{\n\t\tparentNode.firstChild = newChild;\n\t}\n\tparentNode.lastChild = newChild;\n\t_onUpdateChild(parentNode.ownerDocument,parentNode,newChild);\n\treturn newChild;\n\t//console.log(\"__aa\",parentNode.lastChild.nextSibling == null)\n}\nDocument.prototype = {\n\t//implementation : null,\n\tnodeName : '#document',\n\tnodeType : DOCUMENT_NODE,\n\tdoctype : null,\n\tdocumentElement : null,\n\t_inc : 1,\n\t\n\tinsertBefore : function(newChild, refChild){//raises \n\t\tif(newChild.nodeType == DOCUMENT_FRAGMENT_NODE){\n\t\t\tvar child = newChild.firstChild;\n\t\t\twhile(child){\n\t\t\t\tvar next = child.nextSibling;\n\t\t\t\tthis.insertBefore(child,refChild);\n\t\t\t\tchild = next;\n\t\t\t}\n\t\t\treturn newChild;\n\t\t}\n\t\tif(this.documentElement == null && newChild.nodeType == ELEMENT_NODE){\n\t\t\tthis.documentElement = newChild;\n\t\t}\n\t\t\n\t\treturn _insertBefore(this,newChild,refChild),(newChild.ownerDocument = this),newChild;\n\t},\n\tremoveChild : function(oldChild){\n\t\tif(this.documentElement == oldChild){\n\t\t\tthis.documentElement = null;\n\t\t}\n\t\treturn _removeChild(this,oldChild);\n\t},\n\t// Introduced in DOM Level 2:\n\timportNode : function(importedNode,deep){\n\t\treturn importNode(this,importedNode,deep);\n\t},\n\t// Introduced in DOM Level 2:\n\tgetElementById :\tfunction(id){\n\t\tvar rtv = null;\n\t\t_visitNode(this.documentElement,function(node){\n\t\t\tif(node.nodeType == ELEMENT_NODE){\n\t\t\t\tif(node.getAttribute('id') == id){\n\t\t\t\t\trtv = node;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\treturn rtv;\n\t},\n\t\n\t//document factory method:\n\tcreateElement :\tfunction(tagName){\n\t\tvar node = new Element();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = tagName;\n\t\tnode.tagName = tagName;\n\t\tnode.childNodes = new NodeList();\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\tcreateDocumentFragment :\tfunction(){\n\t\tvar node = new DocumentFragment();\n\t\tnode.ownerDocument = this;\n\t\tnode.childNodes = new NodeList();\n\t\treturn node;\n\t},\n\tcreateTextNode :\tfunction(data){\n\t\tvar node = new Text();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateComment :\tfunction(data){\n\t\tvar node = new Comment();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateCDATASection :\tfunction(data){\n\t\tvar node = new CDATASection();\n\t\tnode.ownerDocument = this;\n\t\tnode.appendData(data)\n\t\treturn node;\n\t},\n\tcreateProcessingInstruction :\tfunction(target,data){\n\t\tvar node = new ProcessingInstruction();\n\t\tnode.ownerDocument = this;\n\t\tnode.tagName = node.target = target;\n\t\tnode.nodeValue= node.data = data;\n\t\treturn node;\n\t},\n\tcreateAttribute :\tfunction(name){\n\t\tvar node = new Attr();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.name = name;\n\t\tnode.nodeName\t= name;\n\t\tnode.localName = name;\n\t\tnode.specified = true;\n\t\treturn node;\n\t},\n\tcreateEntityReference :\tfunction(name){\n\t\tvar node = new EntityReference();\n\t\tnode.ownerDocument\t= this;\n\t\tnode.nodeName\t= name;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateElementNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Element();\n\t\tvar pl = qualifiedName.split(':');\n\t\tvar attrs\t= node.attributes = new NamedNodeMap();\n\t\tnode.childNodes = new NodeList();\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.tagName = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\tattrs._ownerElement = node;\n\t\treturn node;\n\t},\n\t// Introduced in DOM Level 2:\n\tcreateAttributeNS :\tfunction(namespaceURI,qualifiedName){\n\t\tvar node = new Attr();\n\t\tvar pl = qualifiedName.split(':');\n\t\tnode.ownerDocument = this;\n\t\tnode.nodeName = qualifiedName;\n\t\tnode.name = qualifiedName;\n\t\tnode.namespaceURI = namespaceURI;\n\t\tnode.specified = true;\n\t\tif(pl.length == 2){\n\t\t\tnode.prefix = pl[0];\n\t\t\tnode.localName = pl[1];\n\t\t}else{\n\t\t\t//el.prefix = null;\n\t\t\tnode.localName = qualifiedName;\n\t\t}\n\t\treturn node;\n\t}\n};\n_extends(Document,Node);\n\n\nfunction Element() {\n\tthis._nsMap = {};\n};\nElement.prototype = {\n\tnodeType : ELEMENT_NODE,\n\thasAttribute : function(name){\n\t\treturn this.getAttributeNode(name)!=null;\n\t},\n\tgetAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name);\n\t\treturn attr && attr.value || '';\n\t},\n\tgetAttributeNode : function(name){\n\t\treturn this.attributes.getNamedItem(name);\n\t},\n\tsetAttribute : function(name, value){\n\t\tvar attr = this.ownerDocument.createAttribute(name);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tremoveAttribute : function(name){\n\t\tvar attr = this.getAttributeNode(name)\n\t\tattr && this.removeAttributeNode(attr);\n\t},\n\t\n\t//four real opeartion method\n\tappendChild:function(newChild){\n\t\tif(newChild.nodeType === DOCUMENT_FRAGMENT_NODE){\n\t\t\treturn this.insertBefore(newChild,null);\n\t\t}else{\n\t\t\treturn _appendSingleChild(this,newChild);\n\t\t}\n\t},\n\tsetAttributeNode : function(newAttr){\n\t\treturn this.attributes.setNamedItem(newAttr);\n\t},\n\tsetAttributeNodeNS : function(newAttr){\n\t\treturn this.attributes.setNamedItemNS(newAttr);\n\t},\n\tremoveAttributeNode : function(oldAttr){\n\t\t//console.log(this == oldAttr.ownerElement)\n\t\treturn this.attributes.removeNamedItem(oldAttr.nodeName);\n\t},\n\t//get real attribute name,and remove it by removeAttributeNode\n\tremoveAttributeNS : function(namespaceURI, localName){\n\t\tvar old = this.getAttributeNodeNS(namespaceURI, localName);\n\t\told && this.removeAttributeNode(old);\n\t},\n\t\n\thasAttributeNS : function(namespaceURI, localName){\n\t\treturn this.getAttributeNodeNS(namespaceURI, localName)!=null;\n\t},\n\tgetAttributeNS : function(namespaceURI, localName){\n\t\tvar attr = this.getAttributeNodeNS(namespaceURI, localName);\n\t\treturn attr && attr.value || '';\n\t},\n\tsetAttributeNS : function(namespaceURI, qualifiedName, value){\n\t\tvar attr = this.ownerDocument.createAttributeNS(namespaceURI, qualifiedName);\n\t\tattr.value = attr.nodeValue = \"\" + value;\n\t\tthis.setAttributeNode(attr)\n\t},\n\tgetAttributeNodeNS : function(namespaceURI, localName){\n\t\treturn this.attributes.getNamedItemNS(namespaceURI, localName);\n\t},\n\t\n\tgetElementsByTagName : function(tagName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType == ELEMENT_NODE && (tagName === '*' || node.tagName == tagName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t});\n\t},\n\tgetElementsByTagNameNS : function(namespaceURI, localName){\n\t\treturn new LiveNodeList(this,function(base){\n\t\t\tvar ls = [];\n\t\t\t_visitNode(base,function(node){\n\t\t\t\tif(node !== base && node.nodeType === ELEMENT_NODE && (namespaceURI === '*' || node.namespaceURI === namespaceURI) && (localName === '*' || node.localName == localName)){\n\t\t\t\t\tls.push(node);\n\t\t\t\t}\n\t\t\t});\n\t\t\treturn ls;\n\t\t\t\n\t\t});\n\t}\n};\nDocument.prototype.getElementsByTagName = Element.prototype.getElementsByTagName;\nDocument.prototype.getElementsByTagNameNS = Element.prototype.getElementsByTagNameNS;\n\n\n_extends(Element,Node);\nfunction Attr() {\n};\nAttr.prototype.nodeType = ATTRIBUTE_NODE;\n_extends(Attr,Node);\n\n\nfunction CharacterData() {\n};\nCharacterData.prototype = {\n\tdata : '',\n\tsubstringData : function(offset, count) {\n\t\treturn this.data.substring(offset, offset+count);\n\t},\n\tappendData: function(text) {\n\t\ttext = this.data+text;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t},\n\tinsertData: function(offset,text) {\n\t\tthis.replaceData(offset,0,text);\n\t\n\t},\n\tappendChild:function(newChild){\n\t\tthrow new Error(ExceptionMessage[HIERARCHY_REQUEST_ERR])\n\t},\n\tdeleteData: function(offset, count) {\n\t\tthis.replaceData(offset,count,\"\");\n\t},\n\treplaceData: function(offset, count, text) {\n\t\tvar start = this.data.substring(0,offset);\n\t\tvar end = this.data.substring(offset+count);\n\t\ttext = start + text + end;\n\t\tthis.nodeValue = this.data = text;\n\t\tthis.length = text.length;\n\t}\n}\n_extends(CharacterData,Node);\nfunction Text() {\n};\nText.prototype = {\n\tnodeName : \"#text\",\n\tnodeType : TEXT_NODE,\n\tsplitText : function(offset) {\n\t\tvar text = this.data;\n\t\tvar newText = text.substring(offset);\n\t\ttext = text.substring(0, offset);\n\t\tthis.data = this.nodeValue = text;\n\t\tthis.length = text.length;\n\t\tvar newNode = this.ownerDocument.createTextNode(newText);\n\t\tif(this.parentNode){\n\t\t\tthis.parentNode.insertBefore(newNode, this.nextSibling);\n\t\t}\n\t\treturn newNode;\n\t}\n}\n_extends(Text,CharacterData);\nfunction Comment() {\n};\nComment.prototype = {\n\tnodeName : \"#comment\",\n\tnodeType : COMMENT_NODE\n}\n_extends(Comment,CharacterData);\n\nfunction CDATASection() {\n};\nCDATASection.prototype = {\n\tnodeName : \"#cdata-section\",\n\tnodeType : CDATA_SECTION_NODE\n}\n_extends(CDATASection,CharacterData);\n\n\nfunction DocumentType() {\n};\nDocumentType.prototype.nodeType = DOCUMENT_TYPE_NODE;\n_extends(DocumentType,Node);\n\nfunction Notation() {\n};\nNotation.prototype.nodeType = NOTATION_NODE;\n_extends(Notation,Node);\n\nfunction Entity() {\n};\nEntity.prototype.nodeType = ENTITY_NODE;\n_extends(Entity,Node);\n\nfunction EntityReference() {\n};\nEntityReference.prototype.nodeType = ENTITY_REFERENCE_NODE;\n_extends(EntityReference,Node);\n\nfunction DocumentFragment() {\n};\nDocumentFragment.prototype.nodeName =\t\"#document-fragment\";\nDocumentFragment.prototype.nodeType =\tDOCUMENT_FRAGMENT_NODE;\n_extends(DocumentFragment,Node);\n\n\nfunction ProcessingInstruction() {\n}\nProcessingInstruction.prototype.nodeType = PROCESSING_INSTRUCTION_NODE;\n_extends(ProcessingInstruction,Node);\nfunction XMLSerializer(){}\nXMLSerializer.prototype.serializeToString = function(node,isHtml,nodeFilter){\n\treturn nodeSerializeToString.call(node,isHtml,nodeFilter);\n}\nNode.prototype.toString = nodeSerializeToString;\nfunction nodeSerializeToString(isHtml,nodeFilter){\n\tvar buf = [];\n\tvar refNode = this.nodeType == 9 && this.documentElement || this;\n\tvar prefix = refNode.prefix;\n\tvar uri = refNode.namespaceURI;\n\t\n\tif(uri && prefix == null){\n\t\t//console.log(prefix)\n\t\tvar prefix = refNode.lookupPrefix(uri);\n\t\tif(prefix == null){\n\t\t\t//isHTML = true;\n\t\t\tvar visibleNamespaces=[\n\t\t\t{namespace:uri,prefix:null}\n\t\t\t//{namespace:uri,prefix:''}\n\t\t\t]\n\t\t}\n\t}\n\tserializeToString(this,buf,isHtml,nodeFilter,visibleNamespaces);\n\t//console.log('###',this.nodeType,uri,prefix,buf.join(''))\n\treturn buf.join('');\n}\nfunction needNamespaceDefine(node,isHTML, visibleNamespaces) {\n\tvar prefix = node.prefix||'';\n\tvar uri = node.namespaceURI;\n\tif (!prefix && !uri){\n\t\treturn false;\n\t}\n\tif (prefix === \"xml\" && uri === \"http://www.w3.org/XML/1998/namespace\" \n\t\t|| uri == 'http://www.w3.org/2000/xmlns/'){\n\t\treturn false;\n\t}\n\t\n\tvar i = visibleNamespaces.length \n\t//console.log('@@@@',node.tagName,prefix,uri,visibleNamespaces)\n\twhile (i--) {\n\t\tvar ns = visibleNamespaces[i];\n\t\t// get namespace prefix\n\t\t//console.log(node.nodeType,node.tagName,ns.prefix,prefix)\n\t\tif (ns.prefix == prefix){\n\t\t\treturn ns.namespace != uri;\n\t\t}\n\t}\n\t//console.log(isHTML,uri,prefix=='')\n\t//if(isHTML && prefix ==null && uri == 'http://www.w3.org/1999/xhtml'){\n\t//\treturn false;\n\t//}\n\t//node.flag = '11111'\n\t//console.error(3,true,node.flag,node.prefix,node.namespaceURI)\n\treturn true;\n}\nfunction serializeToString(node,buf,isHTML,nodeFilter,visibleNamespaces){\n\tif(nodeFilter){\n\t\tnode = nodeFilter(node);\n\t\tif(node){\n\t\t\tif(typeof node == 'string'){\n\t\t\t\tbuf.push(node);\n\t\t\t\treturn;\n\t\t\t}\n\t\t}else{\n\t\t\treturn;\n\t\t}\n\t\t//buf.sort.apply(attrs, attributeSorter);\n\t}\n\tswitch(node.nodeType){\n\tcase ELEMENT_NODE:\n\t\tif (!visibleNamespaces) visibleNamespaces = [];\n\t\tvar startVisibleNamespaces = visibleNamespaces.length;\n\t\tvar attrs = node.attributes;\n\t\tvar len = attrs.length;\n\t\tvar child = node.firstChild;\n\t\tvar nodeName = node.tagName;\n\t\t\n\t\tisHTML = (htmlns === node.namespaceURI) ||isHTML \n\t\tbuf.push('<',nodeName);\n\t\t\n\t\t\n\t\t\n\t\tfor(var i=0;i<len;i++){\n\t\t\t// add namespaces for attributes\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (attr.prefix == 'xmlns') {\n\t\t\t\tvisibleNamespaces.push({ prefix: attr.localName, namespace: attr.value });\n\t\t\t}else if(attr.nodeName == 'xmlns'){\n\t\t\t\tvisibleNamespaces.push({ prefix: '', namespace: attr.value });\n\t\t\t}\n\t\t}\n\t\tfor(var i=0;i<len;i++){\n\t\t\tvar attr = attrs.item(i);\n\t\t\tif (needNamespaceDefine(attr,isHTML, visibleNamespaces)) {\n\t\t\t\tvar prefix = attr.prefix||'';\n\t\t\t\tvar uri = attr.namespaceURI;\n\t\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t\t}\n\t\t\tserializeToString(attr,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t}\n\t\t// add namespace for current node\t\t\n\t\tif (needNamespaceDefine(node,isHTML, visibleNamespaces)) {\n\t\t\tvar prefix = node.prefix||'';\n\t\t\tvar uri = node.namespaceURI;\n\t\t\tvar ns = prefix ? ' xmlns:' + prefix : \" xmlns\";\n\t\t\tbuf.push(ns, '=\"' , uri , '\"');\n\t\t\tvisibleNamespaces.push({ prefix: prefix, namespace:uri });\n\t\t}\n\t\t\n\t\tif(child || isHTML && !/^(?:meta|link|img|br|hr|input)$/i.test(nodeName)){\n\t\t\tbuf.push('>');\n\t\t\t//if is cdata child node\n\t\t\tif(isHTML && /^script$/i.test(nodeName)){\n\t\t\t\twhile(child){\n\t\t\t\t\tif(child.data){\n\t\t\t\t\t\tbuf.push(child.data);\n\t\t\t\t\t}else{\n\t\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\t}\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}else\n\t\t\t{\n\t\t\t\twhile(child){\n\t\t\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\t\t\tchild = child.nextSibling;\n\t\t\t\t}\n\t\t\t}\n\t\t\tbuf.push('</',nodeName,'>');\n\t\t}else{\n\t\t\tbuf.push('/>');\n\t\t}\n\t\t// remove added visible namespaces\n\t\t//visibleNamespaces.length = startVisibleNamespaces;\n\t\treturn;\n\tcase DOCUMENT_NODE:\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tserializeToString(child,buf,isHTML,nodeFilter,visibleNamespaces);\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t\treturn;\n\tcase ATTRIBUTE_NODE:\n\t\treturn buf.push(' ',node.name,'=\"',node.value.replace(/[<&\"]/g,_xmlEncoder),'\"');\n\tcase TEXT_NODE:\n\t\treturn buf.push(node.data.replace(/[<&]/g,_xmlEncoder));\n\tcase CDATA_SECTION_NODE:\n\t\treturn buf.push( '<![CDATA[',node.data,']]>');\n\tcase COMMENT_NODE:\n\t\treturn buf.push( \"<!--\",node.data,\"-->\");\n\tcase DOCUMENT_TYPE_NODE:\n\t\tvar pubid = node.publicId;\n\t\tvar sysid = node.systemId;\n\t\tbuf.push('<!DOCTYPE ',node.name);\n\t\tif(pubid){\n\t\t\tbuf.push(' PUBLIC \"',pubid);\n\t\t\tif (sysid && sysid!='.') {\n\t\t\t\tbuf.push( '\" \"',sysid);\n\t\t\t}\n\t\t\tbuf.push('\">');\n\t\t}else if(sysid && sysid!='.'){\n\t\t\tbuf.push(' SYSTEM \"',sysid,'\">');\n\t\t}else{\n\t\t\tvar sub = node.internalSubset;\n\t\t\tif(sub){\n\t\t\t\tbuf.push(\" [\",sub,\"]\");\n\t\t\t}\n\t\t\tbuf.push(\">\");\n\t\t}\n\t\treturn;\n\tcase PROCESSING_INSTRUCTION_NODE:\n\t\treturn buf.push( \"<?\",node.target,\" \",node.data,\"?>\");\n\tcase ENTITY_REFERENCE_NODE:\n\t\treturn buf.push( '&',node.nodeName,';');\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\tdefault:\n\t\tbuf.push('??',node.nodeName);\n\t}\n}\nfunction importNode(doc,node,deep){\n\tvar node2;\n\tswitch (node.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tnode2 = node.cloneNode(false);\n\t\tnode2.ownerDocument = doc;\n\t\t//var attrs = node2.attributes;\n\t\t//var len = attrs.length;\n\t\t//for(var i=0;i<len;i++){\n\t\t\t//node2.setAttributeNodeNS(importNode(doc,attrs.item(i),deep));\n\t\t//}\n\tcase DOCUMENT_FRAGMENT_NODE:\n\t\tbreak;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t\tbreak;\n\t//case ENTITY_REFERENCE_NODE:\n\t//case PROCESSING_INSTRUCTION_NODE:\n\t////case TEXT_NODE:\n\t//case CDATA_SECTION_NODE:\n\t//case COMMENT_NODE:\n\t//\tdeep = false;\n\t//\tbreak;\n\t//case DOCUMENT_NODE:\n\t//case DOCUMENT_TYPE_NODE:\n\t//cannot be imported.\n\t//case ENTITY_NODE:\n\t//case NOTATION_NODE:\n\t//can not hit in level3\n\t//default:throw e;\n\t}\n\tif(!node2){\n\t\tnode2 = node.cloneNode(false);//false\n\t}\n\tnode2.ownerDocument = doc;\n\tnode2.parentNode = null;\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(importNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n//\n//var _relationMap = {firstChild:1,lastChild:1,previousSibling:1,nextSibling:1,\n//\t\t\t\t\tattributes:1,childNodes:1,parentNode:1,documentElement:1,doctype,};\nfunction cloneNode(doc,node,deep){\n\tvar node2 = new node.constructor();\n\tfor(var n in node){\n\t\tvar v = node[n];\n\t\tif(typeof v != 'object' ){\n\t\t\tif(v != node2[n]){\n\t\t\t\tnode2[n] = v;\n\t\t\t}\n\t\t}\n\t}\n\tif(node.childNodes){\n\t\tnode2.childNodes = new NodeList();\n\t}\n\tnode2.ownerDocument = doc;\n\tswitch (node2.nodeType) {\n\tcase ELEMENT_NODE:\n\t\tvar attrs\t= node.attributes;\n\t\tvar attrs2\t= node2.attributes = new NamedNodeMap();\n\t\tvar len = attrs.length\n\t\tattrs2._ownerElement = node2;\n\t\tfor(var i=0;i<len;i++){\n\t\t\tnode2.setAttributeNode(cloneNode(doc,attrs.item(i),true));\n\t\t}\n\t\tbreak;;\n\tcase ATTRIBUTE_NODE:\n\t\tdeep = true;\n\t}\n\tif(deep){\n\t\tvar child = node.firstChild;\n\t\twhile(child){\n\t\t\tnode2.appendChild(cloneNode(doc,child,deep));\n\t\t\tchild = child.nextSibling;\n\t\t}\n\t}\n\treturn node2;\n}\n\nfunction __set__(object,key,value){\n\tobject[key] = value\n}\n//do dynamic\ntry{\n\tif(Object.defineProperty){\n\t\tObject.defineProperty(LiveNodeList.prototype,'length',{\n\t\t\tget:function(){\n\t\t\t\t_updateLiveList(this);\n\t\t\t\treturn this.$$length;\n\t\t\t}\n\t\t});\n\t\tObject.defineProperty(Node.prototype,'textContent',{\n\t\t\tget:function(){\n\t\t\t\treturn getTextContent(this);\n\t\t\t},\n\t\t\tset:function(data){\n\t\t\t\tswitch(this.nodeType){\n\t\t\t\tcase ELEMENT_NODE:\n\t\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\t\twhile(this.firstChild){\n\t\t\t\t\t\tthis.removeChild(this.firstChild);\n\t\t\t\t\t}\n\t\t\t\t\tif(data || String(data)){\n\t\t\t\t\t\tthis.appendChild(this.ownerDocument.createTextNode(data));\n\t\t\t\t\t}\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t//TODO:\n\t\t\t\t\tthis.data = data;\n\t\t\t\t\tthis.value = data;\n\t\t\t\t\tthis.nodeValue = data;\n\t\t\t\t}\n\t\t\t}\n\t\t})\n\t\t\n\t\tfunction getTextContent(node){\n\t\t\tswitch(node.nodeType){\n\t\t\tcase ELEMENT_NODE:\n\t\t\tcase DOCUMENT_FRAGMENT_NODE:\n\t\t\t\tvar buf = [];\n\t\t\t\tnode = node.firstChild;\n\t\t\t\twhile(node){\n\t\t\t\t\tif(node.nodeType!==7 && node.nodeType !==8){\n\t\t\t\t\t\tbuf.push(getTextContent(node));\n\t\t\t\t\t}\n\t\t\t\t\tnode = node.nextSibling;\n\t\t\t\t}\n\t\t\t\treturn buf.join('');\n\t\t\tdefault:\n\t\t\t\treturn node.nodeValue;\n\t\t\t}\n\t\t}\n\t\t__set__ = function(object,key,value){\n\t\t\t//console.log(value)\n\t\t\tobject['$$'+key] = value\n\t\t}\n\t}\n}catch(e){//ie8\n}\n\n//if(typeof require == 'function'){\n\texports.DOMImplementation = DOMImplementation;\n\texports.XMLSerializer = XMLSerializer;\n//}\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xmldom/dom",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xmldom/dom-parser": {
"text": "function DOMParser(options){\r\n\tthis.options = options ||{locator:{}};\r\n\t\r\n}\r\nDOMParser.prototype.parseFromString = function(source,mimeType){\r\n\tvar options = this.options;\r\n\tvar sax = new XMLReader();\r\n\tvar domBuilder = options.domBuilder || new DOMHandler();//contentHandler and LexicalHandler\r\n\tvar errorHandler = options.errorHandler;\r\n\tvar locator = options.locator;\r\n\tvar defaultNSMap = options.xmlns||{};\r\n\tvar isHTML = /\\/x?html?$/.test(mimeType);//mimeType.toLowerCase().indexOf('html') > -1;\r\n \tvar entityMap = isHTML?require('./entities').entityMap:{'lt':'<','gt':'>','amp':'&','quot':'\"','apos':\"'\"};\r\n\tif(locator){\r\n\t\tdomBuilder.setDocumentLocator(locator)\r\n\t}\r\n\t\r\n\tsax.errorHandler = buildErrorHandler(errorHandler,domBuilder,locator);\r\n\tsax.domBuilder = options.domBuilder || domBuilder;\r\n\tif(isHTML){\r\n\t\tdefaultNSMap['']= 'http://www.w3.org/1999/xhtml';\r\n\t}\r\n\tdefaultNSMap.xml = defaultNSMap.xml || 'http://www.w3.org/XML/1998/namespace';\r\n\tif(source){\r\n\t\tsax.parse(source,defaultNSMap,entityMap);\r\n\t}else{\r\n\t\tsax.errorHandler.error(\"invalid doc source\");\r\n\t}\r\n\treturn domBuilder.doc;\r\n}\r\nfunction buildErrorHandler(errorImpl,domBuilder,locator){\r\n\tif(!errorImpl){\r\n\t\tif(domBuilder instanceof DOMHandler){\r\n\t\t\treturn domBuilder;\r\n\t\t}\r\n\t\terrorImpl = domBuilder ;\r\n\t}\r\n\tvar errorHandler = {}\r\n\tvar isCallback = errorImpl instanceof Function;\r\n\tlocator = locator||{}\r\n\tfunction build(key){\r\n\t\tvar fn = errorImpl[key];\r\n\t\tif(!fn && isCallback){\r\n\t\t\tfn = errorImpl.length == 2?function(msg){errorImpl(key,msg)}:errorImpl;\r\n\t\t}\r\n\t\terrorHandler[key] = fn && function(msg){\r\n\t\t\tfn('[xmldom '+key+']\\t'+msg+_locator(locator));\r\n\t\t}||function(){};\r\n\t}\r\n\tbuild('warning');\r\n\tbuild('error');\r\n\tbuild('fatalError');\r\n\treturn errorHandler;\r\n}\r\n\r\n//console.log('#\\n\\n\\n\\n\\n\\n\\n####')\r\n/**\r\n * +ContentHandler+ErrorHandler\r\n * +LexicalHandler+EntityResolver2\r\n * -DeclHandler-DTDHandler \r\n * \r\n * DefaultHandler:EntityResolver, DTDHandler, ContentHandler, ErrorHandler\r\n * DefaultHandler2:DefaultHandler,LexicalHandler, DeclHandler, EntityResolver2\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/helpers/DefaultHandler.html\r\n */\r\nfunction DOMHandler() {\r\n this.cdata = false;\r\n}\r\nfunction position(locator,node){\r\n\tnode.lineNumber = locator.lineNumber;\r\n\tnode.columnNumber = locator.columnNumber;\r\n}\r\n/**\r\n * @see org.xml.sax.ContentHandler#startDocument\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ContentHandler.html\r\n */ \r\nDOMHandler.prototype = {\r\n\tstartDocument : function() {\r\n \tthis.doc = new DOMImplementation().createDocument(null, null, null);\r\n \tif (this.locator) {\r\n \tthis.doc.documentURI = this.locator.systemId;\r\n \t}\r\n\t},\r\n\tstartElement:function(namespaceURI, localName, qName, attrs) {\r\n\t\tvar doc = this.doc;\r\n\t var el = doc.createElementNS(namespaceURI, qName||localName);\r\n\t var len = attrs.length;\r\n\t appendElement(this, el);\r\n\t this.currentElement = el;\r\n\t \r\n\t\tthis.locator && position(this.locator,el)\r\n\t for (var i = 0 ; i < len; i++) {\r\n\t var namespaceURI = attrs.getURI(i);\r\n\t var value = attrs.getValue(i);\r\n\t var qName = attrs.getQName(i);\r\n\t\t\tvar attr = doc.createAttributeNS(namespaceURI, qName);\r\n\t\t\tthis.locator &&position(attrs.getLocator(i),attr);\r\n\t\t\tattr.value = attr.nodeValue = value;\r\n\t\t\tel.setAttributeNode(attr)\r\n\t }\r\n\t},\r\n\tendElement:function(namespaceURI, localName, qName) {\r\n\t\tvar current = this.currentElement\r\n\t\tvar tagName = current.tagName;\r\n\t\tthis.currentElement = current.parentNode;\r\n\t},\r\n\tstartPrefixMapping:function(prefix, uri) {\r\n\t},\r\n\tendPrefixMapping:function(prefix) {\r\n\t},\r\n\tprocessingInstruction:function(target, data) {\r\n\t var ins = this.doc.createProcessingInstruction(target, data);\r\n\t this.locator && position(this.locator,ins)\r\n\t appendElement(this, ins);\r\n\t},\r\n\tignorableWhitespace:function(ch, start, length) {\r\n\t},\r\n\tcharacters:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t\t//console.log(chars)\r\n\t\tif(chars){\r\n\t\t\tif (this.cdata) {\r\n\t\t\t\tvar charNode = this.doc.createCDATASection(chars);\r\n\t\t\t} else {\r\n\t\t\t\tvar charNode = this.doc.createTextNode(chars);\r\n\t\t\t}\r\n\t\t\tif(this.currentElement){\r\n\t\t\t\tthis.currentElement.appendChild(charNode);\r\n\t\t\t}else if(/^\\s*$/.test(chars)){\r\n\t\t\t\tthis.doc.appendChild(charNode);\r\n\t\t\t\t//process xml\r\n\t\t\t}\r\n\t\t\tthis.locator && position(this.locator,charNode)\r\n\t\t}\r\n\t},\r\n\tskippedEntity:function(name) {\r\n\t},\r\n\tendDocument:function() {\r\n\t\tthis.doc.normalize();\r\n\t},\r\n\tsetDocumentLocator:function (locator) {\r\n\t if(this.locator = locator){// && !('lineNumber' in locator)){\r\n\t \tlocator.lineNumber = 0;\r\n\t }\r\n\t},\r\n\t//LexicalHandler\r\n\tcomment:function(chars, start, length) {\r\n\t\tchars = _toString.apply(this,arguments)\r\n\t var comm = this.doc.createComment(chars);\r\n\t this.locator && position(this.locator,comm)\r\n\t appendElement(this, comm);\r\n\t},\r\n\t\r\n\tstartCDATA:function() {\r\n\t //used in characters() methods\r\n\t this.cdata = true;\r\n\t},\r\n\tendCDATA:function() {\r\n\t this.cdata = false;\r\n\t},\r\n\t\r\n\tstartDTD:function(name, publicId, systemId) {\r\n\t\tvar impl = this.doc.implementation;\r\n\t if (impl && impl.createDocumentType) {\r\n\t var dt = impl.createDocumentType(name, publicId, systemId);\r\n\t this.locator && position(this.locator,dt)\r\n\t appendElement(this, dt);\r\n\t }\r\n\t},\r\n\t/**\r\n\t * @see org.xml.sax.ErrorHandler\r\n\t * @link http://www.saxproject.org/apidoc/org/xml/sax/ErrorHandler.html\r\n\t */\r\n\twarning:function(error) {\r\n\t\tconsole.warn('[xmldom warning]\\t'+error,_locator(this.locator));\r\n\t},\r\n\terror:function(error) {\r\n\t\tconsole.error('[xmldom error]\\t'+error,_locator(this.locator));\r\n\t},\r\n\tfatalError:function(error) {\r\n\t\tconsole.error('[xmldom fatalError]\\t'+error,_locator(this.locator));\r\n\t throw error;\r\n\t}\r\n}\r\nfunction _locator(l){\r\n\tif(l){\r\n\t\treturn '\\n@'+(l.systemId ||'')+'#[line:'+l.lineNumber+',col:'+l.columnNumber+']'\r\n\t}\r\n}\r\nfunction _toString(chars,start,length){\r\n\tif(typeof chars == 'string'){\r\n\t\treturn chars.substr(start,length)\r\n\t}else{//java sax connect width xmldom on rhino(what about: \"? && !(chars instanceof String)\")\r\n\t\tif(chars.length >= start+length || start){\r\n\t\t\treturn new java.lang.String(chars,start,length)+'';\r\n\t\t}\r\n\t\treturn chars;\r\n\t}\r\n}\r\n\r\n/*\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/LexicalHandler.html\r\n * used method of org.xml.sax.ext.LexicalHandler:\r\n * #comment(chars, start, length)\r\n * #startCDATA()\r\n * #endCDATA()\r\n * #startDTD(name, publicId, systemId)\r\n *\r\n *\r\n * IGNORED method of org.xml.sax.ext.LexicalHandler:\r\n * #endDTD()\r\n * #startEntity(name)\r\n * #endEntity(name)\r\n *\r\n *\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/DeclHandler.html\r\n * IGNORED method of org.xml.sax.ext.DeclHandler\r\n * \t#attributeDecl(eName, aName, type, mode, value)\r\n * #elementDecl(name, model)\r\n * #externalEntityDecl(name, publicId, systemId)\r\n * #internalEntityDecl(name, value)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/ext/EntityResolver2.html\r\n * IGNORED method of org.xml.sax.EntityResolver2\r\n * #resolveEntity(String name,String publicId,String baseURI,String systemId)\r\n * #resolveEntity(publicId, systemId)\r\n * #getExternalSubset(name, baseURI)\r\n * @link http://www.saxproject.org/apidoc/org/xml/sax/DTDHandler.html\r\n * IGNORED method of org.xml.sax.DTDHandler\r\n * #notationDecl(name, publicId, systemId) {};\r\n * #unparsedEntityDecl(name, publicId, systemId, notationName) {};\r\n */\r\n\"endDTD,startEntity,endEntity,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,resolveEntity,getExternalSubset,notationDecl,unparsedEntityDecl\".replace(/\\w+/g,function(key){\r\n\tDOMHandler.prototype[key] = function(){return null}\r\n})\r\n\r\n/* Private static helpers treated below as private instance methods, so don't need to add these to the public API; we might use a Relator to also get rid of non-standard public properties */\r\nfunction appendElement (hander,node) {\r\n if (!hander.currentElement) {\r\n hander.doc.appendChild(node);\r\n } else {\r\n hander.currentElement.appendChild(node);\r\n }\r\n}//appendChild and setAttributeNS are preformance key\r\n\r\n//if(typeof require == 'function'){\r\n\tvar XMLReader = require('./sax').XMLReader;\r\n\tvar DOMImplementation = exports.DOMImplementation = require('./dom').DOMImplementation;\r\n\texports.XMLSerializer = require('./dom').XMLSerializer ;\r\n\texports.DOMParser = DOMParser;\r\n//}\r\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xmldom/dom-parser",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xmldom/entities": {
"text": "exports.entityMap = {\n lt: '<',\n gt: '>',\n amp: '&',\n quot: '\"',\n apos: \"'\",\n Agrave: \"À\",\n Aacute: \"Á\",\n Acirc: \"Â\",\n Atilde: \"Ã\",\n Auml: \"Ä\",\n Aring: \"Å\",\n AElig: \"Æ\",\n Ccedil: \"Ç\",\n Egrave: \"È\",\n Eacute: \"É\",\n Ecirc: \"Ê\",\n Euml: \"Ë\",\n Igrave: \"Ì\",\n Iacute: \"Í\",\n Icirc: \"Î\",\n Iuml: \"Ï\",\n ETH: \"Ð\",\n Ntilde: \"Ñ\",\n Ograve: \"Ò\",\n Oacute: \"Ó\",\n Ocirc: \"Ô\",\n Otilde: \"Õ\",\n Ouml: \"Ö\",\n Oslash: \"Ø\",\n Ugrave: \"Ù\",\n Uacute: \"Ú\",\n Ucirc: \"Û\",\n Uuml: \"Ü\",\n Yacute: \"Ý\",\n THORN: \"Þ\",\n szlig: \"ß\",\n agrave: \"à\",\n aacute: \"á\",\n acirc: \"â\",\n atilde: \"ã\",\n auml: \"ä\",\n aring: \"å\",\n aelig: \"æ\",\n ccedil: \"ç\",\n egrave: \"è\",\n eacute: \"é\",\n ecirc: \"ê\",\n euml: \"ë\",\n igrave: \"ì\",\n iacute: \"í\",\n icirc: \"î\",\n iuml: \"ï\",\n eth: \"ð\",\n ntilde: \"ñ\",\n ograve: \"ò\",\n oacute: \"ó\",\n ocirc: \"ô\",\n otilde: \"õ\",\n ouml: \"ö\",\n oslash: \"ø\",\n ugrave: \"ù\",\n uacute: \"ú\",\n ucirc: \"û\",\n uuml: \"ü\",\n yacute: \"ý\",\n thorn: \"þ\",\n yuml: \"ÿ\",\n nbsp: \" \",\n iexcl: \"¡\",\n cent: \"¢\",\n pound: \"£\",\n curren: \"¤\",\n yen: \"¥\",\n brvbar: \"¦\",\n sect: \"§\",\n uml: \"¨\",\n copy: \"©\",\n ordf: \"ª\",\n laquo: \"«\",\n not: \"¬\",\n shy: \"\",\n reg: \"®\",\n macr: \"¯\",\n deg: \"°\",\n plusmn: \"±\",\n sup2: \"²\",\n sup3: \"³\",\n acute: \"´\",\n micro: \"µ\",\n para: \"¶\",\n middot: \"·\",\n cedil: \"¸\",\n sup1: \"¹\",\n ordm: \"º\",\n raquo: \"»\",\n frac14: \"¼\",\n frac12: \"½\",\n frac34: \"¾\",\n iquest: \"¿\",\n times: \"×\",\n divide: \"÷\",\n forall: \"∀\",\n part: \"∂\",\n exist: \"∃\",\n empty: \"∅\",\n nabla: \"∇\",\n isin: \"∈\",\n notin: \"∉\",\n ni: \"∋\",\n prod: \"∏\",\n sum: \"∑\",\n minus: \"−\",\n lowast: \"∗\",\n radic: \"√\",\n prop: \"∝\",\n infin: \"∞\",\n ang: \"∠\",\n and: \"∧\",\n or: \"∨\",\n cap: \"∩\",\n cup: \"∪\",\n 'int': \"∫\",\n there4: \"∴\",\n sim: \"∼\",\n cong: \"≅\",\n asymp: \"≈\",\n ne: \"≠\",\n equiv: \"≡\",\n le: \"≤\",\n ge: \"≥\",\n sub: \"⊂\",\n sup: \"⊃\",\n nsub: \"⊄\",\n sube: \"⊆\",\n supe: \"⊇\",\n oplus: \"⊕\",\n otimes: \"⊗\",\n perp: \"⊥\",\n sdot: \"⋅\",\n Alpha: \"Α\",\n Beta: \"Β\",\n Gamma: \"Γ\",\n Delta: \"Δ\",\n Epsilon: \"Ε\",\n Zeta: \"Ζ\",\n Eta: \"Η\",\n Theta: \"Θ\",\n Iota: \"Ι\",\n Kappa: \"Κ\",\n Lambda: \"Λ\",\n Mu: \"Μ\",\n Nu: \"Ν\",\n Xi: \"Ξ\",\n Omicron: \"Ο\",\n Pi: \"Π\",\n Rho: \"Ρ\",\n Sigma: \"Σ\",\n Tau: \"Τ\",\n Upsilon: \"Υ\",\n Phi: \"Φ\",\n Chi: \"Χ\",\n Psi: \"Ψ\",\n Omega: \"Ω\",\n alpha: \"α\",\n beta: \"β\",\n gamma: \"γ\",\n delta: \"δ\",\n epsilon: \"ε\",\n zeta: \"ζ\",\n eta: \"η\",\n theta: \"θ\",\n iota: \"ι\",\n kappa: \"κ\",\n lambda: \"λ\",\n mu: \"μ\",\n nu: \"ν\",\n xi: \"ξ\",\n omicron: \"ο\",\n pi: \"π\",\n rho: \"ρ\",\n sigmaf: \"ς\",\n sigma: \"σ\",\n tau: \"τ\",\n upsilon: \"υ\",\n phi: \"φ\",\n chi: \"χ\",\n psi: \"ψ\",\n omega: \"ω\",\n thetasym: \"ϑ\",\n upsih: \"ϒ\",\n piv: \"ϖ\",\n OElig: \"Œ\",\n oelig: \"œ\",\n Scaron: \"Š\",\n scaron: \"š\",\n Yuml: \"Ÿ\",\n fnof: \"ƒ\",\n circ: \"ˆ\",\n tilde: \"˜\",\n ensp: \" \",\n emsp: \" \",\n thinsp: \" \",\n zwnj: \"\",\n zwj: \"\",\n lrm: \"\",\n rlm: \"\",\n ndash: \"–\",\n mdash: \"—\",\n lsquo: \"‘\",\n rsquo: \"’\",\n sbquo: \"‚\",\n ldquo: \"“\",\n rdquo: \"”\",\n bdquo: \"„\",\n dagger: \"†\",\n Dagger: \"‡\",\n bull: \"•\",\n hellip: \"…\",\n permil: \"‰\",\n prime: \"′\",\n Prime: \"″\",\n lsaquo: \"‹\",\n rsaquo: \"›\",\n oline: \"‾\",\n euro: \"€\",\n trade: \"™\",\n larr: \"←\",\n uarr: \"↑\",\n rarr: \"→\",\n darr: \"↓\",\n harr: \"↔\",\n crarr: \"↵\",\n lceil: \"⌈\",\n rceil: \"⌉\",\n lfloor: \"⌊\",\n rfloor: \"⌋\",\n loz: \"◊\",\n spades: \"♠\",\n clubs: \"♣\",\n hearts: \"♥\",\n diams: \"♦\"\n};\n//for(var n in exports.entityMap){console.log(exports.entityMap[n].charCodeAt())}",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xmldom/entities",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xmldom/sax": {
"text": "//[4] \tNameStartChar\t ::= \t\":\" | [A-Z] | \"_\" | [a-z] | [#xC0-#xD6] | [#xD8-#xF6] | [#xF8-#x2FF] | [#x370-#x37D] | [#x37F-#x1FFF] | [#x200C-#x200D] | [#x2070-#x218F] | [#x2C00-#x2FEF] | [#x3001-#xD7FF] | [#xF900-#xFDCF] | [#xFDF0-#xFFFD] | [#x10000-#xEFFFF]\r\n//[4a] \tNameChar\t ::= \tNameStartChar | \"-\" | \".\" | [0-9] | #xB7 | [#x0300-#x036F] | [#x203F-#x2040]\r\n//[5] \tName\t ::= \tNameStartChar (NameChar)*\r\nvar nameStartChar = /[A-Z_a-z\\xC0-\\xD6\\xD8-\\xF6\\u00F8-\\u02FF\\u0370-\\u037D\\u037F-\\u1FFF\\u200C-\\u200D\\u2070-\\u218F\\u2C00-\\u2FEF\\u3001-\\uD7FF\\uF900-\\uFDCF\\uFDF0-\\uFFFD]///\\u10000-\\uEFFFF\r\nvar nameChar = new RegExp(\"[\\\\-\\\\.0-9\"+nameStartChar.source.slice(1,-1)+\"\\\\u00B7\\\\u0300-\\\\u036F\\\\u203F-\\\\u2040]\");\r\nvar tagNamePattern = new RegExp('^'+nameStartChar.source+nameChar.source+'*(?:\\:'+nameStartChar.source+nameChar.source+'*)?$');\r\n//var tagNamePattern = /^[a-zA-Z_][\\w\\-\\.]*(?:\\:[a-zA-Z_][\\w\\-\\.]*)?$/\r\n//var handlers = 'resolveEntity,getExternalSubset,characters,endDocument,endElement,endPrefixMapping,ignorableWhitespace,processingInstruction,setDocumentLocator,skippedEntity,startDocument,startElement,startPrefixMapping,notationDecl,unparsedEntityDecl,error,fatalError,warning,attributeDecl,elementDecl,externalEntityDecl,internalEntityDecl,comment,endCDATA,endDTD,endEntity,startCDATA,startDTD,startEntity'.split(',')\r\n\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\nvar S_TAG = 0;//tag name offerring\r\nvar S_ATTR = 1;//attr name offerring \r\nvar S_ATTR_SPACE=2;//attr name end and space offer\r\nvar S_EQ = 3;//=space?\r\nvar S_ATTR_NOQUOT_VALUE = 4;//attr value(no quot value only)\r\nvar S_ATTR_END = 5;//attr value end and no space(quot end)\r\nvar S_TAG_SPACE = 6;//(attr value end || tag end ) && (space offer)\r\nvar S_TAG_CLOSE = 7;//closed el<el />\r\n\r\nfunction XMLReader(){\r\n\t\r\n}\r\n\r\nXMLReader.prototype = {\r\n\tparse:function(source,defaultNSMap,entityMap){\r\n\t\tvar domBuilder = this.domBuilder;\r\n\t\tdomBuilder.startDocument();\r\n\t\t_copy(defaultNSMap ,defaultNSMap = {})\r\n\t\tparse(source,defaultNSMap,entityMap,\r\n\t\t\t\tdomBuilder,this.errorHandler);\r\n\t\tdomBuilder.endDocument();\r\n\t}\r\n}\r\nfunction parse(source,defaultNSMapCopy,entityMap,domBuilder,errorHandler){\r\n\tfunction fixedFromCharCode(code) {\r\n\t\t// String.prototype.fromCharCode does not supports\r\n\t\t// > 2 bytes unicode chars directly\r\n\t\tif (code > 0xffff) {\r\n\t\t\tcode -= 0x10000;\r\n\t\t\tvar surrogate1 = 0xd800 + (code >> 10)\r\n\t\t\t\t, surrogate2 = 0xdc00 + (code & 0x3ff);\r\n\r\n\t\t\treturn String.fromCharCode(surrogate1, surrogate2);\r\n\t\t} else {\r\n\t\t\treturn String.fromCharCode(code);\r\n\t\t}\r\n\t}\r\n\tfunction entityReplacer(a){\r\n\t\tvar k = a.slice(1,-1);\r\n\t\tif(k in entityMap){\r\n\t\t\treturn entityMap[k]; \r\n\t\t}else if(k.charAt(0) === '#'){\r\n\t\t\treturn fixedFromCharCode(parseInt(k.substr(1).replace('x','0x')))\r\n\t\t}else{\r\n\t\t\terrorHandler.error('entity not found:'+a);\r\n\t\t\treturn a;\r\n\t\t}\r\n\t}\r\n\tfunction appendText(end){//has some bugs\r\n\t\tif(end>start){\r\n\t\t\tvar xt = source.substring(start,end).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\tlocator&&position(start);\r\n\t\t\tdomBuilder.characters(xt,0,end-start);\r\n\t\t\tstart = end\r\n\t\t}\r\n\t}\r\n\tfunction position(p,m){\r\n\t\twhile(p>=lineEnd && (m = linePattern.exec(source))){\r\n\t\t\tlineStart = m.index;\r\n\t\t\tlineEnd = lineStart + m[0].length;\r\n\t\t\tlocator.lineNumber++;\r\n\t\t\t//console.log('line++:',locator,startPos,endPos)\r\n\t\t}\r\n\t\tlocator.columnNumber = p-lineStart+1;\r\n\t}\r\n\tvar lineStart = 0;\r\n\tvar lineEnd = 0;\r\n\tvar linePattern = /.*(?:\\r\\n?|\\n)|.*$/g\r\n\tvar locator = domBuilder.locator;\r\n\t\r\n\tvar parseStack = [{currentNSMap:defaultNSMapCopy}]\r\n\tvar closeMap = {};\r\n\tvar start = 0;\r\n\twhile(true){\r\n\t\ttry{\r\n\t\t\tvar tagStart = source.indexOf('<',start);\r\n\t\t\tif(tagStart<0){\r\n\t\t\t\tif(!source.substr(start).match(/^\\s*$/)){\r\n\t\t\t\t\tvar doc = domBuilder.doc;\r\n\t \t\t\tvar text = doc.createTextNode(source.substr(start));\r\n\t \t\t\tdoc.appendChild(text);\r\n\t \t\t\tdomBuilder.currentElement = text;\r\n\t\t\t\t}\r\n\t\t\t\treturn;\r\n\t\t\t}\r\n\t\t\tif(tagStart>start){\r\n\t\t\t\tappendText(tagStart);\r\n\t\t\t}\r\n\t\t\tswitch(source.charAt(tagStart+1)){\r\n\t\t\tcase '/':\r\n\t\t\t\tvar end = source.indexOf('>',tagStart+3);\r\n\t\t\t\tvar tagName = source.substring(tagStart+2,end);\r\n\t\t\t\tvar config = parseStack.pop();\r\n\t\t\t\tif(end<0){\r\n\t\t\t\t\t\r\n\t \t\ttagName = source.substring(tagStart+2).replace(/[\\s<].*/,'');\r\n\t \t\t//console.error('#@@@@@@'+tagName)\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' is not complete:'+config.tagName);\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t \t}else if(tagName.match(/\\s</)){\r\n\t \t\ttagName = tagName.replace(/[\\s<].*/,'');\r\n\t \t\terrorHandler.error(\"end tag name: \"+tagName+' maybe not complete');\r\n\t \t\tend = tagStart+1+tagName.length;\r\n\t\t\t\t}\r\n\t\t\t\t//console.error(parseStack.length,parseStack)\r\n\t\t\t\t//console.error(config);\r\n\t\t\t\tvar localNSMap = config.localNSMap;\r\n\t\t\t\tvar endMatch = config.tagName == tagName;\r\n\t\t\t\tvar endIgnoreCaseMach = endMatch || config.tagName&&config.tagName.toLowerCase() == tagName.toLowerCase()\r\n\t\t if(endIgnoreCaseMach){\r\n\t\t \tdomBuilder.endElement(config.uri,config.localName,tagName);\r\n\t\t\t\t\tif(localNSMap){\r\n\t\t\t\t\t\tfor(var prefix in localNSMap){\r\n\t\t\t\t\t\t\tdomBuilder.endPrefixMapping(prefix) ;\r\n\t\t\t\t\t\t}\r\n\t\t\t\t\t}\r\n\t\t\t\t\tif(!endMatch){\r\n\t\t \terrorHandler.fatalError(\"end tag name: \"+tagName+' is not match the current start tagName:'+config.tagName );\r\n\t\t\t\t\t}\r\n\t\t }else{\r\n\t\t \tparseStack.push(config)\r\n\t\t }\r\n\t\t\t\t\r\n\t\t\t\tend++;\r\n\t\t\t\tbreak;\r\n\t\t\t\t// end elment\r\n\t\t\tcase '?':// <?...?>\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseInstruction(source,tagStart,domBuilder);\r\n\t\t\t\tbreak;\r\n\t\t\tcase '!':// <!doctype,<![CDATA,<!--\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tend = parseDCC(source,tagStart,domBuilder,errorHandler);\r\n\t\t\t\tbreak;\r\n\t\t\tdefault:\r\n\t\t\t\tlocator&&position(tagStart);\r\n\t\t\t\tvar el = new ElementAttributes();\r\n\t\t\t\tvar currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\t\t\t\t//elStartEnd\r\n\t\t\t\tvar end = parseElementStartPart(source,tagStart,el,currentNSMap,entityReplacer,errorHandler);\r\n\t\t\t\tvar len = el.length;\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(!el.closed && fixSelfClosed(source,end,el.tagName,closeMap)){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tif(!entityMap.nbsp){\r\n\t\t\t\t\t\terrorHandler.warning('unclosed xml attribute');\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\tif(locator && len){\r\n\t\t\t\t\tvar locator2 = copyLocator(locator,{});\r\n\t\t\t\t\t//try{//attribute position fixed\r\n\t\t\t\t\tfor(var i = 0;i<len;i++){\r\n\t\t\t\t\t\tvar a = el[i];\r\n\t\t\t\t\t\tposition(a.offset);\r\n\t\t\t\t\t\ta.locator = copyLocator(locator,{});\r\n\t\t\t\t\t}\r\n\t\t\t\t\t//}catch(e){console.error('@@@@@'+e)}\r\n\t\t\t\t\tdomBuilder.locator = locator2\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t\tdomBuilder.locator = locator;\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(appendElement(el,domBuilder,currentNSMap)){\r\n\t\t\t\t\t\tparseStack.push(el)\r\n\t\t\t\t\t}\r\n\t\t\t\t}\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\t\r\n\t\t\t\tif(el.uri === 'http://www.w3.org/1999/xhtml' && !el.closed){\r\n\t\t\t\t\tend = parseHtmlSpecialContent(source,end,el.tagName,entityReplacer,domBuilder)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tend++;\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}catch(e){\r\n\t\t\terrorHandler.error('element parse error: '+e)\r\n\t\t\t//errorHandler.error('element parse error: '+e);\r\n\t\t\tend = -1;\r\n\t\t\t//throw e;\r\n\t\t}\r\n\t\tif(end>start){\r\n\t\t\tstart = end;\r\n\t\t}else{\r\n\t\t\t//TODO: 这里有可能sax回退,有位置错误风险\r\n\t\t\tappendText(Math.max(tagStart,start)+1);\r\n\t\t}\r\n\t}\r\n}\r\nfunction copyLocator(f,t){\r\n\tt.lineNumber = f.lineNumber;\r\n\tt.columnNumber = f.columnNumber;\r\n\treturn t;\r\n}\r\n\r\n/**\r\n * @see #appendElement(source,elStartEnd,el,selfClosed,entityReplacer,domBuilder,parseStack);\r\n * @return end of the elementStartPart(end of elementEndPart for selfClosed el)\r\n */\r\nfunction parseElementStartPart(source,start,el,currentNSMap,entityReplacer,errorHandler){\r\n\tvar attrName;\r\n\tvar value;\r\n\tvar p = ++start;\r\n\tvar s = S_TAG;//status\r\n\twhile(true){\r\n\t\tvar c = source.charAt(p);\r\n\t\tswitch(c){\r\n\t\tcase '=':\r\n\t\t\tif(s === S_ATTR){//attrName\r\n\t\t\t\tattrName = source.slice(start,p);\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else if(s === S_ATTR_SPACE){\r\n\t\t\t\ts = S_EQ;\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: equal must after attrName or space after attrName\r\n\t\t\t\tthrow new Error('attribute equal must after attrName');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '\\'':\r\n\t\tcase '\"':\r\n\t\t\tif(s === S_EQ || s === S_ATTR //|| s == S_ATTR_SPACE\r\n\t\t\t\t){//equal\r\n\t\t\t\tif(s === S_ATTR){\r\n\t\t\t\t\terrorHandler.warning('attribute value must after \"=\"')\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t}\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\tp = source.indexOf(c,start)\r\n\t\t\t\tif(p>0){\r\n\t\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\tel.add(attrName,value,start-1);\r\n\t\t\t\t\ts = S_ATTR_END;\r\n\t\t\t\t}else{\r\n\t\t\t\t\t//fatalError: no end quot match\r\n\t\t\t\t\tthrow new Error('attribute value no end \\''+c+'\\' match');\r\n\t\t\t\t}\r\n\t\t\t}else if(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\tvalue = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t//console.log(attrName,value,start,p)\r\n\t\t\t\tel.add(attrName,value,start);\r\n\t\t\t\t//console.dir(el)\r\n\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed start quot('+c+')!!');\r\n\t\t\t\tstart = p+1;\r\n\t\t\t\ts = S_ATTR_END\r\n\t\t\t}else{\r\n\t\t\t\t//fatalError: no equal before\r\n\t\t\t\tthrow new Error('attribute value must after \"=\"');\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase '/':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\ts =S_TAG_CLOSE;\r\n\t\t\t\tel.closed = true;\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\tcase S_ATTR:\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tbreak;\r\n\t\t\t//case S_EQ:\r\n\t\t\tdefault:\r\n\t\t\t\tthrow new Error(\"attribute invalid close char('/')\")\r\n\t\t\t}\r\n\t\t\tbreak;\r\n\t\tcase ''://end document\r\n\t\t\t//throw new Error('unexpected end of input')\r\n\t\t\terrorHandler.error('unexpected end of input');\r\n\t\t\tif(s == S_TAG){\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\t}\r\n\t\t\treturn p;\r\n\t\tcase '>':\r\n\t\t\tswitch(s){\r\n\t\t\tcase S_TAG:\r\n\t\t\t\tel.setTagName(source.slice(start,p));\r\n\t\t\tcase S_ATTR_END:\r\n\t\t\tcase S_TAG_SPACE:\r\n\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\tbreak;//normal\r\n\t\t\tcase S_ATTR_NOQUOT_VALUE://Compatible state\r\n\t\t\tcase S_ATTR:\r\n\t\t\t\tvalue = source.slice(start,p);\r\n\t\t\t\tif(value.slice(-1) === '/'){\r\n\t\t\t\t\tel.closed = true;\r\n\t\t\t\t\tvalue = value.slice(0,-1)\r\n\t\t\t\t}\r\n\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\tif(s === S_ATTR_SPACE){\r\n\t\t\t\t\tvalue = attrName;\r\n\t\t\t\t}\r\n\t\t\t\tif(s == S_ATTR_NOQUOT_VALUE){\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value.replace(/&#?\\w+;/g,entityReplacer),start)\r\n\t\t\t\t}else{\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !value.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed value!! \"'+value+'\" instead!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(value,value,start)\r\n\t\t\t\t}\r\n\t\t\t\tbreak;\r\n\t\t\tcase S_EQ:\r\n\t\t\t\tthrow new Error('attribute value missed!!');\r\n\t\t\t}\r\n//\t\t\tconsole.log(tagName,tagNamePattern,tagNamePattern.test(tagName))\r\n\t\t\treturn p;\r\n\t\t/*xml space '\\x20' | #x9 | #xD | #xA; */\r\n\t\tcase '\\u0080':\r\n\t\t\tc = ' ';\r\n\t\tdefault:\r\n\t\t\tif(c<= ' '){//space\r\n\t\t\t\tswitch(s){\r\n\t\t\t\tcase S_TAG:\r\n\t\t\t\t\tel.setTagName(source.slice(start,p));//tagName\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR:\r\n\t\t\t\t\tattrName = source.slice(start,p)\r\n\t\t\t\t\ts = S_ATTR_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_NOQUOT_VALUE:\r\n\t\t\t\t\tvar value = source.slice(start,p).replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\t\terrorHandler.warning('attribute \"'+value+'\" missed quot(\")!!');\r\n\t\t\t\t\tel.add(attrName,value,start)\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\ts = S_TAG_SPACE;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\t//case S_TAG_SPACE:\r\n\t\t\t\t//case S_EQ:\r\n\t\t\t\t//case S_ATTR_SPACE:\r\n\t\t\t\t//\tvoid();break;\r\n\t\t\t\t//case S_TAG_CLOSE:\r\n\t\t\t\t\t//ignore warning\r\n\t\t\t\t}\r\n\t\t\t}else{//not space\r\n//S_TAG,\tS_ATTR,\tS_EQ,\tS_ATTR_NOQUOT_VALUE\r\n//S_ATTR_SPACE,\tS_ATTR_END,\tS_TAG_SPACE, S_TAG_CLOSE\r\n\t\t\t\tswitch(s){\r\n\t\t\t\t//case S_TAG:void();break;\r\n\t\t\t\t//case S_ATTR:void();break;\r\n\t\t\t\t//case S_ATTR_NOQUOT_VALUE:void();break;\r\n\t\t\t\tcase S_ATTR_SPACE:\r\n\t\t\t\t\tvar tagName = el.tagName;\r\n\t\t\t\t\tif(currentNSMap[''] !== 'http://www.w3.org/1999/xhtml' || !attrName.match(/^(?:disabled|checked|selected)$/i)){\r\n\t\t\t\t\t\terrorHandler.warning('attribute \"'+attrName+'\" missed value!! \"'+attrName+'\" instead2!!')\r\n\t\t\t\t\t}\r\n\t\t\t\t\tel.add(attrName,attrName,start);\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_ATTR_END:\r\n\t\t\t\t\terrorHandler.warning('attribute space is required\"'+attrName+'\"!!')\r\n\t\t\t\tcase S_TAG_SPACE:\r\n\t\t\t\t\ts = S_ATTR;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_EQ:\r\n\t\t\t\t\ts = S_ATTR_NOQUOT_VALUE;\r\n\t\t\t\t\tstart = p;\r\n\t\t\t\t\tbreak;\r\n\t\t\t\tcase S_TAG_CLOSE:\r\n\t\t\t\t\tthrow new Error(\"elements closed character '/' and '>' must be connected to\");\r\n\t\t\t\t}\r\n\t\t\t}\r\n\t\t}//end outer switch\r\n\t\t//console.log('p++',p)\r\n\t\tp++;\r\n\t}\r\n}\r\n/**\r\n * @return true if has new namespace define\r\n */\r\nfunction appendElement(el,domBuilder,currentNSMap){\r\n\tvar tagName = el.tagName;\r\n\tvar localNSMap = null;\r\n\t//var currentNSMap = parseStack[parseStack.length-1].currentNSMap;\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\tvar a = el[i];\r\n\t\tvar qName = a.qName;\r\n\t\tvar value = a.value;\r\n\t\tvar nsp = qName.indexOf(':');\r\n\t\tif(nsp>0){\r\n\t\t\tvar prefix = a.prefix = qName.slice(0,nsp);\r\n\t\t\tvar localName = qName.slice(nsp+1);\r\n\t\t\tvar nsPrefix = prefix === 'xmlns' && localName\r\n\t\t}else{\r\n\t\t\tlocalName = qName;\r\n\t\t\tprefix = null\r\n\t\t\tnsPrefix = qName === 'xmlns' && ''\r\n\t\t}\r\n\t\t//can not set prefix,because prefix !== ''\r\n\t\ta.localName = localName ;\r\n\t\t//prefix == null for no ns prefix attribute \r\n\t\tif(nsPrefix !== false){//hack!!\r\n\t\t\tif(localNSMap == null){\r\n\t\t\t\tlocalNSMap = {}\r\n\t\t\t\t//console.log(currentNSMap,0)\r\n\t\t\t\t_copy(currentNSMap,currentNSMap={})\r\n\t\t\t\t//console.log(currentNSMap,1)\r\n\t\t\t}\r\n\t\t\tcurrentNSMap[nsPrefix] = localNSMap[nsPrefix] = value;\r\n\t\t\ta.uri = 'http://www.w3.org/2000/xmlns/'\r\n\t\t\tdomBuilder.startPrefixMapping(nsPrefix, value) \r\n\t\t}\r\n\t}\r\n\tvar i = el.length;\r\n\twhile(i--){\r\n\t\ta = el[i];\r\n\t\tvar prefix = a.prefix;\r\n\t\tif(prefix){//no prefix attribute has no namespace\r\n\t\t\tif(prefix === 'xml'){\r\n\t\t\t\ta.uri = 'http://www.w3.org/XML/1998/namespace';\r\n\t\t\t}if(prefix !== 'xmlns'){\r\n\t\t\t\ta.uri = currentNSMap[prefix || '']\r\n\t\t\t\t\r\n\t\t\t\t//{console.log('###'+a.qName,domBuilder.locator.systemId+'',currentNSMap,a.uri)}\r\n\t\t\t}\r\n\t\t}\r\n\t}\r\n\tvar nsp = tagName.indexOf(':');\r\n\tif(nsp>0){\r\n\t\tprefix = el.prefix = tagName.slice(0,nsp);\r\n\t\tlocalName = el.localName = tagName.slice(nsp+1);\r\n\t}else{\r\n\t\tprefix = null;//important!!\r\n\t\tlocalName = el.localName = tagName;\r\n\t}\r\n\t//no prefix element has default namespace\r\n\tvar ns = el.uri = currentNSMap[prefix || ''];\r\n\tdomBuilder.startElement(ns,localName,tagName,el);\r\n\t//endPrefixMapping and startPrefixMapping have not any help for dom builder\r\n\t//localNSMap = null\r\n\tif(el.closed){\r\n\t\tdomBuilder.endElement(ns,localName,tagName);\r\n\t\tif(localNSMap){\r\n\t\t\tfor(prefix in localNSMap){\r\n\t\t\t\tdomBuilder.endPrefixMapping(prefix) \r\n\t\t\t}\r\n\t\t}\r\n\t}else{\r\n\t\tel.currentNSMap = currentNSMap;\r\n\t\tel.localNSMap = localNSMap;\r\n\t\t//parseStack.push(el);\r\n\t\treturn true;\r\n\t}\r\n}\r\nfunction parseHtmlSpecialContent(source,elStartEnd,tagName,entityReplacer,domBuilder){\r\n\tif(/^(?:script|textarea)$/i.test(tagName)){\r\n\t\tvar elEndStart = source.indexOf('</'+tagName+'>',elStartEnd);\r\n\t\tvar text = source.substring(elStartEnd+1,elEndStart);\r\n\t\tif(/[&<]/.test(text)){\r\n\t\t\tif(/^script$/i.test(tagName)){\r\n\t\t\t\t//if(!/\\]\\]>/.test(text)){\r\n\t\t\t\t\t//lexHandler.startCDATA();\r\n\t\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\t\t//lexHandler.endCDATA();\r\n\t\t\t\t\treturn elEndStart;\r\n\t\t\t\t//}\r\n\t\t\t}//}else{//text area\r\n\t\t\t\ttext = text.replace(/&#?\\w+;/g,entityReplacer);\r\n\t\t\t\tdomBuilder.characters(text,0,text.length);\r\n\t\t\t\treturn elEndStart;\r\n\t\t\t//}\r\n\t\t\t\r\n\t\t}\r\n\t}\r\n\treturn elStartEnd+1;\r\n}\r\nfunction fixSelfClosed(source,elStartEnd,tagName,closeMap){\r\n\t//if(tagName in closeMap){\r\n\tvar pos = closeMap[tagName];\r\n\tif(pos == null){\r\n\t\t//console.log(tagName)\r\n\t\tpos = source.lastIndexOf('</'+tagName+'>')\r\n\t\tif(pos<elStartEnd){//忘记闭合\r\n\t\t\tpos = source.lastIndexOf('</'+tagName)\r\n\t\t}\r\n\t\tcloseMap[tagName] =pos\r\n\t}\r\n\treturn pos<elStartEnd;\r\n\t//} \r\n}\r\nfunction _copy(source,target){\r\n\tfor(var n in source){target[n] = source[n]}\r\n}\r\nfunction parseDCC(source,start,domBuilder,errorHandler){//sure start with '<!'\r\n\tvar next= source.charAt(start+2)\r\n\tswitch(next){\r\n\tcase '-':\r\n\t\tif(source.charAt(start + 3) === '-'){\r\n\t\t\tvar end = source.indexOf('-->',start+4);\r\n\t\t\t//append comment source.substring(4,end)//<!--\r\n\t\t\tif(end>start){\r\n\t\t\t\tdomBuilder.comment(source,start+4,end-start-4);\r\n\t\t\t\treturn end+3;\r\n\t\t\t}else{\r\n\t\t\t\terrorHandler.error(\"Unclosed comment\");\r\n\t\t\t\treturn -1;\r\n\t\t\t}\r\n\t\t}else{\r\n\t\t\t//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\tdefault:\r\n\t\tif(source.substr(start+3,6) == 'CDATA['){\r\n\t\t\tvar end = source.indexOf(']]>',start+9);\r\n\t\t\tdomBuilder.startCDATA();\r\n\t\t\tdomBuilder.characters(source,start+9,end-start-9);\r\n\t\t\tdomBuilder.endCDATA() \r\n\t\t\treturn end+3;\r\n\t\t}\r\n\t\t//<!DOCTYPE\r\n\t\t//startDTD(java.lang.String name, java.lang.String publicId, java.lang.String systemId) \r\n\t\tvar matchs = split(source,start);\r\n\t\tvar len = matchs.length;\r\n\t\tif(len>1 && /!doctype/i.test(matchs[0][0])){\r\n\t\t\tvar name = matchs[1][0];\r\n\t\t\tvar pubid = len>3 && /^public$/i.test(matchs[2][0]) && matchs[3][0]\r\n\t\t\tvar sysid = len>4 && matchs[4][0];\r\n\t\t\tvar lastMatch = matchs[len-1]\r\n\t\t\tdomBuilder.startDTD(name,pubid && pubid.replace(/^(['\"])(.*?)\\1$/,'$2'),\r\n\t\t\t\t\tsysid && sysid.replace(/^(['\"])(.*?)\\1$/,'$2'));\r\n\t\t\tdomBuilder.endDTD();\r\n\t\t\t\r\n\t\t\treturn lastMatch.index+lastMatch[0].length\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n\r\n\r\nfunction parseInstruction(source,start,domBuilder){\r\n\tvar end = source.indexOf('?>',start);\r\n\tif(end){\r\n\t\tvar match = source.substring(start,end).match(/^<\\?(\\S*)\\s*([\\s\\S]*?)\\s*$/);\r\n\t\tif(match){\r\n\t\t\tvar len = match[0].length;\r\n\t\t\tdomBuilder.processingInstruction(match[1], match[2]) ;\r\n\t\t\treturn end+2;\r\n\t\t}else{//error\r\n\t\t\treturn -1;\r\n\t\t}\r\n\t}\r\n\treturn -1;\r\n}\r\n\r\n/**\r\n * @param source\r\n */\r\nfunction ElementAttributes(source){\r\n\t\r\n}\r\nElementAttributes.prototype = {\r\n\tsetTagName:function(tagName){\r\n\t\tif(!tagNamePattern.test(tagName)){\r\n\t\t\tthrow new Error('invalid tagName:'+tagName)\r\n\t\t}\r\n\t\tthis.tagName = tagName\r\n\t},\r\n\tadd:function(qName,value,offset){\r\n\t\tif(!tagNamePattern.test(qName)){\r\n\t\t\tthrow new Error('invalid attribute:'+qName)\r\n\t\t}\r\n\t\tthis[this.length++] = {qName:qName,value:value,offset:offset}\r\n\t},\r\n\tlength:0,\r\n\tgetLocalName:function(i){return this[i].localName},\r\n\tgetLocator:function(i){return this[i].locator},\r\n\tgetQName:function(i){return this[i].qName},\r\n\tgetURI:function(i){return this[i].uri},\r\n\tgetValue:function(i){return this[i].value}\r\n//\t,getIndex:function(uri, localName)){\r\n//\t\tif(localName){\r\n//\t\t\t\r\n//\t\t}else{\r\n//\t\t\tvar qName = uri\r\n//\t\t}\r\n//\t},\r\n//\tgetValue:function(){return this.getValue(this.getIndex.apply(this,arguments))},\r\n//\tgetType:function(uri,localName){}\r\n//\tgetType:function(i){},\r\n}\r\n\r\n\r\n\r\n\r\nfunction _set_proto_(thiz,parent){\r\n\tthiz.__proto__ = parent;\r\n\treturn thiz;\r\n}\r\nif(!(_set_proto_({},_set_proto_.prototype) instanceof _set_proto_)){\r\n\t_set_proto_ = function(thiz,parent){\r\n\t\tfunction p(){};\r\n\t\tp.prototype = parent;\r\n\t\tp = new p();\r\n\t\tfor(parent in thiz){\r\n\t\t\tp[parent] = thiz[parent];\r\n\t\t}\r\n\t\treturn p;\r\n\t}\r\n}\r\n\r\nfunction split(source,start){\r\n\tvar match;\r\n\tvar buf = [];\r\n\tvar reg = /'[^']+'|\"[^\"]+\"|[^\\s<>\\/=]+=?|(\\/?\\s*>|<)/g;\r\n\treg.lastIndex = start;\r\n\treg.exec(source);//skip <\r\n\twhile(match = reg.exec(source)){\r\n\t\tbuf.push(match);\r\n\t\tif(match[1])return buf;\r\n\t}\r\n}\r\n\r\nexports.XMLReader = XMLReader;\r\n\r\n",
"type": "application/javascript",
"title": "$:/plugins/tiddlywiki/xmldom/sax",
"module-type": "library"
},
"$:/plugins/tiddlywiki/xmldom/license": {
"text": "You can choose any one of those:\n\nThe MIT License (MIT):\n\nlink:http://opensource.org/licenses/MIT\n\nLGPL:\nhttp://www.gnu.org/licenses/lgpl.html\n",
"type": "text/plain",
"title": "$:/plugins/tiddlywiki/xmldom/license"
},
"$:/plugins/tiddlywiki/xmldom/readme": {
"title": "$:/plugins/tiddlywiki/xmldom/readme",
"text": "This plugin packages [[xmldom|https://github.com/jindw/xmldom]] for use by other plugins. It does not provide any end-user visible features.\n"
}
}
}
biblios de profs et chercheurs de l'UPPA
\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]
\rules only filteredtranscludeinline transcludeinline macrocallinline
<div class="tc-remove-when-wiki-loaded">
<style scoped>
.tc-splash-text {
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol";
font-size: 16px;
text-rendering: optimizeLegibility;
-webkit-font-smoothing: antialiased;
margin: 20px auto 0;
width: 200px;
text-align: center;
color: <<colour foreground>>;
fill: <<colour foreground>>;
}
html body.tc-body {
background: <<colour page-background>>;
}
.line-wrapper {
width: 100%;
height: 80vh;
display: flex;
flex-direction: column;
justify-content: center;
align-items: center;
}
.line {
width: 50px;
height: 1px;
background: <<colour muted-foreground>>;
-webkit-animation: line 2s infinite;
-moz-animation: line 2s infinite;
-o-animation: line 2s infinite;
animation: line 2s infinite;
}
@-webkit-keyframes line {
0% { width: 10px; }
50% { width: 200px; }
100% { width: 10px; }
}
@keyframes line {
0% { width: 10px; }
50% { width: 200px; }
100% { width: 10px; }
}
.linetwo {
width: 50px;
height: 1px;
background: <<colour muted-foreground>>;
-webkit-animation: linetwo 2s infinite;
-moz-animation: linetwo 2s infinite;
-o-animation: linetwo 2s infinite;
animation: linetwo 2s infinite;
margin: 5px 0;
}
@-webkit-keyframes linetwo {
0% { width: 5px; }
70% { width: 180px; }
100% { width: 5px; }
}
@keyframes linetwo {
0% { width: 5px; }
70% { width: 180px; }
100% { width: 5px; }
}
.linethree {
width: 50px;
height: 1px;
background: <<colour muted-foreground>>;
-webkit-animation: linethree 2s infinite;
-moz-animation: linethree 2s infinite;
-o-animation: linethree 2s infinite;
animation: linethree 2s infinite;
margin: linethree 0;
}
@-webkit-keyframes linethree {
0% { width: 0; }
80% { width: 160px; }
100% { width: 0; }
}
@keyframes linethree {
0% { width: 0; }
80% { width: 160px; }
100% { width: 0; }
}
</style>
<div class="line-wrapper">
<div class="tc-splash-text">{{$:/SiteTitle}}</div>
<div class="line"></div>
<div class="linetwo"></div>
<div class="linethree"></div>
</div>
</div>
$:/_ExcelImporter/ImportSpecifiers/Field 20
$:/_ExcelImporter/ImportSpecifiers/Publiants
$:/_ExcelImporter/ImportSpecifiers/ImportChercheurs
$:/core/ui/ControlPanel/Plugins/Add/Themes
$:/core/ui/ControlPanel/Plugins/Installed/Languages
$:/core/ui/ControlPanel/Saving
$:/core/ui/ControlPanel/Saving/GitLab
$:/core/ui/MoreSideBar/All
$:/core/ui/SideBar/Recent
Sujets, représentations, sociétés
Champs pour les scripts d'export
{
"tiddlers": {
"$:/info/browser": {
"title": "$:/info/browser",
"text": "yes"
},
"$:/info/node": {
"title": "$:/info/node",
"text": "no"
},
"$:/info/url/full": {
"title": "$:/info/url/full",
"text": "file:///C:/Users/jrabaud001/Documents/GitlabUPPA/tw/HALsaisie/halsaisie_5-1-22.html"
},
"$:/info/url/host": {
"title": "$:/info/url/host",
"text": ""
},
"$:/info/url/hostname": {
"title": "$:/info/url/hostname",
"text": ""
},
"$:/info/url/protocol": {
"title": "$:/info/url/protocol",
"text": "file:"
},
"$:/info/url/port": {
"title": "$:/info/url/port",
"text": ""
},
"$:/info/url/pathname": {
"title": "$:/info/url/pathname",
"text": "/C:/Users/jrabaud001/Documents/GitlabUPPA/tw/HALsaisie/halsaisie_5-1-22.html"
},
"$:/info/url/search": {
"title": "$:/info/url/search",
"text": ""
},
"$:/info/url/origin": {
"title": "$:/info/url/origin",
"text": "file://"
},
"$:/info/browser/screen/width": {
"title": "$:/info/browser/screen/width",
"text": "1920"
},
"$:/info/browser/screen/height": {
"title": "$:/info/browser/screen/height",
"text": "1080"
},
"$:/info/browser/language": {
"title": "$:/info/browser/language",
"text": "fr-FR"
}
}
}
$:/_ExcelImporter/ImportSpecifiers/Field 27
$:/themes/tiddlywiki/snowwhite
{
"tiddlers": {
"$:/themes/jd/Mono/TopBarSegments/search": {
"created": "20190130163600391",
"creator": "jd",
"text": "\\define NewTidActions(searcharea)\n<$action-createtiddler $basetitle={{$searcharea$}} $savetitle=\"$:/temp/NewTidTitle\"/>\n<$action-sendmessage $message=\"tm-edit-tiddler\" $param={{$:/temp/NewTidTitle}}/>\n<$action-deletetiddler $tiddler=\"$:/temp/NewTidTitle\"/>\n<$action-setfield $tiddler=\"$searcharea$\" text=\"\"/>\n\\end\n\\define searchbar()\n<$list variable=\"stateCheck\" filter=\"[[$:/config/TopRightBar/$:/themes/jd/Mono/TopBarSegments/search]!text[hide]]\">\n<div class=\"tc-sidebar-lists\">\n\n<$set name=\"searchTiddler\" value=\"$:/temp/advancedsearch\">\n<$keyboard class=\"tc-search\" tag=\"div\" key=\"enter\" actions=<<NewTidActions \"$:/temp/advancedsearch\">>>\n<$edit-text tiddler=\"$:/temp/advancedsearch\" type=\"search\" tag=\"input\" focus={{$:/config/Search/AutoFocus}} focusPopup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-popup-handle\" default=\"\" placeholder=\"search, [enter] to create\"/>\n<$reveal state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n<$button tooltip=\"Create new tiddler with this title\" class=\"tc-btn-invisible\" actions=<<NewTidActions \"$:/temp/advancedsearch\">>>\n{{$:/core/images/new-button}}\n</$button>\n<$button class=\"tc-btn-invisible\">\n<$action-setfield $tiddler=\"$:/temp/advancedsearch\" text=\"\" />\n{{$:/core/images/close-button}}\n</$button>\n<$button popup=<<qualify \"$:/state/popup/search-dropdown\">> class=\"tc-btn-invisible\">\n{{$:/core/images/down-arrow}}\n</$button>\n<$list filter=\"[is[system]prefix[$:/state/searchtab]text[$:/core/ui/AdvancedSearch/Filter]limit[1]]\" variable=\"tabCheck\">\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch/FilterButton]!has[draft.of]]-$:/core/ui/AdvancedSearch/Filter/FilterButtons/clear\"><$transclude/></$list></$list>\n</$reveal>\n</$keyboard>\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown-wrapper\" state=\"$:/temp/advancedsearch\" type=\"nomatch\" text=\"\">\n\n<$reveal tag=\"div\" class=\"tc-block-dropdown tc-search-drop-down tc-popup-handle\" state=<<qualify \"$:/state/popup/search-dropdown\">> type=\"nomatch\" text=\"\" default=\"\">\n\n<style>.tc-block-dropdown.tc-search-drop-down { display: flex; }</style>\n<<tabs \"[all[shadows+tiddlers]tag[$:/tags/AdvancedSearch]!has[draft.of]]\" \"$:/core/ui/AdvancedSearch/System\" \"$:/state/searchtab\">>\n\n</$reveal>\n\n</$reveal>\n\n</$set>\n\n</div>\n\n</$list>\n\n\\end\n\n<div class=\"mobile-only\">\n\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n\n<<searchbar>>\n\n</$list>\n\n</div>\n\n<div class=\"desktop-only\">\n\n<<searchbar>>\n\n</div>\n",
"title": "$:/themes/jd/Mono/TopBarSegments/search",
"tags": "$:/tags/TopRightBar",
"modifier": "jd",
"modified": "20190203083032524"
},
"$:/themes/jd/Mono/TopBarSegments/buttons": {
"created": "20190201105717721",
"creator": "jd",
"text": "<div class=\"tc-page-controls\">\n\n<$set name=\"tv-config-toolbar-class\" filter=\"[<tv-config-toolbar-class>] [<listItem>encodeuricomponent[]addprefix[tc-btn-]]\">\n\n<$list filter=\"[enlist{$:/themes/jd/Mono/Database!!list}] +[!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>> mode=\"inline\"/>\n\n</$list>\n\n</$set>\n\n</div>\n",
"title": "$:/themes/jd/Mono/TopBarSegments/buttons",
"tags": "$:/tags/TopLeftBar",
"modifier": "jd",
"modified": "20190203014153431"
},
"$:/themes/jd/Mono/Stylesheet": {
"created": "20190130145325995",
"creator": "jd",
"text": "\\define bkrpnt() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}\n\\define sidebar() {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}}\n\\define fontsize() {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}}\n\n\n\n/* MAIN */\n\n@media (min-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable {\n position: fixed;\n top: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n left: 0;\n bottom: 0;\n right: unset;\n width: <<sidebar>>;\n margin: 0;\n padding: 0 2em 2em 2em;\n}\n.tc-story-river {\n width: calc(100% - <<sidebar>>);\n padding: 0 2em 4em 2em;\n}\n<$list filter=\"[[$:/view]!text[zoomin]]\">\n.tc-story-river { top: 0.25em; }\n</$list>\n<$list filter=\"[[$:/view]text[zoomin]]\">\n.tc-story-river {\n top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} + 0.25em);\n}\n</$list>\n<$list filter=\"[[$:/state/sidebar]!text[no]]\" variable=\"stateCheck\">\n.tc-story-river {\n left: <<sidebar>>;\n right: 0;\n}\n</$list>\n<$list filter=\"[[$:/state/sidebar]text[no]]\" variable=\"stateCheck\">\n.tc-story-river {\n left: calc(<<sidebar>> / 2);\n right: calc(<<sidebar>> / 2);\n}\n</$list>\n.tc-tiddler-frame {\n margin: 0 0 2em 0;\n width: 100%;\n border-radius: 1px;\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.15)\">>\n}\n.tc-storyview-zoomin-tiddler {\n width: calc(100% - 4em) !important;\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable { padding: 0 1em 2em 1em; }\n.tc-sidebar-header { padding: 0; }\n.tc-tiddler-frame { margin-bottom: 2px !important; }\n}\n\n<$list filter=\"[[$:/state/sidebar]!text[no]]\" variable=\"stateCheck\">\n@media (max-width: <<bkrpnt>>) {\n.tc-story-river { display: none; }\n}\n</$list>\n\n<$list filter=\"[[$:/state/sidebar]text[no]]\" variable=\"stateCheck\">\n@media (max-width: <<bkrpnt>>) {\n.tc-sidebar-scrollable { padding-top: 0; padding-bottom: 0; }\n}\n</$list>\n\n<$list filter=\"[[$:/themes/tiddlywiki/vanilla/options/stickytitles]text[yes]]\" variable=\"stateCheck\">\n@media (min-width: <<bkrpnt>>) {\n.tc-tiddler-title {\n top: calc({{$:/themes/jd/Mono/Database##header-position-desktop}} - .25em);\n}\n}\n\n.tc-titlebar {\n line-height: 0;\n}\n\n@media (max-width: <<bkrpnt>>) {\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n.tc-tiddler-edit-frame .tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n.tc-tiddler-view-frame .tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n.tc-tiddler-title {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};\n}\n</$list>\n}\n</$list>\n\n.tc-sidebar-scrollable .tc-tab-buttons,\n.tc-topbar .tc-page-controls button,\n.tc-topbar .tc-search button {\n padding: 0;\n}\n\n/* TOPBAR */\n\n<$list filter=\"[[$:/view]!text[zoomin]]\">\n<$list filter=\"[[$:/config/topbar/sticky]!text[no]]\">\n.tc-topbar { position: sticky; }\n@media (max-width: <<bkrpnt>>) { \n.tc-story-river { margin-top: -2.5em; }\n}\n</$list>\n<$list filter=\"[[$:/config/topbar/sticky]text[no]]\">\n.tc-topbar { position: fixed; }\n@media (min-width: <<bkrpnt>>) { \n.tc-topbar { height: 56px; }\n.tc-story-river { margin-top: 56px; }\n}\n<$list filter=\"[[$:/state/searchbar]!text[hide]]\">\n@media (max-width: <<bkrpnt>>) { \n.tc-topbar { height: 94px; }\n.tc-story-river { margin-top: calc(48px + 1em); }\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]text[hide]]\">\n@media (max-width: <<bkrpnt>>) { \n.tc-topbar { height: 48px; }\n.tc-story-river { margin-top: 1em; }\n}\n</$list>\n</$list>\n</$list>\n\n<$list filter=\"[[$:/view]text[zoomin]]\">\n.tc-topbar { position: fixed; }\n</$list>\n\n.tc-topbar {\n top: 0;\n width: 100%;\n display: flex;\n flex-wrap: wrap;\n align-items: center;\n justify-content: space-between;\n padding: 0.25em 1em;\n background: <<colour page-background>>;\n z-index: 900;\n}\n\n@media (min-width: <<bkrpnt>>) {\n.tc-topbar {\n padding: 1em 2em;\n max-height: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-topbar > * {\n width: 100%;\n}\n.tc-topbar .tc-topbar-left {\n padding: 0.75em 0;\n}\n.tc-topbar .tc-topbar-right .tc-search {\n margin-bottom: 0.5em;\n}\n.tc-topbar-right {\n font-size: 1.25em !important;\n}\n.tc-topbar .tc-page-controls {\n justify-content: space-between;\n width: 100%;\n}\n}\n\n.tc-topbar .tc-page-controls,\n.tc-topbar .tc-search {\n display: flex;\n align-items: center;\n}\n\n/* TOPBAR SEARCH */\n\n.tc-topbar .tc-search {\n border: 1px solid <<colour table-border>>;\n background: <<colour page-background>>;\n border-radius: 0;\n padding: 0.25em;\n}\n.tc-topbar .tc-search input {\n border: none;\n background: transparent;\n width: 100%;\n}\n.tc-topbar .tc-search .tc-reveal {\n display: flex;\n}\n\n/* controls */\n\n.tc-topbar .tc-page-controls {\n margin: 0;\n}\n.tc-topbar .tc-page-controls button > span,\n.tc-topbar .tc-page-controls button {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n/* DROPDOWNS */\n\n.tc-drop-down,\n.tc-block-dropdown {\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.25)\">>\n border-radius: 1px;\n}\n\n@media (max-width: <<bkrpnt>>) {\n\n.tc-search .tc-drop-down,\n.tc-search .tc-block-dropdown,\n.tc-page-controls .tc-drop-down,\n.tc-page-controls .tc-block-dropdown {\n position:fixed;\n left:1em;\n min-width: calc(100% - 2em);\n max-width: calc(100% - 2em);\n max-height: calc(100% - 10em);\n overflow: auto;\n}\n\n.tc-drop-down,\n.tc-block-dropdown {\n max-height: 22em;\n overflow: auto;\n font-size: calc(<<fontsize>>*1.2) !important;\n font-weight: normal;\n line-height: 1.2;\n}\n}\n\n/* TOPBAR SEARCH DROPDOWN */\n\n.tc-block-dropdown.tc-search-drop-down {\n padding: 0.5em;\n}\n\n.tc-block-dropdown.tc-search-drop-down .tc-tab-buttons {\n margin-bottom: -3px;\n padding-top: 0;\n}\n\n.tc-block-dropdown.tc-search-drop-down .tc-search-results { width: 100%; }\n\n.tc-block-dropdown.tc-search-drop-down .tc-search { display: none; }\n\n@media (min-width: <<bkrpnt>>) {\n.tc-block-dropdown.tc-search-drop-down {\n margin: 0 0 0 -24em;\n width: calc(100% + 24em);\n max-height: 42em;\n overflow: auto;\n}\n.tc-topbar-right .tc-search .tc-block-dropdown,\n.tc-topbar-right .tc-search .tc-drop-down {\n position: absolute;\n right: 0;\n}\n.tc-topbar-right .tc-search .tc-drop-down {\n padding: 1em;\n min-width: 10em;\n max-width: 10em;\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.tc-block-dropdown.tc-search-drop-down {\n margin: 0;\n width: 100%;\n overflow: auto;\n}\n}\n\n/* TOPBAR SEARCH DROPDOWN FLEX */\n\n/* .tc-block-dropdown.tc-search-drop-down { display: flex; } on searchbar template under reveal */\n\n.tc-block-dropdown.tc-search-drop-down > p {\n display: flex;\n margin: 0;\n width: 100%;\n}\n\n.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set {\n display: flex;\n flex-direction: column;\n width: 100%;\n}\n\n.tc-block-dropdown.tc-search-drop-down > p >.tc-tab-set > .tc-tab-content {\n display: flex;\n flex: 1 1 auto;\n overflow: auto;\n margin-top: 0;\n}\n\n\n<$reveal type=\"match\" state=\"$:/state/styled-frames\" text=\"yes\" default=\"yes\">\n\n/* VIEW & EDIT FRAME */\n\n.tc-subtitle,\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor,\n.tc-tiddler-view-frame .tc-titlebar h2.tc-title {\n font-family: monospace;\n}\n\n/* VIEW FRAME */\n\n.tc-tiddler-view-frame .tc-title {\n font-weight: bold;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-title {\n font-size: 1.5em;\n margin: 0 -1em;\n padding: 0.25em 1em;\n}\n\n.tc-tiddler-view-frame .tc-titlebar {\n font-size: 1em;\n}\n\n.tc-tiddler-view-frame .tc-titlebar h2.tc-title {\n font-size: 0.75em;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-controls {\n font-size: 1.5em;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-controls,\n.tc-tiddler-view-frame .tc-tiddler-controls > span > button, \n.tc-tiddler-view-frame .tc-tiddler-controls > span > span > button, \n.tc-tiddler-view-frame .tc-tiddler-controls > span > span > span > button {\n display: flex;\n align-items: center;\n justify-content: center;\n}\n\n.tc-tiddler-view-frame .tc-tiddler-title-icon svg {\n max-height: 0.65em;\n}\n\n/* EDIT FRAME */\n\n.tc-tiddler-edit-frame .tc-tiddler-edit-title {\n color: transparent;\n line-height: 0;\n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {\n font-size: 1.2em; \n}\n\n.tc-tiddler-edit-frame .tc-message-box { margin: 0; }\n\n.tc-tiddler-edit-frame iframe.tc-edit-texteditor { margin-top: 0 !important; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar { background: <<colour tiddler-editor-border>>; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible { background: transparent; }\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible {\n transition: 200ms fill;\n fill: <<colour foreground>>;\n}\n\n.tc-tiddler-edit-frame .tc-editor-toolbar .tc-btn-invisible:hover {\n background: transparent;\n fill: <<colour primary>>;\n}\n\ninput::placeholder {\n font-size: 0.9em; \n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor, \n.tc-tiddler-edit-frame .tc-edit-tags, \n.tc-tiddler-edit-frame .tc-edit-field-add-name input.tc-edit-texteditor, \n.tc-tiddler-edit-frame .tc-edit-field-add-value input.tc-edit-texteditor, \n.tc-tiddler-edit-frame input.tc-edit-typeeditor.tc-popup-handle, \n.tc-tiddler-edit-frame input.tc-edit-texteditor.tc-popup-handle {\n border: 1px solid <<colour background>>; \n border-bottom: 1px solid <<colour tiddler-editor-border>>;\n <<box-shadow \"none\">>\n} \n\n.tc-tiddler-edit-frame textarea { \n border: 1px solid <<colour tiddler-editor-border>>;\n <<box-shadow \"none\">>\n} \n\n.tc-tiddler-edit-frame textarea,\n.tc-tiddler-edit-frame iframe.tc-edit-texteditor {\n font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n border: 1px solid <<colour background>>; \n <<box-shadow \"none\">>\n}\n\n.tc-tiddler-edit-frame input.tc-titlebar.tc-edit-texteditor {\n font-weight: bold;\n}\n\n.tc-tiddler-edit-frame .tc-type-selector {\n padding-bottom: 10px;\n border-bottom: 1px solid <<colour tiddler-editor-border>>;\n}\n\n</$reveal>\n\n\n/* TIMELINE */\n\n.jd-timeline-wrapper {\n position: relative;\n}\n@media (max-width: <<bkrpnt>>) {\n.jd-timeline-wrapper {\n padding: 0 1em;\n width: 100%;\n}\n}\n .jd-paperview-wrapper {\n display: flex;\n flex-wrap: wrap;\n margin: 0.25em 0;\n}\n.jd-paperview {\n position:relative;\n width: 31%;\n margin: 1%;\n overflow:hidden;\n border: 0.5px solid {{$:/themes/jd/Mono/Database##grid-item-border}};\n border-radius: 1px;\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.09)\">>\n text-align: left;\n}\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview { height: 26em; }\n}\n@media (max-width: <<bkrpnt>>) {\n.jd-paperview { height: 12em; }\n}\n.jd-paperview,\n.jd-paperview-end {\n background: {{$:/themes/jd/Mono/Database##grid-item-background}} !important;\n}\n.jd-paperview-end {\n position: absolute;\n bottom: 0;\n left:0;\n width: 100%;\n height: 5px;\n}\n.jd-paperview-internal {\n transform: scale(0.7);\n position: absolute;\n width: 110%;\n height: 100%;\n top: -5%;\n left: -5%;\n pointer-events: none;\n}\n.jd-paperview-wrapper .tc-menu-list-subitem { width: 100%; }\n\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview-end {\n box-shadow: 0 0 10px 10px {{$:/themes/jd/Mono/Database##grid-item-background}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n.jd-paperview-end {\n box-shadow: 0 0 5px 5px {{$:/themes/jd/Mono/Database##grid-item-background}};\n}\n\n}\n.jd-paperview-date {\n padding: 0.1em 0;\n}\n.jd-paperview-date {\n position: sticky;\n z-index: 1;\n background: {{$:/themes/jd/Mono/Database##header-background}};\n box-shadow: 0 0 2px 2px {{$:/themes/jd/Mono/Database##header-background}};\n}\n\n@media (min-width: <<bkrpnt>>) {\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-desktop}};\n}\n}\n\n@media (max-width: <<bkrpnt>>) {\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-yes-searchbar}};\n}\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n.jd-paperview-date {\n top: {{$:/themes/jd/Mono/Database##header-position-mobile-no-searchbar}};\n}\n</$list>\n}\n\n\n/* MISC */\n\nhr {\n border: none;\n border-top: 1px solid <<colour table-border>>;\n height: 1px;\n}\n\n.tc-sidebar-scrollable .tc-tab-buttons,\n.tc-tiddler-frame .tc-tab-buttons {\n margin-bottom: -3px;\n}\n\n.tc-story-river .tc-tab-buttons.tc-vertical button {\n border-top: 1px solid <<colour tab-border>>;\n border-left: 1px solid <<colour tab-border>>;\n border-bottom: 1px solid <<colour tab-border>>;\n border-right: 1px solid transparent;\n}\n\n.tc-story-river .tc-tab-buttons.tc-vertical .tc-tab-selected {\n border-top: 1px solid <<colour tab-border-selected>>;\n border-left: 1px solid <<colour tab-border-selected>>;\n border-bottom: 1px solid <<colour tab-border-selected>>;\n border-right: 1px solid transparent;\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n border-top: none;\n height: 1px;\n background-image: linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -o-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -moz-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -webkit-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n background-image: -ms-linear-gradient(left, <<colour sidebar-tab-divider>> 20%, transparent 100%);\n}\n\n/* SIDEBAR MORE TAB BUTTONS */\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical {\n margin-top: 1em;\n}\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical > button {\n margin-bottom: -1px;\n border-top: 1px solid <<colour sidebar-tab-border>>;\n border-right: 1px solid transparent;\n border-bottom: 1px solid <<colour sidebar-tab-border>>;\n border-left: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-more-sidebar .tc-tab-buttons.tc-vertical > button.tc-tab-selected {\n border-top: 1px solid <<colour sidebar-tab-border-selected>>;\n border-right: 1px solid transparent;\n border-bottom: 1px solid <<colour sidebar-tab-border-selected>>;\n border-left: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-more-sidebar .tc-tab-content.tc-vertical {\n margin-left: 1px;\n}\n\nul, li {\n white-space: nowrap; \n overflow: hidden;\n text-overflow: ellipsis;\n}\n\n.tc-menu-list-item {\n padding-left: 5px;\n text-indent: -5px;\n white-space: normal !important;\n word-wrap: break-word !important;\n -webkit-word-break: break-all !important;\n -moz-word-break: break-all !important;\n -ms-word-break: break-all !important;\n -o-word-break: break-all !important;\n word-break: break-all !important;\n}\n\nbutton, input { outline: none; }\n\nbutton, input:not([type]) {\n border-radius: 2px;\n}\n\ninput:not([type]) {\n border: 1px solid <<colour tiddler-editor-border>>;\n padding: 2px 4px;\n margin: 2px;\n}\n\nbutton {\n border: 1px solid <<colour button-border>>;\n padding: 6px 16px;\n margin: 2px;\n}\n\n@media (max-width: <<bkrpnt>>) {\n.desktop-only {\n display: none !important; pointer-events: none;\n}\n}\n\n@media (min-width: <<bkrpnt>>) {\n.mobile-only {\n display: none !important; pointer-events: none;\n}\n}\n\n.tc-topbar.tc-topbar-left,\n.tc-topbar.tc-topbar-right {\n display: none; pointer-events: none;\n}\n\n.tc-dropzone > p,\n.tc-topbar p,\n.tc-sidebar-lists-template > p,\n.tc-topbar .tc-sidebar-lists > p { margin: 0; }\n\n@media (min-width: <<bkrpnt>>) {\ndiv::-webkit-scrollbar { background: rgba(0, 0, 0, 0.12); }\ndiv::-webkit-scrollbar-thumb { background: rgba(0, 0, 0, 0.12); }\n}\n\n.tc-notification {\n <<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.45)\">>\n border-radius: 1px;\n}",
"title": "$:/themes/jd/Mono/Stylesheet",
"tags": "$:/tags/Stylesheet",
"modifier": "jd",
"modified": "20190205153021408"
},
"$:/themes/jd/Mono/Palette/SpartanNight": {
"created": "20180624055725870",
"creator": "jd",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #303030\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherent\nbutton-border: <<colour tag-background>>\ncode-background: <<colour pre-background>>\ncode-border: <<colour pre-border>>\ncode-foreground: rgba(255, 255, 255, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour foreground>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #424242\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #050505\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: #7c318c\nexternal-link-foreground: #9e3eb3\nforeground: rgba(255, 255, 255, 0.7)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(255, 255, 255, 0.54)\nmodal-backdrop: <<colour page-background>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour background>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(255, 255, 255, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #212121\npre-background: #2a2a2a\npre-border: transparent\nprimary: white\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #494949\nsidebar-controls-foreground: #5d5d5d\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground-hover: rgba(255, 255, 255, 0.54)\nsidebar-muted-foreground: rgba(255, 255, 255, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: <<colour sidebar-tab-border-selected>>\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(255, 255, 255, 0.87)\nsidebar-tab-foreground: rgba(255, 255, 255, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(255, 255, 255, 0.7)\nsidebar-tiddler-link-foreground: rgba(255, 255, 255, 0.54)\nsite-title-foreground: rgba(255, 255, 255, 0.7)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: <<colour tab-border-selected>>\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(255, 255, 255, 0.87)\ntab-foreground: rgba(255, 255, 255, 0.54)\ntable-border: #3a3a3a\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: rgb(55,55,55)\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: rgba(255, 255, 255, 0.08)\ntiddler-editor-fields-even: rgba(255, 255, 255, 0.1)\ntiddler-editor-fields-odd: rgba(255, 255, 255, 0.04)\ntiddler-info-background: #454545\ntiddler-info-border: #454545\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #FFFFFF\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(255, 255, 255, 0.12)",
"type": "application/x-tiddler-dictionary",
"title": "$:/themes/jd/Mono/Palette/SpartanNight",
"tags": "$:/tags/Palette",
"revision": "16-bb276562b7c93c8ace69907892d92eed",
"name": "Spartan Night",
"modifier": "jd",
"modified": "20190202100758570",
"description": "Spartan night colors",
"caption": "Spartan Night"
},
"$:/themes/jd/Mono/Palette/SpartanDay": {
"created": "20180624055639361",
"creator": "jd",
"text": "alert-background: <<colour background>>\nalert-border: <<colour very-muted-foreground>>\nalert-highlight: <<colour very-muted-foreground>>\nalert-muted-foreground: <<colour muted-foreground>>\nbackground: #FAFAFA\nblockquote-bar: <<colour page-background>>\nbutton-background: transparent\nbutton-foreground: inherit\nbutton-border: <<colour tag-background>>\ncode-background: #ececec\ncode-border: #ececec\ncode-foreground: rgba(0, 0, 0, 0.54)\ndirty-indicator: #c80000\ndownload-background: <<colour primary>>\ndownload-foreground: <<colour background>>\ndragger-background: <<colour foreground>>\ndragger-foreground: <<colour background>>\ndropdown-background: #FFFFFF\ndropdown-border: <<colour dropdown-background>>\ndropdown-tab-background-selected: <<colour dropdown-background>>\ndropdown-tab-background: #F5F5F5\ndropzone-background: <<colour tag-background>>\nexternal-link-background-hover: transparent\nexternal-link-background-visited: transparent\nexternal-link-background: transparent\nexternal-link-foreground-hover: \nexternal-link-foreground-visited: \nexternal-link-foreground: \nforeground: rgba(0, 0, 0, 0.87)\nmessage-background: <<colour background>>\nmessage-border: <<colour very-muted-foreground>>\nmessage-foreground: rgba(0, 0, 0, 0.54)\nmodal-backdrop: <<colour foreground>>\nmodal-background: <<colour background>>\nmodal-border: <<colour very-muted-foreground>>\nmodal-footer-background: <<colour background>>\nmodal-footer-border: <<colour very-muted-foreground>>\nmodal-header-border: <<colour very-muted-foreground>>\nmuted-foreground: rgba(0, 0, 0, 0.54)\nnotification-background: <<colour dropdown-background>>\nnotification-border: <<colour dropdown-background>>\npage-background: #f4f4f4\npre-background: #ececec\npre-border: #ececec\nprimary: #3949ab\nsidebar-button-foreground: <<colour foreground>>\nsidebar-controls-foreground-hover: #aeaeae\nsidebar-controls-foreground: #c6c6c6\nsidebar-foreground-shadow: transparent\nsidebar-foreground: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground-hover: rgba(0, 0, 0, 0.54)\nsidebar-muted-foreground: rgba(0, 0, 0, 0.38)\nsidebar-tab-background-selected: <<colour page-background>>\nsidebar-tab-background: transparent\nsidebar-tab-border-selected: <<colour table-border>>\nsidebar-tab-border: <<colour sidebar-tab-border-selected>>\nsidebar-tab-divider: <<colour table-border>>\nsidebar-tab-foreground-selected: rgba(0, 0, 0, 0.87)\nsidebar-tab-foreground: rgba(0, 0, 0, 0.54)\nsidebar-tiddler-link-foreground-hover: rgba(0, 0, 0, 0.87)\nsidebar-tiddler-link-foreground: rgba(0, 0, 0, 0.54)\nsite-title-foreground: rgba(0, 0, 0, 0.87)\nstatic-alert-foreground: #aaaaaa\ntab-background-selected: <<colour background>>\ntab-background: transparent\ntab-border-selected: <<colour table-border>>\ntab-border: <<colour tab-border-selected>>\ntab-divider: <<colour table-border>>\ntab-foreground-selected: rgba(0, 0, 0, 0.87)\ntab-foreground: rgba(0, 0, 0, 0.54)\ntable-border: #d8d8d8\ntable-footer-background: <<colour tiddler-editor-fields-odd>>\ntable-header-background: <<colour tiddler-editor-fields-even>>\ntag-background: #ec6\ntag-foreground: <<colour button-foreground>>\ntiddler-background: <<colour background>>\ntiddler-border: #f9f9f9\ntiddler-controls-foreground-hover: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground-selected: <<colour sidebar-controls-foreground-hover>>\ntiddler-controls-foreground: <<colour sidebar-controls-foreground>>\ntiddler-editor-background: transparent\ntiddler-editor-border-image: \ntiddler-editor-border: #e8e7e7\ntiddler-editor-fields-even: rgba(0, 0, 0, 0.1)\ntiddler-editor-fields-odd: rgba(0, 0, 0, 0.04)\ntiddler-info-background: #F5F5F5\ntiddler-info-border: #F5F5F5\ntiddler-info-tab-background: <<colour tiddler-editor-fields-odd>>\ntiddler-link-background: <<colour background>>\ntiddler-link-foreground: <<colour primary>>\ntiddler-subtitle-foreground: <<colour muted-foreground>>\ntiddler-title-foreground: #000000\ntoolbar-new-button: \ntoolbar-options-button: \ntoolbar-save-button: \ntoolbar-info-button: \ntoolbar-edit-button: \ntoolbar-close-button: \ntoolbar-delete-button: \ntoolbar-cancel-button: \ntoolbar-done-button: \nuntagged-background: <<colour very-muted-foreground>>\nvery-muted-foreground: rgba(0, 0, 0, 0.12)",
"type": "application/x-tiddler-dictionary",
"title": "$:/themes/jd/Mono/Palette/SpartanDay",
"tags": "$:/tags/Palette",
"revision": "16-1f6eabb9816382603cfa899327890536",
"name": "Spartan Day",
"modifier": "jd",
"modified": "20190202100822086",
"description": "Spartan day colors",
"caption": "Spartan Day"
},
"$:/themes/jd/Mono/PageTemplate/topbar": {
"text": "<div class=\"tc-topbar tc-adjust-top-of-scroll\">\n\n<div class=\"tc-topbar-left\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopLeftBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</div>\n\n<div class=\"tc-topbar-right\">\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/TopRightBar]!has[draft.of]]\" variable=\"listItem\">\n\n<$transclude tiddler=<<listItem>>/>\n\n</$list>\n\n</div>\n\n</div>\n",
"title": "$:/themes/jd/Mono/PageTemplate/topbar",
"tags": "$:/tags/PageTemplate",
"modifier": "jd",
"modified": "20190201113453598",
"list-before": "",
"creator": "jd",
"created": "20190130160503644"
},
"$:/themes/jd/Mono/Config": {
"created": "20190202083644385",
"creator": "jd",
"text": "<$checkbox tiddler=\"$:/config/TopRightBar/$:/themes/jd/Mono/TopBarSegments/search\" field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\" actions=\"\"\"\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"show\"/>\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"$:/themes/jd/Mono/Buttons/searchbar\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-desktop\" $value=\"calc(56px + .25em)\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-mobile-yes-searchbar\" $value=\"calc(4px + 3em + 6px + {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}} + .25em)\"/>\n\"\"\" uncheckactions=\"\"\"\n<$action-setfield $tiddler=\"$:/config/TopLeftBar/Button/$:/themes/jd/Mono/Buttons/searchbar\" text=\"hide\"/>\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"-$:/themes/jd/Mono/Buttons/searchbar\"/>\n<$action-setfield $tiddler=\"$:/themes/jd/Mono/Database\" $index=\"header-position-mobile-yes-searchbar\" $value=\"calc(2px + 2.25em)\"/>\n\"\"\"> Use searchbar and button (the toggle button only shows up on mobile)</$checkbox>\n\n<$checkbox tiddler=\"$:/themes/jd/Mono/Database\" index=\"button-fontscroller\" checked=\"show\" unchecked=\"hide\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"$:/themes/jd/Mono/Buttons/font-scroller\"/>\"\"\" uncheckactions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"-$:/themes/jd/Mono/Buttons/font-scroller\"/>\n\"\"\"> Use font scroller button </$checkbox>\n\n<$checkbox tiddler=\"$:/SplashScreen\" field=\"text\" checked={{$:/themes/jd/Mono/SplashScreen!!text}} actions=\"\"\"\n<$action-setfield $tiddler=\"$:/SplashScreen\" tags=\"$:/tags/RawMarkupWikified/TopBody\"/>\"\"\"> Use splashscreen</$checkbox>\n\n<$checkbox tiddler=\"$:/config/EmptyStoryMessage\" field=\"text\" checked=\"\"\"{{$:/themes/jd/Mono/EmptyStoryMessage}}\"\"\"> Use timeline grid when story river is empty (grid preview of 10 recent dates for modified tiddlers)</$checkbox>\n\n<$checkbox tiddler=\"$:/state/styled-frames\" field=\"text\" checked=\"yes\" unchecked=\"no\" default=\"yes\"> Style tiddler frames</$checkbox>\n\n<$checkbox tiddler=\"$:/config/topbar/sticky\" field=\"text\" checked=\"no\" unchecked=\"yes\" default=\"yes\"> Tick this checkbox if using ''Internet Explorer'', or if the topbar position is not working properly (position: sticky; incompatibility)</$checkbox>\n\nKeep updated on `MonoTheme` here: ''[[http://j.d.mono.tiddlyspot.com/]]''\n\n<<tabs \"$:/themes/jd/Mono/Config/SidebarSegments $:/themes/jd/Mono/Config/TopbarButtons $:/themes/jd/Mono/Config/PaletteSwitcher $:/themes/jd/Mono/Config/VanillaTweaks $:/themes/jd/Mono/Config/DatabaseValues\" \"$:/themes/jd/Mono/Config/TopbarButtons\" class:\"tc-vertical\">>",
"title": "$:/themes/jd/Mono/Config",
"tags": "$:/tags/ControlPanel/Appearance",
"modifier": "jd",
"modified": "20190205153009029",
"caption": "Mono Tweaks"
},
"$:/themes/jd/Mono/Buttons/switch-palette": {
"created": "20180718101345840",
"creator": "jd",
"text": "<$list filter=\"[[$:/palette]!text{$:/themes/jd/Mono/Database##night-palette}]\">\n<$button set=\"$:/palette\" setTo={{$:/themes/jd/Mono/Database##night-palette}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{ $:/core/images/tip}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text=\"night\"/>\n</span>\n</$list>\n</$button>\n</$list>\n<$list filter=\"[[$:/palette]text{$:/themes/jd/Mono/Database##night-palette}]\">\n<$button set=\"$:/palette\" setTo={{$:/themes/jd/Mono/Database##day-palette}} class=<<tv-config-toolbar-class>>>\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{ $:/core/images/tip}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\">\n<$text text=\" \"/>\n<$text text=\"day\"/>\n</span>\n</$list>\n</$button>\n</$list>\n",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/jd/Mono/Buttons/switch-palette",
"tags": "$:/tags/PageControls",
"revision": "6-0bdaa9022f44b4d8d5b1a71f193803af",
"modifier": "jd",
"modified": "20190202134636973",
"description": "Toggle palette",
"caption": "{{$:/core/images/tip}} palette"
},
"$:/themes/jd/Mono/Buttons/searchbar": {
"created": "20190130164005014",
"creator": "jd",
"text": "<$button class={{{ [<tv-config-toolbar-class>addsuffix[ mobile-only]] }}} tooltip=\"searchbar\">\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/advanced-search-button}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text={{$:/language/Buttons/AdvancedSearch/Caption}}/></span>\n</$list>\n<$list filter=\"[[$:/state/searchbar]!text[show]]\">\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"show\"/>\n</$list>\n<$list filter=\"[[$:/state/searchbar]text[show]]\">\n<$action-setfield $tiddler=\"$:/state/searchbar\" text=\"hide\"/>\n</$list>\n</$button>",
"title": "$:/themes/jd/Mono/Buttons/searchbar",
"tags": "$:/tags/PageControls",
"modifier": "jd",
"modified": "20190202153859733",
"description": "Mono searchbar toggler",
"caption": "{{$:/core/images/advanced-search-button}} mono searchbar"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/page-controls": {
"created": "20190201102601467",
"creator": "jd",
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/page-controls",
"modifier": "jd",
"modified": "20190202133339913"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/search": {
"created": "20190201102714829",
"creator": "jd",
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/search",
"modifier": "jd",
"modified": "20190202133211221"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-subtitle": {
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-subtitle",
"modifier": "jd",
"modified": "20190201102704659",
"creator": "jd",
"created": "20190201102652423"
},
"$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-title": {
"text": "hide",
"title": "$:/config/SideBarSegments/Visibility/$:/core/ui/SideBarSegments/site-title",
"modifier": "jd",
"modified": "20190202160543142",
"creator": "jd",
"created": "20190201102745176"
},
"$:/core/ui/TopBar/menu": {
"created": "20190201145933072",
"creator": "jd",
"text": "<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"no\" tooltip={{$:/language/Buttons/HideSideBar/Hint}} aria-label={{$:/language/Buttons/HideSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-left}}</$button>\n</$reveal>\n<$reveal state=\"$:/state/sidebar\" type=\"match\" text=\"no\">\n<$button set=\"$:/state/sidebar\" setTo=\"yes\" tooltip={{$:/language/Buttons/ShowSideBar/Hint}} aria-label={{$:/language/Buttons/ShowSideBar/Caption}} class=\"tc-btn-invisible\">{{$:/core/images/chevron-right}}</$button>\n</$reveal>\n",
"title": "$:/core/ui/TopBar/menu",
"modifier": "jd",
"modified": "20190203083157565",
"caption": "{{$:/core/images/chevron-right}} sidebar",
"description": "Toggle sidebar"
},
"$:/themes/jd/Mono/EmptyStoryMessage": {
"created": "20190202111910887",
"creator": "jd",
"text": "\\whitespace trim\n<div class=\"jd-timeline-wrapper\">\n<$list filter=\"[!is[system]!has[draft.of]!sort[modified]has[modified]limit[10]eachday[modified]]\">\n<div class=\"jd-paperview-date\">\n<$view field=\"modified\" format=\"date\" template=\"DDth MMM YYYY\"/>\n</div>\n<div class=\"jd-paperview-wrapper\">\n<$list filter=\"[sameday:modified{!!modified}!is[system]!has[draft.of]!sort[modified]]\">\n<$button to={{!!title}} class=\"jd-paperview\">\n<div class=\"jd-paperview-internal\">\n<b><$view field=\"title\"/></b>\n<$transclude mode=\"block\"/>\n</div>\n<div class=\"jd-paperview-end\">\n</div>\n</$button>\n</$list>\n</div>\n</$list>\n</div>\n",
"title": "$:/themes/jd/Mono/EmptyStoryMessage",
"tags": "",
"modifier": "jd",
"modified": "20190203153408764"
},
"$:/themes/jd/Mono/Config/TopbarButtons": {
"created": "20190202123433451",
"creator": "jd",
"text": "\\define config-title()\n$:/config/TopLeftBar/Button/$(currentTiddler)$\n\\end\n\n!!! ''Remove from ~TopLeftBar''\n//Click to remove from ~TopLeftBar, rearrange by dragging//\n\n<$list filter=\"[enlist{$:/themes/jd/Mono/Database!!list}]\">\n<$droppable actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\"\"\">\n<div class=\"tc-droppable-placeholder\"> </div>\n<$draggable tiddler=<<currentTiddler>>>\n<$button class=\"tc-btn-invisible\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $subfilter=\"-[<currentTiddler>]\"/>\n\"\"\">\n<span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span> \n</$button>\n</$draggable>\n</$droppable>\n</$list>\n\n!!! ''Add to ~TopLeftBar''\n//Click to add to ~TopLeftBar//\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/PageControls]] $:/core/ui/TopBar/menu $:/themes/jd/Mono/Buttons/searchbar -[enlist{$:/themes/jd/Mono/Database!!list}]\">\n<$button class=\"tc-btn-invisible\" style=\"width: 100%; text-align: left;\" actions=\"\"\"\n<$action-listops $tiddler=\"$:/themes/jd/Mono/Database\" $subfilter=<<currentTiddler>>/>\n\"\"\">\n<span class=\"tc-icon-wrapper\"> <$transclude field=\"caption\"/> <i class=\"tc-muted\">-- <$transclude field=\"description\"/></i></span> \n</$button>\n</$list>\n",
"title": "$:/themes/jd/Mono/Config/TopbarButtons",
"tags": "",
"modifier": "jd",
"modified": "20190203014157409",
"caption": "Topbar buttons"
},
"$:/themes/jd/Mono/Database": {
"created": "20190202114537700",
"creator": "jd",
"text": "{\n \"grid-sticky-header-background\": \"<<colour page-background>>\",\n \"grid-item-background\": \"<<colour background>>\",\n \"grid-item-border\": \"<<colour tiddler-border>>\",\n \"header-background\": \"<<colour page-background>>\",\n \"header-position-mobile-no-searchbar\": \"calc(2px + 2.25em)\",\n \"header-position-mobile-yes-searchbar\": \"calc(4px + 3em + 6px + {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}} + .25em)\",\n \"header-position-desktop\": \"calc(56px + .25em)\",\n \"day-palette\": \"$:/themes/jd/Mono/Palette/SpartanDay\",\n \"night-palette\": \"$:/themes/jd/Mono/Palette/SpartanNight\",\n \"button-fontscroller\": \"hide\"\n}",
"type": "application/json",
"title": "$:/themes/jd/Mono/Database",
"tags": "",
"modifier": "jd",
"modified": "20190205153057281",
"list": "$:/core/ui/Buttons/new-tiddler $:/core/ui/Buttons/control-panel $:/core/ui/Buttons/save-wiki $:/themes/jd/Mono/Buttons/switch-palette $:/core/ui/TopBar/menu $:/themes/jd/Mono/Buttons/searchbar"
},
"$:/themes/jd/Mono/Config/SidebarSegments": {
"created": "20190202123345136",
"creator": "jd",
"text": "\\define config-title()\n$:/config/SideBarSegments/Visibility/$(currentTiddler)$\n\\end\n\n!!! ''Sidebar segments''\n//Uncheck to remove from ~SideBar, rearrange by dragging//\n\n<$list filter=\"[all[shadows+tiddlers]tag[$:/tags/SideBarSegment]]\">\n<$droppable actions=\"\"\"\n<$action-listops $tiddler=\"$:/tags/SideBarSegment\" $field=\"list\" $subfilter=\"+[insertbefore:currentTiddler<actionTiddler>]\"/>\n\"\"\">\n<div class=\"tc-droppable-placeholder\"> </div>\n<$draggable tiddler=<<currentTiddler>>>\n<$checkbox tiddler=<<config-title>> field=\"text\" checked=\"show\" unchecked=\"hide\" default=\"show\"> <$text text=<<currentTiddler>>/>\n</$checkbox><br>\n</$draggable>\n</$droppable>\n</$list>",
"title": "$:/themes/jd/Mono/Config/SidebarSegments",
"modifier": "jd",
"modified": "20190202135551740",
"tags": "",
"caption": "Sidebar segments"
},
"$:/themes/jd/Mono/Config/DatabaseValues": {
"created": "20190202123554778",
"creator": "jd",
"text": "!!! ''Advanced''\n\n<$list filter=\"[[$:/themes/jd/Mono/Database]indexes[]search[position]]\" variable=\"index\">\n\n<<index>>:\n\n<$edit-text tiddler=\"$:/themes/jd/Mono/Database\" index=<<index>> tag=\"input\"/>\n\n</$list>",
"title": "$:/themes/jd/Mono/Config/DatabaseValues",
"modifier": "jd",
"modified": "20190203084020856",
"tags": "",
"caption": "Advanced"
},
"$:/themes/jd/Mono/Config/PaletteSwitcher": {
"created": "20190202135356197",
"creator": "jd",
"text": "!!! ''Palette switcher''\n\n<$list filter=\"day-palette night-palette\" variable=\"index\" >\n\n<<index>>:\n\n<$edit-text tiddler=\"$:/themes/jd/Mono/Database\" index=<<index>> tag=\"input\"/>\n\n</$list>",
"title": "$:/themes/jd/Mono/Config/PaletteSwitcher",
"modifier": "jd",
"modified": "20190202135417323",
"tags": "",
"caption": "Palette switcher"
},
"$:/themes/jd/Mono/SplashScreen": {
"text": "\\import [[$:/core/ui/PageMacros]] [all[shadows+tiddlers]tag[$:/tags/Macro]!has[draft.of]]\n\\rules only filteredtranscludeinline transcludeinline macrocallinline\n<div class=\"tc-remove-when-wiki-loaded\">\n<style scoped>\n\n.tc-splash-text {\n font-family: -apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\";\n font-size: 16px;\n text-rendering: optimizeLegibility;\n -webkit-font-smoothing: antialiased;\n\tmargin: 20px auto 0;\n\twidth: 200px;\n\ttext-align: center;\n\tcolor: <<colour foreground>>;\n\tfill: <<colour foreground>>;\n}\n\nhtml body.tc-body {\n background: <<colour page-background>>;\n}\n.line-wrapper {\n width: 100%;\n height: 80vh;\n display: flex;\n flex-direction: column;\n justify-content: center;\n align-items: center;\n}\n.line {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: line 2s infinite; \n -moz-animation: line 2s infinite; \n -o-animation: line 2s infinite; \n animation: line 2s infinite; \n}\n@-webkit-keyframes line {\n 0% { width: 10px; }\n 50% { width: 200px; }\n 100% { width: 10px; }\n}\n@keyframes line {\n 0% { width: 10px; }\n 50% { width: 200px; }\n 100% { width: 10px; }\n}\n.linetwo {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: linetwo 2s infinite; \n -moz-animation: linetwo 2s infinite; \n -o-animation: linetwo 2s infinite; \n animation: linetwo 2s infinite; \n margin: 5px 0;\n}\n@-webkit-keyframes linetwo {\n 0% { width: 5px; }\n 70% { width: 180px; }\n 100% { width: 5px; }\n}\n@keyframes linetwo {\n 0% { width: 5px; }\n 70% { width: 180px; }\n 100% { width: 5px; }\n}\n.linethree {\n width: 50px;\n height: 1px;\n background: <<colour muted-foreground>>;\n -webkit-animation: linethree 2s infinite; \n -moz-animation: linethree 2s infinite; \n -o-animation: linethree 2s infinite; \n animation: linethree 2s infinite; \n margin: linethree 0;\n}\n@-webkit-keyframes linethree {\n 0% { width: 0; }\n 80% { width: 160px; }\n 100% { width: 0; }\n}\n@keyframes linethree {\n 0% { width: 0; }\n 80% { width: 160px; }\n 100% { width: 0; }\n}\n</style>\n\n<div class=\"line-wrapper\">\n<div class=\"tc-splash-text\">{{$:/SiteTitle}}</div>\n<div class=\"line\"></div>\n<div class=\"linetwo\"></div>\n<div class=\"linethree\"></div>\n</div>\n\n</div>",
"type": "text/vnd.tiddlywiki",
"title": "$:/themes/jd/Mono/SplashScreen",
"modifier": "jd",
"modified": "20190202152051851",
"creator": "jd",
"created": "20180927082601825"
},
"$:/themes/jd/Mono/Buttons/font-scroller": {
"created": "20180930054903341",
"creator": "jd",
"text": "<$wikify name=\"fontUp\" text=\"\"\"\n<$list filter=\"[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}previous[$:/themes/jd/Mono/Buttons/font-scroller]]\" emptyMessage=\"40px\"/>\n\"\"\">\n<$wikify name=\"fontDown\" text=\"\"\"\n<$list filter=\"[{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}next[$:/themes/jd/Mono/Buttons/font-scroller]]\" emptyMessage=\"10px\"/>\n\"\"\">\n<$button class=\"tc-btn-invisible\" tooltip=\"Decrease font size\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" text=<<fontDown>>/>\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" text=\"1.25\"/>\n\n\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/chevron-down}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"font down\"/></span>\n</$list>\n\n</$button>\n<$button class=\"tc-btn-invisible\" tooltip=\"Increase font size\">\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" text=<<fontUp>>/>\n<$action-setfield $tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" text=\"1.25\"/>\n\n<$list filter=\"[<tv-config-toolbar-icons>prefix[yes]]\">\n{{$:/core/images/chevron-up}}\n</$list>\n<$list filter=\"[<tv-config-toolbar-text>prefix[yes]]\">\n<span class=\"tc-btn-text\"><$text text=\"font up\"/></span>\n</$list>\n\n</$button>\n</$wikify>\n</$wikify>",
"title": "$:/themes/jd/Mono/Buttons/font-scroller",
"tags": "$:/tags/PageControls",
"modifier": "jd",
"modified": "20190203035107351",
"list": "40px 34px 30px 24px 20px 18px 17px 15px 14px 13px 12px 10px",
"caption": "{{$:/core/images/chevron-up}} font scroller",
"description": "Font scroller"
},
"$:/themes/jd/Mono/Config/VanillaTweaks": {
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<style> .vanillatweaks table { width: 100%; } .vanillatweaks td:first-child { width: 60%; } .vanillatweaks td input { width: 100%; }</style>\n\n<div class=\"vanillatweaks\">\n\nInherited tweaks from ''Vanilla'' theme.\n\n!!! ''<<lingo Options>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n\n!!! ''<<lingo Settings>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/><<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> |\n\n!!! ''<<lingo Metrics>>''\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n\n</div>",
"title": "$:/themes/jd/Mono/Config/VanillaTweaks",
"modifier": "jd",
"modified": "20190203084506755",
"creator": "jd",
"created": "20190203083516565",
"caption": "Vanilla tweaks"
}
}
}
{
"grid-sticky-header-background": "<<colour page-background>>",
"grid-item-background": "<<colour background>>",
"grid-item-border": "<<colour tiddler-border>>",
"header-background": "<<colour page-background>>",
"header-position-mobile-no-searchbar": "calc(2px + 2.25em)",
"header-position-mobile-yes-searchbar": "calc(4px + 3em + 6px + {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}} + .25em)",
"header-position-desktop": "calc(56px + .25em)",
"day-palette": "$:/palettes/Muted",
"night-palette": "$:/jd/palette/Neonize",
"button-fontscroller": "show"
}
{
"tiddlers": {
"$:/themes/tiddlywiki/seamless/base": {
"title": "$:/themes/tiddlywiki/seamless/base",
"tags": "[[$:/tags/Stylesheet]]",
"list-after": "$:/themes/tiddlywiki/vanilla/base",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n/*\nRules copied from Snow White\n*/\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected svg {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal-displayed {\n\t<<filter \"blur(4px)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n/*\nSeamless modifications\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t/* Drop the tiddler frame padding */\n\tbody.tc-body .tc-tiddler-frame {\n\t\tpadding: 0;\n\t}\n\n\t/* Move the sidebar up so that the title lines up */\n\tbody.tc-body .tc-sidebar-scrollable {\n\t\tpadding: 43px 0 28px 42px;\n\t}\n\n\t/* Stop the tiddler info panel from bleeding into the tiddler frame padding */\n\tbody.tc-body .tc-tiddler-info {\n\t\tmargin: 0;\n\t}\n\n\t/* Stop message boxes from bleeding into the tiddler frame padding */\n\tbody.tc-body .tc-message-box {\n\t\tmargin: 21px 0 21px 0;\n\t}\n\n}\n\n/* Use the tiddler background colour for the page background */\nhtml body.tc-body {\n\tbackground-color: <<colour background>>;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour background>>;\n}\n\n/* Adjust the colour of the page controls */\nbody.tc-body .tc-page-controls svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n/* Adjust the colour of the sidebar selected tabs */\nbody.tc-body .tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour background>>;\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/snowwhite/base": {
"title": "$:/themes/tiddlywiki/snowwhite/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n.tc-sidebar-header {\n\ttext-shadow: 0 1px 0 <<colour sidebar-foreground-shadow>>;\n}\n\n.tc-tiddler-info {\n\t<<box-shadow \"inset 1px 2px 3px rgba(0,0,0,0.1)\">>\n}\n\n@media screen {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow \"1px 1px 5px rgba(0, 0, 0, 0.3)\">>\n\t}\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\t<<box-shadow none>>\n\t}\n}\n\n.tc-page-controls button svg, .tc-tiddler-controls button svg, .tc-topbar button svg {\n\t<<transition \"fill 150ms ease-in-out\">>\n}\n\n.tc-tiddler-controls button.tc-selected,\n.tc-page-controls button.tc-selected {\n\t<<filter \"drop-shadow(0px -1px 2px rgba(0,0,0,0.25))\">>\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-edit-tags {\n\t<<box-shadow \"inset 0 1px 8px rgba(0, 0, 0, 0.15)\">>\n}\n\n.tc-tiddler-frame .tc-edit-tags input.tc-edit-texteditor {\n\t<<box-shadow \"none\">>\n\tborder: none;\n\toutline: none;\n}\n\ntextarea.tc-edit-texteditor {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\ncanvas.tc-edit-bitmapeditor {\n\t<<box-shadow \"2px 2px 5px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-drop-down {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-block-dropdown {\n\tborder-radius: 4px;\n\t<<box-shadow \"2px 2px 10px rgba(0, 0, 0, 0.5)\">>\n}\n\n.tc-modal {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n}\n\n.tc-modal-footer {\n\tborder-radius: 0 0 6px 6px;\n\t<<box-shadow \"inset 0 1px 0 #fff\">>;\n}\n\n\n.tc-alert {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.6)\">>\n}\n\n.tc-notification {\n\tborder-radius: 6px;\n\t<<box-shadow \"0 3px 7px rgba(0,0,0,0.3)\">>\n\ttext-shadow: 0 1px 0 rgba(255,255,255, 0.8);\n}\n\n.tc-sidebar-lists .tc-tab-set .tc-tab-divider {\n\tborder-top: none;\n\theight: 1px;\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.15) 0%, rgba(0,0,0,0.0) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.01) 0%, rgba(0,0,0,0.1) 100%\">>\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\t<<background-linear-gradient \"left, rgba(0,0,0,0.05) 0%, rgba(255,255,255,0.05) 100%\">>\n}\n\n.tc-message-box img {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n\n.tc-plugin-info {\n\t<<box-shadow \"1px 1px 3px rgba(0,0,0,0.5)\">>\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/starlight/arvo.woff": {
"title": "$:/themes/tiddlywiki/starlight/arvo.woff",
"text": "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",
"type": "application/font-woff"
},
"$:/themes/tiddlywiki/starlight/ltbg.jpg": {
"title": "$:/themes/tiddlywiki/starlight/ltbg.jpg",
"text": "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PSIxLjAiIGVuY29kaW5nPSJVVEYtOCI/Pgo8IURPQ1RZUEUgcGxpc3QgUFVCTElDICItLy9BcHBsZS8vRFREIFBMSVNUIDEuMC8vRU4iICJodHRwOi8vd3d3LmFwcGxlLmNvbS9EVERzL1Byb3BlcnR5TGlzdC0xLjAuZHRkIj4KPHBsaXN0IHZlcnNpb249IjEuMCI+CjxkaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUhvcml6b250YWxSZXM8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNSG9yaXpvbnRhbFJlczwva2V5PgoJCQkJPHJlYWw+NzI8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1PcmllbnRhdGlvbjwva2V5PgoJCQkJPGludGVnZXI+MTwvaW50ZWdlcj4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVNjYWxpbmc8L2tleT4KCTxkaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCTxhcnJheT4KCQkJPGRpY3Q+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNU2NhbGluZzwva2V5PgoJCQkJPHJlYWw+MTwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+Cgk8ZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQk8YXJyYXk+CgkJCTxkaWN0PgoJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsUmVzPC9rZXk+CgkJCQk8cmVhbD43MjwvcmVhbD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCTwvZGljdD4KCQk8L2FycmF5PgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTVZlcnRpY2FsU2NhbGluZzwva2V5PgoJPGRpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJPGFycmF5PgoJCQk8ZGljdD4KCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhZ2VGb3JtYXQuUE1WZXJ0aWNhbFNjYWxpbmc8L2tleT4KCQkJCTxyZWFsPjE8L3JlYWw+CgkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQk8L2RpY3Q+CgkJPC9hcnJheT4KCTwvZGljdD4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnN1YlRpY2tldC5wYXBlcl9pbmZvX3RpY2tldDwva2V5PgoJPGRpY3Q+CgkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5QTVBQRFBhcGVyQ29kZU5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPkxldHRlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PlBNVGlvZ2FQYXBlck5hbWU8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5QTVRpb2dhUGFwZXJOYW1lPC9rZXk+CgkJCQkJPHN0cmluZz5uYS1sZXR0ZXI8L3N0cmluZz4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD43MzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0LlBNQWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQk8ZGljdD4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LmNyZWF0b3I8L2tleT4KCQkJPHN0cmluZz5jb20uYXBwbGUuam9idGlja2V0PC9zdHJpbmc+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5pdGVtQXJyYXk8L2tleT4KCQkJPGFycmF5PgoJCQkJPGRpY3Q+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFnZUZvcm1hdC5QTUFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJCQkJPGFycmF5PgoJCQkJCQk8cmVhbD4tMTg8L3JlYWw+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+Nzc0PC9yZWFsPgoJCQkJCQk8cmVhbD41OTQ8L3JlYWw+CgkJCQkJPC9hcnJheT4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuc3RhdGVGbGFnPC9rZXk+CgkJCQkJPGludGVnZXI+MDwvaW50ZWdlcj4KCQkJCTwvZGljdD4KCQkJPC9hcnJheT4KCQk8L2RpY3Q+CgkJPGtleT5jb20uYXBwbGUucHJpbnQuUGFwZXJJbmZvLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVBhcGVyTmFtZTwva2V5PgoJCQkJCTxzdHJpbmc+bmEtbGV0dGVyPC9zdHJpbmc+CgkJCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LnN0YXRlRmxhZzwva2V5PgoJCQkJCTxpbnRlZ2VyPjA8L2ludGVnZXI+CgkJCQk8L2RpY3Q+CgkJCTwvYXJyYXk+CgkJPC9kaWN0PgoJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYWdlUmVjdDwva2V5PgoJCTxkaWN0PgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuY3JlYXRvcjwva2V5PgoJCQk8c3RyaW5nPmNvbS5hcHBsZS5qb2J0aWNrZXQ8L3N0cmluZz4KCQkJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0Lml0ZW1BcnJheTwva2V5PgoJCQk8YXJyYXk+CgkJCQk8ZGljdD4KCQkJCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFnZVJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPjAuMDwvcmVhbD4KCQkJCQkJPHJlYWw+MC4wPC9yZWFsPgoJCQkJCQk8cmVhbD43MzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU3NjwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8uUE1VbmFkanVzdGVkUGFwZXJSZWN0PC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5QTVVuYWRqdXN0ZWRQYXBlclJlY3Q8L2tleT4KCQkJCQk8YXJyYXk+CgkJCQkJCTxyZWFsPi0xODwvcmVhbD4KCQkJCQkJPHJlYWw+LTE4PC9yZWFsPgoJCQkJCQk8cmVhbD43NzQ8L3JlYWw+CgkJCQkJCTxyZWFsPjU5NDwvcmVhbD4KCQkJCQk8L2FycmF5PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC5QYXBlckluZm8ucHBkLlBNUGFwZXJOYW1lPC9rZXk+CgkJPGRpY3Q+CgkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5jcmVhdG9yPC9rZXk+CgkJCTxzdHJpbmc+Y29tLmFwcGxlLmpvYnRpY2tldDwvc3RyaW5nPgoJCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuaXRlbUFycmF5PC9rZXk+CgkJCTxhcnJheT4KCQkJCTxkaWN0PgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mby5wcGQuUE1QYXBlck5hbWU8L2tleT4KCQkJCQk8c3RyaW5nPlVTIExldHRlcjwvc3RyaW5nPgoJCQkJCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC5zdGF0ZUZsYWc8L2tleT4KCQkJCQk8aW50ZWdlcj4wPC9pbnRlZ2VyPgoJCQkJPC9kaWN0PgoJCQk8L2FycmF5PgoJCTwvZGljdD4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQuQVBJVmVyc2lvbjwva2V5PgoJCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCQk8a2V5PmNvbS5hcHBsZS5wcmludC50aWNrZXQudHlwZTwva2V5PgoJCTxzdHJpbmc+Y29tLmFwcGxlLnByaW50LlBhcGVySW5mb1RpY2tldDwvc3RyaW5nPgoJPC9kaWN0PgoJPGtleT5jb20uYXBwbGUucHJpbnQudGlja2V0LkFQSVZlcnNpb248L2tleT4KCTxzdHJpbmc+MDAuMjA8L3N0cmluZz4KCTxrZXk+Y29tLmFwcGxlLnByaW50LnRpY2tldC50eXBlPC9rZXk+Cgk8c3RyaW5nPmNvbS5hcHBsZS5wcmludC5QYWdlRm9ybWF0VGlja2V0PC9zdHJpbmc+CjwvZGljdD4KPC9wbGlzdD4KOEJJTQPtAAAAAAAQAEgCTgABAAEASAJOAAEAAThCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAHjhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAABOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANHAAAABgAAAAAAAAAAAAABVAAAAVQAAAAJAFAAaQBjAHQAdQByAGUAIAAyAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAFUAAABVAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAABVAAAAABSZ2h0bG9uZwAAAVQAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAVQAAAAAUmdodGxvbmcAAAFUAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAA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Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8APD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4gPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iQWRvYmUgWE1QIENvcmUgNC4xLWMwMzYgNDYuMjc2NzIwLCBNb24gRmViIDE5IDIwMDcgMjI6MTM6NDMgICAgICAgICI+IDxyZGY6UkRGIHhtbG5zOnJkZj0iaHR0cDovL3d3dy53My5vcmcvMTk5OS8wMi8yMi1yZGYtc3ludGF4LW5zIyI+IDxyZGY6RGVzY3JpcHRpb24gcmRmOmFib3V0PSIiIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIiB4bWxuczpwaG90b3Nob3A9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGhvdG9zaG9wLzEuMC8iIHhtbG5zOnhhcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIiB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iIHhhcDpDcmVhdGVEYXRlPSIyMDEwLTA4LTMwVDIzOjQ5OjE0LTA1OjAwIiB4YXA6TW9kaWZ5RGF0ZT0iMjAxMC0wOC0zMFQyMzo0OToxNC0wNTowMCIgeGFwOk1ldGFkYXRhRGF0ZT0iMjAxMC0wOC0zMFQyMzo0OToxNC0wNTowMCIgeGFwOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1MzIE1hY2ludG9zaCIgZGM6Zm9ybWF0PSJpbWFnZS9qcGVnIiBwaG90b3Nob3A6Q29sb3JNb2RlPSIzIiBwaG90b3Nob3A6SUNDUHJvZmlsZT0iaU1hYyIgcGhvdG9zaG9wOkhpc3Rvcnk9IiIgeGFwTU06SW5zdGFuY2VJRD0idXVpZDpFQjAwQjU5NDA4QjVERjExODdBNTlCQzExMkI0QjA2RSIgeGFwTU06RG9jdW1lbnRJRD0idXVpZDpFQTAwQjU5NDA4QjVERjExODdBNTlCQzExMkI0QjA2RSIgdGlmZjpPcmllbnRhdGlvbj0iMSIgdGlmZjpYUmVzb2x1dGlvbj0iNzIwMDkwLzEwMDAwIiB0aWZmOllSZXNvbHV0aW9uPSI3MjAwOTAvMTAwMDAiIHRpZmY6UmVzb2x1dGlvblVuaXQ9IjIiIHRpZmY6TmF0aXZlRGlnZXN0PSIyNTYsMjU3LDI1OCwyNTksMjYyLDI3NCwyNzcsMjg0LDUzMCw1MzEsMjgyLDI4MywyOTYsMzAxLDMxOCwzMTksNTI5LDUzMiwzMDYsMjcwLDI3MSwyNzIsMzA1LDMxNSwzMzQzMjs3RUY4RDFBOTcwMjlCOUNFOTAwNkUzRDcxRjgwNDdFNSIgZXhpZjpQaXhlbFhEaW1lbnNpb249IjM0MCIgZXhpZjpQaXhlbFlEaW1lbnNpb249IjM0MCIgZXhpZjpDb2xvclNwYWNlPSItMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDtGRTM2RkQ0MzU0NEI0ODUyODY3OEVERkZGOTk0MkMwRiI+IDx4YXBNTTpEZXJpdmVkRnJvbSByZGY6cGFyc2VUeXBlPSJSZXNvdXJjZSIvPiA8L3JkZjpEZXNjcmlwdGlvbj4gPC9yZGY6UkRGPiA8L3g6eG1wbWV0YT4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8P3hwYWNrZXQgZW5kPSJ3Ij8+/+IPJElDQ19QUk9GSUxFAAEBAAAPFGFwcGwCAAAAbW50clJHQiBYWVogB9oAAQAEAA8AMwADYWNzcEFQUEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPbWAAEAAAAA0y1hcHBsWM2pk1LRLUWykThyCK1QdgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOclhZWgAAASwAAAAUZ1hZWgAAAUAAAAAUYlhZWgAAAVQAAAAUd3RwdAAAAWgAAAAUY2hhZAAAAXwAAAAsclRSQwAAAagAAAAOZ1RSQwAAAbgAAAAOYlRSQwAAAcgAAAAOdmNndAAAAdgAAAYSbmRpbgAAB+wAAAY+ZGVzYwAADiwAAABfZHNjbQAADowAAAA8bW1vZAAADsgAAAAoY3BydAAADvAAAAAkWFlaIAAAAAAAAHeaAABAmQAAAxlYWVogAAAAAAAAWO0AAKuMAAAXrVhZWiAAAAAAAAAmTgAAE/UAALheWFlaIAAAAAAAAPNSAAEAAAABFs9zZjMyAAAAAAABDEIAAAXe///zJgAAB5IAAP2R///7ov///aMAAAPcAADAbGN1cnYAAAAAAAAAAQHNAABjdXJ2AAAAAAAAAAEBzQAAY3VydgAAAAAAAAABAc0AAHZjZ3QAAAAAAAAAAAADAQAAAgAAAUUCyAQ5BZsHIQi8ClsL+w2ZDzsQ6hKXFEYWAhe5GVYa4xxxHfkfdSDyImcj0iU1JpAn5ikyKnkrvi0BLkEvgTC9MfkzNTRrNaE21DgHOTg6ZjuTPLw95D8MQDNBV0J5Q5pEuEXWRvJIDEklSjpL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",
"type": "image/jpeg"
},
"$:/themes/tiddlywiki/starlight/styles.tid": {
"title": "$:/themes/tiddlywiki/starlight/styles.tid",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n/*\nPlaceholder for a more thorough refinement of Snow White\n*/\n\n@font-face {\n font-family: \"Arvo\";\n font-style: normal;\n font-weight: 400;\n src: local(\"Arvo\"), url(<<datauri \"$:/themes/tiddlywiki/starlight/arvo.woff\">>) format(\"woff\");\n}\n\nhtml body, .tc-sidebar-scrollable-backdrop {\n\tfont-family: \"Arvo\", \"Times\";\n background: url(<<datauri \"$:/themes/tiddlywiki/starlight/ltbg.jpg\">>);\n}\n\n.tc-page-controls svg {\n <<filter \"drop-shadow(1px 1px 2px rgba(255,255,255,0.9))\">>\n}\n"
},
"$:/themes/tiddlywiki/starlight/themetweaks": {
"title": "$:/themes/tiddlywiki/starlight/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "Star Tweaks",
"text": "Demo of a control panel tab dynamically loaded with a theme.\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/tight/base": {
"title": "$:/themes/tiddlywiki/tight/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\thtml body.tc-body {\n\t\tfont-size: 13px;\n\t\tline-height: 16px;\n\t}\n\n\thtml body.tc-body h1,\n\thtml body.tc-body h2,\n\thtml body.tc-body h3,\n\thtml body.tc-body h4,\n\thtml body.tc-body p {\n\t\tmargin-top: 0.3em;\n\t\tmargin-bottom: 0.3em;\n\t}\n\n\thtml body.tc-body code {\n\t\tfont-size: 0.8em;\n\t}\n\n\thtml body.tc-body section.tc-story-river {\n\t\tpadding: 0px;\n\t}\n\n\thtml body.tc-body div.tc-tiddler-frame {\n\t\tpadding: 12px;\n\t}\n\n\thtml body.tc-body div.tc-sidebar-scrollable {\n\t\tpadding: 12px 0 12px 12px;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-subtitle {\n\t\tfont-size: 0.7em;\n\t\tfont-weight: 700;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-subtitle .tc-tiddlylink {\n\t\tmargin-right: .3em;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tags-wrapper {\n\t\tmargin: 0;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame button.tc-tag-label,\n\thtml body.tc-body .tc-tiddler-frame span.tc-tag-label {\n\t\tfont-size: 0.8em;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tiddler-body h1 {\n\t\tfont-size: 1.5em;\n\t\tfont-weight: 500;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tiddler-body h2 {\n\t\tfont-size: 1.3em;\n\t\tfont-weight: 500;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tiddler-body h3 {\n\t\tfont-size: 1.2em;\n\t\tfont-weight: 500;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tiddler-body h4 {\n\t\tfont-size: 1.1em;\n\t\tfont-weight: 500;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-improvement-banner {\n\t\tmargin-right: -15px;\n\t\tmargin-left: -10px;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-tiddler-info {\n\t margin: 0 -13px 0 -13px;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-fold-banner {\n\t width: 13px;\n\t margin-left: -15px;\n\t}\n\n\thtml body.tc-body .tc-tiddler-frame .tc-unfold-banner {\n\t margin-left: -13px;\n\t margin-top: -4px;\n\t}\n\n}\n"
}
}
}
{
"tiddlers": {
"$:/themes/tiddlywiki/vanilla/themetweaks": {
"title": "$:/themes/tiddlywiki/vanilla/themetweaks",
"tags": "$:/tags/ControlPanel/Appearance",
"caption": "{{$:/language/ThemeTweaks/ThemeTweaks}}",
"text": "\\define lingo-base() $:/language/ThemeTweaks/\n\n\\define replacement-text()\n[img[$(imageTitle)$]]\n\\end\n\n\\define backgroundimage-dropdown()\n<div class=\"tc-drop-down-wrapper\">\n<$button popup=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> class=\"tc-btn-invisible tc-btn-dropdown\">{{$:/core/images/down-arrow}}</$button>\n<$reveal state=<<qualify \"$:/state/popup/themetweaks/backgroundimage\">> type=\"popup\" position=\"belowleft\" text=\"\" default=\"\">\n<div class=\"tc-drop-down\">\n<$macrocall $name=\"image-picker\" actions=\"\"\"\n\n<$action-setfield\n\t$tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"\n\t$value=<<imageTitle>>\n/>\n\n\"\"\"/>\n</div>\n</$reveal>\n</div>\n\\end\n\n\\define backgroundimageattachment-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\" default=\"scroll\">\n<option value=\"scroll\"><<lingo Settings/BackgroundImageAttachment/Scroll>></option>\n<option value=\"fixed\"><<lingo Settings/BackgroundImageAttachment/Fixed>></option>\n</$select>\n\\end\n\n\\define backgroundimagesize-dropdown()\n<$select tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\" default=\"scroll\">\n<option value=\"auto\"><<lingo Settings/BackgroundImageSize/Auto>></option>\n<option value=\"cover\"><<lingo Settings/BackgroundImageSize/Cover>></option>\n<option value=\"contain\"><<lingo Settings/BackgroundImageSize/Contain>></option>\n</$select>\n\\end\n\n<<lingo ThemeTweaks/Hint>>\n\n! <<lingo Options>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><<lingo Options/SidebarLayout>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\"><option value=\"fixed-fluid\"><<lingo Options/SidebarLayout/Fixed-Fluid>></option><option value=\"fluid-fixed\"><<lingo Options/SidebarLayout/Fluid-Fixed>></option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><<lingo Options/StickyTitles>></$link><br>//<<lingo Options/StickyTitles/Hint>>// |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\"><option value=\"no\">{{$:/language/No}}</option><option value=\"yes\">{{$:/language/Yes}}</option></$select> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><<lingo Options/CodeWrapping>></$link> |<$select tiddler=\"$:/themes/tiddlywiki/vanilla/options/codewrapping\"><option value=\"pre\">{{$:/language/No}}</option><option value=\"pre-wrap\">{{$:/language/Yes}}</option></$select> |\n\n! <<lingo Settings>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\"><<lingo Settings/FontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/fontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\"><<lingo Settings/CodeFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/codefontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\"><<lingo Settings/EditorFontFamily>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/editorfontfamily\" default=\"\" tag=\"input\"/> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\"><<lingo Settings/BackgroundImage>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimage\" default=\"\" tag=\"input\"/> |<<backgroundimage-dropdown>> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment\"><<lingo Settings/BackgroundImageAttachment>></$link> |<<backgroundimageattachment-dropdown>> | |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize\"><<lingo Settings/BackgroundImageSize>></$link> |<<backgroundimagesize-dropdown>> | |\n\n! <<lingo Metrics>>\n\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\"><<lingo Metrics/FontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/fontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\"><<lingo Metrics/LineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/lineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\"><<lingo Metrics/BodyFontSize>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\"><<lingo Metrics/BodyLineHeight>></$link> |<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\"><<lingo Metrics/StoryLeft>></$link><br>//<<lingo Metrics/StoryLeft/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyleft\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\"><<lingo Metrics/StoryTop>></$link><br>//<<lingo Metrics/StoryTop/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storytop\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\"><<lingo Metrics/StoryRight>></$link><br>//<<lingo Metrics/StoryRight/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storyright\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\"><<lingo Metrics/StoryWidth>></$link><br>//<<lingo Metrics/StoryWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/storywidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\"><<lingo Metrics/TiddlerWidth>></$link><br>//<<lingo Metrics/TiddlerWidth/Hint>>//<br> |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\"><<lingo Metrics/SidebarBreakpoint>></$link><br>//<<lingo Metrics/SidebarBreakpoint/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint\" default=\"\" tag=\"input\"/> |\n|<$link to=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\"><<lingo Metrics/SidebarWidth>></$link><br>//<<lingo Metrics/SidebarWidth/Hint>>// |^<$edit-text tiddler=\"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth\" default=\"\" tag=\"input\"/> |\n"
},
"$:/themes/tiddlywiki/vanilla/base": {
"title": "$:/themes/tiddlywiki/vanilla/base",
"tags": "[[$:/tags/Stylesheet]]",
"text": "\\define custom-background-datauri()\n<$set name=\"background\" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>\n<$list filter=\"[<background>is[image]]\">\n`background: url(`\n<$list filter=\"[<background>!has[_canonical_uri]]\">\n`\"`<$macrocall $name=\"datauri\" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`\"`\n</$list>\n<$list filter=\"[<background>has[_canonical_uri]]\">\n`\"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field=\"_canonical_uri\"/>`\"`\n</$list>\n`) center center;`\n`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;\n-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\n-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;\nbackground-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`\n</$list>\n</$set>\n\\end\n\n\\define if-fluid-fixed(text,hiddenSidebarText)\n<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/sidebarlayout\" type=\"match\" text=\"fluid-fixed\">\n$text$\n<$reveal state=\"$:/state/sidebar\" type=\"nomatch\" text=\"yes\" default=\"yes\">\n$hiddenSidebarText$\n</$reveal>\n</$reveal>\n\\end\n\n\\define if-editor-height-fixed(then,else)\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"fixed\">\n$then$\n</$reveal>\n<$reveal state=\"$:/config/TextEditor/EditorHeight/Mode\" type=\"match\" text=\"auto\">\n$else$\n</$reveal>\n\\end\n\n\\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock\n\n/*\n** Start with the normalize CSS reset, and then belay some of its effects\n*/\n\n{{$:/themes/tiddlywiki/vanilla/reset}}\n\n*, input[type=\"search\"] {\n\tbox-sizing: border-box;\n\t-moz-box-sizing: border-box;\n\t-webkit-box-sizing: border-box;\n}\n\nhtml button {\n\tline-height: 1.2;\n\tcolor: <<colour button-foreground>>;\n\tbackground: <<colour button-background>>;\n\tborder-color: <<colour button-border>>;\n}\n\n/*\n** Basic element styles\n*/\n\nhtml {\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};\n\ttext-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */\n\t-webkit-font-smoothing: antialiased;\n\t-moz-osx-font-smoothing: grayscale;\n}\n\nhtml:-webkit-full-screen {\n\tbackground-color: <<colour page-background>>;\n}\n\nbody.tc-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};\n\tword-wrap: break-word;\n\t<<custom-background-datauri>>\n\tcolor: <<colour foreground>>;\n\tbackground-color: <<colour page-background>>;\n\tfill: <<colour foreground>>;\n}\n\n<<if-background-attachment \"\"\"\n\nbody.tc-body {\n background-color: transparent;\n}\n\n\"\"\">>\n\nh1, h2, h3, h4, h5, h6 {\n\tline-height: 1.2;\n\tfont-weight: 300;\n}\n\npre {\n\tdisplay: block;\n\tpadding: 14px;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\tword-break: normal;\n\tword-wrap: break-word;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tbackground-color: <<colour pre-background>>;\n\tborder: 1px solid <<colour pre-border>>;\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\ncode {\n\tcolor: <<colour code-foreground>>;\n\tbackground-color: <<colour code-background>>;\n\tborder: 1px solid <<colour code-border>>;\n\twhite-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};\n\tpadding: 0 3px 2px;\n\tborder-radius: 3px;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};\n}\n\nblockquote {\n\tborder-left: 5px solid <<colour blockquote-bar>>;\n\tmargin-left: 25px;\n\tpadding-left: 10px;\n\tquotes: \"\\201C\"\"\\201D\"\"\\2018\"\"\\2019\";\n}\n\nblockquote > div {\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n}\n\nblockquote.tc-big-quote {\n\tfont-family: Georgia, serif;\n\tposition: relative;\n\tbackground: <<colour pre-background>>;\n\tborder-left: none;\n\tmargin-left: 50px;\n\tmargin-right: 50px;\n\tpadding: 10px;\n border-radius: 8px;\n}\n\nblockquote.tc-big-quote cite:before {\n\tcontent: \"\\2014 \\2009\";\n}\n\nblockquote.tc-big-quote:before {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: open-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n left: -50px;\n top: 42px;\n}\n\nblockquote.tc-big-quote:after {\n\tfont-family: Georgia, serif;\n\tcolor: <<colour blockquote-bar>>;\n\tcontent: close-quote;\n\tfont-size: 8em;\n\tline-height: 0.1em;\n\tmargin-right: 0.25em;\n\tvertical-align: -0.4em;\n\tposition: absolute;\n right: -80px;\n bottom: -20px;\n}\n\ndl dt {\n\tfont-weight: bold;\n\tmargin-top: 6px;\n}\n\nbutton, textarea, input, select {\n\toutline-color: <<colour primary>>;\n}\n\ntextarea,\ninput[type=text],\ninput[type=search],\ninput[type=\"\"],\ninput:not([type]) {\n\tcolor: <<colour foreground>>;\n\tbackground: <<colour background>>;\n}\n\ninput[type=\"checkbox\"] {\n vertical-align: middle;\n}\n\n.tc-muted {\n\tcolor: <<colour muted-foreground>>;\n}\n\nsvg.tc-image-button {\n\tpadding: 0px 1px 1px 0px;\n}\n\n.tc-icon-wrapper > svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\nkbd {\n\tdisplay: inline-block;\n\tpadding: 3px 5px;\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tcolor: <<colour foreground>>;\n\tvertical-align: middle;\n\tbackground-color: <<colour background>>;\n\tborder: solid 1px <<colour muted-foreground>>;\n\tborder-bottom-color: <<colour muted-foreground>>;\n\tborder-radius: 3px;\n\tbox-shadow: inset 0 -1px 0 <<colour muted-foreground>>;\n}\n\n/*\nMarkdown likes putting code elements inside pre elements\n*/\npre > code {\n\tpadding: 0;\n\tborder: none;\n\tbackground-color: inherit;\n\tcolor: inherit;\n}\n\ntable {\n\tborder: 1px solid <<colour table-border>>;\n\twidth: auto;\n\tmax-width: 100%;\n\tcaption-side: bottom;\n\tmargin-top: 1em;\n\tmargin-bottom: 1em;\n\t/* next 2 elements needed, since normalize 8.0.1 */\n\tborder-collapse: collapse;\n\tborder-spacing: 0;\n}\n\ntable th, table td {\n\tpadding: 0 7px 0 7px;\n\tborder-top: 1px solid <<colour table-border>>;\n\tborder-left: 1px solid <<colour table-border>>;\n}\n\ntable thead tr td, table th {\n\tbackground-color: <<colour table-header-background>>;\n\tfont-weight: bold;\n}\n\ntable tfoot tr td {\n\tbackground-color: <<colour table-footer-background>>;\n}\n\n.tc-csv-table {\n\twhite-space: nowrap;\n}\n\n.tc-tiddler-frame img,\n.tc-tiddler-frame svg,\n.tc-tiddler-frame canvas,\n.tc-tiddler-frame embed,\n.tc-tiddler-frame iframe {\n\tmax-width: 100%;\n}\n\n.tc-tiddler-body > embed,\n.tc-tiddler-body > iframe {\n\twidth: 100%;\n\theight: 600px;\n}\n\n/*\n** Links\n*/\n\nbutton.tc-tiddlylink,\na.tc-tiddlylink {\n\ttext-decoration: none;\n\tfont-weight: 500;\n\tcolor: <<colour tiddler-link-foreground>>;\n\t-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */\n}\n\n.tc-sidebar-lists a.tc-tiddlylink {\n\tcolor: <<colour sidebar-tiddler-link-foreground>>;\n}\n\n.tc-sidebar-lists a.tc-tiddlylink:hover {\n\tcolor: <<colour sidebar-tiddler-link-foreground-hover>>;\n}\n\nbutton.tc-tiddlylink:hover,\na.tc-tiddlylink:hover {\n\ttext-decoration: underline;\n}\n\na.tc-tiddlylink-resolves {\n}\n\na.tc-tiddlylink-shadow {\n\tfont-weight: bold;\n}\n\na.tc-tiddlylink-shadow.tc-tiddlylink-resolves {\n\tfont-weight: normal;\n}\n\na.tc-tiddlylink-missing {\n\tfont-style: italic;\n}\n\na.tc-tiddlylink-external {\n\ttext-decoration: underline;\n\tcolor: <<colour external-link-foreground>>;\n\tbackground-color: <<colour external-link-background>>;\n}\n\na.tc-tiddlylink-external:visited {\n\tcolor: <<colour external-link-foreground-visited>>;\n\tbackground-color: <<colour external-link-background-visited>>;\n}\n\na.tc-tiddlylink-external:hover {\n\tcolor: <<colour external-link-foreground-hover>>;\n\tbackground-color: <<colour external-link-background-hover>>;\n}\n\n/*\n** Drag and drop styles\n*/\n\n.tc-tiddler-dragger {\n\tposition: relative;\n\tz-index: -10000;\n}\n\n.tc-tiddler-dragger-inner {\n\tposition: absolute;\n\ttop: -1000px;\n\tleft: -1000px;\n\tdisplay: inline-block;\n\tpadding: 8px 20px;\n\tfont-size: 16.9px;\n\tfont-weight: bold;\n\tline-height: 20px;\n\tcolor: <<colour dragger-foreground>>;\n\ttext-shadow: 0 1px 0 rgba(0, 0, 0, 1);\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour dragger-background>>;\n\tborder-radius: 20px;\n}\n\n.tc-tiddler-dragger-cover {\n\tposition: absolute;\n\tbackground-color: <<colour page-background>>;\n}\n\n.tc-dropzone {\n\tposition: relative;\n}\n\n.tc-dropzone.tc-dragover:before {\n\tz-index: 10000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour dropzone-background>>;\n\ttext-align: center;\n\tcontent: \"<<lingo DropMessage>>\";\n}\n\n.tc-droppable > .tc-droppable-placeholder {\n\tdisplay: none;\n}\n\n.tc-droppable.tc-dragover > .tc-droppable-placeholder {\n\tdisplay: block;\n\tborder: 2px dashed <<colour dropzone-background>>;\n}\n\n.tc-draggable {\n\tcursor: move;\n}\n\n.tc-sidebar-tab-open .tc-droppable-placeholder, .tc-tagged-draggable-list .tc-droppable-placeholder,\n.tc-links-draggable-list .tc-droppable-placeholder {\n\tline-height: 2em;\n\theight: 2em;\n}\n\n.tc-sidebar-tab-open-item {\n\tposition: relative;\n}\n\n.tc-sidebar-tab-open .tc-btn-invisible.tc-btn-mini svg {\n\tfont-size: 0.7em;\n\tfill: <<colour muted-foreground>>;\n}\n\n/*\n** Plugin reload warning\n*/\n\n.tc-plugin-reload-warning {\n\tz-index: 1000;\n\tdisplay: block;\n\tposition: fixed;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbackground: <<colour alert-background>>;\n\ttext-align: center;\n}\n\n/*\n** Buttons\n*/\n\nbutton svg, button img, label svg, label img {\n\tvertical-align: middle;\n}\n\n.tc-btn-invisible {\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n \tcursor: pointer;\n\tcolor: <<colour foreground>>;\n}\n\n.tc-btn-boxed {\n\tfont-size: 0.6em;\n\tpadding: 0.2em;\n\tmargin: 1px;\n\tbackground: none;\n\tborder: 1px solid <<colour tiddler-controls-foreground>>;\n\tborder-radius: 0.25em;\n}\n\nhtml body.tc-body .tc-btn-boxed svg {\n\tfont-size: 1.6666em;\n}\n\n.tc-btn-boxed:hover {\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n}\n\nhtml body.tc-body .tc-btn-boxed:hover svg {\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded {\n\tfont-size: 0.5em;\n\tline-height: 2;\n\tpadding: 0em 0.3em 0.2em 0.4em;\n\tmargin: 1px;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour muted-foreground>>;\n\tcolor: <<colour background>>;\n\tborder-radius: 2em;\n}\n\nhtml body.tc-body .tc-btn-rounded svg {\n\tfont-size: 1.6666em;\n\tfill: <<colour background>>;\n}\n\n.tc-btn-rounded:hover {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tcolor: <<colour muted-foreground>>;\n}\n\nhtml body.tc-body .tc-btn-rounded:hover svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-icon svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-btn-text {\n\tpadding: 0;\n\tmargin: 0;\n}\n\n/* used for documentation \"fake\" buttons */\n.tc-btn-standard {\n\tline-height: 1.8;\n\tcolor: #667;\n\tbackground-color: #e0e0e0;\n\tborder: 1px solid #888;\n\tpadding: 2px 1px 2px 1px;\n\tmargin: 1px 4px 1px 4px;\n}\n\n.tc-btn-big-green {\n\tdisplay: inline-block;\n\tpadding: 8px;\n\tmargin: 4px 8px 4px 8px;\n\tbackground: <<colour download-background>>;\n\tcolor: <<colour download-foreground>>;\n\tfill: <<colour download-foreground>>;\n\tborder: none;\n\tborder-radius: 2px;\n\tfont-size: 1.2em;\n\tline-height: 1.4em;\n\ttext-decoration: none;\n}\n\n.tc-btn-big-green svg,\n.tc-btn-big-green img {\n\theight: 2em;\n\twidth: 2em;\n\tvertical-align: middle;\n\tfill: <<colour download-foreground>>;\n}\n\n.tc-primary-btn {\n \tbackground: <<colour primary>>;\n}\n\n.tc-sidebar-lists input {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-sidebar-lists button {\n\tcolor: <<colour sidebar-button-foreground>>;\n\tfill: <<colour sidebar-button-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini {\n\tcolor: <<colour sidebar-muted-foreground>>;\n}\n\n.tc-sidebar-lists button.tc-btn-mini:hover {\n\tcolor: <<colour sidebar-muted-foreground-hover>>;\n}\n\nbutton svg.tc-image-button, button .tc-image-button img {\n\theight: 1em;\n\twidth: 1em;\n}\n\n.tc-unfold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 100%;\n\twidth: calc(100% + 2px);\n\tmargin-left: -43px;\n\ttext-align: center;\n\tborder-top: 2px solid <<colour tiddler-info-background>>;\n\tmargin-top: 4px;\n}\n\n.tc-unfold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n\tborder-top: 2px solid <<colour tiddler-info-border>>;\n}\n\n.tc-unfold-banner svg, .tc-fold-banner svg {\n\theight: 0.75em;\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n.tc-fold-banner {\n\tposition: absolute;\n\tpadding: 0;\n\tmargin: 0;\n\tbackground: none;\n\tborder: none;\n\twidth: 23px;\n\ttext-align: center;\n\tmargin-left: -35px;\n\ttop: 6px;\n\tbottom: 6px;\n}\n\n.tc-fold-banner:hover {\n\tbackground: <<colour tiddler-info-background>>;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-unfold-banner {\n\t\tposition: static;\n\t\twidth: calc(100% + 59px);\n\t}\n\n\t.tc-fold-banner {\n\t\twidth: 16px;\n\t\tmargin-left: -16px;\n\t\tfont-size: 0.75em;\n\t}\n\n}\n\n/*\n** Tags and missing tiddlers\n*/\n\n.tc-tag-list-item {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin-right: 7px;\n}\n\n.tc-tags-wrapper {\n\tmargin: 4px 0 14px 0;\n}\n\n.tc-missing-tiddler-label {\n\tfont-style: italic;\n\tfont-weight: normal;\n\tdisplay: inline-block;\n\tfont-size: 11.844px;\n\tline-height: 14px;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n}\n\nbutton.tc-tag-label, span.tc-tag-label {\n\tdisplay: inline-block;\n\tpadding: 0.16em 0.7em;\n\tfont-size: 0.9em;\n\tfont-weight: 400;\n\tline-height: 1.2em;\n\tcolor: <<colour tag-foreground>>;\n\twhite-space: nowrap;\n\tvertical-align: baseline;\n\tbackground-color: <<colour tag-background>>;\n\tborder-radius: 1em;\n}\n\n.tc-sidebar-scrollable .tc-tag-label {\n\ttext-shadow: none;\n}\n\n.tc-untagged-separator {\n\twidth: 10em;\n\tleft: 0;\n\tmargin-left: 0;\n\tborder: 0;\n\theight: 1px;\n\tbackground: <<colour tab-divider>>;\n}\n\nbutton.tc-untagged-label {\n\tbackground-color: <<colour untagged-background>>;\n}\n\n.tc-tag-label svg, .tc-tag-label img {\n\theight: 1em;\n\twidth: 1em;\n\tmargin-right: 3px; \n\tmargin-bottom: 1px;\n\tvertical-align: text-bottom;\n}\n\n.tc-edit-tags button.tc-remove-tag-button svg {\n\tfont-size: 0.7em;\n\tvertical-align: middle;\n}\n\n.tc-tag-manager-table .tc-tag-label {\n\twhite-space: normal;\n}\n\n.tc-tag-manager-tag {\n\twidth: 100%;\n}\n\nbutton.tc-btn-invisible.tc-remove-tag-button {\n\toutline: none;\n}\n\n/*\n** Page layout\n*/\n\n.tc-topbar {\n\tposition: fixed;\n\tz-index: 1200;\n}\n\n.tc-topbar-left {\n\tleft: 29px;\n\ttop: 5px;\n}\n\n.tc-topbar-right {\n\ttop: 5px;\n\tright: 29px;\n}\n\n.tc-topbar button {\n\tpadding: 8px;\n}\n\n.tc-topbar svg {\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-topbar button:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-sidebar-header {\n\tcolor: <<colour sidebar-foreground>>;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {\n\tfont-weight: 300;\n}\n\n.tc-sidebar-header .tc-sidebar-lists p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-sidebar-header .tc-missing-tiddler-label {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-advanced-search input {\n\twidth: 60%;\n}\n\n.tc-search a svg {\n\twidth: 1.2em;\n\theight: 1.2em;\n\tvertical-align: middle;\n}\n\n.tc-page-controls {\n\tmargin-top: 14px;\n\tfont-size: 1.5em;\n}\n\n.tc-page-controls .tc-drop-down {\n font-size: 1rem;\n}\n\n.tc-page-controls button {\n\tmargin-right: 0.5em;\n}\n\n.tc-page-controls a.tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-page-controls img {\n\twidth: 1em;\n}\n\n.tc-page-controls svg {\n\tfill: <<colour sidebar-controls-foreground>>;\n}\n\n.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {\n\tfill: <<colour sidebar-controls-foreground-hover>>;\n}\n\n.tc-menu-list-item {\n\twhite-space: nowrap;\n}\n\n.tc-menu-list-count {\n\tfont-weight: bold;\n}\n\n.tc-menu-list-subitem {\n\tpadding-left: 7px;\n}\n\n.tc-story-river {\n\tposition: relative;\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-sidebar-header {\n\t\tpadding: 14px;\n\t\tmin-height: 32px;\n\t\tmargin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tpadding: 0;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-message-box {\n\t\tmargin: 21px -21px 21px -21px;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tposition: fixed;\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t\tbottom: 0;\n\t\tright: 0;\n\t\toverflow-y: auto;\n\t\toverflow-x: auto;\n\t\t-webkit-overflow-scrolling: touch;\n\t\tmargin: 0 0 0 -42px;\n\t\tpadding: 71px 0 28px 42px;\n\t}\n\n\thtml[dir=\"rtl\"] .tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tright: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};\n\t}\n\n\t.tc-story-river {\n\t\tposition: relative;\n\t\tleft: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\ttop: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};\n\t\tpadding: 42px 42px 42px 42px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-story-river {\n\t\twidth: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});\n\t}\n\n\">>\n\n}\n\n@media print {\n\n\tbody.tc-body {\n\t\tbackground-color: transparent;\n\t}\n\n\t.tc-sidebar-header, .tc-topbar {\n\t\tdisplay: none;\n\t}\n\n\t.tc-story-river {\n\t\tmargin: 0;\n\t\tpadding: 0;\n\t}\n\n\t.tc-story-river .tc-tiddler-frame {\n\t\tmargin: 0;\n\t\tborder: none;\n\t\tpadding: 0;\n\t}\n}\n\n/*\n** Tiddler styles\n*/\n\n.tc-tiddler-frame {\n\tposition: relative;\n\tmargin-bottom: 28px;\n\tbackground-color: <<colour tiddler-background>>;\n\tborder: 1px solid <<colour tiddler-border>>;\n}\n\n{{$:/themes/tiddlywiki/vanilla/sticky}}\n\n.tc-tiddler-info {\n\tpadding: 14px 42px 14px 42px;\n\tbackground-color: <<colour tiddler-info-background>>;\n\tborder-top: 1px solid <<colour tiddler-info-border>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-border>>;\n}\n\n.tc-tiddler-info p {\n\tmargin-top: 3px;\n\tmargin-bottom: 3px;\n}\n\n.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour tiddler-info-tab-background>>;\n\tborder-bottom: 1px solid <<colour tiddler-info-tab-background>>;\n}\n\n.tc-view-field-table {\n\twidth: 100%;\n}\n\n.tc-view-field-name {\n\twidth: 1%; /* Makes this column be as narrow as possible */\n\ttext-align: right;\n\tfont-style: italic;\n\tfont-weight: 200;\n}\n\n.tc-view-field-value {\n}\n\n@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 14px 14px 14px 14px;\n\t}\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -14px 0 -14px;\n\t}\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\t.tc-tiddler-frame {\n\t\tpadding: 28px 42px 42px 42px;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};\n\t\tborder-radius: 2px;\n\t}\n\n<<if-no-sidebar \"\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\">>\n\n\t.tc-tiddler-info {\n\t\tmargin: 0 -42px 0 -42px;\n\t}\n}\n\n.tc-site-title,\n.tc-titlebar {\n\tfont-weight: 300;\n\tfont-size: 2.35em;\n\tline-height: 1.2em;\n\tcolor: <<colour tiddler-title-foreground>>;\n\tmargin: 0;\n}\n\n.tc-site-title {\n\tcolor: <<colour site-title-foreground>>;\n}\n\n.tc-tiddler-title-icon {\n\tvertical-align: middle;\n\tmargin-right: .1em;\n}\n\n.tc-system-title-prefix {\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-titlebar h2 {\n\tfont-size: 1em;\n\tdisplay: inline;\n}\n\n.tc-titlebar img {\n\theight: 1em;\n}\n\n.tc-subtitle {\n\tfont-size: 0.9em;\n\tcolor: <<colour tiddler-subtitle-foreground>>;\n\tfont-weight: 300;\n}\n\n.tc-subtitle .tc-tiddlylink {\n\tmargin-right: .3em;\n}\n\n.tc-tiddler-missing .tc-title {\n font-style: italic;\n font-weight: normal;\n}\n\n.tc-tiddler-frame .tc-tiddler-controls {\n\tfloat: right;\n}\n\n.tc-tiddler-controls .tc-drop-down {\n\tfont-size: 0.6em;\n}\n\n.tc-tiddler-controls .tc-drop-down .tc-drop-down {\n\tfont-size: 1em;\n}\n\n.tc-tiddler-controls > span > button,\n.tc-tiddler-controls > span > span > button,\n.tc-tiddler-controls > span > span > span > button {\n\tvertical-align: baseline;\n\tmargin-left:5px;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img,\n.tc-search button svg, .tc-search a svg {\n\tfill: <<colour tiddler-controls-foreground>>;\n}\n\n.tc-tiddler-controls button svg, .tc-tiddler-controls button img {\n\theight: 0.75em;\n}\n\n.tc-search button svg, .tc-search a svg {\n height: 1.2em;\n width: 1.2em;\n margin: 0 0.25em;\n}\n\n.tc-tiddler-controls button.tc-selected svg,\n.tc-page-controls button.tc-selected svg {\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n}\n\n.tc-tiddler-controls button.tc-btn-invisible:hover svg,\n.tc-search button:hover svg, .tc-search a:hover svg {\n\tfill: <<colour tiddler-controls-foreground-hover>>;\n}\n\n@media print {\n\t.tc-tiddler-controls {\n\t\tdisplay: none;\n\t}\n}\n\n.tc-tiddler-help { /* Help prompts within tiddler template */\n\tcolor: <<colour muted-foreground>>;\n\tmargin-top: 14px;\n}\n\n.tc-tiddler-help a.tc-tiddlylink {\n\tcolor: <<colour very-muted-foreground>>;\n}\n\n.tc-tiddler-frame .tc-edit-texteditor {\n\twidth: 100%;\n\tmargin: 4px 0 4px 0;\n}\n\n.tc-tiddler-frame input.tc-edit-texteditor,\n.tc-tiddler-frame textarea.tc-edit-texteditor,\n.tc-tiddler-frame iframe.tc-edit-texteditor {\n\tpadding: 3px 3px 3px 3px;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tbackground-color: <<colour tiddler-editor-background>>;\n\tline-height: 1.3em;\n\t-webkit-appearance: none;\n\tfont-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};\n}\n\n.tc-tiddler-frame .tc-binary-warning {\n\twidth: 100%;\n\theight: 5em;\n\ttext-align: center;\n\tpadding: 3em 3em 6em 3em;\n\tbackground: <<colour alert-background>>;\n\tborder: 1px solid <<colour alert-border>>;\n}\n\ncanvas.tc-edit-bitmapeditor {\n\tborder: 6px solid <<colour tiddler-editor-border-image>>;\n\tcursor: crosshair;\n\t-moz-user-select: none;\n\t-webkit-user-select: none;\n\t-ms-user-select: none;\n\tmargin-top: 6px;\n\tmargin-bottom: 6px;\n}\n\n.tc-edit-bitmapeditor-width {\n\tdisplay: block;\n}\n\n.tc-edit-bitmapeditor-height {\n\tdisplay: block;\n}\n\n.tc-tiddler-body {\n\tclear: both;\n}\n\n.tc-tiddler-frame .tc-tiddler-body {\n\tfont-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};\n\tline-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};\n}\n\n.tc-titlebar, .tc-tiddler-edit-title {\n\toverflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */\n}\n\nhtml body.tc-body.tc-single-tiddler-window {\n\tmargin: 1em;\n\tbackground: <<colour tiddler-background>>;\n}\n\n.tc-single-tiddler-window img,\n.tc-single-tiddler-window svg,\n.tc-single-tiddler-window canvas,\n.tc-single-tiddler-window embed,\n.tc-single-tiddler-window iframe {\n\tmax-width: 100%;\n}\n\n/*\n** Editor\n*/\n\n.tc-editor-toolbar {\n\tmargin-top: 8px;\n}\n\n.tc-editor-toolbar button {\n\tvertical-align: middle;\n\tbackground-color: <<colour tiddler-controls-foreground>>;\n\tcolor: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour tiddler-controls-foreground-selected>>;\n\tborder-radius: 4px;\n\tpadding: 3px;\n\tmargin: 2px 0 2px 4px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {\n\tmargin-left: 1px;\n\twidth: 1em;\n\tborder-radius: 8px;\n}\n\n.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {\n\tmargin-left: 11px;\n}\n\n.tc-editor-toolbar button.tc-selected {\n\tbackground-color: <<colour primary>>;\n}\n\n.tc-editor-toolbar button svg {\n\twidth: 1.6em;\n\theight: 1.2em;\n}\n\n.tc-editor-toolbar button:hover {\n\tbackground-color: <<colour tiddler-controls-foreground-selected>>;\n\tfill: <<colour background>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more {\n\twhite-space: normal;\n}\n\n.tc-editor-toolbar .tc-text-editor-toolbar-more button {\n\tdisplay: inline-block;\n\tpadding: 3px;\n\twidth: auto;\n}\n\n.tc-editor-toolbar .tc-search-results {\n\tpadding: 0;\n}\n\n/*\n** Adjustments for fluid-fixed mode\n*/\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n<<if-fluid-fixed text:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 0;\n\t\tposition: relative;\n\t\twidth: auto;\n\t\tleft: 0;\n\t\tmargin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};\n\t\tmargin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\t.tc-tiddler-frame {\n\t\twidth: 100%;\n\t}\n\n\t.tc-sidebar-scrollable {\n\t\tleft: auto;\n\t\tbottom: 0;\n\t\tright: 0;\n\t\twidth: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 42px);\n\t}\n\n\"\"\" hiddenSidebarText:\"\"\"\n\n\t.tc-story-river {\n\t\tpadding-right: 3em;\n\t\tmargin-right: 0;\n\t}\n\n\tbody.tc-body .tc-storyview-zoomin-tiddler {\n\t\twidth: 100%;\n\t\twidth: calc(100% - 84px);\n\t}\n\n\"\"\">>\n\n}\n\n/*\n** Toolbar buttons\n*/\n\n.tc-page-controls svg.tc-image-new-button {\n fill: <<colour toolbar-new-button>>;\n}\n\n.tc-page-controls svg.tc-image-options-button {\n fill: <<colour toolbar-options-button>>;\n}\n\n.tc-page-controls svg.tc-image-save-button {\n fill: <<colour toolbar-save-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-info-button {\n fill: <<colour toolbar-info-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-edit-button {\n fill: <<colour toolbar-edit-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-close-button {\n fill: <<colour toolbar-close-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-delete-button {\n fill: <<colour toolbar-delete-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-cancel-button {\n fill: <<colour toolbar-cancel-button>>;\n}\n\n.tc-tiddler-controls button svg.tc-image-done-button {\n fill: <<colour toolbar-done-button>>;\n}\n\n/*\n** Tiddler edit mode\n*/\n\n.tc-tiddler-edit-frame em.tc-edit {\n\tcolor: <<colour muted-foreground>>;\n\tfont-style: normal;\n}\n\n.tc-edit-type-dropdown a.tc-tiddlylink-missing {\n\tfont-style: normal;\n}\n\n.tc-type-selector .tc-edit-typeeditor {\n\twidth: 20%;\n}\n\n.tc-edit-tags {\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tpadding: 4px 8px 4px 8px;\n}\n\n.tc-edit-add-tag {\n\tdisplay: inline-block;\n}\n\n.tc-edit-add-tag .tc-add-tag-name input {\n\twidth: 50%;\n}\n\n.tc-edit-add-tag .tc-keyboard {\n\tdisplay:inline;\n}\n\n.tc-edit-tags .tc-tag-label {\n\tdisplay: inline-block;\n}\n\n.tc-edit-tags-list {\n\tmargin: 14px 0 14px 0;\n}\n\n.tc-remove-tag-button {\n\tpadding-left: 4px;\n}\n\n.tc-tiddler-preview {\n\toverflow: auto;\n}\n\n.tc-tiddler-preview-preview {\n\tfloat: right;\n\twidth: 49%;\n\tborder: 1px solid <<colour tiddler-editor-border>>;\n\tmargin: 4px 0 3px 3px;\n\tpadding: 3px 3px 3px 3px;\n}\n\n<<if-editor-height-fixed then:\"\"\"\n\n.tc-tiddler-preview-preview {\n\toverflow-y: scroll;\n\theight: {{$:/config/TextEditor/EditorHeight/Height}};\n}\n\n\"\"\">>\n\n.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {\n\twidth: 49%;\n}\n\n.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {\n\tmax-width: 49%;\n}\n\n.tc-edit-fields {\n\twidth: 100%;\n}\n\n\n.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {\n\tborder: none;\n\tpadding: 4px;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {\n\tbackground-color: <<colour tiddler-editor-fields-odd>>;\n}\n\n.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {\n\tbackground-color: <<colour tiddler-editor-fields-even>>;\n}\n\n.tc-edit-field-name {\n\ttext-align: right;\n}\n\n.tc-edit-field-value input {\n\twidth: 100%;\n}\n\n.tc-edit-field-remove {\n}\n\n.tc-edit-field-remove svg {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n\tvertical-align: middle;\n}\n\n.tc-edit-field-add-name {\n\tdisplay: inline-block;\n\twidth: 15%;\n}\n\n.tc-edit-field-add-value {\n\tdisplay: inline-block;\n\twidth: 40%;\n}\n\n.tc-edit-field-add-button {\n\tdisplay: inline-block;\n\twidth: 10%;\n}\n\n/*\n** Storyview Classes\n*/\n\n.tc-viewswitcher .tc-image-button {\n\tmargin-right: .3em;\n}\n\n.tc-storyview-zoomin-tiddler {\n\tposition: absolute;\n\tdisplay: block;\n\twidth: 100%;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-storyview-zoomin-tiddler {\n\t\twidth: calc(100% - 84px);\n\t}\n\n}\n\n/*\n** Dropdowns\n*/\n\n.tc-btn-dropdown {\n\ttext-align: left;\n}\n\n.tc-btn-dropdown svg, .tc-btn-dropdown img {\n\theight: 1em;\n\twidth: 1em;\n\tfill: <<colour muted-foreground>>;\n}\n\n.tc-drop-down-wrapper {\n\tposition: relative;\n}\n\n.tc-drop-down {\n\tmin-width: 380px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\ttext-shadow: none;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-drop-down {\n\tmargin-left: 14px;\n}\n\n.tc-drop-down button svg, .tc-drop-down a svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down button.tc-btn-invisible:hover svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-drop-down .tc-drop-down-info {\n\tpadding-left: 14px;\n}\n\n.tc-drop-down p {\n\tpadding: 0 14px 0 14px;\n}\n\n.tc-drop-down svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-drop-down img {\n\twidth: 1em;\n}\n\n.tc-drop-down a, .tc-drop-down button {\n\tdisplay: block;\n\tpadding: 0 14px 0 14px;\n\twidth: 100%;\n\ttext-align: left;\n\tcolor: <<colour foreground>>;\n\tline-height: 1.4;\n}\n\n.tc-drop-down .tc-tab-set .tc-tab-buttons button {\n\tdisplay: inline-block;\n width: auto;\n margin-bottom: 0px;\n border-bottom-left-radius: 0;\n border-bottom-right-radius: 0;\n}\n\n.tc-drop-down .tc-prompt {\n\tpadding: 0 14px;\n}\n\n.tc-drop-down .tc-chooser {\n\tborder: none;\n}\n\n.tc-drop-down .tc-chooser .tc-swatches-horiz {\n\tfont-size: 0.4em;\n\tpadding-left: 1.2em;\n}\n\n.tc-drop-down .tc-file-input-wrapper {\n\twidth: 100%;\n}\n\n.tc-drop-down .tc-file-input-wrapper button {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-tab-buttons button {\n\tbackground-color: <<colour dropdown-tab-background>>;\n}\n\n.tc-drop-down .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour dropdown-tab-background-selected>>;\n\tborder-bottom: 1px solid <<colour dropdown-tab-background-selected>>;\n}\n\n.tc-drop-down-bullet {\n\tdisplay: inline-block;\n\twidth: 0.5em;\n}\n\n.tc-drop-down .tc-tab-contents a {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-block-dropdown-wrapper {\n\tposition: relative;\n}\n\n.tc-block-dropdown {\n\tposition: absolute;\n\tmin-width: 220px;\n\tborder: 1px solid <<colour dropdown-border>>;\n\tbackground-color: <<colour dropdown-background>>;\n\tpadding: 7px 0;\n\tmargin: 4px 0 0 0;\n\twhite-space: nowrap;\n\tz-index: 1000;\n\ttext-shadow: none;\n}\n\n.tc-block-dropdown.tc-search-drop-down {\n\tmargin-left: -12px;\n}\n\n.tc-block-dropdown a {\n\tdisplay: block;\n\tpadding: 4px 14px 4px 14px;\n}\n\n.tc-block-dropdown.tc-search-drop-down a {\n\tdisplay: block;\n\tpadding: 0px 10px 0px 10px;\n}\n\n.tc-drop-down .tc-dropdown-item-plain,\n.tc-block-dropdown .tc-dropdown-item-plain {\n\tpadding: 4px 14px 4px 7px;\n}\n\n.tc-drop-down .tc-dropdown-item,\n.tc-block-dropdown .tc-dropdown-item {\n\tpadding: 4px 14px 4px 7px;\n\tcolor: <<colour muted-foreground>>;\n}\n\n.tc-block-dropdown a:hover {\n\tcolor: <<colour tiddler-link-background>>;\n\tbackground-color: <<colour tiddler-link-foreground>>;\n\ttext-decoration: none;\n}\n\n.tc-search-results {\n\tpadding: 0 7px 0 7px;\n}\n\n.tc-image-chooser, .tc-colour-chooser {\n\twhite-space: normal;\n}\n\n.tc-image-chooser a,\n.tc-colour-chooser a {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\ttext-align: center;\n\tposition: relative;\n}\n\n.tc-image-chooser a {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 2px;\n\tmargin: 2px;\n\twidth: 4em;\n\theight: 4em;\n}\n\n.tc-colour-chooser a {\n\tpadding: 3px;\n\twidth: 2em;\n\theight: 2em;\n\tvertical-align: middle;\n}\n\n.tc-image-chooser a:hover,\n.tc-colour-chooser a:hover {\n\tbackground: <<colour primary>>;\n\tpadding: 0px;\n\tborder: 3px solid <<colour primary>>;\n}\n\n.tc-image-chooser a svg,\n.tc-image-chooser a img {\n\tdisplay: inline-block;\n\twidth: auto;\n\theight: auto;\n\tmax-width: 3.5em;\n\tmax-height: 3.5em;\n\tposition: absolute;\n\ttop: 0;\n\tbottom: 0;\n\tleft: 0;\n\tright: 0;\n\tmargin: auto;\n}\n\n/*\n** Modals\n*/\n\n.tc-modal-wrapper {\n\tposition: fixed;\n\toverflow: auto;\n\toverflow-y: scroll;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 900;\n}\n\n.tc-modal-backdrop {\n\tposition: fixed;\n\ttop: 0;\n\tright: 0;\n\tbottom: 0;\n\tleft: 0;\n\tz-index: 1000;\n\tbackground-color: <<colour modal-backdrop>>;\n}\n\n.tc-modal {\n\tz-index: 1100;\n\tbackground-color: <<colour modal-background>>;\n\tborder: 1px solid <<colour modal-border>>;\n}\n\n@media (max-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 1em;\n\t\tleft: 1em;\n\t\tright: 1em;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n@media (min-width: 55em) {\n\t.tc-modal {\n\t\tposition: fixed;\n\t\ttop: 2em;\n\t\tleft: 25%;\n\t\twidth: 50%;\n\t}\n\n\t.tc-modal-body {\n\t\toverflow-y: auto;\n\t\tmax-height: 400px;\n\t\tmax-height: 60vh;\n\t}\n}\n\n.tc-modal-header {\n\tpadding: 9px 15px;\n\tborder-bottom: 1px solid <<colour modal-header-border>>;\n}\n\n.tc-modal-header h3 {\n\tmargin: 0;\n\tline-height: 30px;\n}\n\n.tc-modal-header img, .tc-modal-header svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-modal-body {\n\tpadding: 15px;\n}\n\n.tc-modal-footer {\n\tpadding: 14px 15px 15px;\n\tmargin-bottom: 0;\n\ttext-align: right;\n\tbackground-color: <<colour modal-footer-background>>;\n\tborder-top: 1px solid <<colour modal-footer-border>>;\n}\n\n/*\n** Notifications\n*/\n\n.tc-notification {\n\tposition: fixed;\n\ttop: 14px;\n\tright: 42px;\n\tz-index: 1300;\n\tmax-width: 280px;\n\tpadding: 0 14px 0 14px;\n\tbackground-color: <<colour notification-background>>;\n\tborder: 1px solid <<colour notification-border>>;\n}\n\n/*\n** Tabs\n*/\n\n.tc-tab-set.tc-vertical {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tab-buttons {\n\tfont-size: 0.85em;\n\tpadding-top: 1em;\n\tmargin-bottom: -2px;\n}\n\n.tc-tab-buttons.tc-vertical {\n\tz-index: 100;\n\tdisplay: block;\n\tpadding-top: 14px;\n\tvertical-align: top;\n\ttext-align: right;\n\tmargin-bottom: inherit;\n\tmargin-right: -1px;\n\tmax-width: 33%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n}\n\n.tc-tab-buttons button.tc-tab-selected {\n\tcolor: <<colour tab-foreground-selected>>;\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-left: 1px solid <<colour tab-border-selected>>;\n\tborder-top: 1px solid <<colour tab-border-selected>>;\n\tborder-right: 1px solid <<colour tab-border-selected>>;\n}\n\n.tc-tab-buttons button {\n\tcolor: <<colour tab-foreground>>;\n\tpadding: 3px 5px 3px 5px;\n\tmargin-right: 0.3em;\n\tfont-weight: 300;\n\tborder: none;\n\tbackground: inherit;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-right: 1px solid <<colour tab-border>>;\n\tborder-top-left-radius: 2px;\n\tborder-top-right-radius: 2px;\n\tborder-bottom-left-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button {\n\tdisplay: block;\n\twidth: 100%;\n\tmargin-top: 3px;\n\tmargin-right: 0;\n\ttext-align: right;\n\tbackground-color: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tborder-right: none;\n\tborder-top-left-radius: 2px;\n\tborder-bottom-left-radius: 2px;\n\tborder-top-right-radius: 0;\n\tborder-bottom-right-radius: 0;\n}\n\n.tc-tab-buttons.tc-vertical button.tc-tab-selected {\n\tbackground-color: <<colour tab-background-selected>>;\n\tborder-right: 1px solid <<colour tab-background-selected>>;\n}\n\n.tc-tab-divider {\n\tborder-top: 1px solid <<colour tab-divider>>;\n}\n\n.tc-tab-divider.tc-vertical {\n\tdisplay: none;\n}\n\n.tc-tab-content {\n\tmargin-top: 14px;\n}\n\n.tc-tab-content.tc-vertical {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-top: 0;\n\tpadding-left: 14px;\n\tborder-left: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 70%;\n\tflex: 1 0 70%;\n\toverflow: auto;\n}\n\n.tc-sidebar-lists .tc-tab-buttons {\n\tmargin-bottom: -1px;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tcolor: <<colour sidebar-tab-foreground-selected>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border-selected>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border-selected>>;\n}\n\n.tc-sidebar-lists .tc-tab-buttons button {\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tcolor: <<colour sidebar-tab-foreground>>;\n\tborder-left: 1px solid <<colour sidebar-tab-border>>;\n\tborder-top: 1px solid <<colour sidebar-tab-border>>;\n\tborder-right: 1px solid <<colour sidebar-tab-border>>;\n}\n\n.tc-sidebar-lists .tc-tab-divider {\n\tborder-top: 1px solid <<colour sidebar-tab-divider>>;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {\n\tdisplay: block;\n\twidth: 100%;\n\tbackground-color: <<colour sidebar-tab-background>>;\n\tborder-top: none;\n\tborder-left: none;\n\tborder-bottom: none;\n\tborder-right: 1px solid #ccc;\n\tmargin-bottom: inherit;\n}\n\n.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {\n\tbackground-color: <<colour sidebar-tab-background-selected>>;\n\tborder: none;\n}\n\n/*\n** Manager\n*/\n\n.tc-manager-wrapper {\n\t\n}\n\n.tc-manager-controls {\n\t\n}\n\n.tc-manager-control {\n\tmargin: 0.5em 0;\n}\n\n.tc-manager-list {\n\twidth: 100%;\n\tborder-top: 1px solid <<colour muted-foreground>>;\n\tborder-left: 1px solid <<colour muted-foreground>>;\n\tborder-right: 1px solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item {\n\n}\n\n.tc-manager-list-item-heading {\n display: block;\n width: 100%;\n text-align: left;\t\n\tborder-bottom: 1px solid <<colour muted-foreground>>;\n\tpadding: 3px;\n}\n\n.tc-manager-list-item-heading-selected {\n\tfont-weight: bold;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n\tbackground-color: <<colour foreground>>;\n}\n\n.tc-manager-list-item-heading:hover {\n\tbackground: <<colour primary>>;\n\tcolor: <<colour background>>;\n}\n\n.tc-manager-list-item-content {\n\tdisplay: flex;\n}\n\n.tc-manager-list-item-content-sidebar {\n flex: 1 0;\n background: <<colour tiddler-editor-background>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n white-space: nowrap;\n}\n\n.tc-manager-list-item-content-item-heading {\n\tdisplay: block;\n\twidth: 100%;\n\ttext-align: left;\n background: <<colour muted-foreground>>;\n\ttext-transform: uppercase;\n\tfont-size: 0.6em;\n\tfont-weight: bold;\n padding: 0.5em 0 0.5em 0;\n}\n\n.tc-manager-list-item-content-item-body {\n\tpadding: 0 0.5em 0 0.5em;\n}\n\n.tc-manager-list-item-content-item-body > pre {\n\tmargin: 0.5em 0 0.5em 0;\n\tborder: none;\n\tbackground: inherit;\n}\n\n.tc-manager-list-item-content-tiddler {\n flex: 3 1;\n border-left: 0.5em solid <<colour muted-foreground>>;\n border-right: 0.5em solid <<colour muted-foreground>>;\n border-bottom: 0.5em solid <<colour muted-foreground>>;\n}\n\n.tc-manager-list-item-content-item-body > table {\n\tborder: none;\n\tpadding: 0;\n\tmargin: 0;\n}\n\n.tc-manager-list-item-content-item-body > table td {\n\tborder: none;\n}\n\n.tc-manager-icon-editor > button {\n\twidth: 100%;\n}\n\n.tc-manager-icon-editor > button > svg,\n.tc-manager-icon-editor > button > button {\n\twidth: 100%;\n\theight: auto;\n}\n\n/*\n** Alerts\n*/\n\n.tc-alerts {\n\tposition: fixed;\n\ttop: 28px;\n\tleft: 0;\n\tright: 0;\n\tmax-width: 50%;\n\tz-index: 20000;\n}\n\n.tc-alert {\n\tposition: relative;\n\tmargin: 14px;\n\tpadding: 7px;\n\tborder: 1px solid <<colour alert-border>>;\n\tbackground-color: <<colour alert-background>>;\n}\n\n.tc-alert-toolbar {\n\tposition: absolute;\n\ttop: 7px;\n\tright: 7px;\n line-height: 0;\n}\n\n.tc-alert-toolbar svg {\n\tfill: <<colour alert-muted-foreground>>;\n}\n\n.tc-alert-subtitle {\n\tcolor: <<colour alert-muted-foreground>>;\n\tfont-weight: bold;\n font-size: 0.8em;\n margin-bottom: 0.5em;\n}\n\n.tc-alert-body > p {\n\tmargin: 0;\n}\n\n.tc-alert-highlight {\n\tcolor: <<colour alert-highlight>>;\n}\n\n@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {\n\n\t.tc-static-alert {\n\t\tposition: relative;\n\t}\n\n\t.tc-static-alert-inner {\n\t\tposition: absolute;\n\t\tz-index: 100;\n\t}\n\n}\n\n.tc-static-alert-inner {\n\tpadding: 0 2px 2px 42px;\n\tcolor: <<colour static-alert-foreground>>;\n}\n\n/*\n** Floating drafts list\n*/\n\n.tc-drafts-list {\n\tz-index: 2000;\n\tposition: fixed;\n\tfont-size: 0.8em;\n\tleft: 0;\n\tbottom: 0;\n}\n\n.tc-drafts-list a {\n\tmargin: 0 0.5em;\n\tpadding: 4px 4px;\n\tborder-top-left-radius: 4px;\n\tborder-top-right-radius: 4px;\n\tborder: 1px solid <<colour background>>;\n\tborder-bottom-none;\n\tbackground: <<colour dirty-indicator>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a:hover {\n\ttext-decoration: none;\n\tbackground: <<colour foreground>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour background>>;\n}\n\n.tc-drafts-list a svg {\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: text-bottom;\n}\n\n/*\n** Control panel\n*/\n\n.tc-control-panel td {\n\tpadding: 4px;\n}\n\n.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {\n\twidth: 100%;\n}\n\n.tc-plugin-info {\n\tdisplay: flex;\n\tborder: 1px solid <<colour muted-foreground>>;\n\tfill: <<colour muted-foreground>>;\n\tbackground-color: <<colour background>>;\n\tmargin: 0.5em 0 0.5em 0;\n\tpadding: 4px;\n align-items: center;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info {\n margin: 0.5em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugin-indicator {\n\tmargin: -16px 1em 0 2em;\n}\n\n.tc-plugin-info-sub-plugin-indicator button {\n\tcolor: <<colour background>>;\n\tbackground: <<colour foreground>>;\n\tborder-radius: 8px;\n padding: 2px 7px;\n font-size: 0.75em;\n}\n\n.tc-plugin-info-sub-plugins .tc-plugin-info-dropdown {\n\tmargin-left: 1em;\n\tmargin-right: 1em;\n}\n\n.tc-plugin-info-disabled {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n\tbackground: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);\n}\n\n.tc-plugin-info-disabled:hover {\n\tbackground: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n\tbackground: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);\n}\n\na.tc-tiddlylink.tc-plugin-info:hover {\n\ttext-decoration: none;\n\tbackground-color: <<colour primary>>;\n\tcolor: <<colour background>>;\n\tfill: <<colour foreground>>;\n}\n\na.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {\n\tfill: <<colour foreground>>;\n}\n\n.tc-plugin-info-chunk {\n margin: 2px;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon {\n\tflex-grow: 0;\n\tflex-shrink: 0;\n\tline-height: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description {\n\tflex-grow: 1;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-buttons {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tflex-grow: 0;\n\tflex-shrink: 0;\n text-align: right;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h1 {\n\tfont-size: 1em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description h2 {\n\tfont-size: 0.8em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-description div {\n\tfont-size: 0.7em;\n\tline-height: 1.2;\n\tmargin: 2px 0 2px 0;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-toggle img, .tc-plugin-info-chunk.tc-plugin-info-toggle svg {\n\twidth: 1em;\n\theight: 1em;\n}\n\n.tc-plugin-info-chunk.tc-plugin-info-icon img, .tc-plugin-info-chunk.tc-plugin-info-icon svg {\n\twidth: 2em;\n\theight: 2em;\n}\n\n.tc-plugin-info-dropdown {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tbackground: <<colour background>>;\n\tmargin-top: -8px;\n}\n\n.tc-plugin-info-dropdown-message {\n\tbackground: <<colour message-background>>;\n\tpadding: 0.5em 1em 0.5em 1em;\n\tfont-weight: bold;\n\tfont-size: 0.8em;\n}\n\n.tc-plugin-info-dropdown-body {\n\tpadding: 1em 1em 0 1em;\n\tbackground: <<colour background>>;\n}\n\n.tc-plugin-info-sub-plugins {\n\tpadding: 0.5em;\n margin: 0 1em 1em 1em;\n\tbackground: <<colour notification-background>>;\n}\n\n.tc-install-plugin {\n\tfont-weight: bold;\n\tbackground: green;\n\tcolor: white;\n\tfill: white;\n\tborder-radius: 4px;\n\tpadding: 3px;\n}\n\n.tc-install-plugin.tc-reinstall-downgrade {\n\tbackground: red;\n}\n\n.tc-install-plugin.tc-reinstall {\n\tbackground: blue;\n}\n\n.tc-install-plugin.tc-reinstall-upgrade {\n\tbackground: orange;\n}\n\n.tc-check-list {\n\tline-height: 2em;\n}\n\n.tc-check-list .tc-image-button {\n\theight: 1.5em;\n}\n\n/*\n** Message boxes\n*/\n\n.tc-message-box {\n\tborder: 1px solid <<colour message-border>>;\n\tbackground: <<colour message-background>>;\n\tpadding: 0px 21px 0px 21px;\n\tfont-size: 12px;\n\tline-height: 18px;\n\tcolor: <<colour message-foreground>>;\n}\n\n.tc-message-box svg {\n\twidth: 1em;\n\theight: 1em;\n vertical-align: text-bottom;\n}\n\n/*\n** Pictures\n*/\n\n.tc-bordered-image {\n\tborder: 1px solid <<colour muted-foreground>>;\n\tpadding: 5px;\n\tmargin: 5px;\n}\n\n/*\n** Floats\n*/\n\n.tc-float-right {\n\tfloat: right;\n}\n\n/*\n** Chooser\n*/\n\n.tc-chooser {\n\tborder-right: 1px solid <<colour table-header-background>>;\n\tborder-left: 1px solid <<colour table-header-background>>;\n}\n\n\n.tc-chooser-item {\n\tborder-bottom: 1px solid <<colour table-header-background>>;\n\tborder-top: 1px solid <<colour table-header-background>>;\n\tpadding: 2px 4px 2px 14px;\n}\n\n.tc-drop-down .tc-chooser-item {\n\tpadding: 2px;\n}\n\n.tc-chosen,\n.tc-chooser-item:hover {\n\tbackground-color: <<colour table-header-background>>;\n\tborder-color: <<colour table-footer-background>>;\n}\n\n.tc-chosen .tc-tiddlylink {\n\tcursor:default;\n}\n\n.tc-chooser-item .tc-tiddlylink {\n\tdisplay: block;\n\ttext-decoration: none;\n\tbackground-color: transparent;\n}\n\n.tc-chooser-item:hover .tc-tiddlylink:hover {\n\ttext-decoration: none;\n}\n\n.tc-drop-down .tc-chosen .tc-tiddlylink,\n.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {\n\tcolor: <<colour foreground>>;\n}\n\n.tc-chosen > .tc-tiddlylink:before {\n\tmargin-left: -10px;\n\tposition: relative;\n\tcontent: \"» \";\n}\n\n.tc-chooser-item svg,\n.tc-chooser-item img{\n\twidth: 1em;\n\theight: 1em;\n\tvertical-align: middle;\n}\n\n.tc-language-chooser .tc-image-button img {\n\twidth: 2em;\n\tvertical-align: -0.15em;\n}\n\n/*\n** Palette swatches\n*/\n\n.tc-swatches-horiz {\n}\n\n.tc-swatches-horiz .tc-swatch {\n\tdisplay: inline-block;\n}\n\n.tc-swatch {\n\twidth: 2em;\n\theight: 2em;\n\tmargin: 0.4em;\n\tborder: 1px solid #888;\n}\n\ninput.tc-palette-manager-colour-input {\n\twidth: 100%;\n\tpadding: 0;\n}\n\n/*\n** Table of contents\n*/\n\n.tc-sidebar-lists .tc-table-of-contents {\n\twhite-space: nowrap;\n}\n\n.tc-table-of-contents button {\n\tcolor: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents svg {\n\twidth: 0.7em;\n\theight: 0.7em;\n\tvertical-align: middle;\n\tfill: <<colour sidebar-foreground>>;\n}\n\n.tc-table-of-contents ol {\n\tlist-style-type: none;\n\tpadding-left: 0;\n}\n\n.tc-table-of-contents ol ol {\n\tpadding-left: 1em;\n}\n\n.tc-table-of-contents li {\n\tfont-size: 1.0em;\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li a {\n\tfont-weight: bold;\n}\n\n.tc-table-of-contents li li {\n\tfont-size: 0.95em;\n\tfont-weight: normal;\n\tline-height: 1.4;\n}\n\n.tc-table-of-contents li li a {\n\tfont-weight: normal;\n}\n\n.tc-table-of-contents li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n\tline-height: 1.5;\n}\n\n.tc-table-of-contents li li li li {\n\tfont-size: 0.95em;\n\tfont-weight: 200;\n}\n\n.tc-tabbed-table-of-contents {\n\tdisplay: -webkit-flex;\n\tdisplay: flex;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents {\n\tz-index: 100;\n\tdisplay: inline-block;\n\tpadding-left: 1em;\n\tmax-width: 50%;\n\t-webkit-flex: 0 0 auto;\n\tflex: 0 0 auto;\n\tbackground: <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tdisplay: block;\n\tpadding: 0.12em 1em 0.12em 0.25em;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {\n\tborder-top: 1px solid <<colour tab-background>>;\n\tborder-left: 1px solid <<colour tab-background>>;\n\tborder-bottom: 1px solid <<colour tab-background>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {\n\ttext-decoration: none;\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour tab-border>>;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {\n\tborder-top: 1px solid <<colour tab-border>>;\n\tborder-left: 1px solid <<colour tab-border>>;\n\tborder-bottom: 1px solid <<colour tab-border>>;\n\tbackground: <<colour background>>;\n\tmargin-right: -1px;\n}\n\n.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {\n\ttext-decoration: none;\n}\n\n.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {\n\tdisplay: inline-block;\n\tvertical-align: top;\n\tpadding-left: 1.5em;\n\tpadding-right: 1.5em;\n\tborder: 1px solid <<colour tab-border>>;\n\t-webkit-flex: 1 0 50%;\n\tflex: 1 0 50%;\n}\n\n/*\n** Dirty indicator\n*/\n\nbody.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {\n\tfill: <<colour dirty-indicator>>;\n\tcolor: <<colour dirty-indicator>>;\n}\n\n/*\n** File inputs\n*/\n\n.tc-file-input-wrapper {\n\tposition: relative;\n\toverflow: hidden;\n\tdisplay: inline-block;\n\tvertical-align: middle;\n}\n\n.tc-file-input-wrapper input[type=file] {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tfont-size: 999px;\n\tmax-width: 100%;\n\tmax-height: 100%;\n\tfilter: alpha(opacity=0);\n\topacity: 0;\n\toutline: none;\n\tbackground: white;\n\tcursor: pointer;\n\tdisplay: inline-block;\n}\n\n/*\n** Thumbnail macros\n*/\n\n.tc-thumbnail-wrapper {\n\tposition: relative;\n\tdisplay: inline-block;\n\tmargin: 6px;\n\tvertical-align: top;\n}\n\n.tc-thumbnail-right-wrapper {\n\tfloat:right;\n\tmargin: 0.5em 0 0.5em 0.5em;\n}\n\n.tc-thumbnail-image {\n\ttext-align: center;\n\toverflow: hidden;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-image svg,\n.tc-thumbnail-image img {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n\tmin-width: 100%;\n\tmin-height: 100%;\n\tmax-width: 100%;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {\n\tfilter: alpha(opacity=0.8);\n\topacity: 0.8;\n}\n\n.tc-thumbnail-background {\n\tposition: absolute;\n\tborder-radius: 3px;\n}\n\n.tc-thumbnail-icon svg,\n.tc-thumbnail-icon img {\n\twidth: 3em;\n\theight: 3em;\n\t<<filter \"drop-shadow(2px 2px 4px rgba(0,0,0,0.3))\">>\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,\n.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {\n\tfill: #fff;\n\t<<filter \"drop-shadow(3px 3px 4px rgba(0,0,0,0.6))\">>\n}\n\n.tc-thumbnail-icon {\n\tposition: absolute;\n\ttop: 0;\n\tleft: 0;\n\tright: 0;\n\tbottom: 0;\n\tdisplay: -webkit-flex;\n\t-webkit-align-items: center;\n\t-webkit-justify-content: center;\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n\n.tc-thumbnail-caption {\n\tposition: absolute;\n\tbackground-color: #777;\n\tcolor: #fff;\n\ttext-align: center;\n\tbottom: 0;\n\twidth: 100%;\n\tfilter: alpha(opacity=0.9);\n\topacity: 0.9;\n\tline-height: 1.4;\n\tborder-bottom-left-radius: 3px;\n\tborder-bottom-right-radius: 3px;\n}\n\n.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {\n\tfilter: alpha(opacity=1);\n\topacity: 1;\n}\n\n/*\n** Diffs\n*/\n\n.tc-diff-equal {\n\tbackground-color: <<colour diff-equal-background>>;\n\tcolor: <<colour diff-equal-foreground>>;\n}\n\n.tc-diff-insert {\n\tbackground-color: <<colour diff-insert-background>>;\n\tcolor: <<colour diff-insert-foreground>>;\n}\n\n.tc-diff-delete {\n\tbackground-color: <<colour diff-delete-background>>;\n\tcolor: <<colour diff-delete-foreground>>;\n}\n\n.tc-diff-invisible {\n\tbackground-color: <<colour diff-invisible-background>>;\n\tcolor: <<colour diff-invisible-foreground>>;\n}\n\n.tc-diff-tiddlers th {\n\ttext-align: right;\n\tbackground: <<colour background>>;\n\tfont-weight: normal;\n\tfont-style: italic;\n}\n\n.tc-diff-tiddlers pre {\n margin: 0;\n padding: 0;\n border: none;\n background: none;\n}\n\n/*\n** Errors\n*/\n\n.tc-error {\n\tbackground: #f00;\n\tcolor: #fff;\n}\n\n/*\n** Tree macro\n*/\n\n.tc-tree div {\n \tpadding-left: 14px;\n}\n\n.tc-tree ol {\n \tlist-style-type: none;\n \tpadding-left: 0;\n \tmargin-top: 0;\n}\n\n.tc-tree ol ol {\n \tpadding-left: 1em; \n}\n\n.tc-tree button { \n \tcolor: #acacac;\n}\n\n.tc-tree svg {\n \tfill: #acacac;\n}\n\n.tc-tree span svg {\n \twidth: 1em;\n \theight: 1em;\n \tvertical-align: baseline;\n}\n\n.tc-tree li span {\n \tcolor: lightgray;\n}\n\nselect {\n color: <<colour select-tag-foreground>>;\n background: <<colour select-tag-background>>;\n}\n\n/*\n** Utility classes for SVG icons\n*/\n\n.tc-fill-background {\n\tfill: <<colour background>>;\n}"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize",
"text": "15px"
},
"$:/themes/tiddlywiki/vanilla/metrics/bodylineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/bodylineheight",
"text": "22px"
},
"$:/themes/tiddlywiki/vanilla/metrics/fontsize": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/fontsize",
"text": "14px"
},
"$:/themes/tiddlywiki/vanilla/metrics/lineheight": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/lineheight",
"text": "20px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyleft": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyleft",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storytop": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storytop",
"text": "0px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storyright": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storyright",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/storywidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/storywidth",
"text": "770px"
},
"$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth",
"text": "686px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint",
"text": "960px"
},
"$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth": {
"title": "$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth",
"text": "350px"
},
"$:/themes/tiddlywiki/vanilla/options/stickytitles": {
"title": "$:/themes/tiddlywiki/vanilla/options/stickytitles",
"text": "no"
},
"$:/themes/tiddlywiki/vanilla/options/sidebarlayout": {
"title": "$:/themes/tiddlywiki/vanilla/options/sidebarlayout",
"text": "fixed-fluid"
},
"$:/themes/tiddlywiki/vanilla/options/codewrapping": {
"title": "$:/themes/tiddlywiki/vanilla/options/codewrapping",
"text": "pre-wrap"
},
"$:/themes/tiddlywiki/vanilla/reset": {
"title": "$:/themes/tiddlywiki/vanilla/reset",
"type": "text/plain",
"text": "/*! normalize.css v8.0.1 | MIT License | github.com/necolas/normalize.css */\n\n/* Document\n ========================================================================== */\n\n/**\n * 1. Correct the line height in all browsers.\n * 2. Prevent adjustments of font size after orientation changes in iOS.\n */\n\nhtml {\n line-height: 1.15; /* 1 */\n -webkit-text-size-adjust: 100%; /* 2 */\n}\n\n/* Sections\n ========================================================================== */\n\n/**\n * Remove the margin in all browsers.\n */\n\nbody {\n margin: 0;\n}\n\n/**\n * Render the `main` element consistently in IE.\n */\n\nmain {\n display: block;\n}\n\n/**\n * Correct the font size and margin on `h1` elements within `section` and\n * `article` contexts in Chrome, Firefox, and Safari.\n */\n\nh1 {\n font-size: 2em;\n margin: 0.67em 0;\n}\n\n/* Grouping content\n ========================================================================== */\n\n/**\n * 1. Add the correct box sizing in Firefox.\n * 2. Show the overflow in Edge and IE.\n */\n\nhr {\n box-sizing: content-box; /* 1 */\n height: 0; /* 1 */\n overflow: visible; /* 2 */\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\npre {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/* Text-level semantics\n ========================================================================== */\n\n/**\n * Remove the gray background on active links in IE 10.\n */\n\na {\n background-color: transparent;\n}\n\n/**\n * 1. Remove the bottom border in Chrome 57-\n * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.\n */\n\nabbr[title] {\n border-bottom: none; /* 1 */\n text-decoration: underline; /* 2 */\n text-decoration: underline dotted; /* 2 */\n}\n\n/**\n * Add the correct font weight in Chrome, Edge, and Safari.\n */\n\nb,\nstrong {\n font-weight: bolder;\n}\n\n/**\n * 1. Correct the inheritance and scaling of font size in all browsers.\n * 2. Correct the odd `em` font sizing in all browsers.\n */\n\ncode,\nkbd,\nsamp {\n font-family: monospace, monospace; /* 1 */\n font-size: 1em; /* 2 */\n}\n\n/**\n * Add the correct font size in all browsers.\n */\n\nsmall {\n font-size: 80%;\n}\n\n/**\n * Prevent `sub` and `sup` elements from affecting the line height in\n * all browsers.\n */\n\nsub,\nsup {\n font-size: 75%;\n line-height: 0;\n position: relative;\n vertical-align: baseline;\n}\n\nsub {\n bottom: -0.25em;\n}\n\nsup {\n top: -0.5em;\n}\n\n/* Embedded content\n ========================================================================== */\n\n/**\n * Remove the border on images inside links in IE 10.\n */\n\nimg {\n border-style: none;\n}\n\n/* Forms\n ========================================================================== */\n\n/**\n * 1. Change the font styles in all browsers.\n * 2. Remove the margin in Firefox and Safari.\n */\n\nbutton,\ninput,\noptgroup,\nselect,\ntextarea {\n font-family: inherit; /* 1 */\n font-size: 100%; /* 1 */\n line-height: 1.15; /* 1 */\n margin: 0; /* 2 */\n}\n\n/**\n * Show the overflow in IE.\n * 1. Show the overflow in Edge.\n */\n\nbutton,\ninput { /* 1 */\n overflow: visible;\n}\n\n/**\n * Remove the inheritance of text transform in Edge, Firefox, and IE.\n * 1. Remove the inheritance of text transform in Firefox.\n */\n\nbutton,\nselect { /* 1 */\n text-transform: none;\n}\n\n/**\n * Correct the inability to style clickable types in iOS and Safari.\n */\n\nbutton,\n[type=\"button\"],\n[type=\"reset\"],\n[type=\"submit\"] {\n -webkit-appearance: button;\n}\n\n/**\n * Remove the inner border and padding in Firefox.\n */\n\nbutton::-moz-focus-inner,\n[type=\"button\"]::-moz-focus-inner,\n[type=\"reset\"]::-moz-focus-inner,\n[type=\"submit\"]::-moz-focus-inner {\n border-style: none;\n padding: 0;\n}\n\n/**\n * Restore the focus styles unset by the previous rule.\n */\n\nbutton:-moz-focusring,\n[type=\"button\"]:-moz-focusring,\n[type=\"reset\"]:-moz-focusring,\n[type=\"submit\"]:-moz-focusring {\n outline: 1px dotted ButtonText;\n}\n\n/**\n * Correct the padding in Firefox.\n */\n\nfieldset {\n padding: 0.35em 0.75em 0.625em;\n}\n\n/**\n * 1. Correct the text wrapping in Edge and IE.\n * 2. Correct the color inheritance from `fieldset` elements in IE.\n * 3. Remove the padding so developers are not caught out when they zero out\n * `fieldset` elements in all browsers.\n */\n\nlegend {\n box-sizing: border-box; /* 1 */\n color: inherit; /* 2 */\n display: table; /* 1 */\n max-width: 100%; /* 1 */\n padding: 0; /* 3 */\n white-space: normal; /* 1 */\n}\n\n/**\n * Add the correct vertical alignment in Chrome, Firefox, and Opera.\n */\n\nprogress {\n vertical-align: baseline;\n}\n\n/**\n * Remove the default vertical scrollbar in IE 10+.\n */\n\ntextarea {\n overflow: auto;\n}\n\n/**\n * 1. Add the correct box sizing in IE 10.\n * 2. Remove the padding in IE 10.\n */\n\n[type=\"checkbox\"],\n[type=\"radio\"] {\n box-sizing: border-box; /* 1 */\n padding: 0; /* 2 */\n}\n\n/**\n * Correct the cursor style of increment and decrement buttons in Chrome.\n */\n\n[type=\"number\"]::-webkit-inner-spin-button,\n[type=\"number\"]::-webkit-outer-spin-button {\n height: auto;\n}\n\n/**\n * 1. Correct the odd appearance in Chrome and Safari.\n * 2. Correct the outline style in Safari.\n */\n\n[type=\"search\"] {\n -webkit-appearance: textfield; /* 1 */\n outline-offset: -2px; /* 2 */\n}\n\n/**\n * Remove the inner padding in Chrome and Safari on macOS.\n */\n\n[type=\"search\"]::-webkit-search-decoration {\n -webkit-appearance: none;\n}\n\n/**\n * 1. Correct the inability to style clickable types in iOS and Safari.\n * 2. Change font properties to `inherit` in Safari.\n */\n\n::-webkit-file-upload-button {\n -webkit-appearance: button; /* 1 */\n font: inherit; /* 2 */\n}\n\n/* Interactive\n ========================================================================== */\n\n/*\n * Add the correct display in Edge, IE 10+, and Firefox.\n */\n\ndetails {\n display: block;\n}\n\n/*\n * Add the correct display in all browsers.\n */\n\nsummary {\n display: list-item;\n}\n\n/* Misc\n ========================================================================== */\n\n/**\n * Add the correct display in IE 10+.\n */\n\ntemplate {\n display: none;\n}\n\n/**\n * Add the correct display in IE 10.\n */\n\n[hidden] {\n display: none;\n}\n"
},
"$:/themes/tiddlywiki/vanilla/settings/fontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/fontfamily",
"text": "-apple-system, BlinkMacSystemFont, \"Segoe UI\", Helvetica, Arial, sans-serif, \"Apple Color Emoji\", \"Segoe UI Emoji\", \"Segoe UI Symbol\""
},
"$:/themes/tiddlywiki/vanilla/settings/codefontfamily": {
"title": "$:/themes/tiddlywiki/vanilla/settings/codefontfamily",
"text": "\"SFMono-Regular\",Consolas,\"Liberation Mono\",Menlo,Courier,monospace"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment",
"text": "fixed"
},
"$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize": {
"title": "$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize",
"text": "auto"
},
"$:/themes/tiddlywiki/vanilla/sticky": {
"title": "$:/themes/tiddlywiki/vanilla/sticky",
"text": "<$reveal state=\"$:/themes/tiddlywiki/vanilla/options/stickytitles\" type=\"match\" text=\"yes\">\n``\n.tc-tiddler-title {\n\tposition: -webkit-sticky;\n\tposition: -moz-sticky;\n\tposition: -o-sticky;\n\tposition: -ms-sticky;\n\tposition: sticky;\n\ttop: 0px;\n\tbackground: ``<<colour tiddler-background>>``;\n\tz-index: 500;\n}\n\n``\n<$list filter=\"[range[100]]\">\n`.tc-story-river .tc-tiddler-frame:nth-child(100n+`<$text text=<<currentTiddler>>/>`) {\nz-index: `<$text text={{{ [[200]subtract<currentTiddler>] }}}/>`;\n}\n`\n</$list>\n</$reveal>\n"
}
}
}
\define custom-background-datauri()
<$set name="background" value={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}>
<$list filter="[<background>is[image]]">
`background: url(`
<$list filter="[<background>!has[_canonical_uri]]">
`"`<$macrocall $name="datauri" title={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}}/>`"`
</$list>
<$list filter="[<background>has[_canonical_uri]]">
`"`<$view tiddler={{$:/themes/tiddlywiki/vanilla/settings/backgroundimage}} field="_canonical_uri"/>`"`
</$list>
`) center center;`
`background-attachment: `{{$:/themes/tiddlywiki/vanilla/settings/backgroundimageattachment}}`;
-webkit-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
-moz-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
-o-background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;
background-size:` {{$:/themes/tiddlywiki/vanilla/settings/backgroundimagesize}}`;`
</$list>
</$set>
\end
\define if-fluid-fixed(text,hiddenSidebarText)
<$reveal state="$:/themes/tiddlywiki/vanilla/options/sidebarlayout" type="match" text="fluid-fixed">
$text$
<$reveal state="$:/state/sidebar" type="nomatch" text="yes" default="yes">
$hiddenSidebarText$
</$reveal>
</$reveal>
\end
\define if-editor-height-fixed(then,else)
<$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="fixed">
$then$
</$reveal>
<$reveal state="$:/config/TextEditor/EditorHeight/Mode" type="match" text="auto">
$else$
</$reveal>
\end
\rules only filteredtranscludeinline transcludeinline macrodef macrocallinline macrocallblock
/*
** Start with the normalize CSS reset, and then belay some of its effects
*/
{{$:/themes/tiddlywiki/vanilla/reset}}
*, input[type="search"] {
box-sizing: border-box;
-moz-box-sizing: border-box;
-webkit-box-sizing: border-box;
}
html button {
line-height: 1.2;
color: <<colour button-foreground>>;
background: <<colour button-background>>;
border-color: <<colour button-border>>;
}
/*
** Basic element styles
*/
html {
font-family: {{$:/themes/tiddlywiki/vanilla/settings/fontfamily}};
text-rendering: optimizeLegibility; /* Enables kerning and ligatures etc. */
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
}
html:-webkit-full-screen {
background-color: <<colour page-background>>;
}
body.tc-body {
font-size: {{$:/themes/tiddlywiki/vanilla/metrics/fontsize}};
line-height: {{$:/themes/tiddlywiki/vanilla/metrics/lineheight}};
word-wrap: break-word;
<<custom-background-datauri>>
color: <<colour foreground>>;
background-color: <<colour page-background>>;
fill: <<colour foreground>>;
}
<<if-background-attachment """
body.tc-body {
background-color: transparent;
}
""">>
h1, h2, h3, h4, h5, h6 {
line-height: 1.2;
font-weight: 300;
}
pre {
display: block;
padding: 14px;
margin-top: 1em;
margin-bottom: 1em;
word-break: normal;
word-wrap: break-word;
white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};
background-color: <<colour pre-background>>;
border: 1px solid <<colour pre-border>>;
padding: 0 3px 2px;
border-radius: 3px;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};
}
code {
color: <<colour code-foreground>>;
background-color: <<colour code-background>>;
border: 1px solid <<colour code-border>>;
white-space: {{$:/themes/tiddlywiki/vanilla/options/codewrapping}};
padding: 0 3px 2px;
border-radius: 3px;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/codefontfamily}};
}
blockquote {
border-left: 5px solid <<colour blockquote-bar>>;
margin-left: 25px;
padding-left: 10px;
quotes: "\201C""\201D""\2018""\2019";
}
blockquote.tc-big-quote {
font-family: Georgia, serif;
position: relative;
background: <<colour pre-background>>;
border-left: none;
margin-left: 50px;
margin-right: 50px;
padding: 10px;
border-radius: 8px;
}
blockquote.tc-big-quote cite:before {
content: "\2014 \2009";
}
blockquote.tc-big-quote:before {
font-family: Georgia, serif;
color: <<colour blockquote-bar>>;
content: open-quote;
font-size: 8em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
position: absolute;
left: -50px;
top: 42px;
}
blockquote.tc-big-quote:after {
font-family: Georgia, serif;
color: <<colour blockquote-bar>>;
content: close-quote;
font-size: 8em;
line-height: 0.1em;
margin-right: 0.25em;
vertical-align: -0.4em;
position: absolute;
right: -80px;
bottom: -20px;
}
dl dt {
font-weight: bold;
margin-top: 6px;
}
textarea,
input[type=text],
input[type=search],
input[type=""],
input:not([type]) {
color: <<colour foreground>>;
background: <<colour background>>;
}
input[type="checkbox"] {
vertical-align: middle;
}
.tc-muted {
color: <<colour muted-foreground>>;
}
svg.tc-image-button {
padding: 0px 1px 1px 0px;
}
.tc-icon-wrapper > svg {
width: 1em;
height: 1em;
}
kbd {
display: inline-block;
padding: 3px 5px;
font-size: 0.8em;
line-height: 1.2;
color: <<colour foreground>>;
vertical-align: middle;
background-color: <<colour background>>;
border: solid 1px <<colour muted-foreground>>;
border-bottom-color: <<colour muted-foreground>>;
border-radius: 3px;
box-shadow: inset 0 -1px 0 <<colour muted-foreground>>;
}
/*
Markdown likes putting code elements inside pre elements
*/
pre > code {
padding: 0;
border: none;
background-color: inherit;
color: inherit;
}
table {
border: 1px solid <<colour table-border>>;
width: auto;
max-width: 100%;
caption-side: bottom;
margin-top: 1em;
margin-bottom: 1em;
}
table th, table td {
padding: 0 7px 0 7px;
border-top: 1px solid <<colour table-border>>;
border-left: 1px solid <<colour table-border>>;
}
table thead tr td, table th {
background-color: <<colour table-header-background>>;
font-weight: bold;
}
table tfoot tr td {
background-color: <<colour table-footer-background>>;
}
.tc-csv-table {
white-space: nowrap;
}
.tc-tiddler-frame img,
.tc-tiddler-frame svg,
.tc-tiddler-frame canvas,
.tc-tiddler-frame embed,
.tc-tiddler-frame iframe {
max-width: 100%;
}
.tc-tiddler-body > embed,
.tc-tiddler-body > iframe {
width: 100%;
height: 600px;
}
/*
** Links
*/
button.tc-tiddlylink,
a.tc-tiddlylink {
text-decoration: none;
font-weight: 500;
color: <<colour tiddler-link-foreground>>;
-webkit-user-select: inherit; /* Otherwise the draggable attribute makes links impossible to select */
}
.tc-sidebar-lists a.tc-tiddlylink {
color: <<colour sidebar-tiddler-link-foreground>>;
}
.tc-sidebar-lists a.tc-tiddlylink:hover {
color: <<colour sidebar-tiddler-link-foreground-hover>>;
}
button.tc-tiddlylink:hover,
a.tc-tiddlylink:hover {
text-decoration: underline;
}
a.tc-tiddlylink-resolves {
}
a.tc-tiddlylink-shadow {
font-weight: bold;
}
a.tc-tiddlylink-shadow.tc-tiddlylink-resolves {
font-weight: normal;
}
a.tc-tiddlylink-missing {
font-style: italic;
}
a.tc-tiddlylink-external {
text-decoration: underline;
color: <<colour external-link-foreground>>;
background-color: <<colour external-link-background>>;
}
a.tc-tiddlylink-external:visited {
color: <<colour external-link-foreground-visited>>;
background-color: <<colour external-link-background-visited>>;
}
a.tc-tiddlylink-external:hover {
color: <<colour external-link-foreground-hover>>;
background-color: <<colour external-link-background-hover>>;
}
/*
** Drag and drop styles
*/
.tc-tiddler-dragger {
position: relative;
z-index: -10000;
}
.tc-tiddler-dragger-inner {
position: absolute;
top: -1000px;
left: -1000px;
display: inline-block;
padding: 8px 20px;
font-size: 16.9px;
font-weight: bold;
line-height: 20px;
color: <<colour dragger-foreground>>;
text-shadow: 0 1px 0 rgba(0, 0, 0, 1);
white-space: nowrap;
vertical-align: baseline;
background-color: <<colour dragger-background>>;
border-radius: 20px;
}
.tc-tiddler-dragger-cover {
position: absolute;
background-color: <<colour page-background>>;
}
.tc-dropzone {
position: relative;
}
.tc-dropzone.tc-dragover:before {
z-index: 10000;
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
background: <<colour dropzone-background>>;
text-align: center;
content: "<<lingo DropMessage>>";
}
.tc-droppable > .tc-droppable-placeholder {
display: none;
}
.tc-droppable.tc-dragover > .tc-droppable-placeholder {
display: block;
border: 2px dashed <<colour dropzone-background>>;
}
.tc-draggable {
cursor: move;
}
/*
** Plugin reload warning
*/
.tc-plugin-reload-warning {
z-index: 1000;
display: block;
position: fixed;
top: 0;
left: 0;
right: 0;
background: <<colour alert-background>>;
text-align: center;
}
/*
** Buttons
*/
button svg, button img, label svg, label img {
vertical-align: middle;
}
.tc-btn-invisible {
padding: 0;
margin: 0;
background: none;
border: none;
cursor: pointer;
}
.tc-btn-boxed {
font-size: 0.6em;
padding: 0.2em;
margin: 1px;
background: none;
border: 1px solid <<colour tiddler-controls-foreground>>;
border-radius: 0.25em;
}
html body.tc-body .tc-btn-boxed svg {
font-size: 1.6666em;
}
.tc-btn-boxed:hover {
background: <<colour muted-foreground>>;
color: <<colour background>>;
}
html body.tc-body .tc-btn-boxed:hover svg {
fill: <<colour background>>;
}
.tc-btn-rounded {
font-size: 0.5em;
line-height: 2;
padding: 0em 0.3em 0.2em 0.4em;
margin: 1px;
border: 1px solid <<colour muted-foreground>>;
background: <<colour muted-foreground>>;
color: <<colour background>>;
border-radius: 2em;
}
html body.tc-body .tc-btn-rounded svg {
font-size: 1.6666em;
fill: <<colour background>>;
}
.tc-btn-rounded:hover {
border: 1px solid <<colour muted-foreground>>;
background: <<colour background>>;
color: <<colour muted-foreground>>;
}
html body.tc-body .tc-btn-rounded:hover svg {
fill: <<colour muted-foreground>>;
}
.tc-btn-icon svg {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
}
.tc-btn-text {
padding: 0;
margin: 0;
}
/* used for documentation "fake" buttons */
.tc-btn-standard {
line-height: 1.8;
color: #667;
background-color: #e0e0e0;
border: 1px solid #888;
padding: 2px 1px 2px 1px;
margin: 1px 4px 1px 4px;
}
.tc-btn-big-green {
display: inline-block;
padding: 8px;
margin: 4px 8px 4px 8px;
background: <<colour download-background>>;
color: <<colour download-foreground>>;
fill: <<colour download-foreground>>;
border: none;
font-size: 1.2em;
line-height: 1.4em;
text-decoration: none;
}
.tc-btn-big-green svg,
.tc-btn-big-green img {
height: 2em;
width: 2em;
vertical-align: middle;
fill: <<colour download-foreground>>;
}
.tc-sidebar-lists input {
color: <<colour foreground>>;
}
.tc-sidebar-lists button {
color: <<colour sidebar-button-foreground>>;
fill: <<colour sidebar-button-foreground>>;
}
.tc-sidebar-lists button.tc-btn-mini {
color: <<colour sidebar-muted-foreground>>;
}
.tc-sidebar-lists button.tc-btn-mini:hover {
color: <<colour sidebar-muted-foreground-hover>>;
}
button svg.tc-image-button, button .tc-image-button img {
height: 1em;
width: 1em;
}
.tc-unfold-banner {
position: absolute;
padding: 0;
margin: 0;
background: none;
border: none;
width: 100%;
width: calc(100% + 2px);
margin-left: -43px;
text-align: center;
border-top: 2px solid <<colour tiddler-info-background>>;
margin-top: 4px;
}
.tc-unfold-banner:hover {
background: <<colour tiddler-info-background>>;
border-top: 2px solid <<colour tiddler-info-border>>;
}
.tc-unfold-banner svg, .tc-fold-banner svg {
height: 0.75em;
fill: <<colour tiddler-controls-foreground>>;
}
.tc-unfold-banner:hover svg, .tc-fold-banner:hover svg {
fill: <<colour tiddler-controls-foreground-hover>>;
}
.tc-fold-banner {
position: absolute;
padding: 0;
margin: 0;
background: none;
border: none;
width: 23px;
text-align: center;
margin-left: -35px;
top: 6px;
bottom: 6px;
}
.tc-fold-banner:hover {
background: <<colour tiddler-info-background>>;
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-unfold-banner {
position: static;
width: calc(100% + 59px);
}
.tc-fold-banner {
width: 16px;
margin-left: -16px;
font-size: 0.75em;
}
}
/*
** Tags and missing tiddlers
*/
.tc-tag-list-item {
position: relative;
display: inline-block;
margin-right: 7px;
}
.tc-tags-wrapper {
margin: 4px 0 14px 0;
}
.tc-missing-tiddler-label {
font-style: italic;
font-weight: normal;
display: inline-block;
font-size: 11.844px;
line-height: 14px;
white-space: nowrap;
vertical-align: baseline;
}
button.tc-tag-label, span.tc-tag-label {
display: inline-block;
padding: 0.16em 0.7em;
font-size: 0.9em;
font-weight: 400;
line-height: 1.2em;
color: <<colour tag-foreground>>;
white-space: nowrap;
vertical-align: baseline;
background-color: <<colour tag-background>>;
border-radius: 1em;
}
.tc-untagged-separator {
width: 10em;
left: 0;
margin-left: 0;
border: 0;
height: 1px;
background: <<colour tab-divider>>;
}
button.tc-untagged-label {
background-color: <<colour untagged-background>>;
}
.tc-tag-label svg, .tc-tag-label img {
height: 1em;
width: 1em;
fill: <<colour tag-foreground>>;
vertical-align: text-bottom;
}
.tc-tag-manager-table .tc-tag-label {
white-space: normal;
}
.tc-tag-manager-tag {
width: 100%;
}
/*
** Page layout
*/
.tc-topbar {
position: fixed;
z-index: 1200;
}
.tc-topbar-left {
left: 29px;
top: 5px;
}
.tc-topbar-right {
top: 5px;
right: 29px;
}
.tc-topbar button {
padding: 8px;
}
.tc-topbar svg {
fill: <<colour muted-foreground>>;
}
.tc-topbar button:hover svg {
fill: <<colour foreground>>;
}
.tc-sidebar-header {
color: <<colour sidebar-foreground>>;
fill: <<colour sidebar-foreground>>;
}
.tc-sidebar-header .tc-title a.tc-tiddlylink-resolves {
font-weight: 300;
}
.tc-sidebar-header .tc-sidebar-lists p {
margin-top: 3px;
margin-bottom: 3px;
}
.tc-sidebar-header .tc-missing-tiddler-label {
color: <<colour sidebar-foreground>>;
}
.tc-advanced-search input {
width: 60%;
}
.tc-search a svg {
width: 1.2em;
height: 1.2em;
vertical-align: middle;
}
.tc-page-controls {
margin-top: 14px;
font-size: 1.5em;
}
.tc-page-controls .tc-drop-down {
font-size: 1rem;
}
.tc-page-controls button {
margin-right: 0.5em;
}
.tc-page-controls a.tc-tiddlylink:hover {
text-decoration: none;
}
.tc-page-controls img {
width: 1em;
}
.tc-page-controls svg {
fill: <<colour sidebar-controls-foreground>>;
}
.tc-page-controls button:hover svg, .tc-page-controls a:hover svg {
fill: <<colour sidebar-controls-foreground-hover>>;
}
.tc-menu-list-item {
white-space: nowrap;
}
.tc-menu-list-count {
font-weight: bold;
}
.tc-menu-list-subitem {
padding-left: 7px;
}
.tc-story-river {
position: relative;
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-sidebar-header {
padding: 14px;
min-height: 32px;
margin-top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
}
.tc-story-river {
position: relative;
padding: 0;
}
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-message-box {
margin: 21px -21px 21px -21px;
}
.tc-sidebar-scrollable {
position: fixed;
top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
left: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};
bottom: 0;
right: 0;
overflow-y: auto;
overflow-x: auto;
-webkit-overflow-scrolling: touch;
margin: 0 0 0 -42px;
padding: 71px 0 28px 42px;
}
html[dir="rtl"] .tc-sidebar-scrollable {
left: auto;
right: {{$:/themes/tiddlywiki/vanilla/metrics/storyright}};
}
.tc-story-river {
position: relative;
left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};
top: {{$:/themes/tiddlywiki/vanilla/metrics/storytop}};
width: {{$:/themes/tiddlywiki/vanilla/metrics/storywidth}};
padding: 42px 42px 42px 42px;
}
<<if-no-sidebar "
.tc-story-river {
width: calc(100% - {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}});
}
">>
}
@media print {
body.tc-body {
background-color: transparent;
}
.tc-sidebar-header, .tc-topbar {
display: none;
}
.tc-story-river {
margin: 0;
padding: 0;
}
.tc-story-river .tc-tiddler-frame {
margin: 0;
border: none;
padding: 0;
}
}
/*
** Tiddler styles
*/
.tc-tiddler-frame {
position: relative;
margin-bottom: 28px;
background-color: <<colour tiddler-background>>;
border: 1px solid <<colour tiddler-border>>;
}
{{$:/themes/tiddlywiki/vanilla/sticky}}
.tc-tiddler-info {
padding: 14px 42px 14px 42px;
background-color: <<colour tiddler-info-background>>;
border-top: 1px solid <<colour tiddler-info-border>>;
border-bottom: 1px solid <<colour tiddler-info-border>>;
}
.tc-tiddler-info p {
margin-top: 3px;
margin-bottom: 3px;
}
.tc-tiddler-info .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour tiddler-info-tab-background>>;
border-bottom: 1px solid <<colour tiddler-info-tab-background>>;
}
.tc-view-field-table {
width: 100%;
}
.tc-view-field-name {
width: 1%; /* Makes this column be as narrow as possible */
text-align: right;
font-style: italic;
font-weight: 200;
}
.tc-view-field-value {
}
@media (max-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-tiddler-frame {
padding: 14px 14px 14px 14px;
}
.tc-tiddler-info {
margin: 0 -14px 0 -14px;
}
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-tiddler-frame {
padding: 28px 42px 42px 42px;
width: {{$:/themes/tiddlywiki/vanilla/metrics/tiddlerwidth}};
border-radius: 2px;
}
<<if-no-sidebar "
.tc-tiddler-frame {
width: 100%;
}
">>
.tc-tiddler-info {
margin: 0 -42px 0 -42px;
}
}
.tc-site-title,
.tc-titlebar {
font-weight: 300;
font-size: 2.35em;
line-height: 1.2em;
color: <<colour tiddler-title-foreground>>;
margin: 0;
}
.tc-site-title {
color: <<colour site-title-foreground>>;
}
.tc-tiddler-title-icon {
vertical-align: middle;
}
.tc-system-title-prefix {
color: <<colour muted-foreground>>;
}
.tc-titlebar h2 {
font-size: 1em;
display: inline;
}
.tc-titlebar img {
height: 1em;
}
.tc-subtitle {
font-size: 0.9em;
color: <<colour tiddler-subtitle-foreground>>;
font-weight: 300;
}
.tc-tiddler-missing .tc-title {
font-style: italic;
font-weight: normal;
}
.tc-tiddler-frame .tc-tiddler-controls {
float: right;
}
.tc-tiddler-controls .tc-drop-down {
font-size: 0.6em;
}
.tc-tiddler-controls .tc-drop-down .tc-drop-down {
font-size: 1em;
}
.tc-tiddler-controls > span > button,
.tc-tiddler-controls > span > span > button,
.tc-tiddler-controls > span > span > span > button {
vertical-align: baseline;
margin-left:5px;
}
.tc-tiddler-controls button svg, .tc-tiddler-controls button img,
.tc-search button svg, .tc-search a svg {
fill: <<colour tiddler-controls-foreground>>;
}
.tc-tiddler-controls button svg, .tc-tiddler-controls button img {
height: 0.5em;
}
.tc-search button svg, .tc-search a svg {
height: 1.2em;
width: 1.2em;
margin: 0 0.25em;
}
.tc-tiddler-controls button.tc-selected svg,
.tc-page-controls button.tc-selected svg {
fill: <<colour tiddler-controls-foreground-selected>>;
}
.tc-tiddler-controls button.tc-btn-invisible:hover svg,
.tc-search button:hover svg, .tc-search a:hover svg {
fill: <<colour tiddler-controls-foreground-hover>>;
}
@media print {
.tc-tiddler-controls {
display: none;
}
}
.tc-tiddler-help { /* Help prompts within tiddler template */
color: <<colour muted-foreground>>;
margin-top: 14px;
}
.tc-tiddler-help a.tc-tiddlylink {
color: <<colour very-muted-foreground>>;
}
.tc-tiddler-frame .tc-edit-texteditor {
width: 100%;
margin: 4px 0 4px 0;
}
.tc-tiddler-frame input.tc-edit-texteditor,
.tc-tiddler-frame textarea.tc-edit-texteditor,
.tc-tiddler-frame iframe.tc-edit-texteditor {
padding: 3px 3px 3px 3px;
border: 1px solid <<colour tiddler-editor-border>>;
background-color: <<colour tiddler-editor-background>>;
line-height: 1.3em;
-webkit-appearance: none;
font-family: {{$:/themes/tiddlywiki/vanilla/settings/editorfontfamily}};
}
.tc-tiddler-frame .tc-binary-warning {
width: 100%;
height: 5em;
text-align: center;
padding: 3em 3em 6em 3em;
background: <<colour alert-background>>;
border: 1px solid <<colour alert-border>>;
}
canvas.tc-edit-bitmapeditor {
border: 6px solid <<colour tiddler-editor-border-image>>;
cursor: crosshair;
-moz-user-select: none;
-webkit-user-select: none;
-ms-user-select: none;
margin-top: 6px;
margin-bottom: 6px;
}
.tc-edit-bitmapeditor-width {
display: block;
}
.tc-edit-bitmapeditor-height {
display: block;
}
.tc-tiddler-body {
clear: both;
}
.tc-tiddler-frame .tc-tiddler-body {
font-size: {{$:/themes/tiddlywiki/vanilla/metrics/bodyfontsize}};
line-height: {{$:/themes/tiddlywiki/vanilla/metrics/bodylineheight}};
}
.tc-titlebar, .tc-tiddler-edit-title {
overflow: hidden; /* https://github.com/Jermolene/TiddlyWiki5/issues/282 */
}
html body.tc-body.tc-single-tiddler-window {
margin: 1em;
background: <<colour tiddler-background>>;
}
.tc-single-tiddler-window img,
.tc-single-tiddler-window svg,
.tc-single-tiddler-window canvas,
.tc-single-tiddler-window embed,
.tc-single-tiddler-window iframe {
max-width: 100%;
}
/*
** Editor
*/
.tc-editor-toolbar {
margin-top: 8px;
}
.tc-editor-toolbar button {
vertical-align: middle;
background-color: <<colour tiddler-controls-foreground>>;
fill: <<colour tiddler-controls-foreground-selected>>;
border-radius: 4px;
padding: 3px;
margin: 2px 0 2px 4px;
}
.tc-editor-toolbar button.tc-text-editor-toolbar-item-adjunct {
margin-left: 1px;
width: 1em;
border-radius: 8px;
}
.tc-editor-toolbar button.tc-text-editor-toolbar-item-start-group {
margin-left: 11px;
}
.tc-editor-toolbar button.tc-selected {
background-color: <<colour primary>>;
}
.tc-editor-toolbar button svg {
width: 1.6em;
height: 1.2em;
}
.tc-editor-toolbar button:hover {
background-color: <<colour tiddler-controls-foreground-selected>>;
fill: <<colour background>>;
}
.tc-editor-toolbar .tc-text-editor-toolbar-more {
white-space: normal;
}
.tc-editor-toolbar .tc-text-editor-toolbar-more button {
display: inline-block;
padding: 3px;
width: auto;
}
.tc-editor-toolbar .tc-search-results {
padding: 0;
}
/*
** Adjustments for fluid-fixed mode
*/
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
<<if-fluid-fixed text:"""
.tc-story-river {
padding-right: 0;
position: relative;
width: auto;
left: 0;
margin-left: {{$:/themes/tiddlywiki/vanilla/metrics/storyleft}};
margin-right: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};
}
.tc-tiddler-frame {
width: 100%;
}
.tc-sidebar-scrollable {
left: auto;
bottom: 0;
right: 0;
width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarwidth}};
}
body.tc-body .tc-storyview-zoomin-tiddler {
width: 100%;
width: calc(100% - 42px);
}
""" hiddenSidebarText:"""
.tc-story-river {
padding-right: 3em;
margin-right: 0;
}
body.tc-body .tc-storyview-zoomin-tiddler {
width: 100%;
width: calc(100% - 84px);
}
""">>
}
/*
** Toolbar buttons
*/
.tc-page-controls svg.tc-image-new-button {
fill: <<colour toolbar-new-button>>;
}
.tc-page-controls svg.tc-image-options-button {
fill: <<colour toolbar-options-button>>;
}
.tc-page-controls svg.tc-image-save-button {
fill: <<colour toolbar-save-button>>;
}
.tc-tiddler-controls button svg.tc-image-info-button {
fill: <<colour toolbar-info-button>>;
}
.tc-tiddler-controls button svg.tc-image-edit-button {
fill: <<colour toolbar-edit-button>>;
}
.tc-tiddler-controls button svg.tc-image-close-button {
fill: <<colour toolbar-close-button>>;
}
.tc-tiddler-controls button svg.tc-image-delete-button {
fill: <<colour toolbar-delete-button>>;
}
.tc-tiddler-controls button svg.tc-image-cancel-button {
fill: <<colour toolbar-cancel-button>>;
}
.tc-tiddler-controls button svg.tc-image-done-button {
fill: <<colour toolbar-done-button>>;
}
/*
** Tiddler edit mode
*/
.tc-tiddler-edit-frame em.tc-edit {
color: <<colour muted-foreground>>;
font-style: normal;
}
.tc-edit-type-dropdown a.tc-tiddlylink-missing {
font-style: normal;
}
.tc-edit-tags {
border: 1px solid <<colour tiddler-editor-border>>;
padding: 4px 8px 4px 8px;
}
.tc-edit-add-tag {
display: inline-block;
}
.tc-edit-add-tag .tc-add-tag-name input {
width: 50%;
}
.tc-edit-add-tag .tc-keyboard {
display:inline;
}
.tc-edit-tags .tc-tag-label {
display: inline-block;
}
.tc-edit-tags-list {
margin: 14px 0 14px 0;
}
.tc-remove-tag-button {
padding-left: 4px;
}
.tc-tiddler-preview {
overflow: auto;
}
.tc-tiddler-preview-preview {
float: right;
width: 49%;
border: 1px solid <<colour tiddler-editor-border>>;
margin: 4px 0 3px 3px;
padding: 3px 3px 3px 3px;
}
<<if-editor-height-fixed then:"""
.tc-tiddler-preview-preview {
overflow-y: scroll;
height: {{$:/config/TextEditor/EditorHeight/Height}};
}
""">>
.tc-tiddler-frame .tc-tiddler-preview .tc-edit-texteditor {
width: 49%;
}
.tc-tiddler-frame .tc-tiddler-preview canvas.tc-edit-bitmapeditor {
max-width: 49%;
}
.tc-edit-fields {
width: 100%;
}
.tc-edit-fields table, .tc-edit-fields tr, .tc-edit-fields td {
border: none;
padding: 4px;
}
.tc-edit-fields > tbody > .tc-edit-field:nth-child(odd) {
background-color: <<colour tiddler-editor-fields-odd>>;
}
.tc-edit-fields > tbody > .tc-edit-field:nth-child(even) {
background-color: <<colour tiddler-editor-fields-even>>;
}
.tc-edit-field-name {
text-align: right;
}
.tc-edit-field-value input {
width: 100%;
}
.tc-edit-field-remove {
}
.tc-edit-field-remove svg {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
vertical-align: middle;
}
.tc-edit-field-add-name {
display: inline-block;
width: 15%;
}
.tc-edit-field-add-value {
display: inline-block;
width: 40%;
}
.tc-edit-field-add-button {
display: inline-block;
width: 10%;
}
/*
** Storyview Classes
*/
.tc-storyview-zoomin-tiddler {
position: absolute;
display: block;
width: 100%;
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-storyview-zoomin-tiddler {
width: calc(100% - 84px);
}
}
/*
** Dropdowns
*/
.tc-btn-dropdown {
text-align: left;
}
.tc-btn-dropdown svg, .tc-btn-dropdown img {
height: 1em;
width: 1em;
fill: <<colour muted-foreground>>;
}
.tc-drop-down-wrapper {
position: relative;
}
.tc-drop-down {
min-width: 380px;
border: 1px solid <<colour dropdown-border>>;
background-color: <<colour dropdown-background>>;
padding: 7px 0 7px 0;
margin: 4px 0 0 0;
white-space: nowrap;
text-shadow: none;
line-height: 1.4;
}
.tc-drop-down .tc-drop-down {
margin-left: 14px;
}
.tc-drop-down button svg, .tc-drop-down a svg {
fill: <<colour foreground>>;
}
.tc-drop-down button.tc-btn-invisible:hover svg {
fill: <<colour foreground>>;
}
.tc-drop-down p {
padding: 0 14px 0 14px;
}
.tc-drop-down svg {
width: 1em;
height: 1em;
}
.tc-drop-down img {
width: 1em;
}
.tc-drop-down a, .tc-drop-down button {
display: block;
padding: 0 14px 0 14px;
width: 100%;
text-align: left;
color: <<colour foreground>>;
line-height: 1.4;
}
.tc-drop-down .tc-tab-set .tc-tab-buttons button {
display: inline-block;
width: auto;
margin-bottom: 0px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.tc-drop-down .tc-prompt {
padding: 0 14px;
}
.tc-drop-down .tc-chooser {
border: none;
}
.tc-drop-down .tc-chooser .tc-swatches-horiz {
font-size: 0.4em;
padding-left: 1.2em;
}
.tc-drop-down .tc-file-input-wrapper {
width: 100%;
}
.tc-drop-down .tc-file-input-wrapper button {
color: <<colour foreground>>;
}
.tc-drop-down a:hover, .tc-drop-down button:hover, .tc-drop-down .tc-file-input-wrapper:hover button {
color: <<colour tiddler-link-background>>;
background-color: <<colour tiddler-link-foreground>>;
text-decoration: none;
}
.tc-drop-down .tc-tab-buttons button {
background-color: <<colour dropdown-tab-background>>;
}
.tc-drop-down .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour dropdown-tab-background-selected>>;
border-bottom: 1px solid <<colour dropdown-tab-background-selected>>;
}
.tc-drop-down-bullet {
display: inline-block;
width: 0.5em;
}
.tc-drop-down .tc-tab-contents a {
padding: 0 0.5em 0 0.5em;
}
.tc-block-dropdown-wrapper {
position: relative;
}
.tc-block-dropdown {
position: absolute;
min-width: 220px;
border: 1px solid <<colour dropdown-border>>;
background-color: <<colour dropdown-background>>;
padding: 7px 0;
margin: 4px 0 0 0;
white-space: nowrap;
z-index: 1000;
text-shadow: none;
}
.tc-block-dropdown.tc-search-drop-down {
margin-left: -12px;
}
.tc-block-dropdown a {
display: block;
padding: 4px 14px 4px 14px;
}
.tc-block-dropdown.tc-search-drop-down a {
display: block;
padding: 0px 10px 0px 10px;
}
.tc-drop-down .tc-dropdown-item-plain,
.tc-block-dropdown .tc-dropdown-item-plain {
padding: 4px 14px 4px 7px;
}
.tc-drop-down .tc-dropdown-item,
.tc-block-dropdown .tc-dropdown-item {
padding: 4px 14px 4px 7px;
color: <<colour muted-foreground>>;
}
.tc-block-dropdown a:hover {
color: <<colour tiddler-link-background>>;
background-color: <<colour tiddler-link-foreground>>;
text-decoration: none;
}
.tc-search-results {
padding: 0 7px 0 7px;
}
.tc-image-chooser, .tc-colour-chooser {
white-space: normal;
}
.tc-image-chooser a,
.tc-colour-chooser a {
display: inline-block;
vertical-align: top;
text-align: center;
position: relative;
}
.tc-image-chooser a {
border: 1px solid <<colour muted-foreground>>;
padding: 2px;
margin: 2px;
width: 4em;
height: 4em;
}
.tc-colour-chooser a {
padding: 3px;
width: 2em;
height: 2em;
vertical-align: middle;
}
.tc-image-chooser a:hover,
.tc-colour-chooser a:hover {
background: <<colour primary>>;
padding: 0px;
border: 3px solid <<colour primary>>;
}
.tc-image-chooser a svg,
.tc-image-chooser a img {
display: inline-block;
width: auto;
height: auto;
max-width: 3.5em;
max-height: 3.5em;
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
margin: auto;
}
/*
** Modals
*/
.tc-modal-wrapper {
position: fixed;
overflow: auto;
overflow-y: scroll;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 900;
}
.tc-modal-backdrop {
position: fixed;
top: 0;
right: 0;
bottom: 0;
left: 0;
z-index: 1000;
background-color: <<colour modal-backdrop>>;
}
.tc-modal {
z-index: 1100;
background-color: <<colour modal-background>>;
border: 1px solid <<colour modal-border>>;
}
@media (max-width: 55em) {
.tc-modal {
position: fixed;
top: 1em;
left: 1em;
right: 1em;
}
.tc-modal-body {
overflow-y: auto;
max-height: 400px;
max-height: 60vh;
}
}
@media (min-width: 55em) {
.tc-modal {
position: fixed;
top: 2em;
left: 25%;
width: 50%;
}
.tc-modal-body {
overflow-y: auto;
max-height: 400px;
max-height: 60vh;
}
}
.tc-modal-header {
padding: 9px 15px;
border-bottom: 1px solid <<colour modal-header-border>>;
}
.tc-modal-header h3 {
margin: 0;
line-height: 30px;
}
.tc-modal-header img, .tc-modal-header svg {
width: 1em;
height: 1em;
}
.tc-modal-body {
padding: 15px;
}
.tc-modal-footer {
padding: 14px 15px 15px;
margin-bottom: 0;
text-align: right;
background-color: <<colour modal-footer-background>>;
border-top: 1px solid <<colour modal-footer-border>>;
}
/*
** Notifications
*/
.tc-notification {
position: fixed;
top: 14px;
right: 42px;
z-index: 1300;
max-width: 280px;
padding: 0 14px 0 14px;
background-color: <<colour notification-background>>;
border: 1px solid <<colour notification-border>>;
}
/*
** Tabs
*/
.tc-tab-set.tc-vertical {
display: -webkit-flex;
display: flex;
}
.tc-tab-buttons {
font-size: 0.85em;
padding-top: 1em;
margin-bottom: -2px;
}
.tc-tab-buttons.tc-vertical {
z-index: 100;
display: block;
padding-top: 14px;
vertical-align: top;
text-align: right;
margin-bottom: inherit;
margin-right: -1px;
max-width: 33%;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
}
.tc-tab-buttons button.tc-tab-selected {
color: <<colour tab-foreground-selected>>;
background-color: <<colour tab-background-selected>>;
border-left: 1px solid <<colour tab-border-selected>>;
border-top: 1px solid <<colour tab-border-selected>>;
border-right: 1px solid <<colour tab-border-selected>>;
}
.tc-tab-buttons button {
color: <<colour tab-foreground>>;
padding: 3px 5px 3px 5px;
margin-right: 0.3em;
font-weight: 300;
border: none;
background: inherit;
background-color: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-top: 1px solid <<colour tab-border>>;
border-right: 1px solid <<colour tab-border>>;
border-top-left-radius: 2px;
border-top-right-radius: 2px;
border-bottom-left-radius: 0;
border-bottom-right-radius: 0;
}
.tc-tab-buttons.tc-vertical button {
display: block;
width: 100%;
margin-top: 3px;
margin-right: 0;
text-align: right;
background-color: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
border-right: none;
border-top-left-radius: 2px;
border-bottom-left-radius: 2px;
border-top-right-radius: 0;
border-bottom-right-radius: 0;
}
.tc-tab-buttons.tc-vertical button.tc-tab-selected {
background-color: <<colour tab-background-selected>>;
border-right: 1px solid <<colour tab-background-selected>>;
}
.tc-tab-divider {
border-top: 1px solid <<colour tab-divider>>;
}
.tc-tab-divider.tc-vertical {
display: none;
}
.tc-tab-content {
margin-top: 14px;
}
.tc-tab-content.tc-vertical {
word-break: break-word;
display: inline-block;
vertical-align: top;
padding-top: 0;
padding-left: 14px;
border-left: 1px solid <<colour tab-border>>;
-webkit-flex: 1 0 70%;
flex: 1 0 70%;
}
.tc-sidebar-lists .tc-tab-buttons {
margin-bottom: -1px;
}
.tc-sidebar-lists .tc-tab-buttons button.tc-tab-selected {
background-color: <<colour sidebar-tab-background-selected>>;
color: <<colour sidebar-tab-foreground-selected>>;
border-left: 1px solid <<colour sidebar-tab-border-selected>>;
border-top: 1px solid <<colour sidebar-tab-border-selected>>;
border-right: 1px solid <<colour sidebar-tab-border-selected>>;
}
.tc-sidebar-lists .tc-tab-buttons button {
background-color: <<colour sidebar-tab-background>>;
color: <<colour sidebar-tab-foreground>>;
border-left: 1px solid <<colour sidebar-tab-border>>;
border-top: 1px solid <<colour sidebar-tab-border>>;
border-right: 1px solid <<colour sidebar-tab-border>>;
}
.tc-sidebar-lists .tc-tab-divider {
border-top: 1px solid <<colour sidebar-tab-divider>>;
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button {
display: block;
width: 100%;
background-color: <<colour sidebar-tab-background>>;
border-top: none;
border-left: none;
border-bottom: none;
border-right: 1px solid #ccc;
margin-bottom: inherit;
}
.tc-more-sidebar > .tc-tab-set > .tc-tab-buttons > button.tc-tab-selected {
background-color: <<colour sidebar-tab-background-selected>>;
border: none;
}
/*
** Manager
*/
.tc-manager-wrapper {
}
.tc-manager-controls {
}
.tc-manager-control {
margin: 0.5em 0;
}
.tc-manager-list {
width: 100%;
border-top: 1px solid <<colour muted-foreground>>;
border-left: 1px solid <<colour muted-foreground>>;
border-right: 1px solid <<colour muted-foreground>>;
}
.tc-manager-list-item {
}
.tc-manager-list-item-heading {
display: block;
width: 100%;
text-align: left;
border-bottom: 1px solid <<colour muted-foreground>>;
padding: 3px;
}
.tc-manager-list-item-heading-selected {
font-weight: bold;
color: <<colour background>>;
fill: <<colour background>>;
background-color: <<colour foreground>>;
}
.tc-manager-list-item-heading:hover {
background: <<colour primary>>;
color: <<colour background>>;
}
.tc-manager-list-item-content {
display: flex;
}
.tc-manager-list-item-content-sidebar {
flex: 1 0;
background: <<colour tiddler-editor-background>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
white-space: nowrap;
}
.tc-manager-list-item-content-item-heading {
display: block;
width: 100%;
text-align: left;
background: <<colour muted-foreground>>;
text-transform: uppercase;
font-size: 0.6em;
font-weight: bold;
padding: 0.5em 0 0.5em 0;
}
.tc-manager-list-item-content-item-body {
padding: 0 0.5em 0 0.5em;
}
.tc-manager-list-item-content-item-body > pre {
margin: 0.5em 0 0.5em 0;
border: none;
background: inherit;
}
.tc-manager-list-item-content-tiddler {
flex: 3 1;
border-left: 0.5em solid <<colour muted-foreground>>;
border-right: 0.5em solid <<colour muted-foreground>>;
border-bottom: 0.5em solid <<colour muted-foreground>>;
}
.tc-manager-list-item-content-item-body > table {
border: none;
padding: 0;
margin: 0;
}
.tc-manager-list-item-content-item-body > table td {
border: none;
}
.tc-manager-icon-editor > button {
width: 100%;
}
.tc-manager-icon-editor > button > svg,
.tc-manager-icon-editor > button > button {
width: 100%;
height: auto;
}
/*
** Alerts
*/
.tc-alerts {
position: fixed;
top: 0;
left: 0;
max-width: 500px;
z-index: 20000;
}
.tc-alert {
position: relative;
margin: 28px;
padding: 14px 14px 14px 14px;
border: 2px solid <<colour alert-border>>;
background-color: <<colour alert-background>>;
}
.tc-alert-toolbar {
position: absolute;
top: 14px;
right: 14px;
}
.tc-alert-toolbar svg {
fill: <<colour alert-muted-foreground>>;
}
.tc-alert-subtitle {
color: <<colour alert-muted-foreground>>;
font-weight: bold;
}
.tc-alert-highlight {
color: <<colour alert-highlight>>;
}
@media (min-width: {{$:/themes/tiddlywiki/vanilla/metrics/sidebarbreakpoint}}) {
.tc-static-alert {
position: relative;
}
.tc-static-alert-inner {
position: absolute;
z-index: 100;
}
}
.tc-static-alert-inner {
padding: 0 2px 2px 42px;
color: <<colour static-alert-foreground>>;
}
/*
** Control panel
*/
.tc-control-panel td {
padding: 4px;
}
.tc-control-panel table, .tc-control-panel table input, .tc-control-panel table textarea {
width: 100%;
}
.tc-plugin-info {
display: block;
border: 1px solid <<colour muted-foreground>>;
background-colour: <<colour background>>;
margin: 0.5em 0 0.5em 0;
padding: 4px;
}
.tc-plugin-info-disabled {
background: -webkit-repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
background: repeating-linear-gradient(45deg, #ff0, #ff0 10px, #eee 10px, #eee 20px);
}
.tc-plugin-info-disabled:hover {
background: -webkit-repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
background: repeating-linear-gradient(45deg, #aa0, #aa0 10px, #888 10px, #888 20px);
}
a.tc-tiddlylink.tc-plugin-info:hover {
text-decoration: none;
background-color: <<colour primary>>;
color: <<colour background>>;
fill: <<colour foreground>>;
}
a.tc-tiddlylink.tc-plugin-info:hover .tc-plugin-info > .tc-plugin-info-chunk > svg {
fill: <<colour foreground>>;
}
.tc-plugin-info-chunk {
display: inline-block;
vertical-align: middle;
}
.tc-plugin-info-chunk h1 {
font-size: 1em;
margin: 2px 0 2px 0;
}
.tc-plugin-info-chunk h2 {
font-size: 0.8em;
margin: 2px 0 2px 0;
}
.tc-plugin-info-chunk div {
font-size: 0.7em;
margin: 2px 0 2px 0;
}
.tc-plugin-info:hover > .tc-plugin-info-chunk > img, .tc-plugin-info:hover > .tc-plugin-info-chunk > svg {
width: 2em;
height: 2em;
fill: <<colour foreground>>;
}
.tc-plugin-info > .tc-plugin-info-chunk > img, .tc-plugin-info > .tc-plugin-info-chunk > svg {
width: 2em;
height: 2em;
fill: <<colour muted-foreground>>;
}
.tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > img, .tc-plugin-info.tc-small-icon > .tc-plugin-info-chunk > svg {
width: 1em;
height: 1em;
}
.tc-plugin-info-dropdown {
border: 1px solid <<colour muted-foreground>>;
margin-top: -8px;
}
.tc-plugin-info-dropdown-message {
background: <<colour message-background>>;
padding: 0.5em 1em 0.5em 1em;
font-weight: bold;
font-size: 0.8em;
}
.tc-plugin-info-dropdown-body {
padding: 1em 1em 1em 1em;
}
.tc-check-list {
line-height: 2em;
}
.tc-check-list .tc-image-button {
height: 1.5em;
}
/*
** Message boxes
*/
.tc-message-box {
border: 1px solid <<colour message-border>>;
background: <<colour message-background>>;
padding: 0px 21px 0px 21px;
font-size: 12px;
line-height: 18px;
color: <<colour message-foreground>>;
}
.tc-message-box svg {
width: 1em;
height: 1em;
vertical-align: text-bottom;
}
/*
** Pictures
*/
.tc-bordered-image {
border: 1px solid <<colour muted-foreground>>;
padding: 5px;
margin: 5px;
}
/*
** Floats
*/
.tc-float-right {
float: right;
}
/*
** Chooser
*/
.tc-chooser {
border-right: 1px solid <<colour table-header-background>>;
border-left: 1px solid <<colour table-header-background>>;
}
.tc-chooser-item {
border-bottom: 1px solid <<colour table-header-background>>;
border-top: 1px solid <<colour table-header-background>>;
padding: 2px 4px 2px 14px;
}
.tc-drop-down .tc-chooser-item {
padding: 2px;
}
.tc-chosen,
.tc-chooser-item:hover {
background-color: <<colour table-header-background>>;
border-color: <<colour table-footer-background>>;
}
.tc-chosen .tc-tiddlylink {
cursor:default;
}
.tc-chooser-item .tc-tiddlylink {
display: block;
text-decoration: none;
background-color: transparent;
}
.tc-chooser-item:hover .tc-tiddlylink:hover {
text-decoration: none;
}
.tc-drop-down .tc-chosen .tc-tiddlylink,
.tc-drop-down .tc-chooser-item .tc-tiddlylink:hover {
color: <<colour foreground>>;
}
.tc-chosen > .tc-tiddlylink:before {
margin-left: -10px;
position: relative;
content: "» ";
}
.tc-chooser-item svg,
.tc-chooser-item img{
width: 1em;
height: 1em;
vertical-align: middle;
}
.tc-language-chooser .tc-image-button img {
width: 2em;
vertical-align: -0.15em;
}
/*
** Palette swatches
*/
.tc-swatches-horiz {
}
.tc-swatches-horiz .tc-swatch {
display: inline-block;
}
.tc-swatch {
width: 2em;
height: 2em;
margin: 0.4em;
border: 1px solid #888;
}
/*
** Table of contents
*/
.tc-sidebar-lists .tc-table-of-contents {
white-space: nowrap;
}
.tc-table-of-contents button {
color: <<colour sidebar-foreground>>;
}
.tc-table-of-contents svg {
width: 0.7em;
height: 0.7em;
vertical-align: middle;
fill: <<colour sidebar-foreground>>;
}
.tc-table-of-contents ol {
list-style-type: none;
padding-left: 0;
}
.tc-table-of-contents ol ol {
padding-left: 1em;
}
.tc-table-of-contents li {
font-size: 1.0em;
font-weight: bold;
}
.tc-table-of-contents li a {
font-weight: bold;
}
.tc-table-of-contents li li {
font-size: 0.95em;
font-weight: normal;
line-height: 1.4;
}
.tc-table-of-contents li li a {
font-weight: normal;
}
.tc-table-of-contents li li li {
font-size: 0.95em;
font-weight: 200;
line-height: 1.5;
}
.tc-table-of-contents li li li li {
font-size: 0.95em;
font-weight: 200;
}
.tc-tabbed-table-of-contents {
display: -webkit-flex;
display: flex;
}
.tc-tabbed-table-of-contents .tc-table-of-contents {
z-index: 100;
display: inline-block;
padding-left: 1em;
max-width: 50%;
-webkit-flex: 0 0 auto;
flex: 0 0 auto;
background: <<colour tab-background>>;
border-left: 1px solid <<colour tab-border>>;
border-top: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a,
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
display: block;
padding: 0.12em 1em 0.12em 0.25em;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a {
border-top: 1px solid <<colour tab-background>>;
border-left: 1px solid <<colour tab-background>>;
border-bottom: 1px solid <<colour tab-background>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item > a:hover {
text-decoration: none;
border-top: 1px solid <<colour tab-border>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
background: <<colour tab-border>>;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a {
border-top: 1px solid <<colour tab-border>>;
border-left: 1px solid <<colour tab-border>>;
border-bottom: 1px solid <<colour tab-border>>;
background: <<colour background>>;
margin-right: -1px;
}
.tc-tabbed-table-of-contents .tc-table-of-contents .toc-item-selected > a:hover {
text-decoration: none;
}
.tc-tabbed-table-of-contents .tc-tabbed-table-of-contents-content {
display: inline-block;
vertical-align: top;
padding-left: 1.5em;
padding-right: 1.5em;
border: 1px solid <<colour tab-border>>;
-webkit-flex: 1 0 50%;
flex: 1 0 50%;
}
/*
** Dirty indicator
*/
body.tc-dirty span.tc-dirty-indicator, body.tc-dirty span.tc-dirty-indicator svg {
fill: <<colour dirty-indicator>>;
color: <<colour dirty-indicator>>;
}
/*
** File inputs
*/
.tc-file-input-wrapper {
position: relative;
overflow: hidden;
display: inline-block;
vertical-align: middle;
}
.tc-file-input-wrapper input[type=file] {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
font-size: 999px;
max-width: 100%;
max-height: 100%;
filter: alpha(opacity=0);
opacity: 0;
outline: none;
background: white;
cursor: pointer;
display: inline-block;
}
/*
** Thumbnail macros
*/
.tc-thumbnail-wrapper {
position: relative;
display: inline-block;
margin: 6px;
vertical-align: top;
}
.tc-thumbnail-right-wrapper {
float:right;
margin: 0.5em 0 0.5em 0.5em;
}
.tc-thumbnail-image {
text-align: center;
overflow: hidden;
border-radius: 3px;
}
.tc-thumbnail-image svg,
.tc-thumbnail-image img {
filter: alpha(opacity=1);
opacity: 1;
min-width: 100%;
min-height: 100%;
max-width: 100%;
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-image svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-image img {
filter: alpha(opacity=0.8);
opacity: 0.8;
}
.tc-thumbnail-background {
position: absolute;
border-radius: 3px;
}
.tc-thumbnail-icon svg,
.tc-thumbnail-icon img {
width: 3em;
height: 3em;
<<filter "drop-shadow(2px 2px 4px rgba(0,0,0,0.3))">>
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-icon svg,
.tc-thumbnail-wrapper:hover .tc-thumbnail-icon img {
fill: #fff;
<<filter "drop-shadow(3px 3px 4px rgba(0,0,0,0.6))">>
}
.tc-thumbnail-icon {
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
display: -webkit-flex;
-webkit-align-items: center;
-webkit-justify-content: center;
display: flex;
align-items: center;
justify-content: center;
}
.tc-thumbnail-caption {
position: absolute;
background-color: #777;
color: #fff;
text-align: center;
bottom: 0;
width: 100%;
filter: alpha(opacity=0.9);
opacity: 0.9;
line-height: 1.4;
border-bottom-left-radius: 3px;
border-bottom-right-radius: 3px;
}
.tc-thumbnail-wrapper:hover .tc-thumbnail-caption {
filter: alpha(opacity=1);
opacity: 1;
}
/*
** Diffs
*/
.tc-diff-equal {
background-color: <<colour diff-equal-background>>;
color: <<colour diff-equal-foreground>>;
}
.tc-diff-insert {
background-color: <<colour diff-insert-background>>;
color: <<colour diff-insert-foreground>>;
}
.tc-diff-delete {
background-color: <<colour diff-delete-background>>;
color: <<colour diff-delete-foreground>>;
}
.tc-diff-invisible {
background-color: <<colour diff-invisible-background>>;
color: <<colour diff-invisible-foreground>>;
}
.tc-diff-tiddlers th {
text-align: right;
background: <<colour background>>;
font-weight: normal;
font-style: italic;
}
.tc-diff-tiddlers pre {
margin: 0;
padding: 0;
border: none;
background: none;
}
/*
** Errors
*/
.tc-error {
background: #f00;
color: #fff;
}
/*
** Tree macro
*/
.tc-tree div {
padding-left: 14px;
}
.tc-tree ol {
list-style-type: none;
padding-left: 0;
margin-top: 0;
}
.tc-tree ol ol {
padding-left: 1em;
}
.tc-tree button {
color: #acacac;
}
.tc-tree svg {
fill: #acacac;
}
.tc-tree span svg {
width: 1em;
height: 1em;
vertical-align: baseline;
}
.tc-tree li span {
color: lightgray;
}
"Century gothic", Georgia, Helvetica, Arial, "Lucida Grande", "DejaVu Sans", sans-serif
# « Les langues régionales “dans l’Etat”. Quel statut juridique pour quel type de reconnaissance ? Le cas de l’Espagne », in W. Mastor et A. Gogorza (sous la dir.), Langues régionales et construction de l’Etat en Europe, Paris, Lextenso, Coll. Grands colloques, 2019, `à paraître`.
# « Hacia la búsqueda de una definición de las autoridades administrativas independientes en Francia - A propósito de las leyes del 20 de enero de 2017 », Revista de derecho administrativo económico, Pontifica Universidad Católica de Chile, 2019, `à paraître`.
# « ''La protección del patrimonio cultural en Francia : del redescubriminento a la valorización'' », `in` F. López Ramón (sous la dir.), //El patrimonio cultural en Europa y Latinoamérica//, Madrid, Instituto nacional de administración pública, `2017`, p. 143-154.
# « ''La Constitución y el matrimonio homosexual en España – A propósito de la STC 198/2012 del Tribunal constitucional'' », Revista Jurídica Piélagus, `2016`, vol. 15, p. 11-24.
# « ''Constitution et droit international en Espagne'' » (en collaboration avec I. Gomez Fernández), `in` B. Bonnet (sous la dir.), //Traité des rapports entre ordre juridiques//, Paris, LGDJ, `2016`, p. 1677-1694.
# « ''Los partidos políticos y la democracia directa en Francia – El ejemplo del referendum'' », `in` P. Biglino-Campos (sous la dir.), //Partidos políticos y mediación de la democracia directa, Seminario internacional, Valladolid, `14 avril 2016`//, `à paraître`.
# « ''El derecho a la vivienda oponible en Francia'' », `in` //I Congreso nacional sobre Vivienda social. Libro de actas//, Real Fundación del Patronato de la Vivienda de Sevilla, Sevilla, `2014`, p. 151-167.
# « ''Parlamento y organización territorial en Francia'' », `in` F. Pau i Vall (coord.), //Parlamento y organización territorial – XVIII Jornadas de la Asociación Española de Letrados de Parlamentos//, Madrid, Tecnos, `2012`, p. 133-147.
# « ''L’inclusion du concept de nation et des symboles nationaux dans les statuts des Communautés autonomes espagnoles'' », `in` M.-P. Lanfranchi, O. Lecucq, D. Nazet-Allouche (sous la dir.), //Nationalité et citoyenneté – Perspectives de droit comparé, droit européen et droit international//, Bruxelles, Bruylant, Coll. A la croisée des droits, `2012`, p. 123-142.
# « ''La politique étrangère de l’Espagne : de l’intégration aux incertitudes'' », Questions internationales, Paris, La Documentation française, `2010`, n° 43, mai-juin 2010, p. 92-99.
# « ''La spécificité du Défenseur du peuple espagnol'' », `in` J.-P. Marguénaud et A.-M. Tournepiche (sous la dir.), //La Médiation – Aspects transversaux//, Paris, Litec, `2010`, p. 103-114.
# ''Commentaire de la décision du Conseil constitutionnel n° 2004 – 499 DC, Loi relative à la protection des personnes physiques à l’égard des traitements de données à caractère personnel et modifiant la loi n° 78-17 du 6 janvier 1978 relative à l’informatique, aux fichiers et aux libertés'', Revue française de droit constitutionnel, `2004`, n° 60, p. 822-830
# ''Commentaire de la décision du Conseil constitutionnel n° 2004-496 DC du 10 juin 2004, Loi pour la confiance dans l’économie numérique'', Revue française de droit constitutionnel, Revue française de droit constitutionnel, `2004`, n° 60, p. 804-808
@@
docid:@@color:yellow;background-color:black;{{!!docid}}@@ | tampid:@@color:yellow;background-color:black;{{!!tampid}}@@ [ [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/ALTER/]] ] [ [[Membres|https://alter.univ-pau.fr/fr/organisation/membres.html]] ] [ [[idHAL|idHAL-ALTER]] ]
@@
!!!SiteWeb
<<list-links "[tag[Alter]tag[SiteWeb]]">>
---
@@color:red;
!!équipes
@@
@@.aa
<<list-links "[tag[Alter]tag[équipe]]">>
@@
<<tabs "[tag[Alter]tag[équipe]]" "Formes en mouvement" "$:/state/tab1">>
---
@@color:red;
!!Liste
@@
@@column-count:4;
<$list filter='[tag[Alter]tag[publiant]]'>
<$checkbox tag="coché"> <$link><$view field="title"/></$link> </$checkbox><br/>
</$list>
@@
---
@@color:red;
!!Cochés
@@
<<list-links "[tag[Alter]tag[coché]]">>
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
<<list-links "[tag[LMAP]tag[publiant]tag[Analyse, Géométrie et Applications]]">>
!!!! Chercheurs, ingénieurs non permanents
# AL BABA Hind (Ch associé)
# LALAUDE Marc (Ch associé)
# NGUYEN Huang (Ch associé)
# PATIE Pierre (Ch associé)
# RAUDIN Yves (Ch associé)
!!!! Doctorants
# ARORA Rakesh
# BASSEM Bahouli
# GHOSH Amrita
# KHELOUFI Yasmina
# MOINIER Pascal
# SERRANO DE RODRIGO Juan
# TAHRAOUI Yassine
# WEHBE Elsy
31 dates, à l'invitation des Universités
*Xavier [Campo], conventionnements
*Yves XXX, Direction des opération scientifiques
; StationF
: journée "innovation"
!! Missions
* financer
* mettre en oeuvre la programmation
* gérer les grands investiseement (truc-ex)
* coopération
* analyse / évaluation (ex : prise de risque)
!! Budget d'intervention
*budget de fonctionnement : 36,1 millions €
!! Cycle
*programmation
*sélection
*réalisation
*évaluation ex-post
!! Principes de l'évaluation et de la sélection de projets
* Principes internationaux
** //excellence, impartialité, transparence, confidentialité, déontologie...//
* Sélection compétitive
* équité des traitements
** insistance
* évaluation par les pairs
** //évaluateurs français et étrangers extérieurs à l'agence//
** certification ISO 9001 : //"écrire ce que l'on a fait, faire ce que l'on a écrit"//
!! Les Acteurs de l'évaluation
!!!Comité d'évaluation scientifique (49 CES en 2020)
* Bureau
** Président-référent (appel à candidature)
*** Garant des rapports,
*** échanges avec les membres
** 2 VP
*** Assister le président
*Membres
** Personalités qualifiées sur proposition du président
** rédaction des rapports
!!! Experts
* Spécialistes
* sur proposition des membres de comité et sollicités par l'ANR
* travaillent en toute indépendance
!!! Chiffres
*1013 membres (34% étrangers)
* 14085 évaluations
*8039 expertises externes (étape 2) dont 60% étrangers
!! Déontologie
* ''Charte'' signée par tous les acteurs
* prévenir et chercher les ''conflits d'intérêts'' (tout au long du processus)
* examen des signalements
!! Répartition régionale des projets ANR
!! Bilan Nouvelle-Aquitaine
!! 11 projets coordonnés "Priorités de l'état"
:Rien en ''Humanités Numériques''
*prise en compte du genre
*UPPA : 9 projets gérés (AAPG 2018)
!! 2020 : quel programme ?
!!! Continuité
*(volonté d'arréter les changements permanents)
*perspective de la nouvelle loi de programmation en 2021
!!! Engagements
!!!! qualité, efficience, transparence
*iso 9001
!!!! être au service de la Science
* suivi et promotion des projets financés
** Colloques-bilan et évènements scientifiques
!!!! Contribuer à faire évoluer la culture scientifique
* intégrité scientifique
** Charte nationale de déontologie des métiers de la recherche
** Révision de la charte de déontologie et d'intégrité scientifique de l'agence
** Nomination d'une référente intégrité scientifique (L. Guyyard)
* Engagement à respecter les accords de Nagoya
** DDD (Due Diligence Declaration)
* égalité entre les femmes et les hommes
**principe dans la charte interne
**nomination d'une référente égalité (L. Guyard)
**formations
**révisions des CV
**prise en compte de la question dans le processus de recherche
**partenaire du projet ''Gender Smart'' [Cirad]
*Science Ouverte
**Libre Acces aux publications
**PGD (//DMP//)
***OPIDOR : Opidor Tour en 2020 (INIST)
!!! L'AAPG
* 4 instruments de financement
** PRC (projet de recherche collaborative)
*** 50% des projets financés
*** recherche fondamentale
*** originalité et excellence
*** collaboration = plus-value
** PRCE (projet de recherche collaborative - entreprise)
*** Collaboration effective !
*** au moins un labo public
*** Accord de consortium (partage de propriété industrielle)
** PRCI (projet de recherche collaborative - international)
*** laboratoires étrangers qui dépendent d'agences avec qui l'ANR a déjà signé des accords
**** Brésil, Luxembourg, Québec, Hong-Kong, Russie, Singapour, Taïwan, Allemagne, Autriche, Suisse
**** Autres pays : pas PRCI, mais PRC avec partenaire sur fonds propre
** JCJC (Jeune chercheuse -Jeune chercheur)
***Personnel, favoriser la prise d'initiative, tremplin vers l'ERC
***docteur depuis moins de 10 ans (+ dérogations)
***CDI ou CDD qui couvre la période totale du projet
* 49 comités (CES)
**36 axes de rcherche dans ''7 domaines disciplinaires''
*** 5 champs des alliances nationales de recherche (Environnement, Energie et Matériaux, Numérique, Sciences de la Vie, SHS)
***Mathématiques et leurs intéractions
***Physique de la matière, Hautes énergies, Planète-Univers
** 13 axes de recherche correspondants à des ''enjeux transversaux''
***(dont Humanités Numériques)
*Priorités de recherche 2020
**plan IA
**plan SHS
**technologies quantiques
**plan autisme
**antibiorésistance
**plan national maladies rares
**FRAL-SHS (franco-allemand)
*sélection en 2 temps
!!! Quelques points sur les appels spécifiques
* international
* PPP (carnot, astrid, labcom...)
* Challenges ou flashs
!!Calendrier
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
Publications
!! Ouvrages individuels – OS → dans Ouvrage
# ''Droit des sûretés'', Ellipses, 2ème édition, septembre 2018, 215 pages.
!! Ouvrages coécrits – OS → dans Ouvrage
# ''Mes TD de droit civil des biens'', en co-écriture avec Camille DROUILLER, Ellipses, `à paraître` en 2019.
!! Articles - tous ACL → dans Articles
# « ''Divulguer ou ne pas divulguer – Réflexions sur l’accès du public à l’œuvre posthume'' », `in` //Archives d’écrivain//, `ouvrage collectif` sous la direction de Mme la professeure Dolores Thion, `à paraître` en 2019, 12 pages.
# « ''Vœu aux dieux, contrat odieux, Réflexions sur l’obligation à travers les histoires d’Idoménée et de Jephté'' », dans la revue « Considérant – revue de droit imaginé » n°1, 2019, p.83, Classiques Garnier, 20 pages.
# « ''L’appréciation de la faute et des manquements contractuels en droit des assurances'' », in L’appréciation de la faute et des manquements contractuels, actes n°1, `numéro spécial` des Cahiers de Jurisprudence d’Aquitaine et Midi-Pyrénées, 2017, p.69, 21 pages.
# « ''La durée du contrat'' », `in` //Quel renouveau pour le droit des contrats ? Une réforme entre tradition et modernité, `Actes du colloque` du 20 mai 2016// sous la direction de Virginie Larribau-Terneyre et Sébastien Pellé, PUPPA, 2016, 17 pages.
# « ''L’effet translatif du contrat : la fin de l’obligation de donner'' », `in` //Quel renouveau pour le droit des contrats ? Une réforme entre tradition et modernité, `Actes du colloque` du 20 mai 2016// sous la direction des professeurs Virginie Larribau-Terneyre et Sébastien Pellé, PUPPA, 2016, 16 pages.
# « ''La petite entreprise et la propriété intellectuelle'' », `in` //La petite entreprise//, `ouvrage collectif` sous la direction de Mme la professeure Sandrine Tisseyre, LGDJ coll. Droit et économie, 2017, 20 pages.
# « ''Le vêtement-symbole'' », `in` //Le vêtement saisi par le droit//, `ouvrage collectif` sous la direction du professeur Alain Pousson, Presses universitaires de Toulouse 1 Capitole, Les Travaux de l’IFR, Mutations des Normes juridiques n°17 L.G.D.J. 2015, p.23, 18 pages.
# « ''Le point sur les mentions manuscrites en matière de cautionnement'' », Cah.Jur.AMP 2015-2, p.379, 9 pages.
!! Chapitres d’ouvrage collectif : - COS → dans Chapitres d’ouvrage
# « ''Conditions et exclusions conventionnelles de garanties'' » `in` //Les grandes décisions du droit des assurances//, sous la direction scientifique de Jean-Michel Do Carmo et Didier Krajeski, Lextenso, `à paraître` en 2019.
!! Fascicules
!! Chroniques
!! Notes d’arrêt - toutes ACL → dans Articles
//Sauf indication contraire, notes parues aux ''Cahiers de Jurisprudence d’Aquitaine et Midi-Pyrénées'' (CJAMP)//
# ''Note sous CA Pau 24 novembre 2014 (commettant/préposé)'', CJAMP 2015-1 p.90. `Responsabilité civile extracontractuelle`, `Responsabilité du fait d’autrui`
# ''Note sous CA Pau 10 juin 2015 (accident d’air-soft)'', CJAMP 2015-2 p.295. `Responsabilité civile extracontractuelle`, `Responsabilité du fait des choses`,
# ''Note sous CA Pau 16 décembre 2016 (proximité d’un golf)'', CJAMP 2017-1 p.96. `Responsabilité civile extracontractuelle`, `Troubles anormaux du voisinage`
# ''Note sous CA Pau 27 mai 2016 (compétence de l’ordre administratif pour un contrat d’assurance souscrit par une personne publique selon la procédure de passation des marchés publics)'', CJAMP 2016-2 p.276. `Procédure civile`
# ''Note sous CA Pau 2 décembre 2016 (interprétation du contrat)'', CJAMP 2017-1 p. 106. `Obligations contractuelles / contrats spéciaux`
# ''Note sous CA Pau 17 février 2016 (droit applicable à la vente d’un cheval)'', CJAMP 2016-1 p.71 . `Obligations contractuelles / contrats spéciaux`
# ''Note sous CA Pau 19 avril 2017 (prescription biennale non applicable à l’action en répétition de l’indu)'', CJAMP 2017-2, p.305. `Droit des assurances`, `Prescription biennale`
# ''Note sous CA Pau 5 avril 2018 (l’assureur doit sa garantie à défaut d’une faute inexcusable de l’assuré exclusive de garantie)'', CJAMP 2018-2, p.336 ; `Droit des assurances`, `Garantie de l’assureur`
# ''Note sous CA Pau, 28 janvier 2016 (absence de garantie du dommage corporel en cas de non-établissement de la véracité du déroulement du sinistre)'', CJAMP 2016-1 p.78. `Droit des assurances`, `Garantie de l’assureur`
# ''Note sous CA Pau 8 décembre 2016 (irrecevabilité du certificat médical délivré au médecin conseil de l’assureur couvert par le secret médical comme preuve de la fausse déclaration)'', CJAMP 2017-1, p.114. `Droit des assurances`, `Fausse déclaration de l’assuré`
# ''Note sous CA Pau 28 février 2018 (éléments d’appréciation de la disproportion et exclusion des revenus escomptés)'', CJAMP 2018-2 p.317. `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau, 11 juillet 2017 (validité et proportionnalité d’un cautionnement d’un rachat de parts sociales avec garantie d’actif et de passif)'', CJAMP 2017-3 p.501 `Cautionnement`, `Proportionnalité du cautionnement Droit des sûretés`
# ''Note sous CA Pau, 16 juin 2017 (Preuve de la disproportion)'', CJAMP 2017-3, p.503 `Cautionnement`, `Proportionnalité du cautionnement Droit des sûretés`
# ''Note sous CA Pau, 7 novembre 2016 (Disproportion du cautionnement et non prise en compte des perspectives de développement de l’entreprise débitrice)'', CJAMP 2016-3 p.460 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau, 20 février 2017'', CJAMP 2017-1 p.100 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 29 mars 2016 (prise en compte des perspectives de développement de l’entreprise)'', CJAMP 2016-2 p.248 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 21 mars 2016 (proportionnalité et cautionnements successifs)'', CJAMP 2016-2 p.249 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 10 décembre 2015 (cautionnements successifs ; responsabilité du banquier pour opposition abusive à une vente immobilière)'', CJAMP 2016-1 p.67 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 22 octobre 2015 (cautionnements successifs)'', CJAMP 2015-3 p.490 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 4 juin 2015'', CJAMP 2015-2 p.287 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 19 février 2015'', CJAMP 2015-1 p.76 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 9 mars 2015'', CJAMP 2015-1 p.78 `Cautionnement`, `Proportionnalité du cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 8 février 2018 (nullité du cautionnement dans lequel ne figurent pas les mentions manuscrites)'', CJAMP 2018-2, p.321 `Cautionnement`, `Mentions manuscrites` `Droit des sûretés`
# ''Note sous CA Pau 28 février 2018 (validité du cautionnement dans lequel la signature figure en marge des mentions manuscrites)'', CJAMP 2018-2, p.322 `Cautionnement`, `Mentions manuscrites` `Droit des sûretés`
# ''Note sous CA Pau 23 février 2017'', CJAMP 2017-1 p.102 `Cautionnement`, `Mentions manuscrites` `Droit des sûretés`
# ''Note sous CA Pau 28 mai 2015 (nullité du sous-cautionnement en l’absence de mentions manuscrites)'', CJAMP 2015-2 p.288 `Cautionnement`, `Mentions manuscrites` `Droit des sûretés`
# ''Note sous CA Pau 19 février 2015'', CJAMP 2015-1 p.74 `Cautionnement`, `Mentions manuscrites` `Droit des sûretés`
# ''Note sous CA Pau 18 avril 2016 (le devoir de mise en garde du banquier est une exception inhérente à la dette)'', CJAMP 2016-2 p.2450 ; `Cautionnement`, `Opposabilité des exceptions par la caution` `Droit des sûretés`
# ''Note sous CA Pau 28 avril 2015 (absence de réalisation d’une condition suspensive assortissant l’obligation principale)'', CJAMP 2015-2 p.292 `Cautionnement`, `Opposabilité des exceptions par la caution` `Droit des sûretés`
# ''Note sous CA Pau 13 avril 2015 (Novation de l’obligation principale)'', CJAMP 2015-2 p.293 `Cautionnement`, `Opposabilité des exceptions par la caution` `Droit des sûretés`
# ''Note sous CA Pau 22 octobre 2015 (devoir de mise en garde)'', CJAMP 2015-3 p.498. `Cautionnement`, `Obligations du banquier créancier` `Droit des sûretés`
# ''Note sous CA Pau 20 octobre 2015 (charge de la preuve)'', CJAMP 2015-3 p.492 `Cautionnement`, `Perte du bénéfice de cession d’action ou de subrogation` `Droit des sûretés`
# ''Note sous CA Pau 26 novembre 2015 (négligence du créancier dans l’inscription d’un nantissement d’outillage)'', CJAMP 2015-3 p.493. `Cautionnement`, `Perte du bénéfice de cession d’action ou de subrogation` `Droit des sûretés`
# ''Note sous CA Pau, 29 juin 2017 (renouvellement du bail et renouvellement du cautionnement)'', CJAMP 2017-3, p.499 `Cautionnement`, `Transmission Droit des sûretés`
# ''Note sous CA Pau 5 juillet 2017 (transmission du cautionnement en tant qu’accessoire de la créance cédée)'', CJAMP 2017-3, p.500. `Cautionnement`, `Transmission Droit des sûretés`
# ''Note sous CA Pau, 30 mai 2018 (Validité et efficacité d’un sous-cautionnement dans un ensemble contractuel impliquant un contrat de bière)'', CJAMP 2018-2, p.319.`Cautionnement`, `Sous-cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 7 novembre 2016 (exclusion des règles du cautionnement pour un acte qualifié de reconnaissance de dette)'', CJAMP 2016-3 p.458 ; `Cautionnement` `Droit des sûretés`
# ''Note sous CA Pau 16 septembre 2015 (critères de la garantie autonome)'', CJAMP 2015-3 p.498 `Cautionnement` `Droit des sûretés`
!! Communications à des colloques ou conférences
# ''La responsabilité des professionnels du chiffre'', `à venir`, colloque des Cahiers de Jurisprudence sur la responsabilité des professionnels, Pau, 19 avril 2019. `C-ACTN`
# ''La responsabilité des professionnels de la santé'', avec Camille DROUILLER, à venir, colloque des Cahiers de Jurisprudence sur la responsabilité des professionnels, Pau, 19 avril 2019. `C-ACTN`
# ''L’enfance protégée'', intervention au colloque du Centre départemental de l’accès au droit (CDAD 64), Pau le 20 décembre 2018. `C-COM`
# ''Copie et droit d’auteur : de la copie vertueuse à la copie délictueuse'', intervention lors de la journée d’études organisée par le Master Histoire, civilisations, patrimoine et archéologie de l’Université de Pau le 6 avril 2018. `C-COM`
# ''Le temps et le droit'', intervention à l’Université d’été de Saragosse le 21 septembre 2017 réitéré le 20 septembre 2018 `C-INV`
# ''L’appréciation de la faute et des manquements contractuels en droit des assurances'', participation au colloque des Cahiers de Jurisprudence sur l’appréciation de la faute et des manquements contractuels, colloque tenu à Pau le 7 avril 2017, à Bordeaux le 19 mai 2017 et à Toulouse le 23 juin 2017 `C-ACTN`
# ''La petite entreprise et la propriété intellectuelle'', participation au colloque sur la petite entreprise organisé par la professeure Sandrine Tisseyre, Pau, 10 mars 2017 `C-ACTN`
# ''L’effet translatif du contrat : la fin de l’obligation de donner'', `in` //Quel renouveau pour le droit des contrats ? Une réforme entre tradition et modernité, `Actes du colloque` du 20 mai 2016// sous la direction des professeurs Virginie Larribau-Terneyre et Sébastien Pellé, PUPPA, 2016 `C-ACTN`
# ''Le risque lié au cautionnement'', in Banque et conformité, colloque organisé par le Professeur Michel Storck et Jérôme Lasserre-Capdeville le 24 septembre 2015 à l’Université de Strasbourg `C-COM`
*`Titre` : titre de la communication. Par défaut : Communication à, //Titre de la manifestation//
*`Titre des actes` : si publiée
*`Intitulé du colloque`
**''toujours remplir'' s'il n'y a pas d'actes : Forger un intituler à partir des infos du chercheurs.
**ajouter le lieux précis entre crochet [lycée, université, fondation...]
*`lieu` : Ville, Pays
Champs à renseigner ou modifier :
*''Titre'' : possibilité d'utiliser des balises html (ex : `<i></i>`, `<sup> </sup>`, [[etc.|Exposants, indices dans les titres]])
*''Auteur(s)'' : bien respecter l’ordre des noms d’auteurs, très important chez les scientifiques) ; entrer le nom et prénom en deux parties.
*''Résumé'' : si possible (et si résumé de l’article, pas la présentation de la revue !)
*''Publication'' : nom complet de la revue
*''Volume''
*''Numéro'' : surtout ne pas le laisser entre parenthèse avec le volume
*''Pages'' de l'article, sans ~~`p.`~~ (ex : 125-158)
*''Date'' : Date complète [si possible, pour déterminer l'année universitaire]
*''Abrév. de revue'' : non utilisé, on peut laisser (souvent ajoutée automatiquement par Pubmed ou autres).
*''Langue'' : code sur deux caractères (anglais [en] ; français [fr] ; italien [it]...) [[liste|http://www.loc.gov/standards/iso639-2/php/code_list.php]]
*''Doi'' : vérifier sa présence et sa validité, à rajouter si existe !
*''ISSN'' : à conserver
*''Url'' : Url pérenne de l'article (.org et premalink), ''donnant accés'' à l'article en texte intégral
*''Extra'' : vide (réservé aux champs HAL à exporter en bibtex)
À traiter comme un [[Article de revue]], mais attention aux champs suivants :
*''Titre'' : Titre de l’article
*''Publication'' : Titre de la revue.
*''Collection'' : Titre du numéro
Ne pas oublier le [[marqueur|Utilisation des marqueurs]] `Numéro spécial`.
---
//Revues étrangères//
*''Titre'' : Caractères latin. Caractères originaux (traduction en français ou en anglais).
*''Publication'' : (ville, éditeur)
---
//Revue à titre pour l’ensemble du numéro//
*''Titre'' : Titre de la Revue. Sous-titre (compléments de titre). Nom de publication de la revue.
*''Volume'' : Numéro de la revue
* ''Enseignants-chercheurs''
*# [[DREYER Sylvain|Dreyer, Sylvain]] (MC)
*# [[DUCHE Véronique|Duché, Véronique]] (PR) @@color:red;''@''@@
*# [[FASSEUR Valérie|Fasseur, Valérie]] (MC)
*# [[FORMENT Lise|Forment, Lise]] (MC)
*# [[GALLEGO Julie|Gallego, Julie]] (MC)
*# [[HAPEL Françoise|Hapel, Françoise]] (MC)
*# [[LANDEROUIN Yves|Landerouin, Yves]] (PR)
*# [[MENIEU‐COSCULLUELA Cécile|Ménieu-Cosculluela, Cécile]] (MC)
*# [[PINEAU‐COSSET Guylaine|Pineau-Cosset, Guylaine]] (MC) @@color:red;''www''@@
*# [[ROCHELOIS Cécile|Rochelois, Cécile]] (MC)
*# [[VILAR Pierre|Vilar, Pierre]] (MC)
* ''Enseignants''
*# [[BIU Philippe|Biu, Philippe]]
* ''Emérites''
*# [[FLOC’H Sylvain|Floc'h, Sylvain]] @@color:red;''@''@@
[[lien vers arXiv|http://arxiv.org/]]
Site de pré-buplication numérique. A consulter surtout pour les maths.
''Modifications'' dans les notices Zotero :
*''extra'' : effacer le contenu du champs
*''langue'' : rajouter le [[code de la langue|Codes de langue]] (fr, en, de...)
*''marqueur'' : `Epublication`
<<RowTable '[tag[Labo]]' '[[docid]][[type_s]][[name_s]][[rnsr_s]][[idref_s]][[code_s]][[acronym_s]][[parentacronym_s]][[parentdocid_i]]'>>
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
Ne pas hésiter à utiliser les sites de vente en ligne comme [[Decitre|http://www.decitre.fr/]] ou [[Amazon|http://www.amazon.fr/livre-achat-occasion-litterature-roman/b?ie=UTF8&node=301061]] pour rechercher un ouvrage. Noter l’''ISBN'' puis utiliser l’outil baguette magique pour récupérer les métadonnées.
!!Sciences expérimentales
<<list-links "[tag[bases]tag[SE]]">>
!!Sciences humaines et sociales
<<list-links "[tag[bases]tag[SHS]]">>
<!--
<$list filter="[tag[bases]]">
*<$link to={{!!title}}><$view field=title/> <$list filter="[is[current]tags[]]">{{||$:/core/ui/TagTemplate}} </$list>
-->
!!! Ouvrages
# (`2017`a) – ''Rimes et vers français'', Garnier, Coll. Les Petits guides de la langue française Le Monde.
# (2014) – Violaine Boneu, Sandrine Bédouret-Larraburu, ''Le Spleen de Paris de Charles Baudelaire'', Atlande, coll. « Clefs Concours Lettres XIXe siècle ».
# (2010) - Christine Marcandier, Sandrine Bédouret-Larraburu, ''Gaspard de la Nuit d’Aloysius Bertrand'', Atlande, coll. « Clefs Concours Lettres XIXe siècle ».
!!! Directions d’ouvrages `éditeur`
# (`2018`a)- Sandrine Bédouret, Christine Copy, ''L’épilinguistique sous le voile littéraire, Antoine Culioli et la to(p)e'', coll. « Linguiste et littérature » 3, Pau : Presses universitaires de Pau et des Pays de l’Adour.
# (`2015`)- Sandrine Bédouret-Larraburu, Jean-Yves Casanova, ''Robert Marteau, arpenteur en vers et en proses'', La Licorne n° 117, Rennes : PUR.
# (`2015`) – Sandrine Bédouret-Larraburu, Chloé Laplantine, ''Benveniste : vers une poétique générale'', coll. « Linguiste et littérature » 2, Pau : Presses universitaires de Pau et des Pays de l’Adour.
# (2012) – Sandrine Bédouret-Larraburu, Gisèle Prignitz, ''En quoi Saussure peut-il nous aider à penser la littérature ?'', coll. « Linguiste et littérature » 1, PUPPA.
# (2011) – Sandrine Bédouret-Larraburu, Jean-Yves Pouilloux, ''Jacques Ancet ou la voix traversée'', Résonance générale, Mont-Laval : L’Atelier du Grand Tétras.
!!! Articles
*Articles dans `actes de colloque`
# (`2018`b) -, « ''Au-delà du poème et du récit : le genre Hocquard'' », //Labilité des genres, le désir du hors genre//, sous la dir. De Françoise Buisson et d’Arnaud Schmitt, EFM n°10, Presses Universitaires de Pau et de Pays de l’Adour, p. 65-76.
# (`2018`c)-, « ''N-ines encore ! De la sextine d’Arnaut Daniel aux n-ines oulipiennes'' », //Modernités des troubadours//, sous la dir. D’Elodie Burle-Errecade, Michèle Gally, Francesca Manzari, Presses Universitaires de Provence, p. 139-148.
# (`2018`d) –, « ''Spécialisation rythmique de l’octosyllabe français du Moyen Âge au XIXe siècle'' », //Poétique de l’octosyllabe//, sous la dir. de Danièle James-Raoul et Françoise Laurent, Actes du colloque organisé à Clermont-Ferrand du 5 au 7 novembre 2014, Honoré Champion, p.339-352.
# (`2017`) – « ''Faire ressentir, ou d’une autre fonction poétique dans quelques poèmes de Philippe Jaccottet et Robert Marteau'' », //Les cinq sens littéraires La sensorialité comme opérateur scriptural//, (sous la dir. De P. Dirkx) actes du colloque s’étant tenu à Nancy les 29-31 mai 2013, Presses universitaires de Lorraine, coll. Epistémologie du corps, p. 229-255.
# (`2016`a) – « ''Le retour à la ligne et ses enjeux poétiques, à la fin du XIXe siècle'' », //Le retour// (dir. Laurent Dornel), Pau : PUPPA, p. 249-260.
# (`2016`b) – « ''La voix humaine dans Dans l’herbe : un récit sans fin'' », //Le récit sans fin – Poétique du récit non clos//, sous la dir. de Michel Braud, Garnier, p. 223-239.
# (`2015`d), « ''La fable en tableaux'' », //Robert Marteau, arpenteur en vers et en proses//, (S. Bédouret et J.-Y. Casanova), La Licorne, PURennes, p. 11-21.
# (`2015`c) – « ''À Henri Purcell'' », //Lorand Gaspar et la matière-monde//, ( sous la dir. de Marie-Antoinette Bissay et Anis Nouairi), L’Harmattan, coll. Espaces littéraires, p. 249-264.
# (`2015`b) – « ''Émile Benveniste dans et au-delà de son temps'' », //Émile Benveniste : vers une poétique générale//, (sous la dir. de S. Bédouret et de C. Laplantine), coll. « Linguiste et littérature », Presses universitaires de Pau et des Pays de l’Adour.
# (`2015`a) - « ''Enjeux poétiques du nombre, comme élément constitutif du vers'' », //Rhétorique, stylistique et poétique : entre théorie et pratique// (sous la dir. D’Anne Bouscharain et Danièle James-Raoul), Rhétorique, poétique et stylistique (Moyen Âge-Renaissance), PUBordeaux, coll. Eidôlon, p. 47-55.
# (2013) – ''Des poèmes à la poétique, de la poétique aux poèmes chez Henri Meschonnic'', Chantiers du poème : Prémisses et pratiques de la création poétique moderne et contemporaine (Azérad, Hugues / Kelly, Michael G. / Parish, Nina / Wagstaff, Emma (éds)), Peter Lang éditions, p. 59-74.
# (2012a) – « ''Littérature et linguistique : quelle place pour Saussure ?'' », Sandrine Bédouret-Larraburu, Gisèle Prignitz, En quoi Saussure peut-il nous aider à penser la littérature ?, coll. « Linguiste et littérature », Presses universitaires de Pau, p. 17-29.
# (2011a) – « ''Dissonances diaboliques dans Gaspard de la nuit'' », Laure Himy-Piéri, Questions de style, http://www.unicaen.fr/services/puc/revues/thl/questionsdestyle.
# (2011b) – « ''Les yeux d’Elsa les yeux d’Elsa les yeux d’Elsa : de la répétition comme moteur du rythme dans Les Yeux d’Elsa'' », Cécile Narjoux (sous la dir. de), La langue d’Aragon, Editions Universitaires de Dijon, p.111-123.
# (2011c) – « ''Ambiguïtés du numerus latin chez Cicéron et Quintilien'' », in P. Voisin (sous la dir. de), L'art de la parole : pratiques et pouvoirs du discours dans l'Antiquité gréco-latine, L’Harmattan, coll. Kubaba, p. 199-211.
# (2011d) – « ''Donner du sens à l’enseignement de la langue'' », Sens de la langue, sens du langage, Grammaire, Poésie, Traduction, Presses Universitaires de Bordeaux, coll. Modernités, p. 97-108.
# (2011e) – « ''Voir, entendre au service d’un vivre-écrire'' », Sandrine Bédouret-Larraburu, Jean-Yves Pouilloux, Jacques Ancet ou la voix traversée, Résonance générale, L’Atelier du Grand Tétras, p. 69-82.
# (2010a) – « ''Du vers au poème : transformer l’enseignement de la poésie au lycée'' » in Serge Martin (sous la dir. de), Où en est la didactique du français ? Le point de vue de la poétique et de la théorie du langage avec Henri Meschonnic, Atelier du Grand Tétras, p.73-84.
# (2010b) – « ''Les Figures de répétition : à l’origine du nombre oratoire français'' », in Sandrine Rutigliano, Alexandra Flora Piffaré (sous la dir. de), Re, Répéter, Répétition,coll. Ecole doctorale n°5, Laboratoire Langages, Littératures, Sociétés, Chambéry, Université de Savoie, p.23-32.
* Articles dans ouvrages collectifs à comité de lecture (hors actes de colloques)
# (`2016`c) – « ''Spatialisation des formes fixes : le sonnet contemporain'' », //Livres de p0ésie Jeux d’eSpace//, ouvrage réalisé sous la direction d’Isabelle Chol, Bénédicte Mathios, Serge Linarès, Honoré Champion, p. 524-539.
* Articles dans revues à comité de lecture
# (`2016`d) – « ''Une dialectique du temps : inscriptions de l’Antiquité et du Moyen Âge dans la langue de Du mouvement et de l’immobilité de Douve'' », Styles n°15, (sous la dir. de Karine Germoni et Christine Silvi), PU de paris Sorbonne, p. 195-212.
# (`2015`d) – « ''du vers comme procédé de densification dans la poésie contemporaine française'' », `Poésie – Langue – Désordre` (sous la dir. de Victor Kocay et M. Bishop), Dalhousie French Studies n°104, p. 73-81.
# (2014) – « ''« Je suis perdu », à propos de Chronique d’un égarement'' », Coup de soleil (Sous la dir. de Gérard Paris), Poésie et Art n° 91/92, Spécial Jacques Ancet, Annecy, p. 26-34.
# (2012b) – « ''Aimer - écrire : de l’ordinaire au poème dans Je n’ai pas tout entendu d’Henri Meschonnic'' », in M. Braud, L’art de l’ordinaire, Méthode n°21, p.115-120.
# (2012c) – « ''Du style à la manière : construction d’un rythme dans un poème d’Antoine Emaz », suivi d’un entretien avec le poète'', in Stéphane Bikialo, Sabine Pétillon (sous la dir. de), Dans l’atelier du style. Du manuscrit à l’œuvre publiée, La licorne n°98, p. 33-40, p. 221-235.
# (2012d) – « ''de la pratique à la théorie : une pensée du continu'' », Europe n°995 Henri Meschonnic, p.77-88.
# (2010c) – « ''De la poésie aux poèmes : quel questionnement du poétique dans le secondaire ?'' », Serge Martin, Faire poésie sans oublier les poèmes, Le Français aujourd’hui n°169, p.31-38.
!!! Comptes- rendus
# (`2018`e) – « ''Serge Martin. Voix et relation'' », Europe : `Yves Bonnefoy`, n° 1067, mars 2018, p. 340-341.
# (`2018`f) – « ''Du roman à l’histoire de l’Oulipo'' », Acta Fabula vol. 19 n°6, https://www.fabula.org/revue/document11147.php
# (`2017`c) – « ''David Caplan. Questions de possibilité et poésie contemporaine'' », `note de lecture`, Europe : `Pierre Bergounioux`, n°1057, p.338-340.
# (`2016`é) – « ''Gérard Dessons. La voix juste. Essai sur le bref'' », `note de lecture`, Europe : `Jean-Christophe Bailly`, n°1046-48, p.344-346.
# (`2015`f) –- « ''Le nombre en musique & en rhétorique, un même concept ?'' », Acta fabula, vol. 16, n° 5, « `Musique ! On lit` », Mai-juin-juillet 2015, URL : http://www.fabula.org/acta/document9377.php, page consultée le 08 septembre 2015.
# (`2015`e) – « ''Armelle Leclercq : Les Équinoxiales'' », `note de lecture`, Europe : `Max Frisch`, Ludwig Hohl, n°1029-1030, p. 348-350.
# (2014) - « ''Jacques Ancet : Ode au recommencement'' », `note de lecture`, Europe : Julio Cortázar n°1020, p. 350-351.
# (2012e) – `Note de lecture` « ''Aubes de Bernadette Engel-Roux'' », Résonance générale, Cahiers pour la poétique n°5, L’Atelier du Grand Tétras, p. 109-115.
# (2010d) – « ''Chronique linguistique Emile Benveniste pour vivre langage'' », in Marie-France Bishop et Max Butlen (sous la dir. de), Continuités et ruptures dans l’enseignement de la littérature, Le Français aujourd’hui n°168, p.125-129.
# (2010e) – « ''Note de lecture Emile Benveniste pour vivre langage'' », Claude Esteban Bernard Manciet, revue Europe n° 971, p.475-476.
!!! Sites
# (2013) – « ''Les oiseaux dans Écritures'' », http://crphll.univ-pau.fr/live/Seminaires/Poesie+contemporaine/Seminaire+2012-2013, consulté le 18/06/14
# (2009) – « Manière, faire, style » dans Les Salons de Diderot, http://polartnet.free.fr/textes/chantiers_polart/Chantier_Maniere.pdf, consulté le 18/06/14
!!! Conférences sans publication :
# (`2017`) – « ''Rimes et vers français'' », séminaire de linguistique et de didactique, avril, Pau.
# (`2016`) – « ''le sonnet contemporain'' », mars, Médiathèque André Labarrère, Pau.
# (`2016`) – « ''Polyphonies. À l’écoute des voix de Jean-Louis Giovannoni'' », colloque J.-L. Giovannoni, organisé par Pierre Vilar, UPPA Bayonne, 17-18 juin.
# (`2015`) – « ''Du poème au récit : que fait la langue ?'' », journées d’études La langue dans les récits contemporains (Isabelle Serça et Jean-Yves Casanova, janvier.
# (2013) – « ''le sonnet de Robert Marteau'' », septembre, Médiathèque André Labarrère, Pau.
# (2010) - « ''Being a poet to be alive'' », Twenty-First Century European Literature: Mapping New Trends, St Andrews university, 15-17 septembre.
# (2008) - « Esthétique de la contrainte mathématique », séminaire de poésie contemporaine, CRPHL de l’UPPA, novembre.
# (2008) - « Du nombre au rythme », Rencontres franco-américaines « Linguistique et littérature », ENS, 18-19 juin.
# (2007) - « Nombre et fonction numérique dans la sémanalyse de J. Kristeva », le vocabulaire scientifique et technique en Science du langage, coldoc Paris 10, 20-21 juin.
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/C7V1dXOxMTEPh6P56z3n5CQ0OG9996b+fbbb8/67rvvBv7www9OXz3w8emnn45866237v7kk09uysjIaGcYxsn27dufqavMDh48SAsKCpp6PB6jpKSElZWViebNm/MLndusWbPLDlm/oh6ksLAw/MCBA52joqL2lZSUNJ8zZ85zR48e/ejRRx9d7jtn48aNo5csWTKtqKgozOVyOf/zn/9M69mzZ6bT6XQBwJo1a7o/++yzLwQFBZX16tUrw+PxGF9++eXtmzZtGvXWW2/9MSoqyuV0Ol1lZWWPz5079/GqqqpF0dHR6U6n07Vq1aobioqKwj788MOa7j0tLe3axYsXz4+Li1sTGRl5dPfu3X3mzZv3e7fb7ezatevi2vf/8ssvT//qq69uB4CBAwcuBoD777//r6mpqf0HDRo0uX379khNTUVSUtKwJ5988rWbb755R3Z2tv/TTz/9isfjefDaa69Fbm4uvv7660XdunXLHj169M/Kjj579uw/JyUlDenZs+fEnj17YteuXfj2229XzZ49e/5DDz20ynfe5s2bRxiG4fnDH/5QswAoPz+fJiUlDWOMiYkTJ2YDwJYtW4YuWLDg3tDQ0OLp06d/f05FvGvlypU3tGvXriAqKmpHTk6O84UXXng2Nzf3zyNHjoSu61i/fj02btz4yYsvvvjskCFDjm7YsGHsmjVr4o4fP96KEIJVq1bFhYWFFVFKxcmTJ8MOHjzYkXN+l9vtxqFDhz4sLi4OrS38d9999w8tW7acGhMTg4KCAsybN2/53r17u/7973//u0/gS5cunda/f//t4eHhx5OSkoZJKemwYcPm1VVuLpfL6Xa7DUqpME3TqKyspABKAWDbtm3huq57YmJiinft2hXicrmcUsoTnTp1ury1Kr7Mglfj+OMf//hIbGzs53v27AnyfZabm2vMmjVrTnR0tOzdu/eKOXPm/G737t3Bvt9Pnjz57eHDh3+6ZcuWNr7Pli9f3uett96a4vv/F198cWbfvn3ltGnT3ti6dWu47/MHH3zw6QEDBnydk5Pj9H32wgsvzOzVq5dMTk6uOW/q1KlvTJgw4Z/79+/Xat/v+PHj58fFxb3n+/8333xzakRExHevvfaaLCkpkVJKmZqaKvv37y9vueWW16SUmDt37vS+ffvKxYsXSykl9u3bZ6SkpITVvu6jjz762KxZs+bcddddc2bNmjVn1qxZc26//fa5qampNee9/fbbkzt37hz/8ssvy4KCAlldXS3T09PljBkzZGxs7Oe1y2PatGlv3H777XNrf0deXp42adIk+frrr9/s+ywrK8t/xIgRn86YMeP/ap+bmZkZ2KtXr2/uvffev/o+e+yxxx7r16+fXLRokXS5XFJKKZctWyajo6Plww8//KTvvHvvvfevUVFRMjo6esVLL700Izs729/3u7S0tJDp06fPvfPOO1/YsWNHaO17Gzx48Je333673LNnj5RSysrKSvn444/L6OjoFQkJCR327dtnxMTE/PvBBx982vd3td/ZpRzbtm1rdb7Pt27dGp6YmNhu586dIVdap6/Yi5WQkNDhyy+/jP36668HeRU94+jRo218v4+IiPCMHTv2O8YYxo8fv+5vf/vbZ9HR0acB4KuvvhqUk5PT9fbbb/9y6NChR31/c+ONN+5+7LHHanoht9ttBAcHf/LQQw+9N3jw4MJa488cTdNuPd+iL1kr9++kSZNWHz9+PHzVqlWTanu7SktLQ4YPH77Z91lqamr/Dh06jL3vvvsQEhKCqqoqZGRkgHO+tHPnzgcAICQkpFQIsTIjIwM7duwIjYyM9AwYMKCo9nc7nU6Xn59fdWBgYLm/v39lYGBgeWBgYDljrGaIt2bNmrhevXqNnjVrFtq2bQun04nevXvjvvvuw6lTp2YkJiYOr22DnfuM3hf4fu3PunfvXjVu3Lh1qampA1avXt3T9/myZcumMMasESNGJALA3r17/bOysnp069YNd9xxBxwOB06cOIGMjAwAWBkVFVWzIm/y5MkrhRCYMGHCt88888wX3bp1q0lh1Ldv31I/P79qh8Ph7tevX00+ra1bt8a63e7pU6dORa9evQAAWVlZOHHiBNq2bVvQsmXLE5GRkZ5mzZqdPnz4cPuVK1f2BoDY2NjCn9m4n7f+NmnSpIwxZl177bWlv5iRnpGREfT6668/kZ+f36mysnKmL/M3pfSszIQAEBgYWCGlxODBg8/q9k+ePBnGGBvXo0eP+y9iCGpBQUFlo0aNOmsIQykV3tSetFZl8iWLq+lS77777o0LFy68MzExcYRPeBs2bLjOz8+v6qmnnlrse56SkpJQwzDw0UcfobKyEjk5OcjJyVk+ZsyYTXPnzp0HAA888MD6I0eOtFu1apVISkp6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
<$details summary="[éditer les onglets]">
@@.note
<<list-links "[tag[Bibtex]]">>
@@
</$details>
<$details summary="Champs X2HAL par types bibtex">
<<list-links "[tag[typesX2HAL]]">>
</$details>
<<tabs "[tag[Bibtex]]" "Hal et Bibtex" "$:/state/tab1">>
!! @conference (COMM) = Communication
!!! Champs obligatoires
```
@conference{test_conf,
title = {Ceci est le titre},
author = {Nom, Prénom and Nom, Pr\’enom and {N}om, Prénom },
booktitle = {Titre de la conférence},
address = {New Dheli, India},
year = {2015},
x-conferencestartdate = {2015},
x-audience = {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
x-language = {en},
x-invitedcommunication = {Valeurs possibles: Non, No, Oui, Yes},
x-popularlevel = {Valeurs possibles: Oui, Yes, Non, No},
x-proceedings = {Valeurs possibles: Oui, Yes, Non, No},
x-peerreviewing = {Valeurs possibles: Oui, Yes, Non, No},
}
```
Les champs obligatoires `x-country` (MT HAL : country) et `x-city` (MT HAL : city) peuvent être saisi directement ou calculés par Bib2hal à partir du champ address.
!!! Champs optionnels
* `editor` (MT HAL : scientificEditor)
* `number` (MT HAL : issue)
* `pages` (MT HAL : page)
* `publisher` (MT HAL : publisher)
* `series` (MT HAL : serie)
* `volume` (MT HAL : volume)
* `year` (MT HAL : date)
* `x-conferenceenddate` (MT HAL : conferenceEndDate)
* `x-conferenceorganizer` (MT HAL : conferenceOrganizer)
* `x-publisherlink` (MT HAL : publisherLink)
* `x-serieseditor` (MT HAL : seriesEditor)
* `x-source` (MT HAL : source)
* [[Champs optionnels communs à tous les types BibTeX]]
!! @inproceedings (COMM) = Communication
!!!Champs obligatoires
```
@inproceedings{test_inproceeding,
title = {Ceci est le titre},
author = {Nom, Prénom and Nom, Pr\’enom and {N}om, Prénom },
booktitle = {Titre de la conférence},
address={Paris,France},
year = {2015},
x-conferencestartdate = {2015},
x-audience = {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
x-language = {en},
x-invitedcommunication = {Valeurs possibles:Non, No, Oui, Yes},
x-peerreviewing = {Valeurs possibles:Oui, Yes, Non, No},
x-popularlevel = {Valeurs possibles:Non, No, Oui, Yes},
x-proceedings = {Valeurs possibles:Oui, Yes, Non, No},
}
```
Les champs obligatoires `x-country` (MT HAL : country) et `x-city` (MT HAL : city) peuvent être saisi directement ou calculés par Bib2hal à partir du champ address.
!!! Champs optionnels
* `editor` (MT HAL : scientificEditor)
* `number` (MT HAL : issue)
* `pages` (MT HAL : page)
* `publisher` (MT HAL : publisher)
* `series` (MT HAL : serie)
* `volume` (MT HAL : volume)
* `year` (MT HAL : date)
* `x-conferenceenddate` (MT HAL : conferenceEndDate)
* `x-conferenceorganizer` (MT HAL : conferenceOrganizer)
* `x-publisherlink` (MT HAL : publisherLink)
* `x-serieseditor` (MT HAL : seriesEditor)
* `x-source` (MT HAL : source)
* [[Champs optionnels communs à tous les types BibTeX]]
!!@patent (PATENT) = Brevet
!!!Champs obligatoires
```
@patent{test_patent,
title = {Ceci est le titre},
author = {Nom, Prénom and Nom, Pr\’enom and {N}om, Prénom },
year = {2015-07-20},
number = {01},
x-country={FR},
x-audience = {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
x-language = {en},
}
```
!!!Champs optionnels
* `pages` (MT HAL : page)
* [[Champs optionnels communs à tous les types BibTeX]]
!! @phdthesis = THESE ou HDR
!!! Champs obligatoires
```
@phdthesis{test_phdthesis,
title = {Ceci est le titre},
author = {Nom, Prénom},
abstract = {Abstract},
school ={Université de Sophia Antipolis},
year ={2005},
pdf = {https://hiepacs/files/2015/MasterHiep/pdf},
type = {Valeurs possibles : thèse, thesis, Habilitation à diriger des recherches ou HDR},
x-director={director},
x-language = {en},
x-title_fr = {obligatoire si le titre est en anglais},
x-title_en = {obligatoire si le titre est en français},
x-abstract_fr = {Résumé en français},
x-abstract_en = {Abstract},
x-keywords_fr = {mot1 ; moté2},
x-keywords_en = {word1 ; word2},
x-filesource = {Valeurs possibles: 'author','greenPublisher','publisherAgreement','publisherPaid'},
}
```
!!! Champs optionnels
* `number` (MT HAL : nnt)
* `x-committee` (MT HAL : committee)
* `x-thesisSchool` (MT HAL : thesisSchool)
* [[Champs optionnels communs à tous les types BibTeX]]
iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsIAAA7CARUoSoAAAAAZdEVYdFNvZnR3YXJlAHBhaW50Lm5ldCA0LjAuMTJDBGvsAAA0y0lEQVR4Xu2dCdxV0/7/7zWUcK8pQ0KkEJWhiMxTypxZSK55yBQilCeUJKE5DdStKI9C5q4MXYRbhtAl5LquDJnKHPu339//+Z7/brfPOeucnjPs/Xw/r9fnVc/znLPO2uus9Vlrfdf3+11/MhgMBoPBYDAYDAaDwWAwGAwGg8FgqFxUV1df+uCDD15pNJaKU6dO7ZTqfoZyw/9Clvj0jMYSclaq+xmKiQceeKCRP8MvGDt27ILhw4cLBw4cuBwHDx78u0/PaCwVBw0a9FO4H2r/vO+++xbQZ1977bXVU93YUCjuv//+JijuPffc440YMUJ4xx13GI0VR+2fvgDIKmHy5Ml1Ut3YkC/8mb/xpEmTmvmNeYgvAiIAd999t3DYsGGer7TeyJEjhaNGjTIaS0r6ofY/+iPU/jlx4kSPPuv/25I+PGHChPqpbm1whd9w81FSv/FEXREAfob/+Mc/vFmzZnn/+te/hPPnz/f+/e9/G40l4zvvvJPufzNnzvRmzJiR7p9Dhw6VPuv3YfnZ/7dnqlsbssHfNzXwG2wa9JdSS1RVp06d6s2ZM8f74IMPhF9++aW3ePFi79tvvxUuWbLEaCwpv//++3T/oz9+8cUX6f759NNPS59llUofHj169Lvar32xWC3V3Q1h+LN9UxQTYmhBRVFTZvz//Oc/3g8//CA0GCoR2j9fe+016bN33nmn9GG2DNqvzS6QBSYAhjjDBGAl4TdWUxoMPvbYY9KIL774ovfbb795f/zxR6qZDYbKxrJly6TPPvPMM9KHMQpqvzYByAB/n3Sxr5R91ZL66quvevPmzfPee+897/fffzcBMMQG9Ff49ttvSx9+/PHH0ycEY8eOvWrMmDHmRRiG3yhLg5b+Tz/9VAwsGFsMhjhCjYRsCbRf+wLg+X19dqrbGxQmAIakwQQgD4wYMWKpvw3wHn30USFHLbbsN8QZ9F+I34D2axyH/L5uAhDG8OHDRQAw/sGlS5emmtFgiDewY2m/NgHIgCFDhiylcZ588kmhCYAhKViwYEG6X3Os7fd1E4Aw7rjjjqV65g/tvN+QFHz44Yfpfp3yDTABCAMBwG0SH3/4448/pprPYIg3Pv7443S/NgHIAAQA3+l//vOfQhMAQ1KAF6v2axOADIizAKjjhwaIfP3118JvvvlGfv7uu+/S5DVB6u/1yEjfCwl40v/zN17/008/eb/88osQbzP1krQTk8qFCYAD4ioADHwdvMSAkxDCfxYhNg1+5uwXjhs3Ln0eDAkX1b+lrMPp9952223erbfemv6ZtuE96iFJOOp///tfIW2FEBgqEyYADvAbJbYC8NVXXwlx9ezXr5/XtWtXYceOHb399tvPa926tdeqVSv5d7fddktz991399q1ayc8/PDDvSOPPNI78cQThfy/Q4cO3h577CGva9Omjbxn//339w466CB5z7HHHiscNGiQN378eKkDq4aff/45VTtDJcAEwAFxFgBiweGQIUO83r17e6eeeqpwp5128jbaaCPvz3/+s+c/4gpcddVVvc0220y47bbbettvv7231157CXfeeWf5ed111/X++te/evXq1VvuvZTJ7+FZZ53lXXPNNd4nn3wiKwI7Qq0smAA4wATABCCpMAFwQFwFIApqnJs+fbrs49dYY43lBi9s0aKFbA80rdRbb70le3vNKvPuu+/Kz4RD0x54kWEjUFGpX7/+CmWecMIJsn3gtfhRmGGwMmAC4IAkCQCrAkg8OMa98OwNd9llF++QQw6RWRv+73//8z777LO0PeHzzz+Xnz/66CNxJCG0lHa59NJLvVNOOUX2/uEyWTXAMWPGyHupg6H8MAFwQJIEQEEUGOmh11prrRUGK4a9o48+OvVKd+BMwgxPstRwmcpevXrJ6oHEFIbywwTAASYAbjABiB9MAByQRAF44403ZLDWpAAwqCH5Ev7yl78IMSYGyz7++OO9AQMGiNMQ+PXXX8XZiI7IdoJtBe/PRt164MbKz3wfatuAOCeF31MTxJ+CuiYpFsQEwAEmAPkBG8EGG2wgXG211ZYrOywA/ItNgNTqL7/88nJ86aWXxNCo5Gclf8fxCAMlg1I9EPEzoFPzezh79mxhprIoR18T5gsvvCCrGn0PDk7c84AAIQaIV9w9HU0AHGACkB8wFOJYBNdcc83lyu7SpYt4F6pDEEeDbEU4msTwiCPRlltuKdxkk03kVEG56aabyrEkr+G1GBsv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
# `2018` « ''L'enseignement de l'occitan sifflé : bilan et perspectives'' », `dans` //Hizkuntzak, Ondarea eta Identitateak. Hezkuntza ikuspegia / Lengas, patrimòni e identitats. Perspectiva educativa / Lenguas, patrimonio e identidades. Perspectiva educativa / Langues, patrimoine et identités. Perspective éducative / Languages, Heritage and Identities. An Educational Perspective//, Luis Maria Naya, Marie Anne Chateaureynaud et Paulí Dávila (ed.), Delta Publicaciones, p. 199-209.
# `2017` « ''L'occitan dans la presse écrite : l'exemple de la revue Pays'' », `communication` lors des 3e rencontres Ah bé tè ! Les anthro-Pau-logiques organisées par les doctorants de l'École doctorale SSH 481/ITEM/Passages de l'UPPA du 15 au 17 mars `2017` (`à paraître`)
!!! Chapitre d’ouvrage :
BOIX, Christian : « ''Le genre grammatical et ses variations'' », `in` Thomas Faye & Sonia Fournet-Pérot, éd., //Permanence et variation, Hommage à Dolores Ligatto//, Université de Limoges, PULIM, `2016` (p. 81-88).
# ''Interview'', `in` //Un tribunal para la Constitución// (sous la direction de Miguel Beltran de Felipe et Daniel Sarmiento Ramirez-Escudero), Registradores de España, 2017, pp. 221-245.
# ''Présentation du dossier « Les référendums d’autonomie ou d’indépendance »'', R.F.D.A. 2018, pp. 257-259.
# ''Code de l’expropriation pour cause d’utilité publique `commenté et annoté`'', Dalloz, 3° édition, 2017, 461 p.
# ''Les nouvelles relations entre Paris et l’Etat en matière de police'', R.F.D.A. 2017, pp. 628-636.
# ''V° Police, Chronique de jurisprudence administrative'', Droit et gestion des collectivités territoriales 2017, pp. 429-433.
# ''V° Police, Chronique de jurisprudence administrative'', Droit et gestion des collectivités territoriales 2018, `à paraître`
# ''L’association du public aux décisions prises par l’administration'', R.F.D.A. 2016, pp. 27-34.
//Professeur de langue et littérature françaises à l'Université de Pau et des Pays de l’Adour//
Liste des publications
!!1. Études littéraires
!!!Ouvrages
# La Forme des jours. Pour une poétique du Journal personnel, Seuil, collection "Poétique", 2006, 327 p.
# (en collaboration) Introduction à l'analyse des textes littéraires français du XXe siècle, Cracovie (Pologne), Institut de Philologie Romane de l'Université Jagellonne, coll. "Romanica cracoviensia", 1999, 232 p.
#* [Rédaction de l'`avant-propos` et des `chapitres` III.2 (//Le roman//), IV (//Techniques d'analyse du texte), V.2 (Etude d'un roman//) et du `glossaire` (avec W. Rapak).]
# La Tentation du suicide dans les écrits autobiographiques : 1930-1970, Paris, P.U.F., 1992, 303 p.
!!!Éditions
# ''Journaux intimes. De Madame de Staël à Pierre Loti'', textes choisis, présentés et annotés par Michel Braud, Gallimard, "Folio classique", 2012, 606 p.
# Adèle, Adèle et Léontine. Journaux de jeunes filles protestantes à la fin du XIXe siècle, textes établis, annotés et présentés par Michel Braud et Hélène Charpentier, Cairn, 2009, 158 p.
!!!Directions d'ouvrages ou de numéros de revues
# [codirection] ''Dictionnaire de l’autobiographie : Écritures de soi de langue française'', sous la direction de Françoise Simonet-Tenant avec la collaboration de Michel Braud, Jean-Louis Jeannelle, Philippe Lejeune et Véronique Montémont, Champion, `2017`, 845 p.
# ''Le Récit sans fin : Poétique du récit non clos'', textes réunis et présentés par Michel Braud, Classiques Garnier, `2016`.
# Méthode ! revue de littératures n° 21 : `L’Art de l’ordinaire`, Vallongues, 2012.
# Modernités n° 30 : `Poétiques de la durée`, textes réunis et présentés par Michel Braud, PUB, 2010, 198 p.
# Modernités n° 24 : `L'Irressemblance. Poésie et autobiographie`, textes réunis et présentés par Michel Braud et Valéry Hugotte, PUB, 2007, 202 p.
# Modernités n° 23 : `Les Enseignements de la fiction`, textes réunis et présentés par Michel Braud, Béatrice Laville et Brigitte Louichon, PUB, 2006, 225 p.
# Modernités n° 15 : `Écritures du ressassement`, textes réunis et présentés par Eric Benoit, Michel Braud, Jean-Pierre Moussaron, Isabelle Poulin et Dominique Rabaté, PUB, 2001, 327 p.
# Jacques Borel : L'imagination autobiographique, textes réunis et présentés par Michel Braud et Joëlle de Sermet, Lettres modernes Minard, série "Ecritures contemporaines" n° 3, 2000, 171p.
# Annales de l'Ecole Normale Supérieure de Cracovie (Etudes Romanes IV) : `Où en sommes-nous dans les recherches autobiographiques?`, rédaction de Regina Lubas-Bartoszynska et Michel Braud, Cracovie (Pologne), Wydawnictwo Naukowe WSP, 1994, 210 p.
!!! Articles dans des revues, contributions à des ouvrages collectifs, notices de dictionnaire
# "''Temps et récit dans les Mémoires d’une jeune fille rangée''", Op. cit., revue des littératures et des arts [En ligne], « Agrégation 2019 », n° 19, `automne 2018` , mis à jour le : 30/11/2018, URL : https://revues.univ-pau.fr/opcit/411.
# "''Limites de la labilité : aux marges du journal intime''", `dans` Françoise Buisson et Arnaud Schmitt (dir.), Labilité des genres : le désir du hors genre, PUPPA, coll. « EFM », `2018`, p. 53-64.
# "''Lire les journaux intimes''", Les Moments littéraires, n° 40, `2018`, p. 7-15.
# "''作 者 意 图 与 私 密 日记''" ["L’intention de l’auteur et le journal intime"], 社会科学战线·2017年第12期· “意图” 与“阐释” 的讨论 [Social Science Front (ISSN 0257-0246), `décembre 2017`, pp. 141-147]
# "''Passé et présent dans le journal intime : lire le temps''", Romanica Cracoviensia, vol. 17 n° 2, `2017`, p. 109-116. http://www.ejournals.eu/Romanica-Cracoviensia/2017/Tom-17-%20Numer-2
# `25 notices` du //Dictionnaire de l’autobiographie : Écritures de soi de langue française//, sous la direction de Françoise Simonet-Tenant avec la collaboration de Michel Braud, Jean-Louis Jeannelle, Philippe Lejeune et Véronique Montémont, Champion, `2017` :
## Amiel, Henri-Frédéric
## Authenticité
## Aveu
## Borel, Jacques
## Dabit, Eugène
## Destinataire
## Deuil
## Extime
## France 1945-1975
## France 1975-2015 (en collaboration avec Véronique Montémont)
## Gouberville, Gilles Picot de
## Intime
## Juliet, Charles
## Laporte, Roger
## Louÿs, Pierre
## Lyrisme
## Poésie
## Quotidien
## Sincérité
## Suicide
## Temporalité
## Temps
## Temps verbaux
## Théorie critique de l’autobiographie
## Vérité.
# "''Écriture ordinaire et écriture littéraire : le journal intime dans son histoire''", `in` Maurice Daumas (dir.), //Variations autour du for privé : arts et correspondances//, PUPPA, 2014, p. 125-134.
# "''« Les diables bleus, enfants de la nuit et du vide ». Mélancolie du journal intime. L’exemple d’Henri-Frédéric Amiel''" `in` Barbara Marczuk, Joanna Gorecka-Kalita, Agnieszka Kocik (dir.), //Alors je rêverai des horizons bleuâtres//, Cracovie (Pologne) Wydawnictwo Uniwersytetu Jagiellonskiego, 2013, p. 57-65.
# `Notice` "''Amiel''" dans Corinne Blanchaud (dir.), //Dictionnaire des écrivains francophones classiques : Belgique, Canada, Québec, Luxembourg, Suisse romande//, Champion, 2013, p. 33-36.
# "''L'usage des langues dans le journal intime de la comtesse Waleria Tarnowska''", `in` Elena Gretchanaia, Alexandre Stroev et Catherine Viollet (dir.), //La Francophonie européenne aux XVIIIe-XIXe siècles: perspectives littéraires, historiques, culturelles//, Peter Lang, 2012, p. 173-182.
# "''Lecture et écriture du journal intime au XIXe siècle''", Interférences Littéraires / Literaire interferenties, n° 9, « //Le Journal d’écrivain. Les libertés génériques d’une pratique d’écriture// », s. dir. Matthieu Sergier & Sonja Vanderlinden, novembre 2012, pp. 27-36. http://www.interferenceslitteraires.be/nr9
# "''« Ô mon Dieu pourquoi mon âme est-elle si triste? » Le journal d'Eliza Michałowska, à Vienne, en 1833-1834''" `suivi de` "''Extraits du Journal d’Eliza Michałowska''", `in` Maurice Daumas (dir.), //Thèmes et figures du for privé//, PUPPA, 2012, p. 69-83.
# "''Les journaux de Charles Juliet''", `in` Cécile Meynard (dir.), //Les Journaux d'écrivains : enjeux génériques et éditoriaux//, Berne (Suisse), Peter Lang, 2012, p. 191-200.
# "''Religion, amour conjugal et amour maternel dans le journal (1803-1838) de la comtesse Waleria Tarnowska''" `suivi de` "''Extraits du journal de Waleria Tarnowska''", `in` Maurice Daumas (dir.) //Amour divin, amour mondain dans les écrits du for privé de la fin du Moyen Âge à 1914//, Cairn, 2011, p. 305-321.
# "''Les journaux de Waleria Tarnowska et Eliza Michałowska''", Genesis, n° 32/11, PUPS, 2011, p. 177-180.
# "''« Je n'ai jamais tenu de journal intime. » Tentation et refus du journal dans les récits de Serge Doubrovsky''", Dalhousie French Studies, vol. 91, summer 2010, p. 63-70.
# [en collaboration avec Valérie Fasseur] "''Avant-propos''", `in` Hélène Charpentier et Valérie Fasseur (dir.), Méthode ! revue de littératures n° 17 : //Les Genres au Moyen Âge : la question de l'hétérogénéité//, Vallongues, 2010, p. 7-11.
# "Le journal intime est-il un récit?", Poétique, n° 160, 2009, pp. 387-396.
# "Journal littéraire et journal d'écrivain aux XIXe et XXe siècles. Essai de définition", in Pierre-Jean Dufief (dir.), Les Journaux de la vie littéraire, P.U. Rennes, 2009.
# "« Un livre où tout soit. » La littérature et le réel dans Cent jours", in Nelly Labère (dir.), Eidôlon n° 84 : Jacques Audiberti, l'imaginaire de l'éclectique, PUB, 2009, pp. 93-99.
# "La lettre retenue : la lettre non envoyée dans les journaux de Bloy et Gide", Épistolaire. La Revue de l'AIRE n° 33, 2007, pp. 207-216.
# "Le journal à deux voix de José Cabanis", Cahiers José Cabanis, n° 3 : Présence de José Cabanis, Via Romana, 2007, pp. 121-135.
# "Le repli et l'envol. Tensions de l'écriture intime chez Maurice de Guérin", in Barbara Sosien (dir.), Images, symboles mythes et poétique de l'ascension / envol, Wydawnictwo Universytetu Jagiellonskiego, Pologne, 2007, pp. 87-91.
# "Les poèmes des jours. Journal personnel et journal poétique", Modernités n° 24 : L'Irressemblance. Poésie et autobiographie, PUB, 2007, pp. 77-86.
# "« Les yeux tournés vers sa propre silhouette » Relire le Journal au sens strict du terme de Bronislaw Malinowski", in Ethnologie et littérature, L'Harmattan, collection "Eurasie. Cahiers de la Société des Études Euro-Asiatiques", 2005, pp. 53-67.
# "« Ces morts en moi » Le deuil de l'orphelin dans le journal intime", Modernités n° 21 : Deuil et littérature, PUB, 2005, pp. 289-297.
# "Comptabilité, anniversaires et écriture éphéméride dans le journal personnel" in Marcella Swiątkowska (dir.), Maestro e Amico. Miscellanea in onore di Stanisław Widłak, Cracovie, Wydawnictwo Uniwersytetu Jagiellońskiego, 2004, pp. 73-77.
# "L'intime du journal : présence et altérité à soi", in A. Montandon (dir.), De soi à soi : l'écriture comme autohospitalité, Presses Universitaires Blaise Pascal, 2004, pp. 241-250.
# "Le voyage en France de la comtesse Tarnowska", in A. Guyot et C. Massol (dir.), Voyager en France au temps du Romantisme, Grenoble, Ellug, 2003, pp. 169-180.
# "Le diariste solitaire", Modernités n° 19 : L'Invention du solitaire, PUB, 2003, pp. 167-175.
# "« Le texte d'un roman »: Journal intime et fictionnalisation de soi", L'Esprit créateur n° XLII:4, winter 2002, pp. 76-84.
# "Portrait du diariste en auteur", Modernités n° 18 : L'Auteur entre biographie et mythographie, PUB, 2002, pp. 201-209.
# "L'extase, la mélancolie et le quotidien dans le Journal intime d'Amiel", Modernités n° 16 : Enchantements, PUB, 2002, pp.111-120.
# "Le « Relevé d'Humeurs » : stéréotypie du journal intime", La Licorne n° 59 : Clichés et clichages. Mélanges Anne-Marie Perrin-Naffakh, Poitiers, 2001, pp. 287-296.
# "Ressasser l'existence", Modernités n° 15 : Écritures du ressassement, PUB, 2001, pp. 169-178.
# "Le secret intérieur", Modernités n° 14 : Dire le secret, PUB, 2001, pp. 33-40.
# "Maladie, mélancolie et écriture intime dans le Journal 1979-1983 d'Alix Cléo Roubaud", Eidôlon n° 55 : Littérature et médecine II, LAPRIL-Université de Bordeaux III, 2000, pp. 413-422.
# "Présentation" des "Pages de journal" de Jacques Borel, in Jacques Borel : L'imagination autobiographique; Lettres modernes Minard, série "Écritures contemporaines" n° 3, 2000, pp. 131-135.
# "«Le génie du ressouvenir» : rêver l'écriture de soi" in Jacques Borel : L'imagination autobiographique; Lettres modernes Minard, série "Écritures contemporaines" n° 3, 2000, pp. 23-34.
# "Un «Vieux contentieux» entre soi et l'écriture : écriture de la mélancolie et du deuil dans les Carnets 1988-1989 d'André Blanchard", Le Coq-Héron n° 157, 1999, pp. 88-94.
# "Profondeur et intériorité dans le Journal IV de Charles Juliet", Modernités n° 12 : Surface et intériorité, PUB, 1998, pp. 157-174.
# "L'instant, l'existence et l'écriture : sur le Journal de Michel Leiris", Modernités n° 10 : Poétiques de l'instant, PUB, 1998, pp. 151-163.
# "Théâtralité du théâtre et théâtralité du quotidien dans le Journal 1942-1945 de Jean Cocteau", in B. Sosien (éd.), L'Espace, la théâtralité et l'imaginaire : Études de l'Équipe de Recherche sur l'Imaginaire Symbolique, Cracovie (Pologne), Abrys, 1998, pp. 239-247.
# "«L'œil se scrute» : le retour sur soi de l'œil intérieur dans l'œuvre de Charles Juliet", Iris : L'Œil fertile (Hors série), Université de Grenoble III, 1997, pp. 115-123.
# "Le dédoublement dans le journal intime après la Seconde Guerre mondiale : l'exemple du Journal I de Charles Juliet" in G.-A. Pérouse (éd.) Doubles et dédoublement en littérature, Publications de l'Université de Saint-Etienne, 1995, pp. 245-250.
# "Entre réel et mythologie : la souffrance, le désespoir et la tentation du suicide dans le Journal de Charles Juliet", Tangence n° 45 : Authenticité et littérature personnelle, Québec, octobre 1994, pp. 83-90.
# "La «pensée-suicide» : temporalité et tentation du suicide dans le Journal I de Charles Juliet", Annales de l'École Normale Supérieure de Cracovie (Études Romanes IV) : Où en sommes-nous dans les recherches autobiographiques?, 1994, Fascicule 171, pp. 145-155.
# "Modernité et écriture de soi", Tradition et modernité : Actes du Colloque du Centenaire de la philologie romane de l'Université Jagellonne, Cracovie (Pologne), Universitas, 1993, pp. 57-64.
!! Linguistique, didactique, vulgarisation, comptes rendus
!!! Ouvrages
# Les Difficultés du français. Podręczny słownik trudności języka francuskiego, Cracovie (Pologne), C&D, 1993, 210 p.
# L'Expression écrite et la composition française, Cracovie (Pologne), C&D, 1991, 108 p.
!!! Direction d'ouvrage
# [membre du comité de rédaction des publications du PEC Socrates-Lingua "Formation de formateurs"] Former les tuteurs de LVE: un défi européen [livre (213 p.), cassette vidéo et documents d'accompagnement], Faculdade de Letras da Universidade do Porto, 1999.
!!! Articles
# "''Pratiques du journal intime''", Nouvelle Revue Pédagogique, n° 642, `mars 2015`, pp.16-21.
# "Le Journal intime", Textes et Documents pour la Classe, n° 884, 15 novembre 2004, pp. 24-26.
# "L'Attribut ethnique : adjectif ou nom?", Revue roumaine de linguistique, tome XL, n°s 5-6, septembre-décembre 1995, pp. 263-270.
# "Bandes dessinées dans l'enseignement du français langue étrangère", Języki obce w szkole [Les langues étrangères à l'école], n° 2, marzec-kwiecien 1993, pp. 158-163.
!!! Comptes rendus
# « ''Lena Jedwab Rozenberg, Sans feu ni lieu. Carnets d'errance 1941-1945'' », La Quinzaine littéraire, 1er mars 2013.
# « ''Stendhal, Journaux et papiers : volume I – 1797-1804, édition établie par Cécile Meynard, Hélène de Jacquelot et Marie-Rose Corredor, Grenoble, Ellug, 2013'' », Genesis, n° 41, `2015`, pp. 203-204.
!!! Ouvrages
# ''Faulkner, As I Lay Dying'', Neuilly, Atlande, décembre `2017`.
!!! Codirection d’ouvrages
# ''Labilité des genres : le désir du hors genre'', textes publiés sous la codirection de Françoise Buisson et Arnaud Schmitt, Pau, Presses universitaires de Pau et des Pays de l’Adour, novembre `2018`. ''Introduction'' de Françoise Buisson et Arnaud Schmitt, 11-17.
!!! Articles de revues avec comité de lecture
# “''‘It wasn't on a balance’: slippage in As I Lay Dying''”, `numéro spécial` consacré à William Faulkner, publié par Gerald Preher, Frédérique Spill et Marie Liénard-Yeterian, Cycnos (LIRCES/Nice Sophia-Antipolis), `2018`.
# “''William Faulkner’s ‘My Grandmother Millard’ (1943) and Caroline Gordon’s ‘The Forest of the South’ (1944): comic and tragic versions of the Southern Belle Myth''”, Cahiers de la Nouvelle, Journal of the Short Story in English (Angers), n°67, `Special Issue`: Representation and Rewriting of Myths in Southern Short Fiction, Presses Universitaires de Rennes, `autumn 2016`, 111-124.
!!! Articles publiés dans des ouvrages collectifs
# “''The theatricality of writing in Grace King’s short stories: invisible women on the balcony''”, communication présentée au colloque international “`Grace King of New Orleans : Beyond Local Color`” organisé par l’IDEA et le EAAS Study Group on American Women Writers (8-9 octobre 2014, Metz). Texte accepté pour une publication dans un ouvrage sur Grace King sous la direction de Melissa Heidari.
# “''From the Burrow to the Orchard: Representations of Animality in Willa Cather's My Ántonia''. `In` //In the Country of Lost Borders: New Critical Essays on My Ántonia//”, edited by Stéphanie Durrans, Presses universitaires de Paris Nanterre, `2017`, 51-70.
# « ''Le rejet de la frontière dans Mardi (1849) de Melville'' ». `In` //Le Récit sans fin//, sous la direction de Michel Braud, Paris, classiques Garnier, `2016`, 99-115.
!!! Actes de colloques et de journées d’études
# “''From the Circle of Time and Memory to the Circus of Fiction: Bolton Lovehart and a Few Faulknerian Puppets''”, `in` //Faulkner and Warren//, edited by Christopher Rieger and Robert W. Hamblin, published for the Center for Faulkner Studies, Southeast Missouri State University Press, (Southeast Missouri State University, `2015`, 98-113.
!!! Communications non publiées
# “''The Square and the Stage : theatricality in William Faulkner’s Intruder in the Dust''”, communication présentée à Nice lors d’une journée d’étude organisée le `6 février 2019` l’université Sophia-Antipolis dans le cadre d’une collaboration avec les enseignants de CPGE du lycée Masséna de Nice.
# “''Of Mules and Men: the Bestiary in As I Lay Dying''”, communication présentée lors de la journée d’étude organisée le `26 janvier 2018` par Nicole Ollier (Université Bordeaux-Montaigne) dans le cadre du programme de l’option littérature à l’agrégation externe d’anglais.
# “''Faulkner’s and Hemingway’s Portraits of the Artist in Paris''”. Communication à la Faulkner & Hemingway Conference, organisée par le Center for Faulkner Studies, Southeast Missouri State University, `October 20-22, 2016`.
# “''Living bodies and corpses in My Ántonia''”, communication présentée lors des journées organisées les `2 et 3 décembre 2016` par Sébastien Mort et Brigitte Zaugg (Université de Lorraine – site de Metz) dans le cadre du volet américain du programme de tronc commun autour de My Ántonia, Willa Cather (1918) et « Les Républicains de Dwight D. Eisenhower à George W. Bush (1952-2008) ».
[[lien vers CAIRN|http://www.cairn.info/recherche_avancee.php]]
Plateforme de diffusion numérique de revues et d'ouvrages universitaires de ''sciences humaines et sociales'', essentiellement ''francophones''.
''Modifications'' dans les notices Zotero :
Publications `depuis 2015`
!!! `Direction` d’ouvrages et de numéros de revue (DO)
# ''L’Existentialisme en Espagne et chez les philosophes de l’exil''. Líneas, revue interdisciplinaire d’études hispaniques. [En ligne], Numéros en texte intégral, 7 / `décembre 2015`. Disponible sur <http://revues.univ-pau.fr/lineas/1813>.
# ''La cuestión de la diferencia/La question de la différence – La différence en question/La diferencia en cuestión'', sous la direction de Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña. Zaragoza : Ediciones Mira, `2016`, 608 p.
# ''Le Sujet en question. Ce qu’en pensent la littérature et la philosophie'', sous la direction de Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña. Bern : Peter Lang, `2018`, 256 p.
!!! Ouvrages scientifiques (ou chapitres) (OS)
# « ''Simone de Beauvoir et Jean-Paul Sartre font-ils du genre ?'' ». `In` : Nadia Mékouar-Hertzberg, F. Marie & N. Laporte (éds.), //Le genre, effet de mode ou concept pertinent ?//, Bern : Peter Lang, `2016`, p. 35-57.
# « ''L’Indifférence de l’être et le privilège ontologique de la qualité. Remarques sur la perception chez Sartre'' ». `In` : J. M. Aragüés, Th. Capmartin, Nadia Mékouar-Hertzberg & A. Saldaña (eds.), //La cuestión de la diferencia/La question de la différence – La différence en question/La diferencia en cuestión//, Zaragoza : Ediciones Mira, `2016`, p. 341-360.
!!! Articles dans des revues avec comité de lecture (ACL)
# « ''Juan David García Bacca et le débat Sartre/Heidegger'' », Etudes sartriennes, n°17-18, `Repenser l’esquisse d’une théorie des émotions`, Florence Caeymaex, Grégory Cormann et Vincent de Coorebyter (dir.), Bruxelles : Editions Ousia, `2015`.
# « ''Avant-propos à //L’Existentialisme en Espagne et chez les philosophes de l’exil//'' », Líneas [En ligne], Numéros en texte intégral, 7/ `Décembre 2015` - ''L’Existentialisme en Espagne, Avant-Propos'', mis à jour le : 29/01/2016, URL : https://revues.univ-pau.fr/lineas/1817.
# « ''À propos de //Filosofía actual y existencialismo en España// (1955). Ou les méditations de Julián Marías sur l’absence d’existentialisme en Espagne'' », Líneas [En ligne], Numéros en texte intégral, 7/ `Décembre 2015` - `L’Existentialisme en Espagne, Partie 1 – Existentialisme littéraire`, mis à jour le : 29/01/2016, URL : https://revues.univ-pau.fr/lineas/1818.
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/CATT/]]][[[Membres|https://catt.univ-pau.fr/fr/organisation/membres.html]]][[[idHAL|idHAL-CATT]]]
@@
@@.aa
HAL <--> RePEC ?
@@
!!!Publiants
<<list-links [tag[CATT]tag[publiant]]>>
<$details summary="Enseignants-chercheurs">
# [[Bouoiyour, Jamal]]
# [[Candau, Fabien]]
# [[Cassagnard, Patrice]]
# [[Chort, Isabelle]]
# [[Darrigues-Cheval, Marie-Laure]]
# [[Darrigues, Fabrice]]
# [[Denis, Gérard]]
# [[Domecq, Jean-Pierre]]
# [[Emonnot, Claude]]
# [[Haritchabalet, Carole]]
# [[Jaussaud, Jacques]]
# [[Lachet-Touya, Florence]]
# [[Le Cacheux, Jacques]]
# [[Montaud, Jean-Marc]]
# [[Njocke, Anselme]]
# [[Peron, Olivier]]
# [[Raffestin, Maryse]]
# [[Regnault, Henri]]
# [[Rey, Serge]]
# [[Uhaldeborde, Jean-Michel]]
</$details>
<$details summary="Chercheurs associés">
# [[Artzrouni, Marc]]
# [[Bilek, Arnaud]]
# [[Deisting, Florent]]
# [[Dienesch, Elisa]]
# [[Laborde, David]]
# [[Makhlouf, Farid]]
# [[Mevel, Simon]]
# [[Mughal, Mazhar]]
# [[Naamane, Adil]]
# [[Pecastaing, Nicolas]]
</$details>
!!! Collection HAL
!!!! consultation par auteurs
* distinguer Enseignants-Chercheurs, Chercheurs associés, doctorants...
* filtres dates
!!! Working papers
[[collection RePEC|https://ideas.repec.org/s/tac/wpaper.html]]
!!! Classement des revues
# Lire le rapport au format rtf
# Créer un tableau collectant les docid
# Interroger l'API de HAL pour récupérer l'issn et la date de publi associé à chaque docid
# requéter le fichier csv de classement des revues pour récupérer les rangs cnrs,...
# écrire les rangs de chaque référence dans le rapport rtf
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/CDRE]]][[[Membres|https://cdre.eu/qui-sommes-nous/enseignants-chercheurs]]] + [[[idHAL|idHAL-CDRE]]]
@@
!!! Liste des Publiants
<<list-links [tag[CDRE]tag[publiant]]>>
!!! Anciens
<<list-links [tag[CDRE]tag[ancien]]>>
!!! Chapitres d’ouvrage collectif
# <$checkbox/> Entrée « ''Echelles'' » dans A. Smith, C. Hay, `Dictionnaire` d’économie politique, Presses de sciences po, `à paraitre` en septembre 2018.
# <$checkbox/> « ''Le débat public, ressource cognitive et politique''. » dans L. Guay et P. Hamel, Les aléas du débat public, Presses universitaires de l’Université Laval, septembre 2018
# <$checkbox/> « ''Hydrocarbures non conventionnels et territoires : (més)usages locaux de la transition énergétique'' » dans Cacciari et al., Les approches critiques de la transition énergétique dans les sciences humaines et sociales, `à paraitre`
# <$checkbox/> « ''Les leçons de la controverse sur le gaz de schiste en France et au Québec'' », dans Y. Gunzburger (dir.), Le gaz de charbon en Lorraine, quelle intégration dans le territoire ?, Éditions Alpha du CNRS, 2017
# <$checkbox/> Avec Stéphane Moyson, « ''The French ban on hydraulic fracturing and the attempts to reverse it: Social mobilization, professional forums and coalition strategies'' », dans C. Weible, T. Heikkila, K. Ingold et M. Fischer, Policy Debates on Hydraulic Fracturing: Comparing Coalition Politics in North America and Europe, Palgrave Macmillan, New-York, 2016
!!! Article dans des revues sans comité de lecture (1)
# <$checkbox/> Avec Stéphane Moyson, « ''Dynamiques de politique publique et fracturation hydraulique : Un programme de recherche comparatif international'' », Cahier des fellows de l’Iméra, mars 2017
!!! Rapport d’expertise (1)
# <$checkbox/> Avec Michel Combarnous (coord.), « ''L’énergie régional et la transition énergétique'' », rapport Acclimaterra, Conseil régional de Nouvelle Aquitaine, 2018
<<<
Ce chapitre vise à produire un panorama des sources de production et de consommation d’énergie dans la nouvelle région et des perspectives en termes de développement des énergies renouvelables. Outre des considérations générales, le chapitre présente le bouquet énergétique régional par rapport aux enjeux de la transition énergétique et de la lutte au changement climatique.
<<<
!!! Compte-rendu de lecture (3)
# <$checkbox/> O. Labussière et A. Nadal, ''L’énergie des sciences sociales, Alliance Athéna, 2015'' dans Revue Française de Science Politique, 65 (5-6), 2015, p.932-933.
# <$checkbox/> Y.-M. Abraham, D. Murray (dir.), ''Creuser jusqu’où ? Extractivisme et limites à la croissance, Ecosociété, 2015'', dans Revue Française de Science Politique, 66 (3-4), 2016
# <$checkbox/> H. Collins, R. Evans, ''Why democracies need science, Polity Press, 2017'', dans Revue Française de Science Politique, 67 (5), 2017, p.955-956
!!! Organisation de panels et de journées d’étude
# <$checkbox/> ECPR General Conference, 5 au 9 septembre 2017, Oslo | Panel chair et discutant des panels « The influence of official reports in policy-making and for the management of controversies » et “The shifting boundaries of expertise”
# <$checkbox/> Congrès de l’AFSP, juillet 2017, Montpellier | Organisateur des ST75 « Le rapport au rapport » avec V. Caby (CED) et ST17 « Politiques énergétiques : modèles alternatifs et dynamiques locales » avec S. Topçu (EHESS),
# <$checkbox/> Organisation d’une journée d'étude à Cap Sciences à Bordeaux le 10 avril 2017 sur la thématique «Extraction des ressources : quelle transition énergétique pour la région Nouvelle-Aquitaine ?» avec S. Roche (Gretha)
# <$checkbox/> World Congress of Political Science, 23 au 28 juillet 2016, Poznan | Organisateur et discutant du panel (RC30) “Toward a New Extractivist Paradigm in the Global North?”
# <$checkbox/> ECPR General Conference, 26 au 29 août 2015, Montréal | Panel Chair et discutant du panel “Knowledge and ignorance in policy-making”
# <$checkbox/> Organisateur de la journée d’étude de l’AJPB, 16 avril 2015, « Entre exceptionnalité et banalité : Penser la production et la circulation des savoirs »
!!! Conférences et communications
* Congrès internationaux :
# <$checkbox/> International Public Policy Association Workshop, 25-29 juin 2018, Pittsburg, Etats-Unis “''Carbon capture and storage: resilience of a technical solution against climate change''”
# <$checkbox/> “The Right use of the Earth”, 1er juin 2018, Paris “''Increase inventory, control downstream flows: Politicization of the underground and conflictual definition of the limits of Earth''”
# <$checkbox/> ECPR Workshop, avril 2018, Nicosia, Chypre | Avec Stéphane Moyson, David Aubin, Maximilien Plancq et Baptiste Fievet « ''Which First? Relations between Policy Learning and Policy Change in the French Politics of Hydraulic Fracturing''”
# <$checkbox/> ECPR General Conference, 6 au 9 septembre 2017, Oslo, Norvège | Panel “Politics of Scientific and Non-Scientific Knowledge Systems in Global Governance”: “''Unconventional Fuel Controversy in Quebec: Between Coproduction of Knowledge and Legal Reform''”
# <$checkbox/> Congrès de l’AFSP, juillet 2017, Montpellier, ST16 « Savoirs et pouvoirs bureaucratiques dans le gouvernement de la nature », avec Yann Fournis et Amélie Dumarcher, « ''La construction de l’expertise du Bureau d’Audiences Publique sur l’Environnement (Québec) : le cas des projets éoliens (1997-2016)'' »
# <$checkbox/> World Congress of Political Science, 23 au 28 juillet 2016, Poznan, Pologne | RC30 “Comparative public policy”, panel “Public policy and uncertainty”, “''Controversial uncertainty: struggles over the shale gas industry in France and Quebec''”
# <$checkbox/> Congrès de l’Acfas, 9 au 13 mai 2016, Montréal | « ''Hydrocarbures non conventionnels au Québec: un processus de coproduction de connaissances et de gouvernance de la fracturation hydraulique'' » `et` « ''Quelle légitimité pour les experts ? Luttes pour le cadrage de la controverse sur le gaz de schiste en France et au Québec'' »
# <$checkbox/> International Conference on Public Policy, 28 juin 2013, Grenoble, France | Panel « The use of expert and expertise in public policy making », “''Sociotechnical controversy: the impossible accommodation between expertise and public participation – The shale gas debate in France and Quebec''”
*Journées d’étude, colloques et invitations
# <$checkbox/> Journées de la science politique, 4-5 juillet 2018, Paris, « ''L’extraction des ressources naturelles du sous-sol : une accumulation concentrée de richesses et de pouvoirs'' »
# <$checkbox/> Présentation du rapport Acclimaterra, 8 février 2018, Bordeaux, « ''L’énergie régional et la transition énergétique'' »
# <$checkbox/> Northern Lights Project workshop, 6 février 2018, Pau, France, “''Social risk and social science engagement with stakeholders''”
# <$checkbox/> Journée d’étude sur les politiques locales de l’énergie, 22 novembre 2017, IEP Rennes, « ''Le gaz de charbon en Lorraine : héritage du passé et redéfinition de la transition énergétique'' »
# <$checkbox/> Journée d’étude sur les sous-sols dans le cadre de la focale Transition du laboratoire PASSAGES (UMR 5319), Université de Pau, 29 mai 2017, « ''La controverse sur le gaz de schiste et la politisation du sous-sol'' »
# <$checkbox/> Cycle de conférences du Centre d’études juridiques et politiques "la démocratie en questions", Université de La Rochelle, 23 mars 2017, « ''Démocratie environnementale: l'exploration du gaz de schiste en France et au Québec'' »
# <$checkbox/> Cycle de conférences interdisciplinaires ENERGIE, 10 mars 2017, à l'IMERA, Aix-Marseille Université, avec Stéphane Moyson, « ''The dynamic of policy processes on hydraulic fracturing: An international comparative research project'' »
# <$checkbox/> Colloque : Approches critiques de la « transition énergétique » dans les sciences humaines et sociales, 9 et 10 juin 2016, Strasbourg, « ''Hydrocarbures non conventionnels et territoires : (més)usages locaux de la transition énergétique'' »
# <$checkbox/> "''"Non au gaz de schiste" - Cadrages et débordements de la controverse sur les hydrocarbures non conventionnels en France et au Québec''", Les Midis-étudiants de l'Université Laval, 4 mai
# <$checkbox/> "''"Non au gaz de schiste" - Cadrages et débordements de la controverse sur les hydrocarbures non conventionnels en France et au Québec''", Conférences du Centre de recherche sur les Politiques et le Développement Social (CPDS), Université de Montréal, 26 avril
# <$checkbox/> "''"Non au gaz de schiste" - Cadrages et débordements de la controverse sur les hydrocarbures non conventionnels en France et au Québec''", Séminaire du groupe de recherche interdisciplinaire sur le développement régional de l'Est du Québec (GRIDEQ), Université du Québec à Rimouski, 28 avril
# <$checkbox/> Journée d’étude de l’Association des jeunes politistes de Bordeaux (AJPB), 16 avril 2015, Bordeaux, « ''Diviser pour régner – participation publique et cadrage de la controverse du gaz de schiste en France et au Québec'' »
# <$checkbox/> Séminaire de recherche du Groupe de Recherche sur les Institutions et les Mouvements Sociaux, 3 novembre `2014`, Université Laval, Québec, "''Les acteurs influant sur la controverse des gaz de schiste en France et au Québec''" `Dèja dans HAL`
# <$checkbox/> Séminaire interne Gazhouille, 27 juin `2014`, Nancy, « ''Mobiliser dans un monde incertain : le gaz de houille et la mise à l’agenda de la controverse sur les hydrocarbures non conventionnels en France et au Québec'' »
# <$checkbox/> Atelier Sociologie politique des sciences, 25 mars `2014`, Sciences Po Bordeaux, ''Discussion et présentation de « Carbon Democracy » de Timothy Mitchell''
# <$checkbox/> Séminaire Sociologie et politiques de l’énergie, 14 mars `2014`, EHESS, Paris, “''Mobiliser dans un monde incertain : quelle place pour la participation publique dans la controverse sur les gaz de schiste ? Une comparaison France-Québec'' »
# <$checkbox/> Journées doctorales du GIS Participation du public, décision, démocratie participative, 22 novembre `2013`, Université de Bordeaux, « ''L’impossible accommodement entre participation publique et expertise dans la controverse sociotechnique sur les gaz de schiste'' »
# <$checkbox/> Journées doctorales du RT37 « Médias, engagement et mouvements sociaux », 29 mars `2013`, Sciences Po Bordeaux, “''Des stratégies médiatiques pour construire sa définition d’un problème public : le cas des gaz de schiste en France et au Québec''”
[[page web de l'équipe|https://optima.univ-pau.fr/fr/index.html]] | [[Sous-Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/]] | [[idHAL|idHAL-Optima]]
<<list-links [tag[CREG]tag[publiant]tag[Optima]]>>
* `abstract` {Abstract}
* `doi` (MT HAL : doi)
* `keywords` (MT HAL : keyword). Obligatoire dans le domaine des shs
* `note` (MT HAL : comment)
* `pmcid` (MT HAL : identifiant PubMed central)
* `pmid` (MT HAL : identifiant PubMed)
* `url` (MT HAL : seeAlso)
* `x-abstract_fr` et `x-abstract_en` (MT HAL : abstract) si on veut spécifier le résumé dans une autre langue (sinon champ abstract)
* `x-anrproject` (MT HAL : anrProject)
* `x-classification` (MT HAL : classification)
* `x-collaboration` (MT HAL : collaboration)
* `x-domain` (MT HAL : domain)
* `x-europeanproject` (MT HAL : europeanProject)
* `x-funding` (MT HAL : funding)
* `x-jel` (MT HAL : jel) : ATTENTION, non pris en compte actuellement
* `x-keywords_fr` et `x-keywords_en` (MT HAL : keyword) si on veut spécifier les mot-clés dans une autre langue (sinon champ keywords)
* `x-licence` (MT HAL : licence, valeurs possibles : Marque du Domaine Public, Public Domain Mark, Paternité – Pas d’utilisation commerciale – Pas de modification, Attribution – NonCommercial – NoDerivatives, Paternité – Pas d’utilisation commerciale – Partage selon les Conditions Initiales, Attribution – NonCommercial – ShareAlike, Paternité – Pas d’utilisation commerciale, Attribution – NonCommercial, Paternité – Pas de modifications, Attribution – NoDerivatives, Paternité – Partage selon les Conditions Initiales, Attribution – ShareAlike, Paternité, Attribution, CC0 – Transfert dans le Domaine Public, CC0 – Public Domain Dedication, Copyright (Tous droits réservés), Copyright, Domaine public, Public Domain, Licence Ouverte – etalab, Open licence – etalab)
* `x-localreference` (MT HAL : localReference)
* `x-mesh` (MT HAL : mesh)
* `x-onbehalfof` (listes des comptes HAL séparés par ‘;’ pour ajouter les propriétaires au dépôt). Ex: x-onbehalfof={test;identifiant;compte;1}
* `x-subtitle` (MT HAL : subTitle)
* `x-title_fr` et `x-title_en` (MT HAL : title) si on veut spécifier le titre dans une autre langue (sinon champ title)
* `x-writingdate` (MT HAL : writingDate)
!!!Pour un dépôt en full text, champs obligatoires à tous les types BibTeX :
* `pdf` (lien http ou ftp vers le pdf)
* `x-filesource` = {Valeurs possibles: 'author','greenPublisher','publisherAgreement','publisherPaid'}
Code à saisir dans la zone de texte `Postscript` de l'onglet `avancé` des préférences de `Better BibTeX` (extension Zotero)
@@color:red;
!!! ''Ajouter des champs''
@@
```javascript
this.add({name: 'field', replace: true, value: your_field_value})
```
* `x-conferencestartdate`
**on place le contenu de 'date' dans un nouveau champs 'x-conferencestartdate'
```javascript
this.add({name: 'x-conferencestartdate', replace: true, value: item.date})
```
* `x-onbehalfof`
** les comptes sont soit l'identifiant (login) soit l'uid de l'utilisateur
** Ex: x-onbehalfof={romary;102211}
```javascript
this.add({name: 'x-onbehalfof', replace: true, value: idhal_i})
```
* `x-europeanproject_id`
```javascript
this.add({name: 'x-europeanproject_id', replace: true, value: XXXX})
```
* `x-audience` = {international}
* `x-stamp`=ALTER
** tampon de la collection
@@color:red;
!!! ''Renommer un champ à l'export''
@@
```javascript
if (this.has.nomOriginal) {
this.has.nomOriginal.name = 'nouveaunom';
}
```
*exemple
```javascript
if (this.has.Archive) {
this.has.Archive.name = 'x-onbehalfof';
}
```
*''seulement pour certains types de documents''
```javascript
if ((this.item.itemType == 'TypedeDoc' && this.has.nomOriginal) {
this.has.nomOriginal.name = 'nouveaunom';
}
```
*exemple pour renommer le champ `Consulté le` en champ `x-conferencestartdate` ''uniquement'' pour un acte de colloque :
```javascript
if ((this.item.itemType == 'conferencePaper' && this.has.urldate) {
this.has.urldate.name = 'x-conferencestartdate';
}
```
@@color:red;
!!! ''Changer le type de document''
@@
*from `collection` to `book`
```javascript
if (Translator.BetterBibLaTeX) {
if (this.referencetype === 'collection') this.referencetype = 'book'
}
```
*from `book` to `proceedings` (''DOUV'')
```javascript
if (this.referencetype === 'book' && this.has.Editor && !this.has.Author) this.referencetype = 'proceedings'
}
```
@@color:red;
!!! ''Modification en fonction d'un tag''
@@
* `Compte-rendu` --> ''@note''
```javascript
if (Translator.BetterTeX && item.tags && item.tags.includes('Compte-rendu')) {
this.referencetype = 'note'
}
```
---
@@color:red;
!!!''brouillon''
@@
this.add({name: 'x-conferencestartdate', replace: true, value: item.date})
---
```javascript
if (Translator.BetterTeX && item.date) {
const date = Zotero.Utilities.strToDate(item.date)
if (typeof date.year === 'number') item.citekey = `yer-${10000 - date.year}_${item.citekey}`
}
return false
```
---
Champs à renseigner ou modifier :
*''Titre'' : du chapitre (on peut utiliser des [[balises html|Exposants, indices dans les titres]])
*''Auteur'' : auteur du chapitre ; entrer le nom et prénom en deux parties.
*''Auteur(s) du livre'' (bien changer le champ à l’aide de la flèche à gauche de la fonction)
*''Résumé'' (si dispo et si celui du chapitre et non du livre)
*''Titre du livre''
*''Collection'' [Eventuellement]
*''N° de Collection'' [si dans une collection]
*''Volume'' : introduire le numéro par `t.`,`vol.` ou `fasc.`.
*''Nb de volumes'' : [si ouvrage représente la totalité des volumes]
*''Lieu'' : ville, ''supprimer le pays''
*''Éditeur'' : `Éditeur 1 / Éditeur 2` ... (Pour Sudoc, supprimer complément année d’impression)
*''Date'' : complète si possible (pour déterminer l'année universitaire)
*''Pages'' : du chapitre (sans ~~p.~~) (`xxx-xxx`)
*''Langue'' : code sur deux caractères (anglais [en] ; français [fr] ; italien [it]...) [[liste|http://www.loc.gov/standards/iso639-2/php/code_list.php]]
*''ISBN'' : si possible
*''Url'' : Url pérenne du chapitre, du livre (.org et premalink) ou rien.
!!! [[Logos et modèles sur l'intranet uppa|https://intranet.univ-pau.fr/fr/mes-outils/communiquer/logo-modeles.html]]
!!!!logo
* adapter à son service
* versions vectorisées dispo (.eps)
!!!! Police
* ''calibri''
!!!! Couleurs
* texte/aplat
* CMJN, RVB, web
!!!! Modèles
* ppt
* docx
[...]
!!!! Signature de messagerie
!!! Ouvrages scientifiques ou chapitres d’ouvrages (OS) :
* Ouvrages :
# I. Chol, R. Périchon (éd.), Carnets d’excursions en Forez de Vincent Durand, édition commentée et annotée, Montbrison, La Diana, 1991,156 p.
# I. Chol, C. Moncelet, Correspondance Alexandre Vialatte – Henri Pourrat, Tome 4, Les Années d’espérance (1928-1934), édition commentée et annotée, Presses Universitaires Blaise-Pascal, « Cahiers d’études sur les correspondances des XIXe et XXe siècles », Clermont-Ferrand, 2006, 450 p.
# I. Chol, Pierre Reverdy, poésie plastique. Formes composées et dialogue des arts, Genève, Droz, coll. « Histoire des idées et critique littéraire », vol. 42, printemps 2006, 350 p.
* En préparation :
# I. Chol, La Contrainte intérieure. Etude sur la poésie française moderne et contemporaine.
* Chapitres d’ouvrages
# I. Chol, « Yves Bonnefoy, Rue Traversière, le centre et l’à-côté », dans Des Récits poétiques contemporains (études rassemblées et présentées par S. Coyault), Clermont-Ferrand, Publications de l’Université Blaise-Pascal, coll. « Cahiers du CRLMC », 1996, p. 87-112.
# I. Chol, « Philippe Jaccottet, La Promenade sous les arbres, à la limite fécondante de la poésie », dans Promenades et écriture, (volume dirigé par A. Montandon), Clermont-Ferrand, Publications de l’Université Blaise-Pascal, coll. « Cahiers du CRLMC », 1996, p. 243-255.
# I. Chol, « Formes de jeux, jeux de formes : Raymond Queneau et le sonnet », dans Pérennité des formes poétiques codifiées (volume dirigé par L. Cassagnau et J. Lararrige), Clermont-Ferrand, Presses Universitaires Blaise-Pascal, coll. « Cahiers du CRLMC », 2000, p. 139-159.
# I. Chol, « Ruinification et discontinuation dans quelques textes de Danièle Sallenave », dans La Mémoire en ruine ou les songes archéologiques de la création moderne et contemporaine (sous la direction de V.-A. Deshoulières et P. Vacher), Clermont-Ferrand, Presses Universitaires Blaise-Pascal, coll. « Cahiers du CRLMC », 2000, p. 191-202.
# I. Chol, « Victor Segalen en Chine : de l’archéologie à la poétique », dans La Mémoire de lieux, Hommage à Robert Périchon (études rassemblées par I. Chol), Clermont-Ferrand, Presses Universitaires Blaise-Pascal, CRCA, coll. « Erga », T. 8, 2006, p. 209-231.
# I. Chol, « Les Métamorphoses de l’espace », dans L’Espace du livre (sous la direction d’A. Milon et M. Perelman), Paris, Presses de l’Université de Paris X, 2006, p. 395-415.
# I. Chol, « Ce qui fait dess(e)in, Pierre Reverdy, poète typographe et calligraphe », dans Calligraphie / typographie : usages littéraires (sous la dir. de J. Dürrenmatt), éd. L’improviste, 2009, p. 191-208.
# I. Chol, « ''La mise en scène du processus de création dans l’œuvre de Gérard Titus-Carmel'' », `dans` //L’Hospitalité des savoirs, Mélanges offerts à Alain Montandon//, Presses Universitaires Blaise-Pascal, 2011, p. 739-754.
# I. Chol, « ''Avant-gardes'' », `dans` //Hands Free / Les Mains Libres, From Dada to Lettrism and Body Art. Jean Petithory, avant-garde publisher and bookseller// (J. Khalfa, I. Chol, G. Théval, F. Acquaviva), Black Apollo Press, 2013, p. 15-25.
# I. Chol, I. Serça, « ''Point de vue moderniste'' », `postface` de l’ouvrage Ponctuer l’œuvre médiévale (V. Fasseur, C. Rochelois éd.), Genève Droz, `2016`, p. 655-670.
# I. Chol, « ''Spatialisation des textes poétiques et discours des poètes. Mots, concepts, contextes'' », `dans` //LiVres de pOésie Jeux d’eSpace//, I. Chol, B. Mathios, S. Linarès éd., Paris Champion, `2016`, p. 94-119.
# I. Chol, « ''Espacement et nouveauté des formes dans la poésie française'' », `dans` //LiVres de pOésie Jeux d’eSpace//, I. Chol, B. Mathios, S. Linarès éd., Paris Champion, `2016`, p. 414-442.
# I. Chol, « ''La mesure du livre'' », //Gérard Titus-Carmel. Pictura / Poesis//, S. Forero Mendoza éd., Pau, La Maison des éditions, `2018`, p. 14-23.
* A paraître :
# I. Chol, « Entre clôture et ouverture, les nœuds du redéploiement dans la poésie contemporaine », dans Fermeture/Accès, Hommage à Hédia Abdelkéfi, Publication de l’Université de Tunis El Manar, 2019.
!!! Direction d’ouvrages ou de revues (DO) :
# I. Chol, C. Moncelet (éd.), Les Écritures radiophoniques, actes du colloque de novembre 1996, Clermont-Ferrand, Association des publications de la Faculté des Lettres et Sciences Humaines, « Cahiers du CRLMC », 1997, 240 p.
# I. Chol, R. Périchon (éd.), La Terre et l’écrit, de la découverte archéologique au texte scientifique et littéraire, actes du colloque de novembre 1997, Montbrison, La Diana, « Recueils de Mémoires et documents », 2000, 188 p.
# I. Chol (éd.) Poétiques de la discontinuité, de 1870 à nos jours, actes du double colloque (Sfax, décembre 2001 / Clermont-Ferrand, décembre 2002), Clermont-Ferrand, Presses Universitaires Blaise-Pascal, coll. « Littératures », 2004, 516 p.
# I. Chol (éd.), La Mémoire des lieux, Hommage à Robert Périchon (1928-1999), Clermont-Ferrand, Presses Universitaires Blaise-Pascal, CRCA, coll. « Erga », T. 8, 2006, 252 p.
# I. Chol, J. Khalfa (éd.), ''Spaces of the book : materials and agents of the text/image creation (XXth and XXIst Centuries) / Les Espaces du livre : supports et acteurs de la création Texte/Image (XXe-XXIe s.)'', Oxford, Peter Lang, `2015`, 170 p.
# I. Chol, W. Ghorbel (éd.), ''L’Hétérogène, dans les littératures de langue française, actes du colloque de Gafsa (Tunisie) d’avril 2012'', Paris, L’Harmattan, `2015`, 290 p.
# I. Chol, B. Mathios, S. Linarès (éd.), ''LiVres de pOésie Jeux d’eSpace'', Paris, Champion, `2016`, 708 p.
* A paraître :
# I. Chol (éd.), Gérard Titus-Carmel, l’épreuve et la nécessité, actes du colloque de novembre 2018, Tarabuste, `février 2019`.
!!! Articles dans des revues internationales ou nationales avec comité de lecture (ACL) :
# I. Chol, « La parataxe dans Le Médisant par bonté de Joë Bousquet », revue Lendemains, Berlin, n° 85, 1997, p. 25-39.
# I. Chol, « Joë Bousquet, La Connaissance du soir, les éclats du sujet », revue Francofonia, numéro spécial Joë Bousquet, poète de l’inoubliable (édité par A. Marchetti), Bologne (Italie), Olschki Editore, 2001, p. 55-76.
# I. Chol, « Pierre nue, pierre ornée, pierre écrite d’Yves Bonnefoy : le creuset d’une utopie », revue L’Esprit créateur, vol. XLV, n° 2, Ecriture des pierres / Pierres écrites : territoire de l’imaginaire minéral dans la littérature française du XXe siècle (édité par S. Ben Ali), The University of Minnesota, Minneapolis (Etats-Unis), 2005, p. 62-75.
# I. Chol, « Pierre Reverdy, à vers libre rime libre », revue Poétique, n° 145, Paris, Le Seuil, février 2006, p. 99-112.
# I. Chol, « La poésie de Guy Goffette, une intimité anonyme », revue L’Information littéraire, décembre 2006, p. 28-34.
# I. Chol, « “Le monde entier des choses“. Figement et lexicalisation dans Vents de Saint-John Perse », revue L’Information grammaticale, janvier 2007, p. 32-36.
# I. Chol, « Le modèle cartographique dans l’œuvre d’Emmanuel Hocquard », revue en ligne Textimage, numéro 2 : Cartes et plans, Lyon, 2008, n.p. (http://www.revue-textimage.com/03_cartes_plans)
# I. Chol, « La poésie spatialisée depuis Mallarmé : les limites du vers », revue Poétique, Paris, Le Seuil, juin 2009, p. 231-247.
# I. Chol, « ''Enoncés fragmentés et système ponctuant : l’exemple de Pierre Chappuis'' », revue Le Discours et la langue, Bruxelles, Belgique, n° 3, avril 2011, p. 139-158.
# I. Chol, « ''Espace d’observation, espace d’écriture : questions de Théorie et de Méthode'' », Arborescences, Revue d’Etudes Françaises, Université de Toronto (Canada), //Lire le texte et son espace : outils, méthodes, études//, sous la dir. de J. Paterson, A. Ziethen, C. Lebrec, n° 3, juillet 2013, n.p. (http://www.erudit.org/revue/arbo/2013/v/n3/index.html)
# I. Chol, « ''Configurations poétiques et espace matériel du livre d’avant-garde'' », revue Formules, n° 19, `Formes : Supports/Espaces` (sous la dir. de C. Reggiani, J. Thomas, C. Reig, H. Salceda), Université du Nouveau-Monde, `juin 2015`, p. 105-120.
# « ''Un point ce n’est pas tout. La ponctuation dans la poésie contemporaine'' », Cahiers de l’Association Internationale des Etudes Françaises, n° 68, Paris, `2016`.
# « ''Le poème à la rencontre de l’espace du livre'' », Revue européenne de recherche sur la poésie, n° 2, Classique-Garnier, `février 2017`, p. 131-148.
# « ''Dynamique du vers dans l’œuvre d’André Chénier'' », revue L’Information grammaticale, n° 158, `janvier 2018`.
* A paraître :
# I. Chol, « Retrait et amplification dans l’œuvre poétique de Vénus Khoury-Ghata », dans revue Littérature (UPM, Toulouse), dir. Jean-Pierre Zubiate, 2019.
# I. Chol, « Toujours mouvements », dans Revue des Sciences Humaines (Presses Universitaires du Septentrion), numéro sur Jean-Louis Giovannoni, 2019.
*En préparation :
# I. Chol, A. Reverseau, « La poésie comme une image », revue Etudes françaises (Montréal), numéro sur les rapports entre poésie et images photographiques et cinématographiques, dirigé par K. Abadie, 2020.
!!! Autres articles dans des revues non répertoriées dans des bases de données internationales (ACLN) :
# R. Périchon, en collab. avec F. Bouzon, I. Chol, P. Jacquet (collab.), « Perles et bracelets en pâte de verre provenant de l'oppidum gallo-celte d'Essalois », dans Bulletin de la Diana, tome 48, fasc. 6, 1984, p. 265-285.
# I. Chol, « Les têtes coupées », dans Bulletin de La Diana, tome 51, n° 7, 1990, p. 465-471.
# I. Chol, « ''Man Ray, Paul Eluard : la liberté dans le livre'' », L’Ecole des Lettres, janvier 2014. Site internet : http://www.ecoledeslettres.fr/blog/arts/man-ray-paul-eluard-la-liberte-dans-le-livre/ (espace lycée du site : http://www.ecoledeslettres.fr/pages_html_edl/public/dossiers_lycee/lycee_04_2011.php)
!!! Communications avec actes dans un congrès international ou national (ACT) :
# I. Chol, « Le poème en prose : approche stylistique », actes du colloque international d’Angers, Sablé, Solesmes, Le Centenaire de Pierre Reverdy, (organisé par Y. Leclerc et G. Cesbron), du 14 au 16 septembre 1989, Presses de l’Université d’Angers, 1990, p. 529-542.
# I. Chol, « Les jattes d’Aulnat », actes de la Journée d’études sur la céramique (organisé par R. Périchon, 1991), Céramiques III, Saint-Etienne, OPUS, 1992, p. 25-35.
# I. Chol, « Le traitement de l’analogie dans les œuvres de jeunesse de Giuseppe Ungaretti (L’Allegria, 1919) et Pierre Reverdy (La Lucarne ovale, 1916 ; Les Ardoises du toit, 1918) », actes du colloque international Voix d’ouest en Europe, souffles d’Europe en ouest (organisé par G. Cesbron), du 21 au 24 mai 1992, à Angers, Presses de l’Université d’Angers, 1993, p. 529-542.
# I. Chol, « Le dieu de l’argile dans Le Prince Jaafar de Georges Duhamel », actes de la Journée d’études Céramique (organisé par R. Périchon, 1996), Saint-Etienne, OPUS, 1997, p. 79-89.
# I. Chol, « Pierre Reverdy, En Vrac, de la maxime à l’aphorisme poétique », actes du colloque international Désirs d’aphorisme (organisé par C. Moncelet), du 6 au 8 avril 1995, à Clermont-Ferrand (CRLMC), Presses Universitaires Blaise Pascal, coll. « Littératures », 1998, p. 83-99.
# I. Chol, « Au rythme Des parfums et des jours », actes du colloque international Ecritures radiophoniques (organisé par I. Chol et C. Moncelet), du 14 au 15 novembre 1996, à Clermont-Ferrand (CRLMC), Publications de la Faculté des Lettres et Sciences Humaines, coll. « Cahiers du CRLMC », 1997, p. 183-199.
# I. Chol, « Lecture spatiale de Risques et Périls : l’impossible avènement du sujet », actes du colloque international L’Histoire et la Géographie dans le récit poétique (organisé par S. Coyault), 3-4 avril 1997, à Clermont-Ferrand (CRLMC), Presses Universitaires Blaise-Pascal, coll. « Cahiers du CRLMC », Clermont-Ferrand, 1998, p. 415-430.
# I. Chol, « Du “bricolage”poétique dans quelques œuvres de la première moitié du XXe siècle : Robert Desnos, Max Jacob, Raymond Queneau », Actes des Journées d’Etudes Françaises en Slovaquie (programme européen PHARE), du 18 au 20 septembre 1997, Université Comenius, Bratislava (Slovaquie), Facultés des Lettres et de Pédagogie, 1998, p. 79-110.
# I. Chol, « Jean Follain, ou les jeux multiples des ombres », actes du colloque international Poétique de l’indéterminé, le caméléon au propre et au figuré (organisé par V. Deshoulières), du 22 au 24 septembre 1997, à Clermont-Ferrand (CRLMC), Presses Universitaires Blaise-Pascal, coll. « Littératures », 1998, p. 163-180.
# I. Chol, « Le processus métaphorique dans Il ne fait pas assez noir de Joë Bousquet », actes du colloque international Joë Bousquet et l’écriture, (organisé par L. Cantaloube-Ferrieu et F.-Ch. Gaudard), du 6 au 8 novembre 1997, à l’Université de Toulouse-Le-Mirail, Paris, L’Harmattan, 2000, p. 217-233.
# I. Chol, « De l’archéologie à l’écriture, trajectoires pour une lecture du passé », actes du colloque international La Terre et l’écrit, de la découverte archéologique au texte scientifique et littéraire (organisé par I. Chol et R. Périchon), des 14 et 15 novembre 1997, Montbrison/Saint-Etienne, La Diana, « Recueils de Mémoires et Documents », 2000, p. 165-181.
# I. Chol, « L’analyse rythmique de la poésie : quelques difficultés méthodologiques », actes des Journées d’Etudes Françaises en Slovaquie, du 21 au 23 septembre 1999, Université Comenius, Bratislava (Slovaquie), Faculté des Lettres et de Pédagogie, 2000, p. 23-35.
# I. Chol, « Constat du discontinu, pratique de la discontinuité dans l’œuvre poétique de Pierre Reverdy », actes du double colloque international Poétiques de la discontinuité, de 1870 à nos jours (organisé et édité par I. Chol), du 12 au 14 novembre 2001, à Sfax, et du 4 au 6 décembre 2002, à Clermont-Ferrand, Presses Universitaires Blaise-Pascal, coll. « Littératures », 2004, p. 323-343.
# I. Chol, « Exclusion de la langue, jouissance des mots, dans l'œuvre romanesque de Jean Genet », actes du colloque international L’Écrivain et sa langue : roman d’amour, de Marcel Proust à Richard Millet (organisé et édité par S. Coyault), du 3 au 5 avril 2003, Clermont-Ferrand (CRLMC), Presses Universitaires Blaise-Pascal, coll. « Littératures », 2004, p. 77-100.
# I. Chol, « Pierre Reverdy, En Vrac : notes composites et notations poétiques », actes des Journées d’études LEIA THL, Notes, cahiers, carnets : l’écriture de la notation, (sous la direction de M.-P. Berranger), Université de Caen, 2007, p. 15-29.
# I. Chol, « La question de la paroi », actes du colloque international Eugène Guillevic et la langue (organisé par L. Bougault), du 31 février au 02 mars 2007, à l’Université Rennes 2, Paris, éd. Calliopées, 2009, p. 103-127.
# I. Chol, « ''Surfaces écrites : l’image au littoral du texte'' », actes du colloque international //Images et usages : codes, fonctions, interprétation// (organisé par H. Ben Charrada, O. Ben Taleb, L. Annabi), 6-8 mars 2008, Université de Tunis El Manar (Tunisie), Publication de l’Institut Supérieur des Sciences Humaines de Tunis, 2012, p. 181-200.
# I. Chol, « ''Linguistique textuelle et poésie plastique : quelques enjeux épistémologiques et méthodologiques'' », Congrès Mondial de Linguistique Française, juillet 2012, Université Lyon 2, axe « Linguistique du texte et de l’écrit : Stylistique », sous la dir. de J.-M. Adam et G. Philippe, en ligne, p. 1073-1082. (www.shs-conferences.org)
# I. Chol, « ''La morphologie de la métamorphose dans l’œuvre de Gherasim Luca'' », actes du colloque international L’Art en toutes lettres, Ecrits d’artistes francophones et roumains (organisé et édité par R. Lascu-Pop et E. Levéel), 23-24 octobre 2009, Université de Cluj-Napoca (Roumanie), Casa Cartii de stinta, 2013, p. 80-92.
# I. Chol, « ''Le O de pOésie, quelques exemples du croisement des codes et de la dynamique des formes au XXe siècle'' », actes du colloque international La question de l’hybride (organisé et édité par A. Ben Farhat et M. Trabelsi), 8-10 décembre 2010, Université de Sfax (Tunisie), Sfax, Editions Nouha, 2014, p. 15-28.
# « ''Configurations poétiques et espace matériel du livre d’avant-garde'' », actes du colloque international de Cerisy-La-Salle //Formes : Supports/Espaces// (`28 juillet – 4 août 2014`, sous la dir. de C. Reggiani, J. Thomas, C. Reig, H. Salceda). Revue Formules, n° 19, `2015`, p. 105-120.
# I. Chol, « ''L’hétérogène et l’homogène : une donnée textuelle variable. L’exemple de La Joie des sept couleurs, Poème orné de cinq poèmes-paysages hors texte, de Pierre Albert-Birot'' », `dans` //L’Hétérogène, dans les littératures d’expression française// (organisé et éd. I. Chol, W. Ghorbel), `5-7 avril 2012` ISEAH Gafsa, Paris, L’Harmattan, `2015`, p. 233-268.
# « ''Un point ce n’est pas tout. La ponctuation dans la poésie contemporaine'' », Journée d’étude de l’Association Internationale des Etudes Françaises, Paris, ENS, `juillet 2016`, dans Cahiers de l’Association Internationale des Etudes Françaises, n° 69, Paris, `2017`, p. 71-89.
* A paraître :
# I. Chol, « Toujours mouvements », Colloque Jean-Louis Giovannoni / Editions Unes (organisé par P. Vilar), Bayonne, CRPHLL, Université de Pau et des Pays de l’Adour, 17-18 juin 2016. Article à paraître dans le Revue des Sciences Humaines.
# I. Chol, « Poésie visuelle, poésie expérimentale. Petit parcours d’une détermination in(dé)finie », acte des journées d’étude des 16 et 17 novembre 2017, La Poésie visuelle est-elle toujours expérimentale ?, Presses Universitaires Blaise-Pascal, 2019.
*En cours :
# I. Chol, « Gérard Titus-Carmel : Plier, déplier, ou l’impossible pli », journée d’étude Origami : du nouveau entre les plis ? — Le pli dans la littérature et les arts, Kyushu University, Fukuoka (Japon), 24 mai 2019.
!! PRODUCTIONS
!!! Conférences invitées (INV) :
# « Du “bricolage” poétique dans quelques œuvres de la première moitié du XXe siècle : Robert Desnos, Max Jacob, Raymond Queneau », Journées d’études françaises en Slovaquie, programme européen PHARE, Université Comenius (Bratislava, Slovaquie), sept. 1997
# « La parole déviée dans l’œuvre poétique de Raymond Queneau », Séminaire de Master (M. Swiatkovska), Département de Langues Romanes, Université Jagellone (Cracovie, Pologne), mars 1999.
# « Métrique et rythme dans Plupart du temps de Pierre Reverdy », Séminaire de Maîtrise et DEA (K. Skander), Département de Français, Université de Sfax (Tunisie), avril 1999.
# « L’analyse rythmique de la poésie : quelques difficultés méthodologiques », Journées d’études françaises en Slovaquie, programme européen PHARE, Université Comenius (Bratislava, Slovaquie), sept. 1999.
# « La Chute, d’Albert Camus, une parole piégée », conférence invitée par le Centre culturel de l’Ambassade de France à Sfax (Tunisie), avril 2000.
# « Poétique de la description », séminaire de Maîtrise et DEA (M. Trabelsi), Département de Français, Université de Sfax (Tunisie), déc. 2003.
# « Pierre Reverdy et les peintres de son époque », Choiseul Praslin Seminar (J. Khalfa) Trinity College (Université de Cambridge, Grande-Bretagne), mai 2005.
# « Pierre Reverdy. Notes composites et notation poétique », Journées d’études LEIA THL (M.-P. Berranger), Maison des Sciences de l’Homme de Caen (France), mai 2006.
# « La poésie spatialisée depuis Mallarmé », séminaire de Poétique formelle (E. Lesne-Jaffro), Maison des Sciences de l’Homme de Clermont-Ferrand (France), nov. 2007.
# « La spatialisation des textes poétiques : quelques problématiques linguistiques et stylistiques », séminaire de Poétique, Maison des Sciences de l’Homme de Clermont-Ferrand (France), juin 2009.
# « ''L’étude stylistique du discours littéraire, perspectives actuelles'' », séminaire doctoral (M. Yaman), Département des langues, Université Atatürk, Erzurum (Turquie), avril 2010.
# « ''Faits de ponctuation dans la poésie de Pierre Chappuis'' » séminaire //Faits de ponctuation// (J. Dürrenmatt et I. Serça), programme du GEHLF (Génération et périodisation en histoire de la langue), Equipe « Sens, Texte, Image », Paris-Sorbonne, Ecole Normale Supérieure Ulm, Paris (France), mai 2010.
# « ''Méthodologie de la recherche scientifique en SHS : l’exploitation des documents'' », séminaire doctoral (M. Trabelsi), Département de Français, Université de Sfax (Tunisie), juin 2011.
# « ''Synthèse de recherche'' », séminaire doctoral (B. Alloui), Université La Manouba, Tunis (Tunisie), avril 2012.
# « ''Spatialisation des textes et discours théoriques des poètes. Mots, concepts, contextes'' », Conférences du Département d’études romanes (Y. Baetens, A. Reverseau), Université de Leuven (Belgique), mars 2013.
# « ''Configurations poétiques et espace matériel du livre d’avant-garde'' », Colloque Formes, supports, espaces (C. Reggiani), Cerisy-la-Salle, juillet-août 2014.
# « ''Les recherches dans la forme ont repris désormais une grande importance (Apollinaire)'' », conférence destinée aux élèves de Classes Préparatoires (ENS Lyon), Lycée Saint-Sernin (M. Catifait), Toulouse (France), `mai 2015`.
# « ''La spatialisation des textes dans le livre d’avant-garde'' » (Conférence dans le cadre du séminaire de Poésie Contemporaine), Université de Pau et des Pays de l’Adour, `octobre 2015`.
# I. Chol, J. Khalfa, ''Les Espaces du livre. Présentation de l’ouvrage Spaces of the book : materials and agents of the text/image creation (XXth and XXIst Centuries) / Les Espaces du livre : supports et acteurs de la création Texte/Image (XXe-XXIe s.), Peter Lang, 2015'', Academic Book Week, Librairie Oxfam, Oxford (Royaume-Uni), `novembre 2015`.
# « ''Un point ce n’est pas tout. La ponctuation dans la poésie contemporaine'' », Congrès annuel de l’Association International des Etudes Françaises, session « Ponctuation des écrivains » (organisé par I. Serça), Paris, ENS Ulm, `4 juillet 2016`.
# « ''Ponctuer l’œuvre poétique'' », Laboratoire I2L, Université de Tunis El Manar, `24 octobre 2016`.
!!! Autres productions (AP) :
* Avant-propos, préfaces, introductions, conclusions
# I. Chol, Avant-propos du volume Les Écritures radiophoniques, Clermont-Ferrand, Association des publications de la Faculté des Lettres et Sciences Humaines (Université Blaise-Pascal), coll. « Cahiers du CRLMC », 1997, p. 5-8.
# I. Chol, « La découverte archéologique et l’écrit : figures du philologue, de l’antiquaire, de l’historien, de l’archéologue… et de l’écrivain », avant-propos du volume La Terre et l’écrit, de la découverte archéologique au texte scientifique et littéraire, Montbrison/Saint-Etienne, La Diana, 2000, p. 7-16.
# I. Chol, Avant-propos du volume Poétiques de la discontinuité, de 1870 à nos jours, Clermont-Ferrand, Presses Universitaires Blaise-Pascal, coll. « Littératures », 2004, p. 7-22.
# I. Chol, Avant-propos de La Mémoire des lieux, Hommage à Robert Périchon, Clermont-Ferrand, Presses Universitaires Blaise-Pascal, CRCA, coll. « Erga », T. 3, 2006, p. 9-10.
# I. Chol, J. Khalfa, ''Introduction'' à l’ouvrage //Les Espaces du livre : supports et acteurs de la création Texte / Image//, Oxford, Peter Lang, `2015`, p. 1-4.
# I. Chol, W. Ghorbel, ''Avant-propos'' de //L’hétérogène dans les littératures de langue française//, Paris, L’Harmattan, `2015`, p. 7-12.
# I. Chol, ''Introduction'' //LiVres de pOésie Jeux d’eSpace//, Paris, Champion, `2016`, p. 9-26.
# I. Chol, B. Mathios, ''Conclusion'' de l’ouvrage //LiVres de pOésie Jeux d’eSpace//, Paris, Champion, `2016`, p. 621-631.
# I. Chol, H. Campaignolle-Catel, ''Introduction à la section IV'' (Poèmes à voir : Pierre Albert-Birot, Jean Tardieu) de l’ouvrage //Livre / Poésie : une histoire en pratiques//, Paris, Edition des Cendres, `2017`, p. 103-104.
* `A paraître` :
# I. Chol, « Gérard Titus-Carmel, l’épreuve et la nécessité », introduction aux actes du colloque Gérard Titus-Carmel, Tarabuste, 2019.
# I. Chol, en collaboration avec Joan et Gérard Titus-Carmel, « Dossier biographique et bibliographique », actes du colloque Gérard Titus-Carmel, Tarabuste, 2019.
* Compte rendu d’ouvrages :
# Compte rendu de l’ouvrage de C. A. Bellard-Thomson, The literary stylistics of French, Manchester University Press, Manchester et New York, 1992, pour la revue Zeitschrift für Französische Sprache und Literatur, Stuttgart, 1996/2, p. 169-171.
# ''Compte rendu de l’ouvrage Poésie et médias, XXe-XXIe siècle (sous la dir. de C. Pardo, A. Reverseau, N. Cohen, A. Depoux), Editions Nouveau Monde, 2012'', pour la revue Les Lettres Romanes, Louvain, Belgique, vol. 67, n° 1-2, 2013, p. 282-284.
* Organisation de manifestations scientifiques :
# En collab. avec Ch. Moncelet, colloque international Les Écritures radiophoniques, Clermont-Ferrand, CRLMC, novembre 1996.
# En collab. avec R. Périchon, colloque international La Terre et l’écrit, de la découverte archéologique au texte scientifique et littéraire, Montbrison, La Diana, novembre 1997.
# En collab. avec K. Skander, double colloque international Poétiques de la discontinuité, de 1870 à nos jours, Université de Sfax (Tunisie) : décembre 2001, Université Blaise-Pascal, décembre 2002.
# Journée d’études La Spatialisation des textes poétiques : problématiques, MSH, Université Clermont 2, juin 2009.
# En collab. avec S. Linarès, journée d’études'' La Spatialisation des textes poétiques : 1. les contextes (ANR LEC)'', Université de Rouen, décembre 2011.
# En collab. avec W. Ghorbel, colloque international ''L’Hétérogène, dans les littératures de langue française'', ISEAH, Université de Gafsa (Tunisie), avril 2012.
# Journée //Le Livre d’expression française en Tunisie//, ''rencontre avec l’écrivaine Emna Belhaj Yahia, l’éditrice Elisabeth Daldoul (Elyzad), et l’universitaire Hayet Ben Charrada'', Université de Gafsa, avec le soutien de l’Institut Français de Tunisie, avril 2012.
# En collab. avec Antoine Hatzenberger, organisation de la ''conférence de Jean Khalfa, Les Premières Négritudes'', ENS de Tunis (Tunisie), avec le soutien de l’Institut Français de Tunisie, avril 2012.
# En collab. avec Bénédicte Mathios, journées d’études ''La Spatialisation des textes poétiques : 2. les pratiques (ANR LEC)'', Université Blaise-Pascal Clermont 2, novembre 2012.
# En collab. avec J. Khalfa, colloque international ''Spaces of the book : materials and agents of the text/image creation (XXth and XXIst Centuries)'', programme ANR LEC, Trinity College, Université de Cambridge, septembre 2013.
# En collab. avec A. Kouvouama, `2 journées` d’études internationales ''Terrains de recherche territorialisés, déterritorialisés : pratiques et représentations'', Fédération de recherche Espaces, frontières, métissages, Université de Pau et des Pays de l’Adour, `mars 2013, mars 2015`.
# En collab. avec S. Linarès, journées d’études La Spatialisation des textes poétiques : 3. contextes et pratiques (ANR LEC), mars 2014.
# Organisation de conférences dans le cadre du `Séminaire de Poésie Contemporaine` : ''Jean Khalfa, Poésie et image'' `;` ''Samia Kassab-Charfi, La Poésie francophone de Tunisie'', `mars 2015` ; ''Marianne Simon-Oikawa, Les espaces de Pierre Garnier'', `octobre 2016`.
# En collab. avec A. Kouvouama, journée d’études internationale et cycles de conférences ''Multiculturalité et multilinguisme'', Fédération de recherche Espaces, frontières, métissages, Université de Pau et des Pays de l’Adour, `printemps 2017`, `novembre 2017`.
# En collab. avec S. Bédouret-Larraburu et M.-A. Bissay, colloque ''Gérard Titus-Carmel, l’épreuve et la nécessité'', Université de Pau et des Pays de l’Adour, `novembre 2018`.
* Programme sous contrat national et international :
# I. Chol, A. Montandon (porteurs), Poétique de la discontinuité, de 1870 à nos jours, Programme CMCU, Ministère des Affaires Etrangères, 2000-2004.
# I. Chol (porteur), ''Livre : Espace de Création (LEC)'', Programme ANR LEC 10-CREA-009, Agence Nationale de la Recherche, 2010-2015.
* Projets :
# Avantgardes – Digitally Mapping the Romanian Avant-gardes, dépôt H2020 (partenaire)
# Gérard Titus-Carmel (2017-2019) (porteur, projet CDAPBP, CR)
* Valorisation :
# I. Chol, organisation et animation de la journée ''Le livre d’expression française en Tunisie, rencontre avec l’écrivaine Emna Belhaj Yahia, l’éditrice Elisabeth Daldoul (Editions Elyzad, Tunis) et l’universitaire Hayet Ben Charrada'', en collab. avec l’Institut Français de Tunisie, ISEAH de Gafsa (Tunisie) avril 2012.
# I. Chol, « ''Man Ray, Paul Eluard : la liberté dans le livre'' », conférence destinée aux enseignants et élèves des lycées (programme du baccalauréat), Université de Pau et des Pays de l’Adour (France), nov. 2013.
# S. Bédouret, M.-A. Bissay, I. Chol, ''Animation rencontre/lecture : Armelle Leclercq, Cole Swensen'', 12ème édition du festival Poésie dans les chais (Gelos, Lasseube, Pau), sept. 2014.
# Ph. Archambault, M.-A. Bissay, I. Chol, L. Dupuy, ''Animation rencontre/lecture Espaces poétiques : Laure Morali, Denis Brasssard'', 13ème édition du festival Poésie dans les chais (Jurançon, Pau, Gan, Gelos), `sept. 2015`.
# M.-A. Bissay, I. Chol, ''Animation rencontre/lecture : Salah Al Amdani, Paul de Brancion, Omar Souleimane, Rita Bassil'', 14ème édition du festival Poésie dans les chais (Jurançon, Pau, Monein), `sept. 2016`.
# Projet Gérard Titus-Carmel : organisation d’un séminaire en présence de l’artiste, et d’une lecture à la librairie L’Escampette (Pau), novembre 2017. Participation à l’organisation de l’exposition Gérard Titus-Carmel, Pictura / Poesis, sous la dir. de S. Forero Mendoza, nov. 2018-février 2019.
# Mémoire d’Habilitation à Diriger des Recherche : Lire, délier, lier, document de synthèse, Université de Toulouse Le Mirail, juin 2007.
On utilise les codes ISO 639-1 (sur deux caractères) que l'on peut trouver [[ici|http://www.loc.gov/standards/iso639-2/php/code_list.php]]
url,http://documentation.abes.fr/sudoc/formats/CodesPays.htm
Nom en français,Code
Afghanistan,AF
Afrique du Sud,ZA
"Åland | Îles",AX
Albanie,AL
Algérie,DZ
Allemagne,DE
Allemagne de l'EST,DD
Andorre,AD
Angola,AO
Anguilla,AI
Antarctique,AQ
Antigua et Barbuda,AG
Antilles néerlandaises,AN
Arabie Saoudite,SA
Argentine,AR
Arménie,AM
Aruba,AW
Australie,AU
Autriche,AT
Azerbaïdjan,AZ
Bahamas,BS
Bahrein,BH
Bangladesh,BD
Barbade,BB
Bélarus,BY
Belgique,BE
Bélize,BZ
Bénin,BJ
Bermudes,BM
Bhoutan,BT
Bolivie (État plurinational de),BO
"Bonaire | Saint-Eustache et Saba",BQ
Bosnie-Herzégovine,BA
Botswana,BW
"Bouvet | Ile",BV
Brésil,BR
Brunéi Darussalam,BN
Bulgarie,BG
Burkina Faso,BF
Burundi,BI
Cabo Verde,CV
"Caïmans | Iles",KY
Cambodge,KH
Cameroun,CM
Canada,CA
Chili,CL
Chine,CN
"Christmas | île",CX
Chypre,CY
Cocos/Keeling (Îles),CC
Colombie,CO
Comores,KM
Congo,CG
"Congo | République démocratique du",CD
"Cook | Iles",CK
"Corée | République de",KR
"Corée | République populaire démocratique de",KP
Costa Rica,CR
Côte d'Ivoire,CI
Croatie,HR
Cuba,CU
Curaçao,CW
Danemark,DK
Djibouti,DJ
"Dominicaine | République",DO
Dominique,DM
Egypte,EG
El Salvador,SV
Emirats arabes unis,AE
Equateur,EC
Erythrée,ER
Espagne,ES
Estonie,EE
Etats-Unis d'Amérique,US
Ethiopie,ET
Falkland/Malouines (Îles),FK
"Féroé | îles",FO
Fidji,FJ
Finlande,FI
France,FR
Gabon,GA
Gambie,GM
Géorgie,GE
Géorgie du sud et les îles Sandwich du sud,GS
Ghana,GH
Gibraltar,GI
Grèce,GR
Grenade,GD
Groenland,GL
Guadeloupe,GP
Guam,GU
Guatemala,GT
Guernesey,GG
Guinée,GN
Guinée-Bissau,GW
Guinée équatoriale,GQ
Guyana,GY
Guyane française,GF
Haïti,HT
"Heard | Ile et MacDonald | îles",HM
Honduras,HN
Hong Kong,HK
Hongrie,HU
Île de Man,IM
Îles mineures éloignées des Etats-Unis,UM
Îles vierges britanniques,VG
Îles vierges des Etats-Unis,VI
Inde,IN
Indien (Territoire britannique de l'océan),IO
Indonésie,ID
"Iran | République islamique d'",IR
Iraq,IQ
Irlande,IE
Islande,IS
Israël,IL
Italie,IT
Jamaïque,JM
Japon,JP
Jersey,JE
Jordanie,JO
Kazakhstan,KZ
Kenya,KE
Kirghizistan,KG
Kiribati,KI
Koweït,KW
"Lao | République démocratique populaire",LA
Lesotho,LS
Lettonie,LV
Liban,LB
Libéria,LR
Libye,LY
Liechtenstein,LI
Lituanie,LT
Luxembourg,LU
Macao,MO
"Macédoine | l'ex-République yougoslave de",MK
Madagascar,MG
Malaisie,MY
Malawi,MW
Maldives,MV
Mali,ML
Malte,MT
"Mariannes du nord | Iles",MP
Maroc,MA
"Marshall | Iles",MH
Martinique,MQ
Maurice,MU
Mauritanie,MR
Mayotte,YT
Mexique,MX
"Micronésie | Etats Fédérés de",FM
"Moldova | République de",MD
Monaco,MC
Mongolie,MN
Monténégro,ME
Montserrat,MS
Mozambique,MZ
Myanmar,MM
Namibie,NA
Nauru,NR
Népal,NP
Nicaragua,NI
Niger,NE
Nigéria,NG
Niue,NU
"Norfolk | Ile",NF
Norvège,NO
Nouvelle-Calédonie,NC
Nouvelle-Zélande,NZ
Oman,OM
Ouganda,UG
Ouzbékistan,UZ
Pakistan,PK
Palaos,PW
"Palestine | Etat de",PS
Panama,PA
Papouasie-Nouvelle-Guinée,PG
Paraguay,PY
Pays-Bas,NL
Pays inconnu,XX
Pays multiples,ZZ
Pérou,PE
Philippines,PH
Pitcairn,PN
Pologne,PL
Polynésie française,PF
Porto Rico,PR
Portugal,PT
Qatar,QA
République arabe syrienne,SY
République centrafricaine,CF
Réunion,RE
Roumanie,RO
Royaume-Uni de Grande-Bretagne et d'Irlande du Nord,GB
"Russie | Fédération de",RU
Rwanda,RW
Sahara occidental,EH
Saint-Barthélemy,BL
Saint-Kitts-et-Nevis,KN
Saint-Marin,SM
Saint-Martin (partie française),MF
Saint-Martin (partie néerlandaise),SX
Saint-Pierre-et-Miquelon,PM
Saint-Siège,VA
Saint-Vincent-et-les-Grenadines,VC
"Sainte-Hélène | Ascension et Tristan da Cunha",SH
Sainte-Lucie,LC
"Salomon | Iles",SB
Samoa,WS
Samoa américaines,AS
Sao Tomé-et-Principe,ST
Sénégal,SN
Serbie,RS
Seychelles,SC
Sierra Leone,SL
Singapour,SG
Slovaquie,SK
Slovénie,SI
Somalie,SO
Soudan,SD
Soudan du Sud,SS
Sri Lanka,LK
Suède,SE
Suisse,CH
Suriname,SR
Svalbard et île Jan Mayen,SJ
Swaziland,SZ
Tadjikistan,TJ
"Taïwan | Province de Chine",TW
"Tanzanie | République unie de",TZ
Tchad,TD
Tchécoslovaquie,CS
"Tchèque | République",CZ
Terres australes françaises,TF
Thaïlande,TH
Timor-Leste,TL
Togo,TG
Tokelau,TK
Tonga,TO
Trinité-et-Tobago,TT
Tunisie,TN
Turkménistan,TM
Turks-et-Caïcos (Îles),TC
Turquie,TR
Tuvalu,TV
Ukraine,UA
URSS,SU
Uruguay,UY
Vanuatu,VU
Vatican : voir Saint-Siège,
Venezuela (République bolivarienne du),VE
Viet Nam,VN
Viet Nam (Sud),VD
Wallis et Futuna,WF
Yémen,YE
Yougoslavie,YU
Zaïre,ZR
Zambie,ZM
Zimbabwe,ZW
!!! Direction d’ouvrages et de numéros de revue (DO)
# Colin, Christelle; Peyraga, Pascale; Touton, Isabelle; Giménez Navarro, Cristina; Ramouche, Marie-Pierre (eds.). ''Imagen y verdad en el mundo hispánico''. Villeurbanne : Orbis Tertius, `2015`. 436 p. ISBN : `978-2-36783-063-6`
# Christelle Colin et Rocío Charques Gámez (resp.), ''La Galice : identité culturelle et représentations'', Rives - Cahiers de l'Arc Atlantique, n° 8, Paris : L’Harmattan, 2017, 170 p. ISBN : `978-2-343-12760-6`
!!! Ouvrages scientifiques (ou chapitres) (OS)
# « Transgression et transition dans le cinéma galicien actuel : le cas de Trece campanadas de Xavier Villaverde (2002) ». `In` : Sylvie Mégevand, Jean-Michel Mendiboure (dir.). //Transitions, transgression dans l’iconographie hispanique moderne contemporaine//. Manage : Editions Lansman, 2006, p. 31-39.
# « Construction d’une représentation cinématographique de la guerre civile espagnole : le cas de El lápiz del carpintero ou une écriture transgressive de la guerre ». In : Danielle Corrado, Viviane Alary (dir.). La guerre d’Espagne en héritage. Entre mémoire et oubli (de 1975 à nos jours). Clermont-Ferrand : Presses de l’Université Blaise Pascal, 2007, p. 112-121.
# « Les images de l’identité dans les photographies de l’exil : L’œil de l’exil de Enrique Tapia Jiménez ». In : Bruno Vargas (dir.). La Seconde République espagnole en exil en France (1939-1977). Albi : Presses universitaires de Champollion, 2008. p. 215-226.
# « ''Les chemins de la mémoire: Semprun au cinéma'' ». `In` : Jaime Céspedes Gallego (dir.). //La obra de Jorge Semprún. Claves de interpretación. Vol. II: Cine y teatro. Berne//, Bruxelles, Frankfurt, New York et Oxford : Peter Lang, 2013.
# « ''Exil, histoire et mémoire : la Retirada à l’écran'' ». `In` : Boeglin, Michel (dir.). //Exils et mémoires de l'exil dans le monde ibérique. Exilios y memorias del exilio en el mundo ibérico (XIIe-XXIe siècles) (siglos XII-XXI)//. Bruxelles, Bern, Berlin, Frankfurt am Main, New York, Oxford, Wien: 2014. p. 141-154.
# « ''Du cinéma historiographique au cinéma poétique : //No pasarán// (2003) de Henri-François Imbert'' ». `In`: Christelle Colin, Pascale Peyraga, Isabelle Touton, Cristina Giménez Navarro, Marie-Pierre Ramouche (eds.). //Imagen y verdad en el mundo hispánico//. Dijon : Ed Orbis Tertius, `2015`. p. 357-375.
!!!Articles dans des revues avec comité de lecture (ACL)
# « Stratégies mémorielles et identité dans le cinéma galicien actuel (1989-2005) ». In : Emmanuel Larraz (dir.). Parcours et repères d’une identité régionale : la Galice au XXº siècle, Centre d'Etudes et de Recherches Hispaniques du XXème siècle, Hispanistica XX, Université de Bourgogne, 2006. p. 97-116.
# « ''Femmes immigrées dans le cinéma espagnol récent: images d’une intégration réussie ?'' ». `In` : Danielle Chini, Florence Marie-Laverrou, Michael Parsons (Eds). //Intégration de l’altérité: formes et procédures. Regards croisés sur les aires anglophones et hispanophones//. Rives - Cahiers de l’Arc Atlantique, no 5, Paris : L’Harmattan, 2011. p. 131-141.
# « ''Folie et altérité dans le cinéma espagnol contemporain'' ». `In` : Florence Marie-Laverrou (resp.). //Le fou, cet autre, mon frère//. Rives - Cahiers de l'Arc Atlantique, no 7, Paris : L'Harmattan, 2012. p. 231-239.
# « ''Du trompe-l’œil à la récupération de la mémoire : <i>El Grito del sur</i> (1996) de Basilio Martín Patino'' », Líneas [En ligne], Numéros en texte intégral, 2 / décembre 2012 - //Trompe-l'oeil et vérité//, mis à jour le : 24/02/2013.
# « ''Construction, fonctions et interprétations de l’espace dans El guardián invisible de Dolores Redondo (2013) et de Fernando González Molina (2017)'' », Líneas [En ligne], Numéros en texte intégral /, `Roman Noir: espaces urbains et grands espaces`, `mis à jour le : 27/02/2018`, URL : https://revues.univ-pau.fr/lineas/2534.
!!! Communications dans des colloques avec actes et comités de lecture (ACT)
# « ''14 de abril, la República (2011): de la historia a la memoria utópica'' ». Communication présentée lors du colloque //Visiones y revisiones de la República (1975-2012), X jornadas de la cultura sobre la República//. Madrid, Universidad Autónoma, 18-20 abril de 2012.
# « ''L’esthétique du translucide dans //De tu ventana a la mía// (2012) de Paula Ortiz'' ». `In` : Pascale Peyraga, Marion Gautreau, Carmen Peña Ardid, Kepa Sojo (eds.). //La imagen translúcida en los mundos hispánicos//. Villeurbanne: Éditions Orbis Tertius, 2016. p. 471-490.
# « ''La différence dans //Tres días con la familia// (2009) de Mar Coll et //De tu ventana a la mía// (2011) de Paula Ortiz'' ». `In` : Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña (ed.). //La cuestión de la diferencia - La diferencia en cuestión/La question de la différence - La différence en question//. Zaragoza : Ediciones Mira, `2016`.
# « ''Les images de la Galice dans les spots publicitaires galiciens : du paysage naturel au paysage communautaire'' ». `In` : Christelle Colin et Rocío Charques Gámez (resp.). //La Galice : identité culturelle et représentations//, Rives - Cahiers de l'Arc Atlantique, n° 8, Paris : L’Harmattan, `2017`, p. 157-170.
# « ''Retours, mémoires et identités dans les films documentaires français sur l'exil républicain espagnol'' », `in` : Laurent Dornel (dir.), //Le retour//. Pau: PUPPA, `2016`, p. 183-192.
# « ''La transición a la democracia en el cine español reciente: //La Isla mínima// (2014) de Alberto Rodriguez'' », `in` : Carmen Peña Ardid (ed.), //Pensamiento crítico y ficciones en torno a la Transición española (1975-2016)//. Ediciones La Catarata, 2019 (`A paraître`).
<<RowTable '[tag[Labo]]' '[[tampid]][[docid]][[nom]][[categorie]][[idCollSup]]'>>
!!! Publications
* Littérature
# « ''Première rencontre avec le Vendredi de Coetzee dans Foe (1986) : autre mise en représentation de l'autre'' », `in` Rives – Cahiers de l’Arc Atlantique N°1, //Premières rencontres avec l’autre dans les cultures anglophones. Littérature, civilisation et linguistique//. Paris : L’Harmattan, 2010, p. 155-171 (issu du `colloque éponyme` organisé par l'équipe PSDDA/ Arc Atlantique, 21-22 mars 2008 à Pau).
# « ''Le voyage schizophrénique du Charles Watkins de Doris Lessing dans //Briefing for a Descent into Hell// (1971) et sa « fin » : quel retour à quelle normalité ?'' », `in` Rives – Cahiers de l’Arc Atlantique N° 7, //Le fou ― cet autre, mon frère// (Littérature, civilisation et linguistique). Dir. Florence Marie. Paris : L’Harmattan, 2012, p.209-27.
* Cinéma
# « Incarnation de l'abstraction, abstraction de l'incarnation : La lettre dans quelques films de Peter Greenaway », in Le Cinéma en toutes lettres : jeux d'écritures à l'écran. Dir. Nicole Cloarec. Paris, Michel Houdiard, 2007, pp. 319-333
# « La couleur signifiante dans quelques films de Peter Greenaway : entre le symbolique et l'allégorique », in Cinéma et couleur / Film and Colour. Dir. Raphaëlle Costa de Beauregard. Paris : Michel Houdiard, 2009, pp. 58-72 (issus des travaux du XIIème Congrès de la SERCIA à l’Université de Toulouse II).
# « ''Peter Greenaway’s 1985 //A Zed and Two Noughts (Z&00)//: an Allegory of Photography?'' », `in` Cycnos Vol. 26:1 (2010) : //Peter Greenaway//. Dir. Michel Rémy. Paris, L’Harmattan, 2010, pp. 73-89 (`issu d’un colloque` dédié au cinéaste à l'occasion d'une rétrospective de ses œuvres en sa présence, organisés par le CRELA, intégré au CIRCPLES, de l’Université de Nice Sophia Antipolis et la Cinémathèque de Nice, 13-14 février 2009).
# « ''Capitalisme et schizophrénie Inde-Angleterre : formes et déformations de l’appropriation dans //My Beautiful Laundrette// (1985) et //Slumdog Millionaire// (2008)'' », `in` Rives – Cahiers de l’Arc Atlantique N° 5, //Intégration de l’altérité : formes et procédures (Regards croisés sur les aires anglophones et hispanophones)//. Dirs. D. Chini, F. Marie-Laverrou et al. Paris, L’Harmattan, 2011, p. 143-66.
# «''The Uncannily Intimate in Guy Maddin’s Cowards Bend the Knee: An Aesthetics of the Suddenly Obscene »'', E-rea – Revue électronique d’études sur le monde anglophone. 12.1 (2014), //Figures in the Lacanian Field// – http://erea.revues.org/4001
* Communications non publiées
# « ''The ‘barred’ subject: mad narration in Guy Maddin’s ‘autobiographic’ cinematography, through the prism of Lacan, Deleuze and Derrida'' ». Colloque organisé par le CLIMAS //Les Narrateurs fous / Mad Narrators//. Université Michel de Montaigne, Bordeaux 3, 18-20 octobre 2012.
# « ''La “ Me Trilogy ” et Keyhole (ou Ulysse, souviens-toi) de Guy Maddin comme retours aux lieux de l’enfance : une cinématographie surréaliste de film noir revisitant les rêves, les souvenirs et les mythes'' », communication donnée dans le cadre du colloque « //Le Retour : espaces, fractures, transitions// » du `27 au 29 mai 2015`, organisé par Laurent Dornel pour la Fédération Recherche « Espaces, Frontières, Métissages » de l'UPPA (soutenu par l’IRAA et les laboratoires ITEM, CRPHLL et LLCArc Atlantique) − communication filmée, accessible sur https://mediakiosque.univ-pau.fr/avc/courseaccess/3144.
# « ''Spectacle: représentation et figuration des lieux et de l'espace dans la cinématographie de David Lynch'' », communication donnée dans le cadre des Journées d'études « //Espaces et représentations// » des `23 et 24 octobre 2015`, organisées par Lionel Dupuy pour la Fédération Recherche « Espaces, Frontières, Métissages » de l'UPPA.
* Traductions
# SHUSTERMAN, Richard, La fin de l'expérience esthétique. Traduction de l'anglais américain en collaboration avec Jean-Pierre Cometti et Fabienne Gaspari. Pau : PUP, 1999.
# SANTAYANA, George, Le Sentiment de la beauté. Esquisse d'une théorie esthétique. Traduction de l'anglais américain en collaboration avec Fabienne Gaspari. Pau : PUP, 2002.
# Ouvrage collectif, Jean-Paul Labro (monographie sur l'artiste). Pau : Le Parvis Centre d'Art Contemporain, La Centrifugeuse – UPPA, et Un, Deux… Quatre Editions, 2007.
<<list-links "[tag[Communication]]">>
Type de documents : [[Article de revue]] [ou [[Chapitre de livre]] (s’il possède un ISBN)]
*''Titre'' : Compte rendu de Nom P. de l’auteur de l’ouvrage, « titre de l’ouvrage » (éditeur, lieu, date, pages)
** `Compte rendu de , « » ()`
*''Auteur'' : celui du compte rendu
*''Résumé'' : si possible du Compte rendu, sinon au moins du livre en question en précisant « résumé du livre initial : ... »
*''Publication'' : journal où trouver le compte rendu [ou ISBN]
Ne pas oublier le [[marqueur|Utilisation des marqueurs]] ''Compte-rendu''
!!! Ouvrage de recherche et direction d’ouvrage
# ''L’imaginaire constitutionnel, Essai sur la représentation de la Constitution et du droit constitutionnel à l’écran'', 2018, `Mémoire HDR`, dact., 178 p.
# ''From Devolution to Brexit, Triggering Uncertainty and Upheaval'', en collaboration avec M. J. Landi (`dir.`), PUPPA, 2018, 186 p.
# ''40 ans d’application de la Constitution portugaise'', en collaboration avec D. Löhrer (`dir.`), Institut Universitaire Varenne, 2017, 284 p.
!!! Articles de recherche dans des revues avec comités de lecture et contribution à des ouvrages de recherche
# « ''Ouverture(s) – Représenter le droit'' », en collaboration avec N. Bareït, Considérant – Revue du droit imaginé, 2019, p. 9
# « ''Droit constitutionnel étranger : Portugal – Chronique'' », en collaboration avec D. Löhrer et M. Melo Egidio, RFDC, 2019, p. 229
# « ''Détournement de pouvoir par des parlementaires ? Précisions sur l’applicabilité de l’article 432-15 du code pénal'' », note sous Crim., 27 juin 2018, AJDA, 2018, p. 2203
# « ''L’imaginaire monstrueux du pouvoir'' », Grief, 2018, n°5, p. 193
# « ''Czabaj, encore et toujours…ou presque'' », `note sous Conseil d’Etat, 9 mars 2018, Communauté de commune du pays roussillonnais et 9 mars 2018, Communauté d’agglomération du pays ajaccien`, AJDA, 2018, p. 1790
# « ''Le Scottish National Party à Westminster (2015-2017), observations sur un groupe parlementaire monté en puissance'' », RFDC, 2018, p. 285
# « ''Les primaires présidentielles sous la Vème République. Esquisse d’un défi constitutionnel'' », Revista General de Derecho Constitucional, 2018, `numéro spécial` « //Pour des secrétaires d’Etat parlementaires// », Constitutions, 2017, p. 534
# « ''De quelques caractéristiques du parlementarisme portugais'' », `in` D. Connil et D. Löhrer (dir.), //40 ans d’application de la Constitution portugaise//, Institut Universitaire Varenne, 2017, p. 137
# « ''L’imaginaire fabuleux du pouvoir'' », Critique, 2017, n°840, p. 443
# « ''The study of Parliamentary party groups from the perspective of a constitutionalist'' », French Politics, 2017, vol. 15, n°2, p. 254
!!! Communications à des colloques (publiés), congrès, symposiums
# « ''Quelle place pour le droit (et les juristes) dans l’étude du Parlement ? Remarques pour un dialogue'' », Colloque //Les Parlements en question(s). La permanence d’institutions subordonnées ?//, Paris, 8 et 9 novembre 2018
# « ''Quelles propositions pour rénover le statut matériel des acteurs parlementaires (collaborateurs, groupes, fonctionnaires) ?, Table ronde'', Colloque //Transparence et déontologie parlementaires : bilan et perspectives//, Paris, 25 et 26 octobre 2018, `à paraître`
# « ''Quels progrès en matière de statut des groupes parlementaires ?'' », en collaboration avec E. Lemaire Colloque //Transparence et déontologie parlementaires : bilan et perspectives//, Paris, 25 et 26 octobre 2018, `à paraître`
# ''« Le pouvoir exécutif en débat », Table ronde'', Journée d’études //Du pouvoir exécutif au pouvoir gouvernant ?//, Aix-en-Provence, 4 octobre 2018, `à paraître`
# « ''Les groupes parlementaires et le travail législatif'' », Colloque //Les groupes parlementaires//, Dijon, 24 et 25 mai 2018, `à paraître`
# « ''Le financement du statut matériel des groupes parlementaires'' », en collaboration avec E. Thiers, //2ème Symposium international de finances publiques comparée//, Luxembourg, 22 et 23 mars 2018, Gestion et Finances publiques, 2018, n°5, p. 94
# « ''L’Ecosse à la recherche d’une Constitution, Quand les questions européennes révèlent les fonctions d’une Constitution'' », Journée d’études « //Evolution constitutionnelle et politique du Royaume-Uni et de ses territoires dévolus// », Pau, 10 février 2017, `in` M. J. Landi et D. Connil (dir.), //From Devolution to Brexit, Triggering Uncertainty and Upheaval//, PUPPA, 2018, p. 159
# « ''Un pas de plus vers la transparence, l’exemple des groupes parlementaires'' », `in` E. Forey, A. Granero et A. Meyer (dir.), //Financement et moralisation de la vie politique//, Institution Universitaire Varenne, 2018, p. 35
# « ''La question écossaise : entre volonté politique et conséquences institutionnelles'' », en collaboration avec D. Löhrer, //Actes de la IXème journée d’études de l’UMR 7318//, Pau, 14 octobre 2016, Institut Universitaire Varenne, 2017, p. 165
# « ''Le droit à la protection des données personnelles, Un regard vers l’Espagne'' », `in` O. de David Beauregard-Berthier et A. Taleb-Karlsson (dir.), //Protection des données personnelles et Sécurité nationale, Actes de la VIIIème journée d’études de l’UMR 7318//, Toulon, 27 novembre 2015, Bruylant, 2017, p. 193
!!! Autres [AP]
# [CR] ''Autour du Traité d’études parlementaires paru sous la direction d’Olivier Rosenberg et Eric Thiers, Bruylant, 2018'', Table ronde, Paris, 5 avril 2019
# « ''Un nouveau groupe parlementaire ? Oui, mais à Westminster !'' », `Blog` Jus Politicum, 2019, [en ligne] http://blog.juspoliticum.com/2019/03/18/un-nouveau-groupe-parlementaire-oui-mais-a-westminster-par-damien-connil/
# ''`Compte-rendu` de F. Ost, Le droit, objet de passions ?, Académie Royale de Belgique, 2018'', Considérant – Revue du droit imaginé, 2019, p. 186
# ''`Compte-rendu` de H. Bekmézian, P. Roger et Aurel, Faire la loi, Glénat, 2017'', Considérant – Revue du droit imaginé, 2019, p. 189
# ''`Compte-rendu` de J. Wright, Les Heures sombres, 2018'', Considérant – Revue du droit imaginé, 2019, p. 191
# « ''Independent Parliamentarians in Upper Chambers – Comparative perspectives'' », `Workshop`, //The Evolving Role of Upper Chambers, A Franco-British Comparison, Sciences Po-Cambridge//, 7-8 février 2019
# « ''Chronique Espagne'' », Annuaire international de justice constitutionnelle 2017, Vol. XXXIII, en collaboration avec E. Alberti, P. Cambot, O. Lecucq, H. Alcaraz, D. Löhrer, Economica-PUAM, 2018, p. 771-803
# « ''Chronique Espagne'' », Annuaire international de justice constitutionnelle 2016, Vol. XXXII, en collaboration avec E. Alberti, P. Cambot, O. Lecucq, H. Alcaraz, D. Löhrer, Economica-PUAM, 2017, p. 751-784
# « ''Et si la France instaurait des "secrétaires d’Etat parlementaires" pour remédier à la coupure exécutif-Parlement ?'' », `Entretien`, L’Opinion, 28 septembre 2017
# « ''3 Questions sur les groupes parlementaires'' », 30 juin 2017 `repris in` Le Club des juristes, L’actualité au prisme du droit. Décryptage, Le `blog` du Club des juristes en 2017, p. 194
# « ''Les Secrétaires parlementaires, modèle ou spécificité de la pratique constitutionnelle canadienne ?'' », Colloque de l’Association française d’études canadiennes, //La Canada et ses définitions//, Paris, 14-16 juin 2017
# « ''Quand le Parlement (re)devient aussi un enjeu'' », `Tribune`, //L’Opinion//, 16 mai 2017
# « ''Histoire et typologie des "portes étroites" devant le Conseil constitutionnel'' », `Annexe` à D. de Béchillon, //Réflexions sur le statut des "portes étroites" devant le Conseil constitutionnel//, Les notes du Club des juristes, 2017, p. 53
# « ''Les séries télévisées participent à la construction de notre imaginaire constitutionnel'' », `Entretien`, L’Opinion, 2 janvier 2017
!!! Articles dans des revues à comité scientifique :
# `2018` « ''Construction du sens dans les légendes des représentations de panneaux dans le code de la route en anglais'' », "`Approche énonciative et grammaticale des genres brefs`" coordonné par Florence Lefeuvre et Irmtraud Behr, in Faits de langues, n°50, Varia, Lieden , BRILL.
# `2015` « ''C’est une femme qui vous parle : à propos de quelques caractéristiques du discours rapporté dans les romans sentimentaux de la collection Harlequin en anglais'' », in `Le Discours et la Langue`, Revue de linguistique français et d’analyse du discours dirigée par Laurence Rosier, Tome 7.1, Bruxelles.
!!! Actes de colloques :
# `2018` « ''Contraintes de genre et contraintes de registre dans la rubrique //About the Author// des romans Harlequin en anglais'' », Actes du colloque //Le genre bref : son discours, sa grammaire, son énonciation//, Université Aoyama Gakuin, Tokyo, 2017.
# `2018` « ''Construction et préconstruction situationnelles : à propos de l’imparfait dans les débuts de contes'' », `in` Sandrine Bédouret-Larraburu & Christine Copy (éds), //L’épilinguistique sous le voile littéraire, Antoine Culioli et la TOPE//, PUPPA.
!!! `Edition` de volume :
# 2006 Avec Lucie Gournay, co-direction du volume : Points de vue sur l’inversion, Cahiers de grammaire anglaise, Paris, Ophrys.
# `2018` Avec Sandrine Bédouret-Larraburu, ''L’épilinguistique sous le voile littéraire, Antoine Culioli et la TOPE'', Pau, PUPPA, 2018.
# `2019` Avec David Diop, Marie-Françoise Marein & Bérengère Moricheau-Airaud, ''Les illusions de l'autonymie : la parole rapportée de l'Autre dans la littérature'', Paris, Hermann.
MC anglais - //Département LLC// | Langues Etrangères Appliquées
# Février `2019`: « ''semiotics'' » article de `dictionnaire` (2000 mots) `à paraître` dans "A Guide to Bible Translation: People, Languages and Topics." Charles Houser Ed., Xulon Press, United Bible Societies copyright.
# Février `2019`: « ''sign'' » article de `dictionnaire` (2000 mots) ``à paraître`` dans "//A Guide to Bible Translation: People, Languages and Topics//." Charles Houser Ed., Xulon Press, United Bible Societies copyright.
# `En cours` : The English Verb Equation, Matrix, and Formulas
@@
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/CRAJ]]][[[Membres|https://craj.univ-pau.fr/fr/organisation/membres.html]]][[[idHAL|idHAL-CRAJ]]]
@@
---
<$details summary="Types de document">
*ouvrages
**pers.
**coll.
*chapitres
*articles
*notes de jurisprudence @@color:red;(type de docs ?)@@
**(utiliser le champs `Description` ?)
**titre de forme (en début ou fin de titre)
*Encyclopédie (entrée de dictionnaire - AP ?)
*colloque publié
*autres
**comptes-rendus
**préfaces
**...
</$details>
---
Biblios envoyées
<<list-links [tag[CRAJ]tag[publiant]tag[faire]]>>
Biblios saisies
<<list-links [tag[CRAJ]tag[publiant]tag[fait]]>>
---
!!! Enseignants-chercheurs
# [[Laurent ABADIE|Abadie, Laurent]], Maître de Conférences UPPA
# [[Pierre-Yves ARDOY|Ardoy, Pierre-Yves]], Maître de Conférences UPPA
# [[Marc AZAVANT|Azavant, Marc]], Maître de Conférences UPPA
# [[Laurent BLOCH|Bloch, Laurent]], Professeur UPPA
# [[Josette LAGARDE|Lagarde, Josette]], Maître de Conférences UPPA
# [[Virginie LARRIBAU-TERNEYRE|Larribau-Terneyre, Virginie]], Professeur UPPA
# [[Arnaud LECOURT|Lecourt, Arnaud]], Maître de Conférences UPPA
# [[Jean-Jacques LEMOULAND|Lemouland, Jean-Jacques]], Professeur UPPA
# [[Monique LUBY-GAUCHER|Luby-Gaucher, Monique]], Professeur UPPA
# [[Cyrille MARCONI|Marconi, Cyrille]], Maître de Conférences UPPA
# [[Karine RODRIGUEZ|Rodriguez, Karine]], Maître de Conférences UPPA
# [[Daniel VIGNEAU|Vigneau, Daniel]], Professeur UPPA
!!! Chercheurs Associés
# [[Lucas BENTO DE CARVALHO|Bento de Carvalho, Lucas]], Professeur Université de Montpellier
# [[Robert CARIO|Cario, Robert]], Professeur Émérite UPPA
# [[Javier HUALDE SANCHEZ|Hualde Sanchez, Javier]], Catédratico Université du Pays Basque, San Sebastian
# [[Paul MBANZOULOU|Mbanzoulou, Paul]], Responsable Département Recherche CIRAP/ENAP
# [[Sandrine TISSEYRE|Tisseyre, Sandrine]], Professeur Université Toulouse Capitole
!!! Maîtres de Conférences Associés
# [[François CHALVIGNAC|Chalvignac, François]], Notaire
# [[Sophie CREPIN|Crépin, Sophie]], Avocate
# [[Jean-Charles MONGOUR|Mongour, Jean-Charles]], Huissier de Justice
<$details summary="Doctorants rattachés au CRAJ">
# Marion CATHERINET, Doctorante
# Laure CAZALIS, Doctorante
# Mickaël CAZENAVE, Doctorant
# Jade CHAPUT, Doctorante
# Anne-Christine CIVIALE-SANTRAILLE, Doctorante
# Marie DASQUE, Doctorante
# Laurent DREYFUS, Doctorant
# Nicolas DUBERGE, Doctorant
# Laurent DUFAUR-DESSUS, Doctorant
# Cédric EDOUARD, Doctorant
# Sayoa GOYENECHE, Doctorant
# Aurore JUTIER, Doctorante
# Anne-Charlotte KERVOELEN, Doctorante CIFRE
# Khaoula LAGDAMI, Doctorante
# Aurélie LASSERRE, Doctorante
# Ophélie LAVAUZELLE, Doctorante
# Roger LEPETZ, Doctorant
# Philippe LETIENNE, Doctorant
# Elliot LOUAN, Doctorant
# Héloîse MATHIEU, Doctorante
# MOUNDOUNGA MAPANGOU Ulrich, Doctorant
# Tiegolo OUATTARA, Doctorant
# Djel OYINAMONO-SOUMANKI, Doctorant
# Virginie SAVARIT, Doctorante
# Papa Oldy Sadio SOW, Doctorant
# Sangoné THIAM, Doctorant
# Ismaël SEGA TOURE, Doctorant
# Sidi Yaya TRAORE, Doctorant
# Anne-Gaëlle VAILLANT, Doctorante
</$details>
---
```python
structName_t:"Universite de Pau"
```
<$details summary="Résultats">
|Documents avec texte intégral|4343|
|Références bibliographiques|20763|
|Notices avec annexe|101|
|Total|25207|
</$details>
---
```python
structName_t:"Universite de Pau"
NOT collCode_s:"DICE"`
```
<$details summary="Résultats">
|Documents avec texte intégral|3992|
|Références bibliographiques|17305|
|Notices avec annexe|90|
|Total|21387|
</$details>
---
```python
structName_t:"Universite de Pau"
OR collCode_s:"ECOBIOP"
OR collCode_s:"LATEP"
OR collCode_s:"LFCR"
OR collCode_s:"LFCR-GEOMECA"
OR collCode_s:"LFCR-ISD"
OR collCode_s:"LFCR-CRG"
OR collCode_s:"LFCR-PTP"
OR collCode_s:"SIAME"
OR collCode_s:"IPREM"
OR collCode_s:"LIUPPA"
OR collCode_s:"NUMEA"
OR collCode_s:"IPREM-CAPT"
OR collCode_s:"IPREM-CME"
OR collCode_s:"IPREM-PCM"
OR collCode_s:"CDRE"
OR collCode_s:"CREG-EA4580"
OR collCode_s:"IKER"
OR collCode_s:"ALTER"
OR collCode_s:"CATT"
OR collCode_s:"CRAJ"
OR collCode_s:"IE2IA"
OR collCode_s:"ITEM"
OR collCode_s:"MEPS"
OR collCode_s:"PASSAGES-UPPA"
OR collCode_s:"PDP"
```
<$details summary="Résultats">
|Documents avec texte intégral|4434|
|Références bibliographiques|21030|
|Notices avec annexe|105|
|Total|25569|
</$details>
---
```python
structName_t:"Universite de Pau"
OR collCode_s:"ECOBIOP"
OR collCode_s:"LATEP"
OR collCode_s:"LFCR"
OR collCode_s:"LFCR-GEOMECA"
OR collCode_s:"LFCR-ISD"
OR collCode_s:"LFCR-CRG"
OR collCode_s:"LFCR-PTP"
OR collCode_s:"SIAME"
OR collCode_s:"IPREM"
OR collCode_s:"LIUPPA"
OR collCode_s:"NUMEA"
OR collCode_s:"IPREM-CAPT"
OR collCode_s:"IPREM-CME"
OR collCode_s:"IPREM-PCM"
OR collCode_s:"CDRE"
OR collCode_s:"CREG-EA4580"
OR collCode_s:"IKER"
OR collCode_s:"ALTER"
OR collCode_s:"CATT"
OR collCode_s:"CRAJ"
OR collCode_s:"IE2IA"
OR collCode_s:"ITEM"
OR collCode_s:"MEPS"
OR collCode_s:"PASSAGES-UPPA"
OR collCode_s:"PDP"
NOT collCode_s:"DICE"
```
<$details summary="Résultats">
|Documents avec texte intégral|4077|
|Références bibliographiques|17568|
|Notices avec annexe|93|
|Total|21738|
</$details>
---
```python
structName_t:"Universite de Pau"
OR collCode_s:"ECOBIOP"
OR collCode_s:"LATEP"
OR collCode_s:"LFCR"
OR collCode_s:"LFCR-GEOMECA"
OR collCode_s:"LFCR-ISD"
OR collCode_s:"LFCR-CRG"
OR collCode_s:"LFCR-PTP"
OR collCode_s:"SIAME"
OR collCode_s:"IPREM"
OR collCode_s:"LIUPPA"
OR collCode_s:"NUMEA"
OR collCode_s:"IPREM-CAPT"
OR collCode_s:"IPREM-CME"
OR collCode_s:"IPREM-PCM"
OR collCode_s:"CDRE"
OR collCode_s:"CREG-EA4580"
OR collCode_s:"IKER"
OR collCode_s:"ALTER"
OR collCode_s:"CATT"
OR collCode_s:"CRAJ"
OR collCode_s:"IE2IA"
OR collCode_s:"ITEM"
OR collCode_s:"MEPS"
OR collCode_s:"PASSAGES-UPPA"
OR collCode_s:"PDP"
NOT collCode_s:"UMR5319"
```
<$details summary="Résultats">
|Documents avec texte intégral|4007|
|Références bibliographiques|19563|
|Notices avec annexe|94|
|Total|23664|
</$details>
---
```python
structName_t:"Universite de Pau"
OR collCode_s:"ECOBIOP"
OR collCode_s:"LATEP"
OR collCode_s:"LFCR"
OR collCode_s:"LFCR-GEOMECA"
OR collCode_s:"LFCR-ISD"
OR collCode_s:"LFCR-CRG"
OR collCode_s:"LFCR-PTP"
OR collCode_s:"SIAME"
OR collCode_s:"IPREM"
OR collCode_s:"LIUPPA"
OR collCode_s:"NUMEA"
OR collCode_s:"IPREM-CAPT"
OR collCode_s:"IPREM-CME"
OR collCode_s:"IPREM-PCM"
OR collCode_s:"CDRE"
OR collCode_s:"CREG-EA4580"
OR collCode_s:"IKER"
OR collCode_s:"ALTER"
OR collCode_s:"CATT"
OR collCode_s:"CRAJ"
OR collCode_s:"IE2IA"
OR collCode_s:"ITEM"
OR collCode_s:"MEPS"
OR collCode_s:"PASSAGES-UPPA"
OR collCode_s:"PDP"
NOT collCode_s:"UMR5319"
NOT collCode_s:"DICE"
```
<$details summary="Résultats">
|Documents avec texte intégral|3650|
|Références bibliographiques|16101|
|Notices avec annexe|82|
|Total|19833|
</$details>
---
!!! Articles dans des revues avec comité de lecture (ACL)
# « L’Autre en question dans El Pasajero de Suárez de Figueroa », Líneas [En ligne], Numéros en texte intégral, 1 / décembre 2011 - Pouvoirs et écritures, mis à jour le : 21/05/2012.
!!! Ouvrages scientifiques ou chapitres (0S)
# « ''Historia y “puesta en discurso” del homo historicus en la obra de Suárez de Figueroa: el ejemplo de don García Hurtado de Mendoza'' ». `In` : Duarte, J. Enrique ; Ibáñez, Isabel (eds.). //El hombre histórico y su puesta en discurso//. New York : IDEA, `2015`, p. 51-63.
# « ''Une rencontre sacrale jamais consommée: le voyage en Italie dans El Pasajero de Cristóbal Suárez de Figueroa'' ». `In` : Michel Braud (dir.). //Le Récit sans fin - Poétique du récit non clos//. Paris : Classiques Garnier, coll. Théorie de la littérature, `2016`, p. 69-82.
!!!Communications dans des colloques avec actes et comités de lecture (ACT)
# « Rhétorique du pèlerinage dans El Pasajero de Cristóbal Suárez de Figueroa ». In : Francis Desvois, Morag J. Munro-Landi (dir.). Le Vagabond en occident, sur la route dans la rue (vol 1). Paris : L'Harmattan, 2012. p. 223-233.
# « El cuerpo del poder : tacitismo y metáfora corporal en la obra de Suárez de Figueroa ». In: Á. Baraibar y M. Insúa (eds.). El universo simbólico del poder en el Siglo de Oro. Actas del Congreso Internacional « Imagen y realidad: el universo simbólico del poder en el Siglo de Oro», Pamplona, GRISO-Universidad de Navarra, 12-14 de diciembre de 2011. Nueva York/Pamplona: Instituto de Estudios Auriseculares (IDEA)/Servicio de Publicaciones de la Universidad de Navarra, 2012. p. 77-86. [Colección BIADIG, Biblioteca Áurea Digital del Grupo de Investigación Siglo de Oro, GRISO].
# « Teorías y práctica( s?) de la traducción en la obra de Cristóbal Suárez de Figueroa ». In : Carlos Mata Indurain, Adrián J. Sáez, Ana Zuñiga Lacruz (eds.), Festina lente, Actas del II Congreso Internacional Jóvenes Investigadores Siglo de Oro (JISO 2012). Pamplona : Servicio de Publicaciones de la Universidad de Navarra, 2013. p. 143-153. [BIADIG, Biblioteca Aurea Digital, 17/ Publicaciones Digitales del Griso]
# « ''Juan el ventero dans El Pasajero de Cristóbal Suárez de Figueroa: du faux-héros fanfaron à la charlatanerie littéraire'' ». `In` : //Théâtre et charlatans dans l’Europe moderne//. Presses Sorbonne Nouvelle : Paris, `2018`, p.279-287.
# « ''Un ejemplo de diálogo del siglo XVII: El Pasajero de Cristóbal Suárez de Figueroa'' ». `In`: Carlos Mata Induráin y Ana Zúñiga Lacruz (eds.), //«Venia docendi». Actas del IV Congreso Internacional Jóvenes Investigadores Siglo de Oro (JISO 2014)//, Pamplona, Servicio de Publicaciones de la Universidad de Navarra, `2015`. Colección BIADIG (Biblioteca Áurea Digital), 32/Publicaciones Digitales del GRISO, p. 37-48.
# « ''De l'hybridité dans tous ses états : El Pasajero de Cristóbal Suárez de Figueroa'' ». `In` : //Labilité des genres. Le désir du hors-genre//. PUPPA : Pau, `2018`, p.21-30.
# « ''Nuevas pistas de investigación acerca de las composiciones poéticas en El Pasajero de Cristóbal Suárez de Figueroa'' », communication prononcée le `18 décembre 2018` lors du Congreso Internacional Jóvenes Investigadores Siglo de Oro (JISO 2018), Pamplona, `à paraître`.
!!doctype
[img[doctype.png]]
!!document
[img[document.png]]
!!author
[img[author.png]]
!!idhal
[img[idhal.png]]
!!anrProject/europeanProject
[img width="50%" [anrProject.png]][img width="50%" [europeanProject.png]]
[[lien vers Dialnet|http://dialnet.unirioja.es/]]
base espagnole (on peut franciser l'interface grâce à un menu déroulant en haut à droite)
ResearcherId : {{!!researcherid}}
!!! Ouvrages
# ''Rhétorique nègre au XVIIIe siècle. Des récits de voyage à la littérature abolitionniste'', Paris, Classiques Garnier, L’Europe des Lumières, n° 51, `2018`.
!!! Direction d’ouvrages (ouvrages collectifs)
# ''Continuités et ruptures des sources du savoir sur l’Afrique (17e-18e siècles)'', Paris, éditions Nicolas Malais, `2016`, Cahiers du GRREA 17/18 n°1.
# ''Les illusions de l’autonymie. La parole rapportée de l’Autre dans la littérature''. (sous la direction de M. –F. Marein, B. Moricheau-Airaud, C. Copy, D. Diop), Paris, Hermann, `2019`.
!!! Chapitres d’ouvrages
# « ''Étrangeté et proximité du corps des Africains dans le Voyage au Sénégal d’Adanson » (1757)'', `dans` //Les Discours du corps au XVIIIe siècle//, Paris, Hermann, `2015`, p. 285-304.
# « ''Introduction'' », //Continuités et ruptures des sources du savoir sur l’Afrique (17e-18e siècles)//, Paris, éditions Nicolas Malais, `2016`, Cahiers du GRREA 17/18 n°1, p. 13-22.
# « ''Préface'' », Les Cahiers de Didactique des Lettres [En ligne], Numéro en texte intégral, `Le brouillon à l’ordre : Pratiques et supports de l’inventio en cours de français`, mis à jour le : `05/10/2017`, URL : https://revues.univ-pau.fr/cahiers-didactique-lettres/561.
# « `Birago Diop` » dans ''`Dictionnaire` de l’autobiographie : Écritures de soi de langue française'', sous la direction de Françoise Simonet-Tenant, Paris, Honoré Champion, `2017`, p. 258-259.
!!! Articles en revue avec comité de lecture
* Nationale :
* Internationale :
!!! Communications avec actes (congrès nationaux et internationaux)
# « ''Le rôle des Académies au XVIIIe siècle en Europe dans la diffusion du savoir : naissance du cosmopolitisme ?'' » `dans` //La migration des idées//, sous la direction de Hédia Abdelkefi, Tunis, Institut supérieur des Sciences Humaines de Tunis, Unité de Recherche en Intermédialité, Lettres et Langages de l’Université de Tunis El-Manar, `2018`, p. 9-26
# « ''Les Lumières et l’Afrique, usages de l’humanisme'' » `dans` //Enquête sur la construction des Lumières//. Sous la direction de Franck Salaün et Jean-Pierre Schandeler, Centre National d’Étude du XVIIIe siècle, Ferney-Voltaire, `2018`, P. 231-240.
# « ''L’histoire d’un voyage fait en la terre du Brésil de Jean de Léry lue par l’abbé Prévost et par Claude Lévi-Strauss'' », `dans` //Dialogues France-Brésil : circulations, représentations, imaginaires//. Sous la direction d’Éden Viana Martin et alii, Pau, PUPPA, `2018`, p. 179-188.
!!! Communication sans actes
# « La représentation des Noirs chez le P. Labat : misogynie, mercantilisme et préjugés nobiliaires. » dans Représentations des Noirs à l’époque moderne (17e–20e siècles): Colloque, Guadeloupe, mars `2013`
# « Antiesclavagisme et humanisme sur la scène théâtrale française du dernier XVIIIe siècle. » Journée d’étude du 5 mai `2014` : Le théâtre humanitaire de l’Europe à l’Afrique. UPPA, UFR Droit-Eco. Salle C17
# ''« Battre et nourrir » : le singe, le « nègre » et l’esclavage dans quelques récits de voyage aux XVIIe et XVIIIe siècles'' `dans` //« Le singe aux XVIIe et XVIIIe siècles »// : Colloque, Bordeaux, `mai 2015`.
# « ''Savoirs en partage dans Le Voyage dans les régences de Tunis et d’Alger (1724-1725) de Jean-André Peysonnel'' » Communication à l’Académie tunisienne Beït El Hekma, à Tunis, `octobre 2017`.
# « ''Introduction'' », //L’Afrique des savants européens (17e-20e siècles)//, Journée d’étude du GRREA 17/18, `novembre 2017`.
!!! Autres productions
* Comptes rendus d’ouvrages :
# Revue Diderot et l’Encyclopédie, `2016` : ''Raynal, les colonies, la Révolution française et l’esclavage'', Outre-Mers, revue d’Histoire, T. 103, n°s 386-387, 1er semestre 2015 (Société Française d’Histoire des Outre-Mers). ISSN 1631-0438, p.
# Revue Études littéraires Africaines, `2016` ''Lavallée (Joseph), Le nègre comme il y a peu de blancs. Présentation de Carminella Biondi. Paris : L’Harmattan, coll. Autrement Mêmes, 2014, 297 P.'' – ISBN 978-2-343-031842. P. 206-207
# Revue Études littéraires Africaines `2017`: ''Danon (Rachel), Les voix du marronnage dans la littérature française du XVIIIe siècle. Paris : Classiques Garnier, coll. l’Europe des Lumières, 2015, 424 P.'' – ISBN 978-2-812-43711-3., p. 206-208
!!! Conférence :
# « Savoirs et représentations de l'Afrique en France aux 18e et 19e siècles. De 1728, à l'exposition universelle de Paris en 1889. » Conférence prononcée à l’invitation de l'Université du Temps libre de Tarbes le jeudi 7 novembre `2013`.
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/DMEX]]][[[Membres|https://imagingcenter.univ-pau.fr/team.php?lan=en]]] + [[[idHAL|idHAL-DMEX]]]
@@
!!! Liste des Publiants
<<list-links [tag[DMEX]tag[publiant]]>>
[[Guides des produits de la recherche et activités de recherche|https://www.hceres.fr/fr/guides-des-produits-de-la-recherche-et-activites-de-recherche-0]]
*`SHS5` (ALTER) [[Guide des produits de la recherche et des activités de recherche|https://www.hceres.fr/sites/default/files/media/downloads/Guide%20des%20produits%20de%20la%20recherche%20et%20des%20activités%20de%20recherche%20-%20Sous-domaine%20SHS%205%20-%20Disciplines%20LETTRES%2C%20LANGUES%2C%20TEXTES%2C%20ARTS%20ET%20CULTURES%20-%20.pdf]] [Décembre 2018]
**Sous-domaine : `SHS5` Lettres, Langues, Textes, Arts et cultures
**Disciplines :
***SHS5_1 Langues / Littératures anciennes et françaises, Littérature comparée
***SHS5_2 Littératures et langues étrangères, Civilisations, cultures et langues regionales
***SHS5_3 Arts
***SHS5_4 Philosophie, Sciences des religions, théologie
* [[Annexe 4 - Produits et activités de la recherche|https://www.hceres.fr/fr/publications/produits-et-activites-de-la-recherche-annexe-4]]
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
Identifications uniques pour les publications numériques :
*Toujours chercher à remplir le champ ''DOI'' s’il est disponible pour le type de document.
*Pour les [[livres|Livre]] et [[chapitres de livre|Chapitre de livre]] :
**mettre le DOI dans le champs ''extra'' : `DOI:10.xxxxx/xxxx`
**remplir le champs ''url'' avec une url ''donnant accés'' au texte intégral
Pas d’URL de la page Web d'information dans le champ DOI ou URL.
*Membre d’ALTER (Arts/langages : transitions et relations), équipe « Arts et savoirs », UPPA.
*Membre associé de LLA-CREATIS, Université Toulouse Jean Jaurès
*Membre associé de l’UR « Intermédialité, Lettres et Langage », Institut Supérieur des Sciences Humaines, Université de Tunis-El Manar
!!! Ouvrages
# S. Dreyer et D. Vaugeois (dir.), ''La critique à l’écran : les arts plastiques'', Septentrion, `2018`
# S. Dreyer, ''Révolutions ! Textes et films engagés. Cuba, Vietnam, Palestine'', A. Colin, 2013
# S. Dreyer (dir.), ''Littérature et cinéma en miroir'', Figures de l’art n°24, PUPPA, 2013
!!! Organisation d’événements scientifiques
# Colloque international « ''Débordements'' » (Bordeaux, `juin 2018`)
# Colloque international « ''La critique filmée : les arts plastiques'' » (UPPA, `octobre 2015`)
# Colloque international « Intermédialité et réception » (UPPA, octobre 2014)
# Journée d’étude « ''Armand Gatti en Amérique(s), théâtre et cinéma'' » (UPPA, octobre 2011)
# Journée d'étude « ''Littérature et cinéma en miroir'' » (UPPA, avril 2011)
# Journée d’étude « ''Après Mai : la création après la révolte de 68'' » (Paris 7, novembre 2008)
!!! Articles
* Articles (revues à comité de lecture)
# « ''Marker et la revue Esprit. A l’origine du film-essai'' », Cinémaction n°165, « `Chris Marker : pionnier et novateur` », dir. K. Feigelson, `2017`
# « ''La Folle de Toujane de René Vautier : parler ou faire quelque chose ?'' », Décadrages n°29-30 : « `René Vautier` », dir. F. Bovier, `2015`.
# « ''“J’ai perdu mes certitudes, mais j’ai gardé mes illusions.” Scénarios de Jorge Semprún'' », Regards n°19 : « Études sur José María Semprún Gurrea, Jorge Semprún et Carlos Semprún Maura », dir. J. Cespedes et X. Iturralde, Université Paris Ouest Nanterre La Défense, 2014.
# « ''Gatti au Guatemala, histoire d’une guerre civile'' », Cahiers Armand Gatti n°4 : « Armand Gatti journaliste », dir. C. Brun et O. Neveux, La Parole errante, 2014.
# « ''Introduction à une véritable histoire du cinéma de Godard : se défaire de la littérature'' », Fixxion n° 7 : « Écrivains-cinéastes ? Avenir d’une figure amphibie », dir. J.-L. Jeannelle et M.C. Flinn, , 2014. [http://www.revue-critique-de-fixxion-francaise-contemporaine.org/rcffc/article/view/fx07.03]
# « ''Voix ouvrières en Franche-Comté : Maurice Clavel et Jean-Paul Goux'' », La Licorne n°103 : « Dire le travail. Fiction et témoignage depuis 1980 », dir. S. Bikialo et J.-P. Engélibert, PU Rennes, 2013.
# « ''El otro Cristóbal, les hommes à la conquête du ciel'' », Cahiers Armand Gatti n°2 : « Les cinémas d’Armand Gatti », dir. C. Brun et O. Neveux, La Parole errante, 2011.
# « ''La société mexicaine au miroir du cinéma : au-delà du mélodrame'' », L’Ordinaire latino-américain n°213 : « Violence et société », dir. Claude Murcia, Université Toulouse Le Mirail, 2010.
# « ''Autour de 1968, en France et ailleurs : Le fond de l’air était rouge'' », Image [&] Narrative vol. 11 n°1 : « Chris Marker (II) », Université catholique de Louvain, 2010. [http://ojs.arts.kuleuven.be/index.php/imagenarrative/article/viewFile/54/35]
# « Organisation des affects, à propos de Pelechian et Gianikian - Ricci Lucchi », Ecrire l’Histoire n°2, dir. Paule Petitier et Claude Millet, Marseille, Editions Gaussen, 2e semestre 2008.
# « Stratégies militantes : littérature/cinéma – France, 1960-1986 », Fabula LHT n°2 : « Ce que le cinéma fait à la littérature », dir. Margaret Flinn et Jean-Louis Jeannelle, 2006 [www.fabula.org/lht/2/Dreyer.html[
# « Rhétorique de l'engagement critique : regards de cinéastes français sur la révolution cubaine », Tracés. Revue de Sciences humaine n°11 : « L’engagement », dir. Édouard Gardella, ENS Éditions, Lyon, 2006. [http://traces.revues.org/index246.html]
# « Godard, le tennis et la dialectique », Edit : revue d’art contemporain, n°4, dir. Daria Joubert, juin 2006. [www.edit-revue.com/index.php?Article=110[
# « Jean Genet : l’antisémitisme en question », Esprit, décembre 2004.
* Articles (ouvrages collectifs)
# « ''Les Maîtres fous au Balcon : Jean Genet spectateur de Jean Rouch'' », Classicisme et modernité dans le théâtre des XXe et XXIe siècles, dir. F. Bernard, M. Bertrand, H. Laplace-Claverie, PU de Provence, 2014.
# « Un millième de seconde… Stéréotype et fulgurance », Toutes les images du langage. Jean Genet, dir. Frieda Ekotto, Aurélie Renaud, Agnès Vannouvong, Fasano - Paris, Schena Editore - Alain Baudry et Cie, 2008.
!!! Notices
# ''Dictionnaire Jean Genet'', dir. Marie-Claude Hubert, Champion, 2014, ''12 notices'' : « `Entretien avec Antoine Bourseiller` », « `Entretien avec Bertand Poirot Delpech` », « `Entretien avec Madeleine Gobeil` », « `Entretien avec Michèle Manceaux` », « `Entretien avec Hubert Fichte` », « `Entretien avec Tahar Ben Jelloun` », « `Entretien avec Nigel Williams` », « `Entretien avec Rudiger Wischenbart` », « `Black panthers` », « `George Jackson` », « `Monique Lange` » et « `Mai 68` ».
!!! Colloques et Journées d’étude
* Colloques à comité de sélection (publication d’actes)
# « ''D’une avant-garde à l’autre : le Groupe Dziga Vertov est-il (vraiment) vertovien ?'' », //1917-2017. Regards croisés sur les avant-gardes artistiques soviétiques//, Paris 8 / Paris 10, `2017` (`à paraître`).
# « ''URSS, fin des années 20 : « factographie », naissance d’un genre ?'' », //Migrations des genres et des formes artistiques//, 41e Congrès de la SFLGC, Université Toulouse Jean Jaurès, `2017` (`à paraître`).
# « ''Le cinéma militant et le mythe du collectif'' », //La Création collective au cinéma//, dir. B. Bonhomme, ESAV/Université Toulouse Jean Jaurès, `2017`. https://creationcollectiveaucinema.wordpress.com
# « ''//Bleu comme une orange// d’André S. Labarthe : noirs les arts'' », //La Télévision allumée : les arts dans le noir et blanc du tube cathodique//, dir. A. Gaudreault, V. Paci et S. Boisvert, UQAM – PU Vincennes, `2017`.
# « ''Un homme qui dort, une « lecture cinématographique » de G. Perec et B. Queysanne'' », //Littérature comparée et cinéma//, dir. P. Werly et M. Finck, Strasbourg, `2016` (`à paraître`).
# « ''Le Mistère-Bouffe de Maïakovski : Moyen-âge et avant-garde'' », Le médiéval sur la scène contemporaine, dir. Michèle Gally et Marie-Claude Hubert, PU de Provence, 2014.
# « ''Ouvriers et cinéastes (Franche-Comté, années 60-70)'' », A l’avant-garde ! Art et politique dans les années 60 et 70, dir. Malika Combes, Igor Contreras, Perin Emel Yavuz, Peter Lang - EHESS, 2013.
# « ''Au risque du dialogue'' », Jean Genet, du roman au théâtre, dir. Marie-Claude Hubert et Michel Bertrand, Université de Provence, 2011.
# « ''Montage d’archives et transaction émotionnelle'' », Lorsque Clio s’empare du documentaire, dir. Pierre Bertin-Maghit, L’Harmattan - INA, 2011.
# « ''Rendre les images comme on rend les honneurs. Approches de la réception documentaire'' », Les images en question (Afeccav), dir. P. Beylot, M. Marie, I. Le Corff, PU Bordeaux, 2011.
# « ''Une blessure encore à vif : lire le Captif aujourd'hui'' », Jean Genet : lectures en héritage, dir. Eden Viana-Martin, Université de Pau - Vallongues, 2010.
# « Salut les Cubains !, une poétique du témoignage », Agnès Varda : le cinéma et au-delà, dir. Antony Fiant, Roxane Hamery et Éric Thouvenel, PU de Rennes, 2009.
* Journées d’étude (publication d’actes)
# « ''Les deux mémoires, documentaire de Jorge Semprún : le deuil de la République'' », Journée d’études du RIVIC, UT2J, avril 2014, `in` Christelle Colin, Pascale Peyraga, Isabelle Touton (dir.), //Imagen y verdad en el mundo hispánico, actes du colloque et des journées d’étude du RIVIC//, Villeurbanne, Orbis tertius, `2015`
# « ''Rhétorique des formes documentaires : l’exemple du Printemps de Prague (R. Jean, J.L. Godard, C. Marker, R. Depardon)'' », Littérature et cinéma en miroir, Figures de l’art n°24, dir. S. Dreyer, PUPPA, 2013.
# « Après les pavés, la plage. Les romans de l’été 68 », La création après la révolte de 68, dir. S. Dreyer, Travaux en cours n°4, Université Paris 7, 2009.
# « Palestine, la frontière introuvable : Deleuze, Genet, Godard », Lieux de la frontière, dir. C. Murcia, Textuel n°57, Université Paris 7, 2008.
# « Histoire(s) de la vidéo », Lectures de l’art contemporain, dir. Magali Nachtergael, Textuel n°52, Paris 7, 2007.
* Colloques
# « ''Chris Marker. 25 globe revolutions'' », Media politics. Political media (NECS 2013 Conference) Charles University, Prague, 2013
# « Une propagande subtile et amicale. Les cinéastes français à Cuba », Paradoxes du cinéma cubain, dir. E. Vincenot, Université de Tours, 2009.
# « Travail des images vs travail du capital : Nicht ohne Risiko d’Harun Farocki (2004) », Images du travail. Travail des images, Laboratoire GRESCO, Université de Poitiers, 2009.
# « Les putains d’Arturo Ripstein : permanence et réélaboration d’un stéréotype », La redéfinition de l'identité hispanique dans la littérature et le cinéma post-nationaux, dir. R. Amossy, Université catholique de Louvain, 2009.
*Journées d’étude
# « ''Vivre sur le ton de l’épopée. Armand Gatti journaliste'' », Art et utopie, dir. K. Feigelson, INHA – Sorbonne nouvelle, 2013.
# « ''Le documentaire au secours de la fiction ?'' », Intermédialités », dir. C. Fischer, UPPA, 2013.
# « ''L’intime et le politique dans les scénarios de Jorge Semprún'' », Jorge Semprún, dir. V. Capdevielle, UPPA, 2011.
# « ''Puisque vous êtes ici ce soir… Les pièces cubaines de Gatti'' », Armand Gatti en Amérique(s), dir. S. Dreyer, UPPA, 2011.
* Séminaires et journées doctorales
# « ''Le « fait » chez les formalistes russes : littérature/cinéma'' », CERILAC, Paris 7, `15 mai 2017`.
# « ''Postérité de la factographie'' », TELEM, Bordeaux-Montaigne, `4 mai 2017`.
# « ''Littérature et savoir'' », CRPHLL, UPPA, 18 février 2014.
# « ''URSS, années 20 : l'horizon documentaire'' », CERILAC, Paris 7, 2013.
# « Les hommes à la conquête du ciel : Armand Gatti », CLAM/ECLAT, Paris 7, 2008.
# « Pour une rhétorique comparée », Trois Lumières, INHA, 2007.
# « Témoignage et engagement : littérature/cinéma », SFLGC, Paris 7, 2007.
# « Critique de la rhétorique / rhétorique de la critique », AFECCAV, Aix-Marseille, 2006.
# « Ici et ailleurs : figures du témoin », CLAM/ECLAT, Paris 7, mars 2005.
# « Littérature et cinéma face à la politique », AFECCAV, Paris 8, sept. 2003.
* Conférences et tables rondes
# « ''Filmer Mai 68'' » Table ronde avec Michel Andrieu, Jacques Kebadian et Sébastien Layerle, colloque « Global 68 », dir. Sylvie Robic, Université Paris 10, `4 mai 2018`.
# « ''Les courts-métrages du Nouveau cinéma français'' », PUCMA, Santo Domingo, République Dominicaine, 8 juin 2012.
# « ''Documenter Armand Gatti'' », Table ronde avec Nicole Brenez, Marc Kravetz, Hélène Châtelain et Olivier Neveux, suivie d’une projection de « Le Journal intime de Dieu » (documentaire de S. Dreyer, 2011), Cinémathèque française, 10 Juin 2011.
# « ''A bout de souffle, réflexions sur Godard et le sport'' », Centre Pompidou Metz, 22 septembre 2010.
# « ''Histoire et politique à la lumière de l’éternel retour'' », `in` (collectif sous la direction de Laurent Dornel) : //Le Retour//, Presses de l’UPPA, `2017`, p. 461-472.
# « ''Nomination et signification : Landgrebe lecteur de Marty'' », `in` (collectif sous la direction de Jean-François Lavigne et Dominique Pradelle) : //Monde, structures et objets de pensée. Recherches de phénoménologie en hommage à Jacques English//, Paris, Hermann, `2016`, p. 203-222.
# « ''Judith Butler, fautrice de troubles'' », `in` (collectif sous la direction de Nadia Mékouar-Hertzberg, Florence Marie et Nadine Laporte) : //Le Genre, effet de mode ou concept pertinent ?//, Berne, Peter Lang, `2016`, p. 15-33.
# «''Machado existentialiste ?''», Líneas [en ligne], numéro 7/`Décembre 2015` - `L’existentialisme en Espagne, Partie 1 - Existentialisme littéraire -`, mis à jour le 29/01/2016, URL: http://revues.univ-pau.fr/lineas/1820.
*https://www.idref.fr/032388489
**`Duché-Gavet, Véronique` (1961-....) [Point d'accès autorisé]
**Gavet, Véronique Duché- [Variante de point d'accès]
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/ECOBIOP]]][[[Membres|http://www6.bordeaux-aquitaine.inra.fr/st_pee/UMR-Ecobiop]]][[[idHAL|idHAL-ECOBIOP]]]
@@
---
Partager la propriété avec Pascale Avril
---
!!! Fiches Créées :
<<list-links [tag[ECOBIOP]tag[publiant]]>>
---
<$details summary="Liste Pascale Avril (email 1er octobre 2018)">
# [[Jean-Claude Salvado|Salvado, Jean-Claude]]
# [[Matthias Vignon|Vignon, Matthias]]
# [[Cédric Tentelier|Tentelier, Cédric]]
# [[Valérie Bolliet|Bolliet, Valérie]]
# [[Charlotte Récapet|Récapet, Charlotte]]
!!! Doctorants :
# [[Colin Bouchard|Bouchard, Colin]]
# [[Clément Lebot|Lebot, Clément]]
# [[Lucie Aulus|Aulus, Lucie]]
# [[Louise Chevalier|Chevalier, Louise]]
</$details>
# Etchart, Joana. ‘Belfast Renewed: A Sign of Change?’ In Changes in Contemporary Ireland: Texts and Contexts, CSP., 32–50. Cambridge: C. Rees, 2013.
# ———. ‘''Community Development: Origins and Hybridization in Northern Ireland''’. Revue Miroirs, no. 2 (`2015`): 139–53.
# ———. ‘Famine-Induced Emigration to British Towns, the Example of Liverpool’. In La Grande Famine En Irlande, PUR., 89–102. Rennes: PUR, 2014.
# ———. ‘''« La Paix sans La Réconciliation » En Irlande Du Nord : Une Faiblesse Stratégique Depuis 1974''’. Études Irlandaises, no. 40–1 (`30 June 2015`): 209–20. `https://doi.org/10.4000/etudesirlandaises.4528`.
# ———. ‘''L’effondrement de l’ordre Public En Irlande Du Nord, 1970-1979''’. `In` //Le Royaume-Uni à l’épreuve de La Crise, 1970-1979//, Atlande., 337–59. Clés-Concours Atlande. Paris: Atlande, `2017`.
# ———. ''Les premières politiques de réconciliation en Irlande du Nord (1969-1998): l’histoire d’un renoncement''. Bruxelles Bern Berlin: P.I.E. Peter Lang, `2017`.
# ———. ‘Loyalism and Peacebuilding in the 2000s’, LUP., 131–53. Liverpool: M. Power, 2011.
# ———. ‘''Parallels between Decolonisation and Peace Interventions in Northern Ireland in the Early 1970s''’. `In` //Fins d’empires. Ends of Empires//, PUPPA., 159–66. Pau: PUPPA, `2016`.
# ———. ‘''Path Dependency in Policy-Making in Northern Ireland: The First Community Relations Policies in 1969–1974''’. Irish Political Studies 31, no. 4 (`October 2016`): 567–88. `https://doi.org/10.1080/07907184.2016.1146697`.
# ———. ‘''Race Relations Policy and “the Community” in Great Britain and Northern Ireland''’. `In` //Fresh Perspectives on the UK Crisis 1970-1979//, Atlande., 179–88. Clés-Concours Atlande. Paris: Atlande, `2017`.
# ———. ‘''Reconstructing Belfast After Terror''’. Leaves, no. 1 (`2015`): 318–30. `https://doi.org/10.21412/leaves_0124`.
# ———. ‘'The Titanic Quarter in Belfast : Building a New Place in a Divided City’. Nordic Irish Studies 7, 2008.
iVBORw0KGgoAAAANSUhEUgAAAUsAAAFGCAYAAADjKb1AAAAgAElEQVR4nO3df3Bb53ng+69MJiRAUgxoGrnAhMzlqalCIj3JBdrGLiApjVXLNuW0mg0terXSbre0nHGbSrqekUdJGQRVsrrSrKuo6XoTW9vsyNWYitpVE1tu5KHbSiZr53aBa9cihYoptKYywIamifAXANqkc/84OEcHIEiCEskDgM9nxkPw/HpfAOLj5z3ve953HUVCcXXYgM8ALYAL2AR8CvgEUANYcpyWBCaAXwA/AwaAMNAPvB0Jd8dXvuZCiFKwzuwKzEdxdSjAA8DDwH1AHWrw+xjw8du49AfAh6jBdRR4A3gFeDUS7o7cTp2FEKWrYIKl4upYB3wO2AN8CbABHwEVq1D8NHAHEAf+CngB+Ekk3P3LVShbCFEETA+WiqujAXgC+DJQjZo53mFilT5CzTwnge8C34uEu2+YWB8hRAEwLVgqrg4f8A1gK/BL1CBZaD5E/YwuAd+IhLt7Ta6PEMIkqx4sFVfHA8C3AYXVaWIvl2kgAhyIhLtfNbsyQojVtWrBUnF1/BrwPdTe7GIKktmmUXvTn4iEu/+n2ZURQqyOFQ+WiqvjLuC/AL9LYTa1b9WHwN8AfxAJd79ndmWEECtrRTtSFFfH7wHXgZ2UVqAE9f3sBK6n36cQooStSGaZzia7AS/F3eTO1zTQB3RIlilEaVr2YKm4Or4AnAesQPlyX7+AzQAJYGck3P13ZldGCLG8li1YpgeV/zHQRek1uZfiQ+AI8E0Z1C5E6ViWYKm4Oj6O2ux+mLXR7F7MNOojlB2RcPcHZldGCHH7bjtYKq6OWuAfUCe2uJ1ntkvNB6gTd3w+Eu4eM7syQojbc1vBMt2R8wbQyNpues/nQ2AIuE86foQobrccLNOB8ieogbJs2WpUemZRA+bnJGAKUbxuKVgqro47gX9CAmW+tID565Fw9/tmV0YIsXRLHpSuuDqswN8DDUigzFcZ6uf19+nPTwhRZJYULBVXxx3A/wB+lbU1hnI5lKN+bv8j/TkKIYrIUv9ojwK/hfR636qPo35+R82uiBBiafJuRiuujp3AM0igvF1lwG/Y6luvxEeuhM2ujBAiP3l18CiujkbUhb5yLQombk0ScEXC3UNmV0QIsbhFm+GKq6MM+CGSUS63CuCH6c9XCFHg8rln+RSwEen5Xm53oH6uT5ldESHE4hZshiuujl8BriJP56ykD4GNkXD3v5pdESHE/BbLLP87klGutDLUz1kIUcDmDZaKq+Nh4DcWOkYsizuA30h/3kKIApWzGa64OspRVzJsWN3qrGk3ACUS7p4xuyJCiLnmyxr3APbVrIjAjvq5CyEK0JzMMp1V3gD+j9Wvzpr3v4EGyS6FKDy5Mst/A9hWuyICUD/3f2N2JYQQc+UKln+CLA1hlgrUz18IUWAygqXi6vgNoMmkughVU/p7EEIUkOzM8gAyrtJsZajfgxCigOgdPIqrwwL8AnkGvBB8AHwiEu5Oml0RIYTKmFk+DHxkVkVEho9Qvw8hRIEwBsv/CFSaVRGRoRL1+xBCFIh1oI+tnECCZSFJATUy5lKIwqBllr/Jba4hLpbdOtTvRQhRALRg+dvIAmSFphz1exFCFAAtWG6nBIcMdTx6Pw0NRfuIexnq9yKEKADr0suyJjF5yNDDD97Lof/7sYxtL/7gNb536ke3dL0nOr/Ioaceo/sHr/E1/6lFj+949H6u9Ee40n/9lspbIR8Alki4W0YpCGGyO4C7KYA5K9evr6Khwc7Y+BR9b7zD+toqDj31GIeeemzxk3N45eKbdP/gNV758U8WPbahwc63Ap089uj9t1TWCtK+HyGEycps9a2fB76IyUtHtLYo3P9bbv7uH0J8zX+KGz8b5uEH7+WTd9lITX/IY4/eT2Xlx/nP/8+T1K6vIhj6F1pbmuj66r/n6af+LV/4LTcVFR/XM8PGBjv3tCikpj/Ut3nvu4dv/Ukn+//gS3jcv8qVgeusA/b/4ZdobVGAddzT0sTwe3GG3/uFeR/GTSngH+MjV66aXREh1rpyYBMFPmTonpYmOh69n4cevJfa9VVc6Y/Q2tLE6b/4GgDjY1O0tih477sHgO4fvEZri0LHo/fDD16jG2htaeI7397P+JiauT704L280KLwO1/6qn5eQ4Od2vVV9L1xpVCa45Wo389fm10RIda6O4AWCqAZrmltUfhWoFO/f/niD17T913pj/D5B/Zz/JkXeaLzi9Sur+L4My/q24B5m9L68X/6It899SP+9sdv0tBgx/ub97Dn978FwN/++E0+/8B+Xvnxmyv8LvN2B2qwFEKYrJwCuyfW2tJEa0sTN24Mc/yZF/neqR/xrUAnAK/8+CfcuDEMwD0tCgB9b7yT8bN2fVXO62rHf+fE/ozt6+c5voA0m10BIYQaLAtqbE33D17ju6d+pAfFxdSur+IG8wfJbMefeZGx8amM8rThRQUaOAvq+xFirboDqDW7EtnyCZSvXFSbyk90fpGOR+/nic4vApnN9lzHt7bcnK6zMX2PUuP9zXt4ovOLGccUgIL7foRYi8oBq9mVWIwxE9R87/kf0drSxMMP3svDD94LwCs/fnPecZm5jr/Sf53vPa9msa/8+E11rOdTj/GVg8OF0sEDRfD9CLEWrFNcHb80uxKahgY742NTOYNjQ4M9Z8ap3uNU6HvjHX1/7foqOh69P+eg9IYGO9777sk5AN173z2MjU8WUqAEIBLuluf2hTBZQQXL5fKtQKc6bAj4ysGThdS7fUskWAphvpKcPEN7aued/utFHyiFEIWhJINl3xvv6EOJhBBiOdwByOSyhU2+HyEKwB1AwuxKiAXJ9yNEASgHxoD1ZldkIU90fpEbPxvmnf4IL/y3rzE2PsXe//gtvdfce989+tjIK/3X82qCa+Myb3UKuFU0ZnYFhBBqZpnfozIF4OHt9zL0s59nBEqAjke/wGOP3k9rSxPfCnTqE2MsF20YkkmK5vsRopSV2epbvwC0rmahDQ12XviLr+kBaPi9eMbvwdC/cOipx3j4wXv5z8eeZHr6A4bf+wX7//BL2O02mu/+FOPjCR5+8F6CoX/h4QfvZfi9OF85eBKP+1dpbWninlZFP/+Vi2/y59/eT9dX/z2tLU387cWf8GvuX5237Oz6aVO4PfzgvXTP84TQCno9PnLlr1a7UCFEpnKgH3Wd6lWbeejPTxzglR+/Sd8b7+C9756M3//8xAFu/GyYhk/ZaWz4JF85cJKOR79A7foq/Smc43/6Io2f+uScxxIffvBeGhs+ySs/fpPWlib9/D8/cYAr/RF9tqJDTz1Gw6fs+jnZZT/R+cWM+hnLXWUfoX4/QgiT3QEMoE4yu2oaGuz0vfGO+rjhqR/R0GDnsUfv589PHABuTmihBaxsN24M0/fGO3zl4El92z0tCg9t/1zGI4/a+Q0Ndl78wWtc6b/Olf7reqDU6pJddnb9jOWushTq9yOEMFk58A4mrL/T2PBJNXClH3E8/qcvZgwg9963+J0B4yOQ7/RHMoKn0fjYlF5ebW0V4+NTekDOVfahpx7LqJ+JPo76/QghTHYH8FPU5t6q+d7zP+KbgU5++Ff/iW8FOjn+py/yzUAn3zmxn9BPTuUVoJ7o/CIv/Lev5VWedv3Tf/FVHt5+L981ZIu5ys6u35X+63h/8x5O/8VXb/k936KPUL8fIYTJ1gEoro7/F/j11SxYW8JBm7RC+31sfIobN4b118Cir7Vp1ow95MbjjNfXMtFvBjq58TN1guHssuerH6x6U/yfIuHu31jNAoUQuWnB8ghwmBJcOzyXQ089xsPb72XP73/LjPuQ+ZoFjkbC3V1mV0QIcTNYbgFeBSrMrY4wmAYeiIS7L5tdESHEzeFC/wiU3FRtRe6XqN+LEKIA3AEQCXfPAH9ncl1Epr9Lfy9CiAJgHIj+F6zyeEsxrxTq9yGEKBDGYPkKBbR++Bp3B+r3IYQoEHpwjIS7k8Bfs8pjLsUcHwF/nf4+hBAFIjuT/DbqkBVhnlnU70EIUUDmLISluDr+BdhgQl2E6lok3P2rZldCCJEp1z3Kr6OO8ROrbxr18xdCFJhcwfKvgfhqV0QA6uf+12ZXQggx15xgmR7b91Uku1xt08BXZWylEIVpvqFCLyDLGay2YdTPXQhRgHIGy3R282Xgg9Wtzpr1AfBlySqFKFxzesONFFfH68BvIoPVV9JHwD9Gwt2bza6IEGJ+iwXB/4CMu1xps6ifsxCigC04f2V85ErcVt86DWxBXYJCLK9poCsS7n7Z7IoIIRaWT/P6GeAqkmEut1nUz/UZsysihFjcgvcsNYqroxEIA5aVrc6akgRckXD3kNkVEUIsLq+Om/Qf9G7gw5WtzprxIbBbAqUQxSPvNXfiI1fCtvrWatSFzdbEWj0r5APg25Fw93fMrogQIn9LHRJ0GPh7ZPzlrfoA9fM7bHZFhBBLk9c9SyPF1WEF3gQ2Ij3kSzGD2qFzbyTcnTC7MkKIpVlysARQXB13Av8ENCJN8nzMAkPAr0fC3e+bXRkhxNLd0pM56T/4z6EGABlStDAtUH5OAqUQxeuWMkuN4uq4C3gDNcP82LLUqLR8iBoo74uEu98zuzJCiFt3W898pwOAB+hHOn2yfYD6uXgkUApR/G57goxIuHsMtUl+AZkDUzON+nl8Lv35CCGK3LJ0zsRHrsza6lt/gNqs9y3XdYvUh8A3gT+MhLvlfq4QJeK27lnmorg6vgCcB6ysraFFM0AC2BkJd/+d2ZURQiyvZZ+nMh0o7gYus3aa5dOo7/duCZRClKZlzyyNFFfH7wHfASoozSxzBjVQfiUS7v6+2ZURQqycFQ2WoA8v+i/A71Jaw4s+BP4G+APp7Rai9K14sNQoro5fA74HtKBmmsVqGnVI0BORcPf/NLsyQojVsWrBUqO4Oh4Avg0oFFfQnAYiwIFIuPtVsysjhFhdqx4sNYqrwwd8A9gK/JLCbKJ/iPoZXQK+EQl395pcHyGESUwLlhrF1dEAPIG69G41atA0czXJj1CD5CTwXeB7kXD3DRPrI4QoAKYHS43i6liH+iTQHuBLgA01cK1GU30aNUDHgb8CXgB+Egl3/3IVyhZCFIGCCZbZFFeHAjwAPAzcB9ShrlvzMeDjt3HpD1AzRwswijoRyCvAq5Fwd+R26iyEKF0FGyyzKa4OG/AZ1N50F7AJ+BTwCaCG3IupJYEJ4BfAz4AB1IXX+oG3I+Hu+MrXXAhRCoomWObr61/3/3DdOr4I/F4gEPjvZtdHCFEazOxIWRHr1iH3GYUQy67kgqUQQqwECZZCCJGHUgyW2nuS5rgQYtmUYrBcn/4pM5QLIZZNKQZLIYRYdhIshRAiDxIshRAiDxIshRAiDxIshRAiDxIshRAiDxIshRAiDxIshRAiD6UYLKvTP6dMrYUQoqSUYrDU1if/0NRaCCFKSikGSyGEWHYSLIUQIg8SLIUQIg8SLIUQIg8SLIUQIg8SLIUQIg8SLIUQIg/lix9SdD6W/jljai2EuAVvfvl+WQ6lQJViZlmV/jlpai2EECWlFIOlEEIsOwmWQgiRBwmWQog5yq01lFtrivb8lSDBUggxR8POTloPP1u0568ECZZCCJGHUhw6JIRYBRX1Du50b6XiLgfT78V4P3SJ6ZFYxjG1Ljd1nq1MvxdjuPcCM4kJfV+5tQa7r42KuxyMXQ0xGrq02m9hSSRYriC/358EKs2uxzJKBQIBi9mVEOardbm5+/EupkdiTI/EqNu+C8f2XVw5+qQeMMus1dz9eBfj4RB123dh39zGlaNPMpOYoKLewcb9xwGYGrpG0+4D3OnZwuDzR8x8WwuSYLmySilQQum9H3GL7JvbmBoaJHzyEABVjRtoPfwstS43w70X9OO04FlR76D18LPYfW1EX+2mafdBZhITXDn6JIC+3/lAB9FXu015T4spxWBZm/45bmothChhg88foaLeQa3LTUW9g4q7HHOOmRoa1LPM6ZEYU0OD1Hm2MNx7garGZsbDIey+Nv342cQkdZ4tEixX0br0z49MrYUQJczua6NhZyegBrmpoWtzjsm+fzk9EqPS5abMWk25tYaqxg1UNW7IOGYmUbgP3pVisBRCrKByaw0NOzsZDV3mxvlT+j3IOvfWjOMq6jOzzarGZqaGrjGbmGQmMcH7oUvcOH9K3599fqGRYFlkFEUhHo8Tj8fxeDwABIPBRY9daJtYXX6//zNAAAgEAoH/z+z6LMTYTAY18xsPh9KvJ5hJTFBurcG5vWPOuVWNzdS5tzIeDrHe5aaqcQPDr6s94qOhy9h9bYxfDTEWDlHn3krT7gPELp5dlfd1KyRYFhkt2AH4fD76+/sz9vt8Pmw2Gy+99JJ+rMVi0bd5PB5isRi9vb1mVF+o1gG/A/yO3+//IQUaNCvqHTTtPpixbXokxltde4hdPEvDzk7udG+lzFrNeDjE9EiM2o03O3imR2I07T6gn3vj/Cl93/UzJyi3VuPaf1zvABoNXSrY+5Vw8/5eyfD7/b9A7eQ5CfxiiadXAMs5NGb/QjtbWlqw2WzE43E96OXapiiKHvCi0SjxeJz29nYAenp6iMfjKIpCMBhk3759AJw7d06/jnbsuXPn2LZtmx4sc5WVh4UGw32Mm7M+LYflvl45N9eVX67rLVf9LgDffOjnvW8s0/VuS7m1hjLr3I9Ka0IDegfPWDpQao8natmmps69hdHQ5Ywxlhr1vmWzfg1j+dq1CkUpZpba/wAWDFRm8/l8eDweotEoHo8Hm80GMGdbb28vHo9HzxIVRSESiWCxqDHd6XRis9nweDwMDAzo27VtsVgsY9tC5eeZbRb2jaXiVVB/i1oTeyHTI7GMYULG442vjcdkmxq6lrNzqJCCpKagvqBlok2e+n2WPnzoAyCxjHXxz7fD6/Xy8ssv09/fT0tLCwA7duygr6+PSCSCoih4vV49gAWDQXp6evQsMRqNAmTsN26PRCL6Pc1c27xe77xlLWLnAvtmWN55RJf7erPAcv4V3ur17gEup19fBL4RCATeBHjoy/cvU9XEcivFYKn5k0Ag8L/MrIDf7583WAL6vcf+/n49+/N6vXi9Xv0YLRtMpVLLXr9cZS3W8RMIBP5m2Suyxvj9/gmygqQofKUYLLV7jtOm1mIRqVQKRVGIRqP4fD4cDgepVIpgMEhvby+KotDS0pJ3r3U+gS67/FstS9y2twOBwINmV0IsTSkGy4+nfyZNrcUienp62LFjB5s2bcJms3Hu3DkGBgYytvX19eV1LZ/Ph9fr5dixY8RiMbxeLz6fT9+fa1t2+fmWJW5fIBAo+nV2al1uUunnwm+V3de24P3MQlOKwbIo9Pf3E4lE9IwwmVRju7YtmUzqmd7LL7+s79dea812UO9bar3Zvb29RCIR/VzjdXNtyy5LiHzYN7cx9e5gXkN9mh/vynmsfXPbnF7wQibB0kTJZFIPXItty36dfYwx2GkdOka5tuUqS6wt2vAfLcOz+9QANpuY1AekG6dWyx6kDmqWCTAWDunTrmnnlVmrWe9y648x2n1tzCQmKbdWM/z6BaZHYth9bUyPxKhq3EBqJJYxVZvd10a5tYbUSIzZxARj6QHxZpBgKcQaNpuYxLm9Qx/XaN/cxmjoMq2Hn2Vq6Bpl1hrsm9t4q2sPrv3HKbdWM5OYVB9dfHcQgPUb1WA5NTQ457zrZ04A6tM82mOSs4lJUiOx9OOPg/q2qaFrOLbvAmA0dCmjPEd64g0JlkIIU8wkJrh+5gR3P94FwE+fP0KZtZoyazVT7w4yFg5Rm35Usaqxmbe79jKTmMCVnosS0J/vrqh3zDlPC26jwZuD0ofOn2I0dAnPM+f1a2jbmh/vojKd7VY1NhN8Sh2pZizPLBIshVjjtGb3jKGZG7t4ljrPFhzbdzE1NKgfqwW82RyDxqdHYnPOy3VPM9c9SuO2qk83z9mfq7zVJmvwCLHGNezs1INgw85Oqho3sH6jmytHn+TK0Sf1xxEBfUo144xC2kqMuc7LnoItX++n71vmKs8sklmurBSlNbv48o+MF6aqdbmx+9oIn3waANf+Y4xfVQPjZ4+8AKj3IqeGrjHcewHX/mP6xBcabbIMbUmI7PPGw6F0pjn3scb5aI9SuvYfy9hmppKaSMPv99+B+ggawCcCgcCYyfWxoE7OUSqmA4GAdJ+voDe/fP+qj8GsqHfogcj4WsvqjEFO2zY9EtOz0exJL+Y7b2roWs6yjNuME3A07OzUp3Rr2n2Q8ashU2clKrVg+QkgDhAIBErqvYm1wYxgWahc+49T1ajev5xNTOqLnZlFmuFCiIIUPnkoZ5ZqFgmWQoiCVQhBUiPBUojCYlv8EGEGCZZCFJB7v/vaUmf3F6tExlkKIUQeJFgKIUQeJFgKIUQeJFgKIUQeSq2DR1u7czkXHRNi1cig9MJVapmlFvw/NLUWQoiSU2rBUgghVoQESyGEyIMESyGEyIMESyGEyIMESyHEHNrs5ytdRiHMgJ4vCZZCiAzl1ho+c+Q0nzlyekWD2d2Pd7Fx//GiCZgSLIUQGercW/TXd7q3rkgZVY0bqKx3MPj8EdOXi8hXqQ1K/1j654yptUjz+/1JSmsNntWQCgQCFrMrsZbVebYyNTTI9EgM++a2jKUctMl4y63VrN/oZnZqkvdDl+YsRTHffnVfjb5MbkW9Y86cleXWGuy+NirucjB2NcRoevEys5VasKxK/5w0tRY3SaBcOvnMTFTVuIFal5vrZ06owdLXRp17qx6w7JvbqHW5KbNWM5uYpMxajX1zm77kw2L7K+odbEyvAT41dI2m3Qe407NFX+xssf1mKrVgKYS4DbUuNzOJCUZDl5lJTDA1dA375raM7K7MWs2Vo08yPRKjqnEDrYefpc69heHeC4vub9p9kJnEBFeOPgmowbH18LM4H+gg+mr3ovvNJMFSCKGzb25jPByizFpNmbWasXBIbRIbVmCcTUzqr3MtIDbffnVt8WbG09c0Hl/nUYPpQvslWAohCkKdeysV9Q4q6h3UZXXs2De3ceP8qdu6fpm1Oh0wN+j3NjUz6Sb7QvvNJsGyyCiKQjweJx6P4/F4AAgGgytantPpBCCZTBKJRIjH4ytW3lrh9/vPAWeAHwYCgYKYaehOzxamR2JcPXkoY3vT7oPYfW3ELp69revPJiaZSUzwfuhSRuDVAvNi+80mQ4eKjKIoKIqCx+PB5/Nhsy2+vpXP5+ORRx7Juwzj8R6PB6/Xi9frZdu2bezbt49t27Yta3lr1K8D54F/9vv9HX6/39S/xXJrDetdbr3n2vjf8OsXKLfWZAwpuhXavVC7T+0EAjUQNu0+QGW9Y9H9ZpPM0kQtLS3YbDbi8Tj9/f3zblMUBYvFgs1m0zO79vZ2PdOz2WwoiqJnmB6PB4vFQiQSIRqNsmnTJgD9uloZyWRSP8dYhvF4gEgkwrlz5/Tj2tvbicVi9Pf357zWfOUZ39NC/H7//wXUZm0u5+Z8pZpK5vaeV3FzCJmmFlhn+P0OYH3WMR/j5mgKjQWoyNpWzdy/m09k/V4GZD/+UpG+nkYrvxV4EfgTv9//n/h5L2aw+9oot9YwGrw8Z994OMRMYoI6z9bbHhN5/cwJyq3VuPYfZ3okRkW9g9HQJf1+5GL7zSTBcgn8fn/2H12uP4qPA9bFruXz+fB4PESjUTwejx6Ysrf19vbi8Xj05reiKEQiESwW9e/O6XRis9nweDwEg0H27t0LqE1mr9fLCy+8oB9rs9loaWlh06ZNxONxnE4nTqeTl156SS8jlUrpgS1X1qoFa4fDoQdW47V6enrmlJfrPS0itNgBJShX4F81w70X5oyH1MwkJni7a6/++w3DvumRGG917dHPu3H+1IL7AQafP0JV41mqGpsZC4fmlLnYfrOUWrDUgtQn/X7/P6AGtuwMJVcGkesfajVqMFwRXq+Xl19+Wc/OAHbs2EFfXx+RSARFUfB6vXpgCQaD9PT00N7eDkA0GgXI2A/o2Wd/fz+RSIRkMqkfG4lEcDqd9PX16fc8Kytvvu3sMiKRiH5f1EgLpLFYbM61sstrb2+f9z0t4F0ge0nYWSC76/UD5s6Kn0hvN5pIn6/5JTCWdcwMc8fnptL/GU0xd3LpsfQ1NR8B44vU9RVgI/C/gWPAfw0EAtMPffn+/4oJZhITOXu2jfvnYwxmuY7LFeymhq7NGYy+lP1mKLVgqTVzKoHVuiuc/Uf3IeofFMCnFzpR6yjp7+/XszHt/qBGy+5Sqey/2dxeeuklfD4f7e3tpFIpIpFIxv7Kykp27Nihl2/srMm3DKfTSTAYXPBawILvaaFOokAg8H/mVZEi5vf7o8Bp4DuBQGBqseOF+UotWGrZw/8CDqZfZ2couTKIaSCZtS1XhjIeCAQ+yrcyfr9/3l7OVCqFoihEo1F8Ph8Oh4NUKkUwGKS3txdFUWhpacm751kLQD6fj5deeolUKkV7e7uetWo8Hg/nzp0jEomwbds2vac7HxaLhU2bNlFZWUkkEmHPnj0LXiuZTN7WeypxDwUCAVn+pIiUWrDUjAUCgb8xuxIL6enpYceOHWzatAmbzca5c+cYGBjI2NbX15fXtXw+H16vl2PHjhGNRtm3bx/xeByLxaJ3qHi9Xnw+H7FYjEceeYRkUv1/Q677krFYTD8e1E6dp59+Wt//8ssvE41G572W8fzs95nveyp1EiiLz7rFDykefr//88DfA28HAoHPmlydBTNLQO99jsfjesDRtiWTST0Ds1gsGfuTyaTexDUGKu14LcMzXtfpdOq/a/uj0ah+nrEM4/HatTXa/UjjcdnXyi4v13taSCAQKKl/l0tRLKs71rrcpNJDi26V3demPyJZDEo1sywKyWQyI0AttC37dfYxxiCUHdCytxlfa+dlX894TPa++Y6brw653pMobvbNbUy9O5jXkJ7mx7tyHmvf3MNW7AAAACAASURBVFZQvd2LkWApxBpWUe+g1uXWMzy7Tw1gs4lJ/fns4d4Lei+38ZltjTaAfCwc0qdX084rs1az3uXWH1e0+9qYSUxSbq1m+PUL+sxG2qQbqZFYxqQd2vjP1EiM2cQEY2HzRpVJsBRiDZtNTOLc3qEvIaHOMHSZ1sPPMjV0jTJrDfbNbbzVtQfX/uOUW6uZSUxS1djM1LuDAKzfqAbLqaHBOeddP3MCgKrGZsqtNTTs7GQ2MUlqJKZeY2hQ3zY1dA3H9l0AjIYuZZTnSE+wIcFSCGGKmcQE18+c4O7HuwD46fNH9BmHpt4dZCwcotblTk9u0czbXXuZSUzgSs85CejPcVfUO+acpwW30eBlPTsdOn+K0dAlPM+c16+hbWt+vIvKdLZb1dhM8KmdABnlmUWCpRBrnNbsnjE0c2MXz1Ln2YJj+y6mhgb1Y7WANzvP4PPs83Ld08x1j9K4rerTzXP25ypvtZXaRBraoPRpU2txU36jvIWRfGarrGFnpx4EG3Z2UtW4gfUb3Vw5+iRXjj6pP3YIN5eNMC4ypq0Emeu87KnW8vV++r5lrvLMUmqZpTbpQaF0vdYxdyIGsbBC+R/dmlDrcmP3tRE+qY6jde0/xvhVNTB+9sgLgHovcmroGsO9F3DtP6ZPcKFp2n0AQF/6Ifu88XAonWnm//ji9EhML8+4zUwlNZ7N7/f/Luq0V5cCgcDnTa6OEEtmxjhL4yzoxtdaVmcMctq26ZGYno1qnUPa7/OdNzV0LWdZxm3GtcobdnYy/LraE9+0+yDjV0Omzj5UapmlEGKJjBmb8XWuTDDXtuzJMxY6L1dZ803EUVHv0DPL2cQkPzV5ALsESyFEQQqfPJQzSzWLBEshRMEqhCCpKbXecCGEWBGSWQpRWBZfVEmYQoKlEAXk3u++lj3/qigQpdYM195PUUxzJYQoHqUWLLUV87KXehBCiNtSasFSCCFWhARLIYTIgwRLIYTIg/SGC1FAimUNnrVIMkshhMiDBEshhMiDBEshhMiDBEshhMhDqXXwVKd/TplaCyEKTLm1hjJrdcY2bd0ds2RPGnw755Zba6hzb9FnZ18JpRYstffzoam1MPD7/Umg0ux6FLBUIBCwLH6YuB0NOzvnrPk9k5hgamiQ62dOmLJkQ8POTmpdbt7q2rPosRX1Duyb2/SVJI3nVtQ72Lj/uD7jej7XuxWlFiwLkQTKhcnns4punD+VkY3ZN7excf9xrp48tOoBc+rda0y/l1+ZtS43d7q36sHSeG6ty01FvYPwyUMZK1EuNwmWQqwh74cuZQTF90OXaD38bEbWVm6twe5ro+IuB2NXQ4ymV1rU1Lm3UvXpZmanJpkauqav/LjQudqM51WNzZRba3g/dImpoUF94TNtf7m1mjrPVqbfUxcsm0lMUFHvoOIu9Ti7r43h3gv6ucZ9VY0bSBnWBlpuEiyFWMOmR2JMDQ3qWZvWpAV1lvKm3Qe407NFX7nR+UAHju27GA+HqHA5aNjZyfUzJxjuvUBFvYPWw88ym5icc659cxu1Lrd+33Rq6Bp1nq3UutyMhi5l7B8NXcaxfRf2zW3pJXU3cKd7K2XWapzbOxgNXdaPHzp/ijvdWwGwb24jNRJbsQxZgqUQa9z0SIzKdIbXtPsgM4kJrhx9EkAPgM4HOoi+2o19cxuxi2f1VRabdh/UM7um3QeZHonp59a5t9L8eBe1LnWhsTJrNeGTT+srQ9Z5tmbUo8xazZWjTzI9EiN6sVvNeH1tRF/tpjwdKLPvR46GLlFuraZp98EVv5UgwVIIAahN6KrGZsbDoYzOoNnEJHWeLURf7SY1EsOxfRdVn25m6t1B/R6odm7s4ln9vNHQJd7qusb0SIw6z1Y945zP1NBgxoqP4+GQXm4hkGBZpDweD8FgEACfz0c0GiUSiSzpPCFAvY8IamanBr0N+j1EzUxiEoDrZ05g39zGne6t1Lm34ti+i9jFs7wfukS5tWbO/cKlZHrZx84kJqkyrCNuNgmWRcrj8RCJRPD5fDgcajMon2C5bds2YrEY0Wh00WPb29uJxWL09vbecj2X4xqlyO/39wB/CfxlIBCYMaseWidJ7OJZfdzl+6FLemcPqM1pTa3LzfDrF7hx/hRVjRtwbt+FY/uum50x6SY5qJlq0+4DRA3Z5mJ1MapqbCZlwpCm+ZRasPxY+qdp//huhcfjwWKxEIlE9CA237ZUKkVlZSXBYBCbzcamTZsYGBigv78fRVGAm0FTu0Y8Hqe/v18vz+FwoChKxrUtFgsejweAYDBIZWUliqKQSqVylj3ftY31TiaTGdcQGe4Gvg/8sd/v/yarFDTvdG+dM3RoNjGpB7vR0GXsvjbGr4YYC4eoc2+lafcBYhfPUm6tUcc3hkNcP/Pt9L3HSf3a2rmjwctMDV3D7mtjvcudd7Csamymzr2V8XCI9S43VY0buH7mhL6/zFpNVeMG05bHLbVgWZX++ft+v//3Ta1Jnvbu3UtlZSXxeByv18sLL7zAtm3bMradO3eOSCTCtm3bSKVSxONxHA4HfX19gBr8bDZbRrDcu3cvAMlkEq/Xqwc5uNls164di8XYt28f0WhUD5ovvfSSfm2LxZJRdktLS85rZ78XY/0sFgvJZDLnZ+D3+9fytGS/gjFo/nxlM/CGnZ36a+OgdC2AXj9zgnJrNa79x5keiVFR72A0dEm/b/jT549w9+NdfObIaf06P33+CDOJCf3c1sPPMj0So8xaTezi2XRwyxwQP5+m3Qf01zfOn2K4V+0c0sZPth5+NiOArqZSC5ZFxel04nA4+LM/+zOSySQ+nw9Qg8u5c+dIpVKkUim9yQ3Q09NDf38/Tz/9NJFIBK/Xy8DAAJFIJKMZHo1GGRgYoLKyEpvNhsVy8yGZl156SQ++Pp+Pl156icrKSmKxGJFIRM86AQYGBvQgp5W9bdu2OdfO9V76+/v1+s0XKMXquHH+FNGLmR0l8z3uOPj8Eaoaz1LV2MxYOJRxL3EsHOLtrr2sd7kBGA+HMq5hPHc0dFnfd+P8KW7kqJNx22xikitHn6TOvSXjXFCHGr3dtZcyazXTIzHKQ5f1c4d7L8yp50oo1WD5XeCw2ZVIiy92gBZIent79aytvb395gXi8ZyvF+J0OvWmczZtWyqVwmazEY/H6evrY9OmTXi93nnvMWplL3Rt43tZgrW4VvY/Aw3AvwJ6M/yhL9///ZUobCYxsaTB2lND1+Zt7qrN9Us59813bq6y59umZZO59mnn3E5H0q0q1WA5HQgECmL9Zb/fP+8+LbA4nU6i0ajeGQLwwgsvEI1G9WwzH1r26HA4cDgcHDt2DIB9+/ZlHGez2YhGozgcDiKRCE6nE0VReO6557DZbOzbtw+n05mzDEVRcl57ofeymEL5rlaT3++/Bnwdkzt4CsX0ezFS9YXTmZNLqQbLohCPxwkGg+zZs4d4PI7FYuHll1+msrJS32az2Th37lxe19uxYwcAL7/8MqlUSg9kFotF7zEHtUfc6/VisVg4ffq0njHu378fQO8t15r5xp7zWCyW89q9vb0534vD4dCvkU9v/VoRCAS2mV2HQhJ9tbtgxlPOZ53ZFVhOfr//G4AfOBkIBA4scviqyKfzQrvvZwxK2rZ4PK5nbVqT2fjauE3LLJPJJBaLBZvNRjKZ1INXMpnEZrNlNL+N9xK1bNJYDy1TzC4n17Xney/aNeYTCARK6t/h7ZA1eAqXZJYFIB6Pz7kXOd+27NfGbcbAl0wm5/xuPD5Xh0uugKZtyy4n17Xnq3c+YzpFcal1uW/7OWxtUoxiITOlCyGWTHuKJx/Nj3fhfKAj5zWyB6IXMskshVjDKuod6lM56QzP7mtjLBxiNjGpPx+uDVjX9merTQ8jGguH9CnatPPKrNWsd7n1wet2XxsziUnKrdUMv36B6ZEYdl8b0yMxfYo1Y0+73ddGubWG1EiM2cRExnRwq63UgmVt+ue4qbUQokjMJiZxbu/Ql2mwb25jNHSZ1sPPMjV0jbL0Uz5vde3Btf845dZq9ZntRnUiDYD1G9VgOTU0OOc8bQC5No9lw85OZhOTpEZi6jWGBvVtU0PXcGzfBaiTcBjLc6Qn+JBguXy0joKPTK2FEEVCe/Lm7se7APVpnDJrNWXWaqbeHWQsHKI2/ehhVWMzb3ftZSYxgSs95yWgP0deUe+Yc54W3EaDNweZD50/xWjoEp5nzuvX0LY1P95FZTrbrWpsJvjUToCM8sxSasGyEKWQpRMWIg+Om0xrds8Ymrmxi2ep82zBsX1XxlINWsCbzTGgfHokNue8XMOBcnUKGbdVfbp5zv5c5a02CZYrrw6oMLsSBWza7AqsdQ07O/Ug2LCzk9HgZdZvdHPl6JP65L83zp9S57FMT2RRUe/Qm+FaE76i3jHnvOyp3vL1fujSnPLMWFTNSILlCgsEAklAHowWBanW5cbuayN88mkAXPuPMX5VzS4/e+QFAH152eHeC7j2H9Mn2NBok19oS09knzceDqUzzfxnC5oeienlGbeZqaQGA/v9/m8D+4FAIBD4hsnVEWLJzBiUbszajK+1rNAY5LRt2tIQMHcN7/nOy84QtdfGbeWGyX4bdnYy/LraE9+0+yDjV0OmPuUjmaUQa5wxYzO+zpUJ5tqWPanFQuflKsu4zXitinqHnlnOJib5qckD2CVYCiEKUvjkoZxZqlkkWAohClYhBElNqT3uqM1wKz2sQohlVWqZpTZER3qfRbFaixMhF4VSC5ZCFLV7v/vampsIuViUWjNcCCFWhARLIYTIgwRLIYTIgwRLIYTIgwRLIYTIg/SGC1FAZMGywlVqmaX2fuQfnBBiWZVasFyf/jlmai2EECWn1IKlEEKsCAmWQgiRBwmWQqwB5daajIl1xdJJsBSixJVba/jMkdN85sjpjOUgxNJIsBSixNW5t+iv73RvNbEmxU3GWa4Cv9+fRJbDzVcqEAhYFj9M5KvOs5WpoUGmR2LYN7fNWcem3FqD3ddGxV0Oxq6GGA1dAm6upVPV2Ey5tYb3Q5eYHonNe7zxnHJrNes3upmdmtTPq0ivBz6ctTyE3dfGWDik3yYwnht9tZuKeoce5LVrLVb3lSDBcnVIoMyffFbLqKpxA7UuN9fPnFCDpa+NOvdWPahoS9bOJiaZGrpG0+4D3OnZwuDzR7BvbqPW5abMWg2os5aXW2tw7T+Wcbxz+y7CJ59mJjGRcc5sYpIyazX2zW1cOfokoC5CVm6t0QN2rctN0+6DhE8eos6zdc65VZ9upqLeQbm1hjJrNY7tu3i7ay8ziQkq6h1s3H9cr5ux7itBgqUQJazW5WYmMcFo6DIziQmmhq5h39ymB8um3QeZHonpwazOvZXmx7uodanZX5m1mvDJp/XVHFsPP8vU0CDhk4eAm8HWsX0XN86f0s+5cvRJpkdiVDVuoPXws9S5tzDce4GpoUHqPFv0YKlmvdcYC4eo82zNONf5QAcNOzu5fuYEw70X5lyrafdBZhITet21ujgf6FiRVSBL7Z5ldfrnlKm1EKJA2De3MR4OUWatpqLewVg4RFXjzWytqrGZ0eBl/fjR0CXe6trDWFhdO1zLILVMrqpxg76uOKgrM46HQxn3QmcTk3pTOXvlx+HX1aBX1biBcmsNde4tGeXnOleri/FaWt21bNnuUzPa2cQkdZ4trIRSyyy19/OhqbUQogDUubdSUe+got5BXVbHjn1zG8OvX6DcWjMnoBnvCeaSffxMYjLvOo2HQ8wkJqh1uUmly8m+h5mPMmt1OmBu0O+T3kp9lqLUgqUQIu1OzxamR2JcTTeZNU27D2L3tRG7eFbNGO+6OZyo3FpD0+4DRC+enXO92cQkM4mJOeM1K+odcwLofGYSEwz3XsC+uY3USIypocG8z81Vl/dDl/TmPzDnfwrLqdSa4WuGzWZDURQAFEXB5/OZXCOxFH6/v8fv9/8Hv9+/IglLubWG9S633nts/E/LKOvcWxgNXcbua9OzM7uvjfUud85rziQmGA+HsG++eXyde+ucpvxixq+G0k36ZoZfX3pWqdVFq3ttur517q007T5A5QqNJZXMskgpioLNZiMej9Pe3k4kEsFisZBMysKWReJu4PvAH/v9/m8CfxkIBGaW6+J2Xxvl1pqcQUxrCtd5thI+eYhyazWth59leiRGmbWa2MWz6fW62+acO3T+FE27D2YcPxq6vKQOlbFwiKmha1TUOxgPhxY/YR7Xz5yg3FqNa/9xfWjSaOjSinTuAKxbkauaxO/3/wNQdKNunU4niqKQTCYJBoPzbrPZbDidTmw2G/39/dhsNlpaWti0aRM9PT0Eg0F8Ph+9vb0Z1wAIBoN6IM2+dvZ1LRbLvGVXVlZisVj063k8HiKRCPF4HACfz0d/f79+rFa2x+PBYrHodRNz/CvwzYd+3vv95biYNtRmvvuPWlNaawKr9/6a9V7zXMcY5Tp+vnMq6h1z6tF6+FnGwqGMJnQ+5+a6llaXsXBo0futt0MyS5MpiqJnhlrTOhgMZmxraWnh9OnTtLS04PV69cCkKIoekGw2GzabDa/XqwfSRx55hGg0is1mw+PxcPLkyZzlxWKxjOt6vd55y47FYlRWVrJp0yaee+45PB4PNpuNnp4ePB4PmzZt0q8Ri8Ww2Wz4fD7i8TiVlZU4HA7OnTtnzoe9hswkJha8F5i9b2roWjqbnP+YxY6f7xxjAKtzb6Uy3emU3QRf7Nxcvy9Ul+VWqsHy3wG3djNkZcTn2+HxeAgGg/T09OjByePxMDAwQDAYpLKykvb2dpxOp3qheJznnnsOn89HMpkkEong9Xrp6ekB4NixY4AaPIPBIJFIBEVR8Hq985ZnvO7evXv1/QBPP/10xjGnT5/G6XSyZ88eAD2b1YLlwMBAxrE+nw+Px6O/1uqxCNsSP99i9M9AA+mMknQz/KEv378smWWhUu93NhO7eHZFs8CVUKrBcioQCBTMYvV+v3/B/alUClADTG9vL/v27cNms+lZGoDD4dCPyYfFYsHr9eoZ3kLlaZmfVk4kEsk43mazzSnbYrHgdDoJBoNs27ZNzzC1Jrfx2Gg0mledNYX03a0Uv99/Dfg6y3yvstCp90jnDlcqBqUWLD+W/lk0//hSqZQeCBVF4ZFHHtHvAZ47dw6LxUJ7ezsDAwN4PJ5Fr+d0OolGo3g8Hvr6+ujt7aWlpYUdO3bMW552XxJgYGBAD47az2g0qme2uQwMDLBt2zZisZh0MOXvtwOBwJpc/qQYAyWU3tChqvTPlRmVugJ6e3txOp3s27eP9vZ2gsFgxrY/+qM/IplM5hWEtHOcTqfePN+7d6/e9HU6nTnLy66Poijs27ePffv26U35hWidQtnXEvMr9kBZ63Lf9nRvdt/c3vZCVmq94W8BnwF+KxAI/IPJ1dH5/f5F/zCcTifJZDKj+aplc8ZmrHF4kPZaG0KknaMdbzzfeEyu8rKHHeWqj/EYYzlap5F2v3S+egJz6pFLIBAoqX+XS1Esqzs2P97F1LuDeQ3Tme/Y1sPPMvj8kaK5d1lqzfCileu+Xq5txoCmvZ7v/qDxdXaAyr52dua6WNnafu1+ZV9f36L1zFUPYa7sadO06dJmE5N65jfce0FvOufKBrVB4do0a8bzyqzVrHe59UcQ7b42ZhKTlFurGX79gv5stzbpRmokljHNmjZeNDUSYzYxoT8nbgYJluK29PX1MTAwsOROHFEYZhOTOLd36GMc1RmJLqdnF7pGmbUG++Y23urag2v/ccqt1cwkJqlqbGbq3UEA1m9Ug+XU0OCc866fOQHcnBOzYWcns4lJUiMx9RpDg/q2qaFrOLbvAtQJPYzlORqbGQ+HJFiK4pXv/VRRmGYSE1w/c4K7H+8C4KfPH6HMWk2ZtZqpdwcZC4eodbn1gd/aXJKu9DySgD6wvKLeMec8LbiNBm8OXh86f4rR0CU8z5zXr6Fta368i8p0tlvV2EzwqZ0AGeWZRYKlEGuc1uyeMTRzYxfPUufZgmP7LqaGBvVjtYA3O88A8uzzct3TzHWP0rit6tPNc/bnKm+1lVpveKFKmV2BIiKf1Spr2NmpB8GGnZ1UNW5g/UY3V44+yZWjT+qPEsLNZSOMPeHaypG5zsuePi1f72ctbVEIC61JZrk66oAKsytRJKbNrsBaUutyY/e1ET75NACu/cf0yX0/e+QFQL0XOTV0jeHeC7j2H9MnrdA07T4AoC/nkH3eeDiUzjTzfyRxeiSml2fcZqaSGqJRqEOHhMiXGUOHjJNTGF9rWZ0xyGnbtGUmIPekHLnO02Yayi7LuM04V2bDzk6GX1d74pt2H2T8amjFZhTKR6lllrXpn+Om1kKIImLM2Iyvc2WC+UyesdB5ucoybsuecUjLLGcTk/z0FmZUX06lFiy1TPkjU2shhLht4ZOHcmapZim1YCmEKCGFECQ10hsuhBB5kMxSiMKyFubyLEoSLIUoIPd+97WSn8uzWEkzXAgh8iDBUggh8iDBUggh8lBqwbIy/VMemRNCLKtSDZYyZ5gQYllJb7gQBaRYlpVYi0otsxRCiBUhwVIIIfIgwVIIIfIgwVIIIfIgwVKIErfYkgwruWSDtuSE8Xe7r42qxg1z9hU6CZZClDC7r43PHnkh53rfoAbKhfYvVUW9g4adnfrvDTs7aT38rL6v9fCzNO0+SPPjXRn7lrvclVBqQ4e04F9Qwy/8fn+Sm2NAReFLBQIBi9mVKEa1Ljd3urfqy+NOvXuN6fdi+r6Kegfhk4eYGhqkzr1F37fc5a6EUguWWk4/Zmot5pJAWVxK+vuqqHdwp3srkHtyXa2pXHGXg7GrIUbTKy3CzfV1yq3VrN/oZnZqkvdDl/S1dCruUpv0dl8bw70XmBoaVLcb9lU1biA1EtP3Zder4i4H0+/F9OveSrkrodSCpRBiAbUuN3c/3pVecGwSx/ZdGfsr6h1s3H8cUANp0+4D3OnZoq/caN/cRq3LTZm1mtnEJGXWauyb29JL327gTvdWyqzVOLd3MBq6rB8/dP6UHqDtm9tIjcSo3eim1uVmNHQpo17TIzHqtu/CsX0XV44+yfRIbMnlZq8LtBwkWAqxhjTs7GRqaJDwyUOAmok17T6o72/afZCZxARXjj4J3LzP6HygQ19ZscxarQexqsYNtB5+ljr3FoZ7L1CeDlhvde3JKHc0dIlyazVNuw9y9eQhptPBUmPf3JZRL+26tS63nineSrnLSYKlEGtERb2DqsYNGff1RkOX9Y6RcmsNVY3NjIdDGR0+s4lJ6jxb9GA5m5jUm8fLlcENPn+EinqHfl9Ta1YbrUS5SyHBsgjZbDZsNhuRSARFUXA6nfT29ubcb3b9fD5fRt00Ho+HYDC4LGVon0F/f7+p77tYGAPNTGKC2cQkoGZuasDcoN8jvHnc5IrWye5r04P2bGKyoBYq00iwLEKKomCz2YjH47S3txOJRLBYLCSTyYz98wUNRVHYtm0bzz333IrUr6WlBYfDQSqVYtu2bUQiEaLRqL7f6XSybdu2WwqWWt2DweCczwCgsrKyKIKl3+/vAf4S+MtAIDCzGmXOJiaZSUxkjG3UOl+M+98PXcrIPuvS9xpXSrm1hoadnYyGLnPj/ClmEhNU1DtWvNylkmBpMqfTiaIoJJNJPXjk2maz2XA6ndhsNj2D8vl8AEQiEZLJpJ7FRSIRPfNyOp1UVlZisVgIBoMkk0k9mCqKQiQSyau8XNcx1hXI2L7Qe43H44t+BovVXXvfxs9Ae9/5fobZ9VhldwPfB/7Y7/d/k1UImjOJCb3TZSwc0jtO5uz3tTF+NcRYOESdeytNuw8Qu3g273LKrNVUNW5YcnY4k5jQg7lze8eSzr2dcvNVqsEy7vf7za7DohRF0bMiLXgFg8GMbS0tLZw+fZqWlha8Xq/+B64oCpWV6ggXLTB6vV76+/v1zC4Wi+H1eonFYlRWVrJp0yaee+65jIAC5FVerusoisIjjzxCNBrFZrPh8Xg4efLkou/V4/HM+xlklz9f3S0WCy0tLRmfgfa+831PuW4PaPx+/2qN1f0VjEHz5/PXaTlEL3brnTYziQm991lz/cwJyq3VuPYf14fljIYu6fcrFzM1NAhA6+FnuX7mRF7nzCQmiF08S8POTr1XezwdzGs3uvMaCpRd7koMHyrVYFkUtPt2PT09+h+1x+NhYGCAYDBIZWUl7e3telCLx+M899xz+Hw+kskkkUgEr9dLT08PAMeOHZtTRjwe5/Tp0zidTvbsUXsKY7EYiqLQ29tLe3t7XuXlug6o2aR239Dr9eb1XrUAqW1fqPz56g7M+Qy0LDOfz3CtGO69oGeRANMjMcInD1HrUnuix8Ihyq01GfcxB58/QlXjWaoamzPOBbhx/hQ3DNefHonxVtce/ZipoWu83bWXMms10yMxykOX9eOz62K8VvTVbt5PDyHSjjHeLlhquSuh1ILlTqAWeAX40OS6GM3b3kulUuoB8Ti9vb3s27cPm83Gpk2b9GO0bOlWmo3GcywWix40NFpWulh5ua5jsVjwer16BrgQRVHo6+sDbr7npZSfq+7zyfeai10m3wNv0T8DDcC/Anoz/KEv3//95S4oV/AYC4f017l6lqeGruVszuY6Nvv6WnM61/HGY3PtM2aE2R1RSyl3JZRUsAwEAn9jdh1yme+WQCqV0v+ItSZtJBIhHo9z7tw5LBaLnvkZm67zcTqdGR0p+YjFYrdcnsfjoa+vj97eXlpaWtixY8e8xw4MDOjvVWtK3275K/GeNIFAYEXX7/b7/deAr7OKHTzi9pRUsCw2vb297N27V88m+/r66O/vz9imdd4sxul0sm/fvryamFrTtb29nZ6enlsqz3gd4/3T+bI/43u1WCw5t+dTvlbmtm3b6O/vX7Sspb6nVfTbgUCgoOYwEAtbZ3YF1oLFOgucTifJD44UhwAAAa1JREFUZDKjiagFHWOmaBwepL3Whs9o52jHa/uN5xj3a9md8dx8ysu+jvE8Y12047PrpB1TWVm5pPebq+6pVGrOZ5B9zkLXXEggEDDlb0PW4ClcEixXwSr2rIplIsFycXZf25wOIO2xSLuvLaODZmromn6f1Ni5VEykGS6EuCUNOzspv3hWH1ZU1biBhp2djIVDOeeWHA+HGHz+iD62U4KlEEIAMUMgrXW5ce0/TlVj/oPbC40ESyHEitGeMa9q3KAPgi9WEiyFECvCkZ6Tstxaw9TQNa6f+bYpswUtF1mDZ3WkFj9EFBD5vm6RcWB47OJZgk/t5Mb5U3rALGaSWa6OOqDC7EqIvE2bXYFiMB4OUfXpZv33Wpc7Y85JTfTVbtZvdNP8eJc+qXAxkmC5CgKBQBIouFHRQtyOofOn2Lj/OJ5nzuvbrp/5ds5jr585oc+4XqxknKUQBaSYxllqtE4cdV0ftQleUe+Yk2FW1Dv0iYbBnNnOb4dklkKI25LrXmSuXu9i7gkH6eARQoi8SLAUQog8SLAUQog8yD1LIQrLSk86LIQQQgghhDDV/w/eIOyriH8URgAAAABJRU5ErkJggg==
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/EXPERICE]]][[[Membres|https://experice.univ-paris13.fr/membres/enseignants-chercheurs/]]][[[idHAL|idHAL-EXPERICE]]]
@@
* [[Lerbet-Sereni, Frédérique]]
Il faut faire un export des références au format `RIS`.
La procédure est expliquée ici : https://www.zotero.org/support/fr/kb/importing_records_from_endnote
''/!\'' sur cette page, ''le lien pour télécharger le format RIS dans ~EndNote n'est pas valide'', il faut utiliser celui-ci : http://endnote.com/downloads/style/reference-manager-ris-export
Ajouter les balises ''html''
*Indice `<sub></sub>`
*Exposant `<sup></sup>`
*Italique `<i></i>`
exemple :
```
Citation Key: conference504
bibtex*[x-invitedcommunication=Non;x-proceedings=Oui;x-conferencestartdate=2012;x-peerreviewing=Oui;x-popularlevel=Non;x-audience=Internationale;x-language=en]
event-place: Washington
```
!!! Livres :
# L’épopée des pèlerins. Motifs eschatologiques et mutations de la chanson de geste, Paris, Presses Universitaires de France, “Perspectives littéraires”, 1997, 254 pages.
# Flamenca, traduction en regard de l’édition nouvelle établie par François Zufferey, introduction (rédigées par mes soins : p. 7-23 ; 31-92) et notes avec François Zufferey, Paris, LGF, Le Livre de poche, “Lettres gothiques”, 2014, 638 pages.
#*//Prix La Grange 2016 de l’Académie des Inscriptions et Belles Lettres//.
*En collaboration :
# ''La Vie de saint Alexis en ancien français'', `traduction` avec Maurizio Perugi, en regard de l’édition établie par Maurizio Perugi, Genève, Droz « Texte courant », `2017`, XLIII-121 pages.
!!! Thèse inédite :
# Convertir par l’écriture. L’exposé didactique et l’événement maïeutique dans le Roman de la Rose, le Breviari d’Amor et les oeuvres littéraires catalanes de Raymond Lulle, Université de la Sorbonne – Paris IV, 2000, 931 pages.
!!! Direction et co-direction d’ouvrages collectifs
# Froissart à la cour de Béarn : l’écrivain, les arts et le pouvoir, Actes du Colloque international réuni à Pau et à Orthez, 20-22 octobre 2006, Brepols, collection “Texte, codex et contexte”, 2009, 374 pages – XXIV planches couleur.
# L’Arbre au Moyen Age, Actes du colloque international réuni à Bordeaux les 25-26 septembre 2008 sous l’égide de la Société de Langues et Littérature médiévales d’Oc et d’Oïl, coorganisé avec Danièle James-Raoul et Jean-René Valette (Université Michel de Montaigne - Bordeaux III). Presses Universitaires de Paris-Sorbonne, 2010, 206 pages.
# Eveils, hommage à Jean-Yves Pouilloux, études réunies par Valérie Fasseur, Olivier Guerrier, Laurent Jenny et André Tournon, Paris, Classiques Garnier, 2010, 314 pages.
# Les genres au Moyen Age : la question de l’hétérogénité, Actes du colloque réuni à Pau les 12 et 13 novembre 2009, coorganisé avec Hélène Charpentier, Méthode!, éd. Vallongues, 2010, 178 pages.
# L’Aquitaine des littératures médiévales. XIe-XIIIe siècles, Jean-Yves Casanova et Valérie Fasseur (dir.) Presses Universitaires de Paris-Sorbonne, 2011, 316 pages.
# ''Ponctuer l’œuvre médiévale : des signes au sens'', Valérie Fasseur et Cécile Rochelois (éd.), Genève, Droz (« Publications romanes et françaises »), `2016`, 720 pages.
#* //Médaille Alfred Dutens 2018 de l’Académie des Inscriptions et Belles Lettres//
# ''Les Écoles de pensée du XIIe siècle et la littérature romane'', études réunies par Valérie Fasseur et Jean-René Valette, Turnhout, Brepols (collection « Bibliothèque d’histoire culturelle du Moyen Age »), `2016`, 372 pages.
!!! Articles dans des revues internationales à comité de lecture :
# “La Dame de l’Arbre : rôle de la « vue » structurale dans le Breviari d’Amor”, Romania, t. 117 (1999), p. 32-50.
# “Une solitude active. L’ermite et ses émules dans les romans de Raymond Lulle”, “Figures médiévales de la solitude”, Studia lulliana, n°42 (2002), p. 27-48.
# “Apprendre l’art d’écrire. Sens de la relation didactique dans le Voir Dit de Guillaume de Machaut”, Romania, tome 125 (2006), p. 162-194.
# “L’énigme du Sphinx. Le début du Roman de Thèbes ou le lecteur médiéval du signe antique”, Troianalexandrina, n°6 (2006), p. 151-169.
# “Anamorphoses d’un discours amoureux. Présence de Marcabru dans Joufroi de Poitiers”, Romania, tome 127 (2009), p. 86-103.
# “Le pèlerin et la mort dans la littérature occitane du Moyen Age”, Compostelle, Cahiers d’Études de recherche et d’Histoire compostellanes, nº 14 (2011), p. 9-31.
# “La mémoire volontaire de l’écrivain médiéval : aspects et enjeux de la remembrance ”, Artifices de mémoire, Guillaume Perrier éd., Littérature n°175 (2014), p. 6-22.
# « ''Chevaucher le temps. Le cheval dans le cycle iconographique du Breviari d’Amor'' », //Le Cheval dans la culture médiévale//, Bernard Andenmatten, Agustino Paravacini Bagliani, Eva Pibiri (éd.), Firenze, Edizioni del Galluzzo, Micrologus’Library 69 (`2015`), p. 295-314.
!!! Articles dans des revues nationales à comité de lecture :
# “Un médiateur de la Providence : le personnage de Sabaoth dans la version anglo-normande et la version en prose de Beuve de Hantone”, L’Épopée tardive, Littérales n°22 (1998), p. 25 -38.
# « Le didactisme amoureux de Flamenca : entre mémoire savante et volonté d’expérience », La volonté didactique dans la littérature médiévale, Marie-Madeleine Castellani, Sarah Michel éds., Lille, Presses universitaires de Lille, Bien dire et bien aprandre, 29 (2014), p. 134-147.
# “Le point sur un i. Un exemple d’hybridation didactique dans Flamenca”, Méthode! 17, Les genres au Moyen Age : la question de l’hétérogénéité, Hélène Charpentier et Valérie Fasseur (dir.), Vallongues, 2010, p. 67-74.
# “Carpe diem. Le temps dans le récit bref”, Les Genres en question au Moyen Age, D. James-Raoul (dir.), Bordeaux, Presses Universitaires de l’Université de Bordeaux., Eidôlon 97 (2011), p. 119-131.
!!! Chapitres d’ouvrages :
# “Quand ‘je’ devient un autre... Un processus de conversion dans L’Entrée d’Espagne”, Plaist vos oïr bone cançon vallant. Mélanges de langue et de littérature médiévales offerts à F. Suard, Edition du Conseil scientifique de l’Université Charles-de-Gaulle - Lille III, 1999, p. 273-283.
# “Destin de Fortune et mutations de sens. L’exemple de Crésus lu par Jean de Meun”, Mythes et culture, Mélanges offerts à Jacques Gadeau, études réunies par Sylvain Floc’h, Gérard Lahouati et Hans Hartje, Vallongues, 2009, p. 65-72.
# “Des propriétés des choses selon Jean de Meun”, En un vergier. Mélanges offerts à Marie-Françoise Notz, textes réunis par Joëlle Ducos et Guy Latry, Presses universitaires de Bordeaux, 2009, p. 287-302.
# “Borgès, Lulle et la machine à penser”, dans Eveils, Etudes en l’honneur de Jean-Yves Pouilloux, contributions réunies par Valérie Fasseur, Olivier Guerrier, Laurent Jenny et André Tournon, Classiques Garnier, 2010, p. 45-64.
# “La fondation de Thèbes et le naturalisme de Jean de Meun”, Ab urbe condita. Fonder et refonder la ville, Véronique Lamazou-Duplan (dir.), Pau, Presses Universitaires de Pau et des Pays de l’Adour, 2011, p. 191-206.
# « Bible : Evangiles canoniques », Translater au Moyen Âge. Cinq siècles de traductions en français au Moyen Âge (xie –xve). Étude et Répertoire, projet ANR sous la direction de Claudio Galderisi, Turnhout, Brepols, 2 vol., 2011, vol. 2, t. 1, n° 43, p. 137-151.
# “L’enseignement de saint Augustin contre les manichéens dans le Breviari d’Amor”, dans Lire, choisir, écrire : la vulgarisation des savoirs au Moyen Age et à la Renaissance, études réunies par Violaine Giacomotto-Charra et Christine Silvi, Paris, Etudes et rencontres de l’Ecole des Chartes, 2014, p. 49-69.
# « ''Guilhem IX et l’amour. L’obscène, le vivace et le bel aujourd’hui'' », //Guilhem de Peitieus, duc D’Aquitaine, prince du trobar//, Cahiers de Carrefour Ventadour, `2015`, p. 171-184.
# “''La logique combinatoire des romans de Raymond Lulle. Systèmes de savoirs et fictions de l’individu''”, //Savoirs et fictions au Moyen Age et à la Renaissance//, Dominique Boutet et Joëlle Ducos éd., Paris, Presses Universitaires de Paris Sorbonne, `2015`, p. 99-121.
# « ''Le Moyen Age perdu du Temps retrouvé : un bâti de mémoire'' », //Proust et les « Moyen Age »//, Sophie Duval et Miren Lacassagne (dir.), Paris, Hermann, `2015`, p. 119-132.
# « ''De l’ancienne langue d’oc au français moderne : l’exemple de //Flamenca//'' », //De la traduction médiévale à la seconde main moderne. Théories, pratiques et impasses de la translatio contemporaine//, Claudio Galderisi et Jean-Jacques Vincensini éd., Turnhout, Brepols, `2015`, p. 119-140.
# « ''Perdre les sens. Brouillage et théorie de la perception dans Flamenca'' », //Penser les cinq sens au Moyen Âge : poétique, esthétique, éthique//, Florence Bouchet éd, Paris, Garnier, `2015`, p. 167-182.
# “''L’inachèvement : un topos du roman courtois ?''”, //Le récit sans fin. Poétique du récit non clos//, M. Braud éd., Classiques Garnier, `2016`, p. 37-54.
# « ''Les Ecoles de pensée du xiie siècle et la littérature en langue d’oc'' », dans //Les Ecoles de pensée du XIIe siècle et la littérature romane//, Valérie Fasseur et Jean-René Valette (dir.), Brepols, “Bibliothèque d’histoire culturelle du Moyen Age”, `2016`, p. 23-47.
# « ''Lector per fabulam : la génération du sens selon Raison dans le Roman de la Rose de Jean de Meun'' », //La question du sens au Moyen Age. Hommage au professeur Armand Strubel//, Dominique Boutet et Catherine Nicolas éd., Paris, Champion, `2017`, p. 83-100.
# « ''La Consolation de Philosophie de Boèce, sa traduction et ses réécritures par Jean de Meun. Vers, prose, exemplum et glose'' », //Acta compositio. Formes du texte latin au Moyen Age et à la Renaissance//, Christiane Deloince-Louette, Martine Furno, Valérie Méot-Bourquin éd., IVe Congrès de la SEMEN-L, Genève, Droz, `2017`, p. 315-333.
# “''Du livre scientifique en langue d’oc vers 1300. Bilan d’un malentendu''”, //Les sciences et le livre. Formes des écrits scientifiques des débuts de l'imprimé à l'époque moderne//, J. Ducos (dir.), Paris, éditions Hermann, `2017`, p. 403-419.
# “''Une Fontaine de science asséchée ? L'idée d'oeuvre scientifique au miroir de la traduction du Sidrac de Bertrand Boysset''", //De l’(id)entité textuelle au cours du Moyen Âge tardif - XIIIe-XIVe siècles//, Barbara Fleith, Réjane Gay-Canton, Géraldine Veysseyre et alii, Classiques Garnier, `2017`, p. 208-226.
!!! Contributions à des actes de colloques
# “Dieu, soi-même et l’autre : l’énergétique de la conversion dans la Vita coetanea de Ramon Llull”, Tolérance et intolérance au Moyen-Age, (Actes du colloque de Tolède, 15 - 19 mai 1997), Greisfwald, Wodan, 1997, p. 35 - 45.
# “L’intériorisation de la croisade dans L’Entrée d’Espagne”. Actes du XIVème congrès international de la Société Rencesvals pour l’étude des épopées romanes (Naples, 24 - 30 juillet 1997), p. 873-887.
# “L’Evangile dans la littérature en Languedoc. XIIe et XIIIe siècles”, Evangile et évangélisme en Languedoc, Les Cahiers de Fanjeaux, actes du 34e colloque de Fanjeaux, (13-16 juillet 1998), Toulouse, Privat, 1999, p. 81-118.
# “Des deux arcs d’Amour à la maison de Fortune. Grâces et disgrâces selon Le Roman de la Rose”, (actes du colloque du CUERMA, Aix-en-Provence, 25-27 février 1999)Aix-en- Provence, Senefiance n°43, Le Beau et le laid au Moyen Age, 2000, p. 105-122.
# “Mort et salut des troubadours : Le Breviari d’Amor de Matfre Ermengau”, in Eglise et Culture en France méridionale (XIIe-XIVe siècle), Les Cahiers de Fanjeaux, actes du XXXVe colloque de Fanjeaux, (19-22 juillet 1999), Toulouse, Privat, 2000, p. 423-441.
# “La tentation sarrasine de Beuve de Hantone”, La chrétienté au péril sarrasin, actes du colloque de la section française de la Société Rencesvals (30 septembre-1er octobre 1999), Aix-en-Provence, CUERMA, 2000, p. 27-39.
# “Une expérience avec la lyrique : le ‘Perilhos tractat d’amor de donas’”, Perspectives médiévales n° 28, actes du colloque “L’expérience lyrique”, organisé par Michèle Gally, Lyon, ENS-LSH, 26-27 septembre 2002, p. 69-92.
# “Epiques pèlerinages. Aventures de pèlerins dans les chansons de geste”, Cahiers des 7èmes rencontres littéraires de l’Aubrac, (25-26 août 2001), Récits d’aventures sur les routes médiévales, sous la direction de Régis Boyer, 2004, p. 98-119.
# “’Nés qu’on porroit espuissier la grant mer...’ Autour d’un vers du Voir Dit”, Colloque “Mondes marins du Moyen Age”, études réunies par Chantal Connochie-Bourgne, Aix-en-Provence, CUERMA, 3-5 mars 2005, Senefiance n°52, 2006, p.157-168.
# “Marie de France, les ailes du désir”, colloque “Deduits d’oiseaux”, études réunies par Chantal Connochie-Bourgne, Aix-en-Provence, CUERMA, 22-24 mars 2007, Senefiance n°54, 2009, p. 93-104.
# “Comment passer des Anciens aux Bretons ? Marie de France et l’hybridation des sources littéraires européennes”, Européens, qui sommes-nous ?, Actes des 2è et 3è colloques “Europe”, textes réunis par Jean-Xavier Ridon, Pierre-Alexis Mével et Nadine Laporte, Universités de Pau et de Nottingham, Pau, Pressses Universitaires de Pau, 2012, p. 21-35.
# “De la paraphrase évangélique à la prière dans le Breviari d’Amor de Matfre Ermengaud”, Cahiers de Fanjeaux 47, La parole sacrée. Formes, fonction, sens (XIe-XVe siècle), sous la direction de P. Henriet, Toulouse, Privat, 2013, p. 367-386.
# « ''Ecrire le geste allégorique au XIIIe siècle : l’exemple du Roman de la Rose de Guillaume de Lorris et Jean de Meun'' », //L’éloquence des gestes. Enjeux linguistiques et interculturels de la politesse//, sous la direction de Vessela Guenova, Université Saint-Clément d’Ohrid de Sofia, Actes du colloque international `5-6 novembre 2011`, Sofia, Presses universitaires Saint-Clément-d’Ohrid, `2016`, p. 42-56.
!!! Avant-propos et introductions:
# “Avant-propos”, Froissart à la cour de Béarn : l’écrivain, les arts et le pouvoir, Valérie Fasseur (dir.), Brepols, collection “Texte, codex et contexte”, 2009, p. 9-11.
# En collaboration avec Michel Braud : “Avant-propos”, Méthode! 17, Les genres au Moyen Age : la question de l’hétérogénéité, Hélène Charpentier et Valérie Fasseur (dir.), Vallongues, 2010, p. 67-74.
# En collaboration avec Jean-Yves Casanova : “Avant-propos”, L’Aquitaine des littératures médiévales - XIe-XIIIe siècles, Jean-Yves Casanova et Valérie Fasseur (dir.), Presses Universitaires de Paris-Sorbonne, 2011, p. 7-10.
# En collaboration avec Cécile Rochelois : « ''Introduction'' », //Ponctuer l’œuvre médiévale : des signes au sens//, Valérie Fasseur et Cécile Rochelois (dir.), Genève, Droz, `2016`, p. 9-26.
# En collaboration avec Jean-René Valette : « ''Introduction'' », //Les Ecoles de pensée du XIIe siècle et la littérature romane//, Valérie Fasseur et Jean-René Valette (dir.), Brepols, “Bibliothèque d’histoire culturelle du Moyen Age”, `2016`, p. 7-19.
!!! Comptes rendus :
# ''R. Trachsler, Merlin l’Enchanteur. Etude sur le “Merlin” de Robert de Boron, Paris, SEDES, 2000, 160 p.'', dans Romania, 120 (2002), p. 283-284.
# La Grèce antique sous le regard du Moyen Age occidental, Actes du colloque de la Villa Kérylos, dir. Jean Leclant et M. Zink, Paris, de Boccard, 2005, dans Anabases n°6, Université de Toulouse-Le Mirail (2007), p. 277-279.
# Palimpsestes épiques, études réunies par D. Boutet et C. Esmein-Sarrazin, Paris, Presses universitaires de Paris-Sorbonne, 2006, dans Romania, t. 127 (2009), p. 255-260.
# Froissart dans sa forge, Actes du colloque réuni par M. Zink, Paris, De Boccard – Académie des Inscriptions et Belles-Lettres, Collège de France, 2006, dans Romania, t. 127 (2010), p. 535-537.
# La Lettre dans la littérature romane du Moyen Age, études réunies par Sylvie Lefèvre, Paradigme, 2008, dans Romania, t. 130 (2012), p. 240.
# Le rêve médiéval, Études littéraires réunies par A. Corbellari et J.-Y. Tilliette, Genève, Droz, 2007, dans Romania, t. 130 (2012), p. 509-511.
# Olive Sayce, Exemplary comparison from Homer to Petrarch, Suffolk, Boydell press, 2008, dans Romania, t. 130 (2012), p. 512.
# Jean-Loup Lemaitre, Françoise Vielliard, Portraits de troubadours. Initiales des chansonniers provençaux, Ussel, Musée du Pays d’Ussel – Centre Trobar, 2006 [Mémoires et documents sur le Bas-Limousin], LVIII-198 pages / Città del Vaticano, Biblioteca apostolica vaticana, 2008, [Studi e testi 444] LVI-126 pages dans Romania, t. 131 (2013), p. 511-514.
# Théorie des trois styles et littératures européennes du Moyen Age : les arts poétiques et la pratique littéraire, Ludmilla Evdokimova (éd.), Centaurus. Studia classica et medievalia, n°7 (2010), 300 p., dans Romania, t. 131 (2013), p. 518-521.
# Claude Fauriel, Histoire de la poésie provençale, réimpression de l'édition de 1846, accompagnée d'une préface, d'une introduction et d'une bibliographie par Udo Schöning, Paris, Classiques Garnier, « Recherches littéraires médiévales », 2011, 3 tomes, (550 p. / 454 p. / 518 p.), dans Perspectives médiévales, 35 (2014), http://peme.revues.org/5465#ftn1
# Flamenca. Romanzo occitano del XIII secolo, édition et traduction italienne par Roberta Manetti, Modena, Mucchi editore, 2008, 639 pages, dans Romania, t. 132 (2014), p. 461-466.
# ''La mythologie de l’antiquité à la modernité. Appropriation, adaptation, détournement, sous la direction de Jean-Pierre Aygon, Corinne Bonnet et Cristina Noacco, Presses Universitaires de Rennes, 2009, 423 pages'', dans Romania, t. 133 (`2015`), p. 228-231.
# ''Gianluca Valenti, La liturgia del « trobar ». Assimilazione e riuso di elementi del rito cristiano nelle canzoni occitane medievali, Berlin-Boston, De Gruyter, 2014, XIII-295 pages'', dans Le Moyen Âge, t. CXXI (`2015`), p 567-569.
# ''Mary Franklin-Brown, Reading the world. Encyclopedic Writing in the Scholastic Age, Chicago and London, The University of Chicago Press, 2012, XXII-446 pages'', dans Romania, t. 133 (`2015`), p. 502-507.
# ''Réponse au compte rendu de Flamenca par Jean-Pierre Chambon et Yan Greub'', Revue critique de philologie romane, t. 16 (`2015`), p. 149-156.
# ''800 anys després de Muret. Els trobadors i les relacions catalanooccitanes, Vicenç Beltran, Tomàs Martínez, Irene Capdevila (eds.), Barcelone, Universitat de Barcelone, Publicacions i Edicions, 2014, 268 pages'', dans Romania, t. 135 (`2017`) p. 463-465.
# ''El saber i les llengües vernacles a l’època de Llull i Eiximenis, Anna Alberni, Lola Badia, Lluís Cifuentes, Alexander Fidora (eds.), Montserrat, Publicacions de l’Abadia de Montserrat, 2012, 400 pages'', dans Romania, t. 136, (`2018`), p. 207-211.
`DEPUIS 2015`
!!! Articles dans des revues avec comité de lecture (ACL) :
# « ''Mis escritores muertos, de Daniel Guebel: una pasión narrativa'' », ILCEA [En ligne], 24 | 2015, mis en ligne le 03 novembre 2015. URL : http://ilcea.revues.org/3609
# « ''//Descanso de caminantes//, de Adolfo Bioy Casares. Escribo, luego soy.''”, `in`: A. Gallego, C. Estrade (eds), //Diarios latinoamericanos del siglo XX//, Trans-Atlántico, n°13, P.I.E. Peter Lang, Bruxelles, 2016.
# “''Las peripecias del no en la escritura autobiográfica y diarística. Los diarios íntimos de Adolfo Bioy Casares''”, `in`: J.M. Aragüés, T. Capmartin, N. Mékouar-Hertzberg, A. Saldaña (éds), //Le sujet en question. Ce qu’en pensent la littérature et la philosophie//, Berne, Peter Lang, 2018.
!!! Communications avec actes internationales (ACTI) :
# « ''Las peripecias del no en la escritura autobiográfica y diarística (formas de una imposibilidad). Los diarios íntimos de Adolfo Bioy Casares.''” Colloque international: “//Le sujet en question: ce qu’en pensent la littérature et la philosophie//”, Université de Pau, 20-21 octobre 2016.
!!! Conférences invitées (INV) :
# «''Las intimaciones contradictorias de la escritura diarística: los diarios íntimos de Adolfo Bioy Casares (Borges y Descanso de caminantes).''”, Universidad de Buenos Aires, Facultad de Filosofía y Letras, Cátedra de Teoría Literaria III, viernes 5 de mayo de 2017.
!!! Autres productions
* Traductions:
# « `J. Mestre Campi`, ''Barcelone, de 1516 à 1929. La fondation d’une grande ville moderne'' », `in` P. Ducrozet (dir.) //Barcelone//, Paris, coll. Bouquins, R. Laffont, 2018.
# `Yigit Bener`, “''La olla''” (“Le bouillon”), `in` Escritores del Mundo [En ligne], febrero 2015. URL: http://www.escritoresdelmundo.com/2015/02/relato-la-olla-de-yigit-bener.html#more
# `Chevillard, Eric`, “''Nítidos progresos''” (“Nets progrès”), `in` Escritores del Mundo [En ligne], mayo 2015. URL: http://www.escritoresdelmundo.com/2015/05/relato-inedito-nitidos-progresos-por.html.
# `Senges, Pierre`, “''De la legitimidad del asno''” (“De la légitimité de l’âne”), `in` Escritores del mundo [En ligne], julio 2015. URL: http://www.escritoresdelmundo.com/2015/07/relato-inedito-de-la-legitimidad-del.html
* Book review :
# “''B. Adriaensen y G. Maier (eds), Todos los mundos posibles. Una geografía de Daniel Guebel.”, Buenos Aires, Beatriz Viterbo Editora, 2015. 328 pp.'', `in` Symposium: A Quarterly Journal in Modern Literatures, march 2019.
!!! Co-direction d’ouvrages
# Finet, Hélène, Desvois, Francis, Chili 1973-2013, Mémoires ouvertes, Paris, L’Harmattan, 2014.
# Delhom, Joël, Doillon, David, De Gracia, Guillaume, Finet, Hélène, Zaidman, Pierre-Henri,Viva la Social. Anarchistes et anarcho-syndicalistes en Amérique Latine (1860-1930), préface de Ricardo Melgar Bao, collection América Libertaria, Paris, Editions Libertaires/Nada, 2014 (ISBN 979-1092457-01-8).
!!! Monographies
# ''Libertarias. Femmes anarchistes espagnoles'', Paris, Nada, `2017`.
# Ni Dieu, Ni Patron ni Mari. Femmes, anarchistes et ouvrières à Buenos Aires, Orthez, `Editions du Temps Perdu`, 2009, 38 pages.
# Le débat ‘Anarchie ou syndicalisme’ à la lumière de la réalité argentine : la F.O.R.A face aux tentatives d’union syndicale du mouvement ouvrier (1901-1915), Orthez, `Editions du Temps Perdu`, 2007, 60 pages.
!!! Articles
# “Le théâtre au service de la défiance. Aspects de la création théâtrale dans les années Pinochet. Le legs du Taller de Investiación Teatral et de Raúl Osorio”, in Finet, Hélène, Desvois, Francis, Chili 1973-2013, Mémoires ouvertes, Paris, L’Harmattan, 2014, p. 95-120. (avec comité de lecture)
# Avant-propos de Finet, Hélène, Desvois, Francis, Chili 1973-2013, Mémoires ouvertes, Paris, L’Harmattan, 2014, p. 11-22.
# « La Protesta et l’âge d’or de l’anarchisme à Buenos Aires », in Benmiloud, Karim, Domingo Paola, Lara-Alengrin Alba (Ed.), Amériques anarchistes, Nada, Paris, 2014, p. 133-158.
# " 'Ni Dieu, ni Patron, ni Mari': militantes anarchistes en Argentine", in Delhom, Joël, Doillon, David, De Gracia, Guillaume, Finet, Hélène, Zaidman, Pierre-Henri, Viva la Social. Anarchistes et anarcho-syndicalistes en Amérique Latine (1860-1930), préface de Ricardo Melgar Bao, collection América Libertaria, Paris, Editions Libertaires/Nada, 2014, p.28-48 (avec comité de lecture)
# Prologue (en espagnol) de Juana Rouco Buela, Historia de un ideal vivido por una mujer, Madrid, La Malatesta, 2012 (1ère édition 1967).
# « Théories et pratiques de l'anarchisme argentin au début du XXème siècle: la F.O.R.A en question », in Angaut, Jean-Christophe (Ed), Actes du colloque Philosophie de l'anarchie. Théories libertaires, pratiques quotidiennes et ontologie, Lyon, ACL, 2012 (avec comité de lecture)
# « Contra-democracia en Buenos Aires: anarquistas, socialistas y sindicalistas, o la política de la desconfianza (1880-1920) », Ensemble, Revista electrónica de la Casa Argentina, Issn 1852-5911, n°6, 2011 (article également disponible en français). URL: http://ensemble.educ.ar/?p=2083
# « Salvadora Medina Onrubia, dramaturge et militante anarchiste : aux origines de l’identité féminine en Argentine »,- in Balutet, Nicolas, Otaola, Paloma, Tempère, Delphine, Contrabandista entre mundos fronterizos. Mélanges offerts au Professeur Hugues Didier, Paris, Publibook, 2010, p. 363-384 (avec comité de lecture)
# « Hétérodoxie anarchiste en Argentine : analyse d’une déviance contre-démocratique », Nuevo Mundo Mundos Nuevos, Coloquios, 2009, [En línea], Puesto en línea el 30 juin 2009. URL : http://nuevomundo.revues.org/index56503.html. (avec comité de lecture)
# « Transgression politique et sociale en Argentine : la tribu anarchiste au-delà de la marge (1890-1930) », in Domingo, Paola et Vignaux, Hélène (éd.), Arts et sociétés en Amérique Latine : la transgression dans tous ses états, Paris, L’Harmattan 2009, p.95-114 (avec comité de lecture)
# « Le monstre dans le discours politique argentin : de la légende noire de l’anarchisme au combat contre la bête immonde », in Desvois, Francis (éd.), Le Monstre (Espagne et Amérique Latine,), Paris, L’Harmattan, 2009, p. 341-394. (avec comité de lecture)
# « Relectures de la mémoire du culte des héros dans la propagande libertaire argentine à travers les figures de Kurt Wilckens et Severino Di Giovanni », in Les réélaborations de la mémoire dans le monde luso-hispanophone, Nancy, Presse Universitaires de Nancy, 2009, p.375-394.
# « Identité culturelle et politique du monde ouvrier argentin, fin XIXème-début XXème », in L’identité culturelle dans le monde luso hispanophone, Nancy, Presses Universitaires de Nancy, 2006, p. 375-391.
# « Anarchisme et sociabilités au féminin dans le monde ouvrier de Buenos Aires 1890-1920 », in Cahiers de la M.R.S.H, Caen, Mars 2006, p.123-138.
# « L’influence de la pensée d’Elisée Reclus dans la formation du mouvement anarchiste argentin », in AA.VV, Elisée Reclus, écrire la terre en libertaire, Editions du Temps Perdu, Orthez, 2005, p. 47-68.
# « Création théâtrale dans le Chili des années Pinochet : le TIT de Raúl Osorio ou la transgression esthétique d’une minorité culturelle et politique. », in Authenticity and Legitimacy in Minority Theatre : constructing identity (Théâtre des Minorités : l’identité en construction), Newcastle upon Tyne, Cambridge Scholars Publishing, 2010. (avec comité de lecture)
# « Exils, migrations et non-lieu identitaire dans Una Casa Vacía (1998, Raúl Osorio, TIT) », in Les Cahiers Alhim, n°9, Université Paris VIII, 2010, p.87-100 (également consultable sur le site internet des Cahiers Alhim URL http://alhim.revues.org/index3326.html) (avec comité de lecture)
# «Le devoir de mémoire au Chili à travers l’adaptation théâtrale de Una Casa Vacía de Carlos Cerda par le T.I.T », in Mémoire et culture dans le monde hispanophone, Nancy, Presses Universitaires de Nancy, 2008, p. 231-244.
# « Appropriation et réappropriation de l’espace périphérique de Buenos Aires de 1960 à nos jours », in Las ciudades y el fin del siglo XX en América Latina : Literaturas, culturas, representaciones, Berlin, Peter Lang, 2007, p.487-502 (avec comité de lecture)
!!!Livres
*Monographies
# Education érotique. Pietro Aretinos Ragionamenti im libertinen Roman Frankreichs, Stuttgart, Metzler, 1994, 383 p. (thèse de doctorat).
#* [comptes rendus : Italienisch. Zeitschrift für italienische Sprache und Literatur 33 (Mai 1995, p. 112-116) ; Referatdienst zur Literaturwissenschaft 27 (1995, 4 ; p. 569-572) ; Momus. Studi Umanistici. Etudes Humanistes 3/4 (1995, p. 190); Archiv für das Studium neuerer Sprachen und Literaturen 235, 2 (1998, p. 475-477)]
# Gärten der Lust. Eine Geschichte erregender Lektüren, Stuttgart, Metzler, 1997, 336 p. (Munich, DTV, 2000).
#* [comptes rendus : Süddeutsche Zeitung (03/06/98) ; Die Welt (14/11/1997) ; Der Tagesspiegel (16/11/1997) ; Neues Deutschland (15/10/1997) ; Wochenzeitung (10/10/1997) ; Falter (1-3, 1998) ; Twilight – Erotic Fetish, Dominance (22, 1999) ; Freiburger Literaturpsychologische Gespräche (18, 1999) ; Deutschlandradio, Deutschlandfunk, Süddeutscher Rundfunk. Interviews : Tip (21/01/1998), Sender Freies Berlin, Radio Bremen]
# Der poetische Pakt. Rolle und Funktion des poetischen Ich in der Liebeslyrik (Ovid, Petrarca, Ronsard, Shakespeare, Baudelaire), Heidelberg, C. Winter Universitätsverlag (« Beiheft 28 zur Germanisch-Romanischen Monatsschrift »), 2007, 349 p. (thèse d’habilitation).
#*[comptes rendus : Komparatistik 20 (2007), p. 207/8 ; Italienisch 60 (2008); Zeitschrift für romanische Philologie, Bd. 127,2 (2011)]
# [`en préparation`]: Le Pacte poétique. Rôle et fonction du moi poétique dans la poésie amoureuse (Ovide, Pétrarque, Ronsard, Shakespeare, Baudelaire), Paris, Garnier (« Perspectives comparatistes » ; traduction de l’ouvrage précédent).
!!!Direction d’ouvrages collectifs
# Gewalt der Geschichte - Geschichten der Gewalt. Zur Kultur und Literatur Italiens von 1945 bis heute. Dir. en collaboration avec Peter Brockmeier, Stuttgart, Metzler, 1998, 333 p.
#*[compte rendu : Italienisch 43 (Mai 2000, p. 136-138)]
# Abkehr von Schönheit und Ideal in der Liebeslyrik. Dir. en collaboration avec Carola Veit, Stuttgart, Metzler, 2000, 390 p.
#* [compte rendu : Romanische Forschungen 114, 3 (2002)]
# Identité et diversité. Etat des lieux interdisciplinaire de la recherche sur l’interculturalité en France et en Allemagne. / Interkulturalität und Diversität: Eine interdisziplinäre Bilanz der Interkulturalitätsforschung in Deutschland und Frankreich. Dir. en collaboration avec Helene Harth, Philippe et Virginie Viallon, Berlin, Avinus, 2005, 232 p.
# ''Französische und frankophone Literatur in Deutschland (1945-2010). Rezeption, Übersetzung, Kulturtransfer''. Dir. en collaboration avec Beatrice Nickel, Francfort/M. et al., Peter Lang, 2012, 141 p.
#* [comptes rendus : Deshoulières, Valérie / Lüsebrink, Hans-Jürgen / Vatter, Christoph (dir.) : L'Europe entre Texte et Lieu. Interculturalités en temps de guerre (1914-1954), Bielefeld, Transit, 2012, pp. 267-270 ; Barjonet, Aurélie in Frankreich Forum, été 2013]
# ''La Traduction de la poésie entre //imitatio// et transfert poétique : langues, espaces, médias. / Lyrik-Übersetzung zwischen //imitatio// und poetischem Transfer : Sprachen, Räume, Medien''. Dir. en collaboration avec Beatrice Nickel, Tübingen, Stauffenburg, 2012, 218 p.
# `Méthode ! 24`. ''Agrégation de Lettres 2015''. Dir. en collaboration avec Dominique Vaugeois, Bandol, Vallongues, 2014, 288 p.
# ''Konzepte der Rezeption, vol. 1. Réception productive : imitatio, intertextualité, intermédialité''. Dir. en collaboration avec Diego Saglia et Brunhilde Wehinger, Tübingen, Stauffenburg, `2015`, 232 p.
# ''Intermédialités''. Collection Poétiques comparatistes, Société Française de Littérature Générale et comparée, Nîmes, Lucie éditions, `2015`, 204 p.
# ''Méthode ! 25''. `Agrégation de Lettres 2016`. Dir. en collaboration avec Dominique Vaugeois, Bandol, Vallongues, `2015`, 212 p.
# `Histoire des traductions et histoire littéraire. Dossier` dans ''lendemains 158/159'', `2015`, p. 141-198.
# ''Un siècle sans poésie ? Le lyrisme des Lumières entre sociabilité, galanterie et savoir''. Dir. en collaboration avec Brunhilde Wehinger, Paris, Champion, `2016`, 286 p.
# ''Op. Cit. - Revue des Littératures et des Arts'', `Agrégation lettres 2017`, ''n° 16'', `automne 2016`, Dir. en collaboration avec Dominique Vaugeois, https://revues.univ-pau.fr/opcit/index.php?72-agregation-2017.
# ''Konzepte der Rezeption, vol. 2. Esthétique de la réception : Le lecteur comme sujet de la réflexion esthétique – de Kant à la fiction interactive''. Dir. en collaboration avec Brunhilde Wehinger, Tübingen, Stauffenburg, `2018`, 207 p.
# [`en préparation`] : La réception, un élément des transferts culturels. Actes du 3e colloque MSH/DFG/Vigoni « Concepts de la réception ». Dir. en collaboration avec Brunhilde Wehinger, Tübingen, Stauffenburg, 2019.
!!! Editions de textes/traductions
# Pierre de Ronsard : Le Premier Livre des Amours / Amoren für Cassandre. Ed., comm. et postface Caroline Fischer. Trad. Georg Holzer, Berlin, Elfenbein, 2006, 336 p.
#*[Prix André-Gide 2008 ; comptes rendus : Frankfurter Allgemeine Zeitung 26/10/2007 ; Frankfurter Rundschau 07/02/2007 ; Deutschlandradio Kultur 12/02/2007 ; Die Berliner Literaturkritik 22/03/2007 ; Die Zeit 03/05/2007 ; Lendemains 33 (2008), 130/131, p. 287/288]
# Barbey d’Aurevilly, Jules : Die alte Maitresse. Trad. Caroline Vollmann. Comm. et postface Caroline Fischer, Berlin, Matthes & Seitz, 2008, 520 p.
#* [comptes rendus : Literarische Welt 1/11/2008; Deutschlandradio 3/11/2008 ; Deutschlandradio Kultur 7/11/2008 ; MainPost Buchtip 22/11/2008 ; www.webcritics.de 16/12/2008 ; Frankfurter Allgemeine Zeitung 10/1/2009 ; Die Tagespost 17/1/2009]
# [Georges Touchard-Lafosse] : Léonard, der Coiffeur der Königin. Galantes, Frivoles und Extravagantes vom Hofe der Marie-Antoinette. Trad. Annette Lallemand. Choix., comm. et préface Caroline Fischer, Berlin, Edition Ebersbach, 2009, 264 p.
# ''Laclos, Pierre-Ambroise-François Choderlos de : Les Liaisons dangereuses''. (Les grands classiques de la littérature libertine). `Introduction et notes` Caroline Fischer, Paris, Le Monde/Garnier, 2010, 478 p.
# ''Pierre de Ronsard : Le Second Livre des Amours / Amoren für Marie''. `Ed., comm. et postface` Caroline Fischer. Trad. Georg Holzer, Berlin, Elfenbein, 2010, 280 p.
#* [comptes rendus : Deutschlandradio Kultur 19/10/2010; Frankfurter Allgemeine Zeitung 28/1/2011 ; SWF Bestenliste février 2011 ; Livre du mois de avril 2011 par le jury de Darmstadt ; PhiN 56/2011, pp. 114-115]
# ''Charles Baudelaire : Liebesgedichte''. Français/allemand. Trad. Monika Fahrenbach-Wachendorff. `Choix et postface` Caroline Fischer, Stuttgart, Reclam, 2012, 110 p.
# ''Pierre de Ronsard : Les Sonnets pour Hélène. Amours divers / Sonette für Hélène. Verstreute Amoren''. Ed. Caroline Fischer et Georg Holzer. Trad., comm. et postface Georg Holzer, Berlin, Elfenbein, `2017`, 237 p.
#* [comptes rendus : Frankfurter Allgemeine Zeitung 25/11/2017 ; Der Tagesspiegel 19/1/2018 ; Perlentaucher https://www.perlentaucher.de/vom-nachttisch-geraeumt/ueber-pierre-de-ronsards-gedichtband-sonette-fuer-helene.html ; https://faustkultur.de/3568-0-Europoesie-Pierre-de-Ronsard.html]
!!! Articles
* En français :
# « Passages philosophiques dans la littérature érotique des XVIIe et XVIIIe siècles ». [Résumé de la conférence présentée à l’Université Paris I, Panthéon-Sorbonne le 15 janvier 1994], La Lettre clandestine. Bulletin d’information sur la littérature philosophique clandestine de l’âge classique 3, 1994, p. 8-9.
# « L’Arétin en France », Dix-Huitième Siècle 28, 1996, p. 367-384.
#« L’abbé Du Laurens : un pauvre diable, voltairien, anti-rousseauiste et rousseauiste à la fois », Actes du Neuvième congrès international des Lumières. Münster 23-29 juillet 1995. Studies on Voltaire and the Eighteenth Century 346-348, 1996, p. 446-449.
# « Les aspects philosophiques de la littérature érotique », Antony McKenna et Alain Mothu (dir.), La Philosophie clandestine à l’Age classique. Actes du colloque de l’Université Jean Monnet Saint-Étienne du 29 septembre au 2 octobre 1993 organisé par Antony McKenna, Oxford/Paris, Universitas/Voltaire Foundation, 1997, p. 405-412.
# « L’empire de la lecture sur les sens. Réflexions à propos de l’effet de différents genres romanesques », Angelica Rieger et Jean-François Tonard (dir.), La lecture au féminin/ Lesende Frauen. La lectrice dans la littérature française du Moyen Age au XXe siècle, Darmstadt, Wissenschaftliche Buchgesellschaft (Beiträge zur Romanistik 3), 1999, p. 159-169.
# « Baudelaire et la tradition de la poésie amoureuse », Jean Bessière et Stéphane Michaud (dir.), La main hâtive des révolutions. Esthétique et désenchantement en Europe de Leopardi à Heiner Müller, Paris, PSN, 2001, p. 35-54.
# « Est-il bon ? Est-elle méchante ? Pour une réévaluation des caractères dans Les Liaisons dangereuses », Europe 885/886, janvier-février 2003, p. 95-105.
# « Littérature excitante et roman libertin », Jean-François Perrin et Philip Stewart (dir.), Du genre libertin au XVIIIe siècle, Paris, Desjonquères, 2004, p. 63-73.
# « Thérèse philosophe. Comment expliquer son succès? », Hans-Ulrich Seifert et Jean-Loup Seban (dir.), Der Marquis d’Argens, Wiesbaden, Harrassowitz (Wolfenbütteler Forschungen 103), 2004, p. 153-166.
# « Einleitung »/« Introduction », en collaboration avec Helene Harth, Interculturalité et diversité (2005), p. 7-22.
# « La notion de Stimmung peut-elle aider à élucider l’histoire littéraire ? », Jean Bessière et Judit Maár (dir.), Frontières de l’histoire littéraire, Paris, L’Harmattan, 2008, p. 169-178.
# « ''Barbares attendris vs. citoyens enragés. Représentation, motivation et justification de la violence chez Shakespeare, Botho Strauss et Corneille'' », Méthode ! 18 (2010), p. 345-353.
# « ''Traduire la rime ? En guise d’introduction. Den Reim übersetzen ? Zur Einleitung'' », //La Traduction de la poésie entre imitatio et transfert poétique : langues, espaces, médias// (2012), p. 7-31.
# « ''La Marche de Radetzky et Le Guépard : romans de famille'' », Méthode ! 24 (2014), p. 253-261.
# « ''Introduction : Réception productive entre imitatio, intertextualité et intermédialité'' », //Konzepte der Rezeption// (`2015`), vol. 1. p. 9-19.
# « ''Intermedia et intermédialité'' », //Intermédialités// (`2015`), p. 7-18.
# « ''Avant-propos'' », //lendemains 158/159//, `2015`, p. 141-142.
# « ''Traduction et réception de la poésie française renaissante en Allemagne'' », lendemains 158/159, `2015`, p. 154-167.
# « ''Un hypotexte du Decadentismo : Les Liaisons dangereuses et Il Piacere de Gabriele D’Annunzio'' », Catriona Seth (dir.), Laclos après Laclos, Hermann, Paris, `2016`, p. 163-180.
# « ''Introduction'' » avec B. Wehinger, //Un siècle sans poésie ?// (`2016`), p. 7-16.
# « ''Changement de code, ou l’irrémissible gaité des poètes de Lumières'', //Un siècle sans poésie ?// (`2016`), p. 17-34.
# « ''Vers et lettres à la Présidente, ou le plaisir de montrer l’envers de la médaille'' », Kirsten von Hagen et Stephanie Neu (dir.) : //Théophile Gautier als Wegbereiter der Moderne//, Bonn, Romanistischer Verlag, `2017`, p. 25-44.
# « ''Nox de Thomas Hettche. La nuit du 9 novembre 1989 ou le Mur de Berlin comme plaie béante au cœur de la ville divisée'' », Franck Mermier, Veronique Bontemps, Stephanie Schwerter (dir.), //Les villes divisée. Récits littéraires et cinématographique//, Lille, Septentrion, `2018`, p. 187-202.
# « ''Quelques aspects de la réception de Machado de Assis en France'' », Eden Martin et al. (dir.) //Dialogues France-Brésil : circulations, représentations, imaginaires//, Pau, PUPPA, `2018`, p. 277-290.
*En allemand:
# « Der Goldene Topf als Geschichte einer Initiation », Il confronto letterario. Quaderni del dipartimento di lingue e letterature straniere moderne dell’Università di Pavia VII, 13 mai 1990, p. 57-82.
# « Voyage initiatique am Beispiel von Michel Tourniers Roman Gaspar, Melchior & Balthazar », Trigon. Kunst, Wissenschaft und Glaube im Dialog 2, 1991, p. 50-54.
# « Obszöne Töne. Pietro Aretinos geschwänzte Sonette », H. A. Glaser (dir.), Annäherungsversuche. Zur Geschichte und Ästhetik des Erotischen in der Literatur, Berne, Haupt, 1993, p. 81-109.
# « Erotik », Werner Schneiders (dir.), Lexikon der Aufklärung. Deutschland und Europa, Munich, C. H. Beck, 1995, p. 107-108.
# « Der entkleidete Körper – in Worte gehüllt », Rudolf Behrens et Roland Galle (dir.), Historische Anthropologie und Literatur. Romanistische Beiträge zu einem neuen Paradigma der Literaturwissenschaft, Würzburg, Königshausen und Neumann, 1995, p. 53-67.
# « Erfand Sade den Sadismus ? Zwischen medizinischer Irrlehre und literarischer Wahrheit », Freibeuter 76, avril 1998, p. 75-83.
# « Gewalt der Geschichte – Geschichten der Gewalt. Zur Einführung », en collaboration avec Peter Brockmeier, Gewalt der Geschichte (1998), p. 11-23.
# « Gewaltdarstellung in der italienischen Literatur der 90er Jahre », Gewalt der Geschichte (1998), p. 213-230.
# « Laszive Blondinen und pikante Brünette : Physiognomische Stereotypen versus pathognomische Einsichten », Elena Agazzi et Manfred Beller (dir.), Evidenze e ambiguità della fisionomia umana. Studi sul XVIII. e XIX. Secolo, Viareggio, Mauro Baroini, 1998, p. 233-249.
# « Einleitung », Abkehr von Schönheit und Ideal (2000), p. 11-25.
# « Die häßliche Alte funkt dazwischen. Psychologische Liebeshindernisse bei Du Bellay und Ronsard », Abkehr von Schönheit und Ideal (2000), p. 79-90.
#« Casanova, ein Meister der Selbstdarstellung », Versants 37, 2000, p. 69-89.
# « Abbé Henri-Joseph Dulaurens (1719-1793) – ein bohémien littéraire », Das achtzehnte Jahrhundert 24/2, 2000, p. 150-162.
# « Ästhetische Auseinandersetzung in frivolem Rahmen : Die literaturtheoretische Querelle in Diderots Bijoux indiscrets », Matthias Luserke, Reiner Marx et Reiner Wild (dir.), Literatur und Kultur des Rokoko, Göttingen, Vandenhoeck und Ruprecht, 2001, p. 109-120.
# « Galeotto fu il libro... Das Buch als Verführer in der Literatur. Grundstrukturen literarischer Verhaltensprägung und – manipulation », Franke Wanning et Anke Wortmann (dir.), Gefährliche Verbindungen. Verführung und Literatur, Berlin, Weidler (Körper, Zeichen, Kultur 5), 2001, p. 233-245.
# « Der Marquis d’Argens und La Mettrie : Die folgenreiche Begegnung zweier Philosophen in Potsdam. Ein Textvergleich », Martin Fontius et Jean Mondot (dir.), Französische Kultur – Aufklärung in Preußen. Akten der internationalen Fachtagung vom 21./22. September 1996 in Potsdam, Berlin, Arno Spitz, 2001, p. 193-204.
# « Nächste Nähe, größte Ferne. Trianguläres Begehren zwischen Inzest und der Liebe zur schönen Fremden », Eva Lezzi et Monika Ehlers (dir.), Fremdes Begehren. Transkulturelle Beziehungen in Literatur, Kunst und Medien, Cologne et al., Böhlau, 2003, p. 358-370.
# « Erotik/Erotische Literatur », Friedrich Jaeger (dir.), Enzyklopädie der Neuzeit, Stuttgart, Metzler, 2006, Vol. 3, p. 504-506.
# « Shakespeare-Rezeption in Frankreich als Paradigma interkultureller Kommunikation », Roger Paulin (dir.), Shakespeare im 18. Jahrhundert, Göttingen, Wallstein, 2007, p. 197-214.
# « Das Primat der Form in Tomasi di Lampedusas Gattopardo », Italienisch 58 (2007), p. 60-73.
# « Explizit in der Kleinteiligkeit : Zur Diskrepanz von graphischer und sprachlicher Darstellung im erregenden Roman des 18. Jahrhunderts », Ludger Schwarte (dir.), Philosophien des Fleisches – Das Theater der Libertinage zwischen Kunst und Wissenschaft (1670 – 1750), Hildesheim, Olms Verlag, 2008, p. 179-201.
# « Mit der Individualität verliert sich die Menschlichkeit. Primo Levis Auschwitzerfahrung », Detlev Ganten, Volker Gerhardt, Jan-Christoph Heiliger et Julian Nida-Rümelin (dir.), Was ist der Mensch?, Berlin, De Gruyter, 2008, p. 74-76.
# « ''Emanzipation als forma mentis : Weibliche Selbstbestimmung im Widerspruch zu äußeren Zwängen'' », Edgar Mass (dir.), //Montesquieu zwischen den Disziplinen. Einzel- und kulturwissenschaftliche Zugriffe//, Berlin, Duncker und Humblot, 2010, p. 297-311.
# « ''Inquietudo als anthropologisches Gestaltungsmodell des poetischen Ich in Petrarcas Rerum vulgarium fragmenta'' », Rudolf Behrens und Rainer Stillers (dir.), //Inquietudini. Gestalt, Funktion und Darstellung eines affektiven Musters in der italienischen Literatur//. Heidelberg, Winter Verlag, 2010, p. 15-26.
# « ''Campusromane der Gegenwart oder die Gleichzeitigkeit des Ungleichzeitigen'' », Komparatistik (2008/2009), Heidelberg 2010, p. 15-26.
# « ''Lyrik als Mimesis: Die Inszenierung von verbaler und non-verbaler Kommunikation im Sonett'' », Beatrice Nickel (dir.), //Die Poesie und die Künste als inszenierte Kommunikation. Festschrift für Reinhard Krüger zum 60. Geburtstag//, Tübingen, Stauffenburg Verlag 2011, p. 131-149.
# « ''Empirie im Gespräch - Algarottis Dialoge über Newtons Optik'' », Tobias Leuker et Rotraud von Kulessa (dir.), //Nobilitierung vs. Divulgierung? - Strategien der Aufbereitung von Wissen in romanischen Dialogen, Lehrgedichten und Erzähltexten der Frühen Neuzeit//, München, Martin Meidenbauer, 2011, p. 169-182.
# « ''Stimmung als ästhetische Kategorie ?'' », Achim Hölter (dir.) : //Comparative Arts. Neue Ansätze zu einer universellen Ästhetik//, Heidelberg, Synchron Verlag, 2011, p. 349-356.
# « ''Liebeslyrik'' », Dieter Lamping (dir.) : //Handbuch Lyrik//, Stuttgart, Metzler, 2011, p. 123-132.
# « ''Einleitung'' », //Französische und frankophone Literatur//, p. 7-12.
# « ''Aktuelle Übersetzungen im Kontext interkultureller Kommunikation'' », //Französische und frankophone Literatur//, p. 112-130.
# « ''Wer schreibt, wer spricht, wer singt von Liebe? Lied und Laute als Metaphern und Medien der Lyrik'' », Dieter Helms et Sabine Meine (dir.), //Amor docet musicam. Musik und Liebe in der Frühen Neuzeit//, Hildesheim, Olms, 2012, p. 127-142.
# « ''Lyrik-Übersetzung als Kulturtransfer'' », Christiane Sollte-Gresser, Hans-Jürgen Lüsebrink, Manfred Schmeling (dir) : //Zwischen Transfer und Vergleich. Theorien und Methoden der Literatur- und Kulturbeziehungen aus deutsch-französischer Perspektive//, Stuttgart, Franz Steiner Verlag, 2013, p. 211-224.
# « ''Drei literarische Schlüsselfunktionen des Erotischen'' », Juliane Blank et Anja Gerigk, //Erregungsmomente. Funktiones des Erotischen in der Literatur//, Berlin, Christian A. Bachmann Verlag, `2017`, p. 43-60.
# « ''Die Nacht des Mauerfalls zwischen Hyperrealismus und Phantasmagorie'' »,: Walburga Hülk, Stephanie Schwerter (dir.): //Mauern, Grenzen, Zonen. Geteilte Städte in Literatur und Film//, Heidelberg, Winter Verlag, `2018`, p. 213-224.
# « ''Ein libertines Lob der Tugend : Franz Kratters Schleifermädchen aus Schwaben'' », Martin Mulsow, Dirk Sangmeister (dir.): //Deutsche Pornographie in der Aufklärung//, Göttingen, Wallstein `2018`, p. 412-426.
*En italien :
# « Tournier: Un ritorno a Defoe? » (trad. Federica Lamanna), Donatella Mazza (dir.), Molti, uno solo. Tipologie della letteratura giovanile, Florence, La Nouva Italia, 1994, p. 156-166.
# « Il viaggio di Mme de Staël in Italia: i riflessi della scoperta del Sud e della natura nel suo romanzo Corinne ou l’Italie », Dieter Richter et Emanuele Kanceff (dir.), La Scoperta del Sud. Il Meridione, l’Italia, l’Europa, Genève, Slatkine, 1994, p. 109-115.
# « Un’immagine di Pietro Aretino in Francia : Le Courtisan parfait de Gabriel Gilbert », Pietro Aretino nel Cinquecentenario della nascita. Atti del Convegno di Roma-Viterbo-Arezzo (28 settembre - 1 ottobre 1992), Toronto (23-24 ottobre 1992), Los Angeles (27-29 ottobre 1992). Rome, Salerno Editrice, 1995, 2 vol., vol. 1, p. 501-515.
# « Pietro Aretino in Francia. Il fondo Boullier di Roanne », en collaboration avec Marie F. Viallon-Schoneveld, Critica letteraria 105, 1999, p. 775-792.
# « Da Les Indes galantes a L‘Histoire des deux Indes. Paradisi e inferni esotici », Elena Agazzi (dir.), I mille volti di Suleika. Orientalismo ed esotismo nella cultura europea tra ‘700 e ‘800, Rome, Artemide, 1999, p. 23-34.
# « L’inizio del canzoniere come luogo del patto poetico » (trad. Daniele Arrighi), Francesco Lo Monaco et al. (dir.), « Liber », « fragmenta », « libellus » prima e dopo Petrarca, in ricordo di d’Arco Silvio Avalle, Seminario Internazionale di Studi, Bergamo, 23 -25 ottobre 2003, Florence, Sismel-Edizioni del Galluzzo, 2006.
# « ''Dove vai, dottor Dapertutto? Ovvero dal campus novel al romanzo del professore'' » (trad. Guglielmo Gabbiadini de « Campusromane der Gegenwart oder die Gleichzeitigkeit des Ungleichzeitigen », Komparatistik (2008/2009) v.s.), Between, III.6 (2013), http://www. Between- journal.it/.
# « ''La retorica sconfitta dalla forza del contesto etico-politico. Riflessioni sulla ricezione di due traduzioni'' », Between, IV.7 (2014), http://www.Between-journal.it/.
*En anglais:
# « German : Twentieth and Twenty-First Centuries », en collaboration avec Steven Totosy de Zepetnek, Gaëtan Brulotte et John Phillips (dir.), Encyclopedia of Erotic Literature, New York, Routledge, 2006, 2 vol., vol. 1, p. 536-544.
! Déroulé
//soutien pour aider les chercheurs et les doctorants à//
!! Créer leur Compte
!!! Compte CCSD
!!! IdHAL
!! Déposer
!!! Point légal
* loi
* embargo
!!! Article
!!! Autres
---
! Mémo avant formation
!! Présentation HAL / portail HAL-e2s-UPPA
* url HAL
* url du portail HAL e2s UPPA
* urls de divers portails (TEL, CEL, MédiHAL)
* Notion de collections (labo, équipes, évènements)
!! Topo CCSD
* UMS CNRS : hal, Sciencesconf, Episciences
* tout le monde peut avoir un compte CCSD
* seuls les publiants peuvent avoir un IdHAL
!!! HAL
* Archive Ouverte (DOAR)
!! Liste et rôle des référents HAL
* dans les unités de recherche UPPA
---
! Sources
* [[doc officielle|https://doc.archives-ouvertes.fr/]]
* [[Wiki du CCSD|https://wiki.ccsd.cnrs.fr/wikis/hal/index.php/Accueil]]
* Présentation Gaëlle `CreerCompteHAL_IdHAL.pdf`
* Nanterre :
** [[Qu'est-ce que HAL ?|https://science-ouverte.parisnanterre.fr/libre-acces-open-access-/hal-et-la-voie-verte/qu-est-ce-que-hal-/]]
** [[éditeurs et open access : quels sont mes droits ?|https://science-ouverte.parisnanterre.fr/libre-acces-open-access-/hal-et-la-voie-verte/hal-et-les-editeurs-quels-sont-mes-droits-/]]
* Normandie :
** Tutoriel [[Quels sont vos droits ?|https://hal-normandie-univ.archives-ouvertes.fr/page/quels-sont-vos-droits]]
plateforme de bases de données
Plateforme de collections : Web of Science (ex-Web of Knowledge)
* `Web of Science Core Collection` (1975-)
** existe depuis 1960's (Garfield) ''liens citationnels''
** 20.000 revues
**
* `BIOSIS` : thématique
* bases régionales
** `KCI` coréen
** `Russian Science`
** `SciELO` SHS - espagnol-portugais
* zoologie
* `Data Citation Index`
**jeux de données
**8.000.000
* `Derwent Innovations Index`
** brevets
https://youtube.com/user/WoSTraining/playlists
https://clarivate.libguides.com/home
kopernio - plugin pour gérer/chercher les pdfs
!!! InCites [après-midi]
Core collection : élargissement des thèmes
[[Web of Science Linked Article Match Retrieval|http://wokinfo.com/directlinks/amrfaq/]]
!!! Direction d’un ouvrage collectif
# ''Politique des lieux communs'', dir. L. Forment, T. Pocquet et L. Stambul, La Licorne n° 120, PUR, `2016`.
!!! Chapitres d’ouvrages
# « ''Esther et Athalie de Racine : une esthétique de transition ?'' », `dans` //Autres regards sur Esther et Athalie de Racine//, dir. Françoise Poulet et Guillaume Peureux, Atlande, « Clés concours », `2018`.
# « ''Jean Racine, Esther et Athalie'' », `dans` //Agrégation de Lettres 2018//, dir. J.-M. Gouvard, Éditions Ellipses, `2017`.
!!! Communications parues dans des actes de colloque, des ouvrages collectifs ou des revues à comité de lecture
* Textes parus entre 2012 et 2018
# « ''L’Astrée d’Honoré d’Urfé à Éric Rohmer : entre mélancolie et enjouement'' », [En ligne] Fabula / Les colloques, Les genres littéraires, les genres cinématographiques et leurs émotions, publié le `16 janvier 2017`, URL : http://www.fabula.org/colloques/document4106.php.
# « ''Classicisme et rhétorique chez Roland Barthes : que faire des lieux communs du xviie siècle dans la “modernité” ?'' », La Licorne, n° 120, `Politique des lieux communs`, dir. L. Forment, T. Pocquet et L. Stambul, `2016`.
# « ''Barthes et la question du style : l’exemple des Classiques'' », `dans` //Style, langue, société//, dir. Éric Bordas et Georges Molinié, Honoré Champion, `2015`, p. 183-207.
# « ''Des Princesses et de “belles personnes”. Lectures transhistoriques de Lafayette, d’après les films de Christophe Honoré et Bertrand Tavernier'' », `dans` //Interpretation in/of the Seventeenth Century//, dir. Pierre Zoberman, Cambridge Scholars Publishing, `2015`, p. 341-366.
# « Barthes et l’actualité du théâtre “classique” : la transhistoricité de la littérature mise en spectacle », Revue Roland Barthes, n° 1, juin 2014 [en ligne], URL : http://www.roland-barthes.org/article_forment.html.
# « Gide, un classique “au second degré” ? », dans André Gide & la réécriture. Colloque de Cerisy, dir. Clara Debard, Pierre Masson et Jean-Michel Wittmann, Presses Universitaires de Lyon, 2013, p. 55-73.
# « André Gide, lecteur des Classiques : une critique d’actualité ? », dans Actualités d’André Gide, dir. Martine Sagaert et Peter Schnyder, Genève, Honoré Champion, collection « Babeliana », 2012, p. 35-52.
# « Sur les espaces raciniens : tragique et envers du tragique selon Barthes. Le cas Bajazet », Coulisses, n° 44, « Le hors-scène », Besançon, Annales, Presses universitaires de Franche-Comté, 2012, p. 31-46. [Mis en ligne le 30 novembre 2016 : https://journals.openedition.org/coulisses/448]
* Textes à paraître (validés par le comité de lecture)
# « ''Relire les “Lansoniens” : de quel théâtre la Nouvelle Sorbonne a-t-elle fait l’histoire ?'' », dans Genèses des études théâtrales en France (XIXe-XXe siècles), dir. C. Brun, J. Guérin, M.-M. Mervant-Roux, PUR, « Le Spectaculaire », `à paraître en 2019`.
# « ''La Folle Querelle ou la critique d’Andromaque : quand la comédie de spectateurs extravague'' » Communication dans le cadre du colloque « //Portraits de spectateurs de théâtre : faire œuvre d’une réception (textes, images, films, spectacles)// » (Université de Lausanne, 14 et 15 avril `2016`), initié par Lise Michel, Delphine Abrecht et Coline Piot (UNIL). Colloque organisé par la section de français de l’Université de Lausanne, dans le cadre du projet FNS « Naissance de la critique dramatique » (2013-2016, Université de Lausanne et Université de Fribourg). `Actes à paraître` dans L’Entretemps.
# « ''Barthes, Sans Corneille : les “résons” politiques d’un silence critique'' » Communication dans le cadre du colloque international «
//Appropriations de Corneille// » (Université de Rouen, 15, 16 et 17 octobre `2014`, organisé conjointement par le CEREdI et le Mouvement Corneille). `Actes à paraître` sur le site du CEREdI.
!!! Publications dans des revues en ligne (sans comité de lecture)
# « ''Se laisser surprendre par un texte classique. De la délicatesse dans La Princesse de Montpensier'' », [En ligne] Transitions, 6 octobre `2018`. URL : http://www.mouvement-transitions.fr/index.php/litterarite/articles/n-6-l-forment-se-laisser-surprendre-par-un-texte-classique-de-la-delicatesse-dans-la-princesse-de-montpensier.
# [avec S. Nancy, A. Régent-Susini et B. Tabeling] « Early modern (or not) ? Une réponse à Mitchell Greenberg », [En ligne] Transitions, 15 mars 2014. URL : http://www.mouvement-transitions.fr/index.php/intensites/transition/sommaire-general-de-transition/488-intensites-early-modern-or-not.
!!! Comptes rendus et synthèses
# ''Compte rendu de Sylvaine Guyot, Racine et le corps tragique, PUF, 2014'', dans H-France Review, Vol. 17 (October `2017`), No. 196. URL : https://www.h-france.net/vol17reviews/vol17no196forment.pdf.
# ''Compte rendu de Ralph Albanese, Racine à l’école républicaine, ou les enjeux socio-politiques de la tragédie classique (1800-1950), L’Harmattan, 2013'', dans H-France Review, Vol. 16 (July `2016`), No. 144. URL : http://www.h-france.net/vol16reviews/vol16no144forment.pdf.
# [avec M. Faugère et S. Nancy ] ''Synthèse du colloque « Littéraires : de quoi sommes-nous aujourd’hui les “spécialistes” ?'' », Versants. Revue suisse des littératures romanes, Genève, Slatkine, octobre `2015`, n° 62:1 (fascicule français), p. 216-224.
!!! Traductions de l’anglais au français
# `Mitchell Greenberg`, « ''Esther, Athalie : religion et révolution dans la cité'' », Op. cit. Revue des littératures et des arts [En ligne], « Agrégation Lettres 2018 », n° 17, `automne 2017`. `Traduit de` « Esther, Athalie : Religion and Revolution in Racine’s Heavenly City », dans Racine. From Ancient Myths to Tragic Modernity, Minneapolis, University of Minnesota Press, 2010, p. 226-247. URL : https://revues.univ-pau.fr/opcit/263.
# James Siegel, « Tout autre est tout autre » [En ligne] Transitions, 21 octobre 2011. Traduit de Objects and Objections of Ethnography, extrait du chapitre 6. URL : http://www.mouvement-transitions.fr/index.php/hospitalites/republications-traductions-inedits/sommaire-des-articles-deja-publies/639-qtout-autre-est-tout-autreq.
* ''Enseignants-chercheurs''
*# [[BEDOURET Sandrine|Bedouret, Sandrine]] (MC)
*# [[BRAUD Michel|Braud, Michel]] (PR)
*# [[BUISSON Françoise|Buisson, Françoise]] (MC)
*# [[CHOL Isabelle|Chol, Isabelle]] (PR)
*# [[COLIN Christelle|Colin, Christelle]] (MC)
*# [[COMBARNOUS Anne|Combarnous, Anne]] (MC)
*# [[COPY Christine|Copy, Christine]] (MC)
*# [[FISCHER Caroline|Fischer, Caroline]] (PR)
*# [[GUYARD Emilie|Guyard, Emilie]] (MC-HDR)
*# [[LAPLACE‐CLAVERIE Hélène|Laplace-Claverie, Hélène]] (PR)
*# [[LE GRIX DE LA SALLE Marie|Le Grix de La Salle, Marie]] (MC) @@color:red;''@''@@
*# [[MOYAL Marie-Noëlle|Moyal, Marie-Noëlle]] (PR) @@color:red;''@''@@
*# [[ROUGE Bertrand|Rougé, Bertrand]] (PR)
*# [[ROUSSILLON‐CONSTANTY Laurence|Roussillon-Constanty, Laurence]] (PR)
*# [[RIGUET Sébastien|Riguet, Sébastien]] (MC) @@color:red;''www''@@
* ''Enseignants''
*# [[DAGUERRE Blandine|Daguerre, Blandine]]
*# [[LECLERCQ Armelle|Leclercq, Armelle]]
* ''Émérites''
*# [[IBANEZ Isabel|Ibanez, Isabel]] (PR) @@color:red;''www''@@
*# [[MACHU Didier|Machu, Didier]] @@color:red;''@''@@
*# [[LAPACHERIE Jean|Lapacherie, Jean-Gérard]]
*# [[TOLLIS Francis|Tollis, Francis]]
Maître de conférences de latin (//8e section//)
!!!Ouvrages
*Direction d’ouvrages (ouvrages collectifs)
# Mélanges de linguistique latine, `à paraître` en 2019.
# ''La Bande dessinée historique. Premier cycle : l’Antiquité'', Pau, PUPPA, coll. « Archaia », `2015`.
#*Plusieurs comptes rendus de l’ouvrage disponibles sur https://www.nonfiction.fr/article-7617-lantiquite_et_la_bande_dessinee.htm (Pauline Ducret), http://labojrsd.hypotheses.org/2687 (Tristan Martine) et http://www.actuabd.com/La-bande-dessinee-historique (Tristan Martine), https://lectures.revues.org/20711 (Florian Besson)
# Figures de l’étranger autour de la Méditerranée antique : à la rencontre de l’Autre, Actes du colloque UPPA-CRPHL Antiquité méditerranéenne : à la rencontre de « l’Autre » : Perceptions et représentations de l’étranger dans les littératures antiques, M.-F. Marein, P. Voisin et J. Gallego (éds), Paris, L’Harmattan (coll. « Kubaba »), 2010, 608 p.
*Chapitres d’ouvrages
# « ''Panorama de la bande dessinée historique récente : vers de nouveaux classiques après Alix ?'' », T.-A. Bernard et M. Scapin, //Age of Classics. Catalogue de l’exposition du Musée Saint-Raymond, Toulouse février-septembre 2019//, Toulouse, `2019` (pages à préciser).
# `Dictionnaire Murena`, sous la direction de Claude Aziza, entrée « ''Présages'' », Paris, Dargaud, `2017`.
# « La murène et le fils de la Méduse [étude sur la série Murena] », Le Monstre et sa lignée. Filiations et générations monstrueuses dans la littérature latine et sa postérité, J.-P. De Giorgio et F. Galtier (éds), Paris, L’Harmattan, 2012, p. 339-357.
!!!Articles en revue avec comité de lecture
*Nationale :
# ''Préface'' aux //Cahiers de Didactique des Lettres n° 3// – `Enseigner la langue : du bon usage des règles du jeu`, V. Loubet-Poëtte et B. Moricheau-Airaud (éds), `2017`. Disponible sur https://revues.univ-pau.fr/cahiers-didactique-lettres/544
# « ''‘Ceci n’est pas censé être un journal…’ : les récits de vie(s) de Calamity Jane entre lettres et images'' », Cahiers de Didactique des Lettres n° 1 - `La place de l'image dans l'enseignement de la littérature`, V. Loubet-Poëtte et B. Moricheau-Airaud (éds), `2014` (`mise à jour en janvier 2017`). Disponible sur http://revues.univ-pau.fr/cahiers-didactique-lettres/271.
# « La figure du médecin-écrivain dans la mini-série A Young Doctor’s Notebook et dans l’œuvre de Martin Winckler : lectures croisées », Les Œuvres plurielles de Martin Winckler – Actes de la journée d’études du 21 mars 2014, Cahiers de Didactique des Lettres (varia), J. Gallego, V. Loubet-Poëtte et B. Moricheau-Airaud (éds), 2014. Disponible sur http://revues.univ-pau.fr/cahiers-didactique-lettres/327
# « L’hôte et l’ennemi sont-ils des étrangers comme les autres ? », Figures de l’étranger autour de la Méditerranée antique : à la rencontre de l’Autre, Actes du colloque UPPA-CRPHL Antiquité méditerranéenne : à la rencontre de « l’Autre » : Perceptions et représentations de l’étranger dans les littératures antiques, M.-F. Marein, P. Voisin, J. Gallego (éds.), CRPHL, Paris, L’Harmattan, 2010, p. 329-338.
# « Julien et la traque des "barbares ennemis" chez Ammien Marcellin », Bulletin de l’Association des Professeurs de Lettres 130, juin 2009, p. 19-29. Article complet disponible sur http://aplettres.org/Ammien_Marcellin_par_Julie_Gallego.pdf
*Internationale :
# « Pourvu qu’Octave ne se prenne pas désormais pour un phénomène ! » : Octave-Auguste, de l’adolescence à l’âge adulte dans les bandes dessinées Alix et Alix Senator », Auguste à travers les âges : réceptions, relectures et appropriations de la figure du premier empereur romain, Latomus n° 76, D. Engels (éd.), `à paraître en 2019`.
# « ''Guerre des Gaules et guerres civiles dans la série Rome (HBO, 2005-2007)'' », TV/Series [En ligne], 10 | `2016`, mis en ligne le 01 décembre 2016. URL : http://journals.openedition.org/tvseries/1873 ; DOI : 10.4000/tvseries.1873
# « ''Retour sur un mythe moderne : Calamity Jane. Une légende de l’Ouest américain en lettres et en images'' », Revue de Recherches en Littératie Médiatique Multimodale n° 2, V. Martel, M. Boudreau et I. Beaudoin (éds), `2015`. Disponible sur http://www.litmedmod.ca/retour-sur-un-mythe-moderne-calamity-jane
# « Jules César au secours des scénaristes américains : l’incipit de la série Rome », TV/Series [En ligne], 1 | 2012, mis en ligne le 15 mai 2012. URL : http://journals.openedition.org/tvseries/1057 ; DOI : 10.4000/tvseries.1057
!!! Communications avec actes (congrès nationaux et internationaux)
# « ''"Les mamans, c’est plus pour nous de toute façon." (Autobiographie d’une courgette, Gilles Paris). Mort de la mère et deuil de l’enfant : de la prise de conscience à la reconstruction''. », //Figurations de la mort et du deuil en Littérature de jeunesse//, B. et Th. Charnay, (éds), `à paraître en 2019`.
# « ''Le retour à la langue de l’intrigue ou comment rendre son latin à Néron'' », //Les Traducteurs de bande dessinée//, V. Béghain, J.-P. Gabilliet, I. Licari-Guillaume, N. Labarre et I. Touton (éds), Presses Universitaires de Bordeaux, `à paraître en 2019`.
# « ''Macumba dans le Sertão : quelles aventures brésiliennes pour la bande dessinée européenne ?'' », article écrit en collaboration avec E. Viana-Martin, //Dialogues France-Brésil : représentations de l’ailleurs. Espaces, imaginaires, circulations//, E. Viana-Martin (éd.), Pau, PUPPA, `2018`, p. 401-444 [édition française ; va être également publié en portugais dans l’édition brésilienne des actes].
# « ''Julio César en viñetas : una vida de cómic'' » [en espagnol], //En los márgenes de Roma. Apropriacions y reinterpretaciones de la Antigüedad romana en la cultura de masas contemporánea//, L. Unceta Gomez y Carlos Sánchez Pérez, Universidad Autónoma de Madrid, Facultad de Filsosofía y Letras, volume `en cours d’évaluation scientifique`.
# « ''Les Trois Brigands et Jean de la Lune, de l’album jeunesse à l’écran pour tous : une initiation intermédiatique à l’univers d’Ungerer'' », //Transmédialité du conte. Récritures cinématographiques, audiovisuelles et vidéo ludiques//, D. Henky et Ph. Clermont (éds), Université de Strasbourg/ESPE, `à paraître en 2019`.
# « Foret comme doublet rare et archaïque de esset : état de la question et pistes complémentaires », Mélanges de linguistique latine, `à paraître en 2019`
# « ''Murs immatériels et frontières fictionnelles en BD : la zizanie dans les villages !'' », //Revisiter les frontières//, L. Jalabert et S. Guinle-Lorinet (éds), `2017`, p. 35-59.
# « ''De l’Antiquité d’Alix au Moyen Âge de Jhen : Jacques Martin explore le temps'' », //Le Moyen Âge en bande dessinée//, T. Martine (éd.), Paris, Khartala, `2016`. Complément inédit en ligne (« Les items médiévalisants dans Jhen » sur le site du laboratoire : mise en ligne à venir).
# « ''Tous les chemins mènent à Rome (HBO, 2005-2007)'' », in //Le Retour//, L. Dornel (dir.), PUPPA, coll. « Espaces, Frontières, Métissages », `2016`, p. 91-103 ;
# « ''Parcourir l’espace pour remonter le temps : paradoxe de la (re)construction des identités dans Iorix le Grand de Jacques Martin'' », //La Bande dessinée historique. Premier cycle : l’Antiquité//, J. Gallego (éd.), Pau, PUPPA, coll. « Archaia », `2015`, p. 161-172.
# « Représentations littéraires et artistiques du chien dans l’Antiquité romaine : du chien utilitaire au chien de compagnie », //Une bête parmi les hommes : le chien. De la domestication à l’anthropomorphisme//, C. Beck et F. Guizard-Duchamp (éds), coll. « Encrage université », 2014 p. 37-68.
# « "Le feu qui tombe goutte à goutte" ou Les métamorphoses de la lumière dans Le Tombeau des lucioles », Inter-Lignes Numéro spécial, Actes du Colloque Le dessin animé ou les métamorphoses du réel, G. Dastugue et B. Rey Mimoso-Ruiz (éds.), Institut catholique de Toulouse, 2012, p. 217-236.
# « De talis à ‘tel’ : évolution d’un corrélatif consécutif », Actes du IXe colloque International « Latin Vulgaire, Latin Tardif », Fr. Biville (éd.), Lyon, Publications de la Maison de l’Orient et de la Méditerranée, 2012, p. 323-334.
# « Les structures en [comparatif + quam + ut + subjonctif] », La quantification en latin, Colloque International du Centre A. Ernout, M. Fruyt – O. Spevak (éds.), Paris, L’Harmattan, 2011, p. 319-334.
# « Les citations latines dans Astérix », Actes du colloque Le tour du monde d’Astérix – Lectures, Traductions, Interprétations, B. Richet (éd.), Presses de la Sorbonne Nouvelle, 2011, p. 111-129.
# « Le participe futur en consécutive chez les historiens latins : de la postériorité à la réécriture de l’histoire », M. Kienpointner et P. Anreiter (éds.), Latin Linguistics Today : Proceedings of the 15. CILL, Innsbruck, 2010, p. 125-137.
# « Une télésérie aux frontières du réel et de la littérature : le médecin et son double dans A Young Doctor’s Notebook », communication faite le 7 octobre 2014, dans le cadre du colloque Intermédialité et réception, UPPA-CRPHLL, V. Loubet-Poëtte et S. Dreyer (eds)., article accepté par le comité scientifique, en attente d’éditeur.
!!!Communication sans actes
*Conférences universitaires
# « ''La littérature de jeunesse contre les préjugés : Katitzi la Tzigane ou les souvenirs d’enfance de la Suédoise Katarina Taïkon'' », communication faite le `21 mai 2016`, dans le cadre des journées d’étude //Tsiganes, travail, famille, habitat...//, UPPA-ITEM, organisées par J.-L. Poueyto. Disponible sur https://mediakiosque.univ-pau.fr/video/2776-seminaire-tsiganes-travail-famille-habitat/
# « ''Les femmes dans la série Rome (HBO, 2005-2007) : toutes des mamans et des putains ?'' », communication faite le `24 avril 2015`, dans le cadre de la journée d’études //Figures de l’Antiquité : petit et grand écrans//, organisée par S. Bataille et J.-N. Castorio, Le Havre.
# « ''L’écrivain et son livre au cœur de l’écriture scénaristique du dénouement : le cas de //Gossip Girl// et de //Private Practice//'' », communication faite le `26 mars 2015`, dans le cadre du colloque //Littérature et séries//, organisé par S. Wells-Lassagne, Université de Bretagne.
# « J’irai, je verrai, je vaincrai : les citations latines traduites et détournées dans la série Astérix », communication dans le cadre de la journée d’études de l’ENS Lyon Bande dessinée et traduction, organisé par I. Guillaume, 25 septembre 2014.
# « Jules César au secours des scénaristes américains : du Bellum Gallicum à la série TV Rome », communication faite le 8 février 2013 dans le cadre de la journée d’études du séminaire de M1 « Intermédialités », organisée par C. Fischer, UPPA-CRPHL.
# « La bande dessinée dans l’enseignement supérieur », Actes du colloque Lire et Produire des bandes dessinées à l’école, 2010, N. Rouvière – J.-F. Massol, Grenoble. Captation vidéo disponible en ligne.
!!! Conférences pour le secondaire (enseignants et/ou lycéens)
# « ''"Les divinités ont l’éternité devant elles pour être satisfaites" : des hommes marionnettes des dieux et des dieux marionnettes des hommes dans Alix Senator ?'' », journée d’études sur //les dieux et les hommes dans le monde gréco-romain//, co-organisé avec Johana Augier (CGPE Barthou), `9 avril 2019`.
# « ''Les animaux dans la Cena Trimalchionis : accessoires ou utilités ?'' », conférence à destination des lycéens de Dax et Saint-Paul-lès-Dax, sur invitation du musée Borda de Dax dans le cadre de l’exposition « Ils sont food ces Romains », `13 février 2019`.
# « ''Quand la Rome antique se raconte en manga'' », conférence pour les lycéens latinistes de Dax et Saint-Paul-lès-Dax, participant au projet LIBROS +, `17 janvier 2019`.
# « ''L’image de César dans la BD'' », conférence pour les lycéens latinistes de Dax et Saint-Paul-lès-Dax, participant au projet LIBROS +, `16 janvier 2018`.
# « ''Un Romain sur la route de la soie : Alix et L’Empereur de Chine en classe de 6e'' », communication faite le `15 décembre 2016`, dans le cadre du stage académique de l’académie de Versailles //Quelle narration pour l’histoire : la bande dessinée//, organisé par S. Boulou.
# « ''Le Péplum : de l’écran à la case. Croisements médiatiques'' », communication faite le `26 janvier 2016`, dans le cadre du séminaire //Bons ou mauvais genres//, organisé par L. Lessous, Canopé 16 / Cité Internationale de la Bande Dessinée et de l’Image, Angoulême.
# « ''Une nouvelle image d’Auguste et de Néron dans les bandes dessinées historiques Alix Senator et Murena'' », communication faite le `19 octobre 2015`, dans le cadre des journées d’octobre de la CNARELA, //Permanence et Renaissances des Antiquités//, organisé par l’Arelabor.
# « ''Former des étudiants de Lettres à la bande dessinée : enjeux pédagogiques et culturels'' », communication faite le `25 mars 2015`, dans le cadre des //Rencontres BD et enseignement//, lycée Mansart, organisé par J. Mak dit Mack, Thizy.
# « Le guerrier héroïque : de la Guerre des Gaules de Jules César à la série TV Rome », communication faite le 5 décembre 2013, dans le cadre de la journée d’immersion du département des Lettres à destination des élèves de 1re, organisée par C. Rochelois et J. Gallego, UPPA, Pau.
*Conférences grand public
# « La légende noire de l’empereur Néron, entre Histoire et histoires », conférence prévue le `2 juin 2020`, pour l’Université du Temps Libre d’Anglet.
# « ''Auguste dans la BD et les séries TV : de l’Histoire à la fiction'' », `8 mars 2019`, dans le cadre de l’Université du Temps Libre d’Aquitaine.
# Intervenante lors de la ''table ronde'' du samedi `23 février 2019` ''dans le cadre de l’exposition Age of Classics ! L’Antiquité dans la culture pop''.
# « ''Du festin chez Trimalchion au banquet chez les Romains'' », ''conférence'' à destination des lycéens de Dax et Saint-Paul-lès-Dax, sur invitation du musée Borda de Dax, ''dans le cadre de l’exposition « Ils sont food ces Romains »'', `13 février 2019`.
# « ''Imaginaire de la Rome antique dans la BD'' » (samedi `15 septembre 2018`) et « ''Quand la Rome antique se raconte en manga'' » (dimanche `16 septembre 2018`), conférences au musée de Borda (Dax) dans le cadre des journées européennes du patrimoine.
# # Intervenante lors de la table ronde « ''Antiquité et Moyen Âge dans la bande dessinée'' », 21e Rendez-vous de l’Histoire de Blois, Carte blanche à la SOPHAU, `12 octobre 2018`.
# « ''Jules César dans la BD et les séries TV : de l’Histoire à la fiction'' », communications faites le `19 mai 2017`, dans le cadre de l’Université du Temps Libre d’Aquitaine ; le `16 septembre 2017` au Musée Larrey de Baudéan, `20 mars 2018`, Aire-sur-l’Adour
# « ''Le chien chez les Romains'' », communication faite le `11 mars 2017` au Musée Larrey de Baudéan.
# « ''Pardonne-moi et songe que j’étais solitaire : le mythe moderne de Calamity Jane, reine du Far West'' », communication faite le `7 février 2014`, dans le cadre de l’Université du Temps Libre d’Aquitaine, le `14 avril 2015` dans le cadre de l’Université du Temps Libre d’Anglet, et le `9 janvier 2016` au Musée Larrey de Baudéan.
# Co-animation le `9 avril 2015` avec V. Loubet-Poëtte d’un ''Café-débat sur les génériques de séries télévisées'', dans le cadre du dispositif « Enfin jeudi ! », UPPA.
# Co-animation le 20 mars 2014 avec V. Loubet-Poëtte d’un Café-débat sur la fin des séries télévisées, dans le cadre du dispositif « Enfin jeudi ! » et de la journée d’études sur Martin Winckler, UPPA.
# « Jules César au secours des scénaristes américains : l’incipit de la série Rome », journée de formation PREAC – Patrimoine Antique au Musée département Arles Antique (30 mars 2012).
# « La méthode audio-orale de latin de Pau », Colloque international Europa Latina : Il latino en Europa, organisé par Antonia Arveda, Vicenza, (04/03/09, Italie). Article complet en italien disponible en ligne.
# Colloque international de latin vivant Litterarum vis, organisé par L. Miraglia (Accademia Vivarium novum), Szeged-Budapest (22-31/07/08, Hongrie). Trois communications en latin sur des extraits de Martial, Florus et Suétone.
!!! Autres productions
* Organisation ou co-organisation de plusieurs colloques et journées d’études :
# ''Les hommes et les dieux'', journées d’étude prévue le `10 avril 2018`, en collboration avec la CPGE Louis Barthou.
# Les Œuvres plurielles de Martin Winckler 21 mars 2014.
# La Bande dessinée historique 23, 24, 25 et 26 novembre 2011.
# Le péplum, 24 mars 2011.
# Antiquité méditerranéenne : à la rencontre de « l’Autre ». Perceptions et représentations de l’étranger dans les littératures antiques 12, 13 et 14 mars 2009.
# Co-`traduction` en latin de la bande dessinée ''Murena (t. 2)'' de J. Dufaux et Ph. Delaby (''Ex arena et cruore'', avec M. Quinot-Muracciole et Cl. Aziza, Dargaud, `2016`.
# Critique du film Hippocrate de Thomas Lilti, sur http://www.arretetonchar.fr/hippocrate-de-thomas-lilti/, mise en ligne en septembre 2014.
* Comptes rendus pour Bolletino di Studi Latini
# « Journée d’études sur le péplum (Pau, 24 mars 2011) », Bolletino di Studi Latini 42, 2012, f. I, p. 194-195.
# « Colloque sur la bande dessinée historique (Pau, 23 au 26 novembre 2011) », Bolletino di Studi Latini 42, 2012, f. I, p. 317-320.
* Comptes rendus pour la Revue des Études Anciennes :
**sur le carnet « Actualités des études anciennes », compte rendu en ligne des bandes dessinés
# ''Le Hurlement de Cybèle. Alix Senator t. 5 de Valérie Mangin et Thierry Démarez'' (`janvier 2017`, http://reainfo.hypotheses.org/6492)
# « ''Médée est-elle encore un monstre ?'' », Médée t. 1 à 3 de Nancy Peña et Blandine Le Callet (`octobre 2017`, https://reainfo.hypotheses.org/7800)
# « ''Alix sénateur ou le retour de la momie'' », La Montagne des morts. Alix Senator t. 6 de Valérie Mangin et Thierry Démarez (`novembre 2017`, http://reainfo.hypotheses.org/10354)
# Les Aigles de Rome t. 5 d’Enrico Marini (`à paraître en 2018`)
# ''Notes de lecture sur l’ouvrage : Aziza, Claude (2016), Vivre l’Antiquité. Recueil de préfaces et autres textes, Bordeaux, Ausonius Éditions'', Scripta Receptoria 8, mis en ligne le `5 février 2018` sur http://www.revue-etudes-anciennes.fr/aziza-cl-vivre-lantiquite-recueil-de-prefaces-et-autres-textes-o-devillers-coll-bordeaux-ausonius-2016-373-p-bibliogr-scripta-receptoria-issn-2427-4771-7-isbn-978/
**Compte rendu pour La Vie des Classiques (Les Belles Lettres), responsable de la chronique « Albums »
**# à paraître en 2019 : ''comptes rendus de Le Banquet. Murena t. 10 de Jean Dufaux et Theo'' ; ''catalogue de l’exposition sur l’Art de Jacques Martin'' ; ''Alix Senator en latin'' ; ''Alix Senator t. 7 et 8''.
!!!Autres
# ''Quelques titres pour buller cet été'', disponible sur https://laviedesclassiques.fr/article/album-%E2%80%94-quelques-titres-pour-buller-cet-%C3%A9t%C3%A9 (mis en ligne : `13 août 2018`)
# ''Les Gladiateurs. Les Voyages d’Alix de Marco Venanzi et Éric Teyssier'', disponible sur https://laviedesclassiques.fr/article/albums-les-voyages-d%E2%80%99alix-%E2%80%93-les-gladiateurs (mis en ligne : `6 juillet 2018`)
# ''Le Serment du gladiateur. ? Alix t. 36'', disponible sur http://www.laviedesclassiques.fr/article/albums-alix-36-le-serment-du-gladiateur (mis en ligne : `16 février 2018`)
# ''La Montagne des morts. Alix Senator t. 6 de Valérie Mangin et Thierry Démarez'' disponible sur http://www.laviedesclassiques.fr/article/alix-senator-6-–-la-montagne-des-morts-de-valérie-mangin-et-thierry-démarez-casterman (mis en ligne : `09 octobre 2017`)
# Introduction et débat autour du film d’animation documentaire Un día ví 10000 elefantes dans le cadre du festival ibéro-andalou de Tarbes, `29 novembre 2018`.
# `Interview` en `novembre 2015` de Marc Jailloux, dessinateur de Alix t. 34, Par-delà le Styx, sur http://alixmag.canalblog.com/archives/2015/11/03/32876789.html
# `Interview` de Valérie Mangin, scénariste de Alix Senator dans le cadre d’une rencontre organisée par la librairie BDVore à Tarbes (65), `9 mars 2016`.
# Animation d’une master Class avec la scénariste Valérie Mangin, `10 mars 2016`, à destination des étudiants de Lettres Classiques de tous les niveaux et des étudiants du cours d’option « Lecture et analyse de la bande dessinée ». Compte rendu sur http://alixmag.canalblog.com/archives/2016/05/31/33767138.html
# Animation de la rencontre avec la dessinatrice Lucy Mazel, `10 avril 2017`, dans le cadre du cours d’option « Lecture et analyse de la bande dessinée ».
# Animation d’une master Class le dessinateur Ström, `14 février 2019`, dans le cadre du cours d’option « Lecture et analyse de la bande dessinée ».
# Préparation de l’appareillage des textes pour une lecture avec latin accentué dans ''Langues et cultures de l’Antiquité. Latin. Manuel de cycle 4'', G. Duhil et al., Hatier, `2017` [édition numérique enrichie].
# Supervision du travail de traduction en latin de la ''biographie de Marie Curie'' par une classe de latiniste du lycée Marie Curie à Tarbes (65) et leur enseignante en `2017`.
# Supervision du travail de traduction des ''Tables anatomiques d’Eustache'' dans le cadre du projet international « Latin : Initiation en Bibliothèque à la Recherche sur les Œuvres des Savants » [Libros], Université de Bretagne Occidentale ; collaboration avec trois classes de deux lycées de Mont-de-Marsan et Saint-Paul-lès-Dax (40) et leurs enseignantes (`2017-2018` et `2018-2019`).
# Supervision de l’enregistrement des voix latines de la BD Le Glaive de Burdigala, Bordeaux, Dadoclem, 2014.
# Élaboration du document de travail et de la voix de travail de lecture des textes latins du ''manuel de latin'' Hatier, `2017`.
# « ''Méthode active de latin pour le secondaire'' », sur http://www.arretetonchar.fr/enseigner-le-latin-autrement-la-methode-audio-orale-de-claude-fievet/, documents mis en ligne en `février 2015`.
# Organisation pour l’UPPA de la lecture publique internationale de ''l’Odyssée'' (`mars 2017`), ''des Métamorphoses'' (`mars 2018`), de ''l’Iliade'' (`mars 2019`) dans le cadre du `Festival latin-grec`.
!!! Interview :
# Interview orale pour l’émission radiophonique Antiquissimo, `20 janvier 2017` http://radioallianceplus.fr/audio/avec-julie-gallego-le-latin-cest-rigolo/ (par M. Quinot-Muracciole, durée 28 minutes)
# Interview écrite pour la revue Cases d’Histoire n° 5, mars-avril, `2016`, http://cdhlemag.com/2016/04/la-bd-sur-la-rome-antique-entre-a-luniversite/ (par Th. Lemaire)
!!! Autres responsabilités liées aux domaines de recherches :
# Membre du jury du Prix Annie Peysson de la BD antiquisante depuis 2015.
# Encadrements d’une douzaine de mémoires de M1 et M2 recherche et MEEF 2 depuis 2012.
# Participation à de nombreux jury.
# Membre de la commission d’experts pour les sections 7, 8, 9 et 10.
# Conception et réalisation de la plaquette des langues anciennes de l’UPPA.
!!! Ouvrages
# « Morsels for the Gods » : l’écriture du visage dans la littérature britannique. Paris : Michel Houdiard, 2012.
!!!Direction d'ouvrages
# Fabienne Gaspari (éd.). ''Le corps du lecteur et ses représentations littéraires''. Paris : L'Harmattan, `2018`. (''Introduction'', 11-18)
# Fabienne Gaspari (éd.). ''L’écriture du visage dans les littératures francophones et anglophones. De l’âge classique au XXIe siècle''. Paris : L’Harmattan, `2016`. (''Introduction'', 11-18)
# Michel Brunet, Fabienne Gaspari, Mary Pierse (éds.). ''George Moore’s Paris and his Ongoing French Connections''. Oxford: Peter Lang, `2015`.
# Fabienne Gaspari, Catherine Mari (éds.). Formes allogènes dans le discours : imbrication et résonance. Rives, 6. Paris : L’Harmattan, 2011. (Introduction avec Catherine Mari), 9-18)
!!! Articles dans revues à comité de lecture
# « ''“Their glances met”: looks and desire in The Mayor of Casterbridge'' », Hardy Review XIX-ii, `Fall 2017`, 70-81 [`également publié dans` Fathom, A French e-Journal of Thomas Hardy’s Studies, 5, `2018`].
# « ''Trois cœurs simples : visions de l’idiotie chez Gustave Flaubert, George Moore et James Joyce'' », L’Atelier, 9.1, `2017`, 16-33.
# « ''Images “in the air” in George Moore’s Lewis Seymour and Some Women and Modern Painting'' », Cahiers Victoriens et Édouardiens, 84, `2016`.
# « Une jeunesse à Paris : le melting-pot à l’irlandaise de George Moore », Études irlandaises, Printemps 2014, 39 (1), Printemps 2014, 169-182.
# « “A letter for me?ˮ: Letter and Destiny in “Destiny and a Blue Cloakˮ and “An Indiscretion in the Life of an Heiressˮ ». Fathom, A French e-Journal of Thomas Hardy’s Studies, 1, 2013.
# « “MY DEAR AUDACIOUS MOOREˮ : les poses de l’artiste décadent dans Confessions of a Young Man », Cahiers Victoriens et Édouardiens, 75, 2012, 201-214.
# « Le choix de l’extra-ordinaire : Cranford (1853) d’Elizabeth Gaskell », L’ordinaire, Méthode !, 21, 2012, 37-46.
!!! Articles dans actes de colloque
# « ''“Go to Ireland, go to Ireland” : le retour dans Hail and Farewell de George Moore'' », 373-388. Laurent Dornel (éd.). //Le retour//. Pau : Presses universitaires de Pau et des pays de l'Adour, `2017`.
# « ''Point final ou “vanishing point” ? Quête du sens et inachèvement dans le roman victorien'' », 131-146. Michel Braud (éd.). //Le récit sans fin. Poétique du récit non clos//. Paris : Classiques Garnier, `2016`.
# « ''The Symphony of the Senses: Baudelaire, Huysmans and Moore'' », 73-93. Michel Brunet, Fabienne Gaspari, Mary Pierse (éds.). //George Moore’s Paris and his Ongoing French Connections//. Oxford, Bern: Peter Lang, `2015`.
# « Modernity and “ever-escaping meaning”: Charles Baudelaire, Stéphane Mallarmé and George Moore on Édouard Manet », George Moore Symposium, Princess Grace Irish Library, Mary Pierse (dir.), 2014. [http://www.pgil.mc/uploads/content/2015/Fabienne Gaspari GM/Symposium.pdf]
# « “In large and serpentine curvesˮ: George Moore’s sense of paradox in A Mere Accident », 143-162, Maria Elena Jaime de Pablos, Mary Pierse (éds.), George Moore and the Quirks of Human Nature, Oxford: Peter Lang, 2014.
# « Le critique d’art, passeur d’images : Modern Painters de John Ruskin (1843-1856) et Modern Painting (1893) de George Moore », 119-134, Pascale Antolin, Arnaud Schmidt, Susan Barrett & Paul Veyret (éds.), La figure du passeur. Transmission et mobilités culturelles dans les mondes anglophones, Bordeaux : Presses Universitaires de Bordeaux, 2014.
# « Painting and Writing in George Moore’s Confessions of a Young Man, Lewis Seymour and some Women and A Drama in Muslin », 43-55, Fabienne Garcier, Christine Huguet (éds.), Across Borders: George Moore, Amsterdam: Rodopi, 2013.
# « “La folle sur un toit brûlantˮ : représentation et écriture de la folie dans Jane Eyre de Charlotte Brontë », Florence Marie-Laverrou (éd.), Le fou, cet autre, mon frère, Rives, 7, Paris : L’Harmattan, 2012.
# « “J’aurais pu être un vagabondˮ : droit chemin et méandres dans David Copperfield (1850) de Charles Dickens », Francis Desvois, Morag Landi (éds.), Sur la route, dans la rue en Occident. Le vagabond, Paris : L’Harmattan, 2012.
# « L’écriture dans l’image : de quelques œuvres préraphaélites », 279-292, Fabienne Gaspari, Catherine Mari (éds.), Formes allogènes dans le discours : imbrication et résonance, Rives, 6, Paris : L’Harmattan, 2011.
# « “L’invincible instinct de jouirˮ : danse et jouissance de Thomas Hardy à D. H. Lawrence, en passant par George Moore », 261-277, Françoise Buisson, Christelle Lacassain-Lagoin, Jane Hentgès, Michael Parsons (éds.), Jeu, Joie, Jouissance, Rives, 5, Paris : L’Harmattan, 2011.
# « “Je vis tout Hindˮ : Kim de Kipling (1901), mosaïque et hybridité », 215-226, Danielle Chini, Florence Marie-Laverrou, Michael Parsons (éds.), Intégration de l’altérité : formes et procédures, Rives, 4, Paris : L’Harmattan, 2011.
!!! Recensions d'ouvrages
# ''Christine Huguet (ed.), Writing Otherness. The Pathways of Gissing’s Imagination, Equilibris Publishing, 2010, 311 p.'' Cahiers Victoriens et Édouardiens, 80, `2014`.
# ''Stephen Kite, Building Ruskin’s Italy, Aldershot : Ashgate, 2012, 218 p.'' Cahiers Victoriens et Édouardiens, 79, `2014`.
[[lien vers Google Scholar|https://scholar.google.fr/]]
Faire très attention aux métadonnées ; sources pas très claires et parfois pas très fiables.
#Groupe sur les requêtes API dans HAL
##Accès :
Visio le vendredi 15 mars 2018 de 14h à 16h à l'adresse : \url{https://meet.jit.si/ApiHal}
Mot de passe pour accéder à la visio = casuhal
\url{https://api.archives-ouvertes.fr/docs}
\url{https://wiki.ccsd.cnrs.fr/wikis/hal/index.php/Accueil}
##Tour de table :
Présentation, modalités d'administration de sa collection son portail dans son établissement. Utilisation des API ? utilisations des requêtes présentes sur le wiki. Usage d'ocdhal, d'extrhal, de sword ?
1. Hélène Jouguet, admin portail Univ-orleans (binôme au SCD) , pas d'utilisation des API dans le cadre de l'admin portail au quotidien pour l'université2 UGA 5 admin portail au sein du SID (direction des bibliothèques universitaires) : 3 à la direction des services à la recherche (L. Albaret, V. Denizot, S. Corvey-Biron, B. Durok), 2 à la mission Outils, support, innovation (Samuel Libot et Marion Etasse).
travaux sur la bibliométrie et les indicateurs (production scientifique à l'échelle COMUE UGA). Connaissance du fonctionnement de x2hal (appui technique auprès des labos).
3. Université Pau (Julien Rabaud, Gaëlle Chancerel, requête à partir d'ind avec openrefine, ocdhal débutants)
4. Nîmes - Florence Barré (Débutant API)
5. Brigitte Bidegaray chercheur (U Grenoble Alpes, OCdHAL quotidien, réalisation de supports de formation sur les API, réalisation de requêtes de veille)
6. Sandrine Corvey-Biron SID Université Grenoble Alpes
##
##Discussion du groupe réuni
* Création d'un fichier de travail en commun pour que chacun puisse, selon ses ressources, participer à la validation/ corrections : \url{https://lite.framacalc.org/apicasuhal}
* Ensuite on reportera sur le wiki dans une grande page dictionnaires de requêtes
*
* **Idées avec suites à donner**
* A Grenoble par exemple ils travaillent sur la méthode : partir d'une question précise (j'ai tel besoin) -> les admin portails produisent l'écriture d'une requête avec variables et l'accompagnement à la prise en main de la requête.
* Samuel et Marion mettent à disposition les requêtes et la documentation liéeExemple : \url{https://filesender.renater.fr/?s=download\&token=4f400aeb-0fb3-4617-b4f6-1beb9a423e8f}
* Faire qqchose sur les formats de sortie
* Exemple openrefine (Univ Pau) : exploitation de requêtes APIexemple d'utilisation : besoin de produire une liste à partir des IND (auteurs) d'un labo pour contrôler les affiliations, formes auteurs, création IdHal...
avantage : plusieurs API qui se succèdent sur une même liste entrante
désavantage : OpenRefine un peu trop lent (par rapport à la vitesse des API hal) ; processus non réplicable pour d'autres listes entrantes
tuto à faire pour mise à dispo sur le wiki ?
##Réalisation du dictionnaire de requêtes :
En introduction redonner les principales caractéristiques de l'API
* données depuis 2011 uniquement ? (toute requête non limitée dans le temps remonte à 2011) ? oui ou non ? (je ne sais plus)
* Il est possible d'utiliser l'API comme flux rss : en mettant wt=rss
*
* 1 Nombre d'articles par revues
* 2 Répartition des dépôts par type de publication
* 3 Nombre de dépôts par année type de dépôt et type de document dans sa collection
* 4 Nombre de publications scientifiques hors vulgarisation des auteurs d'une collection et d'un laboratoire spécifique par année universitaire de publication (2015-2016) en affichant uniquement les auteurs affiliés au laboratoire demandé et non pas tous les auteurs présents dans la collection
* 5 Nombre de dépôts par domaine dans sa collection
* 6 Liste des dépôts d'un regroupement d'institutions
* 7 Listes des 50 derniers dépôts faits dans une collection par date de publication descendante
* 8 Listes des 50 derniers dépôts faits dans une collection par date de dépôt descendante
* 9 Flux rss des dépôts faits dans une collection depuis 1 mois
*
* 10 Flux rss des 3 derniers dépôts avec texte intégral
Requêtes dans le tableau :
* Liste des dépôts par labo d'une université (et uniquement des labos affiliés à l'université), par année de dépôt et par type de document déposé (requête non réussie proposition d'une autre ci-dessous)
* Nombre des dépôts présents dans une collection/portail trié par type de document
* Nombre des dépôts présents dans une collection/portail trié par type de document par date de dépôt *ou* de publication
* Liste des dépôts pour une plage entre 2 années d'une structure dont les labos sont en statut OLD
* Liste des labos affiliés à une université (ancienne par exemple) et pas à une autre (nouvelle par exemple)
* Liste des dépôts de texte intégral d'une institution pour une année
* 11 Liste des thèses d'une institution
* 12 Méthode pour repérer les types de publications (extractions HCERES)
* 13 Liste des dépôts effectués dans un portail X mais non affiliés à une structure de la collection XX
* 14 Nombre de dépôt par contributeur dans un portail, classés par année de dépôt
* 15 Liste des auteurs dont une publication au moins est affiliée à une structure avec indication de leur IDHAL ou de l'absence d'IDHAL
* 16 Liste des auteurs ayant un dépôt ou plusieurs affilié à une structure ayant créé leur CV HAL
* 17 Liste des publications d'un auteur à partir de son idhal
* 18 Liste de toutes les structures qui dépendent d'une structure dont l'identifiant HAL est XXX
* 19 Liste des dépôts par labo d'une université (et uniquement des labos affiliés à l'université), par année de publication et par type de document déposé
* Liste des identifiants des revues des notices non valides d'une collection
* Liste, triée par ordre de dépôt décroissante des dépôts, des articles publiées en revue, tamponnés par une collection, avec pour chacun la liste des auteurs, l'année de publication, le nom de la revue, ainsi que toutes les informations de RoMEO/SHERPA à propos de la politique éditoriale de la revue
##Dans la page requêtes de bases
* 1 Requêtes pour démarrer dans HAL
* 1.1 Liste de tous les dépôts d'une COMUE : VIDE
* 1.2 Liste des 10 dernières publications déposées pour une structure donnée VIDE
*
* 2 Requêtes pour fournir des indicateurs de pilotage
* 2.1 Liste des dépôts par labo d'une université (et uniquement des labos affiliés à l'université), par année de dépôt et par type de document déposé : VIDE
* 2.2 Liste des dépôts par labo d'une université (et uniquement des labos affiliés à l'université), par année de publication et par type de document déposé : VIDE
*
* 3 Requêtes pour travailler sur les auteurs
* 3.1 Liste des chercheurs affiliés à un établissement qui ont créé leur IdHal
* 3.2 Liste des chercheurs affiliés à un établissement qui ont créé leur CV##
##Dans la page de la formation du CCSD en mars 2016
* 1 API de recherche HAL
* 1.1 Exemple 1 - Varia
* 1.2 Exemple 2 - Liste d'auteurs affiliés à une structure
* 1.3 Exemple 3 - Auteurs des articles d'une collection
* 1.4 Exemple 4 - Nombre de dépôts par type de dépôt
* 1.5 Exemple 5 - Nombre de dépôts par année, type de dépôt et type de document
* 1.6 Exemple 6 - Dépôts dans une collection mais pas dans une autre
* 1.7 Exemple 7- Chercheurs ayant créé leur IdHAL pour une structure
* 1.8 Exemple 8 - Liste de documents par type de dépôt
* 1.9 Exemple 9 - Liste des revues où les déposants publient
* 1.10 Exemple 10 - Nombre de dépôts par contributeur
* 1.11 Exemple 11 - Flux RSS des derniers dépôts d'une collection
* 1.12 Exemple 12 - Liste de références d'un laboratoire dans HAL
* 1.13 Exemple 13 - Nombre de dépôts de thèses
* 1.14 Exemple 14 - Nombre de dépôts dans HAL
* 1.15 Exemples sur d'autres sites
* 1.16 Fonctionnement des dates renvoyées par l'API
* 1.16.1 submittedDate versus releasedDate
* 1.16.2 producedDate
API recherche référentiels
* Les formes auteur valides, qui ont un idhal mais qui n'ont pas de CV
* Structures rattachées à l'université d'Avignon
*
!![[HALuppaSaisie|https://www.zotero.org/groups/2279544/haluppasaisie/]] |2279544|haluppasaisie|
!!!Utilisateurs
<<<
|''Username''|''Full Name''|''Role''|
|g chancerel|g chancerel|member|
|ujubib|Julien Rabaud|Owner|
|manolisaves|manolisaves|member|
|lserranopineda|lserranopineda|member|
|Amrani Wissam|Amrani Wissam|member|
|lloancy|||
<<<
!!!Paramètres du groupe
<<<
|''Group Type''|Private|
|''Library Reading''|Any group member|
|''Library Editing''|Any group member|
|''File Editing''|Any group member|
<<<
!! [[HAL-Uppa-Imports|https://www.zotero.org/groups/2305769/hal-uppa-imports]] |2305769|hal-uppa-imports|
!!!Utilisateurs
<<<
|''Username''|''Full Name''|''Role''|
|g chancerel|g chancerel|Owner|
|ujubib|Julien Rabaud|member|
<<<
!!!Paramètres du groupe
<<<
|''Group Type''|Private|
|''Library Reading''|Any group member|
|''Library Editing''|Any group member|
|''File Editing''|Any group member|
<<<
!!! CREG
!!!! Référencement `ouvrage` [type export : `3`]
*Types :
**''OV'' : vulgarisation
**''OVch'' : chapitre - vulgaristation
**''OS'' : scientifique
**''OSch'' : scientifique - vulgaristation
**''DO'' : direction
***Guillon, Jaussaud : direction de n° spéciaux de revues :
****`titre`= titre du numéro spécial
****champ `revues` pas exporté (exporter comme `serie={}`)
!!! Articles dans actes de colloque
# Guesle-Coquelet, C., `2015` – « ''Les Français sont polis : de l’utilisation d’un stéréotype à l’enseignement / apprentissage de la politesse en français'' », `in` V. Guenova (dir.), //L'Eloquence des gestes. Enjeux linguistiques et interculturels de la politesse : Actes du Colloque international 5-6 novembre 2011//, Sofia : Presses universitaires Saint Clément d'Orhid, p. 555-574.
!!! Articles dans ouvrages collectifs à comité de lecture (hors actes de colloques)
# Edmonds, A. & Guesle-Coquelet, C., `2015` : « ''Reported use and perception of tu and vous among less integrated and highly integrated Anglophone cultural migrants in France'' », `in` F. Forsberg Lundell & I. Bartning (éds.), //Cultural migrants and optimal language acquisition//. Clevedon, UK: Multilingual Matters, p. 83-114.
!!! Articles dans revues sans comité de lecture
# Guesle-Coquelet, C., `2015` (en collaboration avec Amanda Edmonds et Nathalie Meyrignac) : « ''Travailler la production orale avec Babelium'' », Le Français dans le monde, 401, septembre-octobre, p. 40-41.
# Guesle-Coquelet, C., `2015` (en collaboration avec Elisabeth Champseix, Brigitte Lepez et Sylvie Sohier) : « ''Réussir ses études supérieures en France grâce au FOU'' », Le Français dans le monde, 400, juillet-août, p. 40-41.
!!!Direction d'ouvrages et de numéros de revue (DO)
# 1998 Éd. de Le sucre dans l’espace caraïbe hispanophone : Stratégies et représentations, Paris, L’Harmattan (« Recherches - Amériques latines »), 398 p.
# 2003 Éd. de Caraïbes. Éléments pour une histoire des ports / El Caribe Elementos para una historia de los puertos, Paris, L’Harmattan (« Recherches - Amériques latines »), 316 p.
#* [Vol. II des Actes du 2e Colloque international organisé les 3-7 juin 2000 par le Groupe de recherche sur l’espace caraïbe hispanophone, sous-équipe de l’EA 1925 de l’UPPA, sur « Les ports dans l’espace caraïbe hispanophone »].
# 2003 Éd. de Les ports dans l’espace Caraïbe. Réalités et imaginaire, Paris, L’Harmattan (« Recherches Amériques latines »), 296 p.
#* [Vol I des Actes du 2e Colloque international organisé les 3-7 juin 2000 par le Groupe de recherche sur l’espace caraïbe hispanophone, sous-équipe de l’EA 1925 de l’UPPA, sur « Les ports dans l’espace caraïbe hispanophone »].
# 2008 Éd. de Regards croisés entre la France et le Brésil, avec le concours scientifique de D. Bourmaud, V. Berdoulay, A. Kouvouama, É.Martin-Viana, N. Laporte, avant-propos de J.M. Uhaldeborde, Paris, L’Harmattan, 342 p. (introduction de Michèle Guicharnaud-Tollis), Paris, L’Harmattan, 329 p.
# 2012 Éd. de Ils ont fait les Amériques. Mobilités, territoires et imaginaires (1776-1930), Laurent Dornel, Michèle Guicharnaud-Tollis, Michael Parsons, Jean-Yves Puyo (éds), introduction de Michèle Guicharnaud-Tollis, Bordeaux, Presses Universitaires de Bordeaux, 411 p., ISBN: 978-2-86781-785-4.
# `2015` Éd. de ''Les masques de la vérité dans les discours américains'', `Introduction` de Michèle Guicharnaud-Tollis, Bordeaux, Presses Universitaires de Bordeaux, 306 p. ISBN.`9782867819551`.
# `2015` Éd. de ''Gastón Baquero et l'écriture de l'exil (1959-1997)'', Líneas [En ligne], numéros en texte intégral, 5/ janvier 2015 coordonné par Michèle Guicharnaud-Tollis et Clément Animan Akassi, mis à jour le 06/02/2015. URL : https://revues.univ-pau.fr/lineas/2268.
!!! Ouvrages scientifiques (ou chapitres) (OS)
# 1985 (en collaboration avec Nicole Simon, Conservateur responsable du Service étranger au Département des entrées étrangères de la Bibliothèque nationale de Paris) Le fonds cubain de la Société de géographie de Paris, Paris, Bibliothèque nationale (« Études, guides et inventaires » 3), 67 p.
# 1988 La correspondance des agents britanniques en poste à La Havane (1820-1850), Paris, Université de Paris 8 (Cahiers d’histoire des Antilles hispaniques, 6), 134 p.
# 1991 L’émergence du Noir dans le roman cubain du XIXe siècle, Préface de Joseph Pérez, Paris, L’Harmattan (« Recherches et documents - Amériques latines »), XVII-593 p.
# 1996 Regards sur l’île de Cuba au XIXe siècle. Témoignages européens, Paris, L’Harmattan (« Recherches et documents - Amériques latines »), 356 p.
# 2005 « La Habana y el tráfico negrero clandestino del siglo XIX: historia y ficción entre dos continentes », in Hommage à Carlos Serrano, Paris, Éditions Hispaniques, p. 411-419.
# 2007 (en collaboration avec J. Louis Joachim) Cuba de l’indépendance à nos jours, Paris, Ellipses (« Les essentiels de civilisation »), 272 p.
# 2014 « Alejo Carpentier et l’américanité en questions (1923-1939) ». In : Campuzano, Francisco (éd.). Territoires des deux rives : imaginaires et identités en Espagne et en Amérique latine, Hommage à Jean Franco. Paris: L'Harmattan, 2014. p. 87-99.
# `2015` «''Introduction''». `In` : Michèle Guicharnaud-Tollis (éd.), //Les masques de la vérité dans les discours américains//, Bordeaux, Presses Universitaires de Bordeaux, p. 11-20.
# `2015` « ''Le poète et ses masques : « El lunes me llamaba Nicanor »''. `In` : Michèle Guicharnaud-Tollis (éd.), //Les masques de la vérité dans les discours américains//. Bordeaux : Presses Universitaires de Bordeaux, p. 97-110.
!!!Articles dans des revues avec comités de lecture (ACL)
# 1979 « Le trafic négrier à Cuba de 1818 à 1851 à travers les récits de voyageurs français », Cahiers des Amériques latines, 20, p. 185-196 (série « Sciences de l’Homme »).
# 1980 « La population noire à Cuba au XIXe siècle», Ibero-americana Pragensia (Université Caroline de Prague), 14, p. 67-96.
# 1988 « La commission mixte de La Havane et la répression britannique du trafic négrier à Cuba au XIXe siècle », Revue du C.E.R.C. (Centre d’études et de recherches caraïbéennes, Pointe-à-Pitre), 5, p. 87-107.
# 1990 « Libération et/ou dépendance : l’antiesclavagisme de G. Gómez de Avellaneda », in Hommage à Jaime Diaz Rozzotto, Besançon, Annales littéraires de l’Université de Franche Comté, 416, p. 389-401.
# 1993 « Le café de San Marcos dans la littérature cubaine du XIXe siècle », Caravelle, 61 (Les cultures du café en Amérique latine), p. 137-154.
# 1994 « Notas sobre el tiempo histórico en la ficción: la conquista de México en Guatimozín de G. Gómez de Avellaneda », Cuadernos americanos (México, UNAM), 45/3, p. 88-102.
# 1994 « Le roman de la cubanité au XIXe siècle et la formation de la conscience créole », Espace caraïbe, Talence, Maison des Pays ibériques (« Maison des Pays ibériques » 2), p. 45-7.
# 1994 « Cecilia Valdés de Cirilo Villaverde en v.o. », in Francis Cerdan (éd.), Hommage à Robert Jammes, Toulouse, Presses du Mirail (« Anejos de Criticón », 1/II), p. 507-517.
# 1997 « De donde son los cantantes, au croisement des voies/voix existentielles », Co*Textes (Montpellier), 35 (Le roman néo-baroque cubain : Severo Sarduy, Guillermo Cabrera Infante), p. 155-172.
# 1997 « Voies / Voix africaines dans le discours identitaire cubain », in Marges (Université de Perpignan), 18 , Victorien Lavou Zoungbo (éd.) (n° spécial sur Les Noirs et la construction du discours national identitaire latino américain), p. 49-58.
# 1998 « Note sur un poème inédit de Bonifacio Byrne », Caravelle, 70, p. 247-253.
# 2000 «Métis et métissage dans la littérature cubaine : de l’image à la métaphore », Passerelles, 21 (Louis-Philippe d’Alembert (éd.), La Méditerranée caraïbe), p. 127-135.
# 2001 « Esclavage et introduction des Noirs au Nouveau Monde dans le Memorial de Remedios de B. de Las Casas : une “aberration” ? », Marges, 21, p. 23-41.
# 2001 «Los Cuentos negros de L. Cabrera: desde la tradición hasta la criollización», Caravelle, 76-77 (Hommage à Georges Baudot), p. 549-559.
# 2003 « Los reformistas cubanos en Francia y España a mediados del siglo XIX / Réformistes cubains en France et en Espagne au milieu du XIXe siècle », Cahiers d’histoire des Antilles hispaniques, p. 105-125.
# 2005 « Amor a la patria y anhelo de nación en la cultura colonial cubana del siglo XIX », Ibero-Americana Pragensia, Supplementum 15 (Nación y cultura nacional en el Caribe hispano), p. 33-44.
# 2005 « Hommage à l’artiste Nestor Basterretxea », Bulletin de la Société d’études basques, Eusko Iskakuntza (Saint-Sébastien), 18-X, p. 14-16.
# 2011 « Rencontres et identités culturelles en Amérique latine », Journée des doctorants d’AMERIBER de l’université de Bordeaux 3 à la Maison de l’Homme d’Aquitaine (Salle Jean Borde) le 16 juin 2010, 9 pages. URL : http://ameriber.u-bordeaux3.fr/HTML/DOCTORANTS html.
# 2014 « Transferencias culturales: escribir desde la otra orilla o cómo el cubanoamericano se reinventa », Revista Horizontes Sociológicos [En ligne], AAS | año 2 |N°3, Buenos Aires, Enero-Junio (2014) Dossier « Circulación, transferencias e intercambios de ideas, bienes y capitales en el espacio interamericano y caribeño contemporáneo », p. 88-97, URL: www.aasociologia.org.ar/2014/06/revista-horizontes-sociologicos-n3.html. ISSN 2346-8645
# `2015` «''Introduction''». `In` : Michèle Guicharnaud-Tollis (éd.), //Les masques de la vérité dans les discours américains//, Bordeaux, Presses Universitaires de Bordeaux, p. 11-20.
# `2015` : « ''Le poète et ses masques : « El lunes me llamaba Nicanor'' ». `In` : Michèle Guicharnaud-Tollis (éd.), //Les masques de la vérité dans les discours américains//. Bordeaux : Presses Universitaires de Bordeaux, 2015, p. 97-110.
# `2015` : «''Avant-propos''». `In` : //Gastón Baquero et l’écriture de l’exil (1959-1997)//, Líneas [En ligne], Numéro en texte intégral, 5/ `Janvier 2015` - Gastón Baquero et l’écriture de l’exil (1959-1997), mis à jour le : 06/02/2015. URL : https://revues.univ-pau.fr/lineas/1462.
# `2015` : « ''Lectures de Gastón Baquero, poète entre trois mondes'' », `In` : //Gastón Baquero et l’écriture de l’exil (1959-1997)//, Líneas [En ligne], Numéros en texte intégral, 5/ `Janvier 2015`, mis à jour le 31/01/2015. URL : https://revues.univ-pau.fr/lineas/1506.
# `2015` « ''Ecritures, espaces et imaginaires cubains depuis l'exil''», `Cuba, cultures contemporaines`, Caravelle, `2015`, numéro coordonné par Sylvie Mégevand, p. 93-115. [En ligne], mis en ligne le 05 février 2015 : http://caravelle.revues.org/1772.
# `2017` « ''Ecritures, espaces et imaginaires cubains depuis l’exil'' », `Cuba, cultures contemporaines`, Caravelle, `2015`, 105, numéro coordonné par Sylvie Mégevand, p. 93-115.`Traduit en arabe` par Yacoub Alshammari, //Cultures du Monde//, Koweit, 188, p. 50-62.
# `2018`: « ''Alexandre de Humboldt et Aimé Bonpland, botanistes de l’Amérique hispanique (1799-1804) : de la taxonomie à l’épistémologie'' » Caravelle 110 (`Bêtes et Plantes en Amérique latine (XVIe-XXIe siècle)`, Sylvie Mégevand et Catherine Heymann éds, p. 33-48.
* A paraître
# 2019 : « Victor Schoelcher, graveur de mémoire. Esclaves et esclavage en Amérique autour de 1829 ou Des Noirs (Revue de Paris, 1830) ». In : « Pan-Africanism and Negritude : Dialogues between Africa ant the African Diaspora (past, Present, Future) », International Conference of the Department of World Languages and Cultures, Howard University, Washington DC (Congrès 2016), Cambridge Scholars Publishing.
# `2019`: « ''Entre visibilité et invisibilité des Afro-descendants à Cuba : contribution à l’histoire d’un long combat'' », Journée d’étude coordonnée par Sébastien Lefèvre et Françoise Aubès (ÉA 369 CRIJA-GRELPP), sur « //Réflexion sur le champ d’études hispanistes et la question afro-descendante : enjeux et perspectives// », université de Paris Ouest-Nanterre La Défense, `6 juin 2015`.
!!!Communications dans des colloques avec actes et comités de lecture (ACT)
# 1982 « Sur quelques aspects du négrisme cubain dans la Revista de Avance (1927-1929) », in Les années 30 à Cuba, Paris, L’Harmattan, p. 255-275.
# 1983 « Contribution à l’histoire de Cuba : le Bulletin de la Société de géographie de Paris », in Cuba et la France, Talence, Presses universitaires de Bordeaux, p. 85-125.
# 1985 « Autour du thème noir dans Ecué-Yamba-O d’Alejo Carpentier (réalisme documentaire et archétypes mythiques) », in Hommage à Alejo Carpentier, Talence, Presses universitaires de Bordeaux, p. 101-117.
# 1985 « Puerto Príncipe ou l’essor de la province à Cuba au XIXe siècle», in Mélanges américanistes en hommage à Paul Verdevoye, Paris, Éditions hispaniques, p. 47-78.
# 1990 « La naissance du roman historique à Cuba au XIXe siècle», in Hommage à Claude Dumas, Lille, Presses universitaires de Lille, p. 211-217.
# 1992 « Ramón de La Sagra y su contribución a las ciencias en Cuba (1823-1835) », in Ramón de La Sagra y Cuba, La Coruña, Diputación Provincial de A Coruña, Ed. do Castro, I, 5, p. 97-121.
# 1994 « Un ejemplo de sincretismo temporal: la Conquista de México en Guatimozín de G. Gómez de Avellaneda, », in Jacqueline Covo (éd.), Las representaciones del tiempo histórico, Lille, Presses universitaires (« Travaux et Recherches »), p. 107-115.
# 1995 « Cuba dans la Revue des deux mondes (1830-1869) : du récit de voyage à la réflexion sur la situation politique de l’île », in Europe / Amérique latine : l’Amérique latine en Europe aux XIXe et XXe siècles (oralité, histoire et littérature), Paris, Alfil, p. 315-323.
# 1997 « Écriture et révolution dans De donde son los cantantes de Severo Sarduy », in Nestor Ponce (éd.), Le néo-baroque cubain, Paris, Éditions du Temps, p. 49-66.
# 1997 « Changó, el gran Putas de Manuel Zapata Olivella, novela del espacio intermedio », in Jacqueline Covo (éd.), Espacio, historia e imaginario en el mundo hispánico, Lille, Presses universitaires du Septentrion, p. 275-284.
# 1998 « L’équipage Derosne en Guadeloupe et à Cuba : stratégie scientifico-commerciale française et réticences créoles », in M. Guicharnaud-Tollis (éd.), Le sucre dans l’espace caraïbe hispanophone aux XIXe et XXe siècles : stratégies et représentations (Actes du Colloque international organisé à Pau les 14-15 mars 1997 par le « Groupe de recherche sur l’espace caraïbe hispanophone », sous-équipe de l’EA 1925 de l’UPPA, sur « Le sucre dans l'espace caraïbe hispanophone : XIXe et XXe siècles », 14-15 mars 1997), Paris, L’Harmattan, p. 125-139.
# 1999 « Nación y cultura hispano-cubana a través de la ensayística crítica de J. M. Chacón y Calvo », in Consuelo Naranjo Orovio y Carlos Serrano (ed.), Imágenes recíprocas e imaginarios nacionales: Cuba, Filipinas, Puerto Rico y España a finales del siglo XIX, Actes du colloque international organisé par le C.S.I.C. et par la Casa de Velazquez les 23, 24 et 25 septembre 1998, Madrid: C.S.I.C., p. 235-247.
# 1999 « Bonifacio Byrne (1861-1936), poète cubain de la guerre hispano-cubano-américaine : de Efigies (1897) à Lira y espada (1901) », Textures (Cahiers du CEMIA, Université de Lyon), 5 (L’image de la guerre de 1898 à travers les non combattants. Actes du colloque de Lyon, 16-17 janvier 1998), p. 95-105.
# 2000 « Témoignages sur la caféière, le marronnage et les révoltes d’esclaves à Cuba (région occidentale de la Vueltabajo) du mythe à la réalité », in Jacques Gilard et Christian Tulet (éds), La Flor del café : caféiculteurs de l’Amérique hispanophone, Paris, Karthala, p. 215-235.
# 2001 « Les revues littéraires cubaines au XIXe siècle : l’élite parle aux élites », in Paul Aubert et Jean-Michel Desvois (éds), Les élites et la presse en Espagne et en Amérique latine aux XIXe et XXe siècles, Madrid, Casa de Velázquez et Maison des Pays ibériques, Université de Provence et UMR Telemme, p. 259-271.
# 2002 « Humboldt, segundo Descubridor de Cuba, y la esclavitud », in Thomas Gomez (éd.), Humboldt et le monde hispanique, Paris, Publ. de l’Université de Paris X-Nanterre, p. 229-242.
# 2004 « De la canne à sucre à la cubanité », in Bernard Charlery de la Masselière (éd.), Fruits des terroirs, fruits défendus. Identités, mémoires et territoires, Toulouse, Presses universitaires du Mirail (« Ruralités Nord-Sud »), p. 75-85.
# 2004 « Reflexiones sobre el concepto de democracia a través del reformista José Calixto Bernal y Soto », in En torno a las Antillas hispánicas-Ensayos en homenaje al Profesor Paul Estrade, Las Palmas, Ed. Casa de la Cultura popular canaria (« Taller de historia »), p. 109-121.
# 2005 « La diaspora des intellectuels cubains aux États-Unis : le discours sur l’identité », in Christian Lerat (éd.), Le monde caraïbe : défis et dynamiques, Actes du Colloque organisé à Bordeaux (Maison des sciences de l’homme d’Aquitaine) en 2003, I : Visions identitaires, diasporas, configurations culturelles, p. 483-495.
# 2005 « La “culture créole captive” cubaine au XIXe siècle : mise en perspective et limites du concept », in Regards croisés Cuba / Espagne (XIXe-XXe siècles), textes réunis et présentés par Françoise Moulin-Civil (« Histoire des Antilles hispaniques »), Paris, Publications de l’Université de Paris 8 Vincennes Saint-Denis » (« Travaux et Documents » 29), p. 15-43.
# 2007 « Variations sur l’ “homme nouveau” », in Jean Ortiz (éd.), Che plus que jamais, Biarritz, Atlantica, p. 111-122.
# 2008 «Des écrivains de la Révolution témoignent », in Françoise Moulin-Civil (éd.), Cuba 1959-2006, Révolution dans la culture et culture dans la révolution, Actes du Colloque organisé à l’Université de Cergy-Pontoise par F. Moulin-Civil les 15-16 décembre 2006, Paris, L’Harmattan (« Recherches Amériques latines »), p. 83-93.
# 2008 « L’espace de la critique artistique chez Alejo Carpentier : défense et illustration de la modernité », in Jean LAMORE (éd.), Espaces d’Alejo Carpentier, Actes du Colloque organisé à l’Université de Bordeaux 3 par J. Lamore les 2, 3 et 4 décembre 2004, Presses universitaires de Bordeaux, Collection de la Maison des Pays ibériques AMERIBER-CARHISP, p. 59-72.
# 2009 « La Havane, espace de pouvoirs, puis de contre-pouvoirs : évolution portuaire et projets politiques (1515-1761) », in Nejma Kermele et Bernard Lavallé (éds), L’Amérique en projet. Utopies, controverses et réformes dans l’empire espagnol (XVI-XVIIIe siècles), Paris, L’Harmattan, p. 229-241.
# 2009 «Sobre la antillanía de Luis Palés Matos », in F. Moulin Civil C. Naranjo Orovio, X. Huetz de Lemps (coords), De la isla al archipiélago en el mundo hispano, Madrid, CSIC-Université de Cergy Pontoise, Casa de Velázquez, p. 141-155.
# 2010 « Sur les transferts culturels d’Afrique vers les Caraïbes au XIXe siècle : quelques espaces-culturels-refuges à Cuba», in Ottmar Ette, Gesine Müller (Hg.): Caleidoscopios coloniales. Transferencias culturales en el Caribe del siglo XIX / Kaléidoscopes coloniaux. Transferts culturels dans les Caraïbes au XIXe siècle. Frankfurt, Madrid: Vervuert , Iberoamericana 2010, p.361 -385.
# 2010 « Discours émancipateurs à Cuba au XIXe siècle : entre anti-esclavagisme et anti-colonialisme (1810-1868) », in Elyette Benjamin-Labarthe et Eric Dubesset (éds), Emancipations caribéennes, Histoire, mémoire, enjeux socio-économiques et politiques, Paris, L’Harmattan, p. 125-140.
# 2011 Version CDROM « Transports, communications et chemins de fer à Cuba (1830-1868) : témoignages d’époque et discours sur la modernité » in Bicentenario de las independencias América latina Caribe/Bicentenaire des Indépendances Amérique latine Caraïbes, IHEAL Institut français.
# 2011 « Transports, communications et chemins de fer à Cuba (1830-1868) : témoignages d’époque et discours sur la modernité », in I.Tauzin-Castellanos (éd.), A pied, à cheval, en voiture : l’Amérique indépendante et les moyens de transport, MSHA, Bordeaux, p. 291-302.
# 2011 « L’introduction des esclaves noirs dans le Memorial de Catorce Remedios (1516) de Bartolomé de Las Casas : une “aberration ? », in Victorien Lavou Zoungbo éd., Bartolomé de Las Casas face à l’exclavage des Noir-e-s en Amériques/Caraïbes. L’aberration du Onzième Remède (1516), Presses universitaires de Perpignan, Collection Etudes, p. 33-46.
# 2011 « Tradition, ruptures et création dans la littérature latino-américaine : la question de l’hybridité », in Paul Aubert et Isabelle Rouane Soupault (éds), La littérature dans la recherche et l’enseignement, Aix-en-Provence, PUP, Mondes Ibériques, p. 63-77.
# 2011 « Lectures de Tuyo es el reino d’Abilio Estévez : une esthétique de l’entre-deux et de l’interrogation », in Caroline Lepage et Antoine Ventura (eds), La littérature cubaine de 1980 à nos jours, Presses Universitaires de Bordeaux, p. 119-135.
# 2011 « Del tropicalismo a la antillanidad en la poesía negrista del Caribe hispanohablante », in Catherine Heymann et Modesta Suárez (eds.), Pérégrinations d’un intellectuel latino-américain, Hommage a Rodolfo De Roux, Presses de l’université de Toulouse le Mirail, collections « Méridiennes », p. 287-297.
# 2012 « Sobre la heterogeneidad de la Revista de Avance (1927-1930) o los nuevos paradigmas culturales de la vanguardia cubana” in Fuentes, M. (ed), Tovar, P. (ed), Calle, M.I. (coord.), A través de la vanguardia hispanoamericana, Publicaciones URV, Tarragona, 2011, p.147-158, ISBN 978-84-8424-180-5.
# 2012 « La littérature cubaine au féminin à partir des années 1990 : le discours « impur » contre l’enfermement » in Cecilia González, Caroline Lepage, Laurence Mullaly, Antoine Ventura (éds), Femmes, écritures et enfermements en Amérique latine, , Préface de Mónica Zapata, Bordeaux : Presses Universitaires de Bordeaux, coll. "Maison des Pays Ibériques", série Amériques, 2012, p. 47-69.
# 2012 « Carpentier entre La Havane et Paris : l’américanité en questions (1923-1939), in F. Parisot (éd.), Alejo Carpentier à l’aube du XXIe siècle, Paris, L’Harmattan, 2012, p. 25-35.
# 2012 « Les enjeux de l’histoire et de la mémoire au XXIe siècle ou les migrations africaines dans la Mer des Caraïbes », in M. Dalmace (dir.), La mer Caraïbe, espace de migrations, Presses universitaires de Bordeaux, Collection MPI, Série Amériques, p. 291-304.
# 2012 « Sur l’émigration espagnole à Cuba au XIXe siècle : étude de cas d’un émigré asturien à La Havane (1852-1865), in Laurent Dornel, Michèle Guicharnaud-Tollis, Michael Parsons, Jean-Yves Puyo (éds), Ils ont fait les Amériques. Mobilités, territoires et imaginaires (1776-1930), Presses Universitaires de Bordeaux, Collection Histoire, p. 75-89.
# 2012 Introduction in Laurent Dornel, Michèle Guicharnaud-Tollis, Michael Parsons, Jean-Yves Puyo (éds), Ils ont fait les Amériques. Mobilités, territoires et imaginaires (1776-1930), Presses Universitaires de Bordeaux, Collection Histoire, p. 11-14.
# 2013 « Memoria africana o el sustrato cultural cubano: un balance investigativo a través de la literatura cubana (siglos XIX-XX », V Seminario Internacional de Estudios del Caribe: « Identidad, memoria y cultura » (23-26 de julio, 2003), Cartagena de Indias (Colombia). Mis en ligne en 2013 http://iiecaribe.unicartagena.edu.co/seminarios/V_VISeminario/memoriasVVIPDF/panel LITERATURA y AFROCARIBE/autores/MICHELE GUICHARNAUD-TOLLIS.pdf , 14 p.
# 2014 « Transferencias culturales: escribir desde la otra orilla o cómo el cubanoamericano se reinventa », Revista Horizontes Sociológicos [En ligne], AAS | año 2 |N°3, Buenos Aires, Enero-Junio (2014) Dossier « Circulación, transferencias e intercambios de ideas, bienes y capitales en el espacio interamericano y caribeño contemporáneo », p. 88-97, URL: www.aasociologia.org.ar/2014/06/revista-horizontes-sociologicos-n3.html. ISSN 2346-8645
# 2014 « Quand Les Noirs cubains prennent la parole à Cuba à la fin du XIXe siècle », Colloque « Les Amériques noires : identités et représentations » organisé à l’université Toulouse-jean-Jaurès, 15-18 octobre 2014 [https://www.canal-u.tv/.../quand_les_noirs_cubains_prennent_la_parole_a_la_fin_du_xixe_siecle_michele_guicharnaud_tollis.17539].
# `2015` « ''Faire escale à Cuba pour un voyageur au XIXe siècle'' », `in` Isabelle Tauzin (éd.). //Histoire des itinéraires et des étapes en Amérique latine (XVIe-XXe siècle)//. Bordeaux : MSHA, p. 47-56.
# `2015` « ''Los Pasos perdidos (Le Partage des eaux) d’Alejo Carpentier. Représentations de l’espace américain, réel merveilleux et écriture'' ». `In` : Lionel Dupuy et Jean-Yves Puyo (éds). //De l’imaginaire géographique aux géographies de l’imaginaire. Ecritures de l’espace//. Pau : PUPPA, p. 41-55.
# `2015` « ''De José Martí à la CELAC : De l’antiracisme au multiculturalisme'' ». `In` : Mélanie Moreau et Eric Dubesset (éds). //Cuba dans les Amériques. Relire José Martí au seuil du XXIe siècle, Hommage à Jean Lamore//. Bordeaux : Presses Universitaires de Bordeaux, MPI Série Amériques, p. 385-399.
# `2016` « La invención de América : el poeta cubano « Plácido » en los imaginarios antillanos », in Hommage à Thomas Gomez coordonné par Catherine Heymann, Alvar de la LLosa et Nathalie Jammet-Arias, Universités, académies littéraires et bibliothèques dans les mondes ibériques et ibéro-américain et méditerranéen du XVIIIe siècle à nos jours, Paris : Publications de l’université de Paris Ouest-Nanterre, 2016, p. 313-323.
# 2017 « ''Voix féminines cubano-américaines. Ecritures et identité(s)'' », `in` Barrientos-Tecun, Dante, Reynes-Delobel, Anne (ed.), //Ecritures dans les Amériques au féminin//, Presses universitaires de Provence, 2017 [Online] http://books.openedition.org/pup/6551 ISBN : `9782821895911`.
# 2017 « ''Autour du concept de //pueblo// en Amérique latine : discours et représentations (XIX-XXI siècle)'' », `in` Gérard Gomez, P. Gandoulphe, Théa Picquet (dir.), `Le peuple : théories, discours et représentations`, Revue Cahiers Etudes Romanes, n° 35, Aix-en-Provence : Publication Université Provence, p. 405-419.
*A paraître
# `2019` « Humboldt et l’esclavage : l’Essai Politique sur l’île de Cuba entre réformisme créole et pensée libérale européenne », VIIIème Congrès international et interdisciplinaire “Sciences savoirs et politique : Alexandre de Humboldt et Aimé Bonpland entre Europe et Amérique latine », Institut d’Eudes Politiques de Paris et IHEAL Paris, organisé par Olivier Compagnon, Caroline Castelnau Lestoile et Jakob Vogel, 4 - `7 juillet 2016`.
!!! Comptes rendus critiques, recensions (CR)
# 2013 « Francine AGARD-LAVALLÉ, Bernard LAVALLÉ, Christophe LAVALLÉ, Burdeos y la emigración francesa a Cuba durante el siglo XIX », Caravelle [En ligne], 100 | 2013, mis en ligne le 15 décembre 2013. URL : http://caravelle.revues.org/278
!!! Ouvrages/Direction d’ouvrages
# Emilie GUYARD, Le fantastique dans l’œuvre romanesque de Gonzalo Torrente Ballester (1972-1987), Vigo : Editorial Academia del hispanismo, 2007, 288 p.
# Carmen BECERRA y Emilie GUYARD (eds), Los juegos de la identidad movediza en la obra de Gonzalo Torrente Ballester, Vigo: Editorial Academia del Hispanismo, 2008, 179 p.
# Emilie GUYARD (ed.), ''Formas de lo fantástico en la literatura de Gonzalo Torrente Ballester'', La Tabla Redonda, n°12, 2014, Vigo: Universidad de Vigo, 123 p.
# Emilie Guyard (ed.), ''L’imaginaire social dans le roman noir espagnol et portugais du XXIe siècle'', Binges, Éditions Orbis Tertius (Collection Universitas), `2017`, 236 p.
# Emilie Guyard (ed), ''Roman Noir: espaces urbains et grands espaces'', Líneas [En ligne], Numéros en texte intégral / mis à jour le : `23/12/2017`, URL : https://revues.univ-pau.fr/lineas/2370.
!!!Articles:
# « De la notion d’identité à la notion de propagande: l’exemple de Coca-Cola », Hispanística XX, Vol. 16, , 1998, Dijon, p. 161-171.
# « Poétique du fantastique torrentien : Le paradoxe de la fiction et son dépassement par le traitement narratif de la catégorie du virtuel », Hispanística XX, Vol. 19, 2001, Dijon p. 125-139.
# « Logique des discours profane et sacré dans le récit fantastique contemporain », Hispanística XX, A, Vol. 21, 2003, Dijon, p. 63-77.
# « Reflexiones sobre la recepción de Fragmentos de Apocalipsis en Francia », La Tabla Redonda”, vol. 2, p. 89-96, 2004, Universidade de Vigo.
# « El proceso de metaficcionalización en la génesis de La isla de los jacintos cortados », La Tabla Redonda, Universidade de Vigo, vol. 3, 2005, p. 35-56,.
# « Ecriture et réécriture de la Galice: ‘La cruz de hierro’ de Gonzalo Torrente Ballester », Hispanística XX, Vol. 23, 2006, Dijon, p. 391-410.
# « Des rapports de la mémoire au destin individuel et collectif : Gustavo Martín Garzo, Los amores imprudentes », in Catherine ORSINI-SAILLET (ed.), Mémoire(s), Dijon, EUD, 2008, p. 247-258.
# « El enigma del Yo en Yo no soy yo, evidentemente », in Carmen BECERRA y Emilie GUYARD, Los juegos de la identidad movediza en la obra de Gonzalo Torrente Ballester, Vigo: Editorial Academia del Hispanismo, 2008, p. 113-123.
# « L’écriture de Torrente Ballester: la vérité est dans l’ailleurs », in Marielle DUBOIS-LACOSTE, L’autre dans ses œuvres : de l’en-deça à l’au-delà, Paris, Indigo, 2008, p. 215-229.
# « La re-motivation du monstre dans le récit fantastique contemporain : La rosa de los vientos de Gonzalo Torrente Ballester (1985) », in Francis Desvois (ed.), Le monstre. Espagne et Amérique latine, Paris, L’Harmattan, 2009, p. 485-500.
# « Javier Tomeo: ¿Un Kafka aragonés? », in Anne Charlon et Aránzazu Sarría Buil (eds.), Aragón. Una identidad tierra adentro, Hispanística XX, n°26, Dijon, EUD, 2009, p. 203-215.
# « ''¡Otra maldita novela negra ! : le boom du polar espagnol'' », Les langues Néo-Latines, n°354, septembre 2010, p. 89-109.
# « ''//La Gorgona// de Gonzalo Torrente Ballester : un espacio intertextual y metaficcional'' », Carmen, Becerra (ed), //Miradas sobre Gonzalo Torrente Ballester (1910-2010)//, Vigo, Academia Editorial del Hispanismo, 2011, p. 83-96.
# « ''La réutilisation du topos de la préface fictionnelle dans l’œuvre de Gonzalo Torrente Ballester'' », Hispanística XX, n°27, Dijon, EUD, 2011, p. 167-177.
# « ''La novela negra disparatada de Carlos Salem'' », Javier Sánchez Zapatero y Alex Martín Escribà (eds), //El género negro. El fin de la frontera//, Santiago de Compostela, Andavira, 2012, p. 311-318.
# « ''Para un acercamiento a la recepción de los textos de metaficción'' », Álvarez, Marta, Gil González, Antonio, Kunz, Marco, //Metanarrativas hispánicas//, Berlin, Lit Verlag, 2012, p. 47-59.
# « ''L’identité personnelle comme lieu de l’invention: Camino de ida de Carlos Salem'' », Catherine Orsini-Saillet, Alexandra Palau, //Identité/Altérité dans la culture hispanique aux XXe et XXIe siècles//, Hispanística XX, n°29, Dijon, EUD, 2012, p. 269-282.
# « ''Juan Aparicio-Belmonte'' », Natalie Noyaret (ed), //La narrativa española de hoy (2000-2010), La imagen en el texto (II)//, Bern, Peter Lang, 2012, p. 405-424.
# « ''La reinvención del detective privado'' », Javier Sánchez Zapatero y Alex Martín Escribà (eds), //La (re)invención del género negro//, Santiago de Compostela, Andavira, 2014, p.123-131.
# « ''El cine negro como referente en la novela negra española actual'' », Natalie NOYARET , (ed.), //La narrativa española de hoy (2000-2013), La imagen en el texto (III)//, Bern, Peter Lang, 2014, p. 39-54.
# « ''Ecrire /(en)quêter : la figure du détective-écrivain dans l’oeuvre de Carlos Salem'' », Natalie Noyaret, Anne Paoli (ed.), //L'écrivain à l’œuvre dans le récit de fiction espagnol contemporain//, Binges, Éditions Orbis Tertius (Collection Universitas), `2017`, p. 225-241.
# « ''La Galice racontée au Pays Basque : ‘Iñaqui mi primo, y Dios’'' », Christelle Colin et Rocío Charques Gámez, //La Galice. Identité culturelle et représentations//, Rives, Cahiers de l’Arc Atlantique, n°8, Paris, L’Harmattan, `2017`, p. 73-90.
# « ''//El Tigre Blanco// de Carlos Salem : un cycle romanesque édifiant ?'' », Christine Péres, //Grands auteurs pour petits lecteurs 2. La littérature de jeunesse des grands romanciers//, Collection Hispania, Carnières-Morlanwelz, Lansman Editeur, `2017`, p. 171-189. isbn: `978-2-8071-0164-7`
# «''Introduction''», Líneas [En ligne], Numéros en texte intégral /, `Roman Noir: espaces urbains et grands espaces`, mis à jour le : `23/12/2017`, URL : https://revues.univ-pau.fr/lineas/2370.
# « ''La figure du détective dans la littérature policière : entre mutations historiques et invariants fonctionnels'' », `Conférence inaugurale` du séminaire organisé par le Centre Interlangues – Texte, Image, Langage (EA 4182) de l’Université de Bourgogne et intitulé « //Le détective récurrent: entre intime et société// » `prononcée le 12 février 2016`, `à paraître`.
# « ''L’Espagne “freinée” de Carlos Salem : une allégorie de l’Espagne vide'' », Xavier Escudero (ed.), `L’Espagne vide`, HispanismeS n°11, p. 134-148, URL : http://www.hispanistes.fr/images/PDF/HispanismeS/Hispanismes_11/9.Article-GUYARD-Emilie.pdf
# « ''Espagne : quand la fiction fait le procès de la corruption immobilière'' », `communication` prononcée dans le cadre de la journée d’étude « //Loi et Droit dans les langues et cultures// » organisée à l’USMB le vendredi `18 novembre 2018`. `A paraître`.
[[lien vers HAL|https://hal.archives-ouvertes.fr/]]
[[lien vers HAL-SHS|https://halshs.archives-ouvertes.fr/]]
prépublication, archive institutionnelle
''Modifications'' dans les notices Zotero :
*''langue'' : rajouter le [[code de la langue|Codes de langue]] (fr, en, de...)
*''marqueur'' : `Epublication`
@@color:red;
!!Champs spécifiques HAL [x-fields]
@@
<$details summary="Tous documents">
;x-abstract_fr
:et x-abstract_en (MT HAL : abstract) si on veut spécifier le résumé dans une autre langue (sinon champ abstract)
;x-anrproject
:(MT HAL : anrProject)
;x-classification
:(MT HAL : classification)
;x-collaboration
:(MT HAL : collaboration)
;x-domain
:(MT HAL : domain)
;x-europeanproject
:(MT HAL : europeanProject)
;x-funding
:(MT HAL : funding)
;x-jel
:(MT HAL : jel) : ATTENTION, non pris en compte actuellement
;x-keywords_fr
:et x-keywords_en (MT HAL : keyword) si on veut spécifier les mot-clés dans une autre langue (sinon champ keywords)
;x-licence
:(MT HAL : licence, valeurs possibles : Marque du Domaine Public, Public Domain Mark, Paternité – Pas d’utilisation commerciale – Pas de modification, Attribution – NonCommercial – NoDerivatives, Paternité – Pas d’utilisation commerciale – Partage selon les Conditions Initiales, Attribution – NonCommercial – ShareAlike, Paternité – Pas d’utilisation commerciale, Attribution – NonCommercial, Paternité – Pas de modifications, Attribution – NoDerivatives, Paternité – Partage selon les Conditions Initiales, Attribution – ShareAlike, Paternité, Attribution, CC0 – Transfert dans le Domaine Public, CC0 – Public Domain Dedication, Copyright (Tous droits réservés), Copyright, Domaine public, Public Domain, Licence Ouverte – etalab, Open licence – etalab)
;x-localreference
:(MT HAL : localReference)
;x-mesh
:(MT HAL : mesh)
;x-onbehalfof
:(listes des comptes HAL séparés par ‘;’ pour ajouter les propriétaires au dépôt). Ex: x-onbehalfof={test;identifiant;compte;1}
;x-subtitle
:(MT HAL : subTitle)
;x-title_fr
:et x-title_en (MT HAL : title) si on veut spécifier le titre dans une autre langue (sinon champ title)
;x-writingdate
:(MT HAL : writingDate)
</$details>
<$details summary="@article (ART) = Article">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-peerreviewing
:= {Valeurs possibles:Oui, Yes, Non, No},
;x-language
:= {en},
*''optionnels''
;x-hal_journal_id
:(MT HAL : hal_journal_id)
;x-publisherlink
:(MT HAL : publisherLink)
</$details>
<$details summary="@inproceedings (COMM) = Communication">
*''obligatoires''
;x-conferencestartdate
:= {2015},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-invitedcommunication
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-peerreviewing
:= {Valeurs possibles:Oui, Yes, Non, No},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-proceedings
:= {Valeurs possibles:Oui, Yes, Non, No},
*''optionnels''
;x-conferenceenddate
:(MT HAL : conferenceEndDate)
;x-conferenceorganizer
:(MT HAL : conferenceOrganizer)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
;x-source
:(MT HAL : source)
</$details>
<$details summary="@conference (COMM) = Communication">
*''obligatoires''
;x-conferencestartdate
:= {2015},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-invitedcommunication
:= {Valeurs possibles: Non, No, Oui, Yes},
;x-popularlevel
:= {Valeurs possibles: Oui, Yes, Non, No},
;x-proceedings
:= {Valeurs possibles: Oui, Yes, Non, No},
;x-peerreviewing
:= {Valeurs possibles: Oui, Yes, Non, No},
*''optionnels''
;x-conferenceenddate
:(MT HAL : conferenceEndDate)
;x-conferenceorganizer
:(MT HAL : conferenceOrganizer)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
;x-source
:(MT HAL : source)
</$details>
<$details summary="@presconf (PRESCONF) = Documents associés à des manifestations scientifiques">
*''obligatoires''
;x-conferencestartdate
:= {2015},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-invitedcommunication
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-peerreviewing
:= {Valeurs possibles:Oui, Yes, Non, No},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-proceedings
:= {Valeurs possibles:Oui, Yes, Non, No},
;x-inria_presconftype
:= {Valeurs possibles:Non spécifiée, Not specified, Tutoriel, Tutorial, Présentation, Presentation, Papier court, Short paper, Préface, Preface, Synthèse de conférence, Conference digest, Guest Editorial, Guest Editorial},
*''optionnels''
;x-conferenceenddate
:(MT HAL : conferenceEndDate)
;x-conferenceorganizer
:(MT HAL : conferenceOrganizer)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
;x-source
:(MT HAL : source)
</$details>
<$details summary="@poster = POSTER">
*''obligatoires''
;x-conferencestartdate
:= {2015},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-invitedcommunication
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-peerreviewing
:= {Valeurs possibles:Oui, Yes, Non, No},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
;x-proceedings
:= {Valeurs possibles:Oui, Yes, Non, No},
*''optionnels''
;x-conferenceenddate
:(MT HAL : conferenceEndDate)
;x-conferenceorganizer
:(MT HAL : conferenceOrganizer)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
;x-source
:(MT HAL : source)
</$details>
<$details summary="@incollection (COUV) = Chapitre d’ouvrage">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
*''optionnels''
;x-publisherlink
:(MT HAL : publisherLink)
;x-publicationlocation
:(MT HAL : publicationLocation)
;x-serieseditor
:(MT HAL : seriesEditor)
</$details>
<$details summary="@inbook (COUV) = Chapitre d’ouvrage">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
*''optionnels''
;x-publicationlocation
:(MT HAL : publicationLocation)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
</$details>
<$details summary="@book (OUV) = Ouvrage">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
*''optionnels''
;x-publicationlocation
:(MT HAL : publicationLocation)
;x-publisherlink
:(MT HAL : publisherLink)
;x-serieseditor
:(MT HAL : seriesEditor)
</$details>
<$details summary="@proceedings (DOUV) = Direction d’ouvrage">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
*''optionnels''
;x-conferencestartdate
:(MT HAL : conferenceStartDate)
;x-conferenceenddate
:(MT HAL : conferenceEndDate)
;x-conferenceorganizer
:(MT HAL : conferenceOrganizer)
;x-publisherlink
:(MT HAL : publisherLink)
;x-publicationlocation
:(MT HAL : publicationLocation)
;x-serieseditor
:(MT HAL : seriesEditor)
</$details>
<$details summary="@phdthesis = THESE ou HDR">
*''obligatoires''
;x-director
:={director},
;x-language
:= {en},
;x-title_fr
:= {obligatoire si le titre est en anglais},
;x-title_en
:= {obligatoire si le titre est en français},
;x-abstract_fr
:= {Résumé en français},
;x-abstract_en
:= {Abstract},
;x-keywords_fr
:= {mot1 ; moté2},
;x-keywords_en
:= {word1 ; word2},
;x-filesource
:= {Valeurs possibles: 'author','greenPublisher','publisherAgreement','publisherPaid'},
*''optionnels''
;x-committee
:(MT HAL : committee)
;x-thesisSchool
:(MT HAL : thesisSchool)
</$details>
<$details summary="@misc (OTHER) = Autre publication">
*''obligatoires''
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-popularlevel
:= {Valeurs possibles:Non, No, Oui, Yes},
*''optionnels''
</$details>
<$details summary="@techreport (REPORT) = Rapport">
*''obligatoires''
;x-language
:= {en},
;x-reporttype
:={Valeurs possibles:Rapport de recherche, Research Report, Rapport Technique, Technical Report, Contrat, Contrat, Stage, Stage, Interne, Interne, Travaux universitaires, Univ works, Autre, Other},
*''optionnels''
</$details>
<$details summary="@manual (REPORT) = Rapport">
*''obligatoires''
;x-language
:= {en},
;x-reporttype
:= {Valeurs possibles:Rapport de recherche, Research Report, Rapport Technique, Technical Report, Contrat, Contrat, Stage, Stage, Interne, Interne, Travaux universitaires, Univ works, Autre, Other},
*''optionnels''
</$details>
<$details summary="@patent (PATENT) = Brevet">
*''obligatoires''
;x-country
:={FR},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
x-language = {en},
*''optionnels''
</$details>
<$details summary="@unpublished (UNDEFINED) = Document sans référence de publication (preprint)">
*''obligatoires''
;x-language
:= {en},
*''optionnels''
</$details>
<$details summary="@mastersthesis –> MEM = Mémoire">
*''obligatoires''
;x-inria_degreetype
:={Valeurs possibles:Mémoire de Master 2, Master thesis 2, Mémoire de Master 1, Master thesis 1, Mémoire d'Ingénieur, Engineering school master thesis, Rapport de stage de Master 2, Master 2 probation report, Mémoire de D.E.A., D.E.A. Master thesis, Mémoire de Master 2 Pro, Professional master thesis 2, Mémoire de Master 1 Pro, Professional master thesis 1, Mémoire de Maîtrise, Master thesis, Mémoire de D.U., University degree probation report, Rapport de stage de Master 1, Master 1 probation report, Mémoire du Conservatoire national des arts et métiers (Cnam), Cnam probation report, Mémoire de D.E.S.S., D.E.S.S Master thesis, Rapport final de Travail de Fin d'Etudes, Final report of studies end},
;x-director
:={director},
;x-audience
:= {Valeurs possibles:Internationale, International, Nationale, National, Non spécifiée, Not set},
;x-language
:= {en},
;x-inria_directoremail
:= {alain.monteil@inria.fr},
;pdf
:= {https://hiepacs/files/2015/MasterHiep.pdf},
;x-filesource
:= {Valeurs possibles: 'author','greenPublisher','publisherAgreement','publisherPaid'}
*''optionnels''
;x-city
:(MT HAL : city)
;x-committee
:(MT HAL : committee)
</$details>
<$details summary="@note (NOTE) = Note de lecture">
*''obligatoires''
;x-language
:= {en},
*''optionnels''
;x-hal_journal_id
:(MT HAL : hal_journal_id)
;x-publisherlink
:(MT HAL : publisherLink)
</$details>
@@color:red;
!! Documentation HAL
@@
* [[Equivalence types BibTeX/types HAL|https://doc.archives-ouvertes.fr/bib2hal/equivalence-types-bibtextypes-hal/]] [types de doc/publi]
* [[Description des champs BibTeX et équivalence avec les MT de HAL|https://doc.archives-ouvertes.fr/bib2hal/description-des-champs-bibtex/]]
* [[Champs BibTeX obligatoires/optionnels par type de document|https://doc.archives-ouvertes.fr/bib2hal/champs-bibtex-obligatoiresoptionnels-par-type/]]
* [[BibTeX – Exemple de fichier et spécificités|https://doc.archives-ouvertes.fr/bib2hal/bibtex-exemple/]]
@@color:red;
!! X2HAL
@@
* [[Créer un import BibTeX|https://doc.archives-ouvertes.fr/bib2hal/creer-un-import-bibtex/]]
* [[Analyse du bibtex|https://doc.archives-ouvertes.fr/bib2hal/analyse-du-bibtex/]]
* [[pad de la visio CasuHAL imports - décembre 2018|https://etherpad.in2p3.fr/p/casuhal_imports]]
!!! Chapitres d’ouvrage (OS)
# HAPEL F. (2014) «''Quand les pratiques corporelles sollicitent les compétences langagières: arts du cirque et enseignement du français avec des enfants allophones''.» in LECLERE M., NARCY-COMBES J-P., (dir) Enseigner les langues aux enfants en contexte scolaire. Diversité des approches et outils d’enseignement. Riveneuve éditions. pp. 31-51. ISBN : 978-2-36013-240-9.
# HAPEL F., (2012): «''Didactique de l’EPS et didactique des langues: quels liens?''» in BELHADJIN A., BISHOP M.-F., ELALOUF M.-L., ROBERT A., (dir) Les didactiques en questions. Etat des lieux et perspectives pour la recherche et la formation. Editions De Boeck. pp. 159-170. ISBN: 978-2-8041-7117-9.
!!! Articles dans des revues internationales avec comité de lecture (ACL)
# HAPEL F., (2010): «''Projet cirque et apprentissage du français''.» in Les langues modernes N°2 – 2010 : Pratiques artistiques et pratiques langagières: quelle synergie? ISSN 0023-8376.
!!! Communications avec actes dans un colloque international à comité de sélection (ACTI)
# Colloque international de l’Université de Cergy-Pontoise `7-8 octobre 2010`: Les didactiques en questions | Titre de la communication: ''Didactique de l’EPS et didactique des langues: quels liens?''
# Colloque international de l’ACEDLE 10-12 décembre 2009: Recherches en didactique des langues: «Les langues tout au long de la vie» | Titre de la communication: Un projet cirque en CLIN: Quels effets sur l’apprentissage du français?
!!! Poster
# ''Des pratiques physiques pour enseigner la langue à l’Université''. Présenté le `20 janvier 2017` au colloque de l’ACEDLE à Bordeaux.
!!! Publications et production scientifique :
# `MANN, Heinrich`, ''Le Roman d’Henri IV'' (vol. I : La jeunesse du Roi vol. II : Le temps de l’accomplissement), `réédition` mise en œuvre et `traduction` revue par Hans Hartje, avec pour le t. I, une préface de François Bayrou, une présentation de Lionel Richard et une `postface` (p. 605-607) de Hans Hartje, et pour le t. II, une `postface` (p. 759-785) de Hans Hartje. Paris, Ed. PETRA, `2015` resp. `2016`
# ''//Il Sopravvissuto// d’Antonio Scurati ou « prof », un métier à hauts risques'' `in` Stefano Lazzaroni et Agnès Morin (ss la dir), « //Maîtres, précepteurs et pédagogues. Figures de l’enseignant dans la littérature italienne// » (`actes` du Colloque international de Saint-Etienne, 12-13 février 2015), Berne et al., Peter Lang, `2017`, p. 331-340
!!! Diffusion des travaux (rayonnement et vulgarisation) :
* `2018`
# JE « //Diversifier les approches - Les pratiques de vérité et de réconciliation dans les sociétés émergeant de situations violentes ou conflictuelles// » (Pau, 22 novembre 2018) : ''Espagne: de la mémoire historique à l’histoire-mémoire''
* `2017`
# JE « //Perec et le son (Génération Perec, 2)// » (Paris, 20 mai 2017) : ''participation à une table ronde''
* `2016`
# JE « //Mémoire de vaincus, Mémoire de vainqueurs dans le bassin méditerranéen (de l’Antiquité au XXIe siècle) : la littérature à l’épreuve du conflit// », Nantes 10 novembre 2016 : ''La mémoire en miettes de la guerre d’Espagne (de Javier Cercas à Lydie Salvayre)'' (`actes à paraître`)
# conférence (Università degli Studi di Parma, Italie, 12 avril 2016) : ''Parma Perec''
# conférence (Università degli Studi di Parma, Italie, 12 avril 2016) : ''Il Sopravvissuto d’Antonio Scurati ou « prof », un métier à hauts risques''
# conférence (Università degli Studi di Parma, Italie, 13 avril 2016) : ''Heinrich Mann, ein moderner Klassiker ?''
# `évaluation` d’un article pour la revue Temps Zéro. Ecritures contemporaines. Poétiques, esthétiques, imaginaires
* `2015`
# JE « //L’homme et ses masques en Occident de l’Antiquité à nos jours// » (Pau, 13 avril 2015) : ''D’un garçon qui jouait – et joue toujours – à la poupée''
# Colloque international « //La critique à l’écran. 1ère édition : les arts plastiques// » (Pau, 8-10 octobre 2015) : ''Les arts dans les documentaires de Wim Wenders''
# café littéraire, MIAL (Pau, 23 juin 2015) : ''L’enfance, le retour''
# café littéraire, MIAL (Pau, 20 octobre 2015) : ''La muse et la machine''
# conférence, Les Idées mènent le monde (Pau, 22 novembre 2015) : ''Enfance et roman''
* `2014`
# JE « Actualité de la recherche en radiolittérature (France, XXe-XXIe siècles) », Montpellier 13 juin 2014 : Quelques réflexions inspirées de la lecture de Rudolf Arnheim, Radio (Van Dieren Editeur, 2005), Alain Veinstein, Radio sauvage (Seuil 2010) et Thomas Baumgartner, Le goût de la radio et autres sons (Mercure de France, 2013)
# conférence, Lycée français de Shanghai (28 octobre 2014) : Espèces d’espaces perecquiens
# atelier d’écriture, Lycée français de Shanghai (29 octobre 2014) : Ecritures oulipiennes
# conférence, Shanghai International Studies University (SISU, Shanghai, Chine : 30 octobre 2014) : Georges Perec, écrivain oulipien
# café littéraire, MIAL (Pau, 7 novembre 2014) : Berlin, du Ciel divisé (Christa Wolf) à Vies nouvelles (Ingo Schulze) – histoires d’une ville-île devenue ville-monde
# conférence, Les Idées mènent le monde (Pau, 22 novembre 2014) : Du bonheur d’enseigner
*https://www.idref.fr/101045654
**`Ibáñez, Isabel`
**`Ibañez-Inchaurrondo, Ianez` [Variante de point d'accès]
!! Site Web
!! Publications
!!! Direction d’ouvrages et de numéros de revue (DO)
# Similitud y verosimilitud en el teatro del siglo de Oro. Vraisemblance et ressemblance dans le théâtre du Siècle d’Or espagnol, Pamplona, EUNSA, 2005, 376 p.
# Pouvoirs et écritures - L'Autre en question dans l'ère hispanique, Líneas, revue interdisciplinaire d’études hispaniques [En ligne], Numéros en texte intégral, 1 / décembre 2011 - Pouvoirs et écrtitures, mis à jour le : 27/01/2012.
# Enrique Duarte, J.; Ibánez, Isabel (eds.).''El hombre histórico y su puesta en discurso'', New-York, IDEA, `2015`. ISBN: 978-1-938795-07-7.
# Ibáñez Isabel et Laplace-Claverie Hélène (éds). ''Quel espace pour quel théâtre ? Approche croisée des dramaturgies françaises et hispaniques (XVIe-XXe siècles)'', Berne, Peter Lang, `2017`, 253 p. ISBN : 978-3-0343-3073-2
!!!Ouvrages scientifiques (ou chapitres) (OS)
# « ''Texto dramático escrito y texto representado. Tirso y la rivalidad autor/vs/ poeta ''», `in` Blanca Oteiza (ed.), //Prosas y versos de Tirso de Molina//, Madrid / New York, Instituto de Estudios Indianos (IET) / Instituto de Estudios Auriseculares (IDEA), `2015` (Publicaciones del Instituto de Estudios Tirsianos, 23), p. 75-88.
# « ''La Historia desmemoriada: Sor Juana de la Cruz y la cruzada anti-protestante. Historia y avatares de una santidad de circunstancia'' », `in` Enrique Duarte, J., Ibánez, Isabel (eds.). //Persona y personaje : el Homo historicus y su puesta en discurso en el Siglo de oro//, New-York, IDEA, `2015`, p. 65-77.
# « ''El entramado teológico religioso de La santa Juana de Tirso de Molina'' », `in` Blanca Oteiza, ed., //La santa Juana y el mundo de lo sagrado//, New-York-Madrid: IGAS-IDEA, `2016`, p. 49-59.
# Tirso de Molina, ''La santa Juana. Primera parte'', `ed.` Isabel Ibáñez, Madrid / Pamplona / New York, Instituto de Estudios Auriseculares (IDEA) / Instituto de Estudios Tirsianos (IET), `2016` (Publicaciones del Instituto de Estudios Tirsianos, 26). ISBN: 978-1-938795-31-2.
# Ibáñez, Isabel et Laplace Claverie, Hélène, « ''Introduction'' » `in`: Ibáñez Isabel et Laplace-Claverie Hélène (éds). //Quel espace pour quel théâtre ? Approche croisée des dramaturgies françaises et hispaniques (XVIe-XXe siècles)//, Berne, Peter Lang, `2017`, 253 p. ISBN : 978-3-0343-3073-2.
!!! Articles dans des revues avec comité de lecture (ACL)
# « Pues no sé qué voy a opinar, que mi vida es como un sueño, ou comment ne pas devenir un être de fiction », Les Langues Néo-latines, n° 314, 3ème Tr. 2000, p. 7-41.
# « ¡ Ay Carmela ! : le Grand Théâtre du Monde à l'écran », Co-textes, n° 37, 2001, p. 31-77.
# « Inversion et spécularité dans les « comédies de tyrans » de Tirso de Molina », Bulletin Hispanique, n° 2, Décembre 2005, p. 347-432.
# « Avant-propos », Líneas [En ligne], Numéros en texte intégral, 1 / décembre 2011 - Pouvoirs et écritures, mis à jour le : 21/05/2012.
# « De l’union sacrée et de l’identité dans deux comédies de batailles : El Brasil restituido de Lope de Vega et Pérdida y restauración de la Bahía de Todos Santos de Juan Antonio Correa », Líneas [En ligne], Numéros en texte intégral, 1 / décembre 2011 - Pouvoirs et écritures, mis à jour le : 27/01/2012.
# « Tirso de Molina "A don Martín Artal de Alagón, conde de Sástago, capitán de la Guarda Tudesca, etc." », in Tirso de Molina Quinta parte de comedias del maestro Tirso de Molina, Madrid, en la Imprenta Real, a costa de Gabriel de León, mercader de libros, 1636, in-4°, 1 p., URL : http://bibliotecadigitalhispanica.bne.es:80/webclient/DeliveryManager?pid=2697905&custom_att_2
# « Tirso de Molina, "A ti solo" », in Tirso de Molina Quinta parte de comedias del maestro Tirso de Molina, Madrid, en la Imprenta Real, a costa de Gabriel de León, mercader de libros, 1636, in-4°.
# « ''Construcción del espacio inaugural y programa dramático : el caso de La santa Juana de Tirso de Molina'' », Tintas. Quaderni di letterature iberiche e iberoamericane, 5, `2015`, p. 63-76, disponible sur : http://riviste.unimi.it/index.php/tintas
# « ''Le fils de ses oeuvres : Don Juan, l’Abuseur de Séville''», Líneas [En ligne], Numéros en texte intégral, 9/ Décembre `2016` - `Filiation, imaginaires et sociétés, Partie I - Des lignages matriciels`, mis à jour le : 03/03/2017, URL : https://revues.univ-pau.fr/lineas/2158
# « Les altérations du temps dans le Burlador ou le second terme du mythe de Don Juan», communication à la journée d'études : El burlador de Sevilla : anatomie d'un mythe, le 8 décembre 2014, organisée par le GRIAL-Ameriber à l'Université de Bordeaux III, Michel de Montaigne (Publication dans le Bulletin Hispanique `à paraître`)
!!!Communications dans des colloques avec actes et comités de lecture (ACT)
# « De l'apariencia au signe en passant par la imagen dans l'œuvre dramatique de Tirso de Molina », in Images et Divinités, Actes du colloque du GRIMH des 16-17-18 Novembre 2000 à Lyon, Les cahiers du Grimh 2, Lyon, Université Lumière-Lyon 2, 2001, vol. 1, p. 135-142.
# « La Sancta Juanna de Tirso de Molina : un théâtre militant », in Daniel Meyran, Alejandro Ortiz, Francis Suréda (ed.), Théâtre et Pouvoir, Actes du IVe Colloque International sur le "théâtre hispanique, hispano-américain et mexicain en France", 8, 9, 10 octobre 1998, Perpignan, Université de Perpignan, Presses Universitaires de Perpignan, 2002, p. 103-122.
# « La música instrumental en la obra dramática de Tirso de Molina », in La Musique dans le Théâtre et le Cinéma espagnols, Actes du colloque organisé par le LLREBEC de l’UPPA, 28 et 29 janvier 2000, Pau, Fédérop, 2002, p. 15-34.
# « La Ninfa del Cielo de Tirso de Molina ou la violence faite écriture », in Délits, violences et conflits dans la littérature espagnole (Hommage au Professeur Claude Allaigre). Paris : L’Harmattan, 2004, p. 101-152.
# « Le Théâtre hagiographique au cœur de la controverse sur la licéité du théâtre. Une poétique en “actes” », in Marc Vitse et Ignacio Arellano (dir.), L’hagiographie entre histoire et littérature. Espagne, Moyen Âge et Siècle d’Or, Actes du Colloque International du L.E.M.S.O.-FRAMESPA, Toulouse, les 10, 11 et 12 octobre 2002, Toulouse, Madrid/Frankfurt am Main, Universidad de Navarra-Iberoamericana-Verbuert, 2005, p. 725-739.
# « La sancta Juanna de Tirso de Molina y sus refundiciones : propuestas para un estudio comparativo », in Carlos Mata, Miguel Zugasti (eds.), El Siglo de Oro en el nuevo milenio, Actas del congreso « El siglo de Oro en el nuevo milenio », Pamplona, EUNSA, 2005, Tomo I, p. 867-876.
# « Los Cigarrales de Toledo de Tirso de Molina, o la noción de verosimilitud con el ejemplo », in Isabel Ibáñez (coord.), Similitud y verosimilitud en el teatro del siglo de Oro. Vraisemblance et ressemblance dans le théâtre du Siècle d’Or espagnol, Pamplona, EUNSA, 2005, p. 309-328.
# « Propuestas para un estudio dramático de la polimetría en las comedias tirsianas : el caso de la quintilla. », in Ignacio Arellano (ed.), Ramillete de los gustos Burlas y veras en Tirso de Molina, Burgos, Fundación Instituto Castellano y Leonés de la Lengua, 2005, p. 233-247.
# « Création et diffusion d’images du pouvoir en Espagne sous Philippe IV : l’exemple du Salón de Reinos du Buen Retiro », in J-Pierre Castellani et Mónica Zapata (ed.), Texte et image dans le monde ibérique et ibéro-américain, Actes du VIIe Colloque international du C.I.R.E.M.I.A, Tours les 14, 15 et 16 Mars 2002, Tours, Presses Universitaires François Rabelais, 2007, p. 337-349.
# « La fingida Arcadia de Tirso de Molina: una poética de corte cervantino in J.M. Garrido, L. Albuquerque (coord.), Quijote y el pensamiento teórico-literario, Actas del Congreso del 20-24 de junio de 2005: « El pensamiento Teórico-literario ante el Quijote », Madrid, C.S.I.C., 2008, p. 187-200.
# « Les modalités de la rencontre dans El Burlador de Sevilla de Tirso de Molina », in Philippe Meunier, Jacques Soubeyroux (dir.), Stratégies de l’encuentro et du desencuentro dans les textes hispaniques, Actes du colloque des 8, 9 et 10 juin 2006, Saint-Etienne, Publications de l’Université de Saint- Etienne, 2008, p. 175-196.
# « El entramado textual de la trilogía de La Santa Juana : status quaestionnis », in B. Oteiza (ed.), Grande Inventor de Quimeras. Los mundos dramáticos de Tirso de Molina, Fundación Instituto Castellano y Leonés de la Lengua, Colección Beltenebros, 18, 2008, p. 69-79.
# « Lettres et billets dans le théâtre de Tirso de Molina : à la croisée du dramatique et du poétique », in M. Güell et M F Déodat (éds), Le plaisir des formes dans la littérature espagnole du Moyen-Âge et du Siècle d’Or-El placer de las formas en la literatura medieval y del Siglo de Oro, Toulouse, CNRS-Ed Toulouse-Le Mirail, 2008, p. 239-255.
# « L’étrange et le merveilleux dans le théâtre religieux de Tirso ou comment rendre lisible l’indicible », Colloque International : Des aux-delàs à l’œuvre (de l’œuvre aux-delàs) tenu à Pau les 18-19-20 Novembre 2004. In Marielle Dubois-Lacoste (dir.), L’autre dans ses œuvres : de l’en-deçà à l’au-delà, Paris, Indigo et Côté Femmes, 2009.
# « Los manuscritos de La Santa Juana », communication au Congreso Internacional « La comedia española en sus manuscritos », Università degli Studi di Parma, Universidad de Castilla-La Mancha (Instituto Almagro de teatro clásico), TC/12 (Proyecto Consolíder CSD 2009-00033), Parma, 17-19 octobre 2013, in Milagros Rodríguez Cáceres, Elena Elisabetta Marcello, Felipe B. Pedraza Jiménez, La comedia española en sus manuscritos, Cuenca, Ediciones de Castilla-La Mancha, 2014, p. 107-123.
# « ''Historia(s) de amor y amistad: Como han de ser los amigos y El amor y la amistad de Tirso de Molina'' », communication au Colloque International AITENSO, Aix-en-Provence (25-27 septembre 2013), `in` Isabelle Rouane Soupault, Philippe Meunier, Tiempo e historia en el teatro del Siglo de Oro, Aix-en-Provence, Presses universitaires de Provence, `2015`, p. 334-341.
# « ''El paratexto de Deleitar aprovechando de Tirso de Molina: ¿acto de sumisión o evolución estética personal?'' », communication au Colloque International « Le paratexte théâtral face à l’auctoritas : entre soumission et subversion. Regards croisés en Italie, France et Espagne aux XVIe et XVIIe siècles », Université de Saint-Étienne, 14-15 novembre 2013 (Projet ANR-IDT-Idées du Théâtre, piloté par Marc Vuillermoz),`in` Anne Cayuela, Françoise Decroisette, Bénédicte Louvat-Molozay, Marc Vuillermoz, //Préface et critique : Le paratexte théâtral en France, en Italie et en Espagne (XVIe et XVIIe siècles)//, Paris, Armand Colin, 2014, « Littératures classiques », n° 83.
# « De la charlatanerie à l'enredo ou comment apprendre les règles de l'art : El amor médico (vers 1622) de Tirso de Molina », communication au Colloque Théâtre et charlatans aux XVIIe et XVIIIe siècles. Un art de la mise en scène ? Organisé à l'université de Paris III-Sorbonne Nouvelle les 24 et 25 avril 2014 par Université de Paris 3-EA 174, « Formes et Idées de la Renaissance aux Lumières » (article `sous presse`).
# « ''De l’incompatibilité entre hagiographie et tragédie : La Ninfa del Cielo de Tirso de Molina'' » communication au Colloque, La tragédie et ses marges. Penser le théâtre sérieux en Europe (XVIe-XVIIe siècles), `19-20 mars 2015` à l'Université Paris Sorbonne organisé par Florence D'Artois (Paris Sorbonne) et Anne Teulade (Université de Nantes), Programme IUF (`actes à paraître`).
!!! Conférences invitées (INV)
# : Ibáñez Isabel, « ''L'apariencia hagiographique et sa vérité dans l'univers dramatique de Tirso de Molina'' », conférence prononcée dans le cadre du Séminaire du CRES, Université Sorbonne Nouvelle - Paris 3 : « "L'Espagne des apparences XVIe et XVIIe siècles", le `6 février 2017`.
<<RowTable '[tag[Alter]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]][[équipe]]'>>
<<RowTable '[tag[CATT]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[CDRE]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[CRAJ]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[DMEX]tag[publiant]]' '[[équipe]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[ECOBIOP]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[EXPERICE]tag[publiant]]' '[[labo]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]][[équipe]]'>>
<<RowTable '[tag[IE2IA]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]]'>>
<<RowTable '[tag[IFTJ]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]][[équipe]][[labo]]'>>
<<RowTable '[tag[Iker]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[IPREM]tag[publiant]]' '[[équipe]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[IRAA]tag[publiant]]' '[[labo]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[ISCJ]tag[publiant]]' '[[équipe]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[ITEM]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
Vérifications le `29-03-2019`
<<RowTable '[tag[LATEP]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[LFCR]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[Lirem]tag[publiant]]' '[[labo]][[équipe]] [[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
---
|!nom|!prénom|!idhal_s|!idhal_i|!ind|!absent|!orcid|
|@@color:green; ''CARASSUS'' @@|David|`david-carassus`|599097|||0000-0001-9137-5470|
|CARGNELLO-CHARLES|Emmanuelle|||`11398964`, `601938`||0000-0002-5126-735X|
|CHAMARD|Camille|||`11227567`, `572542`||0000-0002-8526-1175|
|@@color:red;''CUEILLE-RENUCCI''@@|Sandrine||||oui|0000-0003-1564-336X|
|FALL|Amar|||`771368`||0000-0001-5176-9176|
|@@color:green;''FRANCHISTEGUY-COULOUME''@@|Isabelle|`isabelle-franchisteguy-couloume`|171672|||0000-0002-3596-7241|
|@@color:green;''GREGORIO''@@|Georges|`georges-gregorio`|171907|||0000-0002-4556-3996|
|@@color:green;''GRILLAT''@@|Marie-Laure|`marie-laure-grillat`|172497|||0000-0002-1578-0332|
|GUILLON|Bernard|||`11262293`, `773855`|||
|HMAIDA|Jouba|||`773321`||0000-0002-1879-932X|
|@@color:red;''JAMBES''@@|Jean-Pierre||||oui||
|@@color:green;''LARTIGUE''@@|Véronique|`veronique-lartigue`|172419|||0000-0003-2421-7741|
|@@color:green;''MACHAT''@@|Karim|`karim-machat`|171923|||0000-0002-5531-8126|
|@@color:red;''MARIN''@@|Pierre||||oui|0000-0003-1983-7444|
|@@color:yellow;''MENDY-BILEK''@@|Gisèle|`gisele-mendy-bilek`|171996|`79725`||0000-0002-4508-7571|
|@@color:green;''MENGI''@@|Meriem|`meriem-mengi-elayoubi`|`173320`||oui|0000-0002-8722-4503|
|@@color:yellow;''MERIGNAC''@@|Olivier|`olivier-merignac`|172005|`1261134`|||
|NEVEU|Jean-Pierre|||`81816`|||
|OSPITAL|David|||`11293767`|||
|@@color:green;''PINOS''@@|Fabienne|`fabienne-pinos`|171193|||0000-0002-5172-6317|
|@@color:green;''RECASENS''@@|Gilles|`gilles-recasens`|172772||||
|@@color:yellow;''RENUCCI''@@|Antoine|`antoine-renucci`|19209||||
|RICAUD|Camille|||`811315`|||
|@@color:green;''SAFY-GODINEAU''@@|Fatéma|`atema-safy-godineau`|172979||||
<<RowTable '[tag[LIUPPA]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]]'>>
<<RowTable '[tag[LMAP]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[équipe]]'>>
<<RowTable '[tag[MEPS]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[NuMéA]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[Passages]tag[publiant]]' '[[labo]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[PDP]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<<RowTable '[tag[publiant]]' '[[labo]][[idhal_s]][[idhal_i]][[ind]][[orcid]][[idref]][[note]]'>>
Vérifications le `29-03-2019`
<<RowTable '[tag[SIAME]tag[publiant]]' '[[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]][[équipe]]'>>
<<RowTable '[tag[TREE]tag[publiant]]' '[[labo]] [[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
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
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/IE2IA]]][[[Membres|https://ie2ia.univ-pau.fr/fr/organisation/membres.html]]][[[idHAL|idHAL-IE2IA]]]
@@
<<list-links [tag[IE2IA]tag[publiant]]>>
<$details summary="Doctorants">
# AHMADI Djalil (dir. O. LECUCQ)
# BUSI Ségolène (dir. J.-P. MASSIAS)
# ETCHANDY Argitxu (dir. J.-P. MASSIAS)
# FERRAN Paco (dir. J.-P. MASSIAS)
# GUELLE Pauline (dir. J.-P. MASSIAS)
# GUERRERO Elie (dir. O. LECUCQ)
# JLASSI Safa (dir. J.-P. MASSIAS)
# LARBI Fayçal (dir. J.-P. MASSIAS)
# LUEMBA António (dir. O. LECUCQ)
# MARTINS Maverick (dir. O. LECUCQ)
# MAYA Antton (dir. J.-P. MASSIAS)
# OMOALI BOWAO Quionie Rebecca (dir. J.-P. MASSIAS)
# PARJOUET Claire (dir. J.-P. MASSIAS)
# TRISIN Olga (dir. J.-P. MASSIAS)
# VERON Noémie (dir. H. ALCARAZ)
# VIVAS BARRERA Tania (dir. H. ALCARAZ)
# ZABALETA Eneritz (dir. J.-P. MASSIAS)
</$details>
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
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/IFTJ]]][[[Membres|https://XXXXX.univ-pau.fr/fr/organisation/membres.html]]] + [[[idHAL|idHAL-IFTJ]]]
@@
!!! Liste des Publiants
<<list-links [tag[IFTJ]tag[publiant]]>>
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/IKER]]][[[Membres|https://www.iker.cnrs.fr/-organigramme-.html]]] + [[[idHAL|idHAL-IKER]]]
@@
!!! Liste des Publiants
<<list-links [tag[Iker]tag[publiant]]>>
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
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@ | tampid #@@color:yellow;background-color:black;{{!!tampid}}@@ | [[membres (page du labo)|https://iprem.univ-pau.fr/fr/iprem/membres.html]] | [[Collection HAL UMR|https://hal-univ-pau.archives-ouvertes.fr/IPREM]] | [[idHAL|idHAL-IPREM]]
@@
!!! Liste des Publiants
<<list-links "[tag[IPREM]tag[publiant]]">>
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@ | Pas de Collection HAL | [[[Membres|https://iraa.cnrs.fr/annuaire/]]] + [[[idHAL|idHAL-IRAA]]]
@@
!!! Liste des Publiants
<<list-links [tag[IRAA]tag[publiant]]>>
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@| tampid #@@color:yellow;background-color:black;{{!!tampid}}@@ | Pas de Collection HAL | [[[Membres|https://edpc.univ-pau.fr/fr/organisation/membres.html]]] + [[[idHAL|idHAL-ISCJ]]]
@@
!!! Liste des Publiants - EDPC
//Equipe de Droit Pénal et de Criminologie (EDPC)//
<<list-links [tag[ISCJ]tag[publiant]]>>
[[lien vers Isidore|https://isidore.science/]]
''Domaine'' : sciences humaines et sociales
Bonnes métadonnées
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/ITEM/]]][[[Membres|https://item.univ-pau.fr/fr/organisation/membres.html]]][[[idHAL|idHAL-ITEM]]]
@@
!!! ''Membres permanents''
# [[Allinne, Jean-Pierre]] Histoire du droit / PR émérite
# [[Bessac-Vaure, Stève]] Histoire contemporaine / ATER
# [[Bidot-Germa, Dominique]] Histoire médiévale / MC
# [[Bidouze, Frédéric]] Histoire moderne / MC
# [[Bottin, Béatrice]] Études hispaniques / PRCE
# [[Buron Brun, Bénédicte de]] Espagnol / MC
# [[Cabrero-Ravel, Laurence]] Histoire de l'art / MC
# [[Callegarin, Laurent]] Histoire et archéologie / MC
# [[Caporossi, Olivier]] Histoire moderne / MC
# [[Champagne, Alain]] Archéologie / MC
# [[Chareyre, Philippe]] Histoire moderne / PR
# [[Daumas, Maurice]] Histoire moderne / PR émérite
# [[Delpech, Viviane]] Histoire de l’art contemporain - Patrimoine / Post-Doc
# [[Duplaà, Françoise]] Secrétariat / TECH
# [[Dussol, Dominique]] Histoire de l'art / PR émérite
# [[Dornel, Laurent]] Histoire contemporaine / MC
# [[Forero-Mendoza, Sabine]] Histoire de l'art / PR
# [[Guinle-Lorinet, Sylvaine]] Histoire contemporaine / MC
# [[Harai, Dénes]] Histoire Moderne / Post-Doc
# [[Heiniger-Casteret, Patricia]] Occitan - Ethnologie / MC
# [[Jalabert, Laurent]] Histoire contemporaine / PR
# [[Kouvouama, Abel]] Anthropologie / PR
# [[Lamazou, Véronique]]-Duplan Histoire médiévale / MC
# [[Lamothe, Mathilde]] Anthropologie / Post-Doc
# [[Le Couédic, Mélanie]] Archéologie / IGR
# [[Manauté, Benoît]] Histoire de l'art / ATER
# [[Manso, Christian]] Littérature contemporaine espagnole / PR émérite
# [[Pereira, Victor]] Histoire contemporaine / MC
# [[Poueyto, Jean-Luc]] Anthropologie / Chercheur
# [[Réchin, François]] Archéologie / PR
# [[Saucès, Joëlle]] Histoire / IGE
# [[Thion, Dolorès]] Littérature contemporaine espagnole / PR
# [[Trébosc, Delphine]] Histoire de l'art et Archéologie / MC
# [[Van De Weghe, Tiphaine]] Statistiques / BDD / IGE
!!! ''Membres de l'Inrap'' (Institut national de recherches archéologiques préventives)
# [[Béague, Nadine]] Responsable d'opération
# [[Cavalin, Florence]] Responsable d'opération
# [[Chopin, Jean-François]] Responsable d'opération
# [[Guédon, Frédéric]] Responsable d'opération
# [[Loiselier, Laurent]] Topographe
# [[Marembert, Fabrice]] Responsable d'opération
<$details summary="Membres associés">
# Alvaro Adot : Histoire moderne / Casa de Velasquez
# Augé, Bertrand : Histoire moderne / ESC Pau / Enseignant
# Blazquez, Adrian : Histoire moderne / PR émérite
# Bruneton-Governatori, Ariane : Ethnologie
# Castéret, Jean-Jacques : Ethnomusicologie PhD / In'Òc Aquitaine
# Courroux, Pierre : Histoire médiévale / Université d'Amiens / Enseignant
# Croizier-Varillon, Isabelle : Histoire de l'Art
# Dianzinga, Scholastique : Anthropologie / Univ. de Brazzaville / PR
# De Bortoli, Dolorès : Sociologie
# Desplat, Christian : Histoire moderne / PR émérite
# Devos, Cécile : Archéologie / Mission Ville d'art et d'histoire,Ville de Pau / Chercheur à l'Inventaire
# Fabre, Georges : Histoire Ancienne
# Gonzalez, Julie : Histoire Médiévale
# Goulet, Anne : Histoire/Archivistique / Archives départementales de la Haute Garonne / Directrice
# Gragson, Ted : Anthropologie / Univ. Athens - Géorgie, USA / PR
# Imizcoz Beunza, José Maria : Histoire moderne / Un. du Pays basque / PR
# Issartel, Thierry : Histoire moderne / Lycée Louis Barthou - Pau / Professeur agrégé
# Lagoueyte, Cendrine : Anthropologie
# Lanusse-Cazalé, Hélène : Histoire contemporaine / Lycée de Muret / Enseignante stagiaire
# Lassus, Marianne : Histoire contemporaine / Collège de Nay (64) / Professeur Histoire Géographie
# Lavergne, Marie-Paule : Géographie
# Le Bras, Stéphane : Histoire contemporaine / CHEC - Université Blaise Pascal / Enseignant
# Mendes, Arlindo : Anthropologie / Univ.publique Cap Vert
# Minovez, Jean-Michel : Histoire moderne / UFR Histoire, Arts et Archéologie, Université Toulouse II-Le Mirail / PR
# Palu, Pascal : Géographie
# Ramirez Vaquero, Eloisa : Histoire médiévale / Un. publique de Navarre / PR
# Rivoletti, Danièle : Art moderne / ATER
# Roudier, Mathieu : Archéologue / Hades
# Saouter, Anne : Anthropologie
# Talvas-Jeanson, Sandine: Chargée d'étude en archéologie
# Toussaint, Evelyne : Histoire de l'Art contemporain / Université de Toulouse / PR
</$details>
<$details summary="Membres doctorants">
@@column-count:3;
* Anthropologie
*# Berdou, Rémy
*# Bouzid-Karray, Khouloud
*# Cunchinabe, Dominique
*# Duhamel, Virginie
*# Elongo Akoa Joadel Eba
*# Kandou Kounba, Marie-Josée
*# Larché, Mélanie
*# Mané, Idrissa
*# Saint Martin, Stéphanie
* Archéologie
*# Bwire, Lucas
*# Campo, Alain
*# Caparroy, Benjamin
*# Duren, Audrey
*# Indino, Giuseppe
*# Morlass-Courties, Marina
*# Pace, Benoît
*# Tobania Pulido, Leticia
* Histoire
*# Ameil, Suzanne
*# Bordes Maurice, Chantal
*# Bousselin, Alain
*# Cassous, Thierry
*# Dubois, Alain
*# Dupin, Arnaud
*# Dupond, Lucile
*# Esteban, Michel
*# Goraiz Gonzalo, Naira
*# Guerville-Ballé, Alice
*# Leclercq, Mathilde
*# Lehmann-Lefort, Sophie-Astrid
*# Mur Royo, Javier
*# Ndayishimiye, Pie
*# Oaucot, Hugues
*# Pelat, Mathieu
*# Peña, Jon
*# Plat, Emmanuel
*# Théau, Françis
*# Sentucq, Emilie
*# Vanhems, Matthieu
*# Woifflard, Aurélien
* Histoire de l'art
*# Bertaux, Anouck
*# Besnard, Tiphaine Annabelle
*# Cazaux, Marion
*# Delahaye, Estelle
*# Delorme, Franck
*# Fruchtnis Duran, Klaus
*# Kanso, Elissar
*# Motta Ramirez, Oscar Eduardo
*# Saves, Manoli
* Etudes hispaniques
*# Barrere, Lisa
*# Carassus, Marie-Pierre
*# Dia, Mariama
*# Duplantier, Fleur
*# Feijoo, Francisco Javier
*# Fernandez-Ventura, Lourdes
*# Laffaille, Claire
*# Saldana, Esther
*# Uni, Fabienne
@@
</$details>
[[lien vers JSTOR|http://www.jstor.org/action/showAdvancedSearch?acc=on&wc=on]]
revues internationales de ''sciences humaines et sociales''
!!! Direction d’ouvrages ou de numéros de revue (DO)
# ''Écriture de l’histoire et itinérance dans l’Amérique coloniale ibérique (XVIe –XIXe siècle)'', e-Spania [En ligne], 26 | février 2017, numéro coordonné par Louise Bénat-Tachot, Nejma Kermele et Clotilde Jacquelard, mis en ligne le 01 février 2017, https://journals.openedition.org/e-spania/26211
# ''Dialogues France-Brésil, circulations, représentations, imaginaires'', sous la direction d’Eden Viana Martin, Nejma Kermele, Maria Elizabeth Chaves de Mello et José Luís Jobim, Presses de l’université de Pau et des Pays de l’Adour, EFM 9, octobre 2018.
!!!Articles publiés
# « ''Larvatus prodeo. Identité, Histoire, Fiction dans La muerte de Montaigne de Jorge Edwards'' », `in` : Michèle Guicharnaud-Tollis (ed.), //Discours sur les Amériques : les masques de la vérité//, Bordeaux : Presses universitaires de Bordeaux, 2015, p. 81-96.
# « ''Fábricas del Príncipe indígena en la Suma y Narración de los Incas de Juan de Betanzos'' », `in` : J. Enrique Duarte, Isabel Ibáñez (eds.), //Persona y personaje : el Homo historicus y su puesta en discurso en el Siglo de oro//, Colección Batihoja, 18, Nueva York: IDEA/IGAS, 2015, p. 79-91.
# ''De la connaissance au contrôle : le local, outil du projet colonial (Pérou, XVIe siècle)'' », e-Spania [En ligne], 22 | octobre 2015, URL : http://journals.openedition.org/e-spania/25142
# « ''Géographie référentielle, géographie littéraire: l'écriture des lieux dans les épopées d'Alonso de Ercilla (La Araucana) et de Pedro de Oña (Arauco Domado)''», `in` : //Escrever o lugar: Literatura e Geografia no 'Spatial Turn' | Écrire le Lieu: Littérature et Géographie au Tournant Spatial//", Cadernos de literatura comparada, Revista do Instituto de literatura Margarina Losa, Porto, N.º 33 – 12/ 2015 | 199-220 – ISSN 1645-1112, en ligne. http://ilc-cadernos.com/index.php/cadernos/issue/view/26/showToc
# « ''Dire et penser le peuple dans l’Amérique coloniale ibérique (XVIème siècle)'' », `in` Théa Picquet, (dir.), //Le peuple : théories, discours et représentations//, Revue Cahiers Etudes Romanes, n° 35, Aix-en-Provence : Publication Université Provence, 2017.
# « ''Sérendipité de l’itinérance dans le Viaje por el Nuevo Mundo de Diego de Ocaña'' », e-Spania [En ligne], 26 |, mis en ligne le 01 février 2017 février 2017, http://e-spania.revues.org/26339
# « ''Le Chili entre science et imaginaire dans le //Journal of a Residence in Chile, during the Year 1822// de Maria Graham'' » `in` : Pilar Tresaco, Lourdes Cadena, Ana M.ª Claver (coords.), //Otro viaje extraordinario//, Zaragoza: Prensas de la Universidad de Zaragoza, 2017.
# « ''Théorie et pratique de l’histoire du monde dans la Historia Pontifical y Católica de Gonzalo de Illescas'' », e-Spania [En ligne], 30 | juin 2018.URL: http://journals.openedition.org/e-spania/27783
!!!Ouvrages
# 2013 – Laure GARDELLE & Christelle LACASSAIN-LAGOIN, Analyse linguistique de l’anglais. Méthodologie et pratique. Rennes : Presses Universitaires de Rennes. (390 p)
# 2007 – La complémentation des verbes de perception en anglais contemporain. Formes et sens des comptes rendus de perception directe et indirecte. Thèse de doctorat, Université de Pau et des Pays de l’Adour (533 p.) ; `non publiée`.
!!!Contributions à des ouvrages collectifs avec comité de lecture
# `2015a` – « ''Enjoy et rejoice : variations propositionnelles sur le mode de la réjouissance'' ». D. Lebaud & C. Paulin (éds.), //Variation, Ajustement, Interprétation//, Collection Annales littéraires de l’Université de Franche-Comté. Besançon : Presses Universitaires de Franche-Comté, 2015, p. 41-60. (20 p)
# 2014c – « Perception, cognition et perspicacité : énoncés à lecture inférentielle avec les verbes de perception non agentive ». F. Buisson, C. Lacassain-Lagoin & F. Marie (éds.), Perception, Perspective, Perspicacité – Perception, Perspective and Perspicacity. Paris : L’Harmattan, 2014, p. 55-75. (21 p)
# 2010b – « De l’expérience perceptive au compte rendu de perception : la complémentation en -ING après look at et listen to ». J-C. Khalifa & P. Miller (dirs.), Perception et structures linguistiques. Huit études sur l’anglais. Rennes : Presses Universitaires de Rennes, 2010, p. 179-208. (30 p)
!!!Articles dans des revues à comité de rédaction et de lecture
# `2018c` – « ''At the Crossroads of Cognition and Emotion: Wonder, a Multifunctional and Polysemous Marker'' », RANAM 51, 2018, p. 7-29. (23 p)
# `2018b` – « ''See / Witness and the ‘setting-subject construction’. An egocentric or anthropocentric perspective? An animacy- and subjectivity-based approach'' », International Journal of Language and Culture 5:2, 2018, p. 271–301. DOI: `10.1075/ijolc.00010.lac` (31 p)
# `2018a` – « ''On the margins of perception - TO-clauses: a standard construction of perception verbs?'' », E-rea [Online], 15.2|2018, Online since 15 June 2018. URL : < http://journals.openedition.org/erea/6283 > ; DOI : `10.4000/erea.6283`. (19 p)
# `2017a` – « ''Voir et see : étude comparée de la construction à attribut de l’objet'' », Écho des études romanes, Vol. XIII, n° 1, 2017, p. 123-146. (24 p)
# `2015c` – « ''De la perception auditive à la cognition : étude comparée du verbe HEAR en anglais et du verbe ENTENDRE en français'' », L’Information grammaticale n° 146, « `Points de vue linguistique sur la perception` », juin 2015, p. 19-26. (8 p)
# 2014a – « Réalité d’une perception envisagée et expression d’un possible : les propositions en IF à la suite des verbes de perception visuelle », Travaux du CerLiCO 25, Du réel à l’irréel. 1. Diversité des langues et représentations métalinguistiques. Rennes : Presses Universitaires de Rennes, 2014, p. 259-275. (17 p)
# 2012b – « Perception, folie et langage : le compte rendu de perception de la “réalité du fou” ». F. Marie (éd.), Le fou – cet autre, mon frère, RIVES n° 7, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2012, p. 59-81. (23 p)
#2012a – « It’s not what it looks to be! Déconnexion entre forme et sens dans les énoncés avec verbe de perception à emploi dit “copule” », E-rea [En ligne], 9.2 | 2012, mis en ligne le 15 mars 2012. URL : < http://erea.revues.org/2437 >. (22 p)
#2011f – « Le verbe HEAR et ses différentes constructions : intégration et résonance du discours de l’autre ». F. Gaspari & C. Mari (éds.), Formes allogènes dans le discours : imbrication et résonance dans la littérature et les arts anglophones, RIVES n° 6, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2011, p. 59-82. (24 p)
# 2011e – « Enjoy et rejoice : identité sémantique et altérité structurelle ? ». F. Buisson, J. Hentgès, C. Lacassain-Lagoin & M. Parsons (éds.), Je(u), joie, jouissance. Littérature, civilisation et linguistique – Games and the self – joy, enjoyment and pleasure. Literature, history and society, and linguistics, RIVES n° 4, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2011, p. 23-45. (23 p)
# 2011c – « Perception Verbs in Periphrastic Verbal Phrases: Have a taste, give a look and take a listen ». B. Pennec & O. Simonin (dirs.), Les locutions de l’anglais. Emplois et stratégies rhétoriques – Fixed phrases in English. Use and rhetorical strategies, Cahiers de l’Université de Perpignan n° 40, Presses Universitaires de Perpignan, 2011, p. 149-179. (30 p)
# 2011b – « Les comptes rendus de perception avec attribut de l’objet. Quelle intégration de l’altérité ? ». D. Chini, F. Marie-Laverrou & M. Parsons (éds.), Intégration de l’altérité : formes et procédures. Regards croisés sur les aires anglophones et hispanophones, RIVES n° 5, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2011, p. 347-366. (20 p)
# 2011a – « Les compléments négatifs des verbes de perception : résurgence d’une présence ? », Cercles 20, Revue disciplinaire du monde anglophone, mai 2011, p. 135-153. URL : < www.cercles.com/n20/lacassain.pdf >. (19 p)
# 2010a – « Contact visuel avec l’autre : implications sémantiques et syntaxiques avec le verbe look ». F. Gaspari, F. Marie-Laverrou & M. Parsons (éds.), Premières rencontres avec l’autre dans les cultures anglophones. Littérature, civilisation et linguistique, RIVES n° 1, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2010, p. 119-136. (18 p)
# 2007 – « Compléments des verbes de perception et réalité(s) originelle(s) », Lines.fr 3, Revue en ligne d’études anglaises, mise en ligne le 20 février 2007, p. 39-57. URL : < www.lines.fr/lines3/lagoin.pdf > ou < www.lines.fr/lines3/index.html >. (19 p)
!!! Articles dans des Actes de Colloque avec comité de lecture
# `2015b` – « ''Enjoy et rejoice. Variations syntaxiques et sémantiques sur le mode de l’appréciation'' », Les Amis du CRELINGUA, `Actes du colloque du 17 mai 2014`, 2015, p. 23-43. (21 p)
!!! Avant-propos
# `2019` – (`à paraître`) Jean ALBRESPIT & Christelle LACASSAIN-LAGOIN, « ''De l’accommodation à la non-accommodation : procédés et stratégies – propos liminaire'' ». J. Albrespit, C. Lacassain-Lagoin & H. Le Prieult (éds.), « De l’accommodation à la non-accommodation : procédés et stratégies – propos liminaire », Anglophonia / French Journal of Linguistics 25, 2019. Mis en ligne le 28 novembre 2017. URL : < http://journals.openedition.org/anglophonia/1096 >. (7 p)
# `2017b` – Jean ALBRESPIT & Christelle LACASSAIN-LAGOIN, « ''L’accommodation en linguistique – propos liminaire'' ». J. Albrespit, C. Lacassain-Lagoin & H. Le Prieult (éds.), « Modes et stratégies d’accommodation », Anglophonia / French Journal of Linguistics 24, 2017. Mis en ligne le 28 novembre 2017. URL : < http://journals.openedition.org/anglophonia/1096 >. (6 p)
# 2014b – Françoise BUISSON & Christelle LACASSAIN-LAGOIN, « Introduction ». F. Buisson, C. Lacassain-Lagoin & F. Marie (éds.), Perception, Perspective, Perspicacité – Perception, Perspective and Perspicacity. Paris : L’Harmattan, 2014, p. 13-23. (11 p)
# 2011d – Françoise BUISSON & Christelle LACASSAIN-LAGOIN, « Introduction ». F. Buisson, J. Hentgès, C. Lacassain-Lagoin & M. Parsons (éds.), Je(u), joie, jouissance. Littérature, civilisation et linguistique – Games and the self – joy, enjoyment and pleasure. Literature, history and society, and linguistics, RIVES n° 4, Cahiers de l’Arc Atlantique. Paris : L’Harmattan, 2011, p. 11-18. (8 p)
!!! Ouvrages et publications pour la valorisation de la recherche
# `2017` – « ''Leçon de linguistique'' », `Rapport de jury`, Agrégation externe d’anglais session 2017. Paris : Centre National de Documentation Pédagogique, 2015 p. 169-184. (16 p)
# `2015` – « ''Leçon de linguistique'' », `Rapport de jury`, Agrégation externe d’anglais session 2015. Paris : Centre National de Documentation Pédagogique, 2015 p. 116-124. (9 p)
# 2013b – Christelle LACASSAIN-LAGOIN & Élise MIGNOT, « Composition de linguistique. Grammaire », Rapport de jury, Agrégation externe d’anglais session 2013. Paris : Centre National de Documentation Pédagogique, 2013 p. 56-73. (18 p)
# 2013a – « Explication des choix de traduction » (écrit), Rapport de jury, Concours troisième voie CAPES-CAFEP anglais session 2013. Paris : Centre National de Documentation Pédagogique, 2013, p. 10-21. (12 p)
# 2012b – « Explication des choix de traduction » (écrit), Rapport de jury, Concours troisième voie CAPES-CAFEP anglais session 2012. Paris : Centre National de Documentation Pédagogique, 2012, p. 9-20. (12 p)
# 2012a – « Explication des choix de traduction » (écrit), Rapport de jury, CAPES externe d’anglais session 2012. Paris : Centre National de Documentation Pédagogique, 2012, p. 43-62. (20 p)
# 2011b – « Explication des choix de traduction » (écrit), Rapport de jury, Concours troisième voie CAPES-CAFEP anglais session 2011. Paris : Centre National de Documentation Pédagogique, 2011, p. 9-14. (6 p)
# 2011a – « Explication des choix de traduction » (écrit), Rapport de jury, CAPES externe d’anglais session 2011. Paris : Centre National de Documentation Pédagogique, 2011, p. 48-60. (13 p)
# 2010b – « Faits de langue » (oral), Rapport de jury, Concours troisième voie CAPES-CAFEP anglais session 2010. Paris : Centre National de Documentation Pédagogique, 2010, p. 11-16. (6 p)
# 2010a – « Faits de langue » (oral), Rapport de jury, CAPES externe d’anglais session 2010. Paris : Centre National de Documentation Pédagogique, 2010, p. 60-72. (13 p)
# 2009 – « Faits de langue » (oral), Rapport de jury, CAPES externe d’anglais session 2009. Paris : Centre National de Documentation Pédagogique, 2009, p. 90-102. (14 p)
*''ind'' (hal)
**`11258713` ''Lacayrelle'', Annig
**`11258352` ''Le Parc-Lacayrelle'', Annig
**`408516` ''Le Parc-Lacayrelle'', Annig
**`11304781` ''Parc'', Annig Le
**`11305936` ''Le Parc'', Annig
!! Liste des publications depuis 2012
!!! Ouvrages
# ''Le Bel Âge, Fragments de l’Histoire de ma vie de Casanova'', (préface « ''Un autographe'' »), Gallimard, 2012
# Co-direction de la publication de ''l’Histoire de ma vie de Jacques Casanova'', Bibliothèque de La Pléiade, Gallimard, vol. 1, 2013, 1374 p. ; vol. 2, 2015, 1336 p. ; vol 3, 2015, 1318 p.
!!! Articles
# « ''Envie de duel'' », Largesse de Casanova, Cahiers de littérature française, XI, U de Bergame-U de Paris-Sorbonne, 2012, p. 95-108.
# « ''L’ordinaire dans l’autoblographie'' : l’Autofictif d’Eric Chevillard », L’art de l’ordinaire, Méthode ! n° 21, 2012, p. 135-144.
# « ''Un Lapon au Sénégal'' », Chamfort et Le Vaillant (Voyages à l’intérieur de l’Afrique » Dix-Huitième Siècle, 2012, p. 221-235.
# « ''Le désordre des familles'' », Thèmes et figures du for privé (Maurice Daumas dir.), PUP, 2012. p. 111-123.
# « ''Le Long travail'' », Genesis, Revue Internationale de critique génétique 34/12 « Brouillons des Lumières », avril 2012, p. 97-122.
# « ''Adieu rôti !'' , Quelques aspects de l’humour dans les livres I à VI des Confessions de Jean-Jacques Rousseau », Méthode !, n° 22, novembre 2012, p. 135-146.
# « ''Une vie en vignettes, Les Bonheurs et les dangers du comte de Caraman'' », La Faute à Rousseau, n° 68, févier 2015, article repris dans Le Magasin du XIXe siècle, n° 6, novembre 2016.
# « ''Casanova, Voltaire and the Dialogues chrétiens, an investigation'' », Casanova Enlightenment philosopher, Oxford University, Studies in the enligthenment, 2016, dir Ivo Cerman et alii, p. 185-199
# « ''Ecriture et images de soi'' », Casanova, « Ecrire à tort et à travers », dir. Raphaëlle Brin, Garnier 2016.
# `Articles` « ''Goldoni'' », « ''Ligne'' », « ''Ménétra'' », pour le Dictionnaire de l’autobiographie, Champion, dir. Françoise Simonet-Tenant, avec la collaboration de Michel Braud et alii, avril 2017.
# « ''Casanova, un français parfumé'' », Littérature n° 185, avril 2017, Sociabilités du parfum,. Article en ligne sur http://www.revues.armand-colin.com/ et www.cairn.info
!! À paraître (2019)
!!! Volume
''Avec Casanova, penser, songer et rire'', recueil de 16 articles sur Casanova, préface de Michel Delon, Classiques Garnier, collection « L’Europe des Lumières ».
!!! Articles
1. « ''Rire avec Casanova'' », intervention au colloque Casanova au cinéma, Sorbonne-Université, juin 2018.
2. « ''Peindre à hauteur d’homme'' », Le rire dans l’art, Figures de l’art.
!!! Travaux et articles :
# « ''La réception d’un grand roman à travers le filtre du cinéma - l’exemple du Tambour de Günter Grass'' », Poétique n°184, Seuil, `novembre 2018`, p.269-278.
# « ''La créativité du “ Critic as artist” - retour sur la théorie wildienne'', Revue de littérature comparée, Klincksieck, `2018` n° 4.
# « ''Le quatuor à cordes dans la fiction cinématographique'' » dans //Quatuor, Littérature et cinéma// (Yves Landerouin, dir.), Revue Op.cit., `juin 2018`, Pau. https://revues.univ-pau.fr/opcit/index.php?287--quatuor
# ''21 articles'' et notices du ''Dictionnaire Giraudoux'', Honoré Champion, `2017` : « `Amphitryon 38` », « `Ariel` », « `Arts` », « `Biographies` », « `Burlesque` », « `Debussy` », « `Destin-Déterminisme` » (avec André Job), « `Duchesse de Langeais (La)` », « `Electre` », « `Faust` », « `Judith` » (avec Guy Teissier), « `La Motte-Fouqué` », « `Mendiant (Le)` », « `Métathéâtre` », « `Personnage (au théâtre)`», « `Puck` », « `Shakespeare` », « `Structures dramatiques` », « `Tessa` », « `Théâtre littéraire` », « `Tirade` ».
# « ''Evocations romanesques et réception de l’œuvre musicale'' » `in` //Le Comparatisme comme approche critique. Littérature, arts, sciences humaines et sociales, Tome 2//, Classiques Garnier, `2017`, p. p.363-374.
# « ''" La France peuplée" : le style de Pleins Pouvoirs en débat'' », in //Giraudoux critique, essayiste et témoin de son temps//, CJG n°44, Classiques Garnier, `2016`, p.389-402.
# « ''Quelques réflexions sur la musicalité d’Un dimanche à la campagne de Bertrand Tavernier'' », in « //Plus sur Un dimanche à la campagne// », sous la direction de C. Michel et J .B. Renault, Atlande, « Clefs concours », `2016`, p. 31 à 41.
# « ''Pour une typologie générale des procédés de transformation intermédiale'' », in //Intermédialités//, sous la direction de Caroline Fischer, SFLGC, Lucie éditions, Collection « Poétiques comparatistes », `2015`, p.119-139.
# « ''L'art de la feinte – Fonctions et significations dans quelques mises en scène comiques de l’héroïsme féminin'' » `in` Méthode !, n°23, éd. Vallongues, 2014, p.253-260.
# « ''La critique-fiction moderne à l'aune du //Critic as Artist// (A. Billot, J. Fforde)'' », `in` L’écrivain et son critique : une fratrie problématique, sous la direction de Philippe Chardin et Marjorie Rousseau, éditions Kimé, 2014, p.359-370.
# « ''Littérature comparée et essentialisme artistique'' », `in` Malice revue en ligne du Cielam, Actes du congrès de la Société Française de Littérature Générale et Comparée, Aix-en-Provence, 29-31 octobre 2009, Université d’Aix-Marseille. http://ufr-lacs.univ-provence.fr/cielam/node/587), mai 2012.
# Article « ''Combray'' » du `Dictionnaire des lieux et pays mythiques`, dir. O. Battistini, J.-D. Poli, P. Ronzeaud, J.-J. Vincensini, Paris, Robert Laffont, coll. « Bouquins », 2011, p.350-354.
# « ''De Ruskin à Proust : un débat autour de la "critique créative"''» `in` La « Littérature d’art » : entre critique et création, Édition du Conseil Scientifique de l'Université Charles-de-Gaulle – Lille 3, collection « UL3 Travaux et Recherches », 2010, p.59-74.
# « ''L’utilisation du savoir du spécialiste dans la ‘critique créative’ : l’exemple de Marcel Proust'' `in` L’Écrivain et le spécialiste, Écrire sur les arts plastiques au XIXe et au XXe siècle, Paris, 2010, Éditions Classiques Garnier, p.175-192.
# « La légitimation de la subjectivité critique dans ‘A Prince of court painters ‘ de Walter Pater », in Watteau au confluent des arts, Presses Universitaires de Valenciennes, 2009, p.263-275.
# « L'adaptation cinématographique : une chance pour le roman ? », in Traduire, adapter, transposer, Cahiers d’Études Germaniques, n°56, Aix-en-Provence, 2009, p.217-225.
# « Le champ de la critique créative : essai de définition », in Intertextualité, interdiscursivité et intermédialité, Québec, Presses de l’Université Laval, 2009, p.79-94.
# « Une lecture de Balzac au cinéma » in Cahiers Jean Giraudoux n°36, Clermont-Ferrand, 2009, p.147-165.
# « La flûte du faune ou Debussy, critique de Mallarmé » in La Vie, la mort, mes mots : hommage à l'ami disparu, Pau, Vallongues, 2009, p.103-107.
# « The debate on creative criticism », in Critical Exchange : Art Criticism of the Eighteenth and Nineteenth Centuries in Russia and Western Europe, Oxford, Peter Lang AG, 2009, p.329-339.
# « Critique créative » et « critique de créateurs », in Poétique n°155, Édition du Seuil, septembre 2008, p.333-343.
# « Les fonctions de l'évocation de l'opus 111 de Beethoven chez E.M. Forster et Thomas Mann » in Musique et roman, Éditions « Le Manuscrit », 2008, p.115-130.
# « Le dispositif transtextuel de La Fontaine chez les voleurs » in La littérature dépliée, Reprise, répétition, réécriture, (dir. J.-P. Engélibert,Y.M. Tran-Gervat) Presses Universitaires de Rennes, coll. « Interférences », 2008, p.351-360.
# « Giraudoux et le pirandellisme », in Cahiers Jean Giraudoux n°36 « Giraudoux européen de l’entre-deux-guerres », études réunies et présentées par Sylviane Coyault, Clermont-Ferrand, Presses Universitaires Blaise Pascal, 2008, p.55-67.
# « Compte rendu du livre de Jacques Body, Giraudoux (collection « Biographies », Gallimard, 2004) », Cahier Jean Giraudoux n°35, Clermont-Ferrand, Presses Universitaires Blaise Pascal, 2007, p.355-360.
# « La "critique créative" : pratique et enseignement », in La creatividad como instrumento de comunicación : análisis, procedimientos y aplicaciones, Santander, Universidad de Cantabria, 2007, p.215-222.
# « Un procédé cher à Giraudoux : la tirade interrompue », in La poétique du détail : autour de Giraudoux, Études réunies et présentées par André Job, Cahiers Jean Giraudoux n°34, Clermont-Ferrand, Presses Universitaires Blaise Pascal, 2006, pp.91-103.
# « Le Prélude de Tristan und Isolde ou le traitement de l'indicible dans le récit "fin de siècle"», Paris, Revue de Littérature Comparée LXXIX, n°3, juillet-septembre 2005, p.295-310.
# Trois textes de présentations pour le Site des amis de Jean Giraudoux : Siegfried, L'Impromptu de Paris, Ondine : http://giraudoux.univ-bpclermont.fr/index.php?page=3 , 2005
# « Elektra et Salome, ou comment faire du neuf avec de l’ancien » in Interculturalité, intertextualité: les livrets d'opéra (fin XIXe- début XXe), Nantes, C.R.N.I, 2003, p. 241-250.
# « Adapter Proust à l’écran : à propos d’une deuxième voie » in Bulletin Marcel Proust n°52, 2002, p.109-113.
# « Religion et surnaturel dans Intermezzo » in Cahiers Jean Giraudoux n°29, Grasset, 2001, p.81-94.
# « Mythes et merveilleux dans Ondine » in Giraudoux et les mythes, Clermont-Ferrand, Presses Universitaires Blaise Pascal, 2000, p. 101-110.
# « La conversation comme modèle de l’écriture romanesque dans The Picture of Dorian Gray » in Opus cit. n°14 (publication de l'Université de Pau), 2000, p.85-89.
# « " La Rose Béjardel " de Jacques Laurent et Claude Martine : un avatar ludique d’Intermezzo » suivi de « Œdipe et le Sphinx à la manière de Jean Giraudoux » in Cahiers Jean Giraudoux n° 28, 2000, p.111-122.
# « Proust face à Wilde » in Bulletin Marcel Proust n°47, 1997, p.134-146.
# « O.W., l'étrange émule de Mallarmé » in Littérature et Nation n°14 de la 2e série (publication de l'Université François Rabelais, Tours), 1995, p.17-32.
!!! Ouvrages :
# ''La critique créative - Une autre façon de commenter les œuvres'', Paris, Honoré Champion, « Dialogue des arts », `2016`, 160 p..
# Le roman de la quête esthétique, éditions « Le Manuscrit », 2011, 174 p..
# `Quatuor, Littérature et cinéma` (direction), ''Revue Op.cit.'', `juin 2018`, Pau. https://revues.univ-pau.fr/opcit/index.php?287--quatuor
# Giraudoux et les Arts, Cahiers Jean Giraudoux n°37 (direction), Clermont-Ferrand, Presses Universitaires Blaise Pascal, 2009.
# Musique et Roman (direction, avec la collaboration d’A. Locatelli), éditions « Le Manuscrit », 2008, 319 p..
# Les Pyrénées, une frontière ? (ouvrage collectif), Paris, L'Harmattan, 2006, 314 p.
!!! Édition de textes :
# ''Jean Giraudoux : //Récits et témoignages : d’une guerre à l’autre//'', `préface` et établissement de plusieurs textes, Paris, éditions « Classiques Garnier », `à paraître` 1e semestre 2019.
# ''//Électre// de Jean Giraudoux'' `préface`, notes et dossier, Paris, Garnier-Flammarion, `2015`.
# ''//La guerre de Troie n’aura pas lieu// de Jean Giraudoux'', `préface`, notes et dossier, Paris, Garnier-Flammarion, `2015`.
!!! Organisation de colloques et de journées d'études :
# « ''Giraudoux à la scène hier et aujourd’hui'' », Colloque international, UPPA (Faculté de Bayonne - côte basque, `7-9 juin 2018` ).
# « ''Quatuor et littérature'' », Journée d’études (Bayonne- `mai 2012` et `juin 2017`) avec la participation du quatuor Arnaga et en partenariat avec le Conservatoire National de Région Bayonne-côte basque.
# « Musique et roman » - Colloque international (Bayonne, 24-26 mai 2007) avec la collaboration d'Aude Locatelli (Aix-Marseille) et en partenariat avec le Conservatoire National de Région Bayonne -côte basque (interventions musicales d'élèves du conservatoire pour illustrer les propos des communicants).
# « Vérité au-delà des Pyrénées, erreur en-deça » - Colloque international (Bayonne - mai 2000) avec Véronique Duché et Gisèle Prignitz (UPPA).
# « Atouts et faiblesses de la langue française » - Journée d'études (Bayonne- 23 avril 2003) avec Gisèle Prignitz (UPPA).
!!! Conférences :
# « La flûte du faune ou Debussy, critique de Mallarmé », conférence donnée au C.N.R. de la côte basque le 24 janvier 2003 (à la mémoire de Jacques Gadeau).
# « Morphologie du verbe et des possessifs : deux exemples de "faiblesses" du français par rapport à l'anglais », conférence donnée à Bayonne le 23 avril 2003 (journée d'étude sur la langue française).
# « Parodie, pastiche et critique créative : les exemples de Proust et de Willy », University of Durham (Royaume-Uni), mars 2005 :
# « "Critique créative " et "critique de créateurs " : Willy et Debussy », conférence donnée à l’E.N.S., rue d’Ulm, le 19 décembre 2007.
# « Que faire du beau ? Que faire de beau ? les leçons d'une littérature centenaire (I)», conférence donnée à Bayonne le 16 mars 2007.
# « Faire de sa vie un art - les leçons d'une littérature centenaire (II) », conférence donnée à Bayonne le 28 septembre 2007.
# « Une lecture de Laclos au cinéma », conférence donnée le 18 mars 2009 à Bayonne.
# « ''Les derniers quatuors de Beethoven comme machines à explorer le temps : de Proust à Bernard Simeone'' », conférence-concert donnée le 21 novembre 2010 dans le cadre des « Entretiens de Bayonne » avec la participation du Quatuor Arnaga.
# « ''La littérature à l'épreuve de l'œuvre musicale'' », Université de Rennes, 2010.
# « ''De la littérature comparée à l'intermédialité – Pour une typologie générale des procédés de transformation'' », XIXe congrès de l'A.I.L.C., Séoul, août 2010.
# « ''Les fonctions de la musique dans Tous les matins du monde, d’Alain Corneau'' », donnée le 3 mars 2011 à Bayonne.
# « ''La critique créative'' », conférence donnée à l’Université Jean Monnet de Saint-Etienne sur l’invitation d’Yves Clavaron, le 18 mai 2011.
# « ''Schubert au cœur du romantisme'' », conférence-concert avec le quatuor Arnaga, janvier 2012 à Bayonne.
# « ''Littérature et Quatuor'' », conférence donnée en ouverture de la journée d’études du 11 mai 2012 à Bayonne.
# « ''Les musiciens et les peintres d’A la recherche du temps perdu'' », conférence organisée par le conservatoire de Bayonne et le musée Bonnat, donnée le 15 novembre 2012 avec le quatuor Arnaga.
# « ''De la littérature comparée à l'intermédialité - Pour une typologie générale des procédés de transformation'' », Université de Pau, le 8 février 2013.
# « ''La réception d’un grand roman d’après-guerre à travers le filtre du cinéma : à propos de Die Blechtrommel de G. Grass et V. Schlöndorff'' », Pau, 7 octobre 2014.
# « ''Le genre de la critique de l’actualité discographique dans trois revues musicales d’aujourd’hui''», Besançon, 7 novembre 2014.
# « ''Adapting //Le Temps retrouvé// - or When Literature Resists to the Utmost'' », Swansea, `2015`.
# « ''Ecrire et réécrire Mme Bovary'' », donnée le `10 mars 2016` à Bayonne.
# « ''The meaning of the novel through the music of the film'' », conférence donnée au congrès de l’A.I.L.C., Wien, `2016`.
# « ''La dernière nuit de Don Juan dans l’histoire du mythe - Entre romantisme et modernité''”, Cambo-les-Bains, `2018`.
!!!Ouvrages publiés
* `2015`
*# édition annotée du manuscrit de l'abbé Pierre Berge, ''Monographie d'Abriès'', Editions Transhumances.
*# Réédition annotée d'une partie de la thèse de Thérèse Sclafert (1927, Le Haut-Dauphiné au Moyen Âge) sous le titre ''Le Queyras au Moyen Âge'', 65 pages, Editions Transhumances, Val-des-Prés.
* `2016` :
*# réédition scientifique (critique et annotée) de ''Molines-en-Queyras'' (édition autographe) de Jean Tivollier (1913), 576 pages, Editions Transhumances, Val-des-Prés (Hautes-Alpes)...
* `2017` :
*# Mohammed El-Naciri et Jean-Gérard Lapacherie, ''Le Queyras, Une Vallée des Hautes-Alpes'', `tome I`, « //Le temps des crises (1789-1918)// », La Croisée des Chemins, Casablanca (Maroc), 528 pages.
*# Jean-Gérard Lapacherie, A la découverte des montagnes du Queyras : premiers excursionnistes, premiers alpinistes, premiers touristes, 406 pages, Editions Transhumances, Val-des-Prés (Hautes-Alpes).
*# Jean-Gérard Lapacherie, ''Albert Borel, Histoire de sa vie racontée par lui-même'', 128 pages, Editions Transhumances, Val-des-Prés (Hautes-Alpes)
* `2018`
*# édition annotée des ''Ecrits de Résistance, 1940-1943'', d'Albert Guérin, 178 pages, Editions Transhumances, Val-des-Prés (Hautes-Alpes).
*# Edition scientifique du ''Queyras (1938)'' de Jean Tivollier et Pierre Isnel, Editions Transhumances, Val-des-Prés (Hautes-Alpes).
!!! Articles publiés dans des revues avec comité de lecture
* `2015` :
*# « ''Bourcier, prêtre queyrassin réfractaire'' », Annales du Midi, revue archéologique, historique et philologique de la France médiévale, Toulouse, Ed. Privat, tome 127, n ° 290, pp. 235 à 251.
*# « ''Les Chemins de la Croix dans le Queyras'' », Bulletin de la Société d'Etudes Hautes-Alpes, Gap, année 2015, pp. 87 à 104.
* `2016` :
*# « ''Les vitraux des églises du Queyras'' », Bulletin de la Société d'Etudes Hautes-Alpes, Gap, année 2016, pp. 77 à 99.
* `2017` :
*# « ''Voyageurs suisses et anglais dans le Queyras entre 1823 et 1840'' », Bulletin de la Société d'Etudes Hautes-Alpes, Gap, année 2017, pp. 93 à 107.
!!!Colloques
# `2017` : 142e Congrès National des Sociétés Historiques et Scientifiques (CTHS, rue de Grenelle, Paris), Université de Pau, ''communication sur les arts et la montagne''
# `2018` : 143e Congrès National des Sociétés Historiques et Scientifiques (CTHS), Paris, INALCO, du 23 au 26 avril, communication sur ''Joseph Maritan (1820-1891), instituteur public, inspecteur primaire et auteur de nombreux ouvrages : un pédagogue de l'ancienne France''.
!!! A paraître
* 2019
*# Encyclopédie culturelle et historique du Queyras
*# Vie et œuvre de M. Joseph Maritan, instituteur public et inspecteur primaire (1820-1891) in Mélanges Jean-Marie Prieur (Montpellier III) : « Langues et littératures dans le Queyras agropastoral »
!!! OUVRAGES
# Écrire pour la danse : les livrets de ballet de Théophile Gautier à Jean Cocteau (1870-1914), Champion, coll. « Romantisme et modernités », 2001.
# Rhinocéros d’Eugène Ionesco, Bordas, coll. « L’Œuvre au clair », 2005.
# Modernes féeries. Le théâtre français du XXe siècle entre réenchantement et désenchantement, Champion, coll. « Littérature de notre siècle », 2007.
!!! CO-DIRECTION D’OUVRAGES
# Le miel et le fiel. La critique théâtrale en France au XIXe siècle, sous la dir. de Mariane Bury et Hélène Laplace-Claverie, Presses de l’Université Paris-Sorbonne, coll. « Theatrum mundi », 2008.
# Le théâtre français du XIXe siècle, sous la dir. d’Hélène Laplace-Claverie, Sylvain Ledda et Florence Naugrette, L’Avant-Scène Théâtre, 2008.
# ''Minority Theatre on the Global Stage : Challenging Paradigms from the Margins'', sous la dir. de Madelena Gonzalez et Hélène Laplace-Claverie, Cambridge Scholars Publishing, 2012.
# ''Classicisme et modernité dans le théâtre des XXe et XXIe siècles. Mélanges offerts à Marie-Claude Hubert'', sous la dir. de Florence Bernard, Michel Bertrand et Hélène Laplace-Claverie, Presses de l’Université de Provence, coll. « Textuelles », 2014.
# ''Quel espace pour quel théâtre ? Approche croisée des dramaturgies française et hispanique (XVIe-XXe siècles)'', sous la dir. d’Isabel Ibañez et Hélène Laplace-Claverie, Peter Lang, coll. « Liminaires-Passages interculturels », `2017`.
!!! DIRECTION de NUMEROS de REVUE
# ''Dossier « Du texte à la scène »'', Cahiers de l’Association internationale des études françaises, mai 2012, n°64, p. 261-398.
# `Numéro spécial` des Cahiers Jean Vilar (//Vilar à l’œuvre. L’œuvre de Vilar//), n°121, `avril 2016` (128 p.).
!!! ÉDITIONS CRITIQUES
# Théophile Gautier, Théâtre et ballets, édition critique établie par Claudine Veysseyre-Lacoste et Hélène Laplace-Claverie, in Œuvres complètes, éd. Alain Montandon, section III, Champion, coll. « Textes de littérature moderne et contemporaine », 2003.
# Théophile Gautier, Critique théâtrale, t. II, texte établi présenté et annoté par Patrick Berthier, avec la collaboration de Claudine Veysseyre-Lacoste et Hélène Laplace-Claverie, in Œuvres complètes, section VI, Champion, coll. « Textes de littérature moderne et contemporaine », 2008.
# //Jean Giraudoux, ''Ondine / Intermezzo''//, édition présentée et annotée par Hélène Laplace-Claverie, Flammarion, coll. « GF », `2016`.
!!!ARTICLES et CONTRIBUTIONS À DES OUVRAGES COLLECTIFS
# « Écrire pour la danse, ou de l’écriture des livrets de ballet », Écrire la danse, sous la dir. d’Alain Montandon, Clermont-Ferrand, Presses universitaires Blaise Pascal, 1999, p. 183-194.
# « Le genre de la conversation dans l’œuvre en prose de Paul Claudel », Op.Cit., n° 14, juin 2000, p. 91-95.
# « Construction et déconstruction d’un mythe fin-de-siècle : l’impossible genèse de l’Essai sur Cléo de Mérode de Jean de Tinan », Mythes de la décadence, sous la dir. d’Alain Montandon, Clermont-Ferrand, Presses universitaires Blaise Pascal, coll. « Littératures », 2001, p. 197-204.
# « L’indicible et le dansable : l’art de la danse ou l’éloquence du silence », Limites du langage : indicible ou silence, articles réunis par Aline Mura-Brunel et Karl Cogard, L’Harmattan, 2002, p. 165-172.
# « La transposition d’art est-elle un plagiat ? L’exemple du ballet au XIXe siècle », Le Plagiat littéraire, textes réunis par Hélène Maurel-Indart, Littérature et nation, n° 27, revue publiée par l’Université François Rabelais, 2002, p. 123-135.
# « La critique chorégraphique au XIXe siècle », Lieux littéraires/La Revue (Université Paul Valéry-Montpellier III), n° 6, décembre 2002, p. 61-74.
# « Les paradoxes de l’hospitalité dans quelques pièces de Paul Claudel », L’Hospitalité au théâtre, études réunies par Alain Montandon, Clermont-Ferrand, Presses universitaires Blaise Pascal, 2003, p. 279-288.
# « En marge de la marge : le théâtre décadent à la fin du XIXe siècle », Marginalités et théâtres. Pouvoir, spectateurs et dramaturgie, sous la dir. de Sylvie Jouanny, Librairie Nizet, 2003, p. 61-69.
# « Le théâtre dansé, outil pédagogique du XVIIe au XVIIIe siècle », Théâtre et enseignement. XVIIe-XXe siècles, sous la dir. de Marie-Emmanuelle Plagnol-Diéval, CRDP de l’Académie de Créteil, coll. « SCÉRÉN », 2003, p. 79-87.
# « De Marius Petipa à Vaslav Nijinsky, le dialogue franco-russe vu à travers les livrets de ballet », Interculturalité, intertextualité : les livrets d'opéra (fin XIXe-début XXe siècle), sous la dir. de Walter Zidaric, CRINI-Université de Nantes, 2003, p. 311-317.
# « Un homme obscur ou les naissances de Nathanaël », Marguerite Yourcenar, «un certain lundi 8 juin 1903», sous la dir. de Pierre-Louis Fort, L’Harmattan, coll. « Critiques littéraires », 2004, p. 37-48.
# « Le ballet selon Mallarmé, “forme suprême d’idéal au théâtre” », De Claudel à Malraux. Mélanges offerts à Michel Autrand, sous la dir. de Pascale Alexandre-Bergues et Jeanyves Guérin, Presses universitaires de Franche-Comté, 2004, p. 257-268.
# « Modernes féeries, ou le réenchantement de la scène dans le théâtre du XXe siècle », Travaux et recherches de l’UMLV, n° 10, octobre 2004, p. 7-19.
# « Écrire pour la danse / Écrire sur la danse : Gautier entre théorie et pratique », Théophile Gautier et le théâtre, Bulletin de la Société Théophile Gautier, n° 26, 2004, p. 127-136.
# « Le ballet à la fin du XIXe siècle, une expérience théâtrale limite », Impossibles théâtres (XIXe-XXe siècles), études réunies par Bernadette Bost, Jean-François Louette et Bertrand Vibert, Chambéry, Éditions Comp’act, coll. « L’acte même », 2005, p. 120-127.
# « L’Homme et son désir, récit d'un rêve ou récit rêvé ? », Paul Claudel. Théâtre et récit, textes réunis et présentés par Pascale Alexandre-Bergues, Minard, coll. « La Revue des lettres modernes », 2005 (série Paul Claudel n° 19), p. 113-125.
# « La “danse” de la Princesse dans Tête d'Or : de la Sagesse à Salomé ? », Lectures de Claudel. Tête d'Or, sous la dir. de Didier Alexandre, Presses universitaires de Rennes, coll. « Didact français », 2005, p. 149-163.
# « Bohémiennes de ballet au XIXe siècle », La Bohémienne, figure poétique de l'errance aux XVIIIe et XIXe siècles, études réunies par Pascale Auraix-Jonchière et Gérard Loubinoux, Clermont-Ferrand, Presses universitaires Blaise Pascal, coll. « Révolutions et Romantismes », 2005, p. 283-293.
# « Être danseuse vers 1900 : gage d'aliénation ou quête d'autonomie ? », A 'Belle Epoque'? Women in French Society and Culture (1890-1914), sous la dir. de Diana Holmes et Carrie Tarr, Oxford & New York, Berghahn Books, 2006, p. 153-165.
# « L’américanisation du ballet vers 1880 », Le spectaculaire dans les arts de la scène du romantisme à la Belle Époque, sous la dir. d’Isabelle Moindrot, CNRS Éditions, coll. « Arts du spectacle », 2006, p. 280-285.
# « La critique théâtrale dans la NRF entre 1925 et 1940 », La Nouvelle Revue française de Jean Paulhan (1925-1940 et 1953-1968), sous la dir. de Jeanyves Guérin, Éditions Le Manuscrit, coll. « L’Esprit des lettres », 2006, p. 131-143.
# « Gautier aux Ballets russes », Théophile Gautier, conteur et nouvelliste. Mélanges offerts à Claudine Lacoste-Veysseyre, Bulletin de la Société Théophile Gautier, n° 28, 2006, p. 339-351.
# « Le théâtre-palimpseste de Marguerite Yourcenar », Les formes de la réécriture au théâtre, sous la dir. de Marie-Claude Hubert, Publications de l’Université de Provence, coll. « Textuelles », 2006, p. 269-276.
# « Don Juan 1950 : Anouilh et Montherlant à l’école de Molière ? », La comédie en mouvement. Avatars du genre comique au XXe siècle, sous la dir. de Corinne Flicker, Publications de l’Université de Provence, coll. « Textuelles – Théâtre », 2007, p. 143-154.
# « Sardou en féerie », Victorien Sardou, un siècle plus tard, actes du colloque de l’Université Marc Bloch (septembre 2005), sous le haut patronage de l’Académie française, Guy Ducrey éd., Strasbourg, Presses universitaires, coll. « Configurations littéraires », 2007, p. 171-182.
# « Ondine, Opéra parlé : deux féeries réalistes ? », Audiberti. Chroniques, roman, théâtre, sous la dir. de Jeanyves Guérin, Le Manuscrit, coll. « L’Esprit des lettres », 2007, p. 185-202.
# « Les Ballets Suédois sont-ils des ballets ? », Arts en mouvement : les Ballets Suédois de Rolf de Maré (Paris, 1920-1925), textes réunis et présentés par Josiane Mas, Montpellier, Presses universitaires de la Méditerranée, 2008, p. 21-32.
# « De la “domestication des chimères” dans L’Effet Glapion », Jacques Audiberti : l’imaginaire de l’éclectique, textes réunis par Nelly Labère, Eidolon (revue des Presses universitaires de Bordeaux), n° 84, 2009, p. 57-65.
# « Mallarmé homme de spectacles », Les Cahiers de la Maison Jean Vilar, janvier-mars 2009, n° 107, p. 54-57.
# « Chantecler au miroir de L’Oiseau bleu, ou les caprices de la féerie », Histoires littéraires, vol. x, n° 38, avril-mai-juin 2009, p. 83-91.
# « Si l’été revenait, pièce anti-dramatique ? », Onirisme et engagement chez Arthur Adamov, sous la dir. de Marie-Claude Hubert et Michel Bertrand, Presses de l’Université de Provence, coll. « Textuelles – Théâtre », 2009, p. 217-227.
# « ''Le Bal des voleurs de Jean Anouilh : apothéose ou métamorphose de la comédie-ballet ?'' », //Anouilh aujourd’hui//, numéro de la revue Études littéraires (Université de Laval, Québec), printemps 2010, p. 105-114.
# « ''Donner à lire des ballets : l’exemple des arguments chorégraphiques de Cocteau'' », Revue d’histoire du théâtre, numéro spécial « //Le texte de théâtre et ses publics// », textes réunis par Ariane Ferry et Florence Naugrette, 2010-I-II, p. 184-190.
# « ''Y a-t-il une fortune chorégraphique de l’œuvre de Musset ?'' », //Fortunes de Musset//, études réunies par André Guyaux et Frank Lestringant, Garnier, Série Études dix-neuviémistes, n°5, 2011, p. 341-355.
# « ''Quand Anouilh entre dans la danse'' », Revue d’histoire littéraire de la France, 2010-n°4, p. 863-871.
# « ''Le premier théâtre d’Aimé Césaire, entre rébellion poétique et révolte politique'' », //Authenticity and Legitimacy in Minority Theatre : Constructing Identity / Théâtre des minorités : l’identité en construction//, sous la dir. de Patrice Brasseur et Madelena Gonzalez, Cambridge Scholars Publishing, 2010, p. 171-179.
# « ''Cocteau choréconteur, ou l’art de mettre en mots l’éternel présent de la danse'' », Minard, coll. « La Revue des lettres modernes », série Jean Cocteau n°6 (Figures de la narration), textes réunis et présentés par Serge Linarès, 2010, p. 103-114.
# « ''Jouer Renard aujourd’hui'' », Bulletin de l’Association « Les Amis de Jules Renard », vol. hors-série, année 2011, p. 255-262.
# « ''Le répertoire chorégraphique de l’Opéra de Paris entre 1870 et 1914 : transition ou décadence ?'' », //Le répertoire de l’Opéra de Paris (1671-2009). Analyse et interprétation//, sous la dir. de Solveig Serre et Michel Noiray, École nationale des Chartes, coll. « Études et rencontres », 2010, p. 261-272.
# « ''Danser Ionesco, ou la leçon de chorégraphie'' », //Eugène Ionesco. Classicisme et modernité//, sous la dir. de Marie-Claude Hubert et Michel Bertrand, Presses de l’Université de Provence, coll. « Textuelles – Théâtre », 2010, p. 63-70.
# « ''Musset et la valse'' », //L’Hospitalité des savoirs. Mélanges offerts à Alain Montandon//, Clermont-Ferrand, Presses de l’Université Blaise Pascal, 2011, p. 583-593.
# « ''Carmen et les chorégraphes du XXe siècle'' », Cahiers Mérimée (Classiques Garnier), n°3, 2011, p. 99-107.
# « ''‘adame Miroir, objet chorégraphique mal identifié'' », //Jean Genet. Du roman au théâtre//, sous la dir. de Marie-Claude Hubert et Michel Bertrand, Presses de l’Université de Provence, coll. « Textuelles – Théâtre », 2011, p. 111-120.
# « ''L’identité basque en question dans la pastorale souletine'' », //Minority Theatre on the Global Stage : Challenging Paradigms from the Margins//, sous la dir. de Madelena Gonzalez et Hélène Laplace-Claverie, Cambridge Scholars Publishing, 2012, p. 93-102.
# « ''Jules Verne au théâtre : de la page à la scène, de l’illustration au spectacle, de la deuxième à la troisième dimension'' », //La relecture de l’œuvre par ses écrivains mêmes. Tome III : se relire par l’image//, sous la dir. de Mireille Hilsum et Hélène Védrine, Kimé, coll. « Cahiers de Marge », 2012, p. 289-300.
# « ''La sorcière et ses avatars dans le répertoire romantique et postromantique'' », Repères, cahier de danse, Centre de développement chorégraphique du Val-de-Marne, nov. 2012, n°30, p. 5-8 (`texte réédité en 2018` dans le Journal de l’Association pour la danse contemporaine de Genève).
# « ''Décadence et renaissance de la féerie théâtrale française autour de 1900'' », Lendemains. //Études comparées sur la France//, Narr Verlag, n°152, 1/2014, p. 11-18.
# « ''Écrire pour la danse au XXe siècle'' », //Classicisme et modernité dans le théâtre français du XXe siècle. Mélanges offerts à Marie-Claude Hubert//, sous la dir. de Florence Bernard, Michel Bertrand et Hélène Laplace-Claverie, Presses de l’Université de Provence, coll. « Textuelles », 2014, p. 85-92.
# « ''Une féerie peut-elle être une pièce à thèse ? Réflexions sur une forme paradoxale d’engagement dans le théâtre du premier XXe siècle'' », //Des écritures engagées aux écritures impliquées. Littérature française (XXe-XXIe siècle)//, sous la dir. de Catherine Brun et Alain Schaffner, Éditions Universitaires de Dijon, coll. « Écritures », `2015`, p. 41-50
# « ''Métamorphoses du corps dansant sur les scènes parisiennes, du ballet romantique à la Revue nègre'' », //European Drama and Performance Studies (Consuming Female Performers. 1850s-1950s//, sous la dir. de Sabine Chaouche et Clara Sadoun-Edouard), Classiques Garnier, n°5, `2015-2`, p. 109-122.
# « ''Montrer et dire le merveilleux sur les scènes françaises du XIXe siècle'' », Romantisme, n° 170, `2015-4`, p. 76-86.
# ''« Nerval et Gautier, frères de théâtre'' », Bulletin de la Société Théophile Gautier, n° 38, `2016`, p. 89-101.
# « ''La critique chorégraphique selon Jean Cocteau'' », Cahier de l’Herne - `Jean Cocteau`, dir. Serge Linarès, `2016`, p. 394-402.
# « ''Pour en finir avec (la fin de) Lorenzaccio'' », //Revoir la fin. Dénouements remaniés au théâtre (XVIIIe-XIXe siècles)//, sous la dir. de Florence Naugrette et Sylviane Robardey-Eppstein, Classiques Garnier, coll. « Rencontres » (série Études théâtrales), `2016`, p. 247-257.
# « ''L’Imagier de Harlem : « drame-légende », féerie ou monstre dramatique ?'' », Revue Nerval, n° 1, `2017`, p. 93-104.
# « ''Jean Richepin ou l’invention du proverbe chimérique'' », //Théâtres en liberté du XVIIIe siècle au XXe siècle. Genres nouveaux, scènes marginales ?//, sous la dir. de Valentina Ponzetto, Publications en ligne du CÉRÉdI, coll. « Actes de colloques et journées d'études », n° 19, `2017`. <URL: http://ceredi.labos.univ-rouen.fr/public/?jean-richepin-ou-l-invention-du.html>.
# « ''Le théâtre de Gautier entre romantisme et symbolisme'' », //Théophile Gautier als Wegbereiter der Moderne//, sous la dir. de Kirsten von Hagen et Stefanie Neu, Bonn, Romanistischer Verlag, `2017`, p. 219-230.
# « ''Cocteau “choréconteur” ovvero l’arte di mettere in parole l’eterno presente della danza'' », //Il libretto di ballo. Riflessioni storiche e teoriche in omaggio ad Alberto Testa//, a cura di Patrizia Veroli, Massimiliano Piretti Editore, `2017`, p. 237-245 [`traduction` en italien d’un article publié pour la première fois en `2010` dans la //Revue des Lettres modernes//].
# « ''L’Alchimiste de Dumas et Nerval (1839) ou la fabrique d’un espace romantique'' », //Sculpter l’espace, ou le théâtre d’Alexandre Dumas à la croisée des genres//, sous la dir. de Sylviane Robardey-Eppstein, Classiques Garnier, coll. « Rencontres », `2019`, p. 247-259.
!!! ENTRÉES DE DICTIONNAIRES
# Dictionnaire des pièces de théâtre françaises du XXe siècle, sous la dir. de Jeanyves Guérin, Champion, coll. « Dictionnaires & références », 2005 (pièces de Courteline, Flers et Caillavet, Salacrou, Tristan Bernard).
# `Dictionnaire de la mort`, sous la dir. de Philippe Di Folco, Larousse, coll. « In Extenso », 2010 (« ''Danse et ballets'' », « ''Danse macabre'' »).
# `Dictionnaire Beckett`, sous la dir. de Marie-Claude Hubert, Champion, coll. « Dictionnaires & références », 2011 (« ''Danse'' », « ''Béjart, Maurice'' », « ''May B.'' », « ''Pochade radiophonique'' », « ''Esquisse radiophonique'' »).
# `Dictionnaire Ionesco`, sous la dir. de Jeanyves Guérin, Champion, coll. « Dictionnaires & références », 2012 (''Apprendre à marcher'', ''Le Jeune homme à marier'', ''Délire à deux'', ''Le Piéton de l’air'', « ''Joséphine'' », « ''Dudard'' », « ''Le Logicien'' », « ''Jean'' », « ''Danse'' », « ''Féerie'' »).
# `Dictionnaire de la nuit`, sous la dir. d’Alain Montandon, Champion, coll. « Dictionnaires & références », (« ''Ballets'' »), 2013.
# `Dictionnaire Genet`, sous la dir. de Marie-Claude Hubert, Champion, coll. « Dictionnaires & références », 2014 (''‘adame Miroir'', « ''Danse'' »).
# ''Dictionnaire Audiberti'', sous la dir. de Jeanyves Guérin, Champion, coll. « Dictionnaires & références », `2015` (`L’Effet Glapion`, `Opéra parlé`, `« Danse »`, `« Féerie »`).
# ''Dictionnaire Jean Giraudoux'', sous la dir de Sylviane Coyault et André Job, Champion, coll. « Dictionnaires & références », `2018` (`Ondine`, `« Féerie théâtrale »`, `« Merveilleux »`).
# ''Dictionnaire Colette'', sous la dir. de Guy Ducrey et Jacques Dupont, Classiques Garnier, `2018` (`« Féerie-ballet »`).
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/LATEP]]][[[Membres|https://latep.univ-pau.fr/fr/organisation/membre.html]]][[[idHAL|idHAL-LATEP]]]
@@
!!! Conseil de laboratoire
# [[Arrabie, Cédric]] (@@color:red;Biatos@@)
# Bédécarrats, Jean-Pierre (Professeur)
# [[Cazenave, Florian]] (@@color:red;Doc@@)
# Cézac, Pierre (Professeur)
# [[Dedieu, Emilie]] (@@color:red;Biatos@@)
# Haillot, Didier (Maître de conférences)
# Mercadier, Jacques (Professeur)
# Platel, Vincent (Maître de conférences - HDR)
# [[Poulain, Marie]] (@@color:red;Doc@@)
# Serin, Jean-Paul (Maître de conférences - HDR)
# Sochard, Sabine (Maître de conférences)
# Stouffs, Pascal (Professeur)
!!! Enseignants-chercheurs
# [[Alexandrova, Silvia]] (Professeur)
# [[Bédécarrats, Jean-Pierre]] (Professeur)
# [[Bernada, Philippe]] (Maître de conférences)
# [[Castéran, Franck]] (Professeur @@color:red;associé@@)
# [[Cézac, Pierre]] (Professeur)
# [[Contamine, François]] (Maître de conférences)
# [[Couture, Frédéric]] (Maître de conférences)
# [[Ducousso, Marion]] (Maître de conférences)
# [[Dumas, Jean-Pierre]] (Professeur émérite)
# [[Franquet, Erwin]] (Maître de conférences - HDR)
# [[Gibout, Stéphane]] (Maître de conférences)
# [[Haillot, Didier]] (Maître de conférences)
# [[Hort, Cécile]] (Maître de conférences - HDR)
# [[Laurent, Stéphane]] (Maître de conférences)
# [[Marias, Frédéric]] (Professeur)
# [[Casás Martinez, Lidia]] (Maître de conférences)
# [[Mercadier, Jacques]] (Professeur)
# [[Mocho, Pierre]] (Maître de conférences)
# [[Olivier, Jérémy]] (Maître de conférences)
# [[Platel, Vincent]] (Maître de conférences - HDR)
# [[Reneaume, Jean-Michel]] (Professeur)
# [[Romulus, Anne-Marie]] (Chercheur @@color:red;associé@@)
# [[Serin, Jean-Paul]] (Maître de conférences - HDR)
# [[Serra, Sylvain]] (Maître de conférences)
# [[Sochard, Sabine]] (Maître de conférences)
# [[Stouffs, Pascal]] (Professeur)
# [[Vaxelaire, Jean]] (Maître de conférences - HDR)
<$details summary="Doctorants / Post-Doctorants / Contractuels">
# Attonaty Kevin (Doc)
# Bachelart Julie (Doc)
# Beust Clément (Doc)
# [[Cazenave, Florian]] (Doc)
# Fache Axel (Doc)
# Jaafar Mohamad Ali (Post-Doc)
# Jimenez Ernesto (Doc)
# Lara Cruz José (Doc)
# Marty Fabien (Doc)
# Molina Sophie (Doc)
# Moustaid Majed Eddine (Doc)
# Mungyeko Jean-Robert (Doc)
# Ndame Max (Doc)
# Neyrolles Esther (Doc)
# Nova Rincon Arley (Doc)
# Peredo Mancilla Joselin Deneb (Doc)
# [[Poulain, Marie]] (Doc)
# Quant Colon Laura (Doc)
# Renault Jean-Christophe (Doc)
</$details>
!!! Ouvrage
# Armelle Leclercq, ''Portraits croisés, l'image des Francs et des Musulmans dans les textes sur la première croisade (chroniques latines et arabes, chansons de geste françaises des XIIe et XIIIe siècles)'', Paris, Honoré Champion (« Nouvelle Bibliothèque du Moyen Âge », 96), `2010`, 595 p., `rééd. 2014`.
!!! Articles
# Armelle Leclercq, "''Les dispositifs visuels dans la poésie de Christophe Lamiot Enos''", en japonais : "''Kurisutofu Ramio Enosu no shi ni okeru shikakuteki shikake''", trad. Takami Suzuki, `dans` Marianne Simon-Oikawa (dir.), //E wo kaku//, Suiseisha, Tokyo, `2012`, p. 237-277 ; `en français` : revue en ligne Textimage, n°8, Poésie et image à la croisée des supports, `hiver 2017` (http://www.revue-textimage.com/13_poesie_image/leclercq1.html) ;
# Armelle Leclercq, "''Dire ou ne pas dire : l’intime chez Stéphane Bouquet''", //Soi disant. Poésie et empêchements//, Modernités, 36, Presses de l’Université de Bordeaux, 2014, p. 217-228
# Armelle Leclercq,"''"Extranea lingua" : l'enjeu des langues pendant la première croisade''", //Langue de l'autre, langue de l'auteur//, éd. M.-S. Masse et A.-P. Pouey-Maunou, Genève, Droz, 2012, p. 41-52
# Armelle Leclercq, "''Phénomènes célestes, miracles et apparitions, une interprétation miraculeuse de la première croisade''", Inter Faculty (revue numérique de l’université de Tsukuba), vol. 3, 2012 (https://journal.hass.tsukuba.ac.jp/interfaculty/article/view/49/106)
# Armelle Leclercq, "''La Mecque''", `Dictionnaire` des lieux et pays mythiques, éd. J.-J. Vincensini, Paris, Robert Laffont, coll. "Bouquins", 2011, p. 761-763
# Armelle Leclercq, "Louis Aragon et le jeu médiéval", Le Moyen Âge en jeu, revue Eidôlon, n° 89, Presses de l'Université de Bordeaux, 2009, p. 343-356
# Armelle Leclercq, "Oiseaux épiques : l'exemple du premier Cycle de la croisade", Senefiance n°54, Déduits d'oiseaux au Moyen Âge, Aix-en-Provence, Presses de l'Université de Provence, 2009, p. 153-162
# Armelle Leclercq, "La confusion entre Juifs et Sarrasins dans le premier Cycle de la croisade : un motif idéologique ?", Croisade(s), Valenciennes, Presses de l'Université de Valenciennes, 2009, p. 105-117
# Armelle Leclercq, "L'Orient monstrueux dans le premier Cycle de la croisade", Un exotisme littéraire médiéval ? Bien dire et bien aprandre, n°26, Lille, Presses de l'Université de Lille, 2008, p. 55-67
# Armelle Leclercq, "Renart ou le rire rebelle", Etudes littéraires, Université Laval, Québec, Hiver 2007, p. 87-100
# Armelle Leclercq, "La destinée d'un émir turc, Corbaran, personnage historique, personnage épique", Façonner son personnage au Moyen Âge, Senefiance n°53, Aix-en-Provence, Presses de l'Université de Provence, 2007, p. 201-210
# « ''Société civile et accès aux tribunaux'' » `in` //L’identité des tribunaux administratifs, Colloque du 60ème anniversaire des tribunaux administratifs//, Dalloz 2014
# « ''Ouverture'' », `in` //La composition des juridictions : analyse de droit comparé//, Bruylant, `coll.` A la croisée des droits, 2014, p. 11
# « ''Les effets des décisions des juges constitutionnels français, italien et espagnol'' », `in` //La question prioritaire de constitutionnalité vue du droit comparé : qu’apprendre des questions de constitutionnalité en Europe ?//, sous la `dir.` de L. Gay, Burylant, 2014
# « ''Propos introductifs'' », `in` //Etat, collectivités territoriales et droits sociaux. Perspectives de droit comparé//, L’Harmattan, 2015, p. 9
# « ''Propos introductifs'' », `in` //Sécession et processus sécessionniste en droit international, européen et constitutionnel//, Institut Universitaire Varenne, 2017, p. 7
# « ''El regimen jurídico de las lenguas regionales en Francia : ¿derecho fundamental o elemento del patrimonio cultural francés?'' », `in` F. López-Ramón (sous la `dir.`), //El patrimonio cultural en Europa y Latinoamerica//, Madrid, Instituto nacional de administración pública, 2017, p. 155
# « ''La inclusión del desarrollo sostenible en la política urbanística'' », `in` G. García-Alvarez, //Monografías de la Revista aragonesa de administración pública//, Zaragoza, 2016, p. 207
!! Direction d’ouvrage :
# ''Sécession et processus sécessionniste en droit international, européen et constitutionnel'', Institut Universitaire Varenne, coll. Kultura, 2017, 280 p.
!! Conférences :
# « ''La mise en œuvre de l’article 155 de la Constitution espagnole'' », //cycle de conférences Quel avenir pour la Catalogne ?//, La Rochelle, 15 février 2018
# « ''El derecho constitucional en Francia hoy'' », `in` //Encuentro trilateral de las Asociaciones de constitucionalistas de Francia-España-Italia//, Madrid, 29 septembre 2016
# « ''Lo statuto delle lingue regionali in Francia'' », `in` //VIII Settimana di studi sulle Autonomie locali, Identita locali e autonomia dei territori//, Alessandria, 6 mai 2016
# « ''La loyauté de l’administration vis-à-vis de l’étranger en situation irrégulière'' », `in` //Les figures de la loyauté en droit public (Cycle)//, colloque dirigé par S. Niquège, Birdeaux, 15 décembre 2015
[[publis page perso|https://craj.univ-pau.fr/fr/_plugins/mypage/mypage/content/lemoulan.html?search-keywords=lemouland]] (voir les types)
! Liste classée des publications (2015 – 2019) :
!! Ouvrages individuels et collectifs :
# ''La réception des Règlements européens en droit de la famille. Regards croisés franco-espagnols'' (`dir.`), PUPPA, 2015
# ''Personnes et familles du XXIème siècle'' (ouvrage collectif, `co dir.` D. Vigneau), PUPPA, 2018
!! Dictionnaires, répertoires, encyclopédies @@color:red; → dans FASCICULES @@
# "''Ordre public et bonnes moeurs''", Encyclop. Dalloz, Rép. civ. 2019 (en collaboration avec le Professeur G. Piette).
# ''Filiation et procréation médicalement assistée'', Dictionnaire Permanent Bioéthique et Biotechnologies, Ed. Législatives, 1996,. Commentaires de décisions ou de textes dans le cadre des bulletins mensuels. Refonte annuelle.
# "''Séparation de corps''", Encyclop. Dalloz, Répertoire Procédure civile, 2016.
#"''Pacte civil de solidarité''", Encyclop. Dalloz, Répertoire Procédure civile, 2016.
# « ''Famille'' », Encyclop. Dalloz, Répertoire civil, 2015.
# « ''Majeurs protégés. Curatelle et tutelle. Sanctions des irrégularités'' », Juris-classeur civ., art. 464 à 466, 2016.
!! Articles. Présentation des publications selon les spécificités disciplinaires.
# ''La famille et la gestion du patrimoine du majeur protégé'', `in` //Le patrimoine de la personne protégée// (dir. J.M. Plazy et G. Raoul-Cormeil), LexisNexis, 2015
# ''La filiation désexuée : modèle familial de demain ?'', `in` //Mélanges C. Neirinck//, 2015, p. 561
# ''Convergencia de los efectos patrimoniales de las diferentes formas de conyugalidad en Francia. Historia de una evolucion non controlada'', `in` //Nuevas orientaciones del derecho civil en Europa// (dir. P. Delgado Martin y M. Perena Vicente), 2016, Thomson Reuters, p. 641 s.
# ''La société familiale et l’incapable'', Journ. sociétés 2016, n° 143, p. 25
# ''Consentement et capacité : le charme discret de l’utilitarisme'', `in` //Quel renouveau pour le droit des contrats ? Une réforme entre tradition et modernité// (dir. V. Larribau-Terneyre et S. Pellé), PUPPA, 2016, p. 87
# ''Les grandes lignes du droit patrimonial des couples'', Les cahiers du LADREN, Oran, 2016, n° 7
# ''Formalisme et conjugalité : de quelques paradoxes'', `in` //Le formalisme. Sources et technique en droit privé positif//, (dir. N. Laurent-Bonne et S. Tisseyre), LGDJ, 2017, p. 81
# ''Le contrôle de la gestion du patrimoine des majeurs protégés'', Droit et Patrimoine 2018, n° 283, p. 49
# ''Simplifier et recentrer le rôle du juge dans le domaine de la protection des majeurs'', Recueil Dalloz 2019, `à paraître`
# ''L’interdit de la bigamie'', //Mélanges en l’honneur d’A. Batteur//, (à paraître)
!! Conférences, congrès et colloques à communication :
# ''La vulnérabilité des membres d’une société familiale'', Communication dans le cadre du colloque sur « //La société familiale : enjeux, risques et stratégies// », Pau, `6 nov. 2015`
# ''Le droit patrimonial des couples en France'', Communication lors du Colloque « //Le droit patrimonial de la famille. Comparaison Maghreb Europe// », `24/25 janvier 2016`, Oran
# ''Constitution et fonctionnement d’une SCI avec un mineur'', Communication dans le cadre du colloque « //Le mineur et la SCI// », organisé par le Master Droit Notarial, Pau, `1er avril 2016`
# ''Consentement et capacité : le charme discret de l’utilitarisme'', Communication dans le cadre du colloque « //La réforme du droit des contrats ; entre tradition et modernité ?//, Pau, `20 mai 2016`
# ''Le nouveau visage de l’administration légale. Les droits et obligations des administrateurs légaux'', Communication dans le cadre du colloque « //Les réformes récentes du droit de la famille// », Pau, `16 septembre 2016`
# ''Le divorce par acte sous signature privée'', Pau, `3 fév. 2017`
# ''Familles et égalité de traitement'', Communication sur //les aspects de droit privé//, Université de Neuchâtel, `19-20 oct. 2017`
# ''Les mesures de protection des majeurs, bilan et perspectives'', Communication dans le cadre du colloque « //La protection juridique des majeurs, 10 ans après la réforme du 5 mars 2017// », CDAD, Pau `30 nov. 2017`
# ''La filiation dans tous ses états : actualité et enjeux'', Communication dans le cadre du colloque « //Les rendez-vous bordelais du droit de la famille// », Bordeaux, `1er février 2018`, Lexbase
# ''Inventaire et techniques de contrôle'', Communication dans le cadre du colloque « //La gestion dynamique du patrimoine de la personne protégée// », Université de Caen, `13 avril 2018`
# ''L’absence d’anticipation et les affres de la gestion patrimoniale'', Communication dans le cadre du colloque « //L’anticipation de la dépendance// », Bordeaux, `25 mai 2018`
# ''Les enjeux actuels du droit de la filiation'', Communication dans le cadre du colloque « //Actualité en droit de la famille// », Agen, `8 juin 2018`
# ''L’allègement du contrôle judiciaire'', Communication dans le cadre du colloque « //10 ans d’application de la loi n° 2007-308 du 5 mars 2007 portant réforme de la protection juridique des majeurs : bilan et perspectives// », Strasbourg, `1er mars 2019`
# ''Regards doctrinaux sur la réforme de la protection des majeurs'', Communication dans le cadre du colloque « //Protection juridique. Bilan et perspectives. 10 ans d’application de la réforme du droit des majeurs protégés// », Grenoble, `5 avril 2019`
# ''L’évolution de la formation des couples'', Communication dans le cadre du colloque "//Le notariat et le droit de la famille : L'évolution des modes de conjugalité depuis la loi relative au Pacte civil de solidarité du 15 novembre 1999//", Bordeaux, `8 avril 2019`
# ''Les perspectives de réforme et la procédure civile'', Communication dans le cadre du colloque « //Bilan des 10 ans d’application de la loi du 5 mars 2007. Perspectives de réforme du droit des majeurs protégés//, Caen, `26 avril 2019`
!! Notes d’arrêt
# Note sous CA Aix en Provence 14 avr. 2015 et CA Versailles 16 avr. 2015, (plusieurs arrêts)(demande d’adoption plénière présentée par l’épouse de la mère d’un enfant conçu par PMA à l’étranger), Dictionnaire permanent Bioéthique et Biotechnologies, Bulletin mai 2015
# Note sous Cass. 1ère civ., 16 mars 2016, (action en recherche de paternité tendant à l’établissement de la filiation d’un enfant issu d’une PMA sans tiers donneur), Dictionnaire permanent Bioéthique et Biotechnologies, Bulletin mai 2016
# Obs. sous Cass. 1ère civ., 15 nov. 2017, (autorisation donnée à un majeur en tutelle de conclure un pacs : le pouvoir d’appréciation du juge), LEFP 2018-2
# Note sous CA Versailles 15 fév. 2018, (adoption de l’enfant d’une femme mariée par son épouse), Dictionnaire permanent Bioéthique et Biotechnologies, Bulletin mars 2018
# Obs. sous Civ. 1ère, 20 déc. 2017, (L’ouverture d’une mesure d’habilitation familiale exige une requête en ce sens), LEFP 2018-3
# Obs. sous Civ. 1ère, 24 janv. 2018, (Assistance éducative : attention aux délais (CPC, art. 1185), LEFP 2018-4
# Note sous Cass. avis, 7 mars 2018, et Cass. 1ère civ., 28 février 2018, (établissement de la filiation par acte de notoriété, adoption de l’enfant du concubin), Dictionnaire permanent Bioéthique et Biotechnologies, Bulletin avril 2018
# Obs Chantiers de la justice : simplification et déjudiciarisation en vue Ministère de la Justice, LEFP 2018-5
# Obs. sous Cass. 1ère civ., 14 mars 2018, (Divorce : demande de prestation compensatoire pour la première fois en appel), LEFP 2018-6
# Obs. sous Cass. 1ère civ. 11 avril 2018, (Le juge du divorce peut désigner un notaire pour procéder aux opérations de partage), LEFP 2018-7
#Obs. sous Cass. 1ère civ., 11 avril 2018 (Procédure d’adoption : la Cour de cassation veille au respect du contradictoire), LEFP 2018-7
# Note sous Cass. 1ère civ., 27 juin 2018, (nullité pour trouble mental d’un acte à titre onéreux fait par un majeur en curatelle), D. 2018.1732
# Obs sous Cass. 1ère civ. 15 mai 2018, (Droit de visite dans un espace rencontre : rappel de l’office du juge), LEFP 2018-8
# Obs. sous Cass. 1ère civ., 24 mai 2018, (Expertise biologique : la loi étrangère peut constituer un motif pour le juge de ne pas l’ordonner), LEFP 2018-9
# Obs. sous Cass. 1ère civ., 24 mai 2018, (Mainlevée d’une hospitalisation psychiatrique sans consentement : le directeur de l’établissement ne peut pas former un pourvoi en cassation), LEFP 2018-9
# Obs. sous Cass. 1ère civ., 27 Juin 2018, (Nullité pour trouble mental d’un acte à titre onéreux conclu par un majeur en curatelle avec l’assistance de son curateur), LEFP 2018-9
# Obs. sous Cass. 1ère civ., 4 juill. 2018, (Demande de décharge d’une dette successorale : la juridiction du lieu d’ouverture de la succession est compétente), LEFP 2018-10
# Obs. Loi n° 2018-778 du 10 septembre 2018 pour une immigration maîtrisée, un droit d’asile effectif et une intégration réussie, art. 55, II, JO 11 sept. 2018, (Filiation : instauration d’une procédure de contrôle des reconnaissances), LEFP 2018-11
# Obs. sous Cass. 1ère civ., 3 oct. 2018 (Administration légale : les décisions du juge des tutelles doivent être notifiées à l’administrateur légal malgré la désignation d’un administrateur ad hoc), LEFP 2018-12
# Obs. sous Cass. 1ère civ., 21 nov. 2018, (Soins psychiatriques sans consentement : computation des délais pour l’établissement des certificats médicaux mensuels), LEFP 2019-1
# Obs. sous Cass. 2ème civ., 15 nov. 2018, (Obligation alimentaire : pas de caducité de la déclaration d’appel dans la procédure sans représentation obligatoire), LEFP 2019-2
# Obs. sous Cass. 2ème civ., 20 décembre 2018, (Mariage polygamique : partage de la pension de réversion entre les épouses), LEFP 2019-2
!! Panoramas de jurisprudence @@color:red; → dans FASCICULES @@
# ''Droit des couples'' (en collaboration avec le Professeur D. Vigneau), Recueil Dalloz 2015, p. 1408
# ''Majeurs protégés'' (en collaboration avec les Professeurs D. Noguéro et J.-M. Plazy), Recueil Dalloz 2015, p. 1569
# ''Droit des couples'' (en collaboration avec le Professeur D. Vigneau), Recueil Dalloz 2016, p. 1334
# ''Majeurs protégés'' (en collaboration avec les Professeurs D. Noguéro et J.-M. Plazy), Recueil Dalloz 2016 p. 1523
# ''Droit des couples'' (en collaboration avec le Professeur D. Vigneau), Recueil Dalloz 2017, p. 1082
# ''Majeurs protégés'' (en collaboration avec le Professeur D. Noguéro), Recueil Dalloz 2017, p. 1490
# ''Droit des couples'' (en collaboration le Professeur D. Vigneau), Recueil Dalloz 2018, p. 1104
# ''Majeurs protégés'' (en collaboration avec le Professeur D. Noguéro), Recueil Dalloz 2018, p. 1458
# ''Droit des couples'' (en collaboration avec le Professeur D. Vigneau), Recueil Dalloz 2019, à paraître.
!!! Chapitres dans des ouvrages collectifs
# 2018 : « ''Former/se former au métier d’enseignant et d’éducateur : questions d’accompagnement'' », `in` //Formacion de profesores y profesionales de la education//, (coord P. Ducoing), Mexico, Plaza y Valdez Ed, p. 351-372.
# 2017 : « ''L’alternance : une pédagogie de l’ouvert'' », `in` //Regards sur le monde d’aujourd’hui et sur les MFR en particulier//, UNMREO, p.160 à 165.
# ~~2016 : « El estudio de lo singular. Las ciencias humanas como ciencias de lo singular : analisar, predecir, comprender, interpretar ? », in La investigacion en educacion : epistemologias y metodologias, (coord. P. Ducoing), Mexico, Plaza y Valdez Ed, p. 477-497.~~
# ~~2015 : « Recherche, politique et intervention éducative : penser avec la crise », in Recherche en éducation dans un monde en crise. En Grèce et ailleurs, (Dir. L. Marmoz, M. Moumoulidou, G. Stamelos, D. Tsakitis), Paris, L'Harmattan, p. 91 à 103.~~
!!! Articles dans des revues à comité de lecture :
# ~~2018 : « L’alternance dans la formation initiale et continue des éducateurs : problématiser l’expérience pour théoriser », NuovaSecondaria (Italie) Novembre 2018, p.50-57~~
# 2017 : « ''2012-2017 : refondée, notre école ?'' » , Revue Année de la Recherche en Education, Perspectives pour la transdisciplinarité , 2017, p. 189-199.
# 2017 : ''Editorial'' @Larechercheeneducation, n°17. En ligne ((http://www.la-recherche-en-education.org/index.php/lre/issue/view/22)
# 2016 : ''Editorial'' @Larechercheeneducation, n°16. En ligne (http://www.la-recherche-en-education.org/index.php/lre/issue/view/21)
# 2016 : ''Editorial'' @Larechercheeneducation, n°15. En ligne (http://www.la-recherche-en-education.org/index.php/lre/issue/view/20)
# 2015 : « ''Accompagnement et autonomie : un évident paradoxe ?'' », Education Permanente, n° 205-2015/4, `Accompagnement, réciprocité et agir collectif`, p. 31-40.
# 2015 : « ''De l'interaction à l'enaction, la représentation en question'' », Revue Année de la Recherche en Education, (A propos) de la représentation, 2015, p. 285-291.
# 2015 : « ''L’analyse de pratiques professionnelles d’éducateurs en groupes réels : entre le soutien professionnel et le soutien émotionnel. Quelle démarche pour faire face aux aléas des conditions de travail ?'' » Margaux Feuillet, Àngel Egido, Frédérique Lerbet-Sereni, Psycofenia, Anno XVII, n°30, 2014 p 75-110.
!!! Conférences, congrès et colloques à communication
# 2018 : ''Conférence invitée "Former/se former au métier d'enseignant : questions d'accompagnement'', Colloque de Mexico, Formación de profesores y profesionales de la educación, 1-3 Août 2018
# 2017 : Conférence invitée, ''Table ronde'', Colloque international Pratiques sociales et apprentissages, Saint Denis, 8-9 juin 2017.
# 2016 : Conférence invitée, ''Table ronde'', Colloque international Ethique de l'accompagnement et agir coopératif. Université de Tours, 26-28 mai 2016.
# 2016 : ''Conférence de clôture'' du Colloque //L’œuvre de Georges Lerbet// : ''une source de passage(s) entre recherche en éducation et humanisme'', Vierzon, 19 octobre 2016
# 2015 : Conférence invitée ''Grand Témoin « Accompagner malgré tout »'', au Colloque Excellence, immédiateté et déclassement, quel sens pour l'autonomie adulte ?, UCO, Angers, 24-26 novembre 2015.
# 2015 : Conférence invitée, ''Table ronde'', Colloque Excellence, immédiateté et déclassement, quel sens pour l'autonomie adulte ?, Angers, 24-26 novembre 2015.
# 2015 : Conférence invitée à la ''Table ronde « Projet, projets »'', Congrès AFIRSE Culture et éducation- Recherches, utopies et projets, Lecce (Italie) 21-23 Mai 2015.
# 2015 : Communication au Colloque International Risques routiers et transports durables : usagers, systèmes, environnements, 8 et 9 Janvier 2015, MSH d’Angers, « ''Conduite et colère : d’un risque à l’autre'' » (en collaboration avec A. Egido et M. Pollet).
!!! Conférences invitée dans le cadre de séminaires de recherche et journées d’étude
# 2016 : Conférence invitée « ''La relation éducative, de la preuve à l'épreuve : recherche et pratique'' » au séminaire de recherche Apprentissage informel/non formel et formation des adultes, de l'Université Démocrite de Thrace (Grèce) Alexandroupoli, 20-21 Mai 2016
# 2016 : Conférence invitée « ''Les pédagogies de l’alternance dans les formations initiales et continues'' », Université de Bergame, 14 Mars 2016.
# 2016 : Conférence invitée « ''La relation d’accompagnement : enjeux théoriques, méthodologiques, épistémologiques et éthiques'' », séminaire doctoral, Université de Bergame, 22 Mars 2016.
!!! Conférences (hors cadre scientifique)
# Conférence « ''Accompagnement et autonomie : pour/par/avec/en/de/sans'' », Colloque CIAPA, Regards croisés sur l’autonomie, 23-24 novembre 2017, UPPA
# Conférence « ''Savoir coopérer : rapport au savoir et relation à autrui(s)'' », Colloque national de la Croix Rouge française, Former à plusieurs voix, trans-formation »,IRFSS, Toulouse, 22 novembre 2017
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/LFCR/]]][[[Membres|https://lfc.univ-pau.fr/fr/organisation/membres.html]]][[[idHAL|idHAL-LFCR]]]
@@
!!! ''Chercheurs - enseignants chercheurs''
# [[Broseta, Daniel]]
# [[Callot, Jean-Paul]]
# [[Carrier, Hervé]]
# [[Creux, Patrice]]
# [[Croccolo, Fabrizio]]
# [[Daridon, Jean-Luc]]
# [[Derluyn, Hannelore]]
# [[Dicharry, Christophe]]
# [[Galliero, Guillaume]]
# [[Graciaa, Alain]]
# [[Grégoire, David]]
# [[Hervouët, Yves]]
# [[Hoareau, Guilhem]]
# [[Ildefonso, Manuel]]
# [[Lachaise, Jean]]
# [[Lazzeri, Véronique]]
# [[Mendiboure, Bruno]]
# [[Miqueu, Christelle]]
# [[Montel, François]]
# [[Moonen, Peter]]
# [[Moretti, Isabelle]]
# [[Nichita, Dan]]
# [[Niviere, Bertrand]]
# [[Obliger, Amaël]]
# [[Perrier, Laurent]]
# [[Pijaudier-Cabot, Gilles]]
# [[Plantier, Frédéric]]
# [[Rondelez, Francis]]
# [[Rousset, Dominique]]
# [[Sénéchal, Guy]]
# [[Vermorel, Romain]]
<$details summary="Post-doctorant.e.s">
|!Nom, Prénom|!Sujet Post-Doc|!Encadrement|!début Post-Doc|!fin Post-Doc|
|BRANELLEC, Matthieu|Évolution structurale des Andes Centrales||01/02/2019|31/01/2021|
|DUCOUX, Maxime|Étude multi-échelles des déformations liées à l’orogenèse pyrénéenne.||08/01/2019|07/01/2020|
|MALHEIRO, Carine|Mesure des capacités d'adsorption et des cinétiques de réfrigérants sur différentes famille d'adsorbants||01/01/2019|31/07/2019|
|IZQUIERDO LLAVALL, Esther|Crustal structure, salt and geodynamic evolution of the golf of Mexico|Jean-Paul CALLOT Charles AUBOURG|22/10/2018|21/10/2020|
|CENTRELLA, Stephen|Développement d'une manip expérimentale sur le fronts de remplacement dolomitique|Nicolas BEAUDOIN|01/09/2018|31/08/2019|
|PADIN DEBEN, Anton||Gilles PIJAUDIER-CABOT|17/09/2018|16/09/2019|
|GARCIA FERNANDEZ, Loreto|Giant non-equilibrium fluctuations in complex fluids|Fabrizio CROCCOLO|17/09/2018|16/09/2019|
|JETAV, SHWETA|Etude sur la méthode de caractérisation avancée du comportement interfacial des systèmes eau/bitume|Patrick BOURIAT|01/09/2018|31/08/2019|
|RUIU, Jérémy||Gilles PIJAUDIER-CABOT|01/07/2017|30/06/2019|
|LIN, Chih-Wei|Phase Equilibria in live oil + CO2|Jean-Luc DARIDON|01/01/2018|31/12/2019|
|BARRE, Guillaume|Caractérisation et analyse de la réactivité des gaz CH4, H2S, CO2, H2 dans la bassin d'Aquitaine|Guilhem HOAREAU|01/01/2018|31/12/2018|
|ETHEVE, Nathalie|Intégration of the passive margin thermicity in the petroleum modeling PSM|Jean-Paul CALLOT|08/01/2018|07/01/2020|
|DUCOUX, Maxime|Étude structurale de différents secteurs liés au projet OROGEN|Jean-Paul CALLOT|08/01/2018|07/01/2019|
|MEJIA CALDERA, Aurora|Étude de la précipitation par QCR et AFM sous pression atmosphérique.Etude de l'injection de CO2 sous pression|Jean-Luc DARIDON|01/02/2018|31/01/2019|
|SI HADJ MOHAND, Hacène|Simulation numérique de la thermo-diffusion|Guillaume GALLIERO|01/12/2017|30/11/2018|
|SHAHTALEBI, Ali|Caractérisation des propriétés structurales et de l'état de surfaces d'adsorbants microporeux.Mesures haute pression de la sélectivité d'adsorbants micro et mésoporeux.|Christelle MIQUEU|01/11/2017|30/04/2019|
|PADIN, Anton|||01/10/2017|30/09/2018|
|PICHAT, Alexandre|Caractérisation des évaporites crétacées de la marge ouest-africaine. Implications pour l'évolution de la marge et la prospection rémanente|Jean-Paul CALLOT Guilhem HOAREAU|23/10/2017|22/10/2018|
|IZQUIERDO LLAVALL, Esther|Caractérisation structurelle des chainons béarnais à travers l'élaboration de coupes géologiques et l'application du palémagnétisme et de la spectroscopie Raman|Charles AUBOURG Jean-Paul CALLOT|18/09/2017|17/09/2018|
|HERNANDEZ BILBAO, Eider|Analyse pétrographique d'échantillons issus de carottes de forage|Guilhem HOAREAU|09/05/2017|08/05/2018|
|GARCIA FERNANDEZ, Loreto|Thermodynamic properties of ternary mixtures including CO2|Henri BATALLER|15/09/2017|14/09/2018|
|PICHAT, Alexandre|Dynamique des systèmes évaporiques|Jean-Paul CALLOT|17/04/2017|16/08/2017|
|BONNAUD, Patrick|MOHAWK: MOlecular simulation of HydrocArbon FloWs within Kerogen|Guillaume GALLIERO|01/05/2017|30/04/2019|
|NONO NGUENDJIO, Franck Laurel|Imagerie à rayons X appliquée aux aux écoulements multiphasiques eau-huile-brut sur mini-carottes|Peter MOONEN|15/03/2017|15/09/2018|
|LE GARZIC, Edouard|Caractérisation des réservoirs géologiques en contexte compressif par l'intégration de données géologiques, exemple du bassin du Tadjikistan|Jean-Paul CALLOT Bertrand NIVIERE|01/04/2017|31/03/2018|
|SI HADJ MOHAND, Hacene|Écoulements diphasiques et mouillage dynamique|Guillaume GALLIERO|01/10-2016|30/09/2017|
|PERRIER, Laurent|Adsorption déformation perméabilité en milieux microporeux|David GREGOIRE Henri BATALLER|01/10/2015|30/09/2017|
|HANTAL, György|Approche multi échelles du fluage dans les milieux micro-poreux|Gilles PIJAUDIER-CABOT|01/11/2015|31/10/2016|
|DERLUYN, Hannelore|Milieux poreux - Cristallisations des sels|Peter MOONEN Daniel BROSETA|01/10/2015|30/09/2016|
|RIUI, Jérémy|Modélisation d'objets sédimentaire par des surfaces paramétriques et application à l'analyse d'image||01/08/2015|31/07/2017|
|BOIRON, Tiphaine|Etude de l'endommagement matriciel dans les roches argileuses|Charles AUBOURG|01/09/2015|31/08/2016|
|RIBA, Luigi|4D Image Registration|Peter MOONEN|01/10/2014|31/03/2016|
|MALHEIRO, Carine|Couplage adsorption-gonflement en milieux poreux peu perméable|David GREGOIRE Christelle MIQUEU|01/10/2014|30/09/2015|
|CROCCOLO, Fabrizio|Étude de la thermodiffusion de mélanges ternaires en phase fluide par des techniques optiques innovantes|Gilles PIJAUDIER-CABOT|01/09/2015|31/08/2016|
|MARTIN CONDE, Maria|Modélisation thermodynamique d'équilibres de phases de clathrates de gaz|Jean-Philippe TORRE Christelle MIQUEU|01/04/2014|30/10/2015|
|PINO PEREZ, David|Adsorption appliquée à la dépollution|David BESSIERES|01/02/2014|31/01/2015|
|NOUAILLETAS, Olivier|Fracturation et perméabilité des milieux hétérogènes quasi-fragiles|Gilles PIJAUDIER-CABOT|01/10/2013|30/09/2015|
|HOANG, Haï|Représentation de propriétés thermophysiques de fluides pétroliers sous hautes pressions par une approche moléculaire|Guillaume GALLIERO|01/07/2013|31/09/2015|
|MIGUEZ DIAZ, Jose Manuel|Estimacion mediante simulacion molecular de las propiedades interfaciales de fluidos implicados en la extraccion forzada de gas natural|Bruno MENDIBOURE|01/03/2013|28/04/2017|
|RANCHOU-PEYRUSE, Magali|Méthylation du mercure par les bactéries sulfato-réductrices dans l'estuaire de l'Adour|Patrick BOURIAT|01/03/2012|30/09/2012|
|BENAZZOUZ, Brahim Khalil|Les mécanismes de transfert de fluide dans une roche de couverture|Guillaume GALLIERO|22/02/2012|21/02/2013|
|NAVIA, Paloma|Caractérisation thermophysique de biocarburants|David BESSIERES Frédéric PLANTIER|01/04/2012|30/09/2012|
|HUYGHE, Damien|Evolution du bassin de Neuquen, Argentine au cours du Cénozoique|Charles AUBOURG|07/02/2011|06/08/2012|
|VERMOREL, Romain|Gas shales|Gilles PIJAUDIER-CABOT|01/10/2011|30/04/2012|
</$details>
@@
[[Google sheet|https://docs.google.com/spreadsheets/d/1q2DXzVIbK7CEQ_nMYT3uVkAgX8_T8hIMy7jGLr-bbTM/edit?usp=sharing]] | [[page du labo (membres)|https://iae-creg.univ-pau.fr/fr/organisation/membres.html]] | [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/CREG-EA4580]] | [[idHAL|idHAL-Lirem]]
@@
---
!!! Fiches chercheurs
<<list-links [tag[CREG]tag[publiant]]>>
---
!!!équipes
<<list-links [tag[CREG]tag[équipe]]>>
[[Chaire Optima]]
---
!! [[GTL]] [//par transclusion//]
{{GTL}}
! Tableau des publiants dotés d'un `idhal_s`, tri par labo
<$details summary="Formule">
```html
<table>
<tr>
<th>Labo</th>
<th>Nom</th>
<th>idhal_s</th>
</tr>
<$list filter='[tag[publiant]has[idhal_s]]+[sort[labo]]'>
<tr>
<td class="labo">{{!!labo}}</td>
<td class="nom">{{!!title}}/></td>
<td class="idhal_s">{{!!idhal_s}}</td>
</tr>
</$list>
</table>
```
</$details>
<$details summary="Tableau">
<table>
<tr>
<th>Labo</th>
<th>Nom</th>
<th>idhal_s</th>
</tr>
<$list filter='[tag[publiant]has[idhal_s]]+[sort[labo]]'>
<tr>
<td class="labo">{{!!labo}}</td>
<td class="nom">{{!!title}}</td>
<td class="idhal_s">{{!!idhal_s}}
</td>
</tr>
</$list>
</table>
</$details>
! Listes des `idhal_s` par labos
<$details summary="TREE">
<$details summary="liste html">
<$list filter='[tag[TREE]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[TREE]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="ALTER">
<$details summary="liste html">
<$list filter='[tag[Alter]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[Alter]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="CATT">
<$details summary="liste html">
<$list filter='[tag[CATT]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[CATT]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="CDRE">
<$details summary="liste html">
<$list filter='[tag[CDRE]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[CDRE]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="CRAJ">
<$details summary="liste html">
<$list filter='[tag[CRAJ]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[CRAJ]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="CREG">
<$details summary="liste html">
<$list filter='[tag[CREG]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[CREG]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="DMEX">
<$details summary="liste html">
<$list filter='[tag[DMEX]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[DMEX]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="ECOBIOP">
<$details summary="liste html">
<$list filter='[tag[ECOBIOP]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[ECOBIOP]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="EXPERICE">
<$details summary="liste html">
<$list filter='[tag[EXPERICE]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[EXPERICE]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="IE2IA">
<$details summary="liste html">
<$list filter='[tag[IE2IA]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[IE2IA]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="IKER">
<$details summary="liste html">
<$list filter='[tag[Iker]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[Iker]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="IPREM">
<$details summary="liste html">
<$list filter='[tag[IPREM]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[IPREM]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="IRAA">
<$details summary="liste html">
<$list filter='[tag[IRAA]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[IRAA]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="ISCJ">
<$details summary="liste html">
<$list filter='[tag[ISCJ]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[ISCJ]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="ITEM">
<$details summary="liste html">
<$list filter='[tag[ITEM]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[ITEM]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="LATEP">
<$details summary="liste html">
<$list filter='[tag[LATEP]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[LATEP]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="LFCR">
<$details summary="liste html">
<$list filter='[tag[LFCR]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[LFCR]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="LIUPPA">
<$details summary="liste html">
<$list filter='[tag[LIUPPA]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[LIUPPA]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="LMAP">
<$details summary="liste html">
<$list filter='[tag[LMAP]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[LMAP]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="MEPS">
<$details summary="liste html">
<$list filter='[tag[MEPS]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[MEPS]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="NuMéA">
<$details summary="liste html">
<$list filter='[tag[NuMéA]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[NuMéA]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="Passages">
<$details summary="liste html">
<$list filter='[tag[Passages]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[Passages]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="PDP">
<$details summary="liste html">
<$list filter='[tag[PDP]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[PDP]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="SIAME">
<$details summary="liste html">
<$list filter='[tag[SIAME]tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}}`</a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[SIAME]tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
<$details summary="TOUS">
<$details summary="liste html">
<$list filter='[tag[publiant]has[idhal_s]]'>
`<li><a href="html/`{{!!idhal_s}}`.html">`{{!!title}} `<span class="labo">`({{!!labo}})`</span></a></li>`<br/>
</$list>
</$details>
<$details summary="idhal_s">
<$list filter='[tag[publiant]has[idhal_s]]'>
{{!!idhal_s}}<br/>
</$list>
</$details>
</$details>
@@.note
[[membres (page du labo)|https://liuppa.univ-pau.fr/fr/organisation/membres-1.html]] | [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/LIUPPA/]] | [[idHAL|idHAL-LIUPPA]]
@@
---
<<list-links [tag[LIUPPA]tag[publiant]]>>
---
<$list filter="[tag[LIUPPA]tag[publiant]sort[idhal_i]]">
<$link>{{!!title}}</$link> [{{!!idhal_i}}|{{!!idhal_s}}]<br/>
</$list>
Champs à renseigner ou modifier :
*''Titre''
*''Auteur(s)'' / ''Traducteur(s)'' / ''Éditeur(s)'' : Champs à modifier avec la petite flèche de gauche ; entrer le nom et prénom en deux parties.
*''Résumé'' (si dispo)
*''Collection'' [Eventuellement]
*''N° de Collection'' [si dans une collection]
*''Volume'' : introduire le numéro par « t. », « vol. » ou « fasc. » ou « I. » ou toute mention suivie d'un point (sinon zotero rajoutera une virgule automatiquement à l'export).
*''Nb de volumes'' : [si ouvrage représente la totalité des volumes]
*''Edition'' : (Si plusieurs édition, indiquer laquelle) [ex : 2e édition]
*''Lieu'' : ville, ''supprimer le pays''
*''Éditeur'' : Éditeur 1 `/` Éditeur 2 ... (Pour Sudoc, supprimer complément année d’impression [imp. XXXX])
*''Date'' : année de publication uniquement
*''Nb de pages'' : suppression des suppléments en nombres romains.
*''Langue'' : code sur deux caractères (anglais [en] ; français [fr] ; italien [it]...) [[liste|http://www.loc.gov/standards/iso639-2/php/code_list.php]]
*''ISBN'' : si possible.
*''Url'' : Url pérenne du livre (.org et premalink) ou rien.
@@.note
[[membres (page du labo)|https://lma-umr5142.univ-pau.fr/fr/organisation/membres.html]] | [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/LMAP/]] | [[idHAL|idHAL-LMAP]]
@@
---
!!publiants
@@column-count:3;
# [[Ahusborde, Etienne]]
# [[Amara, Mohamed]]
# [[Amaziane, Brahim]]
# [[Amrouche, Chérif]]
# [[Artzrouni, Marc]]
# [[Avram, Florin]]
# [[Barbet, Luc]]
# [[Barucq, Hélène]]
# [[Becker, Roland]]
# [[Bernadac, Evelyne]]
# [[Bernardoff, Philippe]]
# [[Betbeder, Jean-Bernard]]
# [[Biritxinaga-Etchart, Edurne]]
# [[Bordes, Laurent]]
# [[Bru, Noëlle]]
# [[Bruel, Pascal]]
# [[Capatina, Daniela]]
# [[Carbou, Gilles]]
# [[Caubet, Fabien]]
# [[Chabassier, Juliette]]
# [[Cresson, Jacky]]
# [[Dambrine, Marc]]
# [[D'amico, Frank]]
# [[Delage Santacreu, Stéphanie]]
# [[Diaz, Julien]]
# [[Dossou-Gbété, Simplice]]
# [[Dubach, Eric]]
# [[Etancelin, Jean-Matthieu]]
# [[Florens, Vincent]]
# [[Giacomoni, Jacques]]
# [[Greff, Isabelle]]
# [[Guessab, Allal]]
# [[Jung, Jonathan]]
# [[Kojadinovic, Ivan]]
# [[Lavie, Marc]]
# [[Lévi, Laurent]]
# [[Liquet, Benoît]]
# [[Luce, Robert]]
# [[Manceau, Rémi]]
# [[Marquet, Catherine]]
# [[Mercier, Sophie]]
# [[Paroissin, Christian]]
# [[Péron, Victor]]
# [[Perrier, Vincent]]
# [[Pierre, Charles]]
# [[Poncet, Philippe]]
# [[Puig, Bénédicte]]
# [[Richard, Yves]]
# [[Tinsson, Walter]]
# [[Tordeux, Sébastien]]
# [[Trujillo, David]]
# [[Vallès, Jean]]
# [[Vallet, Guy]]
# [[Verdier, Ghislain]]
# [[Vernhet, Laurent]]
# [[Warnault, Guillaume]]
@@
---
!!équipes
@@.attention
<<list-links "[tag[LMAP]tag[équipe]]">>
@@
<<tabs "[tag[LMAP]tag[équipe]]" "Formes en mouvement" "$:/state/tab1">>
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JKfqpJfKqSSn6qSXyqkkp+qkl8qpJKfqpJfKqSSn6qSXyqkkp+qkl8qpJKfqpJfKqSSn/9n/7RNEUGhvdG9zaG9wIDMuMAA4QklNBAQAAAAAABUcAgAAAgAAHAIFAAlsb2dvLWJsZXUAOEJJTQQlAAAAAAAQi6UF7LiJQgw8z8uf9403NzhCSU0ELwAAAAAASgAAAQBYAgAAWAIAAAAAAAAAAAAA9RoAAMASAADX////r////z4bAAAPEwAAAAF7BQAA4AMAAAEADycBAGUAdQByAHMAXwBeADIAOEJJTQPtAAAAAAAQAEgAAAABAAIASAAAAAEAAjhCSU0EJgAAAAAADgAAAAAAAAAAAAA/gAAAOEJJTQQNAAAAAAAEAAAAeDhCSU0EGQAAAAAABAAAAB44QklNA/MAAAAAAAkAAAAAAAAAAAEAOEJJTQQKAAAAAAABAAA4QklNJxAAAAAAAAoAAQAAAAAAAAACOEJJTQP1AAAAAABIAC9mZgABAGxmZgAGAAAAAAABAC9mZgABAKGZmgAGAAAAAAABADIAAAABAFoAAAAGAAAAAAABADUAAAABAC0AAAAGAAAAAAABOEJJTQP4AAAAAABwAAD/////////////////////////////A+gAAAAA/////////////////////////////wPoAAAAAP////////////////////////////8D6AAAAAD/////////////////////////////A+gAADhCSU0ECAAAAAAAEAAAAAEAAAJAAAACQAAAAAA4QklNBB4AAAAAAAQAAAAAOEJJTQQaAAAAAANHAAAABgAAAAAAAAAAAAAAQQAAAJYAAAAJAGwAbwBnAG8ALQBiAGwAZQB1AAAAAQAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAACWAAAAQQAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAAAAAAABAAAAABAAAAAAAAbnVsbAAAAAIAAAAGYm91bmRzT2JqYwAAAAEAAAAAAABSY3QxAAAABAAAAABUb3AgbG9uZwAAAAAAAAAATGVmdGxvbmcAAAAAAAAAAEJ0b21sb25nAAAAQQAAAABSZ2h0bG9uZwAAAJYAAAAGc2xpY2VzVmxMcwAAAAFPYmpjAAAAAQAAAAAABXNsaWNlAAAAEgAAAAdzbGljZUlEbG9uZwAAAAAAAAAHZ3JvdXBJRGxvbmcAAAAAAAAABm9yaWdpbmVudW0AAAAMRVNsaWNlT3JpZ2luAAAADWF1dG9HZW5lcmF0ZWQAAAAAVHlwZWVudW0AAAAKRVNsaWNlVHlwZQAAAABJbWcgAAAABmJvdW5kc09iamMAAAABAAAAAAAAUmN0MQAAAAQAAAAAVG9wIGxvbmcAAAAAAAAAAExlZnRsb25nAAAAAAAAAABCdG9tbG9uZwAAAEEAAAAAUmdodGxvbmcAAACWAAAAA3VybFRFWFQAAAABAAAAAAAAbnVsbFRFWFQAAAABAAAAAAAATXNnZVRFWFQAAAABAAAAAAAGYWx0VGFnVEVYVAAAAAEAAAAAAA5jZWxsVGV4dElzSFRNTGJvb2wBAAAACGNlbGxUZXh0VEVYVAAAAAEAAAAAAAlob3J6QWxpZ25lbnVtAAAAD0VTbGljZUhvcnpBbGlnbgAAAAdkZWZhdWx0AAAACXZlcnRBbGlnbmVudW0AAAAPRVNsaWNlVmVydEFsaWduAAAAB2RlZmF1bHQAAAALYmdDb2xvclR5cGVlbnVtAAAAEUVTbGljZUJHQ29sb3JUeXBlAAAAAE5vbmUAAAAJdG9wT3V0c2V0bG9uZwAAAAAAAAAKbGVmdE91dHNldGxvbmcAAAAAAAAADGJvdHRvbU91dHNldGxvbmcAAAAAAAAAC3JpZ2h0T3V0c2V0bG9uZwAAAAAAOEJJTQQoAAAAAAAMAAAAAT/wAAAAAAAAOEJJTQQUAAAAAAAEAAAABzhCSU0EDAAAAAANFQAAAAEAAACWAAAAQQAAAcQAAHLEAAAM+QAYAAH/2P/gABBKRklGAAECAABIAEgAAP/tAAxBZG9iZV9DTQAB/+4ADkFkb2JlAGSAAAAAAf/bAIQADAgICAkIDAkJDBELCgsRFQ8MDA8VGBMTFRMTGBEMDAwMDAwRDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAENCwsNDg0QDg4QFA4ODhQUDg4ODhQRDAwMDAwREQwMDAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwM/8AAEQgAQQCWAwEiAAIRAQMRAf/dAAQACv/EAT8AAAEFAQEBAQEBAAAAAAAAAAMAAQIEBQYHCAkKCwEAAQUBAQEBAQEAAAAAAAAAAQACAwQFBgcICQoLEAABBAEDAgQCBQcGCAUDDDMBAAIRAwQhEjEFQVFhEyJxgTIGFJGhsUIjJBVSwWIzNHKC0UMHJZJT8OHxY3M1FqKygyZEk1RkRcKjdDYX0lXiZfKzhMPTdePzRieUpIW0lcTU5PSltcXV5fVWZnaGlqa2xtbm9jdHV2d3h5ent8fX5/cRAAICAQIEBAMEBQYHBwYFNQEAAhEDITESBEFRYXEiEwUygZEUobFCI8FS0fAzJGLhcoKSQ1MVY3M08SUGFqKygwcmNcLSRJNUoxdkRVU2dGXi8rOEw9N14/NGlKSFtJXE1OT0pbXF1eX1VmZ2hpamtsbW5vYnN0dXZ3eHl6e3x//aAAwDAQACEQMRAD8A9VSSSSUpJJQuuqoqfdc8V1Vgue9xhoaNXOc4pKZrI6x9auhdGlublNFwE/Z2e+z/ALbZ9D/rmxc5ndZ+tH1oe7G+rNTsPpklrupWzWbOzjU76bK/+Jb63/Ffzan0v/FZ0qo+r1W+zOuOrmtJrrk/SnafXf8A1vVrUghEfOf8EfMsMpH5B/hHZz+of42zq3puBp+bZkO/LTT/AOl1mu+uH+MLqGuHVa1p7Y2KXj/OfXe//pL0rB6F0fp4H2LCpoLeHtYN/wD26f0n/SV9HjgNof4yOCZ3n9j5H/68+8l36+I+Nf4exCdhf4ymDcXdTMeF1h/6LbCuk+tH1l6pb9bMHoPR7nVCu2sZDmfnPeQ5zX/8FTT9Nd6nHIYgHhjrqtEASRxS00fG39Q/xi4Z3Wu6iwDu9ljm/wDTY5ifH/xj/W3GdFt7L9v5l1TR9/pCl69jVfL6fg5rNmZj1ZDeItY1/wD1YKHuxO8An2pDaZeB6f8A429Q3qeDA72Y7v8A0Td/6XXYdH+tPQusgDBymutP+Af7LP8Att/0/wDre9ZHVP8AFp9XM0OdjNfgWnh1RLmT/Kps3f8AgfpLh+ufUDr/AEacilv2zGZ7hfRO9oH51lP84z+x6jP5aXDinseEovLHccQfZUl5V9V/8ZGbgvZidZc7LxPoi863M83H/Ds/rfpV6jj5FGTSzIx3ttptaHV2NMgg9wo5wMTr9rJCYkNEiSSSauUkkkkp/9D1VJJJJSlg5GOz6xZ9mPcd3SOnWBltQ4yMloDnMt/exsTc39H/AIXJ/wCIWp1TLdhdMzMxol2NRZcB4mtjrP8Avq5v/FlnNyvq8+tzt19F9nqk/SJsPrCx39fe5OiDwmXbRaSLEe+r1jGMY0MY0NY0Q1oEAAdgFJJVuo9Rw+mYdmbm2CqioS5x7+DWj857vzWpq5wvrnnfWrFGGz6vUG31XkXvawWERt9Njw+W1VP9++3/AMErW1nZ7endLtz8uB9nqNlobwXAfQZP7z/Yxcl9TusdY+sX1gzeouusq6Tj6VYsjbucNlLHfvba2vtt/wCFVD/Gb9aKLqx0HDs3lrw7Nc3gFv8AN48/nO3++39z2KXgJlGFDT5iP2sfGADOzr8oLP8AxbdMuzuoZn1mzRue9720k97LDvyLW/1Wu9Jv9exeiryzFt+sWT9XzkYuV+wug9PqLaHyW2XvaPc/fXtsdZkXfuP9P1PZX6q0fqd9b83H+r3UM/rVlmTRhvY3GseZse94duxw9309v6J25/8ApEckDIk6aacKISAAGu12+hJLzazP+tXW+l5HXMrqbehdMY1xxa65a6wtnaxr2urudve309+/6f8ANULT+pH1hy6/qxldS67e5+NjWEVX2mXuaA39G1zvdb+l9lf8tNOMgXYNGqXDICaojS7eso6n07IyrcOjJqtycf8AnqWOBe3XadzR+676StLxWsdWxKMv614lx6dXk3vqxmn3WWi1xssZU5zfoUtb77v5C9P+p2T1PL+ruJk9UdvyLgXB5ABNZcfRc/aGt91aU8fCLBvp9UQycRoiuv0cT66/ULH6hTZ1HpVYqz2AvspYIbd+97fzb/8Az6sv/FZ1y5mTd0K9xNbmm7GB/Ne3+erH9dv6T+wvSlwGH0X7N/jRsfjjbSKn5bwOB6rDS8H+tkWb0YyuEoy6CwiUalGUepovfpJJKJlUkkkkp//R9VSSSSUiysevKxbsW3Wu9jq3j+S8Fjv+qXjnReqZ/wBS/rFdRksLq2u9LMpGm9g1rur3fna+rT/I/rr2hc39cPqbjfWKkW1kUdRqbFVx+i4c+jdH5m78/wDwakxyAsS+WTHkiTRj80Xb6f1HC6niMzMG1t1FnDm9j+65v0mPb+45cD/jYxsjdi5b7z9l2iqnGE/zs2Pvvd+Z/NejWuVqyPrJ9UOouYN+Hd+dW73VWNHeNarmf8Ixdhgf4x+hdUrZj/WPBY0tIcLDWL6d37/pvD7av7PrJ4xmEhKPqj4LDMTiYy9Jcz6u5PWsvoTej/V+k4VA3WdS6tado3H6Yqc2foVNYz2fpf8AiVm/Uz6q/t/qbn2B37MxnTc86F/dlGn59n+F2/QZ/YXrHTepdHzqWt6bfTdU0QK6i32jwNTfdX/mqzjYuNiVCnFpZRUNRXU0MbJ/ksDWoHKRxUKJXDEDw2bAfGH9XwM/qORb9YHZRxKXH7H0/HIaxkHYyjbY4Mxqq627P0TN6v8AXWfWDP6A26rpw6Z9X8JzTTigHcd0t+02bh6lv0/dc70/53/CL1MdL6YMk5Yw6BkuMuv9NnqE+Jt271Zc1rmlrgC0iCDqCCl7wsVHZXtHW5bvjXTrvql9koyOsZOb1DIqaGt6eBtY2Pa2sWF/8z+76dtX/Frqen9F6l9arKL+rY/7M6DiR9j6YyWl4H0XWfR9u3/CbGf8D/pV2NHSOk49vrY+Fj028+pXUxrp/rtbuVxCWW9vx6f3Uxx1v+HX+8+TfX7qWNZ9YsfpTqyzpnSgyt1NQ2khwZZb6Tfa1v6LZSxdl9Vsr6xdSzH9QzKB0/pDafSwsHh0lzHMvdoHe2uvZ/g/+CrWn1K36uYN4z+pfZKclo9t9oZ60D/RuI9Z39hc31P/ABn4LX/ZuiY1nUMl521uILWEnjZX/SLf6mypGzKIEY7DcooRkTKW52ewz8/E6divy8y1tNFYlznfg1o/Oe78xjVnfV/Euc7J6zmVmrL6mWuFTvpVUMG3Fod/wmz9Lf8A8LYsron1e6v1LLr6z9a3+paw7sTpw/mqj2sfWPZ6v+tv/B9cozQ0BvuV4s6kV2UkkkmrlJJJJKf/0vVUlm/t/B/0WZ/7A5f/ALypft/B/wBFmf8AsDl/+8qPCexRY7h0klm/t/B/0WZ/7A5f/vKl+38H/RZn/sDl/wDvKlwnsVWO4bOf07A6lQcfOoZkVH814mP5TT9Jjv5TFxfVf8VGDaXWdKynYzjqKbh6jP6rbBttZ/a9ZdX+38H/AEWZ/wCwOX/7ypft/B/0WZ/7A5f/ALyp0TOO1rZCEt6fLcv/ABdfWzCfvppbkBuosx7BP9ltno2/9BQZl/4wOl+2eo1NbwLG2PYP6vqtsrXqv7fwf9Fmf+wOX/7ypft/B/0WZ/7A5f8A7yp/uy6xB+iz2o9JEfV8uH+ML65UQLsgHX/CU1iY7e2utT/8c360/wCkp/7aH969O/b+D/osz/2By/8A3lS/b+D/AKLM/wDYHL/95UuMf5pXAf8AOPmY+u/18yiRjl8ntVjNd/1VdimMP/Gb1fR5zGMdo4WP+zNj+VW40f8AUL0n9v4P+izP/YHL/wDeVL9v4P8Aosz/ANgcv/3lS9ztjA+iuDvMn6vDdO/xU5lz/V6vmtZJlzKJe8/1rrdrWO/sXLtui/VjovRG/qGOG2kQ7If7rT/1x30f6lexin+38H/RZn/sDl/+8qX7fwf9Fmf+wOX/AO8qbKU5b35L4xhHanSSWb+38H/RZn/sDl/+8qX7fwf9Fmf+wOX/AO8qZwnsV1juHSSWb+38H/RZn/sDl/8AvKl+38H/AEWZ/wCwOX/7ypcJ7FVjuHSSWb+38H/RZn/sDl/+8qSXCexVY7h//9P1VJfKqSSn6qSXyqkkp+qkl8qpJKfqpJfKqSSn6qSXyqkkp+qkl8qpJKfqpJfKqSSn6qSXyqkkp+qkl8qpJKfqpJfKqSSn/9kAOEJJTQQhAAAAAABVAAAAAQEAAAAPAEEAZABvAGIAZQAgAFAAaABvAHQAbwBzAGgAbwBwAAAAEwBBAGQAbwBiAGUAIABQAGgAbwB0AG8AcwBoAG8AcAAgAEMAUwAzAAAAAQA4QklNBAYAAAAAAAcACAAAAAEBAP/hEHxodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDQuMS1jMDM2IDQ2LjI3NjcyMCwgTW9uIEZlYiAxOSAyMDA3IDIyOjQwOjA4ICAgICAgICAiPiA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPiA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIiB4bWxuczpkYz0iaHR0cDovL3B1cmwub3JnL2RjL2VsZW1lbnRzLzEuMS8iIHhtbG5zOnhhcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIgeG1sbnM6eGFwTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczpwZGY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vcGRmLzEuMy8iIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iIHhtbG5zOmV4aWY9Imh0dHA6Ly9ucy5hZG9iZS5jb20vZXhpZi8xLjAvIiBkYzpmb3JtYXQ9ImltYWdlL2pwZWciIHhhcDpDcmVhdG9yVG9vbD0iQWRvYmUgUGhvdG9zaG9wIENTMyBXaW5kb3dzIiB4YXA6Q3JlYXRlRGF0ZT0iMjAwOC0xMi0xN1QxNToxNjoxNSswMTowMCIgeGFwOk1vZGlmeURhdGU9IjIwMDgtMTItMThUMTU6MDc6MzcrMDE6MDAiIHhhcDpNZXRhZGF0YURhdGU9IjIwMDgtMTItMThUMTU6MDc6MzcrMDE6MDAiIHhhcE1NOkRvY3VtZW50SUQ9InV1aWQ6QTM4NUU4RTE0NENDREQxMThGOENCNEMzRjQzN0JCN0QiIHhhcE1NOkluc3RhbmNlSUQ9InV1aWQ6MTI4RDZGMzEwQUNEREQxMUJGQTA5NEE3MkEyM0JGMjAiIHBkZjpQcm9kdWNlcj0iQWRvYmUgUERGIGxpYnJhcnkgNy43NyIgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIiBwaG90b3Nob3A6SGlzdG9yeT0iIiB0aWZmOk9yaWVudGF0aW9uPSIxIiB0aWZmOlhSZXNvbHV0aW9uPSI3MjAwMDAvMTAwMDAiIHRpZmY6WVJlc29sdXRpb249IjcyMDAwMC8xMDAwMCIgdGlmZjpSZXNvbHV0aW9uVW5pdD0iMiIgdGlmZjpOYXRpdmVEaWdlc3Q9IjI1NiwyNTcsMjU4LDI1OSwyNjIsMjc0LDI3NywyODQsNTMwLDUzMSwyODIsMjgzLDI5NiwzMDEsMzE4LDMxOSw1MjksNTMyLDMwNiwyNzAsMjcxLDI3MiwzMDUsMzE1LDMzNDMyO0VDRjZFQTIwMzcyMERBNDQzRDI2MDgxQkFBM0NBMTNDIiBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTUwIiBleGlmOlBpeGVsWURpbWVuc2lvbj0iNjUiIGV4aWY6Q29sb3JTcGFjZT0iMSIgZXhpZjpOYXRpdmVEaWdlc3Q9IjM2ODY0LDQwOTYwLDQwOTYxLDM3MTIxLDM3MTIyLDQwOTYyLDQwOTYzLDM3NTEwLDQwOTY0LDM2ODY3LDM2ODY4LDMzNDM0LDMzNDM3LDM0ODUwLDM0ODUyLDM0ODU1LDM0ODU2LDM3Mzc3LDM3Mzc4LDM3Mzc5LDM3MzgwLDM3MzgxLDM3MzgyLDM3MzgzLDM3Mzg0LDM3Mzg1LDM3Mzg2LDM3Mzk2LDQxNDgzLDQxNDg0LDQxNDg2LDQxNDg3LDQxNDg4LDQxNDkyLDQxNDkzLDQxNDk1LDQxNzI4LDQxNzI5LDQxNzMwLDQxOTg1LDQxOTg2LDQxOTg3LDQxOTg4LDQxOTg5LDQxOTkwLDQxOTkxLDQxOTkyLDQxOTkzLDQxOTk0LDQxOTk1LDQxOTk2LDQyMDE2LDAsMiw0LDUsNiw3LDgsOSwxMCwxMSwxMiwxMywxNCwxNSwxNiwxNywxOCwyMCwyMiwyMywyNCwyNSwyNiwyNywyOCwzMDszMUU1OEY0RTE0MjZFOTUwNkZCQzg0MDk5QjhFNTQwRSI+IDxkYzp0aXRsZT4gPHJkZjpBbHQ+IDxyZGY6bGkgeG1sOmxhbmc9IngtZGVmYXVsdCI+bG9nby1ibGV1PC9yZGY6bGk+IDwvcmRmOkFsdD4gPC9kYzp0aXRsZT4gPHhhcE1NOkRlcml2ZWRGcm9tIHN0UmVmOmluc3RhbmNlSUQ9InV1aWQ6ZDgyNjIwZDYtYWIwNS00MzEzLWE3M2UtZDhkNjY2ZjdkNzE4IiBzdFJlZjpkb2N1bWVudElEPSJ1dWlkOjAxRTNGMTk3MzQ2OUREMTE4QTkwODNDMEEzMjFCRDE2Ii8+IDwvcmRmOkRlc2NyaXB0aW9uPiA8L3JkZjpSREY+IDwveDp4bXBtZXRhPiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg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
# D. Connil et D. Löhrer (Dir.), ''40 ans d’application de la Constitution portugaise'', Institut Universitaire Varenne, Collection Colloques et Essais, 2017
# « ''Les politiques managériales de régulation de l’accès au juge ou le spectre d’une économie à courte vue'' », `in` G. Payan et J.-J. Pardini (dir.), //La régulation des recours juridictionnels et les exigences du procès équitable//, `à paraître`
# « ''Le nonsense dans le procès d’Alice aux pays des merveilles : une satire heuristique de la justice victorienne'' », Considérant, 2019, n°1, pp. 65-76 (`à paraître`)
# « ''Agriculture bio et droit constitutionnel : un droit « au » bio ?'' », `in` M. Touzeil-Divina et H. Hoepffner, //Droit(s) du bio//, Editions l'Epitoge, Collection l'Unité du droit, 2018, pp. 77-87.
# « ''Coût économique du procès et inégal accès au juge – Analyse d’un facteur de non-recours au juge'' », `in` L. De Fontenelle, J. Laussat, Th. Moretto (dir.), //La valeur économique en droit public//, l'Harmattan, 2019 (`à paraître`)
# « ''Le Défenseur des droits et la protection des droits de l’homme par les collectivités territoriales'' », `in` C. Le Bris (sous la dir.), //Droits de l’homme et collectivités territoriales : entre le global et le local//, Paris, Mare et Martin, 2019 (`à paraître`)
# « ''L’influence de la Constitution portugaise de 1976 sur les textes constitutionnels des pays lusophones – Réflexions au sujet de l’existence d’un modèle constitutionnel lusitanien'' », `in` D. Connil et D. Löhrer (Dir.), //40 ans d’application de la Constitution portugaise//, Institut Universitaire Varenne, Collection Colloques et Essais, 2017, pp. 251-280
# « ''L’influence de la Constitution portugaise de 1976 sur les textes constitutionnels des pays lusophones – Réflexions au sujet de l’existence d’un modèle constitutionnel lusitanien'' », Revue française de droit constitutionnel, 2018/3 (n°115), pp. 549-578.
# « ''L’assemblée délibérante communale espagnole : un rouage central de la démocratie locale'' », `in` Th. Di Manno et A. Le Quinio (dir.), //Quelle(s) commune(s) pour le XXIème siècle? Approche de droit comparé//, L'Harmattan, 2018, p. 107
#* (déjà référencé dans HAL mais seulement en tant que communication dans un congrès. Les actes de publication n'y figurent pas)
# D. Connil et D. Löhrer, « ''La question écossaise : entre volonté politique et conséquences institutionnelles'' », `in` O. Lecucq (Dir.), //Sécession et processus sécessionniste en droit international, européen et constitutionnel//, Institut Universitaire Varenne, Kultura, n°6, 2017, pp. 165-180
#* (déjà référencé dans HAL mais seulement en tant que communication dans un congrès. Les actes de publication n'y figurent pas)
# « ''Sens et essence de la fête'' », `in` A. Azarette, E. Guerrero, Th. Moretto (Dir.), //Fête et droit public//, L’Harmattan, 2017, pp. 13-45
#* (déjà référencé dans HAL mais seulement en tant que communication dans un congrès. Les actes de publication n'y figurent pas)
# D. Connil, D. Löhrer, M. Melo Egídio, « ''Droit constitutionnel étranger – Chronique de droit constitutionnel portugais'' », Revue française de droit constitutionnel, 2019 (`à paraître`)
# « ''Chronique Espagne'' » (en collaboration), Annuaire international de justice constitutionnelle 2016, Paris-Aix-en-Provence, Economica-PUAM, 2018, Vol. XXXIII
# « ''Chronique Espagne'' » (en collaboration), Annuaire international de justice constitutionnelle 2016, Paris-Aix-en-Provence, Economica-PUAM, 2017, Vol. XXXII
.cm-s-lucario.CodeMirror, .cm-s-lucario .CodeMirror-gutters {
background-color: #2b3e50 !important;
color: #f8f8f2 !important;
border: none;
}
.cm-s-lucario .CodeMirror-gutters { color: #2b3e50; }
.cm-s-lucario .CodeMirror-cursor { border-left: solid thin #E6C845; }
.cm-s-lucario .CodeMirror-linenumber { color: #f8f8f2; }
.cm-s-lucario .CodeMirror-selected { background: #243443; }
.cm-s-lucario .CodeMirror-line::selection, .cm-s-lucario .CodeMirror-line > span::selection, .cm-s-lucario .CodeMirror-line > span > span::selection { background: #243443; }
.cm-s-lucario .CodeMirror-line::-moz-selection, .cm-s-lucario .CodeMirror-line > span::-moz-selection, .cm-s-lucario .CodeMirror-line > span > span::-moz-selection { background: #243443; }
.cm-s-lucario span.cm-comment { color: #5c98cd; }
.cm-s-lucario span.cm-string, .cm-s-lucario span.cm-string-2 { color: #E6DB74; }
.cm-s-lucario span.cm-number { color: #ca94ff; }
.cm-s-lucario span.cm-variable { color: #f8f8f2; }
.cm-s-lucario span.cm-variable-2 { color: #f8f8f2; }
.cm-s-lucario span.cm-def { color: #72C05D; }
.cm-s-lucario span.cm-operator { color: #66D9EF; }
.cm-s-lucario span.cm-keyword { color: #ff6541; }
.cm-s-lucario span.cm-atom { color: #bd93f9; }
.cm-s-lucario span.cm-meta { color: #f8f8f2; }
.cm-s-lucario span.cm-tag { color: #ff6541; }
.cm-s-lucario span.cm-attribute { color: #66D9EF; }
.cm-s-lucario span.cm-qualifier { color: #72C05D; }
.cm-s-lucario span.cm-property { color: #f8f8f2; }
.cm-s-lucario span.cm-builtin { color: #72C05D; }
.cm-s-lucario span.cm-variable-3, .cm-s-lucario span.cm-type { color: #ffb86c; }
.cm-s-lucario .CodeMirror-activeline-background { background: #243443; }
.cm-s-lucario .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
!!!Ouvrages scientifiques ou chapitres d’ouvrages (OS)
*Ouvrage en collaboration
# Féminisme et prostitution dans l'Angleterre du XIXe siècle : la croisade de Joséphine Butler, Lyon, ENS Editions, coll. « Les fondamentaux du féminisme anglo-saxon », 2013 (en collaboration avec Frédéric Regard [dir.] et Sylvie Regard). pp. 9-38; 149-223, 285-294.
*Chapitres d'ouvrages
# « The Relation to the Other in Wolf Solent by John Cowper Powys », in Christine Reynier & J.M. Ganteau (eds.), Ethics of Alterity: Confrontation and Responsibility in 19th to 20th Century British Literature, Montpellier : Presses universitaires de la Méditerranée, 2013, pp. 121-132.
# « ''La 'décriture' du visage à l'époque moderniste : Katherine Mansfield et Virginia Woolf'' » `in` Fabienne Gaspari (ed.), //L'écriture du visage dans les littératures francophones et anglophones. De l'âge classique au XXIe siècle//. Paris : L'Harmattan, `2016`, pp. 127-148.
# « ''Jeunes femmes en lecture chez May Sinclair, Dorothy Richardson et Rosamond Lehmann'' » `in` Fabienne Gaspari (ed.), //Le corps du lecteur et ses représentations littéraires//. Paris : l'Harmattan, `2018`, pp. 173-199.
!!! Direction ou co-direction d’ouvrages ou de revues (DO)
# Le fou - cet autre, mon frère, Rives, Cahiers de l'Arc Atlantique, n° 7, Paris : L’Harmattan, Paris, 2012.
# La pensée de l’origine. Ouvrage collectif en ligne lines.fr3, Revue en ligne d’études anglaises, 3, 2006. Coédition avec Michael Parsons et Fabienne Gaspari.
# Pouvoir et autorité. Ouvrage collectif en ligne lines.fr4 , Revue en ligne d’études anglaises, 4, 2007. Coédition avec Michael Parsons et Fabienne Gaspari.
# Premières rencontres avec l’autre, Rives, Cahiers de l'Arc Atlantique, n° 1, Paris : L’Harmattan, 2010. Coédition avec Michael Parsons et Fabienne Gaspari
# ''Le genre, effet de mode ou concept pertinent'' ? Peter Lang, `2016`. Coédition avec Nadia Mékouar-Hertzberg et Nadine Laporte.
!!! Articles dans des revues internationales ou nationales avec comité de lecture (ACL)
* Revues internationales
# « Writing the Sea in Weymouth Sands », The Powys Journal, volume XVI, 2006, pp. 49-65.
# « ‘Encroaching Fields’ in Weymouth Sands », The Powys Journal, volume XVII, 2008, pp. 85-104.
# « Dancing after her fashion: John Cowper Powys and Isadora Duncan », The Powys Journal, volume XX, 2010, pp. 49-66.
# "'''Translating books might lead to Wanderjahre': Deadlock as Blissful Babel''", Pilgrimages: A Journal of Dorothy Richardson Studies, 8 / 2016, online since August `2016`, pp. 54-73.
* Revues nationales
# « John Cowper Powys dans le contexte moderniste : le hors-texte au coeur du texte », Etudes britanniques contemporaines n° 30, juin 2006, pp. 41-54.
# « Powys and Bakhtin 'en dialogue': Two Contemporary Views on Rabelais », Etudes britanniques contemporaines n° 33, décembre 2007, pp. 75-88.
# « Parcours de la représentation du paysage chez John Cowper Powys : détour par la peinture de Rodmoor à Weymouth Sands », Polysèmes,n°10, 2007, pp. 15-28, ou [En ligne], 10 | 2008, mis en ligne le 01 mars 2015. URL : http://journals.openedition.org/625
# « L’envers du décor chez les peintres du Bloomsbury Group », Etudes britanniques contemporaines n° 34, juin 2008, pp. 11-28.
# « A Glastonbury Romance de John Cowper Powys: mortifères ressassements ou fécondes remémorations », Etudes britanniques contemporaines n° 36, juin 2009, pp. 1-18 OUÉtudes britanniques contemporaines [Online], 36 | 2009, mis en ligne le 08 Septembre 2017.
# « Formes allogènes dans Wolf Solent de John Cowper Powys : le cas des poèmes de Jason Otter », Formes allogènes dans le discours : imbrications et résonances dans la littérature et les arts anglophones, Rives, Cahiers de l’Arc Atlantique, n° 6, Paris : L’Harmattan, 2011, pp. 161-177.
# « ‘Dix heures de la vie d’une femme’ ou l’écriture de l'ordinaire dans The Tunnel de Dorothy Richardson », Méthode !,n° 21, Vallonges 2012, pp. 55-66.
# « Hardyan Ruins in John Cowper Powys’s A Glastonbury Romance (1932) and Maiden Castle (1936) », Etudes britanniques contemporaines n°43, décembre 2012, pp. 43-52, OU Études britanniques contemporaines [En ligne], 43 | 2012, mis en ligne le 03 Octobre 2014. URL : http://journals.openedition.org/ebc/1319
# « Fuir en compagnie des fous : la problématique de l’aliénation et de l’altérité chez John Cowper Powys », Rives, Cahiers de l’Arc Atlantique, n° 7, Paris : L’Harmattan, 2012, pp. 173-194.
# « Pilgrimage de Dorothy Richardson ou l'art du dé-place-ment et de la dérive comme réponse à l'appelation », Etudes britanniques contemporaines [En ligne], 46 / 2014, mis en ligne le 03 juin 2014.
# « Une œuvre de Londres : Pilgrimage de Dorothy Richardson », Études britanniques contemporaines [En ligne], 47 | 2014, mis en ligne le 01 novembre 2015. DOI:`10.4000/ebc.1947`
# « ''La vulnérabilité dans et de Pilgrimage de Dorothy Richardson'' », Leaves [En ligne], N°3 – Vulnérabilité/Vulnerability – `Jan 2017` ; http://climas.u-bordeaux3.fr/leaves
# ''Au confluent exactement : //Deadlock// (1921), //Revolving Lights// (1923) et //The Trap// (1925) de Dorothy Richardson'' [Texte intégral] , Études britanniques contemporaines [En ligne], 52 | `2017`, mis en ligne le 01 juin 2017.
!!!Communications avec actes dans un congrès international ou national (ACT)
# « À l'origine est le rythme : réflexions autour du 'paysage originel' de J. C. Powys », lines.fr 4.
# « New York dans After My Fashion de J.C. Powys ou les ambivalences d'une ville à l'oeuvre », Parcours urbains, Cahiers du CICC, Paris : L’Harmattan, 2010, pp. 165-180.
# « Les chemineaux dans Down and Out in Paris and London de George Orwell », Desvois F & Munro-Landi M. (eds.), Le vagabond en Occident, Paris : L’Harmattan, 2012, pp. 43-58.
# « D’un passeur à l'autre dans Deadlock (1921) de Dorothy Richardson », P. Antolin, A. Schmitt, S. Barrett, P. Veyret (sous la dir.), La Figure du passeur, Pessac: MSHA, 2014, pp. 189-206.
# « ''Une lecture de Pilgrimage de Dorothy Richardson à l’aune du concept de genre'' », Mékouar-Hertzberg N., F. Marie & N. Laporte (eds.), //Le genre, effet de mode ou concept pertinent// ? Peter Lang, `2016`, pp. 215-230.
# « ''La parole rapportée de l'autre dans //Pointed Roofs// (1915) de Dorothy Richardson: enchâssement et sédimentation'' », Copy C., D. Diop, M-F. Marein & B. Moricheau-Airaud, //Les Illusions de l'autonymie//, Paris: Hermann Editeurs, `2019`, pp. 171-187.
!!! Autres publications
# « Pour une approche phénoménologique de Wolf Solent de J.C. Powys », La lettre powysienne n° 8, automne 2004, pp. 24-37.
!!! Comptes-rendus critiques - Recensions
# Janet Fouli (ed.), Powys and Dorothy Richardson - The Letters of John Cowper Powys and Dorothy Richardson. Pilgrimages: A Journal of Dorothy Richardson Studies,Issue Number 3, 2010.
# Leigh Wilson, Modernism and Magic. Experiments with Spiritualism, Theosophy and the Occult. Etudes britanniques contemporaines, 47 / 2014.
# ''Isabelle Brasmes, //Parade’s End// de Ford Madox Ford : vers une esthétique de la crise'', Études britanniques contemporaines [En ligne], 55 | 2018, mis en ligne le 01 décembre `2018`. URL : http://journals.openedition.org/ebc/5705
!!!Conférences invitées
# Août 2007 : « ‘Encroaching Fields’ in Weymouth Sands by John Cowper Powys » | Conférence de la Powys Society à Llangollen (Pays de Galles).
# 19 Décembre 2013 : « Le temps chez les modernistes : le cas de Mrs Dalloway de V. Woolf. » | Au Lycée Pierre de Fermat (Toulouse)
# `09 février 2016` : « ''Joséphine Butler : une féministe atypique''. » | Les rencontres mensuelles de l’UTLA. UPPA.
# `02 Octobre 2017` : « ''Heart of Darkness de J. Conrad ou la déconstruction de l’aventure''. » | Au Lycée Pierre de Fermat (Toulouse)
.cm-s-material.CodeMirror {
background-color: #263238;
color: rgba(233, 237, 237, 1);
}
.cm-s-material .CodeMirror-gutters {
background: #263238;
color: rgb(83,127,126);
border: none;
}
.cm-s-material .CodeMirror-guttermarker, .cm-s-material .CodeMirror-guttermarker-subtle, .cm-s-material .CodeMirror-linenumber { color: rgb(83,127,126); }
.cm-s-material .CodeMirror-cursor { border-left: 1px solid #f8f8f0; }
.cm-s-material div.CodeMirror-selected { background: rgba(255, 255, 255, 0.15); }
.cm-s-material.CodeMirror-focused div.CodeMirror-selected { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::selection, .cm-s-material .CodeMirror-line > span::selection, .cm-s-material .CodeMirror-line > span > span::selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-line::-moz-selection, .cm-s-material .CodeMirror-line > span::-moz-selection, .cm-s-material .CodeMirror-line > span > span::-moz-selection { background: rgba(255, 255, 255, 0.10); }
.cm-s-material .CodeMirror-activeline-background { background: rgba(0, 0, 0, 0); }
.cm-s-material .cm-keyword { color: rgba(199, 146, 234, 1); }
.cm-s-material .cm-operator { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-variable-2 { color: #80CBC4; }
.cm-s-material .cm-variable-3, .cm-s-material .cm-type { color: #82B1FF; }
.cm-s-material .cm-builtin { color: #DECB6B; }
.cm-s-material .cm-atom { color: #F77669; }
.cm-s-material .cm-number { color: #F77669; }
.cm-s-material .cm-def { color: rgba(233, 237, 237, 1); }
.cm-s-material .cm-string { color: #C3E88D; }
.cm-s-material .cm-string-2 { color: #80CBC4; }
.cm-s-material .cm-comment { color: #546E7A; }
.cm-s-material .cm-variable { color: #82B1FF; }
.cm-s-material .cm-tag { color: #80CBC4; }
.cm-s-material .cm-meta { color: #80CBC4; }
.cm-s-material .cm-attribute { color: #FFCB6B; }
.cm-s-material .cm-property { color: #80CBAE; }
.cm-s-material .cm-qualifier { color: #DECB6B; }
.cm-s-material .cm-variable-3, .cm-s-material .cm-type { color: #DECB6B; }
.cm-s-material .cm-tag { color: rgba(255, 83, 112, 1); }
.cm-s-material .cm-error {
color: rgba(255, 255, 255, 1.0);
background-color: #EC5F67;
}
.cm-s-material .CodeMirror-matchingbracket {
text-decoration: underline;
color: white !important;
}
[[lien vers Mathscinet|http://www.ams.org/mathscinet/]]
pour... les maths
!!!Direction d’ouvrages (DO)
# Femme et écriture dans la péninsule ibérique sous la direction de Maria-Graciete Besse et de Nadia Mékouar-Hertzberg, tome I, L’Harmattan, Paris, 2004, 288 p.
# Femme et écriture dans la péninsule ibérique sous la direction de Maria-Graciete Besse et de Nadia Mékouar-Hertzberg, tome II, L’Harmattan, Paris, 2004, 230 p.
# Nouvelles figures maternelles dans la littérature espagnole contemporaine. Les « mères empêchées », sous la direction de Nadia Mékouar-Hertzberg, Éditions de l’Harmattan, Paris, 2009, 311 p.
# Rencontres avec Gradiva – Hommage à Michèle Ramond, sous la direction de Milagros Ezquerro et de Nadia Mékouar-Hertzberg, Indigo-Côté Femmes, Paris, 2013, 570 p.
# Verdades y secretos de los textos de Clara Janés – Secrets and truths in the texts of Clara Janés, sous la direction de Nadia Mékouar-Hertzberg, Bern, Peter Lang, (ISBN 978-3-0343-1373-5), 2014, 278 p.
# ''Les paradigmes du Féminin/Masculin sont-ils encore utiles ?'', numéro 3 de la revue en ligne Líneas (Revue interdisciplinaire d’études hispaniques, http://revues.univ-pau.fr/lineas/394), `2015`, coordonné par Nadia Mékouar-Hertzberg et Michèle Ramond
# Le genre : effet de mode ou concept pertinent ?, sous la direction de Nadia Mékouar-Hertzberg, de Florence Marie et de Nadine Laporte, Bern : Peter Lang, 2016, 276 p.
# ''La cuestión de la diferencia/La question de la différence – La différence en question/ La diferencia en cuestión'', sous la direction de Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña, Saragosse : Mira Editores, `2016`, 607 p.
# ''La misogynie – Des vestiges du passé aux combats d’aujourd’hui'', sous la direction de Maurice Daumas et de Nadia Mékouar-Hertzberg, Bern, Peter Lang, `2016`, 227 p.
# ''La misogynie – Enjeux politiques et culturels'', sous la direction de Nadia Mékouar-Hertzberg et de Maurice Daumas, Pau, PUPPA, `2016`, 187 p.
# ''Genre et jouissance'', sous la direction de Catherine Flepp et de Nadia Mékouar-Hertzberg, Paris, l’Harmattan, `2017`, 311 p.
# ''Le sujet en question - Ce qu’en pensent la littérature et la philosophie'' sous la direction de Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña, Berne, Peter Lang, `2018`, 254 p.
# ''Histoires de folles – Raison et déraison, liaisons et déliaisons'', sous la direction de Nadia Mékouar-Hertzberg et de Stéphanie Urdician, Binges, Orbis Tertius, `2019`, 363 p.
!!! Ouvrages scientifiques (ou chapitres) (OS)
* Ouvrages
# L’univers romanesque de Rosa Montero. Histoire d’un cheminement. Nadia Mékouar-Hertzberg, ANRT, Lille, 2006, 461 p.
# Une autre écriture de l’intimité - Les jardins et les labyrinthes de Clara Janés, Nadia Mékouar-Hertzberg, L’Harmattan, Paris, 2012, 256 p.
*Chapitres
# « Rosa Montero, El puñal en la garganta. A l’amour comme à la guerre » in Délits, violences et conflits dans la littérature espagnole, sous la direction de C. Manso, l’Harmattan, Paris, 2004, p.305-325.
# « Une pratique improbable des pouvoirs : réflexions autour de Rosa Montero et de son œuvre romanesque », in Femmes, pouvoirs, créations, sous la direction de Michèle Ramond, Indigo, Paris, 2005, p.39-59.
# « La dimensión del exilio en La tumba de Antígona (María Zambrano) » in Exilios-Desexilios en el mundo hispánico contemporáneo : los caminos de la identidad, textes réunis par Emmanuel Larraz, Hispanística XX, Dijon, 2006, p.49-70.
# « Relations épistolaires entre Rosa Chacel et Ana-María Moix : l’émergence d’une mère spirituelle ? » in Femmes et filiations, sous la direction de Béatrice Rodriguez, Indigo, Paris, 2008, p.123-140.
# Dictionnaire des littératures hispaniques, sous la direction de Jordi Bonells, Robert Laffont, Paris, 2009 : article Rosa Montero, p.941, article Esther Tusquets, p.1419, article Cristina Fernández-Cubas, p.520.
# « Mères empêchées dans la littérature espagnole contemporaine : des mères autres », in Nouvelles figures maternelles dans la littérature espagnole contemporaine. Les mères empêchées, sous la direction de Nadia Mékouar-Hertzberg, Éditions de l’Harmattan, Paris, 2009, p. 9-19.
# « Les faiseuses de sacré : quelques figures féminines de l’œuvre de Clara Janés » in Les sujets contemporains et leurs mythes en Espagne et en Amérique Latine sous la direction de Michèle Ramond, Rilma 2 & ADEHL, Paris, 2010, p. 223-235.
# « Rosa Montero » in La narrativa española de hoy 2000-2010 – La imagen en el texto (vol. 1), sous la direction de Natalie Noyaret, Peter Lang (collection LEIA/Liminaires), Berne, 2011, pp. 241-266.
# « Le féminin en détails » in Rencontres avec Gradiva, sous la direction de Milagros Ezquerro et de Nadia Mékouar-Hertzberg, Indigo-Côté Femmes, Paris, Indigo-Côté Femmes, 2013, p.326-342.
# « ''Ce que le genre apporte à la littérature – Ce que la littérature apporte au genre'' », `in` //Le genre : effet de mode ou concept pertinent ?//, sous la direction de Nadia Mékouar-Hertzberg, de Florence Marie et de Nadine Laporte, Bern : Peter Lang, `2016`, pp.167-185.
# « ''La misogynie ? – « Franchir de hauts barrages ... »'' `in` //La misogynie – Des vestiges du passé aux combats d’aujourd’hui//, sous la direction de Maurice Daumas et de Nadia Mékouar-Hertzberg, Bern, Peter Lang, `2016`, pp.218-227.
# « ''Misogynie, violences et conflits dans la production littéraire des femmes en Espagne (1975-2000)'' » in //La misogynie – Enjeux politiques et culturels//, sous la direction de Nadia Mékouar-Hertzberg et de Maurice Daumas, Pau, PUPPA, `2016`, pp. 172-188.
# « ''Masculin/féminin en littérature : neutralité, mixité et différence'' » in //La cuestión de la diferencia/La question de la différence// sous la direction de Juan Manuel Aragues, Thierry Capmartin, Nadia Mékouar-Hertzberg et Alfredo Saldaña, Saragosse : Ediciones Mira, `2016`, p. 39-54.
!!! Articles dans des revues avec comité de lecture – Direction de dossiers (ACL)
# « Femmes et écriture dans la péninsule ibérique : le cas de l’Espagne », in Présences féminines, Latitudes, n°14 Cahiers Lusophones, Paris, mai 2002, p. 5-8.
# « Le féminin hors de lui » in Territoires, Revue d’études hispanistiques Pandora 10/2010 – sous la direction d’Annick Allaigre et de Perla Petrich, Université Paris 8, pp. 309-325
# "Textos de mujeres : ¿Habitar el límite entre los géneros ?" in La reconstrucción del género y el orden social en las literaturas hispánicas, sous la direction de Katarzyna Moszczyńska-Dürst et Magda Potock, Revista Sociocriticism (ISSN 0985 – 5939), vol. XXVIII, Institut International de Sociocritique, Málaga, 2013, pp. 91-115 http://revistaseug.ugr.es/index.php/sociocriticism
# “Construcciones de las subjetividades femeninas en literatura – El viaje de Penélope” in Oriente/Occidente – La construcción de la subjetividad femenina, Edurne Chocarro de Luis, Maria del Carmen Saénz Berceo (coord.), Logroño, Instituto de Estudios Riojanos (IER) ISBN 978‐84‐697‐0034‐1 https://publicaciones.unirioja.es/catalogo/online/igualdad_y_genero_3/contribuciones.shtml
# « D’une question à d’autres : quelques éléments d’approche théorique », in Les paradigmes Masculin/Féminin sont-ils encore utiles ?, Revue Líneas, 3/ décembre 2013, http://revues.univ-pau.fr/lineas/1118.
# « ''Escritura del yo imposible – En torno a las autobiografías femeninas'' », in Mujeres y Literatura, núm. 33, Revista Ambito, Revista de estudios de ciencias y humanidades, Córdoba, Año `2015`, pp. 23-29.
# « ''Les substrats d’une pensée du « genre » dans les textes de María Zambrano'' », Cahiers de civilisation espagnole contemporaine [En ligne], 20 | `2018`, URL : http://journals.openedition.org/ccec/7270 ; DOI : `10.4000/ccec.7270`
# ''Le concept de « genre » dans les mondes hispanophones et lusophones : des discours théoriques aux imaginaires des créations - El concepto de « género » en los mundos hispanohablantes y lusófonos : de los discursos teóricos a los imaginarios de las creaciones'' », numéro 13 de la Revue Iberic@l, Paris Sorbonne Université, coordonné par C. Flepp, N. Mékouar-Hertzberg et M. Soriano.
!!! Actes – comités de lecture (ACT)
# « Correspondencia privada , Esther Tusquets. Le détournement de l’Histoire à des fins privées », in Histoire, fiction et mémoire, GRILUA, Université d’Angers, 2003, p.237-247.
# « Rosa Montero : une vision de la littérature et de l’écriture » in Femme et écriture dans la péninsule ibérique, sous la direction de Maria-Graciete Besse et de Nadia Mékouar-Hertzberg, volume 2, L’Harmattan, Paris, 2004, p.119-129.
# « La mère comme sujet en partance » in La femme existe-t-elle ?, sous la direction de Michèle Ramond, ADEHL, Méjico, 2006, p.259-269.
# « Les revers du Savoir » in Terra incognita. Femmes, savoirs, créations, sous la direction de Michèle Ramond, Indigo, Paris, 2006, p.209-220.
# « L’affirmation du féminin non-présent dans El hombre de Adén, de Clara Janés » in L’Insistante/La insistente, sous la direction de Michèle Ramond, ADELH, Méjico/Paris, 2008, p.297-308.
# « Rabos de lagartija (Juan Marsé) : de l’en-deçà à l’au-delà ou le refus de l’immédiat » in L’autre dans ses œuvres. De l’en-deçà à l’Au-delà, sous la direction de Marielle Dubois-Lacoste, Indigo, Paris, 2008, p.82-100.
# « Raconter les mères empêchées », in Nouvelles figures maternelles dans la littérature espagnole contemporaine. Les mères empêchées, sous la direction de Nadia Mékouar-Hertzberg, Éditions de l’Harmattan, Paris, 2009, p. 219-237.
# « Antigone au cœur du Tartare » in Les Antigones contemporaines de 1945 à nos jours, sous la direction de Rose Duroux et de Stéphanie Urdician, Presses Universitaires Blaise Pascal, Clermont-Ferrand, 2010, p. 157-168
# « Lo secreto en los textos de Clara Janés » in Verdades y secretos de los textos de Clara Janés, Secrets and truths in the texts of Clara Janés, sous la direction de Nadia Mékouar-Hertzberg, Bern, Peter Lang, 2014, p. 105-125
# « ''La posibilidad de la luz – Clara Janés'' » in //L’image translucide dans les mondes hispaniques//, Gautreau, Marion, Peña Ardid, Carmen, Peyraga, Pascale, Kepa Sojo (eds.). Villeurbanne : Éditions Orbis Tertius, `2015`, pp. 533-555.
# « ''Figures d’écrivain.e.s et pratiques d’écriture'' » in //L’écrivain à l’oeuvre//, sous la direction de Anne Paoli et de Nathalie Noyaret, Éditions Orbis Tertius, `2017`, pp. 29-45.
# « ''Genre et jouissance : enjeux politique est esthétiques'' » in //Genre et jouissance//, sous la direction de Catherine Flepp et de Nadia Mékouar-Hertzberg, Paris, l’Harmattan, `2017`, pp. 9-21.
# « ''La parole intime en littérature : une parole « empêchée » ?'' » in //La parole empêchée// sous la direction de Danièle, James-Raoul, Peter Kuon, Elisabeth Magne, Sabine Forero-Mendoza, 2017, Gunther Narr Verlag, `2017`, pp. 197-213
# « Clara Janés - Desde la biblioteca hasta la Real Academia Española », Expertise favorable – `à paraître`
!!! Dictionnaires – Compte-rendu de lecture
# ''Dictionnaire des littératures hispaniques'', sous la direction de Jordi Bonells, Robert Laffont, Paris, `2009`
## article ''Rosa Montero'', p.941
## article ''Esther Tusquets'', p.1419
## article ''Cristina Fernández-Cubas'', p.520
#« La narrativa española de hoy (2000-2013) – III. La imagen en el texto de Natalie Noyaret : une vision originale de la « narrativa » espagnole actuelle » in Les langues Néo-Latines `décembre 2014`, n°371, "Actualité des concours", p. 175-177.
@@.note
[[membres (page du labo)|https://meps.univ-pau.fr/fr/organisation/membres.html]] | [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/MEPS]] | [[idHAL|idHAL-MEPS]]
@@
---
<<list-links [tag[MEPS]tag[publiant]]>>
---
@@column-count: 3;
!!! Enseignants-chercheurs
# [[Julien Bois|Bois, Julien]]
# [[Bruno Cormery|Cormery, Bruno]]
# [[Philippe Gastaud|Gastaud, Philippe]]
# [[Léna Lhuisset|Lhuisset, Léna]]
# [[Eric Margnes|Margnes, Eric]]
# [[Frédéric Noé|Noé, Frédéric]]
# [[Thierry Paillard|Paillard, Thierry]]
# [[Philippe Passelergue|Passelergue, Philippe]]
!!! Chercheurs associés
# [[Alberto Aibar|Aibar, Alberto]]
# [[Yannick Gasnier|Gasnier, Yannick]]
# [[Romain Dubois|Dubois, Romain]]
# [[Marc Janin|Janin, Marc]]
# [[Hervé Farfal|Farfal, Hervé]]
!!! Doctorants
# Caroline Bernal
# Benoit Catala
# Betty Hachard
# Karim Korchi
# Sofiane Kaabi
# Kevin Baige
!!! Ingénieurs de recherche
# [[Julien Maitre|Maitre, Julien]]
# [[Nicolas Fabre|Fabre, Nicolas]]
@@
<<list-links "[tag[LMAP]tag[publiant]tag[Méthodes Numériques et Fluides Complexes]]">>
!!!! Chercheurs, ingénieurs non permanents
# EL OSSMANI Mustapha (CR Associé)
# EL OTMANY Hammou (Ch. Associé)
# GOUT Jean-Louis (PR émérite)
# GRAEBLING Didier (PR associé)
# PANKRATOV Léonid (Dr. Associé), SOUS Damien (Ch. associé)
!!!! Doctorants
# DRIOUCH Abderrazzak
# ID MOULAY Mohamed.
!!! Post-Doctorants
# HUME Laurène.
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
<<list-links "[tag[LMAP]tag[publiant]tag[MESCAL]]">>
!!! Membres non permanents
!!!! Chercheurs
# FARHANA FAYSAL Titly (Post-Doctorante Inria)
# GUTTIEREZ ALVAREZ Enrique (Post-Doctorant Inria)
# MANGANE Papa (Post-Doctorant Inria)
# MASSON Yder (Starting Research Position, Inria)
# MASTRIPPOLITO Franck (Post-Doctorant, CNRS)
# TOURNEMENNE Robin (Post-Doctorant Inria)
!!!! Doctorants
# AFAILAL Al Hassan
# BIKKAANAHALLY MUNI REDDY Puneth
# CITRAIN Aurélien
# DUFFAL Vladimir
# FRAMBATI Stefano
# JACQUET Pierre
# JAMEEL Syed Mohd Saad
# LABAT Justine
# MANGEON Gaëtan
# MEYER Rose-Cloé
# RACHI Romeissa
# ROUXELIN Nathan
# SPORSCHILL Gustave
!!!! Membres Associés
# DURUFLE Marc (MCF, Enseirb Matmeca)
# MOGUEN Yann (LFCR)
!!!! Equipes projets Inria
# "MAGIQUE-3D"
# "CAGIRE"
* IdHAL : `berengere-moricheau-airaud`
* ORCID : `0000-0003-2551-6495`
!!! Direction d'ouvrages
# Co-édition, avec V. Loubet-Poëtte, des Cahiers de Didactique des Lettres, Revue de didactique des savoirs et des savoir-faire dans l’enseignement du français, créée en mai 2014.
# Co-édition, avec M.-F. Marein, C. Copy et D. Diop, ''Les Illusions de l'autonymie : la parole rapportée de l'Autre dans la littérature'', Paris, Hermann, `2019`.
!!! Chapitres d'ouvrages
# Giacomotto-Charra V. (dir.), Chapitre sur ''les Mémoires d'une jeune fille rangée'', `in` //Grammaire et Stylistique, Agrégation de Lettres 2019//, édition Ellipses, `2018`,
# Laporte N., Moricheau-Airaud B., ''Le livre des merveilles et le cuir du langage. Lecture de L’Usage du monde de Nicolas Bouvier'', Rouen, PURH, en co-édition avec le CNED, `2017`.
# Kerlouegan F., Moricheau-Airaud B., La Maison Tellier – Contes du jour et de la nuit de Guy de Maupassant, éditions Atlande, Neuilly, 2011 – Partie sur le travail du texte, p. 185-339.
# Dürrenmatt J., Narjoux, C. (dir.), « La Séduction du mot comme plongée dans l’intime », La langue de Sylvie Germain « En mouvement d’écriture », Études Universitaires de Dijon, 2011.
# Gosselin-Noat M., Moricheau-Airaud B., Sous le Soleil de Satan de Georges Bernanos, éditions Atlande, Neuilly, 2008 – Partie sur le travail du texte, p. 159-245.
!!! Articles en revue avec comité de lecture
* Nationale :
# « ''La représentation des discours de l'enfance dans les textes d'Annie Ernaux'' », in « `Enfances` », Revue critique de fixxion française contemporaine, D. Lévy-Bertherat et M. Lévêque (dir.), n° 17, `2018`.
# « ''L’épigramme, patron des récits brefs dans À la recherche du temps perdu'' », Revue d’études proustiennes, n° 8, `2018–2`, `Proust et le récit bref`, p. 143-162
# « ''La porosité des discours dans L’Usage du monde'' », in Op. cit., revue des littératures et des arts, « `Agrégation lettres 2017` », n° 17, `automne 2017`.
# « ''Les surnoms dans À la recherche du temps perdu'' », in « `Pour une poétique historique du nom propre` », Revue des Sciences humaines, C. Reggiani (dir.), n° 327, `juillet-septembre 2017`.
# « ''Les formes linguistiques de la bibliothèque mentale de Proust'' », in « `La Bibliothèque mentale de Marcel Proust` », Revue d’études proustiennes, G. Perrier (dir.), n° 5, `2017-1`, p. 329-347.
# « ''La représentation du discours des homosexuels dans À la recherche du temps perdu'' », in Inverses. `Dossier Marcel Proust`, n° 16, `2016`, p. 115-133.
# « ''La dépolarisation linguistique du rompol de Fred Vargas'' », in « `Le polar` », Revue critique de fixxion française contemporaine, J. Kaempfer et A. Vanoncini (dir.), n° 10, `2015`.
# « ''Pourquoi le (sou)rire proustien ne peut recevoir une définition'' », in « `Humour. les mots & les choses` », in Humoresques, Will Noonan (dir.), n° 41, `printemps 2015`.
# « La contradiction de la rhétorique des Mémoires d’Hadrien », in Méthode, n° 24, automne 2014, p. 235-241.
# « Les “ménagements savants” des adresses au narrataire dans Le Rouge et le Noir », in Styles, genres, auteurs, n° 13, Paris, Presses Universitaires Paris Sorbonne, 2013, p. 171-184.
# « Des rapports de l’ironie avec la satire dans À la Recherche du Temps perdu », in Bulletin Marcel Proust, décembre 2012, n°62, p. 91-110.
# « Le rythme épigrammatique des représentations de dire autre dans l’écriture proustienne », in Bulletin Marcel Proust, décembre 2009, n°59, p. 61-72.
# « Élargir une notion linguistique – Le cadre introducteur de représentation de dire autre », in L’Information grammaticale, octobre 2008, n°119, p. 28-34.
# « La représentation de discours directs non actualisés dans À la recherche du temps perdu », in L’Information grammaticale, janvier 2007, n°112, p. 9-15.
*Internationale :
# « ''Propriétés stylistiques de l'auto-sociobiographie : l’exemplification par l’écriture d'Annie Ernaux''», in « `Sociologie du style littéraire` », COnTEXTES, C. Dessy, L. van Nuijs, V. Stiénon (dir.),n° 18, `2016`.
# « ''L'ivresse proustienne'' », in « `Sensations proustiennes` », Marcel Proust aujourd’hui, Sjef Houppermans (dir.), n° 13, `2016`, Amsterdam, Rodopi.
# « Le lieu de naissance du texte proustien », in « La naissance du texte proustien », Marcel Proust aujourd’hui, N. de Hullu-van Doeselaar, M. van Montfrans, A. Schulte Nordholt et S. van Wesemael (dir.), n° 10, novembre 2013, Amsterdam, Rodopi, p. 153-170.
!!! Communications avec actes (congrès nationaux et internationaux)
# « ''La manière dont Annie Ernaux parle de Simone de Beauvoir dans ses récits'' », communication lors du colloque « //Les réceptions contemporaines de Simone de Beauvoir. France, Italie et Espagne 1968-2018// », organisé par M.-J. Bertini, O. Gannier, M. Guaresi, B. Meazzi, M. G. Scrimieri, F. I. Sensini, Nice, 3-4 décembre 2018 (`article soumis`).
# « ''Le romanesque de la forme paradoxale dans l'écriture de Jean Echenoz'' », communication lors du colloque « //Poétique des énoncés inconvenants et paradoxau//x », organisé par S. Chaudier, P. Jousset, J. July, à l'Université Aix-Marseille, 11-12 octobre `2018`.
# « ''Les discours représentés et leurs limites dans le récit de 1980 à aujourd’hui'' », communication lors du séminaire Textyle associé au colloque « //Aux marges des discours rapportés : approches diachroniques et génériques des discours rapportés louches et atypiques// », organisé par K. Germoni et C. Stolz, à l'Université Paris Sorbonne, 5-6 juin 2018 (`article soumis`).
# « ''La représentation de discours dans la Vie de Paula M. Becker : de l'entre-deux discursif à l'effraction de l'art féminin'' », communication lors du colloque « //L'écriture "entre deux mondes" de Marie Darrieussecq// », organisé par S. Milcent-Lawson, K. Germoni et C. Narjoux, Université de Lorraine, Metz - Université de Paris-Sorbonne, 26 et 29 janvier 2018 (`article soumis`).
# « ''La représentation du discours germanophile dans À la recherche du temps perdu'' », communication lors du colloque « //Tommies, poilus, Frontschweine. représentations artistiques de soi et de l'autre dans la Grande Guerre// », organisé par N. Bianchi, F. Meynier, Université de Montpellier, 16-17 novembre 2017 (`article soumis`).
# « ''Les modulations de la représentation de discours dans l’écriture d’Annie Ernaux'' », communication lors du colloque « //Changer de style. Écritures évolutives au xxe et au xxie siècles// », organisé par S. Jollin-Bertocchi et S. Linarès, Université de Versailles-Saint-Quentin, 30 mai-1er juin 2017 (`à paraître`).
# « ''La représentation de discours non actualisés dans Mémoire de fille : les tâtonnements du souvenir'' », communication lors du colloque « //Annie Ernaux. Les écritures à l'oeuvre// », organisé par A. Adler, V. Montémont et J. Piat, Université de Picardie Jules Verne, Amiens et Péronne, 16-17 mars 2016 (`à paraître`).
# « ''L'ironie, forme contemporaine de contre-épopée dans 14 de Jean Echenoz'' », communication lors du colloque « //Figurations épiques et contre-épiques de la Grande Guerre// », organisé par M.-F. Lemonnier-Delpy, H.-L. Ott et A. Adler, Université de Picardie Jules Verne, Amiens et Péronne, 24-25 novembre 2016. (`à paraître`)
# « ''Les conditionnements du commentaire stylistique des concours de recrutement dans l'enseignement'', in M. Monte, S. Thonnerieux et P. Wahl (dir.), //Stylistique et Méthode. Quels paliers de pertinence textuelle ?//, Lyon, Presses Universitaires de Lyon, collection "Textes et Langue", `2018`.
# « ''L'hétérogénéité du sens dans la représentation des journaux sur la guerre dans Le Temps retrouvé'' », in Pavelin Lesic B., //Francontraste 3 : Structuration, langage et au-delà. Tome 1 : Activité Traduisante, Enseignement du FLE, Études littéraires//, Mons, CIPA, 2017. Actes du colloque « //Francontraste 3 : structuration, langage, discours et au-delà// », organisé par la Faculté de philosophie et de Lettres de l'Université de Zagreb, 8-10 avril `2016`.
# [[[Dialnet|https://dialnet.unirioja.es/servlet/articulo?codigo=6603555]]]« ''Le retour dans l'espace proustien'' », in //Le retour//, L. Dornel (éd.), Pau, Presses universitaire de Pau et des pays de l'Adour, coll. « Espaces, frontières, métissages », 2017. Actes du colloque « //Le retour : espaces, fractures, transitions// », organisé par J.-Y. Casanova, L. Dornel, M. Parsons, F. Quantin, Université de Pau et des Pays de l'Adour, 27-29 mai `2015`.
# « ''Quelques usages didactiques des jeux de mots'' », Cahiers de Didactique des Lettres, n°3, 2017. Actes de la journée de réflexion didactique « //Enseigner la langue : du bon usage des règles du jeu// », organisée par V. Loubet-Poëtte et B. Moricheau-Airaud, 6 mai `2015`.
# « ''L'entrée en guerre de 14 : la rupture de l'impersonnel'' », in //1914. Ruptures et continuités//, C. Béranger, A. Fleites Marcos (dir.), L'Harmattan, `2016`. Actes du colloque « //1914, entre rupture et continuité// » organisé par C. Béranger, B. Czerny, A. Fleites Marcos et G. Vilnet, Université de Caen Basse-Normandie, 20-21 novembre 2014.
# « ''Analyse de la lecture au carré'' », in Cahiers de Didactique des Lettres, n° 2, juin `2015`. Actes de la journée de réflexion didactique « //Lire et être lecteur : quelle(s) lecture(s) pour l’enseignement ?// », organisée par V. Loubet-Poëtte et B. Moricheau-Airaud, Université de Pau et des Pays de l’Adour, 7 mai 2014.
# « ''La peinture du visage dans la Recherche : entre impressionnisme et cubisme'' », in //L'écriture du visage dans les littératures francophones et anglophones. De l'âge classique au xxie siècle//, F. Gaspari (dir.), L'Harmattan, coll. « Espaces littéraires », `2016`, p. 149-166. Acte du colloque « //L’écriture du visage du Moyen Âge à nos jours dans les littératures de langue française et anglaise : une “conciliation impossible” ?// », organisé par F. Gaspari, Université de Pau et des Pays de l’Adour, 13-14 mars 2014.
# « Le texte proustien comme croisement de voix : représentation de discours autre, ironie, réécriture », in Revue de l’Association des Professeurs de Lettres. Atelier pédagogique mené lors de la journée de formation et de recherche, « Les mutations du roman. XVIIIe et XXe siècles. Diversité des voix et des points de vue. Diversité des esthétiques », organisée par S. Munsch, collège La Hourquie, Morlaas, 2 avril 2014.
# « Jeu des mots, je des maux dans l’écriture de Martin Winckler », Cahiers de Didactique des Lettres, Varia. Actes de la journée d’étude « Les œuvres plurielles de Martin Winckler », organisée par J. Gallego, V. Loubet-Poëtte et B. Moricheau-Airaud, 21 mars 2014, Université de Pau et des Pays de l’Adour.
# « Le style comme ‘subjectivation’ », in Francontraste 2 : affectivité et subjectivité dans le langage, Pavelin Lesic B. (dir.). Actes du colloque « Le français en contraste : l'affectivité et la subjectivité dans le langage », 11-13 avril 2013, Zagreb, p. 161-168.
# « Benveniste, un (des) père(s) pour la stylistique », in Benveniste : vers une poétique générale, S. Bedouret-Larraburu, C. Laplantine, (dir.), coll. « Linguiste et littérature » 2, Presses universitaires de Pau. Actes du colloque « Émile Benveniste et la littérature » organisé par du 2-3 avril 2013, Campus de la Nive, Bayonne.
# « Pour une analyse doublement critique de l’illustration de première de couverture », Cahiers de Didactique des Lettres, n°1, mai 2014. Actes de la journée d’étude didactique « Enseigner l’image, enseigner par l’image » organisée par V. Loubet-Poëtte et C. Rochelois, 20 mars 2013, Université de Pau et des Pays de l’Adour.
!!! Communications sans actes
# « ''Le double du Journal des Faux-monnayeurs ?'' », communication lors de la //Journée consacrée au programme de Terminale littéraire//, Université de Pau et des Pays de l'Adour, 15 mai `2018`.
# « ''Le sel du contrepoint'' », communication lors de la journée d’études « //Paul Fournel, goûteur de formes// », organisé par V. Loubet-Poëtte et B. Moricheau-Airaud, 27 avril `2017`.
# « ''La virgule polyphonique chez Laurent Mauvignier'' », communication lors du colloque « //Aux frontières des discours rapportés// », organisé par S. Hanote et R. Nita, Université de Poitiers, 23 et 24 novembre `2017`.
# « ''Le brouillon dans les manuels scolaires'' », communication lors de la journée de réflexion didactique « //Le brouillon à l'ordre. Pratiques et supports de l'inventio dans le cours de français// », organisé par V. Loubet-Poëtte et B. Moricheau-Airaud, 7 mai `2015`.
# « Ce que la représentation de l’interview de S. dit de la langue face à la mémoire dans Le Jardin des Plantes de Claude Simon », communication lors de la journée d’étude « La langue dans les récits contemporains : enjeux esthétiques et politiques » organisée par J.-Y. Casanova et I. Serça, Université de Pau et des Pays de l’Adour, 23 janvier 2014.
!!! Chapitre :
# MUNRO-LANDI, Morag J., « James Robertson’s Angle on Scottish Society and Politics in And the Land Lay Still, in Jean Berton and Ian Brown (Eds), Roots and Fruits of Scottish Culture. Scottish Identities, History and Contemporary Literature, Glasgow: Scottish Literature International, Association for Scottish Literary Studies, Occasional Papers, N° 19, 2014, Chapter 9, pp. 112-130
!!! Article :
# MUNRO-LANDI, Morag, « ''Alan Bissett and the Yes Campaign in the 2014 Scottish Independence Referendum'' », in Edwige Camp-Piétrain et Gilles Leydier (Dirs), `L’engagement en Ecosse autour de l’enjeu de l’indépendance`, Observatoire de la Société Britannique, N° 18, février `2016`, pp. 183-203
!!! Ouvrage collectif
# MUNRO-LANDI, Morag J., CONNIL Damien (Dirs), ''From Devoluton to Brexit. Triggering uncertainty and upheaval'', PAU: PUPPA, `2018`
!! Site Web
!!!Direction d’ouvrages et de numéros de revue (DO)
# Nicolas, Marielle ; Peyraga, Pascale. ''Filiation, imaginaires et sociétés'', Líneas [En ligne], Numéros en texte intégral, 9/ `Décembre 2016` - `Filiation, imaginaires et sociétés`, mis à jour le : 02/02/2017, URL : https://revues.univ-pau.fr/lineas/1904
!!!Ouvrages scientifiques (ou chapitres) (OS)
# «°Délits, violences et conflits dans les Comedias de Moreto : la légitimité de la violence en question ». In : Délits, violences et conflits dans la littérature espagnole (Hommage au Professeur Claude Allaigre). Paris : L’Harmattan, 2004. p. ?.
!!! Articles dans des revues avec comité de lecture (ACL)
# « L’image du puissant magnifiée par la comedia : le duc d’Albe et le duc de Parme dans El asalto de Mastrique de Lope de Vega», Líneas [En ligne], Numéros en texte intégral, 1 / Décembre 2011 - Pouvoirs et écritures, mis à jour le : 01/05/2017, URL : https://revues.univ-pau.fr/lineas/351
!!! Communications dans des colloques avec actes et comités de lecture (ACT)
# « La musique et le théâtre : l’exemple de Lo que puede la aprensión o La fuerza del oído d’Agustín Moreto y Cabaña (1618-1669) », in : Mireille Coulon (dir.), La musique dans le théâtre et le cinéma espagnols, Actes du colloque organisé par le LLREBEC, Pau, 28-29 janvier 2000, Gardonne, Féderop, 2002, p. 47-57.
# « Verosimilitud e intriga en las comedias profanas de Moreto », in : Isabel Ibáñez (dir.), Similitud y verosimilitud en el teatro del siglo de Oro. Vraisemblance et ressemblance dans le théâtre du Siècle d’Or espagnol, actes du colloque « Vraisemblance et dissemblance », Laboratoire LLREBEC, Pau, novembre 2003, Pamplona : EUNSA, 2005, p. 329-338.
# « Le monstre comme artefact dramatique dans Andrómeda y Perseo de Calderón de la Barca », in : Francis Desvois (dir.), Le monstre. Espagne & Amérique latine, Actes du colloque international du 13 au 15 mars 2008, LLCAA (Langues, littératures et civilisations de l’Arc Atlantique) (EA 1925), UPPA, Paris : L’Harmattan, 2009, p. 235-252.
# « Le corps en représentation(s) dans les autos sacramentales du Siècle d’Or espagnol: l'exemple du « Procès en séparation de l'Âme et du Corps » de Calderón de la Barca, in : Mary-Nelly Fouligny, Marie Roig Miranda (dirs.), Réalités et représentations du corps dans l'Europe des XVIe et XVIIe siècles (Vol. 1), Actes du colloque organisé par le laboratoire de recherches Europe XVI-XVII de l'université de Nancy II, Nancy : Université de Nancy 2, Collection de travaux : « Europe XVI-XVII », 2011, p. 185-200.
# « La alegorización de la naturaleza en el auto sacramental La humildad coronada (de las plantas) de Pedro Calderón de la Barca », in : Dolores Thion Soriano-Mollá (dir.), La Naturaleza en la Literatura Española, actes du Colloque international « La nature dans la littérature espagnole », organisé par le LLCAA, Pau, avril 2010, Vigo : Editorial Academia del Hispanismo, 2011, p. 73-88.
# « La imagen de la monarquía española en las comedias bélicas de Flandes », Colloque Mexique de 2008, publi en 2012.
# « Les identités masquées comme stratégies du dévoilement dans les Comedias profanes de Moreto », in : Philippe Meunier, Edgar Samper (dirs.), Le masque : une « inquiétante étrangeté », Actes du colloque international « Le masque : une inquiétante étrangeté » (Espagne, France et Portugal) organisé par le CELEC (Centre d'Etudes sur les Langues Etrangères et Appliquées), université de Saint-Etienne, les 30 septembre et 1er octobre 2010, Saint-Etienne : Publications de l'Université de Saint-Etienne, 2013, p. ???.
# « ''Arístides Vargas, o como volver representable el inconsciente autoficcional'' », `in` : Béatrice Bottin, (coord.), //Nuevos asedios al teatro contemporáneo: Creación, experimentación y difusión en los siglos XX y XXI (España-Francia-América), Actes du colloque international « Création, expérimentation et diffusion du théâtre contemporain espagnol et latino-américain », UPPA, Bayonne-Anglet-Biarritz, 14-15-16 octobre 2015//, Madrid : Fundamentos, `2017`, p. 271-281.
!!! Communications sans publication (COM)
# Mai 1999 : « La musique et le théâtre : l’exemple de Lo que puede la aprensión », communication présentée dans le cadre d’un séminaire de D.E.A. organisé par le Laboratoire de Recherches en Littératures et Langues Romanes, Etudes Basques, Espace Caraïbe de l’Université de Pau et des Pays de l’Adour intitulé L’art vocal en Espagne.
# Mars 2001 : « Du théâtre baroque espagnol au théâtre classique français, les nécessaires aménagements de la traduction : l’exemple de Lo que puede la aprensión de Moreto et du Charme de la voix de Thomas Corneille », participation à un séminaire de D.E.A.
# Décembre 2004 : « Utopies dans le Persiles », séminaire « Utopies et projets politiques » organisé par le Laboratoire de Recherches en Littératures, Langues Romanes, Etudes Basques, Espace Caraïbe de l’Université de Pau et des Pays de l’Adour.
Dans le champ ''Pages'', indiquer :
*le nombre de pages pour un [[Livre]] `xxx` (sans le "p." après)
*l'intervalle de pages `xx-xx` pour les [[articles|Article de revue]] ou les [[chapitres|Chapitre de livre]] (sans "p." avant et avec le trait d'union)
*article numéroté : `art. n° xx`
*paragraphe numéroté : `§ xx`(pas de signe "n°")
*colonnes : `col. xx-xx`
*Albin Michel
*Odile Jacob
*PUF
*Éditions du CNRS
!!à voir :
*''École française d'Extème-Orient'' ou ''EFEO''
*''Springer'' ou ''Springer Verlag''
*''Académie des Inscriptions et Belles Lettres'' ou ''AIBL''
iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAYAAABccqhmAAAgAElEQVR4AQAggN9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVGpqarFqamqxampqsWpqarFqamqxampqsWpqarFqamqxampqsWpqarFqamqxampqsWpqarFqamqxcnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJNqamqxVlZW7VNTU/E2Njb/MTEx/zExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/zExMf8xMTH/U1NT8VpaWulqamqxcXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwk2JiYtNTU1PxMTEx/xQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf82Njb/U1NT8WJiYtNsbGyjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVGJiYtNNTU33LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/0RERPtgYGDbcXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmpcXFzhRERE+xoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/zw8PP1aWlrpcHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gZmZmyUhISPkhISH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/0RERPtiYmLTd3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzxcXFzhNjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/1paWulycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABZot4MAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIGJiYtM8PDz9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8sLCz/XFxc4XNzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovUBAQP0GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/zExMf8xMTH/MTEx/yEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP1iYmLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUVlZW7RoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/MTEx/zY2Nv9TU1PxU1NT8WpqarFqamqxc3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PGpqarFqamqxVlZW7VNTU/E8PDz9MTEx/w4ODv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/SEhI+XFxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJQEBA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/SEhI+VpaWulqamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBqamqxWlpa6U1NTfcxMTH/BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9gYGDbbW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBcXFzhGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/RERE+1xcXOFxcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyamJiYtNNTU33Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/U1NT8XNzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1RQUFDzDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/0RERPtiYmLTc3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIGZmZslISEj5Ghoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/0RERPtxcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmpERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8sLCz/VlZW7XBwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgVxcXOE8PDz9BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1RNTU33BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP1gYGDbd3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gYmJi00BAQP0GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/PDw8/XBwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc0adZAAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1RNTU33BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/2BgYNt3d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBiYmLTQEBA/QYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP1wcHCTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8aGhr/U1NT8XJycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PFxcXOEhISH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9AQED9aGhovQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbGyjRERE+wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/XFxc4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUPDw8/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9NTU33cnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PFpaWukaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/2xsbKMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVlZW7QYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9aWlrpd3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLTLCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPt3d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxsoyEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqsTExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PEhISPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0nJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0UFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9aWlrpbW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/XFxc4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY0hJ0AAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBNTU33AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9TU1PxbW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg2xQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9AQED9c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PFBQUPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg2wYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/ampqsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFxcYE8PDz9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1BQUPMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIEBAQP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/VlZW7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9FBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFxcYEnJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8SEhI+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9sbGyjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxsoyEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQ8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9AQED9bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIEBAQP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0UFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFbVLvgAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgfx+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PCwsLP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9xcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVDY2Nv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9xcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFxcYEaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ISEj5bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/YGBg2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqarEUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovQYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QsLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv93d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBISEj5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFzhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmyQYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/2ZmZskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIWTrlAAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9sbGyjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovQYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9WVlbtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8NjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iYmLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyahQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8aGhr/cnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gNjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzwnJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gMTEx/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gNjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv93d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/cXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAftgH7AAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8ISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxsowYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9oaGi9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1xcXOEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YGBg2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbGyjBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/2xsbKMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTEx/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1NTU/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/3Nzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ERET7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LCws/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/U1NT8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVBQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAnJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/bGxsowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Njb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ampqsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmoODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8aGhr/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABSTWYsAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpa6QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1ZWVu0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ERET7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iYmLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyag4ODv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/TU1N9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmJi0wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2hoaL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARERE+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/UFBQ8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIBoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1BQUPMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/hxv/sgAAIABJREFUcHBwkwAAAAAAAAAAAACA/38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ampqsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVAYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2ZmZskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/QcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/sHBwf7BwcH+wcHB/0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAXFxc4QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/1YWFidYGBgYF9fX2BgYGBgX19fYGBgYGBfX19gX19fYGBgYGBgYGBgYGBgYGBgYGBfX19gYGBgYGBgYGBgYGBgYGBgYF9fX2BgYGBgYGBgYGBgYGBgYGBgYGBgYF9fX2BfX19gYGBgYGBgYGBgYGBgYGBgYF9fX2BgYGBgYGBgYGBgYGBfX19gX19fYGBgYGBgYGBgYGBgYF9fX2BgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgX19fYGBgYGBgYGBgYGBgYF9fX2BfX19gYGBgYGBgYGBgYGBgX19fYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBgYGBfX19gX19fYGBgYGBgYGBgX19fYF9fX2BgYGBgYGBgYF9fX2BgYGBgYGBgYF9fX2BfX19gX19fYGBgYGBgYGBgYGBgYF9fX2BfX19gYGBgYGBgYGBfX19gX19fYGBgYGBgYGBgX19fYGBgYGBgYGBgX19fYF9fX2BfX19gYGBgYGBgYGBgYGBgX19fYF9fX2BgYGBgYGBgYF9fX2BfX19gYGBgYGBgYGBfX19gYGBgYGBgYGBfX19gX19fYF9fX2BgYGBgYGBgYGBgYGBfX19gX19fYGBgYGBgYGBgX19fYF9fX2BgYGBgXV1dkQcHB/sAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1paWukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVu0AAAB4FzcnAAAgAElEQVT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIBQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIBQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/3Nzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpa6QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/TU1N9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ERET7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2Nv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/3Nzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExCBYWFngAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4AAAAeAAAAHgAAAB4BgYGeBoaGiIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2JiYtMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEhISPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3FxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/GhoaSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/xoaGkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ERET7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/GhoaSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEj5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsbKMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2JiYtMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMRAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv8aGhpIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1xcXOEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhI+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExEBYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/xoaGkgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LCws/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/GhoaSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg2wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg2wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMBAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv8aGhpIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9QUFDzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Njb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwCBYWFo8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPBgYGjxoaGigAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU33AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVAYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YGBg2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcUMogAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABcXFzhAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/SEhI+QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/QEBA/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NT8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iYmLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9oaGi9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw8/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9AQED9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqsQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFDzAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+EOhZAAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAgP9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmyQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmyQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlYETExMNkRERDZEREQ2Q0NDNkRERDZEREQ2RERENkRERDZEREQ2Q0NDNkRERDZEREQ2RERENkRERDZEREQ2RERENkRERDZEREQ2Q0NDNkRERDZEREQ2Q0NDNkRERDZEREQ2RERENkNDQzZDQ0M2Q0NDNkNDQzZDQ0M2Q0NDNkRERDZEREQ2RERENkNDQzZDQ0M2RERENkRERDZDQ0M2RERENkRERDZEREQ2Q0NDNkNDQzZDQ0M2Q0NDNkNDQzZDQ0M2RERENkRERDZEREQ2Q0NDNkNDQzZDQ0M2RERENkNDQzZEREQ2Q0NDNkRERDZDQ0M2Q0NDNkNDQzZEREQ2Q0NDNkNDQzZDQ0M2RERENkNDQzZDQ0M2Q0NDNkNDQzZEREQ2Q0NDNkRERDZDQ0M2RERENkNDQzZDQ0M2Q0NDNkRERDZDQ0M2Q0NDNkNDQzZEREQ2Q0NDNkNDQzZDQ0M2Q0NDNkRERDZDQ0M2RERENkNDQzZWVlYkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1NTU/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU33AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADs7OxAnJyf7FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/RUVFf0VFRX9FRUV/T4+PrUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MTEx/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExEBYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NDQ0vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqsQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9wcHCTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP80NDS9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlpaUwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9wcHCTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqarEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMBAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zQ0NL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1paWukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpa6QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExEBYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NDQ0vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALeRRxIAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/QEBA/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABISEj5AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1BQUPMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP80NDS9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmyQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwsLP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YmJi0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMRAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zQ0NL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9xcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMDAwEBYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NDQ0vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3FxcYEAAAAAAAAAAAAAAAAAAAAAAHFxcYEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OTkQIiIi9Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/kPDw/5Dw8P+Q8PD/k7OzuzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ZmZmyQAAAAAAAAAAAAAAAAAAAAAAZmZmyQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaARjY2NGYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSl9fX0pgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKX19fSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKX19fSmBgYEpgYGBKYGBgSmBgYEpgYGBKX19fSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmBgYEpfX19KYGBgSmBgYEpgYGBKYGBgSmBgYEpfX19KYGBgSmBgYEpgYGBKYGBgSmBgYEpgYGBKYGBgSmZmZiwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARERE+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9WVlbtAAAAAAAAAAAAAAAAAAAAAABWVlbtAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAEhISPkAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LCws/wAAAAAAAAAAAAAAAAAAAAAANjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9mZmbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzOh86QAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyagAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/AAAAAAAAAAAAAAAAAAAAAAAaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP93d3c8AAAAAAAAAAAAbW1tIAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3BwcJMAAAAAAAAAAABxcXGBAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YmJi0wAAAAAAAAAAAGhoaL0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAARERE+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9WVlbtAAAAAAAAAAAAYGBg2wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1PxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfcAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXOEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+wAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/U1NT8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaWlMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYmJi0wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAASEhI+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+vjapAAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zExMf8AAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFRUVBgrKyvFEhIS9xwcHPcrKyvLQkJCaGxsbBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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MYVzc3MKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv8AAAAAAAAAAAAxMTH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAwMBAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8QEBDXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/EBAQ1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQGiAgIMECAgL/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/zY2NnhcXFwCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ycnJqAAAAAAAUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMRAWFhb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8QEBDXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAExMTHAEBAT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w8PD/87OzsqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAABoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExEBYWFv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xAQENcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAnBwcA4AAAAAb29vHgwMDPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0JCQpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cnJyagAAAAAAGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEQFhYW/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/EBAQ1wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCODg4XA4ODvMAAAD/AAAA/wAAAP8AAAD/BQUF/1FRUVQAAAAAAAAAAEZGRmQPDw/1AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ZGRnvTExMMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWlpTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv8AAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1xcXOEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCPT09WA0NDfsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/MTExuWRkZBAAAAAAAAAAAFlZWRA9PT2DHx8f6wICAv8AAAD/AAAA/wAAAP8bGxvnSEhINAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqarEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MTEx/wAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/U1NT8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAjg4OFwODg73AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8DAwP9JCQkx1BQUDoAAAAAAAAAAAAAAABQUFAUSkpKViYmJp0YGBjLJiYm20NDQzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaWlMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZmZmyQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/AAAAAAAAAAAAVlZW7QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycgQ1NTVeDg4O8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8BAQH/ERER6y8vL4lZWVkqAAAAAAAAAAAAAAAAAAAAAGxsbBJhYWEYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGDbAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAABgYGDbAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MENDQ0YA8PD/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AwMD/xAQEOUyMjK7LCwsWklJSTJxcXEEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVu0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/SEhI+QAAAAAAAAAAAGJiYtMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LCws/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAjQ0NF4PDw/xAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8MDAz9T09PfnFxcQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASEhI+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAcHBwkwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzcwI2NjZeDw8P8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/T4+PpNaWloCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Njb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2BgYNsAAAAAAAAAAAB3d3c8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCOjo6Wg4ODvUAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBvs+Pj6XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNSOrDAAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ampqsQAAAAAAAAAAAAAAAAAODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3FxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQFYNDQ35AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb9Pj4+lQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9zc3NUAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/aGhovQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzcwJAQEBWDAwM/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CAgI/T8/P48AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/wAAAAAAAAAAAAAAAAAAAAAAPDw8/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzcwQ0NDReDw8P8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CQkJ/To6OolaWloIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/UFBQ8wAAAAAAAAAAAAAAAAAAAAAAbGxsowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnIENDQ0YA8PD/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP07OzuLWlpaCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iYmLTAAAAAAAAAAAAAAAAAAAAAAB3d3c8AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP93d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAjU1NV4PDw/xAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb9Pz8/j1lZWQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2hoaL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzcwI4ODhcDg4O8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG+z4+PpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlpaUwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC4PM4MAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPT09WA4ODvcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv0+Pj6XAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQ8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9AQED9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQFYNDQ37AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf9Pj4+kwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVu0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/PDw8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzcwI9PT1YDQ0N+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/CQkJ/T09PY1aWloCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw8/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9TU1PxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzwAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGDbAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGDbAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCNDQ0Xg8PD/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/09PT2NWVlZBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/TU1N9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmoAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAjY2Nl4PDw/xAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb9Pj4+k1paWgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALj5TKwAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACA/38AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2ZmZskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzAjo6OloODg71AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb7Pj4+lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqsQAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAQEBWDQ0N+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/T4+PpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1PxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYtMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCQEBAVgwMDP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wgICP0/Pz+PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/UFBQ8wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ampqsQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADY2NlYNDQ35AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8JCQn9Ozs7i1lZWQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsbKMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlpaQolJSXRAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1MQIiIi8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBvs+Pj6VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGlpaUwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2Njb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFtbW1AYGBj3AQEB+QEBAf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb9Pj4+lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVAYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YGBg2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhISH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABnZ2cuODg4lREREfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/T4+PpMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVu0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCPDw8Qg8PD+0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wkJCf09PT2NWlpaAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/QEBA/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyagAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MCMjIyowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8JCQn9Ojo6i1lZWQYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaWlpTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9mZmbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtLS1OCQkJ/wAAAP8AAAD/AAAA/wAAAP8A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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPDw8bjY2NqNtbW0EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwkwAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/TU1N9wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoKCi1FRUV70VFRSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYtMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB0dHfUAAAD/LCwsx2VlZRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+2BgYGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjY2NQAgIC/QAAAP8AAAD/IyMj11FRUU4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZskAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1BQUPMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsrK4EBAQH/AAAA/wAAAP8AAAD/GBgY+U5OTsNoaGgoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1paWukAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tfX19gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABdXV0GJycn2Q4ODv8YGBjhJSUlq0ZGRng2NjYmX19fFgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIAYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYARTU1ODLi4uMmBgYCBycnICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqampMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATU1N9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7YGBgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAV1BTqwAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZskAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABNTU33AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9WVlbtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+19fX2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaWlMBwcH9wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZmZskAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8HBwf7X19fYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqakwHBwf3AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wcHB/tgYGBgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAampqTAcHB/cAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVAYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH/V1dXZFqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxpaWlMampqTGpqakxqampMampqTGpqakxqampMampqTGlpaUxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGlpaUxqampMampqTGpqakxqampMampqTGpqakxqampMaWlpTGpqakxqampMampqTGpqakxqampMampqTGpqakxpaWlMampqTGpqakxqampMaWlpTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGlpaUxqampMampqTGpqakxpaWlMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMaWlpTGpqakxqampMampqTGlpaUxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxqampMampqTGpqakxpaWlMampqTGpqakxkZGSFBwcH+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVlZW7QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BwcH+wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/cHBwf3BwcH9wcHB/kAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Wlpa6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABmZmbJAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8UFBT/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAABwoP06AAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgP9/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gJycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/U1NT8QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFZWVu0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgQYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2ZmZskAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YmJi0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQ8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gGhoa/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgYGDbAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/YmJi0wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgQYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1NTU/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAsLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUFBQ8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2xsbKMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYNsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABeOPWMAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGpqarEAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9QUFDzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEBAQP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/ISEh/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PBoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tICwsLP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9xcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbGxsowAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/XFxc4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NT8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAYGBg2wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8aGhr/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/2xsbKMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/3FxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PCEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9aWlrpAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABaWlrpAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/3Nzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATzF/pgAAIABJREFUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAxMTH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA8PDz9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQEBA/QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSAnJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/cnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmoUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1PxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/2pqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/PDw8/QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NT8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9iYmLTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/VlZW7QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFpaWukAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABTU1PxAAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0hISPkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NT8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/bW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADE/nAtAAAgAElEQVQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAE1NTfcAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABERET7AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/9tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gNjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVCcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/3d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/2hoaL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHFxcYEaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/93d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/1xcXOEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABqamqxDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/d3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFBQUPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0BAQP1tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAU1NT8QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/21tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFNTU/EAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PDw8PP0AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zw8PP1tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYNsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9oaGi9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGdEQggAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHBwcJMAAID/fyEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovQ4ODv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/1NTU/EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGBgYNsODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9cXFzhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwkxoaGv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ywsLP9ycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzxAQED9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/aGhovQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVCcnJ/8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9gYGDbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbGyjFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP88PDz9c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gUFBQ8wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zExMf9zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFxcXOEGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/XFxc4QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovRQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP9NTU33AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsbKMUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/LCws/3FxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAd3d3PERERPsAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/ZmZmyQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1QxMTH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/BgYG/1ZWVu1tbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGJiYtMUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Jycn/3FxcYEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlbtBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xoaGv9mZmbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsOS9wywAAIABJREFUbKMsLCz/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/01NTfdtbW0gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABsbGyjISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/cHBwkwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1RAQED9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9oaGi9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gRERE+wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+3JycmoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzxTU1PxBgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAaGhovRQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0RERPtycnJqAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzxTU1PxDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/YGBg2wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIFBQUPMAAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wYGBv9NTU33c3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1tbSBaWlrpFBQU/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/NjY2/3Nzc1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGxsbKMnJyf/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/RERE+3BwcJMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNzc1RQUFDzDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/FBQU/2BgYNsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABWVlbtDg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv9qamqxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHJycmpERET7BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/0hISPl3d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUSEhI+QAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8nJyf/YGBg221tbSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhoaL08PDz9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zExMf9wcHCTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcHBwkzExMf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Dg4O/0hISPlxcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyalBQUPMUFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAC6V6P9AAAgAElEQVQA/wAAAP8AAAD/AAAA/xoaGv9mZmbJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAWlpa6RQUFP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/MTEx/1paWulxcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcnJyamBgYNtAQED9BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv9TU1Pxd3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIFxcXOEhISH/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8aGhr/SEhI+WJiYtN3d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9TU1N9yEhIf8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP9TU1Pxd3d3PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABoaGi9NjY2/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8xMTH/UFBQ82ZmZsl3d3c8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABtbW0gampqsVNTU/ExMTH/BgYG/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/yEhIf9gYGDbbW1tIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgURERPsGBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8hISH/PDw8/VNTU/FoaGi9cXFxgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3NUampqsVNTU/FERET7Jycn/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zY2Nv9oaGi9AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHd3dzxgYGDbLCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zExMf9ISEj5U1NT8WBgYNtqamqxcnJyagAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAc3NzVGpqarFmZmbJU1NT8U1NTfcxMTH/Dg4O/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/Ghoa/1ZWVu1zc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcXFxgUhISPkODg7/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/xQUFP8xMTH/MTEx/zw8PP1TU1PxU1NT8VNTU/FTU1PxU1NT8VNTU/FoaGi9ampqsWpqarFqamqxVlZW7VNTU/FTU1PxU1NT8VNTU/FTU1PxRERE+zExMf8xMTH/ISEh/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8GBgb/RERE+2hoaL0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPYz3aYAACAASURBVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABiYmLTQEBA/QYGBv8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP82Njb/YGBg23d3dzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbW1tIGBgYNs8PDz9AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/9cXFzhc3NzVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB3d3c8YmJi00RERPsaGhr/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8ODg7/QEBA/WBgYNtzc3NUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABxcXGBWlpa6TY2Nv8GBgb/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/zExMf9WVlbtbGxsowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwcHCTWlpa6UBAQP0UFBT/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/w4ODv82Njb/VlZW7WpqarEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABycnJqampqsVNTU/FERET7LCws/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/wAAAP8AAAD/AAAA/ycnJ/88PDz9U1NT8WZmZslxcXGBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/NUMEA/]]][[[Membres|https://www6.bordeaux-aquitaine.inra.fr/st_pee/UMR-NuMeA/Fiches-chercheurs]]][[[idHAL|idHAL-NuMéA]]]
@@
---
Partager la propriété avec Pascale Avril
---
!!! Fiches Créées :
<<list-links [tag[NuMéA]tag[publiant]]>>
---
<$details summary="Liste Pascale Avril (email 1er octobre 2018)">
# [[Stéphane Davail|Davail, Stéphane]]
# [[Karine Gontier|Gontier, Karine]]
# [[Karine Ricaud|Ricaud, Karine]]
# [[Marianne Houssier|Houssier, Marianne]]
* [[[Pascale Avril|Avril, Pascale]]]
!!! Doctorants :
# [[Laury Lescat|Lescat, Laury]]
# [[Pauline Wischhusen|Wischhusen, Pauline]]
# [[Guillaume Morin|Morin, Guillaume]]
!!! CDD :
# [[Florian Beaumatin|Beaumatin, Florian]]
# [[Karine Pinel|Pinel, Karine]]
</$details>
<$details summary="Site internet (pas à jour :)">
# [[Marandel, Lucie]]
# [[Fauconneau, Benoit]]
# [[Fontagné, Stéphanie]]
# [[Panserat, Stephane]]
# [[Seiliez, Iban]]
# [[Skiba-Cassy, Sandrine]]
# [[Geurden, Inge]]
# [[Corraze, Geneviève]]
# [[Médale, Françoise]]
# [[Alami-Durante, Hélène]]
---
!!! Dispositif scientifique
# H. Alami CR1 : Croissance musculaire
# C. Burel IR1 : Matières 1ères et tube digestif
# G. Corraze CR1 : adjoint au département PHASE (50%), Métabolisme des lipides
# S. Fontagné CR1: Fonctions anti-oxydantes
# B. Fauconneau DRE: Secr. Gal AllEnvi, Métabolomique
# I. Geurden CR1 : Ingestion
# L. Marandel CR2: Régulations épigénétiques
# F. Médale DR1 : Chef de département PHASE, Métabolisme énergétique
# S. Nahon CR2 : Flux de nutriments
# S. Panserat DR2 : Métabolisme glucose
# I. Seiliez DR2: Protéosynthèse/protéolyse
# S. Skiba DR2 : Insuline et métabolisme
# S. Davail PR : Métabolisme des lipides
# K. Gontier MC : Métabolisme des lipides
# S. Ricaud MC : Microbiote
# M. Houssier MC : Programmation nutritionnelle
!!! Dispositif analytique
o Analyses chimiques
- A. Surget TREX
o HPLC
- C. Héraud AI
o Biochimie
- L. Larroquet TREX (Resp.)
- A. Herman TR NO
o Enzymologie
- V. Véron IE2 (Resp.) - ACP
- L. Larroquet
o Histologie
- M. Cluzeaud TR Sup
o Biologie moléculaire/protéines
- K Dias TR NO
o Biologie moléculaire/gènes et génomique
- E. Plagnes-Juan AI (Resp.)
- M. Cluzeaud TR Sup
o Biologie moléculaire/épigénétique
- V. Véron IE2
o Cultures cellulaires
- E. Plagnes-Juan AI (Resp.)
- A. Herman TR NO
o Cellularité
- Y. Mercier TREX
!!! Doctorants et post-doctorants
L. Araujo, M. Borey, T. Callet, M. Even, T. Pioche,
L. Lescat, H. Liu, J. Liu, W. Massimino, S. Roques,
S. Seite, A. Tavernier, T. Zhu.
</$details>
https://api.archives-ouvertes.fr/oai/hal/?verb=ListRecords&metadataPrefix=oai_dc&set=collection:UNIV-PAU
https://api.archives-ouvertes.fr/search/UNIV-PAU/?q=(submitType_s:file OR linkExtId_s:(arxiv%20OR%20pubmedcentral%20OR%20openaccess))&wt=xml&fl=halId_s,publicationDateY_i,docType_s,uri_s,title_s,doiId_s,publisherLink_s,label_s&rows=30000
!!HALATHON
!!! Com
*Insa Lyon : https://www.insa-lyon.fr/fr/actualites/chercheurs-entrez-dans-course-et-participez-au-halathon
*Insa Toulouse : http://www.insa-toulouse.fr/fr/recherche/focus-recherche/newsletter-9/halathon.html
*Toul'AO : https://openarchiv.hypotheses.org/5560
* Nanterre 2017 sur France Culture : https://www.franceculture.fr/conferences/universite-paris-nanterre/halathon-2017-lopen-access-a-lhonneur-a-luniversite-paris-nanterre
!!! Inria : Collection Halathon
* https://hal.inria.fr/HALATHON-CS/
!!!Créer dans OCdHAL > Articles > Production
|ASCL|Articles dans des revues sans comité de lecture (ASCL)|type : article dans une revue, comité de lecture : non, vulg=non|
|C-ACTI|Communications avec actes dans un congrès international (C-ACTI)|vulg=non|
|C-ACTN|Communications avec actes dans un congrès national (C-ACTN)|vulg=non|
|C-COM|Communications orales sans actes dans un congrès international ou national (C-COM)|vulg=non|
|C-GP|Communications grand public (C-GP)|vulg=oui|
|C-INV|Conférences données à l'invitation d'un Comité d'organisation dans un congrès national ou international (C-INV)||
|C-AFF|Communications par affiche dans un congrès international ou national (C-AFF)||
|AuPubli|Autres Publications (AuPubli)|non(1,2,3,4)|
|CR|Autres publications - Comptes-rendus d'ouvrage ou Note de lecture (CR)||
|ArtBlog|Autres publications - Articles de blog (ArtBlog)||
|NoticeDE|Autres publications - Notices d'encyclopédie ou de dictionnaire (NoticeDE)||
|Trad|Autres publications - Traductions (Trad)||
|PRE|Pré-publications ou documents de travail (PRE)||
|COV|Chapitres d'ouvrages de vulgarisation (COV)||
|DOV|Direction d'ouvrages de vulgarisation (DOV)||
|OV|Ouvrages de vulgarisation (OV)||
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
[[lien vers OpenEdition|http://www.openedition.org/]]
On y trouve les publications du Collège avec de bonnes métadonnées
<$details summary="details">
`<$details summary="titre"></$details>`
* $:/plugins/telmiger/details/colours.css
* $:/plugins/telmiger/details/details.css
* $:/plugins/telmiger/details/details.js
</$details>
<$details summary="CSS">
* notes : [[$:/css/ui/stylesheet/text-content]]
* tableaux : [[$:/.s/Tableaux]]
** explications : [[Personnaliser les tableaux]]
</$details>
<$details summary="Plugins">
* Wrappers
** Markdown
** Mermaid
*** [[plugin|$:/plugins/gt6796c/mermaid-tw5]] (nécessite [[rocklib|$:/plugins/gt6796c/rocklib]])
*** [[source|https://gt6796c.github.io/]]
** Railroad
** KaTeX
** XMLdom
* FontAwesome ([[site|http://fa5-free-svg.tiddlyspot.com/]])
** [[plugin|$:/plugins/TheDiveO/FontAwesome]]
** [[Trouver une icone|https://thediveo.github.io/TW5FontAwesome/output/fontawesome.html#Cheatsheet]]
* Dynamic tables ([[site|https://ooktech.com/jed/ExampleWikis/DynamicTables/]])
** tiddler : [[Table Macros]]
* D3 ([[démo|https://tiddlywiki.com/plugins/tiddlywiki/d3/]])
* QRcodes générator
* xlsx-utils
** [[plugin|$:/plugins/tiddlywiki/xlsx-utils]]
** [[démo xlsx utils|http://tiddlywiki.com/prerelease/editions/xlsx-utils/]]
* Bibtex importer
* Twitter
* Slicing tiddlers
</$details>
---
<$details summary="Liens utiles">
* [[TiddlyQuiz|http://tw5.xyz/tiddlyquiz.html]]
* [[TiddlyBox|http://tw5.xyz/TiddlyBox/]] (pour bibliobox)
* [[TiddlyWiki FR|http://tw5.xyz/tw.fr/]]
</$details>
iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAA2ZpVFh0WE1MOmNvbS5hZG9iZS54bXAAAAAAADw/eHBhY2tldCBiZWdpbj0i77u/IiBpZD0iVzVNME1wQ2VoaUh6cmVTek5UY3prYzlkIj8+IDx4OnhtcG1ldGEgeG1sbnM6eD0iYWRvYmU6bnM6bWV0YS8iIHg6eG1wdGs9IkFkb2JlIFhNUCBDb3JlIDUuMC1jMDYwIDYxLjEzNDc3NywgMjAxMC8wMi8xMi0xNzozMjowMCAgICAgICAgIj4gPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4gPHJkZjpEZXNjcmlwdGlvbiByZGY6YWJvdXQ9IiIgeG1sbnM6eG1wTU09Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9tbS8iIHhtbG5zOnN0UmVmPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvc1R5cGUvUmVzb3VyY2VSZWYjIiB4bWxuczp4bXA9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC8iIHhtcE1NOk9yaWdpbmFsRG9jdW1lbnRJRD0ieG1wLmRpZDowNzgwMTE3NDA3MjA2ODExOTk0QzkzNTEzRjZEQTg1NyIgeG1wTU06RG9jdW1lbnRJRD0ieG1wLmRpZDo2REM1MzRDOUZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wTU06SW5zdGFuY2VJRD0ieG1wLmlpZDo2REM1MzRDOEZGNTcxMUUxODdBOEVCODg2RjdCQ0QwOSIgeG1wOkNyZWF0b3JUb29sPSJBZG9iZSBQaG90b3Nob3AgQ1M1IE1hY2ludG9zaCI+IDx4bXBNTTpEZXJpdmVkRnJvbSBzdFJlZjppbnN0YW5jZUlEPSJ4bXAuaWlkOkZGN0YxMTc0MDcyMDY4MTE5NUZFRDc5MUM2MUUwNEREIiBzdFJlZjpkb2N1bWVudElEPSJ4bXAuZGlkOjA3ODAxMTc0MDcyMDY4MTE5OTRDOTM1MTNGNkRBODU3Ii8+IDwvcmRmOkRlc2NyaXB0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
@@color:red;
!!! Java
@@
* [[Jabref|http://www.jabref.org/]]
** [[Aide en français|https://help.jabref.org/fr/]]
*** [[Les champs BibTeX|https://help.jabref.org/fr/Bibtex]]
*** [[Les options de la ligne de commande|https://help.jabref.org/fr/CommandLine]]
@@color:red;
!!! Python
@@
* [[BibtexParser’s documentation|https://bibtexparser.readthedocs.io/en/latest/]]
* [[Pybtex|https://pybtex.org/]]
@@color:red;
!!! Linux
@@
* [[BibTool|http://www.gerd-neugebauer.de/software/TeX/BibTool/en/]]
** [[Documentation|http://www.gerd-neugebauer.de/software/TeX/BibTool/bibtool.pdf]] [pdf]
@@color:red;
!!! CSV to bib
@@
* sur [[stackexchange|https://tex.stackexchange.com/questions/281745/how-to-convert-csv-file-to-bibtex]] :
> Open it on your favourite spreadsheet application, then
>* Add columns before/after each field like `title={` and `}, journal={`,etc.
>* Be sure that the last colum is `}}`.
>* Then make a first column with `@article{` and a second column with a keyword and a comma like `Bhaskar2011`. This can be done automatically with a formula like `=LEFT(A1,SEARCH(" ",G1)-1) & H1 & ", "`.
>* Then select all the cells and paste it in a text editor. Save it with the .bib extension.
>* Finally open yourfile.bib with JabRef to test if there are some errors.
>+ using e.g. the `char(13)` (Excel) function you can even add linebreaks to the resulting bibtex code
<$details summary="API">
<<list-links "[tag[API]]">>
```
http://api.archives-ouvertes.fr/search/DMEX/?q=*:*&wt=csv&fl=halId_s,label_s&rows=700
```
</$details>
<$details summary="Schémas LD">
<<list-links "[tag[LD-HAL]]">>
</$details>
!!!OcdHAL
!!!OcidHAL
<$details summary="X2HAL">
<<list-links "[tag[Bibtex]]">>
</$details>
!!!HALtools
!!![[OverHAL|https://halur1.univ-rennes1.fr/OverHAL.php]]
* [[OverHAL > XHAL|https://iww.inria.fr/casuhal/files/2018/06/OverHAL-X2HAL-Dijon-2018.pdf]] [pdf] - Atelier CasuHAL 2018
.cm-s-paraiso-dark.CodeMirror { background: #2f1e2e; color: #ffffcc; }
.cm-s-paraiso-dark div.CodeMirror-selected { background: #ff80b3; }
.cm-s-paraiso-dark .CodeMirror-line::selection, .cm-s-paraiso-dark .CodeMirror-line > span::selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-line::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span::-moz-selection, .cm-s-paraiso-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(65, 50, 63, .99); }
.cm-s-paraiso-dark .CodeMirror-gutters { background: #2f1e2e; border-right: 0px; }
.cm-s-paraiso-dark .CodeMirror-guttermarker { color: #ef6155; }
.cm-s-paraiso-dark .CodeMirror-guttermarker-subtle { color: #776e71; }
.cm-s-paraiso-dark .CodeMirror-linenumber { color: #40ff00; }
.cm-s-paraiso-dark .CodeMirror-cursor { border-left: 2px solid #40ff00; }
.cm-s-paraiso-dark span.cm-comment { color: #e96ba8; }
.cm-s-paraiso-dark span.cm-atom { color: #815ba4; }
.cm-s-paraiso-dark span.cm-number { color: #815ba4; }
.cm-s-paraiso-dark span.cm-property, .cm-s-paraiso-dark span.cm-attribute { color: #48b685; }
.cm-s-paraiso-dark span.cm-keyword { color: #ef6155; }
.cm-s-paraiso-dark span.cm-string { color: #fec418; }
.cm-s-paraiso-dark span.cm-variable { color: #48b685; }
.cm-s-paraiso-dark span.cm-variable-2 { color: #06b6ef; }
.cm-s-paraiso-dark span.cm-def { color: #f99b15; }
.cm-s-paraiso-dark span.cm-bracket { color: #b9b6b0; }
.cm-s-paraiso-dark span.cm-tag { color: #ef6155; }
.cm-s-paraiso-dark span.cm-link { color: #815ba4; }
.cm-s-paraiso-dark span.cm-error { background: #ef6155; color: #8d8687; }
.cm-s-paraiso-dark .CodeMirror-activeline-background { background: #795375; }
.cm-s-paraiso-dark .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
!!!Article dans une revue à comité de lecture
# Parsons, Michael. ‘''Royaume-Uni, États-Unis : histoire et actualité de la special relationship''’, in `Brexit !`, Outre-Terre n°49, 4/2016, `février 2017`. ISBN `9782847953725`
!!!Chapitres
# Parsons, Michael. ‘''Still Two Bald Men Fighting for a Comb ?''’, `in` Berbéri, Carine & Monia O’Brien Castro (dirs.), //30 years after: issues and representations of the Falklands War//, Farnham, Ashgate, `2015`. ISBN : 9781472425003
# Parsons, Michael. ‘''Remnants of Empire''’, `in` //Oxford Handbook of the Ends of Empire//, Oxford University Press, `2019`. ISBN : 9780198713197
!!! Direction d’ouvrages
# Laurent Dornel & Michael Parsons (dirs.), ''Fins d’empires/Ends of Empires'', Presses de l’Université de Pau et des pays de l’Adour, `2016`
@@.note
[[membres (page du labo)|http://www.passages.cnrs.fr/spip.php?article674]] | [[Collection HAL UMR|https://hal-univ-pau.archives-ouvertes.fr/UMR5319]] | [[Collection PASSAGES-UPPA|https://hal-univ-pau.archives-ouvertes.fr/PASSAGES-UPPA]] | [[idHAL|idHAL-Passages]]
@@
<<list-links "[tag[Passages]tag[publiant]]">>
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
.cm-s-pastel-on-dark.CodeMirror {
background: #2c2827;
color: #8F938F;
line-height: 1.5;
}
.cm-s-pastel-on-dark div.CodeMirror-selected { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::selection, .cm-s-pastel-on-dark .CodeMirror-line > span::selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::selection { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-line::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span::-moz-selection, .cm-s-pastel-on-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(221,240,255,0.2); }
.cm-s-pastel-on-dark .CodeMirror-gutters {
background: #34302f;
border-right: 0px;
padding: 0 3px;
}
.cm-s-pastel-on-dark .CodeMirror-guttermarker { color: white; }
.cm-s-pastel-on-dark .CodeMirror-guttermarker-subtle { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-linenumber { color: #8F938F; }
.cm-s-pastel-on-dark .CodeMirror-cursor { border-left: 1px solid #A7A7A7; }
.cm-s-pastel-on-dark span.cm-comment { color: #A6C6FF; }
.cm-s-pastel-on-dark span.cm-atom { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-number { color: #CCCCCC; }
.cm-s-pastel-on-dark span.cm-property { color: #8F938F; }
.cm-s-pastel-on-dark span.cm-attribute { color: #a6e22e; }
.cm-s-pastel-on-dark span.cm-keyword { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-string { color: #66A968; }
.cm-s-pastel-on-dark span.cm-variable { color: #AEB2F8; }
.cm-s-pastel-on-dark span.cm-variable-2 { color: #BEBF55; }
.cm-s-pastel-on-dark span.cm-variable-3, .cm-s-pastel-on-dark span.cm-type { color: #DE8E30; }
.cm-s-pastel-on-dark span.cm-def { color: #757aD8; }
.cm-s-pastel-on-dark span.cm-bracket { color: #f8f8f2; }
.cm-s-pastel-on-dark span.cm-tag { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-link { color: #ae81ff; }
.cm-s-pastel-on-dark span.cm-qualifier,.cm-s-pastel-on-dark span.cm-builtin { color: #C1C144; }
.cm-s-pastel-on-dark span.cm-error {
background: #757aD8;
color: #f8f8f0;
}
.cm-s-pastel-on-dark .CodeMirror-activeline-background { background: rgba(255, 255, 255, 0.031); }
.cm-s-pastel-on-dark .CodeMirror-matchingbracket {
border: 1px solid rgba(255,255,255,0.25);
color: #8F938F !important;
margin: -1px -1px 0 -1px;
}
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL (manquante)|https://hal-univ-pau.archives-ouvertes.fr/]]][[[Membres|https://paudroitpublic.univ-pau.fr/fr/organisation/l-equipe.html]]][[[idHAL|idHAL-PDP]]]
@@
---
!! ''Enseignants-chercheurs''
# [[Gourdou, Jean]]
# [[Béchillon, Denys de]]
# [[Bourrel, Antoine]]
# [[Carrier, Renaud]]
# [[Douence, Maylis]]
# [[Fitte-Duval, Annie]]
# [[Fontenelle, Louis de]]
# [[Lafargue, Frédéric]]
# [[Lagarde, Michel]]
# [[Rabiller, Stéphanie]]
# [[Sempé, Françoise]]
# [[Slonina, Jérôme]]
# [[Terneyre, Philippe]]
# [[Zavoli, Philippe]]
!! ''Membres associés au centre''
<$details summary="Membres associés de droit">
;Pauline ESTANGUET
:Docteure en droit public, ancienne doctorante
;Quentin GIRAULT
:Docteur en droit public, ancien doctorant
;Laure ROMAZZOTTI
:Docteur en droit public, ancienne doctorante
;Alphonso LOPEZ de la OSA ESCRIBANO
:Ancien chercheur IE2IA (Institut d'Etudes Ibériques et Ibérico-Américaines)
:Directeur, Centre de recherche "U.S. and Mexican Law" - Université de Houston
;Karine BUTERI
:Premier conseiller au Tribunal administratif de Pau
:Maître de conférences associé
;Jérémie MARCHAND
:Directeur du Centre de gestion des Pyrénées-Atlantiques,
:Maître de conférences associé
;Eric MARTINEZ
:Directeur, Centres hospitaliers de Jonzac et Boscamnant,
:HDR Pau Droit Public
;Jean-Claude DOUENCE
:Professeur émérite
</$details>
<$details summary="Membres associés sur procédure d'admission">
;Julien BONNEAU
:Juriste en droit public, Société Valorem, Bordeaux
;Olivier BONNEAU
:Docteur en Droit public, ancien doctorant du centre,
:Avocat associé Cabinet Rivière et associés, Barreaux de Bordeaux et de Paris
;Nathalie CALATAYUD
:Inspectrice de l'action sanitaire et sociale
;Laura DAYDIE
:Ancienne doctorante, ancienne post-doctorante E2S,
:Chargée de mission - Société nationale pour la défense des animaux
;Guillaume DEZOBRY
:Maître de conférences, Avocat, cabinet FIDAL
;Stéphanie DOUTEAUD
:Docteure en droit public, ancienne doctorante du centre,
:Maître de conférences à l' Université du Littoral Côte d'Opale
;Isabelle GUYOT
:Chercheur, ITS Pierre Bourdieu
;Muriel JUAN
:Docteure en Droit public, ancienne doctorante du centre,
:Juriste consultant au centre de recherches d'informations et de documentations des offices notariales (CRIDON) Sud-Ouest au sein du Pôle Urbanisme, Collectivités publiques et Environnement
;Valérie GUICHARD-FRIOT
:Directrice des centres hospitaliers d'Oloron-Sainte-Marie et Mauléon
;Christophe KROLIK
:Professeur adjoint - Faculté de droit de l'Université Laval - Québec (Québec)
;Bernadette LE BAUT-FERRARESE
:Professeure de droit public - Université Jean Moulin Lyon 3
;Jean Victor MAUBLANC
:Ancien doctorant, Maître de conférences à l'Université de Poitiers
;Olivier SALONE
:Chef du Département Affaires Juridiques et Domaniales, Terega
;Alexandre VIGNES
:Docteur en droit public, ancien doctorant
</$details>
<$details summary="Membres collaborateurs">
;Aurélie LAUNAY
:Responsable projets et pilotage
;Isabelle MONTIN
:Secrétaire - Gestionnaire
;Elisa FOÏS
:Post-doctorante - Projet GéFISS
;Florent LACARRÈRE
</$details>
<$details summary="Post-doctorats">
!!! ''Achevés'' :
;Louis FONTENELLE (de),
:"TIGF, opérateur de stockage et de réseau de transport de gaz, face à l'évolution du cadre juridique du marché du gaz : s'adapter aux contraintes actuelles et futures, saisir les opportunités" (TIGF est devenu TEREGA)
;Christophe KROLIK,
:"Le droit d'accès à l'énergie" (Communauté d'agglomération Pau-Pyrénées - Dir. Philippe TERNEYRE) Rapport de post-doctorat «Accénergie.pdf» (5.1 MB)
;Julie LAUSSAT XAVIER
:Le concept d’économie circulaire appréhendé par le droit de l’énergie -GRDF (Philippe TERNEYRE)
;Laura DAYDIE
:Dans le cadre du contrat I site "Solutions pour l’énergie et l’environnement" E2S
:Le cadre juridique des hydroliennes marines et fluviales dans une perspective comparatiste France / Canada (Philippe TERNEYRE/Christophe KROLIK)
</$details>
[[lien vers persée|http://www.persee.fr/web/revues/home/prescript/search/?_Prescripts_Search_tabs1=advanced]]
Revues francophones de ''sciences humaines et sociales'' numérisées
Vous pouvez appliquer un style CSS aux tableaux pour les personnaliser. Il suffit de l'ajouter à votre feuille de style ou dans un nouveau tiddler comme [[$:/.s/Tableaux]] avec le tag <<tag $:/tags/Stylesheet>>
Pour appliquer un style personnalisé au tableau, ajoutez dans votre tiddler ``|nom-du-style-du-tableau|k`` au début du tableau. Ce qui donne par exemple:
```
|block|k
|!Titre 1|!Titre 2|!Titre 3|
|Cell 1|Cell 2|Cell 3|
```
!!Block `block`
|block|k
|!Titre 1|!Titre 2|!Titre 3|
|Cell 1|Cell 2|Cell 3|
|Cell 4|Cell 5|Cell 6|
|Cell 7|Cell 8|Cell 9|
!!Lignes marrons alternées `brownaltrows`
|brownaltrows|k
|!Titre 1|!Titre 2|!Titre 3|
|Cell 1|Cell 2|Cell 3|
|Cell 4|Cell 5|Cell 6|
|Cell 7|Cell 8|Cell 9|
!!Lignes horizontales `rowstable`
|rowstable|k
|!Titre 1|!Titre 2|!Titre 3|
|Cell 1|Cell 2|Cell 3|
|Cell 4|Cell 5|Cell 6|
|Cell 7|Cell 8|Cell 9|
(ALTER, équipe 3) Département d’espagnol.
# 2019 : Base de données (open source) ''MOVACT'' (en cours d’alimentation) : http://www.movact.es/index_nc.php
!!!Ouvrages scientifiques (ou chapitres) (OS)
# «Música, canto y baile en los sainetes de Sebastián Vázquez (1773-1793)», in: Teatro y Musica en España: Los géneros breves en la segunda mitad del siglo XVIII, Madrid: Universidad Autónoma de Madrid, Consejo Superior de Investigaciones Científicas, 2008, p. 377-391.
# «Sebastián Vázquez», in: J. Huerta Calvo (dir.), Historia del teatro breve en España, Madrid: ed. Iberoamericana/ Vervuert, 2008.
# «Las traducciones francesas en el teatro español del siglo XVIII», in: Farré, Bittoun-Debruyne, Fernández (eds), El teatro en la España del siglo XVIII, homenaje a Josep Maria Sala Valldaura, Lleida: edicions de la Universitat de Lleida, 2012, p. 253-268.
!!!Articles dans des revues avec comité de lecture (ACL)
# «Más sobre Sebastián Vázquez: nuevas obras atribuidas y estado de su producción (1766-1798)», Cuadernos de Estudios del Siglo XVIII, n o 18, Instituto Feijoo de Estudios del siglo XVIII, Universidad de Oviedo, 2008, p. 81-118.
# «Poderes y escritura en algunos sainetes de la segunda mitad del siglo XVIII: el público cuestionado», Líneas [En ligne], Numéros en texte intégral, 1 / décembre 2011 -Pouvoirs et écritures, mis à jour le : 21/05/2012.
# « Les fous dans quelques sainetes du XVIIIe siècle », in : Florence Marie-Laverrou (resp.), Le fou, cet autre, mon frère, Rives - Cahiers de l'Arc Atlantique, n° 7, Paris : L'Harmattan, 2012, p. 97-117.
!!!Communications dans des colloques avec actes et comités de lecture (ACT)
# « Tres sainetes de R. de la Cruz y S. Vázquez para celebrar a los nuevos reyes », (Actes du IV colloque international de la Sociedad Española de Estudios del Siglo XVIII «La época de Carlos IV (1788-1808)», Instituto Feijoo de Estudios del Siglo XVIII y la Sociedad Estatal de Conmemoraciones Culturales, 15-16-17 octobre 2008), in: E. de Lorenzo Álvarez (ed.), La época de Carlos IV (1788-1808), Oviedo : Instituto Feijoo de Estudios del siglo XVIII, Sociedad Española de Estudios del Siglo XVIII, Sociedad Estatal de Conmemoraciones Culturales, 2009, p. 915-925.
# « La imagen de los gallegos en los sainetes de la segunda mitad del siglo XVIII », (Actes du colloque international « Identité, altérité et appartenance régionale en Galice (XIX-XXI siècle) », mai 2010), in: Rocío Chárques Gámez, Christelle Colin (resp.), Identité, altérité et appartenance régionale en Galice (XIX-XXI siècle), Pau : PUPPA (sous presse).
# « Déjouer la censure : quelques exemples dans des sainetes de la seconde moitié du XVIIIe siècle » (Actes du colloque international « L’impossible silence : créer sous la censure dans les mondes ibériques », IRIEC, Université de Toulouse II-Le Mirail, 13-15 novembre 2013), in : L’impossible silence : créer sous la censure dans les mondes ibériques, Toulouse : Presses Universitaires du Mirail. (publication en cours)
# « Perspectives, apparences et desengaño (« détromperie ») dans quelques sainetes du XVIIIe siècle » (Actes du colloque international « Perception, Perspective, Perspicacité », CRPHL-EA 3003, Université de Pau et des Pays de l’Adour, 8-9 mars 2013), in : Perception, Perspective, Perspicacité, Paris : l’Harmattan, 2014, p. 377-394.
# «''MOVACT: circulación de actores y obras por España (1770-1808)''» (Actes du congrès international en hommage a Joan Oleza « Entresiglos, Literatura e Historia, Cultura y sociedad », Departamento de Filología Española, Universitat de València, 19-20 octobre 2016). `Sous presse`.
# «''Los lugares de paso/pasajeros en los sainetes de Sebastián Vázquez: naturaleza, usos y funciones''» (Actes du Colloque international «Les lieux de passage dans la littérature auriséculaire», LLCAA, IHRIM-GREAM (CNRS-UMR5317)-Labex COMOD, Laruns, 29 et 30 septembre 2017), in: Criticón o Anejos de Criticón, Presses du Midi. `Sous presse`.
!!!Comptes rendus critiques, recensions (CR)
# Sur l’ouvrage Petimetres y majos (Jéronimo Herrera Navarro), Cuadernos Dieciochistas, Revista de la Sociedad Española de Estudios del siglo XVIII, vol. 10, 2009, p. 321-322.
# Sur l’ouvrage Caminos del teatro breve (Josep Maria Sala Valldaura), Revista de Literatura, Vol 73, No 146 (2011), ILLA – CSIC, (ISSN:0034-849X ; ISSN: 1988-4192), http://revistadeliteratura.revistas.csic.es
!!!Participation à des séminaires
# « Reconstruir la historia del teatro con pedazos del pasado: algunas reflexiones sobre la naturaleza y la interpretación de los archivos », dans le cadre du séminaire organisé par l’IRIEC (Toulouse-II Le Mirail) Archives perdues, inachevées interminables (Mars 2014).
# « ''De la identidad individual a la identidad colectiva: ser español en los sainetes de la segunda mitad del siglo XVIII'' », dans le cadre du séminaire organisé par l'IRIEC (Toulouse II - Le Mirail), Être et appartenir: La question de l'identité dans le royaume d'Espagne (1700-1898), (`13 novembre 2015`).
# Participation à un symposium « ''Los sainetes en los años de Misón (1761-1766)'' », dans le cadre du symposium international organisé par la Universitat Autònoma de Barcelona, Música i teatre al seglo XVIII Hispànic a l’entorn de Lluís Misón, (Mataró, Universitat Autònoma de Barcelona, `2-3 novembre 2016`).
envoyé : copié-collé ordonné des références sur le site web.
!!! Partie de livres
# XVIe siècle : La soif de savoir, in Manuel de littérature française, Lycée, Paris, Bréal/Gallimard, avril 2004, p. 83-158. Réédité in Le manuel de littérature française, Paris, Bréal/Gallimard, septembre 2004, p. 83-158.
!!! Co-édition (déjà mis sur la plate-forme)
# ''Jean de Sponde (1557-1595), un humaniste dans la tourmente'', Etudes réunies par Véronique Duché-Gavet, Sabine Lardon et Guylaine Pineau, Paris, Classiques Garnier, 2012.
!!! Articles
# Sur quelques stratégies d’évitement de la censure chez Ambroise Paré, in Censures et interdits, dir. Denis Hüe, Bernard Baillaud, Jérôme de Gramont, Université de Rennes II, Presses Universitaires de Rennes, 1997, p. 257-267.
# La « double porte » de Bacchus : naissance d’un mythe de la création poétique chez Ronsard, in L’autre et les encyclopédies, publiés sous la direction de Denis Hüe, Bernard Baillaud, Jérôme de Gramont, Université de Rennes II, Presses Universitaires de Rennes, 1999, p. 121-135.
# Queneau et la « poligraphie », in Poétique, no 126, en collaboration avec Georges Kliebenstein (co-auteur), Paris, Seuil, avril 2001, p. 191-216.
# La « prodigieuse mort de Pline » selon Boaistuau et quelques autres, in Figurations du volcan à la Renaissance, dir. Dominique Bertrand, Paris, Honoré Champion, 2001, p. 35-52.
# L’instrument du langage et son maniement chez Ambroise Paré, in Ambroise Paré (1510-1590). Pratique et écriture de la science à la Renaissance, dir. Evelyne Berriot-Salvadore, Paris, Honoré Champion, 2003, p. 249-276.
# Ambroise Paré et le "beau mot Abracadabra" », in Le lent brassement des livres, des rites et de la vie, Mélanges offerts à James Dauphiné, sous la direction de Monique Léonard, Xavier Leroux et François Roudaut, Paris, Champion, 2009.
# « ''Pour le désir que j’ai toujours eu de savoir la vérité » et Tableau des Œuvres'', `in` //« Par la main et par la plume », Ambroise Paré 1510-1590, chirurgien et écrivain français//, dir. E. Berriot-Salvadore, Paris, Université Paris Descartes, BIUM, 2010.
# ''« Mettre en lumière » le savoir médical, contre l’ancienne loi du secret'', `in` Ambroise Paré, une vive mémoire, Etudes réunies par Evelyne Berriot-Salvadore, Collection Medic@, Bibliothèque interuniversitaire de Santé, Paris, De Boccard Edition-Diffusion, 2012.
# ''La gloire fragile d’Honoré Castellan, « nouveau Esculape » des Valois'', `in` La cour de Nérac au temps de Henri de Navarre et de Marguerite de Valois, dir. Véronique Ferrer et Catherine Magnien, Université de Bordeaux 3, Niort, Albineana décembre 2012.
# ''"Le Seigneur dit ainsi: Je feray venir sur vous le glaive executeur..." Soigner la peste sans défier la colère divine dans les traités médicaux du XVIe siècle'' `in` Les Textes scientifiques à la Renaissance, dir. Violaine Giaccomotto-Charra et Jacqueline Vons, revue Seizième siècle, no 8-2012.
# ''Le « Petit monde » de l’anatomiste déconstruit et recomposé dans les œuvres d’Ambroise Paré'', `in` Corps et Encyclopédies, Cahier Diderot, dir. Denis Hüe, Bernard Baillaud et Jérôme de Gramont, Rennes, PUR, 2013.
# « Cabaliser » les arts en latin ou « profaner la science » en français : les langues de la médecine à la Renaissance, in Paroles dégelées - Propos de l'Atelier XVIe siècle, dir. I. Garnier, V. D. Le Flanchec, V. Montagne, A. Réach-Ngô, M.-C.Thomine, T. Tran, N. Viet, Paris, Garnier, 2016.
# Ambroise Paré lecteur critique et parerméneute, in Formes du savoir médical à la Renaissance, dir. Violaine Giacomotto-Charra et Jacqueline Vons, Pessac, MSHA, 2017.
!!! `DIRECTION` D’OUVRAGES ET DE NUMEROS DE REVUE (DO)
#Direction avec Roser Salicrú i Lluch du volume ''Etre esclave. Identité, acculturation, agentivité́'', Introduction et contribution chapitre III, `Parution prévue` aux publications de la Casa de Velázquez, second semestre 2019.
#Introduction au volume « Les esclavages en Méditerranée. Espaces et dynamiques économiques. Etudes réunies par Fabienne P. Guillén et Salah Trabelsi, Casa de Velázquez, 2012.
#Monographie scientifique, La chevalerie en Castille du XIIIe au XVe siècle, Programme d’Agrégation Session 2001, 332 pgs, Editions du CNED.
!!! COMMANDE D’OUVRAGES SCIENTIFIQUES (OU CHAPITRES) (CO)
#Atlas des traites esclavagistes médiévales. Europe, Méditerranée, Afrique, Moyen Orient. Pour les éditions Khartala, Collection Esclavages, dirigée par Myriam Cottias, EHESS-CNRS,Paris, `2020`.
#« Voix d'Esclaves au Moyen Age », volume documentaire, introduction et apparat critique pour les Editions Karthala, Collections Les Esclavages dirigée par Myriam Cottias, EHESS-CNRS,Paris, `2020`.
#Lecture paléographique, transcription et publication du texte manuscrit des actes II à XXI de la Celestina Comentada, (Ms.17631, BNM), publié dans Celestina Comentada, Edición de Louise Fothergill- Payne†, Enrique Fernández Rivera et Peter Fothergill-Payne, Col° Textos Recuperados, Ediciones de la Universidad de Salamanca, 2002, pp 128 [fol°58r]- 508,[221v°]
!!! OUVRAGES SCIENTIFIQUES (OU CHAPITRES) (OS)
# Volume Etre esclave. Identité, acculturation, agentivité́, Parution aux publications de la Casa de Velázquez, `second semestre 2019`, « Emprunter : geste historique et geste d’historien », pp 1-25.
# «A propos de l'agency», dans le volume Etre esclave. Identité, acculturation, agentivité, Parution prévue aux publications de la Casa de Velázquez, `second semestre 2019`, pp 423-452.
# "''Ut si ingenuus esses... Normes et rites juridiques de l'affranchissement. Couronne d'Aragon. XIVe et XVe siècles''", `dans` //Sortir de l'esclavage. Europe du Sud et amériques (XIVe-XIXe siècle)//. Volume dirigé par Dominique Rogers et Boris Lesueur, Paris, Karthala, `2018`, collection Esclavages, pp 20-57.
# "Valence au XVe siècle ou comment l'on devient esclave.", Histoire Mondiale de l'Esclavage dirigée par Claude Chevaleyre, Paulin Ismard, Benedetta Rossi et Cécile Vidal, Seuil, Première partie, `parution prévue 2019`.
# Errances urbaines médiévales (Barcelone XIVe-XVe siècles), in Actes du colloque L'Errant, le vagabond, 2-4 12-2010 (UPPA), Paris, l'Harmattan, 2012, pp.115- 42.
# Chapitre six du Livre Couleurs de l’esclavage sur les deux rives de la Méditerranée, Alessandro Stella et Roger Botte (Dir.) Paris Karthala, 2012. « Negre e de terra de negres infels : Servitude de la couleur (Valence, 1479-1516) »
# Introduction au volume Les esclavages en Méditerranée. Espaces et dynamiques économiques. Etudes réunies par Fabienne P. Guillén et Salah Trabelsi, Casa de Velázquez, 2012, pp 1-25.
# Errances urbaines. (Barcelone XIVe-XVe siècles), dans Le Vagabond en Occident. Sur la route, dans la rue, Vol 1- Du Moyen Age au XIXe siècle, Francis Desvois, Morag J. Munro-Landi (Dirs.), L’Harmattan, Paris, 2012, pp 15-41.
# Contribution au volume Les Musulmans dans l’histoire de l’Europe. I-Une intégration invisible, Jocelyne Dakhlia et Bernard Vincent (Dir.), Albin Michel, Bibliothèque Histoire, Paris, 2011. Titre : « Moro den Miralles ou Moro d’Elx. Conservation et/ou élision de l’identité religieuse du singulier au pluriel », pp 523- 555.
# Contribution au volume Les traites et les esclavages. Perspectives historiques et contemporaines, dirigé par Myriam Cottias, Elisabeth Cunin et António de Almeida Mendes, Karthala, Collection Esclavages, Paris 2010, titre : « Esclavage et métissages à Barcelone entre 1389 et 1445 : une ouverture phénotypique contrôlée ?», pp 153- 178.
# « Discours polémique et concrétion de la société persécutrice : une autre représentation.» Actes du colloque international de Gérone (20-24 Janvier 2004) La convivencia de comunidades contrapuestas en el espacio transpirenaico.(Flocel Sabaté et Claude Denjean (éds), Editorial Milenio, Lleida. 2009, pp 357-386.
# « Les esclaves musulmans de Barcelone au XIVème siècle : de la servitude à la liberté. » in Contraintes et libertés dans les sociétés méditerranéennes aux époques modernes et contemporaines, Ed. Sadok Boubaker et André Zysberg, UR Histoire économique, Faculté des Sciences humaines et sociales de Tunis, CRHQ, CNRS-Université de Caen, Collection d’histoire maritime, n° 3, Caen-Tunis 2007, pp 137-152.
# « Barcelona a finales de la Edad Media : entre mestizaje y conservación biológica.», Negros, mulatos, zambaigos. Derroteros africanos en los mundos ibéricos. Actes du colloque international de Séville coordonné par Berta Ares Queija (CSIC, EEHA) et Alessandro Stella (CNRS), Séville, Publié aux presses du CSIC, 2000, pp 21-57.
!!! ARTICLES DANS DES REVUES AVEC COMITE DE LECTURE (ACL)
# « Trayectorias sociales de los libertos musulmanes y negroafricanos en la Barcelona tardomedieval », Anejos del Anuario de Estudios Medievales, Actes du Colloque International : De l’esclavitud a la llibertat, coordonné par María Teresa Ferrer i Mallol et Josefina Mutgé i Vives, Institució Milà i Fontanals, Hors-Série de l’Anuario de Etudios Medievales, CSIC, 2000, pp. 615-642.
# « Le mauvais genre de La Celestina ? », Revue Méthodes (17), Les genres au Moyen Age, la question de l’hétérogénéité, Hélène Charpentier et Valérie Fasseur (Dirs.), Editions de Vallongues, Bandol, 2010.
# « Les courtiers de commerce a Barcelone aux XIVème et XVème siècles », Mélanges de la Casa de Velázquez , Tome xxix-1, Antiquité-Moyen Age, 1993, pp 128- 154.
```javascript
this.add({name: 'x-conferencestartdate', replace: true, value: item.date})
/* Renommer le champ "language" en "x-language" [à encoder sur deux lettres au format ISO] */
if (this.has.language) {
this.has.language.name = 'x-language';
}
/* Pour les rapports exclusivement, renommer le champ "type" en "x-reporttype" [attention, choisir dans une liste prédéfinie] */
if (this.item.itemType == 'report' && this.has.type) {
this.has.type.name = 'x-reporttype';
}
/* Pour les présentations exclusivement, renommer le type de document "presentation" en "poster" */
if (Translator.BetterBibTeX && this.item.itemType == 'presentation') {
this.referencetype = 'poster';
}
```
À traiter comme un [[Chapitre de livre]] mais faire attention aux champs suivants :
*''Titre'' : `Préface` ou `Préface : titre de la préface` s’il y en a un
*''Auteur(s)'' : auteur de la préface
* ''champ(s)'' pour `auteur(s) du livre` ou `éditeur(s)`
*''Pages'' : de la préface si possible
<<list-links "[tag[LMAP]tag[publiant]tag[Probabilités et Statistique]]">>
!!!! Chercheurs, ingénieurs non permanents
# [[DOSSOU-GBETE Simplice|Dossou-Gbété, Simplice]] (MDC Honoraire)
# DARMAILLAC YVES (Ch associé)
!!!! Doctorants
# ARNOUX Florian
# BROC Camilo
# CALLENS Aurélien
# COUBE Sébastien
# DEFONTAINE Sophie
# FOULQUIER Clémence
# HALILALI Meriem
# HUGON Florèn
# KERMORVANT Claire
# MEDAD Amine
# PONCET Pierre-Antoine
# SALLES Gabriel
# SOLON Ulysses
# STEMIKOVSKAVA Kristina
# TIENDREBOGO Simon
<<RowTable '[tag[publiant] field:idhal_s[]]' '[[labo]][[équipe]][[idhal_i]][[idhal_s]][[ind]][[orcid]][[idref]][[note]]'>>
<table>
<tr>
<th>Labo</th>
<th>Nom</th>
<th>idref</th>
<th>Note</th>
</tr>
<$list filter='[tag[publiant] field:idhal_s[]]+[sort[labo]]'>
<tr>
<td class="labo">{{!!labo}}</td>
<td class="nom">{{!!title}}</td>
<td class="nom">{{!!idref}}</td>
<td class="nom">{{!!note}}</td>
</tr>
</$list>
</table>
[[lien vers la base Pubmed|http://www.ncbi.nlm.nih.gov/pubmed]]
''Usage'' : Pour les articles en biologie ou en médecine
''attention'' pubmed traduit les titres des articles en anglais
''Modifications'' dans les notices Zotero :
*dans le champs "spécial", effacer le PMID (Pubmed identifier)
<$details summary="Outils python">
!!!! [[PyRTF3 - PyPi|https://pypi.org/project/PyRTF3/]]
* [[examples|https://github.com/grangier/pyrtf/blob/master/examples/examples.py]]
* [[tests.document.test_paragraphs|http://pydoc.net/PyRTF3/0.47.5/tests.document.test_paragraphs/]]
!!!! [[docx - PyPi|https://pypi.org/project/docx/0.2.4/]]
!!!! module `csv` (inclu par défaut) ([[doc|https://docs.python.org/fr/3/library/csv.html]])
```python
def getElem(file, i, j):
with open(file, 'r') as f:
reader = csv.reader(f)
for line in reader:
if reader.line_num - 1 == i:
return line[j]
```
!!!! module RE (regular expression)*
```python
import re
test = re.compile('hal-\d*')
ids = test.findall('texte du rapport')
```
</$details>
<$details summary="Scenario">
* ''lire les doc_id du document rtf''
** pour chacun enregistrer dans un `tableau`
*** sa `valeur`
*** son `emplacement`
* ''ajouter à ce tableau''
** le résultat de la requête-api-hal-csv `halId_s` --> `issn`, `date publi`, `date publi élec`
** le résultat de la requête-fichierRangRevues `issn+date` --> `RangCNRS`, `RangHCERES`, `RangFNEGE`
```
(issn,date)
- CNRS (2014-11 - 2020-05)
- (2014-11 - 2015-06) col c
- (2015-07 - 2015-10) col d
- (2015-11 - 2016-04) col e
- (2016-05 - 2017-05) col f
- (2017-06 - 2017-11) col g
- (2017-12 - 2018-10) col h
- (2018-11 - 2019-05) col i
- (2019-06 - 2020-05) col j
- HCERES (2015-05 - 2020-05)
- (2015-05 - 2016-12)
- ECO
- (2015-05 - 2015-12) col k
- (2016-01 - 2016-12) col m
- GEST
- (2015-05 - 2016-02) col l
- (2016-03 - 2016-12) col n
- (2017-01 - 2017-12) col o
- (2018-01 - 2018-12) col p
- (2019-01 - 2020-05) col q
- FNEGE (2013-06 - 2020-05)
- (2013-06 - 2016-05) col r
- (2016-06 - 2019-05) col s
- (2019-06 - 2020-05) col t
```
* ''écrire dans le document rtf''
** après chaque doc_id, les rangs
</$details>
<$details summary="Requête API HAL">
```html
"http://api.archives-ouvertes.fr/search/?q=halId_s:"+value+"&wt=json&fl=halId_s,journalIssn_s,journalEissn_s,publicationDate_tdate,ePublicationDate_tdate"
```
: `publicationDate_tdate` : Date de publication (ISO 8601) : `2014-01-01T00:00:00Z`
</$details>
!!!open refine
* récupérer les valeurs du json
```javascript
value.parseJson()["response"]["docs"][0]["journalIssn_s"]
```
* nettoyer les dates
```javascript
value.replace(/(\d*-\d*-\d*)T00:00:00Z/,"$1")
```
|brownaltrows|k
|[[AuRéHAL|https://aurehal.archives-ouvertes.fr/]]|[[Orcid|https://orcid.org]]|[[idRef|https://idref.fr/]]|[[VIAF|https://viaf.org/]]|[[RNSR|https://appliweb.dgri.education.fr/rnsr/ChoixCriteres.jsp?PUBLIC=OK]]|[[WikiData|https://www.wikidata.org/wiki/Wikidata:Main_Page]]|[[ISNI|]]|[[ScopusID|]]|[[INPI|]]|[[API]]|
---
<$details summary="Labos">
@@.info
<<list-links "[tag[Référentiels]]">>
@@
<<tabs "[tag[Référentiels]]">>
</$details>
---
<$details summary="Chercheurs">
<<tabs "[tag[idHAL]]" "idHAL-publiants" "$:/state/tab1">>
</$details>
---
<$details summary="Extractions">
@@.info
<<list-links "[tag[Extractions]]">>
@@
<<tabs "[tag[Extractions]]">>
</$details>
---
* [[pad Visio Casuhal - référentiels - 2 avril 2019|https://semestriel.framapad.org/p/casuhal_gtstructures_abes]]
* [[Visio Stats-Kibana]]
[[lien|http://www.regesta-imperii.de/startseite.html]]
''Catalogue de bibliothèque'' allemande spécialisée (`littérature`) : dépouille les ouvrages collectifs
au niveau du `chapitre`
!!! Dans LibreOffice
@@margin:20px;
`ctrl+h` : Rechercher/Remplacer
---
<$checkbox field="status" checked="checked" unchecked="unchecked" default="checked"> Expressions régulières</$checkbox>
|rowstable|k
|rechercher|`^\[(\d*)\]`|
|remplacer par|`[ACL-2015-$1]`|
---
@@
!!! Manifestations officielles
* ''Nuit européenne des chercheurs'' : vendredi `27 septembre` 2019
** 18h-20h ''Dépôt''
* ''Fête de la science'' : `5-13 octobre` 2019
** Village des sciences ?
** axe //Science citoyenne//
** Médiathèque ???
* ''Open Access Week'' : `21-27 octobre` 2019
** ateliers ?
** conférences ?
!!! Videos
* Chercheurs
* saisie, référencement
* format (5 ou 10 mn)
!!! Réseaux Sociaux
* Twitter
!!! Doctorants
* ED, sur trois ans
!!! Matériel
!! Site Web
!! Publications
!!! Articles dans des revues avec comité de lecture (ACL)
# « Le Misteri Asumpcionista Valencià. Un chaînon manquant pour l’étude du théâtre assomptionniste catalan ». Texte Espace Voix / Approches traversières(3), Montserrat Prudon (dir.), Saint-Denis, 2003, coll. Travaux et Documents, n° 18, p. 25-42.
# « Le jeu liturgique de Sainte Marie de l’Estany. Première esquisse d’une mise en scène assomptionniste ». D’une rive... l’autre/Approches traversières (4), Montserrat Prudon (dir.), Saint-Denis, 2004, coll. Travaux et Documents, n° 22, p. 57-70.
# « Le rôle des juifs dans le théâtre assomptionniste péninsulaire : de l’antagonisme viscéral à la conversion exemplaire ». Líneas [En ligne], Numéros en texte intégral, 1 / décembre 2011 - Pouvoirs et écritures, mis à jour le : 22/01/2012, URL : http://revues.univ-pau.fr/lineas/279.
# « “La caza de amor es de altanería […]”. Sexualidad y metáforas cinegéticas en algunas obras de Lope de Vega ». Amor, adulterio y sexo en le teatro, Jesús G. Maestro (ed.), Vigo, Editorial Academia del Hispanismo, Theatralia, n° 16, 2014, p. 145-160.
# « ''Les mises en scènes du <i>Livre de Tobie</i> dans le théâtre espagnol du XVIe siècle'' ». `In` : Alain Cullière (ed), Tobie sur la scène européenne à la Renaissance, suivi de Tobie, comédie de Catherin Le Doux (1604), Peter Lang, New York, coll. Recherches en littérature et spiritualité, n° 24, `2015`, p. 119-136.
!!! Communications dans des colloques avec actes et comités de lecture (ACT)
# « Hortus conclusus ou reliquaire : théologie et mise en texte du corps marial dans le théâtre assomptionniste espagnol (XVe - XVIIe siècles) ». In : Mary-Nelly Fouligny et Marie Roig Miranda (ed.). Réalités et représentations du corps. Nancy, Presses Universitaires de Nancy, 2011, p. 477-492.
# « Del mote al insulto. Improperios judeófobos en la literatura del Siglo de Oro ». In : C. Pérez-Salazar, C. Tabernero, J.M. Usunáriz (ed.). Los poderes de la palabra. El improperio en la cultura hispánica del Siglo de Oro. Peter Lang, New York, coll. Ibérica, 2013, p. 245-256.
# « ''Un león por armas tengo, y Benavides se llama. Retórica heráldica y blasón en <i>La prudencia en la mujer</i> de Tirso de Molina'' ». `In` : Enrique Duarte, J., Ibánez, Isabel (eds.). Persona y personaje : el Homo historicus y su puesta en discurso en el Siglo de oro, New-York, IDEA, `2015`, p. 165-183.
# « ''Los polvos de Milán. Rumor, terror y controversia en la España de Felipe IV'' ». `In` : María Luisa Lobato (ed.), Esoterismo y Brujeria en la Literatura del Siglo de Oro. Madrid, Biblioteca Virtual Miguel de Cervantes.
<<RowTable '[tag[Labo]]' '[[field1#rnsr]][[field2#rnsr]][[field3#rnsr]][[field4#rnsr]]'>>
!!2013-2017
//Merci de respecter le classement ci-dessous//
!!! 1. Ouvrages
# ''Réussir le CAPES de lettres – Histoire de la langue'', Atlande (« Clefs concours », Lettres – Méthodologie), Neuilly, `2017`.
!!! 2. Direction d’ouvrages (ouvrages collectifs)
# ''Ponctuer l’œuvre médiévale : des signes au sens'', Valérie Fasseur et Cécile Rochelois (dir.), Droz (« Publications romanes et françaises », CCLXVII), Genève, `2016`.
!!! 3. Chapitres d’ouvrages
# « ''Nommer les animaux en latin dans les encyclopédies et les bestiaires français : savoir ou ignorance ?'' », //Latinum cedens. Le français et le latin, langues de spécialité au Moyen Âge//, Champion (« Colloques, Congrès, Conférences », série « Sciences du langage, Histoire de la langue et des dictionnaires »), Paris, `2014`, p. 117-138.
# « ''Animalité et imperfection des sens au xiiie siècle, des bestiaires à Albert le Grand'' », //Penser les cinq sens au Moyen Âge : poétique, esthétique, éthique//, Florence Bouchet, Anne-Hélène Klinger-Dollé (dir.), Classiques Garnier (« Rencontres », série Civilisation médiévale), Paris, `2015`, p. 55-71.
# « ''Les origines métissées du français scientifique médiéval'' », //Du transfert culturel au métissage. Concepts, acteurs, pratiques//, Silvia Capanema, Quentin Deluermoz, Michel Molin, Marie Redon (dir.), Presses Universitaires de Rennes (« Histoire »), `2015`, p. 237-251.
# « ''Des oiseaux et des saints : la Légende dorée de Jacques de Voragine'' », //D’ailes et d’oiseau au Moyen Âge. Langue, littérature et histoire des sciences//, Claude Thomasset (dir.), Champion (« Sciences, techniques et civilisations du Moyen Âge à l’aube des Lumières », 17), Paris, `2016`, p. 241-265.
# « ''Introduction'' » (en collaboration avec Valérie Fasseur) de //Ponctuer l’œuvre médiévale : des signes au sens//, Valérie Fasseur et Cécile Rochelois (dir.), Droz (« Publications romanes et françaises », CCLXVII), Genève, `2016`, p. 9-26.
!!! 4. Articles en revue avec comité de lecture
!!!! Nationale :
!!!! Internationale :
!!! 5. Communications avec actes (congrès nationaux et internationaux)
# « ''What terms to express the categories of natural sciences in the Dictionary of Medieval Scientific French ?'' » (en collaboration avec Fabrice Issac), //Proceedings of the First International Workshop Semantic Web for Scientific Heritage at the 12th ESWC 2015 Conference//, Arnaud Zucker, Isabelle Draelants, Catherine Faron-Zucker and Alexandre Monnin (dir.), SW4SH 2015 Semantic Web for Scientific Heritage 2015, `Jun 2015`, Portoroz, Slovenie, CEUR Workshop Proceeedings, `2015`, (ISSN) 1613-0073, p. 29-42. http://ceur-ws.org/Vol-1364/paper4.pdf
!!! 6. Communication sans actes
# « ''Visages de guerriers dans les chansons de geste françaises du Moyen Âge'' », communication lors du colloque //L’écriture du visage du Moyen Âge à nos jours dans les littératures de langue française et anglaise : une « conciliation impossible »//, organisé les `13 et 14 mars 2014` par Fabienne Gaspari (CRPHLL) à Pau.
# « ''Le troubadour à l’éléphant. Au sujet du bestiaire exotique de Rigaud de Barbezieux'' », le `28 mars 2015`- Auditorium du conservatoire de musique de Barbezieux, à la demande de la communauté de communes 4B.
# « ''L’eau, réservoir de nourriture et de créatures merveilleuses dans les textes du Moyen Âge'' », 21e Rencontres d’Aubrac : Imaginaires de l’eau (16-20 `août 2016`), organisées par Francis Cransac.
!!! Mémoires et theses
# Mémoire de Maîtrise d'Anglais (1980): "Irony and Ambiguity in the Works of Jasper Johns and Roy Lichtenstein." 167pp. + 97 pl. (Mention Très Bien).
# Mémoire de Maîtrise d'Histoire de l'Art (1980): "Temps et récit en peinture." 140pp. + 35 pl. (Mention Très Bien).
# Thèse de 3ème Cycle (1985): "La Réflexion théorique sur l'histoire aux Etats-Unis: des praticiens aux philosophes." 400 pp. dactyl. (Mention Très Bien).
# Thèse de Doctorat d'Etat (1992): "La Rhétorique ironique du Pop Art." 800 pp. dactyl. (Mention Très Honorable).
!!!Directions de collections
# Création, direction, édition et rédaction de la revue Q/W/E/R/T/Y: Arts, Littératures et Civilisations du Monde Anglophone. (12 volumes publiés à ce jour, regroupant 315 articles)
# Création, direction, édition et rédaction de la série "Rhétoriques des Arts" (Actes des colloques du CICADA). (14 volumes publiés à ce jour)
# Création, co-direction avec Jean-Pierre Cometti (Université de Provence) et édition de la collection "QUAD" (Esthétique, Philosophie, Critique). 11 livres parus à ce jour.
# Co-rédacteur avec Bernard Lafargue de la revue Figures de l'art: revue d'études esthétiques (34 numéros publiés à ce jour)
# Co-direction avec Jean-Pierre Cometti (Université de Provence) d'une édition en six volumes d'œuvres de John Dewey (co-édition Publications de l'Université de Pau/Farrago, Tours, avec l'aide du CICADA). 3 volumes parus.
!!! Directions d'ouvrages
# Direction de Q/W/E/R/T/Y 1 (24 articles, 380pp., novembre 1991).
# Direction de Q/W/E/R/T/Y 2 (40 articles, 324pp., novembre 1992).
# Direction de Q/W/E/R/T/Y 3 (36 articles, 324pp., novembre 1993).
# Direction de Q/W/E/R/T/Y 4 (47 articles, 404pp., novembre 1994).
# Direction de Q/W/E/R/T/Y 5 (52 articles, 500pp., novembre 1995).
# Direction de Q/W/E/R/T/Y 6 (44 articles, 396pp., novembre 1996).
# Direction de Q/W/E/R/T/Y 7 (35 articles, 300pp., novembre 1997).
# Direction de Q/W/E/R/T/Y 8 (37 articles, 352pp., novembre 1998).
# Direction de Q/W/E/R/T/Y 9 (36 articles, 352pp., novembre 1999).
# Direction de Q/W/E/R/T/Y 10 (24 articles, 248pp., novembre 2000).
# Direction de Q/W/E/R/T/Y 11 (28 articles, 256pp., novembre 2001).
# Direction de Q/W/E/R/T/Y 12 (27 articles, 262pp., novembre 2002).
# Ellipses, blancs, silences ("Rhétoriques des Arts, I"). Actes du premier colloque du CICADA. Pau: Publications de l'Université de Pau, 1992). 228pp.
# Montages/collages ("Rhétoriques des Arts, II"). Actes du 2ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1993. 168pp.
#- Suites & séries ("Rhétoriques des Arts, III"). Actes du 3ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1994. 214pp.
# Cadres & marges ("Rhétoriques des Arts, IV"). Actes du 4ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1995. 204pp.
# Ratures & repentirs ("Rhétoriques des Arts, V"). Actes du 5ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1996. 260pp.
# La Surprise ("Rhétoriques des Arts, VI"). Actes du 6ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1998. 214pp.
# Vagues figures, ou les promesses du flou ("Rhétoriques des Arts, VII"). Actes du 7ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1999. 290pp.
# La Liaison ("Rhétoriques des Arts, VIII"). Actes du 8ème colloque du CICADA. Pau: Publications de l'Université de Pau, 2008. 250pp.
# Oxymores ("Rhétoriques des Arts, IX"). Actes du 9ème colloque du CICADA. Eds. B. Rougé, I. Thomas-Fogiel. Pau: Presses de l'Université de Pau, 2013. 168pp.
# L'index ("Rhétoriques des Arts, XV"). Actes du 15ème colloque du CICADA. Introd. R. Shusterman. Pau: Presses de l'Université de Pau, 2009. 250pp.
# L'adresse ("Rhétoriques des Arts, XVI"). Actes du 16ème colloque du CICADA. Eds. B. Rougé, B. Prévost. Pau: Presses de l'Université de Pau, 2013. 182pp.
# L'inversion ("Rhétoriques des Arts, XVIII"). Actes du 18ème colloque du CICADA. Eds. B. Rougé, J.-P. Cometti. Pau: Presses de l'Université de Pau, 2013. 166pp.
# L’effet ("Rhétoriques des Arts, XIX"). Actes du 19ème colloque du CICADA. Eds. B. Rougé, R. Shusterman. Pau: Presses de l'Université de Pau, 2013. 152pp.
# Revue Française d'Études Américaines 86 (octobre 2000): "Aspects de l'esthétique américaine."
# ''A Force de signes. Travailler avec Louis Marin''. Dirs. Alain Cantillon, Pierre-Antoine Fabre, Bertrand Rougé. Paris : Éditions de l’EHESS, `2018`. 512pp.
* `A paraître` en 2019
# Le Savoir-rire de l’art. Eds. Bernard Lafargue, Bertrand Rougé. Figures de l’art, N° 37 (2019).
# Crise du monument, critique de la monumentalité. Dirs. Pierre-Henry Frangne, Bertrand Rougé. Coll. “Æsthetica”. Rennes : PUR, 2019.
# La Reconnaissance ("Rhétoriques des Arts, XIV"). Actes du 14ème colloque du CICADA. Pau: Presses de l'Université de Pau (2019).
# Art et persuasion ("Rhétoriques des Arts, XX"). Actes du 20ème colloque du CICADA. Pau: Presses de l'Université de Pau (2019).
# Mouvoir/Emouvoir, ou la fonction esthétique? ("Rhétoriques des Arts, XVII"). Actes du 17ème colloque du CICADA. Pau: Presses de l'Université de Pau (2019).
* Publications `en cours`
# La Littéralité ("Rhétoriques des Arts, X"). Actes du 10ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
# Le Lieu de l'œuvre ("Rhétoriques des Arts, XI"). Actes du 11ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
# Autoréférence (et paradoxes) de l'art ("Rhétoriques des Arts, XII"). Actes du 12ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
# La Dimension du retour ("Rhétoriques des Arts, XIII"). Actes du 13ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
# Inachever ("Rhétoriques des Arts, XXI"). Actes du 21ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
# Cacher…l’art ? ("Rhétoriques des Arts, XXII"). Actes du 22ème colloque du CICADA. Pau: Presses de l'Université de Pau (à paraître).
* Publications `en projet`
# Numéro spécial de la Revue de Métaphysique et de Morale consacré à “La philosophie et le readymade” (projet en cours).
# Numéro spécial de la Revue de Métaphysique et de Morale consacré à “L’ironie” (projet en cours).
!!! Organisations de colloques
# 1990: Ellipses, blancs, silences ("Rhétoriques des Arts, I"). Premier colloque du CICADA. Pau: Publications de l'Université de Pau, 1992). 228pp.
# 1991: Montages/collages ("Rhétoriques des Arts, II"). 2ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1993. 168pp.
# 1992: Suites & séries ("Rhétoriques des Arts, III"). 3ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1994. 214pp.
# 1993: Cadres & marges ("Rhétoriques des Arts, IV"). 4ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1995. 204pp.
# 1994: Ratures & repentirs ("Rhétoriques des Arts, V"). 5ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1996. 260pp.
# 1995: La Surprise ("Rhétoriques des Arts, VI"). 6ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1998. 214pp.
# 1996: Vagues figures, ou les promesses du flou ("Rhétoriques des Arts, VII"). 7ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître, 1999).
# 1997: La Liaison ("Rhétoriques des Arts, VIII"). 8ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître, juin 1999).
# 1998: Oxymores, les formes de l'indécidable ("Rhétoriques des Arts, IX"). 9ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître, printemps 2000).
# 1999: La Littéralité ("Rhétoriques des Arts, X"). 10ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2000: Le Lieu de l'œuvre ("Rhétoriques des Arts, XI"). 11ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2002: Autoréférence (et paradoxes) de l'art ("Rhétoriques des Arts, XII"). 12ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2003: La Dimension du retour ("Rhétoriques des Arts, XIII"). 13ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2004: La Reconnaissance ("Rhétoriques des Arts, XIV"). 14ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2005: L'Index ("Rhétoriques des Arts, XV"). 15ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2006: L'Adresse ("Rhétoriques des Arts, XVI"). 16ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2008: Mouvoir/Emouvoir, ou la fonction esthétique? ("Rhétoriques des Arts, XVII"). 17ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2009: L'inversion ("Rhétoriques des Arts, XVIII"). 18ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2010: L’effet ("Rhétoriques des Arts, XIX"). 19ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2011: Art et persuasion ("Rhétoriques des Arts, XX"). 20ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2013: Inachever ("Rhétoriques des Arts, XXI"). 21ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2014: Cacher…l’art ? ("Rhétoriques des Arts, XXII"). 22ème colloque du CICADA. Pau: Publications de l'Université de Pau (à paraître).
# 2002: Transparences et opacités de Louis Marin. Colloque du CICADA (hors série "Rhétoriques des arts")
# 2004: Direction de l'atelier " Tableaux/drapeaux, ou les couleurs de la Nation" au Congrès annuel de l'Association Française d'Etudes Américaines (21-23 mai 2004)
# 2008 : 30-31 octobre: Co-organisation avec Isabelle Thomas-Fogiel (Professeur de Philosophie de l'art à l'Université d'Ottawa, titulaire de la Chaire d'étudde de la France au CERIUM de l'Université de Montréal) du colloque Franco-Québecois "Du 'bas-art' aux 'Beaux-Arts': pour une relecture du Pop Art".
# 2014: 28 novembre: Co-organisation au Musée Rodin avec Aline Magnien (Musée Rodin) et Pierre-Henry Frangne (“Histoire et théorie des arts” - Rennes 2).du colloque « Crise du monument, critique de la monumentalité, fin du XIXe siècle-XXIe siècle”.
# 19-21 Novembre `2018` : « ''Le savoir-rire de l’art'' », colloque international co-organisé à Bordeaux avec Bernard Lafargue (Université Bordeaux Montaigne).
*`En préparation`
# 2019 : « The Philosophy of art is the heart of philosophy », colloque intrernational sur Arthur C. Danto, organisé à Pau.
# Projet de colloque international sur l'ironie (date non déterminée).
!!! Articles
1981
<<<1 - "Walden, ou la mort dans les bois", 14 pp. dactyl.
<<<
1982-1983
<<<2 - "Espace ironique et espace perspectif," 34pp. dactyl.
<<<
1984
<<<3 - "La pratique des corps-limites chez E.A. Poe: la vérité sur le cas de 'The Man That Was Used Up.'" Poétique 60 (Novembre 1984): 473-488.
<<<
1985
<<<4 - "Irony and Ventriloquism: Notes Toward An Interpretation of E.A. Poe's 'Thou Art The Man.'" Interface. Essays on History, Art, and Myth in American Literature. Daniel Royot, ed. Montpellier: Publications de la Recherche de l'Université de Montpellier III, 1985. 21-30.
<<<
<<<5 - "La Reproduction interdite: violence et représentation du corps chez Magritte." Pratiques du corps. J.-M. Racault, ed. Saint-Denis-de-La-Réunion/Paris: Presses de l'Université de La Réunion/Didier-Erudition, 1985. 175-200.
<<<
<<<6 - "L'Œil et la cible: autour de Jasper Johns et du musée." 29pp. dactyl.
<<<
1986
<<<7 - "La cabane et le chemin: Walden comme autoportrait." Etudes Anglaises XXXIX, 2 (avril-juin 1986): 139-149.
<<<
<<<8 - "Le Territoire de l'ironie." Le Territoire. Etudes sur l'espace humain. J.-M. Racault, ed. Saint-Denis-de-La-Réunion/Paris: Presses de l'Université de La Réunion/Didier-Erudition, 1986. 111-128.
<<<
1987
<<<9 - "Le 'Premier étonnement,' ou l'ironie comme re-présentation de l'origine (du langage)." Représentations de l'origine. J.-M. Racault, ed. Saint-Denis-de-La-Réunion/Paris: Presses de l'Université de La Réunion/Didier-Erudition, 1987. 111-131.
<<<
<<<10 - "Le Randonneur et le géomètre, ou l'Odyssée de H. D. Thoreau." Le Voyage Romantique et ses réécritures. Ch. La Cassagnère, ed. Publications de l'Université de Clermont-Ferrand II, 1987. 205-228.
<<<
1988
<<<11 - "L'Ironie, ou la double représentation." Lendemains. Vergleichende Frankreichforschung 50 (Berlin, 1988): 34-40.
<<<
1989
<<<12 - "Le visage de l'angoisse." Artstudio 12 (printemps 1989, n° spécial "Jasper Johns"): 68-82.
<<<
<<<13 - "Lingua ex Machina: angoisse de la mécanique et mécanique de l'angoisse dans l'oeuvre d'Edgar Allan Poe." Visages de l'angoisse. Ch. La Cassagnère, éd. Publications de l'Université de Clermont-Ferrand II, 1989. 325-352.
<<<
1990
<<<14 - "L'artiste et le pantographe. Geste et répétition dans le Pop Art et l'Expressionnisme Abstrait." Revue Française d'Etudes Américaines 46 (octobre 1990) : 233-243.
<<<
<<<15 - Article "Jasper Johns." Encyclopaedia Universalis (Thesaurus Index).
<<<
<<<16 - "Hopper: Musée Cantini, Marseille, et Whitney Museum, New York." Universalia 1990 (Paris: Encyclopaedia Universalis, 1990). 495-496.
<<<
<<<17 - "Du Mythe au Poème, 1. Thoreau et l'automythe." La Licorne18 (1990): 163-177.
<<<
1991
<<<18 - "Keith Haring." Universalia 1991 (Paris: Encyclopaedia Universalis, 1991). 579-580.
<<<
<<<19 - "Le visage de l'angoisse. Jasper Johns et les tentations de l'autoportrait." Etudes Anglaises XLIV, 1 (janvier-mars1991): 91-105.
<<<
<<<20 - "La peinture à la lettre. Fragments sur la littéralité dans la peinture américaine." Americana 8 (Publications de la Sorbonne, janvier 1991): 77-101.
<<<
<<<21 - "Le corps et la toile, ou le corps du peintre dans l'art contemporain (Pollock, Johns, Lichtenstein, art corporel)." Les Figures du corps. Ed. Bernard Brugière. Paris: Publications de la Sorbonne, 1991. 325-339.
<<<
<<<22 - "Ironie et répétition dans deux scènes de Shakespeare: Crise du Degree ou tournant du mischief?" Poétique 87 (septembre 1991): 335-356.
<<<
<<<23 - ""At This Distance": Thoreau, Carlyle et l'écriture." Qwerty 1 (novembre 1991): 131-144.
<<<
<<<24 - "Du Mythe au Poème, 2. Thoreau et l'écriture." Qwerty 1 (novembre 1991): 145-158.
<<<
<<<25 - ""The Apexes of What Wonderful Triangles!" L'espace complexe de l'autoportrait transcendantal dans Walden." Etudes Anglaises XLIV, 4 (oct.-déc. 1991): 428-443.
<<<
<<<26 - "Pop Art américain, ironie et collage. Une poétique de la répétition." Artstudio 23 (Hiver 1991): 68-83.
<<<
1992
<<<27 - 49 notices sur l'art américain dans le Dictionnaire d'art moderne et contemporain, dirigé par Gérard Durozoi. Paris: Hazan, 1992.
<<<
<<<28 - Article "Pop Art." 15 pp. dactyl. Encyclopaedia Universalis (Corpus).
<<<
<<<29 - "Angle (du) mort et pli baroque. L'ellipse dans Les Ambassadeurs de Holbein (rhétorique, géométrie et perspective)." Ellipses, blancs, silences. Ed. B. Rougé, Pau: Publications de l'Université de Pau, 1992. 86-102.
<<<
<<<30 - "L'ellipse de l'ellipse, ou les enjeux du jeu." Ellipses, blancs, silences. Ed. B. Rougé, Pau: Publications de l'Université de Pau, 1992. 7-10.
<<<
<<<31 - "Ironie et répétition dans le Pop Art américain. La réception critique, ou la répétition censurée." Annales du CRAA 17. Bordeaux: Presses Universitaires de Bordeaux, 1992. 251-264.
<<<
<<<32 - "Du pli des lames au dépli de l'âme. Les ressorts cachés des contes d'Edgar Poe." Q/W/E/R/T/Y 2 (octobre 1992): 107-118.
<<<
1993
<<<33 - "Le collage, ou le coup de force." Montages/Collages. 2ème colloque du CICADA. Pau: Publications de l'Université de Pau, 1993. 7-11.
<<<
<<<34 - "'Whose Doom? Dead See," ou la peinture rendue invisible: transparences et opacités préraphaélites." Q/W/E/R/T/Y 3 (octobre 1993): 219-230.
<<<
<<<35 - "Rendre l'invisible, ou les affleurements de la chair: chiasme et symbole dans la peinture de Dante Gabriel Rossetti." Q/W/E/R/T/Y 3 (octobre 1993): 231-244.
<<<
<<<36 - "Une Véronique américaine: le drapeau des Etats-Unis à travers l'œuvre de Jasper Johns." Revue Française d'Etudes Américaines 58 "Le drapeau américain" (novembre 1993): 389-99.
<<<
1994
<<<37 - "Thoreau habite en poète (la maison, la terre, la langue)." Cahier de l'Herne 65 (Henry D. Thoreau). Dir. Michel Granger. Paris: L'Herne, 1994. 165-174.
<<<
<<<38 - "‘Progress’ et ‘Process’: parcours et discours de la série." Suites & séries. Ed. B. Rougé. Pau: PUP, 1994. 7-12.
<<<
<<<39 - "Splitting Cicadas, ou le dépli des masques (Jasper Johns et la série)." Suites & séries. Ed. B. Rougé. Pau: PUP, 1994. 155-172.
<<<
<<<40 - "Dans l'œil de la montagne. De l'orographie à l'autographie." Orographes. De l'Atlantique à la Méditerranée. Catalogue d'exposition. Musée d'Art Moderne de Collioure, 1994. 7-11, 61-70. (Texte repris partiellement dans Orographes: hommage à Franz Schrader. Pau: Faucompret, 1994. 4-11; puis dans Recherches Poïétiques 2/1995: 80-95).
<<<
<<<41 - "La crise du second degré: ironie et répétition, Renaissance et Modernité dans Jules César et Hamlet." Q/W/E/R/T/Y 4 (octobre 1994): 79-95.
<<<
1995
<<<42 - "Le ressort et l'autre versant, ou le (dé-)pli de l'œuvre." Figures de l'art 1 (n° spécial "Plis", janvier 1995). 77-86.
<<<
<<<43 - "En-visager l'absence, ou la circonstance du vis-à-vis: autour d'un cadre dans un tableau de Vermeer." Cadres & marges. Ed. B. Rougé. Pau: PUP, 1995. 27-44.
<<<
<<<44 - "Visages au bord du vide: le face à face du cadre et de la marge." Cadres & marges. Ed. B. Rougé. Pau: PUP, 1995. 7-12.
<<<
<<<45 - "Les pouvoirs de l'index, ou le régime indiciel de la 'chasse aux sorcières': essai de sémiotique du McCarthysme." Q/W/E/R/T/Y 5 (octobre 1995): 465-482.
<<<
1996
<<<46 - "‘Ponctuation de déhiscence’ et ‘saincte couture’: la rature, la voix et le ‘point d'ami’ (Face, de Jasper Johns, et l'autoportrait chez Beckett, Montaigne et Thoreau)." Ratures & repentirs. Ed. B. Rougé. Pau: PUP, 1996. 147-166.
<<<
<<<47 - "La rature, le repentir et 'l'avoir-eu-lieu.'" Ratures & repentirs. Ed. B. Rougé. Pau: PUP, 1996. 7-14.
<<<
1997
<<<48 - "Les deux récits du tableau: histoire et configuration narrative en peinture." Littérature 106 (n° spécial "Récit et Images", Larousse, printemps 1997): 6-20. Disponible en ligne (www.persee.fr).
<<<
<<<49 - "L'invention de l'Atlantique: ironie, perspective et découverte de l'Amérique." Mythes et réalités transatlantiques. Actes du colloque international de Talence (8-9 décembre 1995). Ed. Christian Lerat. Talence: Editions de la Maison des Sciences de l'Homme d'Aquitaine, 1997. 15-25.
<<<
1998
<<<50 - "Au trébuchet de la surprise, la reconnaissance et le sujet précipité (Autour de Poussin, les Aigles et Petrus Christus)." La Surprise ("Rhétoriques des Arts, VI"). Actes du 6ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 1998. 113-135.
<<<
<<<51 - "Out of Place… Le lieu de la relation et la surprise du déjà-connu." La Surprise ("Rhétoriques des Arts, VI"). Actes du 6ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 1998. 7-14.
<<<
<<<52 - "Pour une esthétique ironique: Danto et les Brillo Boxes, ou une fin de l'art en trompe-l'œil." Cahiers du Musée National d'Art Moderne 63 (Printemps 1998): 90-111. (Trad. Italienne, “Per un’estetica ironica. Danto e le ‘Brillo Boxes’ o la fine dell’arte in trompe-l’oeil”, Ipso facto, maggio-agosto 2000 : 17-38 ; rep. In Riga 33, “Andy Warhol,” ed. Elio Grazioli, maggio 2012 : 265-287.)
<<<
<<<53 - "L'œil éraillé et la voix de peinture: narration et vis-à-vis chez Carpaccio." Rue Descartes 21 (septembre 1998): 77-94.
<<<
<<<54 - "La réserve et l'espacement: l'origine du sujet moderne et la perspective ironique (Autour de l'Autoportrait au miroir convexe de Parmigianino)." Annales de l'Université de Savoie 24 ("Autoscopies: représentation et identité dans l'art et la littérature," 1998): 75-86.
<<<
<<<55 - "Le Pop Art et l'entr'acte: une esthétique ironique (Acte I)." Figures de l'art III (N° spécial "Art de la mise en scène/Mise en scène de l'art, 1997-1998). 121-155.
<<<
1999
<<<56 - "Henry David Thoreau: Premières pages du Journal" (Traduction et présentation). IF n° 15 (Marseille, octobre 1999): 13-23.
<<<
<<<57 - "Vague visage et voix de peinture: de l'ef-facement au vis-à-vis." Vagues figures, ou les promesses du flou ("Rhétoriques des Arts, VI"). Actes du 7ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 1999. 93-114.
<<<
<<<58 - "De la fixité des nuages…" Vagues figures, ou les promesses du flou ("Rhétoriques des Arts, VI"). Actes du 7ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 1999. 7-17.
<<<
<<<59 - "De Hester Prynne à Miss Corn Flakes: la société pornographique et la tyrannie de la lettre chez Hawthorne et Ramos" Figures de l'art IV: "Nude or Naked? Erotiques ou pornographies de l'art" (1999): 343-365.
<<<
2000
<<<60 - "Avant-propos" du numéro thématique "Aspects de l'esthétique américaine": Revue Française d'Études Américaines 86 (Belin, octobre 2000): 3-10.
<<<
<<<61 - "D'un vague pittoresque: réflexions à partir des aquatintes de deux volumes de William Gilpin." Q/W/E/R/T/Y 10 (novembre 2000): 163-181.
<<<
2002
<<<62 - "'The Cloud tells you this…'. Pour une lecture 'diétrologique' de Don DeLillo." Transatlantica: Revue d'Etudes Américaines 2 (décembre 2002): http://etudes.americaines.free.fr/TRANSATLANTICA/2/rouge.html
<<<
2005
<<<63 - "Des citations renversantes." Citer l'autre. Eds. Marie-Dominique Popelard, Anthony Wall. Paris: Presses de la Sorbonne Nouvelle, 2005. 71-86.
<<<
<<<64 - "L'ironie sans fin de l'art. Pour un 'grand récit' du renouement." Figures de l'art 10 ("L'esthétique, aujourd'hui?") (Décembre 2005): 247-264.
<<<
2006
<<<65 - "Oxymore et contrapposto, maniérisme et baroque: sur la figure et le mouvement, entre rhétorique et arts visuels." Etudes Epistémè 9 (printemps 2006): 99-129.
<<<
<<<66 - "Con amore… Daniel Arasse, historien de l'intimité." ["La pensée des peintres"] Esprit (juin 2006): 116-126.
<<<
<<<67 - "La Visitation. Pontormo, Lévinas et le vis-à-vis de peinture." Revue de Métaphysique et de Morale (octobre 2006): 523-543.
<<<
2007
<<<68 - "Le visage du lieu et la voix du tableau: sur la transfiguration et l'advocation à travers l'exemple de Georges Rousse." Figures de l'art 13 ("Espaces transfigurés"): 49-64.
<<<
2008
<<<69 - "Qu'est-ce que cela donne… à délier? Sur la liaison et le mouvement." La Liaison ("Rhétoriques des Arts, VIII"). Actes du 8ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 2008. 7-18.
<<<
<<<70 - "Point de décollation: liaison liminale et récit minimal de peinture (Jean-Baptiste et la voix du tableau)." La Liaison ("Rhétoriques des Arts, VIII"). Actes du 8ème colloque du CICADA. Ed. B. Rougé. Pau: Publications de l'Université de Pau, 2008. 147-171.
<<<
<<<71 - "Koniec konca umenia" ["La fin de la fin de l'art"]. Filozoficko-estetické reflexie posthistorického umenia. Acta Facultatis Philosophicae Universitatis Presoviensis (Studia Æsthetica X). Ed. Jana Soskova. Presov (Slovaquie): Vydala Filosofická fakulta Presovskej univerzity v Presove roku, 2008. 73-84.
<<<
<<<72 - "Contre Danto. Les Boîtes Brillo, "peinture d'histoire," ou la fin de la fin de l'art." L'image et les traversées de l'histoire (documents, médias et pratiques artistiques). Figures de l'art 15 (automne 2008): 167-188.
<<<
2009
<<<73 - "Le littéralisme est un illusionnisme, ou l'erreur des modernes: autour de Manet, Stella, Warhol, Danto," Art, tautologie et littéralité, eds. Leszek Brogowski, Pierre-Henry Frangne, Rennes: PUR (2009). 153-181.
<<<
<<<74 - “L'index réversible, le visage et la voix de peinture: comment toucher dans la distance?” L'index ("Rhétoriques des Arts XV"). Ed. B. Rougé, introd. R. Shusterman. Pau: Publications de l'Université de Pau, 2009. 107-123.
<<<
<<<75 - "Annonciation/Visitation: la distance ou l'étreinte. Vers une poétique picturale ?". Figures de l'art 16 (« Autour de Daniel Arasse »). Pau : PUP, 2009. 81-110.
<<<
2010
<<<76 - “Le tableau efficace. Réflexions sur la performativité de la peinture (religieuse).” La Performance des images (Problèmes d’histoire des religions, vol. XIX, 2009). Dirs. Alain Dierkens, Gil Bartholeyns, Thomas Golsenne. Bruxelles : Editions de l’Université de Bruxelles, 2010. 157-168. (Disponible en ligne: http://www.editions-universite-bruxelles.be/fiche/view/2563)
<<<
2011
<<<77 - « “Questa specie di farsa che è la mostra” ou les Brillo Boxes “à l’italienne”. Méta-indiscernabilité, pseudo-littéralité, mise en figure et illusions de rupture dans l’art italien des années 60 ». Palinsesti : Contemporary Italian Art I/1 : « A New Methodology for the Sixties ? » (2011) : 21-43. [http://www.palinsesti.net/index.php/Palinsesti/article/view/18]
<<<
<<<78 - « Pour une esthétique ironique : Danto et les Brillo Boxes, ou une fin de l’art en trompe-l’œil ». In T.J. Clark, Rosalind Krauss, Branden W. Joseph, Michel Gauthier, Bertrand Rougé, Jean-Claude Lebensztejn, Yve-Alain Bois, Pamela M. Lee, L’Art américain depuis 1950. Paris : Editions du Centre Pompidou, 2011. 127-154 ? (Réédition du texte de l’article paru dans le n° 63 des Cahiers du MNAM, printemps 1998))
<<<
<<<79 - « Passages. De Cézanne à Picasso, la rhétorique de la figure ». Picasso, Cézanne : quelle filiation ? Eds. Odile Billoret-Bourdy, Michel Guérin. Aix-en-Provence : Presses Universitaires de Provence, 2011. 29-42.
<<<
2012
<<<80 - « “Le même, sous un autre jour”. La mise en figure, ou l’opération ironique de l’art ». La Pensée esthétique de Gérard Genette. Dirs. J. Delaplace, P.-H. Frangne, G. Mouëllic. Rennes : PUR, 2012. 155-180.
<<<
<<<81 - « “La (per così dire) energia delle figure”. Transporter, figurer, ou l’enargeia/energeia des œuvres. Pour une énergétique de l’art. » Aisthesis : Pratiche, linguaggi et sapere dell’estetico 2 (Florence: Firenze UP, 2012) : 175-211. [http://www.fupress.net/index.php/aisthesis/article/view/10996/10416]
<<<
<<<82 - “Per un’estetica ironica.” Andy Warhol. Ed. Elio Grazioli, Bergame : Riga edizioni, 2012. 265-287 (traduction italienne de “Pour une esthéttique ironique”, paru dans le n° 63 des Cahiers du MNAM, printemps 1998).
<<<
2013
<<<83 - “La forme éloignée de l’usage. Po(ï)étique du remploi figuratif et esthétique ironique du Pop Art.” L’image recyclée. Usages de l’appropriation dans les arts figuratifs. Dirs. Georges Roque et Luciano Cheles. Figures de l’art 23 (2013) : 135-152.
<<<
<<<84 - "Just Figuring : Or, The Endless End of Art. Readymades, Trompe-l’œil, Metaphors and Other Meta-Indiscernibles." The Philosophy of Arthur C. Danto (The Library of Living Philosophers, vol. XXXIII). Eds. Randall E. Auxier, Lewis E. Hahn. Chicago: Open Court, 2013. 279-305. (Texte suivi d’une réponse d’Arthur Danto, « Reply to Bertrand Rougé », 306-312.)
<<<
<<<85 - “L’oxymore et le lieu de la figure, ou le ‘moderne’ lieu-de-l’art (de Jasper Johns au contrapposto maniériste).” Oxymores ("Rhétoriques des Arts IX”). Eds. B. Rougé, I. Thomas-Fogiel. Pau: Presses de l'Université de Pau. 2013. 149-165.
<<<
<<<86 - "L'adresse et le passage à la figure, ou comment distinguer les ‘indiscernables.’" L'adresse ("Rhétoriques des Arts XVI"). Eds. B. Rougé, B. Prévost. Pau: Presses de l'Université de Pau, 2013. 79-95.
<<<
<<<87 - "L'inversion figurative : réversibilité, remploi, indiscernabilité (autour des anges de la Madonna del Parto)." L'inversion ("Rhétoriques des Arts XVIII”). Eds. B. Rougé, J.-P. Cometti. Pau: Presses de l'Université de Pau, 2013. 141-153.
<<<
<<<88 - “L’‘effet-mystère’ : pour une esthétique de l’effet-comme-effet”. L’effet (“Rhétoriques des Arts XIX”). Eds. B. Rougé, R. Shusterman. Pau: Presses de l'Université de Pau, 2013. 37-51.
<<<
2014
<<<89 - « A quoi tient une figure ? Montage, énergie, réflexivité ». In Le Montage comme articulation. Unité, séparation, mouvement. Eds. J. Degenève, S. Santi. Paris : Presses de la Sorbonne Nouvelle, 2014. 95-104.
<<<
2016
<<<90 - « ''Tableaux ventriloques : Jasper Johns, Flag (1955), Ventriloquist (1983)'' ». Contribution à `Images doubles. Pièges et révélations du visible`, dirs. Jean-Hubert Martin, Dario Gamboni, Michel Weemans, Paris : Hazan, 2016.
<<<
<<<91 - « ''L’image et ses ombres: Jasper Johns, Regrets (2013)'' ». Contribution à `Images doubles. Pièges et révélations du visible`, dirs. Jean-Hubert Martin, Dario Gamboni, Michel Weemans, Paris : Hazan, 2016.
<<<
2017
<<<92 - « ''“Less is more”… than it seems » ou l’évidence diu simple : faux-semblants du pur, du littéral et du banal dans les arts plastiques au XXe siècle'' ». `La Simplicité. Manifestations et enjeux culturels du simple en art`. Dirs. S. Jollin-Bertocchi, L. Kurts-Wöste, A.-M. Paillet, Cl. Stolz. Paris : Champion, 2017. 285-298.
<<<
<<<93 - « ''Warhol, Duchamp, le geste ironique de l’art et le design comme rien. In-différence, inframince et leftover dans Fountain et les Boîtes Brillo'' », Figures de l’art, n° 35, 213-234.
<<<
<<<94 - « ''La dislocation figurative. L’énergie de la Figuration contre la “fin de l’art”'' ». La Part de l’Œil 31 (« `Force de figures : la figurabilité entre texte et image` », 2017/2018) : 33-47.
<<<
<<<95 - « ''L’art comme Figuration. Pour une mimèsis non-mimétique'' », `Usages de la figure, régimes de la figuration`, eds. Laura Marin, Anca Diaconou, Bucarest : Editura universitatii bucuresti, 2017. 81-96.
<<<
<<<96 - « ''“La (per così dire) energeia delle figure”. A transporta, a figura sau enargeia/energeia operelor : pentru o energetica a artei'' ». In `Figura : corp, arta, spatiu, limbaj`. Dir. L. Marin. Bucarest : Editura universitatii bucuresti, 2017. 385-425. Trad. roumaine par Andrei Lazar de « “La (per così dire) energia delle figure”. Transporter, figurer, ou l’enargeia/energeia des œuvres. Pour une énergétique de l’art. » Aisthesis : Pratiche, linguaggi et sapere dell’estetico 2 (Florence: Firenze UP, 2012) : 175-211.
<<<
2018
<<<97 - "''‘Old Glory’, réelle figure de l’Union. Le drapeau américain comme lieu et visage de la représentation.''" `A Force de signes. Travailler avec Louis Marin`. Dirs. Alain Cantillon, Pierre-Antoine Fabre, Bertrand Rougé. Paris : Éditions de l’EHESS, 2018. 433-466.
<<<
<<<98 - « ''Léal souvenir ? La photographie, la peinture et le serment de l’image fidèle'' ». Aisthesis. Pratiche, linguaggi e saperi dell’estetico, 11/2 (novembre 2018 : 115-128.
<<<
Articles rédigés et `à paraître en 2019`
<<<99 - Printemps 2019 : « ''On Being About What Counts. Art, Money, Value and Figurative Distance as Artistic Quality'' ». Aesthetics, Literature, and Life: Essays in honor of Jean Pierre Cometti. Dirs. Jerrold Levinson, Carla Carmona Escalera. Milan : Mimesis International, 2019.
<<<
<<<100 – « ''Civil Transsubstantiation. The American Flag and Civil Religion.'' » Religions 10/4 (Special Issue « American Civil Religion », ed. R.J. Haberski, Jr.) (April 2019).
<<<
<<<101 - "''Anthony McCall: De l'anti-cinéma à l'anti-ruine.''" Texte à paraître dans le catalogue de l'exposition Moving Light. Pau: PUP, 2019.
<<<
<<<102 - "''Moving Light, ou les yeux de Pygmalion: à propos de Anthony McCall.''" Article à paraître dans le catalogue de l'exposition Moving Light. Pau: PUP, 2019.
<<<
<<<103 - "''La peinture par d'autres moyens: les installations de lumière de Charlotte Beaufort.''" Article à paraître dans le catalogue de l'exposition Moving Light. Pau: PUP, 2019.
<<<
<<<104 - “''Le souci de l’œuvre, ou la transaction des reconnaissances. La relation esth-éthique comme don''” La Reconnaissance ("Rhétoriques des Arts XIV"). Eds. B. Rougé, P.-H. Frangne. Pau: Publications de l'Université de Pau. 2019.
<<<
<<<105 - "''La figure-émotion: pour une rhétorique des transports et de la plasticité.''" Mouvoir/Emouvoir, ou la fonction esthétique? ("Rhétoriques des Arts XVII). Ed. B. Rougé. Pau: Publications de l'Université de Pau. A paraître, 2019.
<<<
<<<106 - « ''“Things the mind already knows”. Le lieu commun, la figure et l’esth-éthique des lieux partagés'' ». Lieux commmuns. Ed. Itzhak Goldberg. Paris : Editions du CNRS, 2019.
<<<
<<<107 - “''‘The Poetry of Scale’: la figure, le lieu et le monumental chez Claes Oldenburg''”. A paraître dans le volume Crise du monument, critique de la monumentalité, fin du XIXe siècle-XXIe siècle, Rennes : PUR, 2019.
<<<
<<<108 - « ''Le tégument ornemental, ou l’habitabilité comme figure (peinture, architecture, rhétorique)'' », Habiter l’ornement. Espace, corps, cultures, eds. I. Alzieu, D. Clévenot, Toulouse : PUM, à paraître.
<<<
<<<109 - “''Pourquoi les crânes rient, ou l’arché-oxymore ironique de l’art. Illusion, ressemblance, indifférence, indiscernabilité.''” Figures de l’art 37 (automne 2019)
<<<
Articles rédigés et `à paraître après 2019`
<<<110 - “L’évidence de l’art, ou la rhétorique de la transparence.” Transparrence/Transparaître. Ed. Charlotte Beaufort. Rennes : PUR, 2020.
<<<
<<<111 - « “I have to hide to reveal” : l’évidence et le mystère, ou le fondement non-mimétique de la mimèsis ». A paraître dans Cacher… l’art ? (Rhétoriques des Arts XXII), Pau : PUP.
<<<
<<<112 - « Marin et Danto : autour du signe eucharistique et de l’embodiment ». Louis Marin : La Critique du discours. Dir. Martine Pécharmant (CNRS), à paraître.
<<<
<<<113 - "Pourquoi les crânes rient, ou l'envers du tableau." Autoréférence (et paradoxes) de l'art ("Rhétoriques des Arts XII"). Ed. B. Rougé. Pau: Publications de l'Université de Pau. A paraître.
<<<
<<<114 - "La volte-face, ou l'événement du tableau." La dimension du retour ("Rhétoriques des Arts XIII"). Ed. B. Rougé. Pau: Publications de l'Université de Pau. A paraître.
<<<
!!! `En préparation` (hors projets de communication et/ou de publication déterminés)
# "Pour une typologie des récits picturaux."
# "Décapitations et terrassements: autour de l'articulation narrative en peinture."
# "Kairos et genius loci. Evénement et histoire chez Don DeLillo."
# "L'architecture et le lieu dans l'œuvre de Don DeLillo"
# "Tap, tap, tap: Monde, écriture, instant chez DeLillo (à partir de The Names)"
# "Le visage de peinture: la conversation esthétique et l'éthique du tableau"
!!!traductions et interviews
# `Traduction` en français de `Quentin Stevens`, "''Counter-monuments: the anti-monumental and the dialogic''". `A paraître` dans Crise du monument, critique de la monumentalité. Dirs. Pierre-Henry Frangne, Bertrand Rougé. Coll. “Æsthetica”. Rennes : PUR, 2019.
# Traduction en français de "Henry David Thoreau: Premières pages du Journal" (Traduction et présentation). IF n° 15 (Octobre 1999): 13-23.
# Traduction en français de Arthur C. Danto, "Les significations incarnées comme idées esthétiques." Figures de l'art 10 (automne 2005): 19-35.
# Traduction en anglais de Jean-Pierre Cometti, "Between Being and Doing : Æsthetics at the Crossroads." Æsthetic Experience. Eds. Richard Shusterman, Adele Tomlin. Routledge, 2007. 166-177.
# Traduction en anglais de Isabelle Thomas-Fogiel, "Fichte and Levinas. The theory of meaning and the advent of the infinite", Fichte-Studien, supplementa series, Rodopi, 2007.
# Traduction en français du premier chapitre (pp. 1-66) de Robert B. Brandom, Making It Explicit: Reasoning, Representing and Discursive Commitment (1994). Paris : Editions du Cerf, 2011.
# “On ne peut pas quantifier les qualités”. Traduction d’une interview de Robert Irwin réalisée avec Charlotte Beaufort. Figures de l’art 17 (« La lumière dans l’art depuis 1950 »). Pau : PUP, 2009. 35-48.
# “Brume et lumière“.Traduction d’une interview d’Anthony McCall réalisée avec Charlotte Beaufort. Figures de l’art 17 (« La lumière dans l’art depuis 1950 »). Pau : PUP, 2009. 49-62.
# “La nuit comme toile de fond”. Interview de Yann Kersalé réalisée avec Charlotte Beaufort. Figures de l’art 17 (« La lumière dans l’art depuis 1950 »). Pau : PUP, 2009. 63-80.
# Traduction en anglais de Jean-Pierre Cometti, "Wittgenstein est-il un penseur religieux ?" Publié sous le titre « Is Wittgenstein a Religious Philosopher ? », Doubt, Ethics and Religion : Wittgenstein and the Counter-Enlightenment. Eds. Luigi Perissinotto, Vicente Sanfélix. Heusenstamm, Allemagne : Ontos Verlag, 2011. 9-24.
# Traduction de `John Dewey`, « ''Presenting Thomas Jefferson'' », `in` //Ecrits politiques//, Paris : Gallimard, `2018`, 432-458.
!!! Livres (`projets`)
# Old Glory, ou l'icône d'une religion civile. Essai théologico-politique.
# L'ironie pop: modernité, postmodernité, transmodernité.
# Contre Danto, ou la fin de la fin de l'art.
# La Renaissance de l'ironie: la naissance du sujet.
# Sur le récit de peinture.
# De la complicité: esthétique de l'énonciation.
# Jasper Johns: la distance et la proximité.
!!!Communications
# 1984: Communication au XXIVème Congrès annuel de la Société des Anglicistes de l'Enseignement Supérieur (SAES) à Pau: "E.A. Poe et le paradigme des corps-limites".
# 1985: 12 décembre, communication au colloque "Etats des lieux: architecture muséale et art contemporain," à l'Institut Franco-Américain de Rennes: "L'œil et la cible: autour de Jasper Johns et du musée," 19pp. dactyl.
# 1986: Communication au colloque du Centre du Romantisme Anglais (Université de Clermont-Ferrand II) consacré au voyage: "Le randonneur et le géomètre, ou l'odyssée de H. D. Thoreau."
# 1987: Communication au colloque du Centre du Romantisme Anglais (Université de Clermont-Ferrand II) sur "Les visages de l'angoisse": "Lingua ex machina: angoisse de la mécanique et mécanique de l'angoisse dans l'oeuvre d'E. A. Poe."
# 1987: Communication à l'Université de Paris III-Sorbonne Nouvelle (Centre de recherche sur la littérature et les arts dans le monde anglophone), au colloque "Les figures du corps": "Le corps et la toile, ou le corps du peintre dans l'art contemporain (Pollock, Johns, Lichtenstein, art corporel)."
# 1989: Communication au colloque du Centre du Romantisme Anglais (Université de Clermont-Ferrand II) sur les "portraits et autoportraits": "L'espace de l'autoportrait trnascendantal chez Thoreau."
# 1990: Communication au colloque du Centre du Romantisme Anglais (Université de Clermont-Ferrand II) sur les "portraits et autoportraits" (2ème partie): "Jasper Johns et l'autoportrait."
# 1990: "'At This Distance:' Thoreau About Writing and His Vision of Carlyle's Style in The Essay On Carlyle." Communication au Colloque International Victorianism in The United States: Its Era & Its Legacy de l'European Association for American Studies (Londres, Regent's College, 9-12 avril 1990).
# 1990: Communication au 1er colloque du CICADA: "Angle (du) mort et pli baroque. L'ellipse dans Les Ambassadeurs de Holbein (rhétorique, géométrie et perspective)."
# 1991: Communication au colloque du CERCA-GRAAT "Répétition/ répétitions" à l'Université d'Orléans: "Ironie et répétition dans deux scènes de Shakespeare: Crise du Degree ou tournant du mischief?"
# 1991: Communication sur "La répétition et le Pop Art" à la Maison des Sciences de l'Homme d'Aquitaine (Université Michel de Montaigne-Bordeaux III) (10 mai).
# 1992: Communication au colloque "Du Pré-colombien au Post-moderne," Le Marin, Martinique: "La Découverte de l'Amérique, ou l'ironie de la Renaissance."
# 1992: Communication au 3ème colloque du CICADA, Suites & séries: "Splitting Cicadas, ou le dépli des masques. Jasper Johns et la série."
# 1993: Communication au 4ème colloque du CICADA, Cadres & marges: "En-visager l'absence, ou la circonstance du vis-à-vis: autour d'un tableau dans un tableau de Vermeer."
# 1994: Communication au 5ème colloque du CICADA, Ratures & repentirs: "‘Ponctuation de déhiscence’ et ‘saincte couture’: la rature, la voix et le ‘point d'ami’ (Face, de Jasper Johns, et l'autoportrait chez Beckett, Montaigne et Thoreau)." 5e colloque du CICADA ("Ratures & repentirs"), 1-3 décembre 1994 (PUP, 1997).
# 1995: Communication au colloque "Musique et narrativité" organisé à Paris par le Collège International de Philosophie (11-12 juin 1995): "L'œil éraillé, ou la voix (narrative) en peinture: autour de Carpaccio" (paru dans Rue Descartes, septembre 1998)
# 1995: Communication au colloque du Pôle d'excellence "Espaces atlantiques" (Bordeaux III): "L'invention de l'Atlantique: ironie, perspective et découverte de l'Amérique" (paru dans les Actes du colloque, 1997).
# 1996: Communication au colloque du CICADA, Rhétoriques des Arts, VI: La Surprise. "Au trébuchet de la surprise, la reconnaissance et le lieu: point de voix/point de complicité." (à paraître dans les actes du colloque, 1997).
# 1996: Communication au colloque du CICADA, Rhétoriques des Arts, VII: Vagues figures, ou les promesses du flou. "Vague visage et voix de peinture: de l'ef-facement au vis-à-vis." (A paraître dans les actes, 1998)
# 1997: Communication au colloque international "Après la fin de l'art: quelle esthétique pour demain?" organisé par Daniel Charles et le Département de Philosophie et d'Esthétique de l'Université de Nice (4-6 mai). "Which is Which? Danto et les Boîtes Brillo, ou une fin de l'art en trompe-l'œil." A paraître dans les actes (Vrin).
# 1997: Communication au colloque européen sur les emblèmes nationaux organisé par Michel Pastoureau (EHESS) au Parlement européen de Strasbourg (22-23 mai): "Bannières étoilées, ou comment figurer la fédération: le Stars and Stripes et le drapeau européen." A paraître dans les actes.
# 1997: Communication au colloque international "Emmanuel Lévinas" organisé par Daniel Charles et Sacha Sosno à Nice-Sophia Antipolis (28-30 août 1997): "La Visitation à l'œuvre: sur Pontormo et Lévinas." A paraître dans les Actes (Vrin).
# 1997: Communication au colloque du CICADA, Rhétoriques des Arts, VIII: La Liaison. "Point de décollation: liaison liminale et récit minimal de peinture (Jean-Baptiste et la voix du tableau)." (A paraître dans les actes, 1998).
# 1998: 24 septembre: Communication au colloque "Autoscopies" organisé par Jean Kempf et Paolo Tortonese (24-25 septembre, Université de Savoie, Chambéry): "Soi-même en point de mire: la perspective ironique" (à paraître dans les Actes).
# 1998: 4 décembre: Communication au colloque du CICADA "Oxymores, ou les formes de l'indécidable" (3-5 décembre 1998): "Motus et flexus, ou le lieu maniériste du mouvement: oxymore et contrapposto du Maniérisme de Quintilien à Jasper Johns"
# 1999: 27 mai: Communication à la Journée d'Etudes "Le texte et l'image" organisée à l'Université Michel de Montaigne-Bordeaux III par l'Ecole Doctorale de Langues.
# 1999: 11 juin: Communication dans le cadre d'IRIS (Paris III-Sorbonne Nouvelle): "Le sujet dans l'espace, ou les conditions ironiques des révolutions"
# 1999: 12 juin: Communication dans le cadre du colloque de TIMÉE à l'ENS-Ulm consacré aux "Les cinq sens à la Renaissance" (resp. Ann Lecercle): "Miroir et perspective: l'émergence proxémique du sujet moderne"
# 1999: 2-4 décembre: Communication au 10ème colloque du CICADA "La Littéralité": "Trompe-l'œil et readymade, ou l'illusion littérale."
# 2000: 2-4 décembre: Communication au 11ème colloque du CICADA "Le lieu de l'œuvre": "La figure est le lieu, ou les illusions du modernisme"
# 2001: 9-10 juillet: Communication au congrès international "The Rossettis: Cosmopolitans in Victorian London" (St John's College et Trinity College, Cambridge, England): "'Mauvais sujet': Framing the Invisibility of Pre-Raphaelite Painting."
# 2002: 4 mai: "Old Glory," communication au 12ème colloque du CICADA: "Transparences et opacités: Louis Marin."
# 2002: 5-7 décembre: Communication au 13ème colloque du CICADA: "Rhétoriques des Arts XII: Autoréférence (et paradoxes) de l'art": "Pourquoi les crânes rient, ou l'envers du tableau."
# 2003: 11-13 décembre: Communication au 14ème colloque du CICADA: "Rhétoriques des Arts XIII: La dimension du retour": "La volte-face, ou l'événement du tableau."
# 2004: 18-20 mars 2004: communication au colloque "L'espace transfiguré" (CERASA, Université de Toulouse-Le Mirail): "Le visage au-delà du tableau: anamorphoses et vis-à-vis." A paraître dans les actes.
# 2004: 21-23 mai: communication au Congrès annuel de l'AFEA ("Les couleurs de l'Amérique"): "Les couleurs, le pouvoir, la représentation."
# 2004: 4-7 octobre: communication au colloque international "Citer l'autre/Quoting the Other", University of Calgary, Alberta: "Des citations renversantes. Ironie, pouvoir et altérité." A paraître dans les actes.
# 2004: 2-4 décembre: Communication au 15ème colloque du CICADA: "Rhétoriques des Arts XIV: La reconnaissance": “Le souci de l’œuvre.”
# 2005: 2-4 juin: Communication au Colloque international "Maniérisme/Baroque: Tonner contre?" organisé par "Epistémè" à l'université Paris 3: "Figures du mouvement: oxymore, anamorphose et contrapposto."
# 2005: 18-19 novembre: communication au colloque "Art, tautologie et littéralité", Université de Haute Bretagne-Rennes 2: "'What you see is (not) what you see", ou l'illusion littérale moderniste."
# 2005: 1er-3 décembre: Communication au 16ème colloque du CICADA: "Rhétoriques des Arts XV: L'index": “Le visage et l'index.”
# 2006: 26-28 janvier: Communication au colloque "L'image et les traversées de l'histoire"(CERASA, Université de Toulouse-Le Mirail): "Warhol, ou le retour de la peinture d'histoire"
# 2006: 7-9 décembre 2006: Communication au 17ème colloque du CICADA: "Rhétoriques des Arts XVI: L'adresse": "Dos/face: l'adresse et le passage à la figure"
# 2007: 6 septembre: Communication au colloque international sur "L'art post-historique" organisé par l'Institut d'Estétique de l'Université de Presov (Slovaquie), du 6 au 8 septembre 2007: "After Danto's Brillo Box. The End of the End of Art."
# 2008: 10-12 janvier 2008: Communication au 18ème colloque du CICADA: "Rhétoriques des Arts XVII: Mouvoir/Emouvoir, ou la fonction esthétique?": "La figure-émotion: pour une rhétorique des transports et de la plasticité"
# 2008: 7-11 juillet: "Image d'Eros/Eros de l'image": efficace ironique et chiasme de l'image pop (Ramos, Wesselmann, Warhol, etc.)". Communication au 8e congrès international de l'Association Internationale pour l'étude des Rapports entre Texte et Image (IAWIS/AIERTI) consacré à "L'efficacité". Atelier dirigé par Bernard Vouilloux "L’efficacité des images :images érotiques, érotique de l’image"
# 2008: 26-27 septembre: "Visitation et Re-Visitation, ou comment lire et relire l'istoria dans la lumière du tableau". Communication au colloque international organisé par l'ESBAM (École supérieure des beaux-arts de Marseille) en hommage à l'œuvre de Daniel Arasse.
# 2008: 30-31 octobre: "'Pop Art About Art': conscience et renouement pop de l'histoire de l'art", communication au colloque Franco-Québecois "Du 'bas-art' aux 'Beaux-Arts': pour une relecture du Pop Art", co-organisé à Montréal par le CICADA et le CERIUM de l'Université de Montréal.
# 2009: 15-17 janvier: "L'inversion figurative." Communication au 18ème colloque du CICADA: "Rhétoriques des Arts XVIII: L'inversion"
# 2009: 19 février: Conférence et débat autour dde la question de la représentation (Ecole Doctorale "Sciences sociales et Humanités" de l'Université de Pau).
# 2009: 1er-3 mai: Communication au colloque international "La lumière et l'espace dans les pratiques artistiques contemporaines", co-organisé par le CICADA et le CERIUM à l'Université de Montréal.
# 2009: 10-12 septembre: Communication au colloque "Cézanne Picasso, quelle filiation?" organisé à Aix-en-Provence par le Musée Granet, la Société Paul Cézanne et l'Université de Provence: "Passages. De Cézanne à Picasso, la question de la figure."
# 2009: 10-12 septembre: "Passages. De Cézanne à Picasso, la question de la figure." Communication au colloque "Cézanne Picasso, quelle filiation?" organisé à Aix-en-Provence par le Musée Granet, la Société Paul Cézanne et l'Université de Provence.
# 2010: 14-16 janvier: “Effets de l’art, effets de l’esprit : art(ifice), illusion, figure”. Communication au 19ème colloque du CICADA: "Rhétoriques des Arts XIX: L’effet"
# 2010: 5-7 mai: “La forme éloignée de l’usage. Po(ï)étique du remploi et esthétique du Pop Art”. Communication au colloque international “L’image recyclée. Usages de l’appropriation dans les arts figuratifs, de l’allusion au plagiat”, organisé à Paris par le CRAL (EHESS/CNRS).
# 2010: 23-30 juin: “‘Oh, to vex me, contraries meet in one”, ou les ironies de la matière picturale. Eléments de poïétique réflexive ». Communication au colloque international « Regarder l’œuvre d’art : la proximité » organisé par l’Université de Calgary et l’Université Paris 3 à Cerisy-la-Salle.
# 2010: 25-27 novembre: “L’œuvre ironique de l’art”. Communication au colloque “L’Œuvre de l’art. La pensée esthétique de Gérard Genette”, organisé à l’Université de Haute Bretagne-Rennes 2 par l’EA “Arts : pratiques et poétiques”.
# 2011: 13-15 janvier : “La peinture persuasive, ou la conviction de l’après-coup”. Communication au 20ème colloque du CICADA: "Rhétoriques des Arts XX: Art et persuasion"
# 2011 : 17 novembre : « A quoi tient une figure ? Montage, énergie réflexivité ». Communication au colloque international « A quoi ça tient ? Montage et relation », organisé par l’équipe Écritures de la modernité (EA4400 Paris 3/CNRS), 17-19 novembre 2011 à la Maison de la Recherche de l’Université Paris 3.
# 2012 : 22-24 novembre : « De l’indiscernabilité à l’énergie des figures : la figuration contre la ‘fin de l’art’ ». Communication au colloque international « Force de figures : le travail de la figurabilité entre texte et image », organisé à la Fo,ndation Biermans-Lapôtre (Paris) par Giovanni Careri (EHESS), Agnès Guiderdoni, Ralph Dekoninck (Université Catholique de Louvain).
# 2013 : 17-19 janvier : « Le paradigme de Pénélope et la figure du Vandale : inachever, désachever, détruire, altérer-figurer (approches poïétiques autour de Gordon Matta-Clark) ». Communication au 21ème colloque du CICADA: "Rhétoriques des Arts XXI: Inachever".
# 2013 : 20-21 juin : “‘Things the mind already knows‘: le lieu commun, la figure et l’esth-éthique des lieux partagés. Communication au colloque « Lieux communs » organisé à l’INHA (Paris) par le CIEREC, Université de Jean Monnet-Saint-Etienne, en collaboration avec le LARHRA, Université Lumière-Lyon 2, et L’INHA, sous la responsabilité scientifique d’Itzhak Goldberg.
# 2014 : 15-17 mai 2014: « “I have to hide to reveal” : l’évidence et le mystère, ou le fondement non-mimétique de la mimèsis ». Communication au 22ème colloque du CICADA: "Rhétoriques des Arts XXI: Cacher… l’art ?".
# 2014 : 3-5 juin 2014 : « “Less is more”… than it seems » ou l’évidence diu simple : faux-semblants du pur, du littéral et du banal dans les arts plastiques au XXe siècle ». Communication au colloque interdisciplinaire « La simplicité. Manifestations et enjeux culturels du simple en art » organisé par Sophie Jollin-Bertocchi (Université de Versailles / Saint-Quentin-en-Yvelines), Lia Kurts-Wöste (Université Bordeaux Montaigne), Anne-Marie Paillet (ENS-Ulm), Claire Stolz (Université Paris-Sorbonne).
# 2014 : 21-22 novembre : « Leal souvenir ? La photographie, la peinture, l’objectivité et le serment de l’image fidèle ». Communication au colloque international « Voir & savoir : l’objectivité en images » organisé à l’Université Jean Moulin-Lyon 3 (CIETT) par Lawrence Gasquet.
# 2014 : 28 novembre : “‘The Poetry of Scale’: la figure, le lieu et le monumental chez Claes Oldenburg”. Communication au colloque « Crise du monument, critique de la monumentalité, fin du XIXe siècle-XXIe siècle” co-organisé au Musée Rodin par le Musée Rodin, le CICADA (UPPA) et “Histoire et théorie des arts” (Rennes 2).
# `2016` : 10-12 mars : « ''Habiller, habiter, orner : la figure et les limites de l’indiscernable'' ». Communication au colloque « //Habiter l’ornement. Espace, corps, cultures// », organisé à Toulouse (Université Jean Jaurès) par le LLCA-Créatis.
# `2016` : 8-9 juin : « ''Marin et Danto : autour de l’embodiment'' ». Communication au colloque « //Louis Marin : La Critique du discours// » organisé par le CRAL (EHESS, Paris).
# `2016` : 11-12 novembre : « ''L’art comme figure : entre verbal et visuel'' ». Communication au colloque international « //Nouveaux régimes de la figure : littérature et arts visuels// », organisé à l’Université de Bucarest par le Centre d’excellence dans l’étude de l’image.
!!! Conférences
# 1989: Mars: Conférence sur Jasper Johns à l'Université de Tours.
# 1991: Mars: Cycle de conférences à l'ENS (Ulm) sur "La peinture américaine depuis 1945".
# 1991: Mars: Conférence sur l'Expressionnisme abstrait et le Pop Art à l'Université de Paris III-Sorbonne Nouvelle.
# 1991: Mars: Conférence sur la peinture américaine à l'Université Blaise Pascal-Clermont II.
# 1991: 11 mai: Conférence sur Jasper Johns à l'Université Michel de Montaigne-Bordeaux III.
# 1992: 15 avril: Conférence à l'Ecole doctorale en arts et sciences de l'art, programme "interface arts/esthétique" (Directeur: Jean Lancri, Université de Paris I- Panthéon Sorbonne): "Distance et proximité: l'ironie pop et l'énonciation de l'œuvre d'art".
# 1993: 12 juin: Conférence à la "Triennale des Amériques" (Maubeuge): "La répétition et la distance: réflexions sur la réception du Pop Art et le dogme de l'abstraction".
# 1994: 18 mars: Conférence sur "L'ironie, le trompe-l'œil et l'anamorphose" à la journée d'étude interdisciplinaire "L'Œil trompé", organisée par le Centre Gaston Bachelard de l'Université de Dijon.
# 1994: 21 mars: Conférence au séminaire "Méthodologies" du DEA d'Anglais de l'ENS St Cloud/Fontenay (Directeur: Marc Chénetier): "Le Pop Art, ou l'ironie de la peinture".
# 1995: Février: conférence au séminaire "Transculturel" du Groupe de Recherche EIDOS (Tours/Blois), au Centre National des Bibliothèques (Paris): "Les renversements de la perspective: l'ironie, la Renaissance et la découverte de l'Amérique".
# 1998: 7 janvier: Conférence au séminaire du Professeur Michel Haar (UFR de Philosophe de l'Université de Paris I-Panthéon Sorbonne): "Ironie, poésie et langage originaire"
# 1999: 27 mai: Conférence à la Journée d'Etudes "Le texte et l'image" organisée à l'Université Michel de Montaigne-Bordeaux III par l'Ecole Doctorale de Langues: "Oxymore et contrapposto."
# 1999: 11 juin: Conférence à IRIS, séminaire de DEA du Professeur François Laroque de l'Université Paris III-Sorbonne Nouvelle ("Nouveauté et beauté à la Renaissance"): "Le sujet dans l'espace, ou les conditions ironiques des révolutions"
# 1999: 12 juin: Conférence à TIMEE (Texte, Image, Musique à l'Epoque Elisabethaine), ENS Ulm, "Les cinq sens à la Renaissance" (resp. Ann Lecercle): "Miroir convexe et anamorphose: sujet et réflexivité du regard dans la peinture de la Renaissance"
# 2000: 3 novembre: Conférence à l'UFR des Arts de l'Université de Provence: "Peinture et récit: éléments d'une narratologie du pictural"
# 2001: 20 décembre: Conférence au Collège International de Philosophie: "Visage et témoignage: le cas du tableau de peinture," dans le cadre du séminaire animé par Beppe Sebaste, Professeur à l'Université de Bologne, intitulé: "Comment ne pas connaître. I. De la confession au témoignage - II. Du témoignage au visage."
# 2003: 14-15 février: "L'art, le sujet, le réel," quatre conférences sur l'histoire de la peinture occidentale (Asian Institute of Technology, Bangkok, Thaïlande)
# 2003: 16 mai: "L'oxymore, le mouvement, le lieu." Conférence auprès du groupe de recherche PAF (Processus d'accompagnement et de formation), Université de Pau.
# 2003: 2 juin: Conférence à IRIS, séminaire de DEA du Professeur François Laroque de l'Université Paris III-Sorbonne Nouvelle: "Motus et flexus: l'oxymore, le contrapposto et le lieu maniériste de la figure."
# 2004: 12 novembre: "Déplier les plis de l'œuvre", conférence publique à la Librairie Mollat, dans le cadre de la manifestation d'art contemporain "Open doors/Open eyes", 3ème festival Novart de Bordeaux.
# 2005: 31 mars: Conférence au Centre d'Etude de l'Art Contemporain (CEAC) de l'UFR "Arts et cultures" de l'Université Lille 3: "Danto, le readymade, le trompe-l'œil et le collage."
# 2005: 8 avril: Conférence à l'Ecole Doctorale de Lettres et Sciences Humaines de l'Université de Pau: "Rhétorique/Espace/Histoire: trajectoire possible d'une figure."
# 2006: 19 mai: Conférence au département de philosophie et d'esthétique de l'Université de Salerne (Italie): "The End of What? Danto, trompe-l'œil and readymades."
# 2006: 9 novembre: Conférence au département d'arts plastiques de l'Univesité de Toulouse-Le Mirail: "Littéralisme et modernisme: histoire d'une illusion"
# 2008: 3 et 17 février: Conférences de présentation de l'exposition d'art contemporain "Moving Light" au Pôle Culturel de la CDAPP.
# 2008: 12 février: Conférence et débat contradictoire avec Mark Alizart (Palais de Tokyo) sur le thème "Peut-on encore parler de l'art en termes d'objet?" Manifestation organisée par l'Ecole Supérieure d'Art de Cergy-Pontoise et "Point Ephémère" (200 Quai de Valmy, 750010 Paris).
# 2008: 19 février: Conférence et débat avec Philippe Terneyre (Professeur de Droit public à l'Université de Pau) autour du statut du drapeau en France et aux Etats-Unis (Ecole Doctorale "Sciences sociales et Humanités" de l'Université de Pau).
# 2012 : 13 mars: « Contre Danto, la continuité de l’histoire de ”l’art comme figure” ». Conférence à L’Ecole Européenne Supérieure d’Art de Bretagne (EESAB-Rennes).
!!! THèses dirigées
* Thèses soutenues
# Carlo Brooks, “La préemption de l'image dans les romans de Don DeLillo" (Thèse soutenue le 16 janvier 1999)
# Aaron Smith, “'Primal Joy and Primitive Control’: les phénomènes énumératifs dans les romans de Don DeLillo" (Thèse soutenue le 23 novembre 2002)
# Philippe Gouvet, "'The Master's Hand in Nature': l'Amérique contre la nature, 1812-1872" (Thèse soutenue le 14 décembre 2002)
# Mary Daban, "Harmonie, identité, pragmatisme. Chinois chrétien en Amérique du Nord" (Thèse soutenue le 11 octobre 2003)
# Anne-Claire Cauhapé: "Vers une théorie du geste de création: danse et peinture aux Etats-Unis, 1940-1970" (Thèse soutenue le 4 juin 2010)
# Flavie Trey: "Esthétiques de la fugue” (co-dirigée avec Isabelle Thomas-Fogiel, en co-tutelle avec l’Université d’Ottawa) (Thèse soutenue le 28 juin 2014)
* Thèses en cours
# Irantzu Sanzo: "La répétition dans l’art, stratégie réflexive de la pratique artistique” (co-dirigée avec Concepcion Elorza, en co-tutelle avec l’Université du Pays Basque) (Inscrite en 2014).
# Tom Kalis : « Matière à ironie : le recouvrement des bandes dessinées » (Inscrite en 2014).
# Yizhou Jiang : « Art et provocation : l’influence de l’art américain dans l’évolution de l’art chinois contemporain » (Inscrite en 2015).
# Johan Gril: « Ironie, politique et médias aux Etats-Unis: le personnage de l'idiot dans la production télévisuelle et radiophonique, 2001-2016 » (Inscrite en 2017).
# Na Qin: « Esthétiques de la transparence » (Inscrite en 2017).
!!! Articles dans des revues à comité de lecture
# « ''Bataille absurde : de l’angoisse au rire'' », Implications philosophiques, `août 2015`, dossier sur « `L’absurde` ». Article accessible à l’URL : http://www.implications-philosophiques.org/actualite/une/bataille-absurde-de-langoisse-au-rire/
# « ''La petite musique de Milan Kundera et le motif du quatuor'' », Op. cit., n° 18, « `Quatuor, littérature et cinéma` », `printemps 2018`, numéro coordonné par Y. Landerouin. Article accessible à l’URL : https://revues.univ-pau.fr/opcit/291
# « ''Houellebecq lecteur de Guénon. La "fibre guénonienne" de //Soumission//'' », Roman 20-50, n° 66, `décembre 2018`, numéro édité par A. Jurga et S. van Wesemael.
!!! Articles issus de communications
# « ''Les Sirènes d’Un régicide d’Alain Robbe-Grillet ou la séduction du savoir évanescent du rêve fictionnel'' » `in` Vial Hélène (dir.), //Les Sirènes ou le savoir périlleux. D’Homère au XXIe siècle//, Rennes : Presses Universitaires de Rennes, `2014`, Interférences, p. 265-277.
# « ''Le triangle littéraire de la modernité : Gustave Flaubert, arbitre de la querelle ludique de Raymond Queneau à Alain Robbe-Grillet'' », `in` Bonifay Florence, Broussin Marjorie, Caruana Stéphane et Guérimand Mélanie (dir.), //Concurrence(s) dans le monde des arts et des lettres//, Paris : L’Harmattan, `2016`, Logiques sociales, p. 175-188.
# « ''(Re)lectures de //Bouvard et Pécuchet// par Raymond Queneau : l’Odyssée de la Préface Fontaine'' », Revue Flaubert, n° 15, `2016`, « `Bouvard et Pécuchet, roman et savoirs : l’édition électronique intégrale des manuscrits` » Article accessible à l’URL : http://flaubert.univ-rouen.fr/revue/article.php?id=192
# « ''Le mythe à l’épreuve de la littérature : Gueule de pierre, R. Queneau'' », Mélanges francophones, vol. XI, n° 14, « `Poésie, littérature, philosophie : différences et interférences` », numéro coordonné par A. Calin et A. Milon, `décembre 2017`, p. 209-219.
!!! Articles dans revues internationales à comité de lecture
# ROUSSILLON, L. Aspecta Medusa: The Many Faces of Medusa in the painting and the poetry of Dante Gabriel Rossetti, The Journal of Pre-Raphaelite Studies, New Series 11: Spring 2002.
# Roussillon-Constanty, L. « Beyond Proust : The Legacy of Ruskin’s Thought in France », Nineteenth Century Prose, special Issue: John Ruskin, vol.38, Number 2, Fall 2011, 133-156.
# ROUSSILLON-CONSTANTY, L. ''La topographie selon Ruskin: saillance du visible et du lisible dans Modern Painters/ Of Ruskinian Topography: Visible and Legible Salience in Modern Painters'', Revue de Géographie Alpine, Journal of Alpine Research, 104-02/2016, La saillance et le discours sur le relief/Salience and Relief-related Discourse, dir. Samia Ounoughi, https://rga.revues.org/3397, `2016`. DOI : `10.4000/rga.3397`
!!!Articles dans revue nationale à comité de lecture :
# ROUSSILLON, L. "All now is still" : œuvre et citation dans « For "Ruggiero and Angelica" by Ingres» de Dante Gabriel Rossetti. », Colloque Littérature et Historicité, « la citation à l'œuvre », 17-18 janvier 2003, E-rea, numéro 21, printemps 2004.
# ROUSSILLON, L. Dante Gabriel Rossetti : « visible parlare » ou le pouvoir poétique des images, Etudes Anglaises, numéro 57/1, janvier-mars 2004, 53-62.
# ROUSSILLON, L. Texte, trame, signe: les ficelles de l’art selon Dante Gabriel Rossetti. Cahiers Édouardiens et Victoriens 63, 2006, 433-445.
# ROUSSILLON-CONSTANTY, L. 2007. In sight of Mont Blanc: an approach to Ruskin’s perception of the mountain. Colloque Mountains in the English-Speaking World: Between Image and Language. Université Toulouse II, 4-7 octobre 2007. Caliban/ Anglophonia 23, 37-44.
# Roussillon-Constanty, L. Pour une approche interdisciplinaire du patrimoine universitaire. Lettre de l’OCIM n° 29, avril-mai 2010, 13-20.
# Roussillon-Constanty, L. De chair et de papier : le personnage féminin chez Dante Gabriel Rossetti, Revue en ligne l’Atelier, vol.2, n°1, 2010, 52-71.
# Roussillon-Constanty, L. Des Dragons de Ruskin aux dinosaures de Darwin : Art, science et la peur de l’origine. Interfaces, n° 31, Les Images de la Peur, ed. Sophie Chiari, 2010-1011, 13-25.
# ROUSSILLON-CONSTANTY, L. From the House of Life to the Decorative Arts: Dante Gabriel Rossetti and Ceramics. Miranda n°7, Submorphemics / Celebrating Ceramics, ed. Helen Goethals, http://www.miranda-ejournal.fr/sdx2/miranda/index.xsp, décembre 2012.
!!! Ouvrages individuels et direction d’ouvrages collectifs
# Outsiders Looking in. The Rossettis Then and Now, eds. David Clifford, Laurence Roussillon, London: Anthem Press, 2003.
# L’éblouissement de la peinture. Sélection de textes tirés de Modern Painters de John Ruskin, auteurs Fabienne Gaspari, Lawrence Gasquet, Laurence Roussillon-Constanty, Pau : Presses Universitaires de Pau, 2006.
# ROUSSILLON-CONSTANTY, L. Méduse au miroir. Esthétique romantique de Dante Gabriel Rossetti.Grenoble : ELLUG, 2008.
# Science, Fables and Chimeras : Cultural Encounters, eds. Laurence Roussillon-Constanty, Philippe Murrillo, Newcastle : Cambridge Scholars Publishing, 2013.
# Empreinte, Imprégnation, Impression, eds Laurence Roussillon-Constanty, Dominique Vaugeois et Michael Parsons, Pau: Presses Universitaires de Pau, 2014.
# « ''Converging Lines: Needlework in English Literature and Visual Arts'' », eds Laurence Roussillon-Constanty et Rachel Dickinson, E-rea [En ligne], 16.1 | `2018`, mis en ligne le 15 décembre 2018, consulté le 05 février 2019. URL : http://journals.openedition.org/erea/6586
# « ''Comforting Creatures: Changing Visions of Animal Otherness in the Victorian Period'' », eds. Laurence Roussillon-Constanty et Sara Thornton, Cahiers victoriens et édouardiens [En ligne], 88 Automne | `2018`, mis en ligne le 20 janvier 2019, consulté le 04 février 2019. URL : http://journals.openedition.org/cve/3790
!!! Chapitres d’ouvrages
# ROUSSILLON-CONSTANTY, L. The House of Life, tombeau de l’écriture: Dante Gabriel Rossetti à l’épreuve du sonnet Le sonnet au risque du sonnet. Bertrand Degott et Pierre Garigues (dir.). Paris: L’Harmattan, 2006, 93-105.
# ROUSSILLON-CONSTANTY, L. Les métamorphoses de Méduse: une figure antique dans le paysage poétique et pictural anglais. Ecce Femina, groupe EIDOS, dir. Michel Costantini, juillet 2007, Paris: L’Harmattan, 49-58.
# ROUSSILLON-CONSTANTY, L. Article Dante Gabriel Rossetti dans le Guide de la littérature anglaise des origines à nos jours, dir. Jean Pouvelle, Paris : Ellipses, 2008, 207-210.
# ROUSSILLON, L. Surprise, surprise: repetition and creation in Turner and Ruskin. Rewriting/reprising: Plural Intertextualities, ed. G. Letissier, Cambridge Scholars Publishing, 2009, 184-193.
# ROUSSILLON-CONSTANTY, L. In sight of Mont Blanc: an approach to Ruskin’s perception of the mountain. Mountains figured and disfigured in the English-Speaking World, ed. F. Besson, Cambridge Scholars Publishing, 2010, 176-195.
# ROUSSILLON-CONSTANTY, L. Importing Italy : Ruskin, Italian culture and Dante Gabriel Rossetti. Venice and Nineteenth-Century Cultural Travel. An Essay Collection, eds. Keith Hanley and Emma Sdegno, Venice: Libreria Editrice Cafoscarina, 2010, 184-194.
# ROUSSILLON-CONSTANTY, L. Other ways of seeing: towards an interdisciplinary approach to university heritage, Opuscula Museali, zeszyt 18, Nakladem Uniwersytetu Jagiellonskiego, 2010, 43-48.
# Roussillon-Constanty, L. Anéantissement de l'image / épiphanie de la peinture: de John Ruskin à Daniel Arasse. Postérité de John Ruskin, ed. Isabelle Enaud-Lechien et Joëlle Prungnaud, ed. Classiques Garnier, 2011, 97-110.
# ROUSSILLON-CONSTANTY, L. ‘''Immortal and Deadly Icons: Dante Gabriel Rossetti’s Sleeping Beauties''’, //Sleeping Beauties in Victorian Britain, Cultural, Literary and Artistic Explorations of a Myth//, ed. Béatrice Laurent, Bern: Peter Lang, `2015`, 121-147.
# ROUSSILLON-CONSTANTY, L. '''Écrire la peinture: Ruskin face à Turner''. //Ecrire l'Art: Formes et enjeux du discours sur les arts visuels en Grande-Bretagne et aux Etats-Unis//, dir. Anne-Pascale Bruneau-Rumsey, Anne-Florence Gillard-Estrada, Shannon Wells-Lassagne. Paris: Mare et Martin (Coll. Res Anglophonia), `2015`, 45-54.
# ROUSSILLON-CONSTANTY, L. ''Artful Humility: A Pre-Raphaelite Ideal?''. //The ‘Humble’ in 19th- to 21st-century British Literature and Arts//. edited with an introduction by C. Reynier, I. Brasme and J-M Ganteau, Montpellier: Presses Universitaires de la Méditerranée, Horizons anglophones/Present Perfect, `2017`, 23-34.
# ROUSSILLON-CONSTANTY, L. ''"A Dramatis Personae of the Soul": Dante Gabriel Rossetti's Proserpine, Poetry'' `in` //Pre-Raphaelite Painting: Transcending Boundaries//, ed. Sophia Andres and Brian Donnelly, Peter Lang, `2018`, 45-58.
# ROUSSILLON-CONSTANTY, L. ''L'instant sculptural: Parcours spéculaire autour de la peinture et de la poésie de Dante Gabriel Rossetti'', //À force de signes Travailler avec Louis Marin//, Dir.Pierre Antoine Fabre, Alain Cantillon & Bertrand Rougé, `2018`, 59-70.
# ROUSSILLON-CONSTANTY, L. "''Rhétorique des corps dans //Sense and Sensibility// de Jane Austen : de l’esprit de la lettre au corps de la lectrice''", //Le corps du lecteur et ses représentations littéraires//, dir.Fabienne Gaspari, L'Harmattan, collection "Espaces Littéraires", `2018`, 121-147.
@@
[[Portail HAL-E2S-UPPA|https://hal-univ-pau.archives-ouvertes.fr/]] | [[UPPA Recherche|https://recherche.univ-pau.fr/fr/competences-et-expertises/toutes-les-unites-de-recherche.html]] | [[pad|https://semestriel.framapad.org/p/halsaisie]]
@@
---
@@color:red;
!! Listes de chercheurs et de publications
@@
@@.aac
<<list-links "[tag[Labo]]">>
@@
---
@@color:red;
!! Portail ''//HAL e2s UPPA//''
@@
* [[Critères de tamponnage]]
* test bureau aide
---
@@color:red;
!! Guides
@@
<$details summary="Aide à la saisie">
@@.info
<<list-links "[tag[Guide]]">>
@@
</$details>
<$details summary="Types de documents">
@@.note
<<list-links "[tag[type]]">>
@@
</$details>
<$details summary="Champs">
@@.astuce
<<list-links "[tag[Champs]]">>
@@
</$details>
---
@@color:red;
!! Listes, extractions
@@
<<list-links "[tag[liste]]">>
|IdHAL|dardo-scavino|
|Scopus Author ID|26436202000|
|ORCID|0000-0003-3518-6717|
|Google Scholar|https://scholar.google.fr/citations?user=3OQm7egAAAAJ&hl=fr&oi=ao|
!!! Livres
# ''Las fuentes de la juventud. Genealogía de una devoción moderna'', Buenos Aires, Eterna Cadencia, `2015` (335 pages). ISBN: 978-987-712-060-8
# ''El sueño de los mártires. Meditaciones sobre una guerra actual'', Barcelona, Anagrama, `2018` (238 pages). ISBN: 978_84_339-6427-4
!!! Direction d’ouvrages et revues
# ''Incarner les fictions'', Líneas n°8, `2016`.
# ''L'âge des minorités'', Líneas n°11, `2018`
# Dardo Scavino, Marc Zuili (dir.), ''Variations sur le secret dans le monde hispanophone'', Paris, Honoré Champion, `2018`.
!!! Articles : revues scientifiques internationales ou nationales avec comité de lecture
# “''Adonde imperan los signos''”, revista Estudios de Teoría Literaria n°9, `2016`. http://fh.mdp.edu.ar/revistas/index.php/etl/article/view/1459/1580
# “''La Argentina neoliberal: una protesta cantada''”, revista HeLix n° 9, `2016`. https://journals.ub.uni-heidelberg.de/index.php/helix/article/view/42021
# “''Sarmiento y la translatio imperii''”, revista Estudios de Teoría Literaria n° 10, `2016`, pp. 167-177. http://fh.mdp.edu.ar/revistas/index.php/etl/article/view/1711/1792
# “''Cuando contar es hacer: la invención de los pueblos hispanoamericanos''”, revista Líneas n°8, `2016`, http://revues.univ-pau.fr/lineas/1835
# “''Musa beat: en busca de la redención''”, Cuadernos Lirico n° 14, `2016`. https://lirico.revues.org/3237
# “''Colonialidad del poder: una invención jurídica de la conquista''”, revista Intersticios n°10, `2016`, pp. 141-178 https://revistas.unc.edu.ar/index.php/intersticios/article/view/15355
# “''Villa de Luis Gusmán o el destino de un ser vil''”, revista Tropelías n°3 (`2018`), pp. 5-18. https://papiro.unizar.es/ojs/index.php/tropelias/article/view/2628
# “''Ilustración e independencia: el caso de La Aurora de Chile''”, Revista de Occidente n°445, `junio de 2018`. http://www.ortegaygasset.edu/publicaciones/revistadeoccidente/junio-2018
# "''Fluctuaciones de la independencia en la Carta de Viscardo''", Anclajes n°1 `enero-abril 2019` https://cerac.unlpam.edu.ar/index.php/anclajes/article/view/2333
!!! Chapitres d’ouvrages
# “''La metafísica y la metáfora del lazo social''” `in` François Godicheau y Pablo Sánchez León (eds.), //Palabras que atan. Metáforas y conceptos del vínculo social en la historia moderna y contemporánea//, Madrid, Fondo de Cultura Económica, `2015`, pp. 129-147.
# “''Sor Juana Inés de la Cruz o los tropos de la fe''” `in` Daniel Attala et Géneviève Fabry (dir.), //La Biblia en la literatura hispanoamericana//, Madrid, Trotta/Fundación San Millán de la Cogolla, `2016`, pp. 109-127.
# “La lógica y el (des)conocimiento del sujeto” `in` Newton da Costa et. al, //Lógica e Direito//, São Paulo, Noeses, `2016`, pp. 45-70.
# “''Juan Gelman: cerca de la revolución''” `in` María Semilla Durán et Jorge Boccanera (ed.), //Palabra calcinada. Veinte ensayos críticos sobre Juan Gelman//, Buenos Aires, UNSAM Edita, `2016`, pp. 317-331.
# “''La fonction de la misogynie dans la pensée d’Otto Weininger''” `in` Maurice Daumas et Nadia Mékouar-Hertzberg (éds.), //La Misogynie//, Berne, Peter Lang, `2016`, pp. 63-73.
# “''Community and Individual Autonomy: Genealogy of a Challenge''” `in` Gert Melville (ed.), //Potency of the Common. Intercultural Perspectives about Community and Individuality//, Berlin, De Gruyter, `2016`, pp. 127-138. https://books.google.fr/books?id=COMsDQAAQBAJ&printsec=frontcover&dq=bibliogroup:%22Challenges+of+Life:+Essays+on+philosophical+and+cultural+anthropology%22&hl=fr&sa=X&ved=0ahUKEwi6npXUqYXQAhUI7xQKHY1pCpUQ6AEILDAC#v=onepage&q&f=false
# "''El derecho de matar de Barón Biza o las paradojas del inmoralismo''" `in` (Angeles Mateo del Pino ed.) //Cartografías del limbo. Devenires literarios de la Habana a Buenos Aires//, Madrid, Verbum, `2018`, pp. 269-276.
# “''El sujeto en cuestión''” `in` Juan Manuel Aragües, Thierry Capmartin, Nadia Mékouar-Hertzber & Alfredo Saldaña (dir.), //Le sujet en question. Ce qui pensent la littérature et la philosophie//, Berne, Peter Lang, `2018`, pp. 145-155.
# “''Gelman, Saer y la poesía de los últimos tiempos''”, (Noé Jitrik y Jorge Monteleone ed.), //Historia crítica de la literatura argentina 12, Una literatura en aflicción//, Buenos Aires, Planeta, `2018`.
# “''The denatured ape''” `in` Gert Melville (ed.) //Nature and Human//, Berlin, De Gruyter, `2018`. https://books.google.fr/books?hl=fr&lr=&id=AhiBDwAAQBAJ&oi=fnd&pg=PA41&ots=F8VJ6k50iZ&sig=zuK-_NEbWa5RqQwsGIP_QQ7Mc9k#v=onepage&q&f=false
!!! Articles de vulgarisation
# “''Canticum novum''”, Boca de sapo n° 19, Buenos Aires, `2015`, pp. 38-43.
# “''El Caníbal de Klein''”, Boca de sapo n° 21, Buenos Aires, `abril de 2016`. http://www.bocadesapo.com.ar/pdf/scavino.pdf
# “''La rimas del tiempo'', revista Boca de Sapo n° 23, `diciembre 2016`, pp. 21-31.
# "''Indios, drones y fronteras''", Boca de Sapo n°25, `diciembre 2017`, pp. 3-11. http://www.bocadesapo.com.ar/pdf/01-DardoScavino.pdf
# “''Pasiones de Marx''”, Boca de Sapo n°27, `diciembre 2018`, pp. 38-47. http://www.bocadesapo.com.ar/pdf/7-DardoScavino.pdf
@@.note
docid|@@color:yellow;background-color:black;{{!!docid}}@@| tampid|@@color:yellow;background-color:black;{{!!tampid}}@@|[[[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/SIAME]]][[[Membres|https://siame.univ-pau.fr/fr/organisation/liste-des-membres.html]]][[[idHAL|idHAL-SIAME]]]
@@
# [[ABADIE Stéphane|Abadie, Stéphane]]
# [[BATINA Jean|Batina, Jean]]
# [[BESSIERES Delphine|Bessières, Delphine]]
# [[BLANCHER Serge|Blancher, Serge]]
# [[CARRE Hélène|Carré, Hélène]]
# [[CHAMPIER Daniel|Champier, Daniel]]
# [[CHAUCHAT Nicolas|Chauchat, Nicolas]]
# [[EL OMARI Kamal|El Omari, Kamal]]
# [[FERREIRA Marie|Ferreira, Marie]] @@color:red;Secrétaire@@
# [[GALLIPOLI Domenico|Gallipoli, Domenico]]
# [[GUERIN Romy|Guérin, Romy]] @@color:red;Secrétaire@@
# [[KOUSKSOU Tarik|Kousksou, Tarik]]
# [[LA BORDERIE Christian|La Borderie, Christian]]
# [[LARROQUE Benoit|Larroque, Benoît]]
# [[LAWRENCE Claire|Tognazzi-Lawrence, Claire]]
# [[LE GUER Yves|Le Guer, Yves]]
# [[MARON Philippe|Maron, Philippe]]
# [[MAUREL Olivier|Maurel, Olivier]]
# [[MORICHON Denis|Morichon, Denis]]
# [[NOUAILLETAS Olivier|Nouailletas, Olivier]] @@color:red; IGE@@
# [[PAILLOL Jean-Hugues|Paillol, Jean-Hugues]]
# [[PECASTAING Laurent|Pecastaing, Laurent]]
# [[PERLOT-BASCOULES Céline|Perlot-Bascoules, Céline]]
# [[PETRE Anca|Petre, Anca]]
# [[REESS Thierry|Reess, Thierry]]
# [[RIVALETTO Marc|Rivaletto, Marc]]
# [[RUSCASSIE Robert|Ruscassié, Robert]]
# [[SCHALL Eric|Schall, Eric]]
# [[SILVESTRE de FERRON Antoine|Silvestre de Ferron, Antoine]]
# [[SOULEM Nicolas|Soulem, Nicolas]]
# [[SOUS Damien|Sous, Damien]]
# [[ZERAOULI Youssef|Zeraouli, Youssef]]
!!! OS Chapitres dans des ouvrages collectifs (12)
# “''Poetics of Gender in //Jingling in the Wind//''”. //Keenly Aware of the Ceremonies of Place//; Ed HR Stoneback, Matthew Nickel and Jessica M. Nickel, Des Hymnagistes press, West Park, NY, `2017`, ISBN 978-0-9973461-2-1.
# “''Drama and Trauma in //My Heart and my Flesh// by Elizabeth Madox Roberts''″. //Performing South: The US South as Transmedial Message// Ed. Beata Zadwacka, Szczecin, Poland, `2016`.
# ″''Reading Elizabeth Madox Roberts’ Fiction''″. //Kentucky Writers: The Deus Loci and the Lyrical Landscape//, (Eds.) Matthew Nickel & Daniel J. Pizappi, The Hymnagistes Press, West Park, NY `2016`. 80-81. ISBN: 978-0-9973461-0-7.
# ″''A French Connection with Elizabeth Madox Roberts''″. //Kentucky Writers: The Deus Loci and the Lyrical Landscape//, (Eds.) Matthew Nickel & Daniel J. Pizappi, The Hymnagistes Press, West Park, NY `2016`. 106-107. ISBN: 978-0-9973461-0-7.
# «Elizabeth Madox Roberts». Dictionnaire des Femmes créatrices, Ed. Adelaïde Russo. Paris: Editions des Femmes, deuxième trimestre 2013.
# “Between Permeability and Peculiarity: The Poetics of Gender in Jingling in the Wind by Elizabeth Madox Roberts”. Dixie Matters: New Perspectives on Southern Femininities and Masculinities. Ed. Urszula Niewiadomska-Flis. Studies in Literature and Culture vol.10 Lublin: Wydawnictwo KUL (KUL Publishers), 2013. 153-171. ISBN 978-83-7702-795-0.
# "Landscapes of the Mind: Recurrence and Variations in the Poetry of Elizabeth Madox Roberts”. Elizabeth Madox Roberts: Prospect and Retrospect (dir.) H.R. Stoneback, William Boyle, and Matthew Nickel, West Park, NY: Des Hymnagistes Press, 2012. 60-78. ISBN: 978-0-9822693-5-0.
# "Fortitude and Faith in Books by Four Southern Women Novelists: Elizabeth Madox Roberts, Mary Noailles Murfree, Ellen Glasgow, and Edith Summers Kelley”. L’espace du Sud au féminin (dir.) Gérald Préher et Zaugg, Metz, Université Paul Verlaine/Centre Ecritures, Série Amériques, 2011. 175-184. 234p. ISBN : 978-2-917403-19-8. ISSN : 1961-2508.15 €.
# «Comment fuir le chaos ou la représentation de l’ordre chez E.M. Roberts». La représentation de l’ordre, (dir.) Rémy Bethmont, Amiens, Artois Presses Université, mai 2010. 95-108. ISBN: 978-2-84832-086- 1. 22 €
# ″Berkeleyian Impressionism in the Works of Elizabeth Madox Roberts″. Elizabeth Madox Roberts: Essays of Reassessment and Reclamation, (dir.) H.R. Stoneback & Steven Florczyk, Wind Publications, 2008. 169-185. ISBN: 978-1-893239-77-7.
# Guillon, Bernard. & Sigal, Gisele. “The Oil Business Move towards Environmental Concerns in France: from an Industrial Initiative to a Diversified Lobbying Policy (1987-2005)”. Organizational Development and Change, (dir.) Henri Savall, Marc Bonnet, Véronique Zardet et Michel Péron, Lyon, IAE de Lyon, ISEOR & Academy of Management, (2006). 375-384.ISBN : 2-9503-3583-3. 40€.
# «D'une rive à l'autre : l'autre Bayonne dans le New Jersey». Ville et projets, collectif, Bayonne, Editions de la Société européenne de projectique, (1998).119-129.ISBN : 2-9512-0445-1-5. 150 francs
!!! ACL Articles dans des revues avec comité de lecture (7)
# ”''Soul, Fiber and Bone: Elizabeth Madox Roberts’ Writings as an Extension of Herself''”. Résonances, Revue bilingue et pluridisciplinaire, Vol II, N°16, «`La vocation au féminin /Women and Vocation` ». (`2016`) : ISSN 1245-2262.
# «''Territoires de la mémoire: récurrence et variations dans la poésie d’Elizabeth Madox Roberts''». Cercles revue pluridisciplinaire du monde anglophone ; Numéro dirigé par Frédérique Spill, Université d’Amiens, N° 20 ( ?) (`2017`) `à paraître`.
# «Le labyrinthe du moi dans Weeds d’Edith Summers Kelley». Résonances, Revue bilingue et pluridisciplinaire, Vol 13, « Le secret ». (Oct. 2012) : 103-121. ISSN 1245-2262.
# «La face cachée du trésor dans A Buried Treasure d’Elizabeth Madox Roberts». Résonances, Revue bilingue et pluridisciplinaire vol 11, « Penser l’origine ». (Dec. 2010) : 77-94. ISSN : 1245-2262.
# «Entre reconnaissance et création : le cas d’Elizabeth Madox Roberts». Résonances, Revue bilingue et pluridisciplinaire vol 10, « La reconnaissance ». (Oct. 2008) : 161-178. ISSN : 1245-2262.
# «L'utilisation de l’espace dans l’œuvre d’Elizabeth Madox Roberts». Arobase, Journal des lettres et sciences humaines, Vol. 2, n°2, Espaces. (mars 1999). ISSN : 1278-379X. (http://www.liane.net/arobase).
# «Peinture de la société rurale du Kentucky dans The Time of Man d’Elizabeth Madox Roberts». Arobase, Vol 2, n°1, «Mémoire et souvenirs ». (Nov. 1997). ISSN : 1278-379X.
!!! COM Communications dans des conférences nationales et internationales avec comité de lecture (21)
# “''Common Social Stance: Elizabeth Madox Roberts’s //The Time of Man// and Harriette Arnow’s //The Dollmaker//''” 21st Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, `April 2019`.
# ''Robert Penn Warren’s //Night Rider// and Elizabeth Madox Roberts’ //The Time of Man// through the Prism of History''” 20th Annual International Elizabeth Madox Roberts Conference, Les Saintes Maries de la Mer, France, `July 2018`
# “''Mapped out in the South against the Backdrop of Wider Horizons: James Still’s River of Earth''”; Southern Studies Forum, Lille, France, `September 2017`
# ''James Still’s River of Earth or the Appalachian Arcadian World''”, AFEA Congress, French Association for American Studies; America in the Works, Strasbourg, France, `June 2017`.
# “''An Allegory of Universal Legitimacy Chiseled out of Regional Materials: Elizabeth Madox Roberts’s The Time of Man and James Still’s River of Earth''” 19th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, `April 2017`
# “''Historicity in Elizabeth Madox Roberts’ Short Stories: Insights into the Social Terrain and the Sense of Place''. AFEA Congress French Association for American Studies; America in the Works, Toulouse, France, `May 2016`.
# “''Claiming the Other Self: Verbal and Non-verbal Boundaries in Weeds by Edith Summers Kelley''” EFM Conference, Pau University, Space, Boundaries and Interbreeding Federation (French EFM), `April 2016`
# “''Historicity in Elizabeth Madox Roberts’ Short Stories: Insights into the Social Terrain and the Sense of Place''. 18th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, `April 2016`
# ''“In the Meanders of Mind and Matter”: the Case of Elizabeth Madox Roberts''. 17th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, `April 2015`.
# “Soul, Fiber and Bone: Elizabeth Madox Roberts’ Writings as an Extension of Herself”. International Conference on Women and Vocation, Lille Catholic University – France, 5-7 June 2014.
# “Meditation over Alienation: The Rewriting of Southern Myths in Elizabeth Madox Roberts’ “The Sacrifice of the Maidens”″. 16th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2014.
# “Drama and Trauma in My Heart and my Flesh by Elizabeth Madox Roberts″. Southern Studies Forum, Szczecin, Poland, September 2013.
# “Between Permeability and Peculiarity: The Poetics of Gender in Jingling in the Wind by Elizabeth Madox Roberts″. 15th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2013.
# “Drama and Trauma in My Heart and my Flesh by Elizabeth Madox Roberts″. 14th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2012.
# “Landscapes of the Mind: Recurrence and Variations in the Poetry of Elizabeth Madox Roberts″. 13th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2011.
# "Fortitude and Faith in Books by Four Southern Women Novelists: Elizabeth Madox Roberts, Mary Noailles Murfree, Ellen Glasgow, and Edith Summers Kelley”″. 11th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2009.
# ″Between Acknowledgement and Literary Creation: the Case of Elizabeth Madox Roberts″. 10th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2008.
# ″Berkeleyian Impressionism in the Works of Elizabeth Madox Roberts″. 9th Annual International Elizabeth Madox Roberts Conference, Springfield, Kentucky, April 2007.
# «Comment fuir le chaos ou la représentation de l’ordre chez E.M. Roberts». Journée de recherche sur la représentation de l’ordre, Amiens, Université de Picardie, Mars 2006.
# «Les fondements religieux constitutifs de la nation Américaine : risques ou opportunités ?» Colloque francophone sur le risque Oriane (ADERSE, ADETEM, AFC, AIM & IAS), IUT de Bayonne, septembre 2006.
# «D'une rive à l'autre : l'autre Bayonne dans le New Jersey». Quatrièmes journées de Projectique, "Villes et projets" (Société européenne de Projectique), IUT de Bayonne, novembre 1998.
# Guillon, Bernard. & Sigal, Gisele. "Quality and Label Policies Centred on Risk Reduction for Green Concerns: the Case of the Hotel Industry in France". IFSAM International Conference; CNAM Paris, 8-10 juillet 2010. 19 pages.
# Guillon, Bernard. & Sigal, Gisele. "The Oil Business Move towards Environmental Concerns in France: from an Industrial Initiative to a Diversified Lobbying Policy (1987-2005)". International Conference and Doctoral Consortium; Organisation: Academy of Management and ISEOR; IAE de Lyon, 23-24 avril 2006. 10 pages (actes sur CD-Rom). Cette communication fait partie de celles sélectionnées pour l’ouvrage cité ci-dessus.
# Guillon, Bernard. & Sigal, Gisele. "Concerning Strategic Autonomy for Local Bodies' Waste Management: Change Procedures versus National Constraints in the Bordeaux Urban Community". Colloque national de la recherche en IUT ; Organisation : CNRS & Association des directeurs d'IUT. IUT de Tarbes, 15-16 mai 2003. 8 pages (pp. 198-205 des actes).
# Guillon, Bernard. Bareitgs, Cathy; & Sigal, Gisele. ″The Accreditation Procedure as a Policy of Continuing Improvement within Hospitals Structures: From Care Approach to Hospital Waste Strategy via Patients' Management″. Second MAAOE International Conference (Multinational Alliance for the Advancement of Organizational Excellence):“″Towards a Sustainable Excellence?″, Université de Versailles Saint-Quentin en Yvelines (USVQ) 26-28 septembre 2001, 10 pages (p.37-46 des actes).
# Guillon, Bernard. & Sigal, Gisele. ″A Decade of Environmentalist Initiatives in Mass Marketing: a Comparative Study″. Third AFM French-German Conference: “Retailing and Distribution in Europe” Saint-Malo, 29-30 juin 2000, 15 pages.
!!! Participation lors de séminaires (4)
# “''James Still’s River of Earth''”. Séminaire organisé par GSU Georgia State University- Dunwoody Campus, NC2100 - Revival: Lost Southern Voices Festival. Atlanta, GA, USA, `March 2018`
# "Elizabeth Madox Roberts or the Materiality of Writing to Exorcize Chaos". Séminaire du Centre d’Études Interdisciplinaires du Monde Anglophone (CEIMA-HCTI) sur : Matérialité et écriture. Université de Bretagne Occidentale – Brest, septembre 2014.
# «Territoires de la mémoire: récurrence et variations dans la poésie d’Elizabeth Madox Roberts». Journée d’études du groupe Corpus (EA 4295) Université d’Amiens, septembre 2011.
# «L’œuvre romanesque de E.M. Roberts, où comment le catastrophisme engendre le dépassement de soi». Laboratoire Suds d’Amériques Université de Versailles St Quentin, octobre 2005.
!!! AP Cahiers universitaires avec comité de lecture (2)
# « Immanence et transcendance : femme et nature dans Weeds d’Edith Summers Kelley ». Etudes et Recherches, Revue éditée par l’IUT de Bayonne, n°12. (Hiver 1999).
# « Les aspects régionalistes dans l’œuvre d’Elizabeth Madox Roberts ». Etudes et Recherches, n°1. (Printemps 1998).
.solarized.base03 { color: #002b36; }
.solarized.base02 { color: #073642; }
.solarized.base01 { color: #586e75; }
.solarized.base00 { color: #657b83; }
.solarized.base0 { color: #839496; }
.solarized.base1 { color: #93a1a1; }
.solarized.base2 { color: #eee8d5; }
.solarized.base3 { color: #fdf6e3; }
.solarized.solar-yellow { color: #b58900; }
.solarized.solar-orange { color: #cb4b16; }
.solarized.solar-red { color: #dc322f; }
.solarized.solar-magenta { color: #d33682; }
.solarized.solar-violet { color: #6c71c4; }
.solarized.solar-blue { color: #268bd2; }
.solarized.solar-cyan { color: #2aa198; }
.solarized.solar-green { color: #859900; }
.cm-s-solarized {
line-height: 1.45em;
color-profile: sRGB;
rendering-intent: auto;
}
.cm-s-solarized.cm-s-dark {
color: #839496;
background-color: #002b36;
text-shadow: #002b36 0 1px;
}
.cm-s-solarized.cm-s-light {
background-color: #fdf6e3;
color: #657b83;
text-shadow: #eee8d5 0 1px;
}
.cm-s-solarized .CodeMirror-widget {
text-shadow: none;
}
.cm-s-solarized .cm-header { color: #586e75; }
.cm-s-solarized .cm-quote { color: #93a1a1; }
.cm-s-solarized .cm-keyword { color: #cb4b16; }
.cm-s-solarized .cm-atom { color: #d33682; }
.cm-s-solarized .cm-number { color: #d33682; }
.cm-s-solarized .cm-def { color: #2aa198; }
.cm-s-solarized .cm-variable { color: #839496; }
.cm-s-solarized .cm-variable-2 { color: #b58900; }
.cm-s-solarized .cm-variable-3, .cm-s-solarized .cm-type { color: #6c71c4; }
.cm-s-solarized .cm-property { color: #2aa198; }
.cm-s-solarized .cm-operator { color: #6c71c4; }
.cm-s-solarized .cm-comment { color: #586e75; font-style:italic; }
.cm-s-solarized .cm-string { color: #859900; }
.cm-s-solarized .cm-string-2 { color: #b58900; }
.cm-s-solarized .cm-meta { color: #859900; }
.cm-s-solarized .cm-qualifier { color: #b58900; }
.cm-s-solarized .cm-builtin { color: #d33682; }
.cm-s-solarized .cm-bracket { color: #cb4b16; }
.cm-s-solarized .CodeMirror-matchingbracket { color: #859900; }
.cm-s-solarized .CodeMirror-nonmatchingbracket { color: #dc322f; }
.cm-s-solarized .cm-tag { color: #93a1a1; }
.cm-s-solarized .cm-attribute { color: #2aa198; }
.cm-s-solarized .cm-hr {
color: transparent;
border-top: 1px solid #586e75;
display: block;
}
.cm-s-solarized .cm-link { color: #93a1a1; cursor: pointer; }
.cm-s-solarized .cm-special { color: #6c71c4; }
.cm-s-solarized .cm-em {
color: #999;
text-decoration: underline;
text-decoration-style: dotted;
}
.cm-s-solarized .cm-error,
.cm-s-solarized .cm-invalidchar {
color: #586e75;
border-bottom: 1px dotted #dc322f;
}
.cm-s-solarized.cm-s-dark div.CodeMirror-selected { background: #073642; }
.cm-s-solarized.cm-s-dark.CodeMirror ::selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-dark .CodeMirror-line::-moz-selection, .cm-s-dark .CodeMirror-line > span::-moz-selection, .cm-s-dark .CodeMirror-line > span > span::-moz-selection { background: rgba(7, 54, 66, 0.99); }
.cm-s-solarized.cm-s-light div.CodeMirror-selected { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::selection, .cm-s-light .CodeMirror-line > span::selection, .cm-s-light .CodeMirror-line > span > span::selection { background: #eee8d5; }
.cm-s-solarized.cm-s-light .CodeMirror-line::-moz-selection, .cm-s-ligh .CodeMirror-line > span::-moz-selection, .cm-s-ligh .CodeMirror-line > span > span::-moz-selection { background: #eee8d5; }
.cm-s-solarized.CodeMirror {
-moz-box-shadow: inset 7px 0 12px -6px #000;
-webkit-box-shadow: inset 7px 0 12px -6px #000;
box-shadow: inset 7px 0 12px -6px #000;
}
.cm-s-solarized .CodeMirror-gutters {
border-right: 0;
}
.cm-s-solarized.cm-s-dark .CodeMirror-gutters {
background-color: #073642;
}
.cm-s-solarized.cm-s-dark .CodeMirror-linenumber {
color: #586e75;
text-shadow: #021014 0 -1px;
}
.cm-s-solarized.cm-s-light .CodeMirror-gutters {
background-color: #eee8d5;
}
.cm-s-solarized.cm-s-light .CodeMirror-linenumber {
color: #839496;
}
.cm-s-solarized .CodeMirror-linenumber {
padding: 0 5px;
}
.cm-s-solarized .CodeMirror-guttermarker-subtle { color: #586e75; }
.cm-s-solarized.cm-s-dark .CodeMirror-guttermarker { color: #ddd; }
.cm-s-solarized.cm-s-light .CodeMirror-guttermarker { color: #cb4b16; }
.cm-s-solarized .CodeMirror-gutter .CodeMirror-gutter-text {
color: #586e75;
}
.cm-s-solarized .CodeMirror-cursor { border-left: 1px solid #819090; }
.cm-s-solarized.cm-s-light.cm-fat-cursor .CodeMirror-cursor { background: #77ee77; }
.cm-s-solarized.cm-s-light .cm-animate-fat-cursor { background-color: #77ee77; }
.cm-s-solarized.cm-s-dark.cm-fat-cursor .CodeMirror-cursor { background: #586e75; }
.cm-s-solarized.cm-s-dark .cm-animate-fat-cursor { background-color: #586e75; }
.cm-s-solarized.cm-s-dark .CodeMirror-activeline-background {
background: rgba(255, 255, 255, 0.06);
}
.cm-s-solarized.cm-s-light .CodeMirror-activeline-background {
background: rgba(0, 0, 0, 0.06);
}
[[Fichiers XSLT pour transformer en tableau html|https://git.univ-pau.fr/jrabaud001/hal-portail-et-collections/-/tree/master/Stats/XSLT]]
@@color:crimson;
!! Par collections (TAMPID)
@@
!!! Simple (docType_s,submitType_s)
`https://api.archives-ouvertes.fr/search/TAMPID/?q=*:*&rows=0&wt=xml&indent=true&facet=true&facet.pivot=docType_s,submitType_s`
!!! Par Années de publication (publicationDateY_i)
`https://api.archives-ouvertes.fr/search/TAMPID/?q=*:*&rows=0&wt=xml&indent=true&facet=true&facet.pivot=publicationDateY_i,docType_s,submitType_s`
!!! Par Années de dépôt (submittedDateY_i)
`https://api.archives-ouvertes.fr/search/TAMPID/?q=*:*&rows=0&wt=xml&indent=true&facet=true&facet.pivot=submittedDateY_i,docType_s,submitType_s`
---
@@color:crimson;
!! Par Identifants auteur (authIdHal_i)
@@
!!! Simple (docType_s,submitType_s)
`https://api.archives-ouvertes.fr/search/?q=authIdHal_i:XXXXXX&rows=0&wt=xml&indent=true&facet=true&facet.pivot=docType_s,submitType_s`
!!! Par Années de publication (publicationDateY_i)
`https://api.archives-ouvertes.fr/search/?q=authIdHal_i:XXXXXX&rows=0&wt=xml&indent=true&facet=true&facet.pivot=publicationDateY_i,docType_s,submitType_s`
!!! Par Années de dépôt (submittedDateY_i)
`https://api.archives-ouvertes.fr/search/?q=authIdHal_i:XXXXXX&rows=0&wt=xml&indent=true&facet=true&facet.pivot=submittedDateY_i,docType_s,submitType_s`
---
@@color:crimson;
!! Idhal :ART et COMM avec actes sans accès
@@
!!! Pour un idhal_i, résultat en json
`https://api.archives-ouvertes.fr/search/?fq=authIdHal_i:XXXXXX&fq=(docType_s:ART%20OR%20(docType_s:COMM%20AND%20proceedings_s:1))&fq=-(submitType_s:file%20OR%20linkExtId_s:(arxiv%20OR%20pubmedcentral%20OR%20openaccess))&wt=json&fl=publicationDateY_i,docType_s,uri_s,label_s&sort=docType_s%20asc&rows=200`
!!! Pour un idhal_s, résultat en csv
`https://api.archives-ouvertes.fr/search/?fq=authIdHal_:XXX.XXX&fq=(docType_s:ART%20OR%20(docType_s:COMM%20AND%20proceedings_s:1))&fq=-(submitType_s:file%20OR%20linkExtId_s:(arxiv%20OR%20pubmedcentral%20OR%20openaccess))&wt=csv&fl=docType_s,publicationDateY_i,title_s,uri_s,label_s&sort=docType_s%20asc&rows=200`
---
@@color:crimson;
!! Requête CREG tous les idHal du labo (2020)
@@
J'ai refait une requête avec tous les idHal du labo en ajoutant la colonne `halId_s` (identifiant hal du dépôt) pour dédoublonner si besoin (et en fait c'est automatiquement dédoublonné par l'API)
le fichier `CREG_idHal.csv` est dans le dossier partagé, il correspond à cette requête :
`http://api.archives-ouvertes.fr/search/?q=*:*&wt=csv&fq=authIdHal_s:(david-carassus OR emmanuelle-cargnello-charles OR camille-chamard OR sandrine-cueille OR amar-fall OR isabelle-franchisteguy-couloume OR georges-gregorio OR marie-laure-grillat OR bernard-guillon OR jouba-hmaida OR jean-pierre-jambes OR veronique-lartigue OR karim-machat OR pierre-marin OR gisele-mendy-bilek OR meriem-mengi-elayoubi OR olivier-merignac OR jean-pierre-neveu OR david-ospital OR fabienne-pinos OR yoann-queyroi OR gilles-recasens OR antoine-renucci OR camille-ricaud OR fatema-safy-godineau)&rows=2000&fl=submitType_s,publicationDate_s,docType_s,halId_s,title_s,authFullName_s,bookTitle_s,journalTitle_s,journalIssn_s,conferenceTitle_s,proceedings_s,city_s,country_s,journalUrl_s,journalSherpaCondition_s,journalSherpaColor_s,journalSherpaDate_s,journalSherpaPostPrint_s,journalSherpaPostRest_s,journalSherpaPrePrint_s,journalSherpaPreRest_s,label_s,submittedDate_s,contributorFullName_s,owners_i`
[[lien vers le catalogue du Sudoc|http://www.sudoc.abes.fr/]]
''Usage'' : Pour les livres et les chapitres de livres
''Modifications'' dans les notices Zotero :
*''Collection'' : à ajouter si besoin (le connecteur SUDOC ne récupère plus automatiquement la collection)
*''Lieu'' : enlever le pays après la ville
*''Éditeur'' : effacer la date (~~imp. 2012~~)
*''Langue'' : à recoder sur deux caractères (fr, en, de...) [[voir|Codes de langue]]
* ''Enseignants-chercheurs''
*# [[ANDIOC‐TORRES Sophie|Andioc-Torres, Sophie]] (MC) @@color:red;''@''@@
*# [[CAPMARTIN Thierry|Capmartin, Thierry]] (MC)
*# [[DIOP David|Diop, David]] (MC‐HDR)
*# [[ETCHART Joana|Etchart, Joana]] (MCF)
*# [[FERRERO Corinne|Ferrero, Corinne]] (MC)
*# [[FINET Hélène|Finet, Hélène]] (MC)
*# [[GASPARI Fabienne|Gaspari, Fabienne]] (MC‐HDR)
*# [[GUESLE‐COQUELET Catherine|Guesle-Coquelet, Catherine]] (MC)
*# [[GUILLAUME Isabelle|Guillaume, Isabelle]] (MC-HDR) @@color:green;//en délégation//@@
*# [[HARTJE Hans|Hartje, Hans]] (MC)
*# [[KERMELE Nejma|Kermele, Nejma]] (MC)
*# [[LACASSAIN‐LAGOIN Christelle|Lacassain-Lagoin, Christelle]] (MC‐HDR)
*# [[LANDI Morag|Munro-Landi, Morag]] (MC)
*# [[LAPORTE Nadine|Laporte, Nadine]] (MC) @@color:red;''www''@@
*# [[MARIE Florence|Marie, Florence]] (MC)
*# [[MÉKOUAR – HERTZBERG Nadia|Mékouar-Hertzberg, Nadia]] (PR)
*# [[MORICHEAU‐AIRAUD Bérengère|Moricheau-Airaud, Bérengère]] (MC)
*# [[NICOLAS Marielle|Nicolas, Marielle]] (MC) @@color:red;''www''@@
*# [[PEYRAGA Pascale|Peyraga, Pascale]] (PR) @@color:green;//autonome//@@
*# [[PEYTAVY Christian|Peytavy, Christian]] (MC)
*# [[PLAZOLLES GUILLEN Fabienne|Plazolles Guillen, Fabienne]] (MC)
*# [[SCAVINO Dardo|Scavino, Dardo]] (PR)
*# [[SIGAL Gisele|Sigal, Gisèle]] (MC)
*# [[SIMPSON Tracey|Simpson, Tracey]] (MCF) @@color:red;''@''@@
* ''Enseignants''
*# [[AINS Emilie|Ains, Emilie]] @@color:red;''@''@@
*# [[DUCAT Philippe|Ducat, Philippe]]
*# [[MARTOS Elise|Martos, Elise]] @@color:red;''@''@@
*# [[ROUSSEAU Guillaume|Rousseau, Guillaume]]
*# [[VIANA MARTIN Eden|Viana Martin, Eden]]
* ''Émérites''
*# [[BERRIOT François|Berriot, François]] @@color:red;''@''@@
*# [[BOIX Christian|Boix, Christian]]
*# [[GUICHARNAUD‐TOLLIS Michèle|Guicharnaud-Tollis, Michèle]]
*# [[LAHOUATI Gérard|Lahouati, Gérard]] @@color:red;''@''@@
*# [[PARSONS Michael|Parsons, Michael]]
\define TableWizardDisplayTableDummyMacro()
<<DisplayTable """$(ConfigTiddler)$""">>
\end
\define TableWizardColumnSelectCheckbox()
<$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Columns/$(ThisDisplayColumn)$' field='show' checked='$(ThisDisplayColumn)$' unchecked=''>
<$view tiddler="""$(ThisDisplayColumn)$""" field=caption>
$(ThisDisplayColumn)$
</$view>
</$checkbox>
\end
\define TableWizardSubcolumnSelectCheckbox()
<$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Subcolumns/$(ThisDisplaySubcolumn)$' field='show' checked='$(ThisDisplaySubcolumn)$' unchecked=''>
<$view tiddler="""$(ThisDisplaySubcolumn)$""" field=caption>
$(ThisDisplaySubcolumn)$
</$view>
</$checkbox>
\end
\define TableWizardRowSelectCheckbox()
<$checkbox tiddler='$:/state/$(ConfigTiddler)$/Display Rows/$(ThisDisplayRow)$' field='show' checked='$(ThisDisplayRow)$' unchecked=''>
<$view tiddler="""$(ThisDisplayRow)$""" field=caption>
$(ThisDisplayRow)$
</$view>
</$checkbox>
\end
\define TableWizardMakeColumnSelectCheckbox()
<$list filter='[tag{$(ConfigTiddler)$!!column_tag}]' variable=ThisDisplayColumn>
<<TableWizardColumnSelectCheckbox>>
</$list>
\end
\define TableWizardMakeSubcolumnSelectCheckbox()
<$list filter='[tag{$(ConfigTiddler)$!!subcolumn_tag}]' variable=ThisDisplaySubcolumn>
<<TableWizardSubcolumnSelectCheckbox>>
</$list>
\end
\define TableWizardMakeRowSelectCheckbox()
<$list filter='[tag{$(ConfigTiddler)$!!row_tag}]' variable=ThisDisplayRow>
<<TableWizardRowSelectCheckbox>>
</$list>
\end
\define TableWizardButtonSubcolumn()
<$reveal type='nomatch' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" text='edit'>
<div style='height:100%;width:100%;'>
<$button class='tc-btn-invisible' style='height:100%;width:100%;'>
<$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data>
<<MissingMessage>>
</$view>
<$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" $value=edit/>
</$button>
</div>
</$reveal>
<$reveal type='match' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" text='edit'>
<$button>
{{$:/core/images/done-button}}
<$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$""" $value=''/>
</$button>
<$edit-text tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data size=1/>
</$reveal>
\end
\define TableWizardSubcolumnDisplayEntry()
<td>
<$reveal type='nomatch' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'>
<$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisSubcolumn)$/$(ThisItem)$""" field=subcolumn_data>
<<MissingMessage>>
</$view>
</$reveal>
<$reveal type='match' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'>
<<TableWizardButtonSubcolumn>>
</$reveal>
</td>
\end
\define TableWizardButtonColumn()
<$reveal type='nomatch' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$!!$(ThisColumn)$""" text='edit'>
<div style='height:100%;width:100%;'>
<$button class='tc-btn-invisible' style='height:100%;width:100%;'>
<$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field='column_data'>
<<MissingMessage>>
</$view>
<$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$""" $field=$(ThisColumn)$ $value=edit/>
</$button>
</div>
</$reveal>
<$reveal type='match' state="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$!!$(ThisColumn)$""" text='edit'>
<$button>
{{$:/core/images/done-button}}
<$action-setfield $tiddler="""$:/state/$(ConfigTiddler)$/$(ThisRow)$/$(ThisColumn)$""" $field=$(ThisColumn)$ $value=''/>
</$button>
<$edit-text tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field=column_data size=1/>
</$reveal>
\end
\define TableWizardColumnDisplayEntry()
<td>
<$reveal type='nomatch' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'>
<$view tiddler="""$:/Data/$(ThisRow)$/$(ThisColumn)$/$(ThisItem)$""" field='column_data'>
<<MissingMessage>>
</$view>
</$reveal>
<$reveal type='match' state="""$(ConfigTiddler)$!!allow_edit""" text='yes'>
<<TableWizardButtonColumn>>
</$reveal>
</td>
\end
\define TableWizardDisplayTableWithSubcolumns(DataTag ColumnTag SubcolumnTag RowTag SubcolumnPerColumn EmptyMessage)
@@text-align:center;
<$set name='ColumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Columns]has[show]get[show]tag[$ColumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'>
<$set name='SubcolumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Subcolumns]has[show]get[show]tag[$SubcolumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'>
<$set name='RowList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Rows]has[show]get[show]tag[$RowTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'>
<$set name=MissingMessage value='$EmptyMessage$'>
<$set name=ThisItem value={{$(ConfigTiddler)$!!selected_data}}>
<table style='width:100%;border-color:black;'>
<tr>
<td style='background-color:lightgrey;border-color:black;'>
</td>
<$list filter=<<ColumnList>>>
<td colspan="$SubcolumnPerColumn$" style='background-color:lightgrey;border-color:black;'>
<$link to=<<currentTiddler>>>
<$view field='caption'>
<<currentTiddler>>
</$view>
</$link>
</td>
</$list>
</tr>
<tr style='width:100%;bordor-color:black;'>
<td style='border-left-color:black;'>
</td>
<$list filter=<<ColumnList>>>
<$list filter=<<SubcolumnList>> variable=ThisSubcolumn>
<td>
<$link to=<<ThisSubcolumn>>>
<$view tiddler=<<ThisSubcolumn>> field=caption>
<<ThisSubcolumn>>
</$view>
</$link>
</td>
</$list>
</$list>
</tr>
<$list filter=<<RowList>> variable=ThisRow>
<tr>
<td style='border-left:0px;'>
<$link to=<<ThisRow>>>
<$view tiddler=<<ThisRow>> field=caption>
<<ThisRow>>
</$view>
</$link>
</td>
<$list filter=<<ColumnList>> variable=ThisColumn>
<$list filter=<<SubcolumnList>> variable=ThisSubcolumn>
<<TableWizardSubcolumnDisplayEntry>>
</$list>
</$list>
</tr>
</$list>
</table>
</$set>
</$set>
</$set>
</$set>
</$set>
@@
\end
\define TableWizardDisplayTableMacro(DataTag ColumnTag RowTag EmptyMessage)
@@text-align:center;
<$set name='ColumnList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Columns]has[show]get[show]tag[$ColumnTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'>
<$set name='RowList' filter='[prefix[$:/state/$(ConfigTiddler)$/Display Rows]has[show]get[show]tag[$RowTag$]sort[title]]-[[text]]-[[title]]-[[modified]]-[[created]]'>
<$set name=ThisItem value={{$(ConfigTiddler)$!!selected_data}}>
<$set name=MissingMessage value='$EmptyMessage$'>
<table style='width:100%;border-color:black;'>
<tr>
<td style='background-color:lightgrey;border-color:black;'>
</td>
<$list filter=<<ColumnList>>>
<td style='background-color:lightgrey;border-color:black;'>
<$link to=<<currentTiddler>>>
<$view field='caption'>
<<currentTiddler>>
</$view>
</$link>
</td>
</$list>
</tr>
<$list filter=<<RowList>> variable=ThisRow>
<tr>
<td style='border-left:0px;'>
<$link to=<<ThisRow>>>
<$view tiddler=<<ThisRow>> field=caption>
<<ThisRow>>
</$view>
</$link>
</td>
<$list filter=<<ColumnList>> variable=ThisColumn>
<<TableWizardColumnDisplayEntry>>
</$list>
</tr>
</$list>
</table>
</$set>
</$set>
</$set>
</$set>
@@
\end
\define MakeTableWizard()
Enter the name of the configuration tiddler to create:
<$edit-text tiddler='$:/temp/MakeTableWizard' field='config_tiddler_name' class='tc-edit-texteditor' placeholder='Configuration Tiddler Name'/>
<$reveal type='match' state='$:/temp/MakeTableWizard!!config_tiddler_name' text=''>
You have to enter a configuration tiddler name first.
</$reveal>
<$reveal type='nomatch' state='$:/temp/MakeTableWizard!!config_tiddler_name' text=''>
<$set name=ConfigTiddler value={{$:/temp/MakeTableWizard!!config_tiddler_name}}>
<$checkbox tiddler=<<ConfigTiddler>> field='include_subcolumns' checked='yes' unchecked='no'>Include Subcolumns</$checkbox><br>
<$tiddler tiddler=<<ConfigTiddler>>>
Data tag:
<$edit-text field='dataset_tag' class='tc-edit-texteditor'/>
Select Dataset Name <$reveal type='nomatch' state='!!show_new_dataset' text='true'>(<$button>Create New Datasets<$action-setfield show_new_dataset=true/></$button>):<br><br></$reveal>
<$reveal type='match' state='!!show_new_dataset' text='true'>(<$button>Done Creating Datasets<$action-setfield show_new_dataset=false/></$button>):<br><br>
<$edit-text tiddler='$:/temp/MakeTableWizard' field='new_dataset_name' class='tc-edit-texteditor' placeholder='New Dataset Name'/>
<$button>Create Dataset<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_dataset_name}} tags={{!!dataset_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_dataset_name=''/></$button><br><br>
</$reveal>
<$select field='selected_data'><$list filter='[tag{!!dataset_tag}]'><option><<currentTiddler>></option></$list></$select>
<br>
<$set name=SelectedData value={{!!selected_data}}>
Column tag:
<$edit-text field='column_tag' class='tc-edit-texteditor'/><br><br>
Select Columns to display <$reveal type='nomatch' state='!!show_new_column' text='true'>(<$button>Create New Columns<$action-setfield show_new_column=true/></$button>):<br><br></$reveal>
<$reveal type='match' state='!!show_new_column' text='true'>(<$button>Done Creating Columns<$action-setfield show_new_column=false/></$button>):<br><br>
<$edit-text tiddler='$:/temp/MakeTableWizard' field='new_column_name' class='tc-edit-texteditor' placeholder='New Column Name'/>
<$button>Create Column<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_column_name}} tags={{!!column_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_column_name=''/></$button><br><br>
</$reveal>
<<TableWizardMakeColumnSelectCheckbox>><br><br>
<$reveal type='match' state='!!include_subcolumns' text='yes'>
Subcolumn tag:
<$edit-text field='subcolumn_tag' class='tc-edit-texteditor'/>
Subcolumns per column:
<$edit-text field='subcolumn_per_column' class='tc-edit-texteditor'/>
Select subcolumns to display <$reveal type='nomatch' state='!!show_new_subcolumn' text='true'>(<$button>Create New Subcolmun<$action-setfield show_new_subcolumn=true/></$button>):<br><br></$reveal>
<$reveal type='match' state='!!show_new_subcolumn' text='true'>(<$button>Done Creating Subcolumns<$action-setfield show_new_subcolumn=false/></$button>):<br><br>
<$edit-text tiddler='$:/temp/MakeTableWizard' field='new_subcolumn_name' class='tc-edit-texteditor' placeholder='New Subcolumn Name'/>
<$button>Create Subcolumn<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_subcolumn_name}} tags={{!!subcolumn_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_subcolumn_name=''/></$button><br><br>
</$reveal>
<<TableWizardMakeSubcolumnSelectCheckbox>><br>
</$reveal>
Row tag:
<$edit-text field='row_tag' class='tc-edit-texteditor'/><br><br>
Select rows to display <$reveal type='nomatch' state='!!show_new_row' text='true'>(<$button>Create New Rows<$action-setfield show_new_row=true/></$button>):<br><br></$reveal>
<$reveal type='match' state='!!show_new_row' text='true'>(<$button>Done Creating Rows<$action-setfield show_new_row=false/></$button>):<br><br>
<$edit-text tiddler='$:/temp/MakeTableWizard' field='new_row_name' class='tc-edit-texteditor' placeholder='New Row Name'/>
<$button>Create Row<$action-setfield $tiddler={{$:/temp/MakeTableWizard!!new_row_name}} tags={{!!row_tag}}/><$action-setfield $tiddler='$:/temp/MakeTableWizard' new_row_name=''/></$button><br><br>
</$reveal>
<<TableWizardMakeRowSelectCheckbox>><br><br>
Empty cell message:
<$edit-text field='empty_message' class='tc-edit-texteditor'/>
<$checkbox field='allow_edit' checked='yes' unchecked='no'>Allow Inline Editing</$checkbox><br>
<$reveal type='match' state='!!show_table' text='yes'>
</$reveal>
</$set>
</$tiddler>
<$button>Refresh Table
<$action-setfield dummy=1/>
</$button>
<<TableWizardDisplayTableDummyMacro>>
</$set>
</$reveal>
\end
\define TableWizardDisplayTableInside()
<$reveal type='nomatch' state="""$(ConfigTiddler)$!!include_subcolumns""" text='yes'>
<$macrocall $name=TableWizardDisplayTableMacro DataTag={{$(ConfigTiddler)$!!dataset_tag}} ColumnTag={{$(ConfigTiddler)$!!column_tag}} RowTag={{$(ConfigTiddler)$!!row_tag}} EmptyMessage={{$(ConfigTiddler)$!!empty_message}}/>
</$reveal>
<$reveal type='match' state="""$(ConfigTiddler)$!!include_subcolumns""" text='yes'>
<$macrocall $name=TableWizardDisplayTableWithSubcolumns DataTag={{$(ConfigTiddler)$!!dataset_tag}} ColumnTag={{$(ConfigTiddler)$!!column_tag}} RowTag={{$(ConfigTiddler)$!!row_tag}} EmptyMessage={{$(ConfigTiddler)$!!empty_message}} SubcolumnTag={{$(ConfigTiddler)$!!subcolumn_tag}} SubcolumnPerColumn={{$(ConfigTiddler)$!!subcolumn_per_column}}/>
</$reveal>
\end
\define DisplayTable(ConfigTiddler)
<$set name=ConfigTiddler value="""$ConfigTiddler$""">
<<TableWizardDisplayTableInside>>
</$set>
\end
\define TableMacrosColumnInnerInnerRows()
<tr>
<th>
</th>
<$list filter='$(ColumnList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]'>
<th>
<<currentTiddler>>
</th>
</$list>
</tr>
<$list filter=<<FieldsList>> variable=ThisField>
<tr>
<th>
<$button class='tc-btn-invisible' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=<<ThisField>>><<ThisField>></$button>
</th>
<$list filter='$(ColumnList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]' variable=ThisTiddler>
<td>
<<TableMacrosInlineEditButton>>
</td>
</$list>
</tr>
</$list>
\end
\define TableMacrosInnerColumnTable()
<$set name=FieldsList1 filter='$(ColumnList)$+[fields[]]-[[text]]-[[title]]-[[modified]]-[[created]]-[[tags]]'>
<$set name=FieldsList filter='[is[system]!is[system]]$(FieldsUsed)$' emptyValue=<<FieldsList1>>>
<$set name=RowOrColumn value=Column>
<$set name=TableSortState value=<<TableMacrosMakeTableSortState>>>
<table>
<<TableMacrosColumnInnerInnerRows>>
</table>
</$set>
</$set>
</$set>
</$set>
\end
\define TableMacrosMakeTableSortState()
{{$:/state/tables/Sort/$(RowOrColumn)$/$(FieldsList)$}}
\end
\define TableMacrosMakeTableSortStateTiddler()
$:/state/tables/Sort/$(RowOrColumn)$/$(FieldsList)$
\end
\define TableMacrosRowTableInnerInnerRows()
<$list filter='$(RowList)$+[sort{$(TableMacrosMakeTableSortStateTiddler)$}]' variable=ThisTiddler>
<tr>
<th>
<<ThisTiddler>>
</th>
<$list filter=<<FieldsList>> variable=ThisField>
<td>
<<TableMacrosInlineEditButton>>
</td>
</$list>
</tr>
</$list>
\end
\define TableMacrosInnerRowTable()
<$set name=FieldsList1 filter='$(RowList)$+[fields[]]-[[text]]-[[title]]-[[modified]]-[[created]]-[[tags]]'>
<$set name=FieldsList filter='[is[system]!is[system]]$(FieldsUsed)$' emptyValue=<<FieldsList1>>>
<$set name=RowOrColumn value=Row>
<$set name=TableSortState value=<<TableMacrosMakeTableSortState>>>
<table>
<tr>
<th>
<$button class='tc-btn-invisible' style='width:100%;height:100%' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=title>Title</$button>
</th>
<$list filter=<<FieldsList>>>
<th>
<$button class='tc-btn-invisible' set=<<TableMacrosMakeTableSortStateTiddler>> setTo=<<currentTiddler>>><<currentTiddler>></$button>
</th>
</$list>
</tr>
<<TableMacrosRowTableInnerInnerRows>>
</table>
</$set>
</$set>
</$set>
</$set>
\end
\define ColumnTable(filter fields)
<$set name='ColumnList' value='$filter$'>
<$set name='FieldsUsed' value='$fields$'>
<<TableMacrosInnerColumnTable>>
</$set>
</$set>
\end
\define RowTable(filter fields)
<$set name='RowList' value='$filter$'>
<$set name='FieldsUsed' value='$fields$'>
<<TableMacrosInnerRowTable>>
</$set>
</$set>
\end
\define TableMacrosInlineEditButton()
<$reveal type='nomatch' state="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" text='edit'>
<$button set="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" setTo=edit class='tc-btn-invisible' style='width:100%;hegiht:100%'>
<$view tiddler=<<ThisTiddler>> field=<<ThisField>>>--</$view>
</$button>
</$reveal>
<$reveal type='match' state="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" text='edit'>
<$button set="""$:/temp/edit/$(ThisTiddler)$/$(ThisField)$""" setTo=noedit>{{$:/core/images/done-button}}</$button>
<$edit-text tiddler=<<ThisTiddler>> field=<<ThisField>> size=1/>
</$reveal>
\end
!!''API : export `csv` des Collections''
de `2015-01-01` à aujourd'hui
;table des champs demandés
|!Nom|!description|
|authStructId_i|Auteur : Identifiant de la structure|
|authOrganism_s|Auteur : Organisme payeur|
|collCode_s|Collection HAL : Code|
|structCode_s|Structure : Code|
|structName_s|Structure : Nom|
|labStructCode_s|Structure/laboratoire : Code|
|labStructName_s|Structure/laboratoire : Nom|
|rteamStructCode_s|Structure/équipe de recherche : Code|
|rteamStructName_s|Structure/équipe de recherche : Nom|
|authFullName_s|Auteur : Nom complet|
|authIdHal_s|Auteur : IdHal (chaîne de caractères)|
|halId_s|Identifiant HAL du dépôt|
|doiId_s|Identifiant DOI|
|title_s|Titres|
|publisherLink_s|hal_publisherLink_s|
|submitType_s|Type de dépôt|
|fileType_s|Type de fichier|
|licence_s|Droit d'auteur associé au document|
|label_s|Référence bibliographique du document|
|producedDate_s|Date de publication|
|language_s|Langue du document (code ISO 639-1 (alpha-2))|
|docType_s|Type de document|
|otherType_s|Autre type de publication [code]|
|scientificEditor_s|Éditeur scientifique|
|bookTitle_s|Titre de l'ouvrage|
|serie_s|Titre du volume (Série)|
|volume_s|Volume|
|publisher_s|Éditeur [commercial]|
|isbn_s|ISBN|
|journalTitle_s|Revue : Titre|
|issue_s|Numéro de revue|
|page_s|Page|
|journalIssn_s|Revue : ISSN|
|journalValid_s|Revue : État dans le référentiel|
|journalSherpaColor_s|Revue : Couleur dans SHERPA/RoMEO|
|publicationLocation_s|Lieu de publication|
|city_s|Ville|
|country_s|Pays (Code ISO 3166)|
|comment_s|Commentaire|
|conferenceTitle_s|Colloque : Titre|
|conferenceStartDate_s|Colloque : Date de début|
|conferenceEndDate_s|Colloque : Date de fin|
|conferenceOrganizer_s|Colloque : Organisateur|
|reportType_s|Type de rapport [code]|
|source_s|Source|
|keyword_s|Mots-clés|
|description_s|Description|
|localReference_s|Référence interne|
|invitedCommunication_s|Conférence invitée (0/1)|
|proceedings_s|Actes de colloque [0/1]|
|audience_s|Audience [code]|
|peerReviewing_s|Comité de lecture - code (1 ou 0)|
|popularLevel_s|Vulgarisation [code 0/1]|
|classification_s|Classification|
|mesh_s|Classification MeSH (codes)|
|hec_ranking_s|Classement HEC|
|jel_s|Classification JEL (codes)|
|europeanProjectAcronym_s|Projet européen : Acronyme|
|anrProjectAcronym_s|Projet ANR : Acronyme|
|collaboration_s|Collaborations|
|funding_s|Financement|
|submittedDate_s|Date de dépôt|
|contributorFullName_s|Nom complet du contributeur/déposant|
|owners_i|Propriétaires du dépôt|
;tampid :
:<$list filter=[tag[Labo]]>
{{!!tampid}}|
</$list>
;requêtes API (par collection)
:<$list filter=[tag[Labo]]>
---
''{{!!tampid}}'' - http://api.archives-ouvertes.fr/search/{{!!tampid}}/?q=*:*&wt=csv&fq=producedDateY_i:[2015 TO 2019]&rows=5000&fl=authStructId_i,authOrganism_s,collCode_s,structCode_s,structName_s,labStructCode_s,labStructName_s,rteamStructCode_s,rteamStructName_s,authFullName_s,authIdHal_s,halId_s,doiId_s,title_s,publisherLink_s,submitType_s,fileType_s,licence_s,label_s,producedDate_s,language_s,docType_s,otherType_s,scientificEditor_s,bookTitle_s,serie_s,volume_s,publisher_s,isbn_s,journalTitle_s,issue_s,page_s,journalIssn_s,journalValid_s,journalSherpaColor_s,publicationLocation_s,city_s,country_s,comment_s,conferenceTitle_s,conferenceStartDate_s,conferenceEndDate_s,conferenceOrganizer_s,reportType_s,source_s,keyword_s,description_s,localReference_s,invitedCommunication_s,proceedings_s,audience_s,peerReviewing_s,popularLevel_s,classification_s,mesh_s,hec_ranking_s,jel_s,europeanProjectAcronym_s,anrProjectAcronym_s,collaboration_s,funding_s,submittedDate_s,contributorFullName_s,owners_i<br/>
</$list>
---
@@color:red;
!! ''Chercheurs Alter avec la valeur '0' dans le champs 'ind' et leur idref'' (tri par équipe, lignes md)
;[résultat à copier-coller]
@@
<$details summary="Formule">
```
|!équipe|!nom|!idref|
<$list filter='[tag[Alter]tag[publiant] field:ind[0]] +[sort[équipe]]'>
|{{!!équipe}}|<$link><$view field="title"/></$link>|https://www.idref.fr/{{!!idref}}|<br/>
</$list>
```
</$details>
|!équipe|!nom|!idref|
<$list filter='[tag[Alter]tag[publiant] field:ind[0]] +[sort[équipe]]'>
|{{!!équipe}}|<$link><$view field="title"/></$link>|https://www.idref.fr/{{!!idref}}|<br/>
</$list>
---
@@color:red;
!! ''Afficher les Notes'' (tri par labo, table html)
@@
<$details summary="Formule">
```html
<table>
<tr>
<th>Labo</th>
<th>Nom</th>
<th>Note</th>
</tr>
<$list filter='[tag[publiant]has:field[note]] +[sort[labo]]'>
<tr>
<td>{{!!labo}}</td>
<td><$link><$view field="title"/></$link></td>
<td>{{!!note}}</td>
</tr>
</$list>
</table>
```
</$details>
<table>
<tr>
<th>Labo</th>
<th>Nom</th>
<th>Note</th>
</tr>
<$list filter='[tag[publiant]has:field[note]] +[sort[labo]]'>
<tr>
<td>{{!!labo}}</td>
<td><$link><$view field="title"/></$link></td>
<td>{{!!note}}</td>
</tr>
</$list>
</table>
---
@@color:red;
!! ''idHal des chercheurs CREG''
@@
<$details summary="Formule">
```
<$list filter="[tag[publiant]tag[CREG]]">
<$view field="idhal_i"/>#<$link><$view field="title"/></$link>#<$view field="idhal_s"/>
</$list>
```
</$details>
<$list filter="[tag[publiant]tag[CREG]]">
<$view field="idhal_i"/>#<$link><$view field="title"/></$link>#<$view field="idhal_s"/>
</$list>
Nom,Prénon,note
Rabaud,Julien,ok
.cm-s-the-matrix.CodeMirror { background: #000000; color: #00FF00; }
.cm-s-the-matrix div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-the-matrix .CodeMirror-line::selection, .cm-s-the-matrix .CodeMirror-line > span::selection, .cm-s-the-matrix .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-line::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span::-moz-selection, .cm-s-the-matrix .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-the-matrix .CodeMirror-gutters { background: #060; border-right: 2px solid #00FF00; }
.cm-s-the-matrix .CodeMirror-guttermarker { color: #0f0; }
.cm-s-the-matrix .CodeMirror-guttermarker-subtle { color: white; }
.cm-s-the-matrix .CodeMirror-linenumber { color: #FFFFFF; }
.cm-s-the-matrix .CodeMirror-cursor { border-left: 1px solid #00FF00; }
.cm-s-the-matrix span.cm-keyword { color: #008803; font-weight: bold; }
.cm-s-the-matrix span.cm-atom { color: #3FF; }
.cm-s-the-matrix span.cm-number { color: #FFB94F; }
.cm-s-the-matrix span.cm-def { color: #99C; }
.cm-s-the-matrix span.cm-variable { color: #F6C; }
.cm-s-the-matrix span.cm-variable-2 { color: #C6F; }
.cm-s-the-matrix span.cm-variable-3, .cm-s-the-matrix span.cm-type { color: #96F; }
.cm-s-the-matrix span.cm-property { color: #62FFA0; }
.cm-s-the-matrix span.cm-operator { color: #999; }
.cm-s-the-matrix span.cm-comment { color: #CCCCCC; }
.cm-s-the-matrix span.cm-string { color: #39C; }
.cm-s-the-matrix span.cm-meta { color: #C9F; }
.cm-s-the-matrix span.cm-qualifier { color: #FFF700; }
.cm-s-the-matrix span.cm-builtin { color: #30a; }
.cm-s-the-matrix span.cm-bracket { color: #cc7; }
.cm-s-the-matrix span.cm-tag { color: #FFBD40; }
.cm-s-the-matrix span.cm-attribute { color: #FFF700; }
.cm-s-the-matrix span.cm-error { color: #FF0000; }
.cm-s-the-matrix .CodeMirror-activeline-background { background: #040; }
!!Francis Tollis
!!!!Professeur émérite de sciences du langage
!!!Ouvrages scientifiques ou chapitres d’ouvrage (OS)
# 2014 : ''La Neurosémantique épistémique de Maurice Toussaint'', Limoges, Lambert-Lucas, 190 p.
#*Quatrième de couverture
#*Quoique issue de la psychomécanique de Gustave Guillaume, la neurosémantique épistémique de Maurice Toussaint a ouvert une voie nouvelle dans l’approche du langage. Débarrassant la psychomécanique de tout idéalisme et radicalisant son opérativité, cette conception ne fait pas seulement le pari du matérialisme, du constructivisme et du continuisme. Avec tout ce qui en découle pour son analyse, elle attribue au langage une assise corticocérébrale, postule son isomorphisme avec le cognitif et celui du signifiant avec le signifié, propose un modèle périodique et quantitatif d’engendrement des unités de la langue.
#*Table des matières en ligne : <www.lambert-lucas.com/IMG/pdf/tollis2_tdm.pdf>.
# 2011 : avec René Pellen, ''La « Gramática castellana » d’Antonio de Nebrija : grammaire d’une langue, langue d’une grammaire'', Limoges, Lambert-Lucas, 2 t., I : Un système descriptif pour le castillan, p. 7-350, II : Index lemmatisés, p. 361-875.
#*Quatrième de couverture
#*Imprimée à Salamanque en 1492, la Grammaire castillane de Nebrija passe généralement pour la véritable première grammaire d’une langue néolatine. Comme elle a exercé, en Espagne et à l’étranger, une influence considérable, sa connaissance est absolument essentielle. La présente traduction s’adresse en priorité aux historiens de la grammaire exclusivement francophones qui n’y avaient pas directement accès. L’Étude historique et critique et l’Index des notes qui l’accompagnent aident à la resituer au regard de la gram-maire antique et médiévale. Témoignage de la maturité d’une langue vernaculaire dotée déjà d’une riche littérature, pour son auteur elle représente, avec ses dictionnaires, l’aboutissement de toute une vie.
#*Table des matières en ligne : <http://www.lambert-lucas.com/wp-content/uploads/2018/03/tdm_pellen2.pdf>.
#*Comptes rendus
#** Emilio Ridruejo, Revue de linguistique romane, 20154, 315-316, p. 512-546
#**Alejandro Díaz Villalba, Histoire, Épistémologie, Langage, 2011, 33/2, p.177-179.
#**Lola Pons Rodríguez, Historia linguistica, 2011, 33
# 2008 : ''Signe, mot et locution entre langue et discours (de Gustave Guillaume à ses successeurs)'', Limoges, Lambert-Lucas, 284 p.
#*Résumé
#**Les textes qui en constituent les chapitres ne sont pas présentés dans l’ordre chronologique de leur rédaction mais ont été regroupés autour de trois centres d’intérêt qui donnent leur titre aux trois parties. « Autour du mot et de sa genèse », les textes 2 (« La genèse du vocable indo-européen : de la matière et de la forme »), 3 (« La genèse du vocable indo-européen dans le sillage de Guillaume ») et 4 (« Retour sur la genèse des parties de discours prédicatives indo-européennes ») situent Guillaume au regard de la problématique du mot et en soulignent l’intérêt au sein de la théorie, tandis que le texte 1 (« Retour sur l’« unité de puissance » en psychomécanique : le mot comme lieu d’équilibre entre passé et avenir opératifs »), lui, remet sur la sellette le statut qu’il y reçoit.
#**Dans la section « Morphème, grammème, lexie », le texte 5 (« La relation apport / support et le morphème ») essaie de comprendre pourquoi le mécanisme incidenciel sur lequel Guillaume assoit sa typologie des parties de langue n’est pas pareillement sollicité dans la caractérisation des différentes espèces de morphèmes qu’il distingue. Le texte 6 (« Le grammème comme signe : une biunivocité idéale souvent prise en défaut (langage et analogie) ») revient sur les rapports entre la surface signifiante et la virtualité signifiée à laquelle elle a la charge de donner corps et représentabilité. Les textes 7 (« La locution verbo-nominale ») et 8 (« C’est et les “constructions expressives” ») traitent de différents agrégats locutionnels, tels qu’on les voit analysés dans ses écrits.
#**Enfin, les textes 9 (« Le pragmatisme et l’hypo-pragmatisme du langage ») et 10 (« L’écriture réévaluée ») mettent l’accent sur deux aspects de « La praticité du langage et de l’écriture » : bien que Guillaume ait placé la langue au centre de sa réflexion, le premier montre qu’il a tenu à la situer dans la perspective de ses utilisations ; le second présente les raisons pour lesquelles il accordait à l’écriture des vertus et une importance qu’on ne lui reconnaît pas toujours.
#*Quatrième de couverture
#**Le présent ouvrage regroupe dix études successivement placées sous les rubriques (1) du mot et de sa genèse, (2) du morphème, du grammème et de la lexie et (3) des aspects pratiques du langage. L’auteur revient sur ce que les écrits publiés de Gustave Guillaume révèlent de ses idées, sans négliger ce que ses successeurs en ont diversement repris et développé. Partant de la notion d’opérativité chère à la psychomécanique, Francis Tollis replace les phénomènes linguistiques en regard des deux pôles d’existence du langage : le discours, dans l’aval de son exercice effectif, et la langue, dans un amont puissantiel postulé.
#*Table des matières en ligne : <`www.lambert-lucas.com/wp-content/uploads/2018/03/signe_mot_et_locution_tdm.pdf`>.
# 1998 : ''La Description du castillan au XVe siècle : Villena et Nebrija. Sept études d’historiographie linguistique'', Paris, L’Harmattan (« Sémantiques »), 414 p.
#*Quatrième de couverture
#**En 1492, Antonio de Nebrija publie sa Gramática de la lengua castellana qui, malgré l’Arte de trovar (1433) d’Enrique de Villena, est tenue pour la première étude systématique d’un parler roman ; à cause de cet héritage même, l’ouvrage de Nebrija semble présenter des contradictions et des incohérences. L’examen interne de sa métalangue – ici poursuivi en sept articles datés de 1968 à 1997 – se révèle pourtant un texte cohérent dans sa méthode et sa terminologie.
# 1996 : ''Du un au multiple (du signifiant à son emploi) : le cas de un- adjoint en espagnol'', Talence, Presses Universitaires de Bordeaux, XIX-519 p.
#*Compte rendu d’A. Joly, L’Information grammaticale, 1999, 81, p. 57 :
# 1991 : ''La Parole et le sens. le guillaumisme et l’approche contemporaine du langage'', Préface de R. Lafont, Paris, A. Colin (« Linguistique »), x-XII-495 p.
#*[Panorama critique et synthèse de la recherche en psychomécanique. De nombreuses références à la syntaxe, difficilement repérables en l’absence d’index : praxéogenèse, genèse de l’énoncé, syntaxe sémantique, discours transphrastique, etc. Utiles excursions à l’extérieur de la psychomécanique]
#*Comptes rendus :
#**de F. Ferreres-Masplá, Anuari de dilología (Barcelone), 1992, 15, secció G3, p. 95-97.
#**de M. Wilmet, Travaux de linguistique, 1993, 26, p. 163.
#**de M. Camprubi, Cahiers de grammaire (Toulouse), 1994, 19, p. 167-175.
#**de S. Boteva – Contrastive Linguistics (Sofia), 1994, 19/1, p. 81-86 [en bulgare].
#**de F. Madray-Lesigne – Cahiers de praxématique, 1994, 22, p. 186-187, disponible en ligne : <http://praxematique.revues.org/2286>.
#**de W. Rotgé, L’Information grammaticale, 1996, 69, p. 56-57.
#**de J. Schmidely, Bulletin de la Société de linguistique de Paris, 1996/2, p. 67-70.
# 1988 : ''Étude différentielle de que, quien-, cual-, et cuant- interrogatifs en espagnol. etude psychomécanique, comparaison sémantique, syntaxique et pragmatique [1982]'', Berne - Frankfurt/M. - New York - Paris, Peter Lang (« Publications universitaires européennes, XXI : Linguistique » 69), X-290 p.
!!!Direction d’ouvrages et de numéros de revues (DO)
# 2013 : éd. des Cuadernos de filología francesa [Cáceres], 24 (Hommage à Maurice Toussaint), 393p.
# 2001 : éd. de La Locution et la périphrase du lexique à la grammaire. Actes des Journées d’étude sur la locution organisées à l’université de Pau les 16 et 17 octobre 1998 par le Groupe d’Approches du Langage de Pau, Paris, L’Harmattan (« Sémantiques »), 293 p.
# 1996 : éd. de The Psychomechanics of language and guillaumism = LynX [A Monographic Series in Linguistics and World Perception, Publishied jointly by Department of Spanish and Portuguese, University of Minnesota, USA, Minneapolis, and Departament de Teoría dels Llenguatges, Universitat de València, Spain], 5, 252 p.
!!! Traduction
# `2018` : avec René Pellen, ''La Grammaire castillane de Nebrija (1492). Un pas décisif dans la grammatisation de l’espagnol''. Traduction annotée, précédée d’une étude historique et critique, Limoges, Lambert-Lucas, 534 p.
#*Quatrième de couverture
#**Imprimée à Salamanque en 1492, la Grammaire castillane de Nebrija passe généralement pour la véritable première grammaire d’une langue néolatine. Comme elle a exercé, en Espagne et à l’étranger, une influence considérable, sa connaissance est absolument essentielle. La présente traduction s’adresse en priorité aux historiens de la grammaire exclusivement francophones qui n’y avaient pas directement accès.
#**L’Étude historique et critique et l’Index des notes qui l’accompagnent aident à la resituer au regard de la grammaire antique et médiévale. Témoignage de la maturité d’une langue vernaculaire dotée déjà d’une riche littérature, pour son auteur elle représente, avec ses dictionnaires, l’aboutissement de toute une vie.
#*Table des matières en ligne : <www.lambert-lucas.com/wp-content/uploads/2018/03/tdm_pellen2.pdf>
!!! Publications dans les actes de congrès national ou international avec comité de lecture (ACT)
# `à paraître 2019` : « ''L’approche du signifiant chez Maurice Toussaint ou : En quoi la neurosémantique épistémique est-elle une linguistique du signifiant ?'' », `dans` José Vicente Lozano Actes de la Journée d’étude sur « La linguistique du signifiant. Approches et domaines d’application », Rouen, 6 juin 2014.
#*Résumé
#**Un inventaire récent portant sur l’histoire du phonosymbolisme depuis 1900 mentionnait cinquante-huit ouvrages et quarante auteurs. Même si les Français y sont apparemment minoritaires et si leur proportion y apparaît en constante diminution avec le temps, ceux qui connaissent le livre intitulé Contre l’arbitraire du signe, paru à Paris chez Didier-Érudition en 1983, pourront s’étonner de ne pas y voir figurer le nom de son auteur, Maurice Toussaint.
#**Cet oubli involontaire est ce qui nous a finalement incité à intervenir ici. Non pas pour exposer les grands traits de la théorie linguistique originale qu’il n’a cessé de peaufiner jusqu’à sa disparition, voici quatre ans, et qu’il a finalement désignée comme neurosémantique épistémique. Mais pour seulement montrer, même très synthétiquement – c’est bien connu, les absents ayant toujours tort, se doivent d’être discrets – de quelle manière, contre le credo structuraliste de l’arbitrarité du signe, il aborde la dimension phonique du langage et le rôle qu’il lui accorde.
# `à paraître 2019`: « ''Quand un grammairien n’applique pas ses propres prescriptions graphophoniques : le cas d’Antonio de Nebrija dans sa Gramática castellana (1492)'' », Études de linguistique appliquée, 3, p. 333-343.
#*Résumé
#**Vu son ambition, la Gramática castellana de Nebrija passe pour le premier véritable traité occidental sur un parler roman. Le premier livre examine l’ensemble de la dotation graphique léguée au castillan, afin d’en évaluer la congruence au regard du système phonologique qu’elle avait à représenter. Pour pallier le manque de biunivocité ici ou là observable entre graphèmes(s) et prononciation(s), Nebrija y préconise quelques innovations.
#**Pourtant, ces prescriptions ne sont pas systématiquement appliquées dans le texte même du traité. À une époque où la responsabilité d’une publication revenait à la fois à son rédacteur et à un atelier d’imprimerie pénétré de la pratique traditionnelle et où le premier ne contrôlait pas forcément les épreuves, ce cas particulier, peut-être pas singulier, montre les limites du pouvoir prescriptif dans le champ graphophonique.
# `2017` : « ''Évolutions sémantico-syntaxique et sémiotique de un‑ et de ill‑ du latin à l’espagnol sous l’effet de leur (sur)grammaticalisation'' », `dans` Stéphane Pagès (éd.), //Submorphologie et diachronie dans les langues romanes [Actes de la Journée d’étude organisée à Aix-en-Provence le 9 mai 2016]//, Presses universitaires de Provence (« Langues et langage » 29), p. 83-96.
#*Résumé
#**Sur le plan sémantico-syntaxique, au cours des siècles le futur iLL- de l’espagnol a vu son applicabilité sémantique et sa combinabilité se modifier très substantiellement : réorientant les capacités de son homologue latin il en a perdu certaines, mais en a acquis pas mal de nouvelles ; sur le plan sémiotique, son radical aussi a parallèlement connu un certain nombre d’altérations. Sensiblement au cours de la même période, le futur uN-, de nos jours l’un de ses concurrents discursifs les plus fréquents, a de son côté élargi les capacités de son homologue latin, mais sans renoncer à aucune des anciennes ; apparemment, son radical n’en a pas moins conservé un signifiant à très peu près intact.
#**Une fois éventuellement reconnue en chacun d’eux quelque trace signifiante submorphémique, la question se pose ainsi de (sa)voir comment mettre éventuellement en relation les trajectoires sémantico-syntaxique et sémiotique respectives de ces deux morphèmes, et de se pencher sur la manière dont s’est (r)établie la relation entre ces deux plans au cours d’une évolution qui a complètement redéfini les pouvoirs du premier et enrichi ceux du second.
# `2016` : « ''Variations de l’écriture et diversité typologique : L’approche du vocable chez Gustave Guillaume à la lumière de sa théorie des intégrales constitutives du langage'' », `dans` Julie Lefebvre, Christian Puech (éds), //Écritures et représentations du langage [Actes du colloque SHESL-HTL 2013, 25-26 janvier 2013, Paris]//, (« Les dossiers d’HEL 9 - 2015 ») exclusivement disponible en ligne : <hal.archives-ouvertes.fr/hal-01304817/document>, p. 84-100.
#*Résumé
#**Voici quinze ans, en 1997, l’occasion nous avait été donnée de présenter les réflexions de Gustave Guillaume sur l’écriture. Car, loin de la cantonner comme bon nombre de ses contemporains, dans un rôle subalterne, soulignant ses liens privilégiés avec la pensée et son rôle dans l’évocation de l’architecture linguistique des idiomes, indo-européens ou pas, il a au contraire dégagé et souligné la profondeur de son enracinement ainsi que la portée de son témoignage.
#**Depuis cette époque, cependant, bien d’autres de ses écrits sont parus, tardifs ou précoces : de ses Leçons de linguistique, les volumes 14 (1997 : conférences des années 1946-1948), 15 (1997 : 1951-1952), 16 (1999 : 1942-1943), 17 (2005 : 1941-1942), 18 (2008 : 1945-1446), 19 (2009 : 1939-1940) et 20 (2010) ; de ses Essais et mémoires, les Prolégomènes à la linguistique structurale I (c.1954 : 2003) et II (2004 : 1954-1958) et l’Essai de mécanique intuitionnelle I (2007). Il nous a donc paru intéressant de revenir sur le sujet.
#**Parmi ce qu’apportent ces sept volumes (et leurs 1 925 p. + 2), le n° 17, intitulé Théorie du mot et typologie linguistique : limitation et construction, du mot à travers les langues, est indéniablement celui qui aborde le plus en profondeur la problématique de l’écriture. En effet, Guillaume y établit un parallèle entre sa physionomie et les différentes intégrales qu’il croit personnellement possible de repérer derrière les différents types de parlers. C’est cette approche théorisante qui sera exposée ici.
# 2013 : « ''La prégnance de l’humain dans la linguistique de Gustave Guillaume'' », `dans` Hervé Barreau (éd.), //Les Conditions de l’humain : temps, langue, éthique et mal. Autour de la pensée d’André Jacob [Actes du colloque « Éthique et condition humaine : Autour de l’œuvre d’André Jacob » organisé à l’École normale supérieure de la rue d’Ulm les 2-3 décembre 2011]//, Paris, Armand Colin (« Recherches »), p. 111-130.
# 2011 : « ''Amical et respectueux hommage à Maurice Toussaint : Une lecture de sa théorie linguistique'' », Anuario de estudios filológicos [Cáceres], 34, p. 253-279, disponible en ligne : <www.google.com/url?sa=t&rct=j&q=&esrc=s&source=web&cd=1&ved=0CB0QFjAA&url=http%3A%2F%2Fdialnet.unirioja.es%2Fdescarga%2Farticulo%2F3850061.pdf&ei=uJrHVJOYDoHRygO_4>.
# 2011 : « ''Le concept d’actualisation guillaumien est-il de nature continuiste ?'' », `dans` Marc Arabyan et alii (éds), //Le Concept d’actualisation en psychomécanique, du XIIe colloque international de psychomécanique du langage Bruxelles 18-21 juin 2009//, Limoges, Lambert-Lucas, p. 47-58.
#*Résumé
#**Proposant une conception génétique, donc opérative ou cinétique, du langage, Guillaume en a pensé et décrit la réalité en même temps que l’exercice comme un ensemble de processus d’engendrement ou de mise en œuvre.
#**Depuis les remarques de Launay de 1977, on sait cependant qu’il n’est apparemment pas toujours resté fidèle à ce credo, et que, sans forcément le vouloir, il a parfois traité l’opératif comme du résultatif ou incité à le faire. Par ailleurs, avec sa linéarité et son « point versif » médian, le tenseur binaire radical régulièrement utilisé pour rendre lisibles ces genèses orientées y introduit des ruptures que l’on pourrait croire porteuses de discontinuité.
#**Ses successeurs n’ont pas forcément évité l’écueil, et, de nos jours, leurs écrits laissent percer, au mieux des traces de cette indécision, au pire quelques crispations essentialistes.
#**En interrogeant sa notion d’actualisation telle qu’on la voit progressivement émerger dans les écrits fondateurs de la psychomécanique jusqu’au recours tardif à la notion d’effection, on cherche ici à voir dans quelle mesure elle satisfait à la continuité qui est parfois revendiquée par Guillaume et ses exégètes, et donc sa compatibilité actuelle avec ce continuisme auquel, dans la dernière décennie du siècle précédent et à partir de soubassements théoriques pourtant distincts, certains linguistes français semblent avoir abouti.
#**Finalement, la question est de (sa)voir si cette actualisation, avec ses allures de processus second jouant sur des acquis mentaux virtuels mais préalables, n’entretient pas une propension naturelle au fixisme, encore observable dans le sillage de Guillaume.
# 2011 : « ''“Grammaticalisation”, instrumentalisation sémantico-syntaxique et conception du signifié (l’exemple de quatre adjectifs concurrents apparents du un- espagnol devant substantif pluriel)'' », `dans` Ariane Desporte, Gilbert Fabre (éds), //Aspects actuels de la linguistique ibéro-romane. Actes du XIe colloque international de linguistique ibéro-romane, Paris 13 - Villetaneuse, 5-7 octobre 2006//, Limoges, Lambert-Lucas (« Libéro»), p. 299-306.
#*Résumé
#**Tout spécialement dans les parlers romans, un- est un adjectif qui sert aussi de numéral, fournit l’un des plus fréquents déterminants du nom, et joue éventuellement comme pronom. Cette polyvalence remarquable, déjà amorcée ou en filigrane dans certains états du latin, justifie sans doute qu’on le range dans la grammaire, notamment aux côtés de ses composés éventuels, où il continue parfois d’être ouvert à la pluralisation.
#**Pour autant, certains linguistes l’ont depuis longtemps remarqué, il n’est pas assuré que l’on soit fondé à lui apposer quelque étiquette grammaticale spécifique que ce soit. Car, même détourné de sa vocation (faiblement) prédicative et récupéré, au prix de quelques réaménagements syntaxiques, pour d’autres besoins que franchement et strictement qualificatifs, il n’a jamais définitivement quitté le lexique ni le statut d’adjectif. Au reste, il est aisé d’observer que, en mission de déterminant nominal pluralisé, il peut alterner avec d’autres adjectifs, dont un certain nombre présente une vocation quantificatrice ou identificatrice.
#**Même si des différences s’observent à ce sujet d’un parler roman à l’autre, et spécialement de l’espagnol au français, même si cette disponibilité demeure défective à l’intérieur de chacun d’entre eux, la question se pose malgré tout de l’éventuelle grammaticalisation ou de l’éventuelle grammaticalisabilité de ces adjectifs-là. Le problème sera abordé sans prétention en essayant de placer le phénomène dans la perspective de l’antéposition de l’adjectif, de sa pluralisation et de l’éventuelle réorientation de son contenu sémantique propre.
# 2010 : « ''Michel Launay et ses exigences d’opérativité théorique : du silence à la parole'' », `dans` Gabrielle Le Tallec-Lloret (éd.), //Vues et contrevues. Actes du XIIe colloque international de Linguistique ibéro-romane, Université de Haute Bretagne - Rennes 2, 24-26 septembre 2008//, Limoges, Lambert-Lucas (« Collection Libero »), p. 313-320.
# 2007 : « ''Gustave Guillaume : du “psychologisme” au mentalisme ?'' », `dans` Jacques Bres et alii (éds), //Psychomécanique du langage et linguistiques cognitives. Actes du XIe congrès de l’Association internationale de psychomécanique du langage, Montpellier, 8-10 juin 2006//, Limoges, Lambert-Lucas, p. 89-98.
#*Résumé
#**Le rapprochement de la psychomécanique et des recherches cognitives a déjà été ébauché à Cordoue en 1994, puis à Québec en 2000. Ici, sa confrontation avec les linguistiques cognitives sera l’occasion de revenir sur le « spectre du “psychologisme” » « inlassablement brandi contre Guillaume » (Wilmet 1978).
#**Dans cette perspective, les utilisations référentielles que Guillaume semble avoir faites des termes en psych-, tout spécialement psychisme, seront présentées, comparées et pondérées. Ce travail s’inscrit donc modestement dans le droit fil de celui que Valette a déjà conduit sur les textes guillaumiens, il est vrai avec d’autres moyens et d’autres outils.
#*Abstract : Gustave Guillaume : from "psychologism" to mentalism ?
#**Comparing the psychomecanics of language and cognitive research was the topic dealt with in 1994 in Cordoue and then in 2000 in Quebec. The present paper intends to confront this theoretical model against those proposed by cognitive linguistics and therefore to ponder once more on that « specter of psychologism » that Guillaume has always been reproached with (cf. Wilmet 1978)
#**In this perspective, the referential uses of psy-words that seem to have been made by Guillaume, above all psychism, will be presented, compared and qualified. This paper follows, though in a modest way, the research already carried out on Guillaume’s writings by Valette, even if it was with different means and tools.
# 2006 : « ''Le signifié entre fixisme et relativisme'' », `dans` Gilles Luquet (éd.), //Le Signifié de langue en espagnol. Méthodes d’approche [Actes du colloque sur ce thème organisé à Paris les 18-19 mars 2005 par le Groupe d’études et de recherches en linguistique hispanique de Paris 3]//, Paris, Presses Sorbonne nouvelle, p. 161-179.
# 2006 : « ''Les “constructions expressives” en C’est dans les écrits publiés de Gustave Guillaume (1883-1960)'' », `dans` Hélène et André Wlodarczyk (éds), //La Focalisation dans les langues [Issu du Colloque international sur « La focalisation : centres d’intérêt et expression », organisé à Paris les 26-29 novembre 2003 par l’Ecole doctorale Concepts et Langages et le Centre de linguistique théorique et appliquée (Paris IV)]//, Paris, L’Harmattan (« Sémantiques »), p. 95-109,.
# 2005 : « ''La locution verbo-nominale dans les écrits de Gustave Guillaume publiés entre 1919 et 1960'' », `dans` Hava Batzeev-Shyldkrot, Nicole Le Querler (éds), //Les Périphrases verbales [Issu du colloque international organisé à Caen par l’Équipe CRISCO, l’UMR CNRS, l’Université de Caen Basse-Normandie, le Département de français, et l’Université de Tel-Aviv sur ce thème (25-26 juin 2003)]//, Amsterdam, J. Benjamins (« Linguisticae investigationes, Supplementa » 25), p. 497-515.
#*Résumé
#**Dans ses différents écrits, publiés ou non, Guillaume a successivement étudié
#**– le problème de l’article en français, et notamment celui de son absence dans des agrégats locutionnels,
#**– le traitement subduit du verbe qui est au départ des périphrases participiales intégrées dans la morphologie (notamment celle des formes (sur)composées à verbe auxilaire),
#**– ainsi que la production et/ou la lexicalisation de nombreuses locutions verbo-nominales, liée(s) au dernier phénomène.
#**Il n’est sans doute pas sans intérêt de présenter l’essentiel des diverses réflexions qu’il a livrées sur la problématique locutionnelle tout au long de ses quelque cinquante ans de recherche, à partir des présupposés théoriques originaux qui ont été les siens, à une époque où elle n’avait pas encore bénéficié de l’attention qui lui a été ultérieurement portée – tout spécialement depuis l’année 1984, date où, à Montréal, elle a été abordée sous l’angle de la fancophonie au cours d’un premier grand colloque spécialisé.
#**Car cette présentation devrait aider à
#**– mettre les conceptions guillaumiennes dans la perspective des études postérieures en la matière,
#**– les inscrire dans l’histoire des approches descriptives et théoriques du phénomène.
# 2003 : « ''À propos des paires de substantifs espagnols sans applicabilité sexuée, mais génériquement contrastés en -o / -a : Leur traitement dans le dictionnaire de M. Moliner (1re édition)'' », `dans` Christian Lagarde (éd.), //La Linguistique hispanique dans tous ses états. Actes du au Xe Colloque de linguistique hispanique (Perpignan, 14-16 mars 2002)//, Perpignan, Presses universitaires (CRILAUP), p. 27-139.
#*Résumé
#**Le présent travail ne concerne pas la totalité des substantifs espagnols que ce titre pourrait englober. Il se penche exclusivement sur ceux d’entre eux qui présentent une autre propriété négative : n’avoir pas de signifiant morphologiquement apparenté au participe. Cela exclut donc les paires en -ad- ou -id- qui contiennent au moins un terme issu d’une « substantivation de participe adjectif » (type abonado, pintada, batido ou batida), ou dans lesquelles une forme M découle de l’emploi du participe, de plus en plus fréquemment observé, notamment « dans le domaine des services », pour constitution d’un évident « substantif, non pas lexicalisé comme barrido ou lavado mais apparemment extensible à tous les verbes dont on ne souhaite conserver que l’idée de l’opération en dehors de toute référence à un quelconque agent » (André Resano, « Revelado de fotos ou la nouvelle conquête du participe espagnol », dans Michel Camprubi (éd.), Permanences et renouvellements en linguistique hispanique. Actes du VIe colloque de linguistique hispanique (Toulouse, 18-19 mars 1994), Toulouse, CRIC, 1995, p. 247).
# 2003 : « ''Les morphèmes et leur signifié : système et mise en œuvre'' », `dans` Aboubakar Ouattara (éd.), //Parcours énonciatifs et parcours interprétatif . Théories et applications. Actes du colloque de Tromsø organisé par le département de français de l’Université, 26-28 octobre 2000//, Gan-Paris, Ophrys (« L’Homme dans la langue »), p. 202-220.
#*Résumé
#**I : Attendus
#***A. L’idée dominante de la linguistique est que, dans les parlers i.-e., les éléments les plus radicaux du discours sont les morphèmes dont le vocable est fait, lorsqu’il n’est pas monomorphémique, c’est-à-dire invariable. Par ailleurs, s’il arrive à un énoncé de se réduire à un mot unique, la parole se présente ordinairement sous l’espèce d’un agencement de plusieurs de ces mots, et plus souvent encore sous celle d’une combinaison de sous-phrases elles-mêmes faites de plusieurs syntagmes composés de mots.
#***Le sens mis en circulation par toute utilisation du langage est celui qui, dans l’optique de l’échange verbal, se confond pratiquement avec son interprétation. Assimilable à un contenu global, il réussit parfois, cependant, à s’émanciper des contenus individuellement attachés aux morphèmes sollicités. Pour autant, il est rarement envisageable de le tenir pour entièrement indépendant d’eux, et de faire comme s’il ne leur devait absolument rien ou presque.
#***B. Chacun des morphèmes de base semble bien posséder deux propriétés, d’apparence antagoniques.
#***D’une part, il accepte de prêter son concours à la réalisation de missions langagières qui, aussi bien, demeurent tout à fait extérieures à sa sphère propre comme elles divergent entre elles. D’autre part, à l’inverse, il réussit à dépasser les multiples et divergentes contaminations auxquelles il est de la sorte exposé et à sauver l’essentiel de ce qui lui donne son identité.
#***La première vertu, souvent la plus commentée, est à l’origine de la disponibilité des morphèmes : c’est elle qui, via leur combinabilité propre, leur confère l’intégrabilité énoncive qui les rend si largement utilisables. Bien que la seconde soit pratiquement requise comme l’indispensable complément de la première, il en est moins souvent question. C’est pourtant elle qui, en leur permettant de récupérer la (quasi-)intégralité de leur âme sémantique, les fait régulièrement survivre aux successives occasions discursives qui les ont fait sortir de la langue.
#***L’une et l’autre choses font problème. Il faut donc se demander par quels mécanismes, combinatoires puis applicatifs, chacune des unités de départ réussit à apporter sa contribution séparée à l’intelligibilité sémio-sémantique d’un énoncé, puis à son interprétabilité sémio-pragmatique, et pour quels résultats. Mais il reste encore à savoir comment s’exerce le pouvoir de conservation qui en fait des êtres à mémoire de forme et à mémoire de sens, capables de résister aux influences de leurs fréquentations énoncives et énonciatives.
#***C. À cela s’ajoute en outre une troisième propriété, longtemps observée dans la nature, qui permet à ces unités de la langue de s’adapter aux besoins changeants des communautés humaines qui ne s’en servent que pour les plier à leurs propres exigences expressives. Car, tout à la fois ouvertes à de nombreuses causes sémantiques, et bien campées dans leur identité, elles n’en sont pas moins prêtes à se réformer, si besoin. C’est là leur manière d’équilibrer, sans les neutraliser, leur assujettissement et leur instinct de survie : des menaces que leurs emplois font courir à leur intégrité, elles font le moteur d’évolutions qui, continûment, améliorent leur adaptation.
#***D. Le double constat de cette ouverture / clôture dialectiques et de cet aménagement résultant, reconduit évidemment à la position qui revient à la langue adopte à l’endroit du discours, qui, l’une et l’autre, se présupposent mutuellement. Dans la mesure où les éléments radicaux ont leur siège postulé en langue et où l’énoncé n’a d’existence qu’au-delà, il n’est pas étonnant que ces trois propriétés se retrouvent mutatis mutandis dans les morphèmes comme dans la langue. Car celle-ci se montre également dotée d’une grande disponibilité, d’un pouvoir de conservation et d’une propension permanente à reconfigurer certains de ses secteurs. Condition de sa pérennisation, cette autorégulation résulte d’une sorte de retraitement des discours circonstanciels qu’elle a permis et auxquels elle a offert ses moyens ponctuels antérieurs. L’objectif est de récupérer ce qui, de leur contenu, par nature conjoncturel, peut, à un moment donné, paraître utile à conserver sous forme cristallisée dans l’un de ses éléments radicaux pour ultérieurement et nouvellement valoir ce que de droit.
#***Finalement, d’un côté comme de l’autre, les morphèmes comme la langue dans son ensemble doivent constamment, de quelque manière, se recycler en sorte de rester optimalement opérationnels. Au total, s’ils peuvent se prévaloir d’une certaine indépendance, ce n’est qu’au prix d’un certain asservissement compensatoire : à leur propos, on pourrait finalement parler d’« autonomie dans la dépendance ». Comme l’a depuis longtemps souligné la praxématique, leur mode d’existence et leur statut propres n’empêchent pas leur soumission relative au « fond de réel » sur lequel ils se déploient.
#**II : Programme
#***A. De nombreuses études sur la locutionnalité ont mis en lumière l’existence d’un tel phénomène, essentiellement lié à la visée fondamentalement et toujours peu ou prou pragmatique du langage et de son exercice. Il n’est cependant pas fréquent de parler de recyclage linguistique, même à une époque où, suite aux excès d’un interventionnisme ou d’une exploitation très poussé(e), la nature tend à en imposer pour son compte la nécessité. Pourtant, l’examen analytique de la trajectoire que l’on peut dessiner entre les deux états de repos de chacun des éléments radicaux, celui d’avant sa convocation énonciative et celui d’après, incite à y détecter tout un ensemble d’opérations qui relèvent du retraitement abstractif.
#***B. C’est cette problématique qui sera envisagée ici.
#***D’un côté, on tentera d’aborder la manière – plutôt plurielle – dont on peut se figurer l’inclusion de l’apport des parties radicales dans le tout énoncivo-énonciatif qui conduit à leur actualisation.
#***D’un autre côté, on proposera quelques éléments de réflexion sur la façon d’évoquer les divers traitements dont les unités linguistiques font l’objet lorsqu’on les fait servir, en l’état, mais toujours pour des objectifs singuliers.
# 2003 : « ''L’alternance ciert- ~ un- ciert- hors pluralité en espagnol : de l’allusion démarcative à la distinction plus ou moins évaluative'' », `dans` Bernard Combettes, Catherine Schenedecker, Anne Theissen (éds), //Ordre et distinction dans la langue et le discours. Actes du Colloque international de Metz (18-20 mars 1999)//, Paris, H. Champion (« Linguistique française » 3), 2003, p. 495-511.
#*Résumé
#**Comme le français, du reste, mais avec une distribution et une émergence diachronique différentes, l’espagnol se trouve disposer au moins de trois moyens morphosyntaxiques pour procéder à la désignation allusive et/ou évaluative du référent : un- ~ ciert- ~ un- ciert-.
#**Sur un plan idiomatique et sectoriel, il s’agit d’abord de voir comment ces trois solutions réussissent, chacune à sa manière, à « distinguer et à porter à l’attention de l’interprète » certains items discursifs et leur contrepartie référentielle. Cela conduit aussi à s’interroger sur ce qui pousse à conjuguer l’allusion (par ciert-) à la ségrégation (par un-).
#**Sur un plan théorique et général, il s’agit aussi de comprendre comment ces éléments, déjà paradigmatiquement concurrents, parviennent à former ensemble une troisième option, et comment y jouent leurs apports propres. Moignet a parfois mis en avant la notion de décumul. Ce parti pris analytique, cependant, va de pair avec la conviction que, dans la parole, chacune des unités doit être convenablement modulée avant d’être employée (c’est la subductivité d’inspiration guillaumienne). Pour qui, au contraire, garde la conviction que l’émergence d’un signifiant entraîne la présence intégrale et massive du signifié correspondant, ce choix analytique n’est plus envisageable, et il n’y a alors d’autre solution que de porter l’adaptation réciproque des unités ainsi associées au compte de leur actualisation applicative.
#*Abstract
#**In Spanish, just as in French, but with different distributional and diachronic characteristics, three morphosyntacic means can be found to designate the referent in an allusive and/or evaluative way : un- ~ ciert ~ un‑ciert‑.
#**From an idiomatic and sectorial point of view, the question is how those three solutions manage, each in its own way, to « distinguish and point out to the interpreter » some elements of discourse together with their referential counterparts. It also raises the question of what motivates the association of allusion (with ciert‑) and segregation (with un‑).
#**From a theoretical and general point of view, the question is how combining those two paradigmatically competitive elements leads to creating a third option, and what each of them contributes to the common meaning. Moignet here sometimes referred to what is known as décumul. Such an analytical standpoint relies on the belief that, in discourse, each unity should be adequately modulated before use : in other words what Guillaume called subductivity. But for anyone who remains convinced that the emergence of a signifier entails the full and massive presence of the corresponding significate, that analytical stance doesn't hold and the only solution left is to bring the reciprocal adaptation of the combined unities to bear on their applicative actualization.
# 2002 : « ''Le contraste générique en -o / -a dans les paires de substantifs espagnols sans applicabilité sexuée : la problématique'' », `dans` Georges Kleiber, Nicole Le Querler (éds.), //Traits d’union [12es Rencontres linguistiques en Pays rhénan (Strasbourg, 3-5 novembre 2000)]//, Caen, Presses universitaires (Centre de recherches inter-langues sur la signification, en contexte), p. 167-180.
#*Résumé
#**À l’inverse des épicènes, certains substantifs des langues romanes, à partir d’une même base étymologique, se différencient par une double finition générique de masculin et de féminin qui ne recouvre aucune distinction sexuelle. En première approche, le cas paraît assez bien représenté en espagnol, et sa survie même incite à ne pas y voir un simple avatar de l’histoire sans portée ni rendement.
#**Avant de tenter (ultérieurement) une éventuelle approche sémio-sémantique de cette alternance morphologique, limitée ici aux couples en -o / -a, on commencera par amorcer un bilan ordonné de ses effets variés, tels qu’ils ont jusqu’ici été repérés par la littérature spécialisée.
# 2002 : « ''Recherche cognitive et recherche linguistique : un développement en trois temps ?'' », `dans` Ronald Lowe (éd.), //Le Système des parties du discours. Sémantique et syntaxe. Actes du IXe Colloque de l’Association internationale de psychomécanique du langage [Québec, 15-17 août 2000]//, Québec, Les Presses de l’université Laval, p. 510-535.
#*Résumé
#**Jusqu’ici, les recherches cognitives ont grosso modo emprunté les trois grandes voies du ou des cognitivisme(s), du ou des connexionisme(s), et plus récemment de l’approche énactive. En changeant de modèle, elles ont aussi essayé d’approcher leur objet de manière moins réductrice – peut-être sous l’influence plus ou moins diffuse des théories de la complexité. Se détourner de plus en plus du fixisme au bénéfice de conceptions constructivistes a ainsi conduit à rapprocher la connaissance de la créativité, et à faire de son emprise quelque chose de subjectif.
#**À bien y réfléchir, une évolution pareillement ternaire se laisse apercevoir dans les recherches linguistiques. Sans qu’on s’en soit apparemment avisé, en effet, on peut également y discerner trois orientations : la première correspond à une approche atomiste du langage, la seconde à son approche globalisante, et la dernière à sa réintégration dans la perspective des sujets.
#**Le présent article a donc le double objectif de dessiner les trois phases repérables dans ces deux champs et d’apprécier l’étendue de leur parallélisme éventuel.
#*Abstract
#**So far cognitive research has, roughly speaking, follow the three main routes of cognitivm(s), connexionism(s) and, more recently, the « enactive » approach. Changing the model has led to attempt to approach the object in a less reductive way – perhaps under the more ot less vague influence of the théories of complexity. Progressively setting aside static conceptions to adopt constructivist conceptions had us led to bringing knowledge closer to creativity, and to make of its workings something subjective.
#**Further reflexion suggest that a similar ternary evolution can be discerned in linguistic research. Although it has not often been remarked, one can, in fact, perceive three orientations : the first corresponds to an atomist approzch to language, the second to a globalizing approach, ant the last to its reintegration in the perspective of the subjects. This article therefore has the double aim to sketching the three phases than can be made out in the two fields and to determine to what extent they may be parallel.
# 2001 : « ''La locution et la locutionnalité : bilan orienté'' », `dans` Tollis 2001 (éd.) : 211-268.
# 2001 : « ''Présentation'' », `dans` Tollis (éd.) 2001 : 11-33.
# 2001 : « ''Premières remarques sur l’alternance ciert- / un- ciert-adjoints (hors pluralité) dans deux corpus d’espagnol'' », `dans` Yves Macchi (éd.), //Panorama de la linguistique hispanique//. Lille 2000, Lille, Université Ch.-de-Gaulle, Lille 3, p. 125-136.
#*Résumé
#**Parmi les moyens morphosyntaxiques dont l’espagnol dispose pour procéder à la désignation allusive et/ou évaluative du référent, trois seront abordés ici : un- ~ ciert- ~ un- ciert-, le dernier conjuguant ainsi les apports des deux premiers.
#**Sur un plan théorique et général, cette situation requiert déjà de se demander comment des éléments, paradigmatiquement concurrents, parviennent à former ensemble une troisième option. A priori, deux grands types d’hypothèses sont envisageables selon que l’on accepte ou non le principe d’un ajustement préalable de chacune des unités sollicitées dans le discours, qu’elle soit de nature lexémique ou grammémique.
#**Sur un plan idiomatique et sectoriel, qui sera privilégié ici, on s’intéressera au moins à deux choses : 1) l’évocation de la manière dont les deux dernières solutions distinguent et portent à l’attention de l’interprète certains items discursifs et leur contrepartie référentielle ; 2) la recherche de ce qui peut ici ou là pousser à conjuguer l’allusion (par ciert-) à la ségrégation (par un-).
# 2001 : « ''Le vocabulaire métadescriptif d’Antonio de Nebrija (1492)'' », `dans` Bernard Colombat, Marie Savelli, //Métalangage et terminologie linguistique. Actes du colloque international de Grenoble (Université Stendhal Grenoble III, 14-16 mai 1998)//, Louvain - Paris - Sterland, Virginia, Peeters (« Orbis / Supplementa » 17), p. 379-393.
#*Résumé
#**L’étude des parlers vernaculaires rencontrait d’emblée une première difficulté : celle de savoir quels services tirer d’une tradition descriptive majoritairement issue des langues anciennes.
#**En Espagne, Antonio de Nebrija, surtout connu des ses contemporains par ses Introductiones latinae (1481), doit cependant sa postérité à sa grammaire du castillan, qui passe pour la première véritable grammaire romane. Néanmoins, la confrontation externe avec les grammairiens latins du latin n’ayant pas réussi à éliminer toutes les zones d’ombre, son métalexique descriptif demeure d’une étude délicate, faute de définitions explicites.
#**Avant d’admettre son imprécision ou son incohérence, on peut cependant tenter de comprendre l’utilisation des termes les plus « techniques » à partir de l’observation résolument interne du texte même de la grammaire. Cette étude, substantiellement entamée, montre au moins trois choses : 1°) un double emploi lato sensu /stricto sensu de certains termes ; 2°) une exploitation pertinente et fine du vocabulaire hérité ; 3°) en cas de besoin, le recours explicite et conscient à des néologismes.
#**Au total, il semble bien que Nebrija ait donc navigué avec habileté et pragmatisme entre tradition et innovation.
#2001 : « ''Retour sur l’unité de puissance en psychomécanique : le mot comme lieu d’équilibre entre passé et avenir opératifs'' », `dans` Paulo De Carvalho, Nygel Quayle, Laurence Rosier, Olivier Soutet (éds), //La Psychomécanique aujourd’hui. Actes du 8e Colloque international de psychomécanique du langag. Seyssel 1997//, Paris, H. Champion (« Colloques, congrès et conférences Sciences du langage » 2), p. 15-48.
#*Résumé
#**Opposée à celle d’unité d’effet, la notion guillaumienne d’unité de puissance représente une entité cruciale, puisque la théorie en fait le point de départ obligé de toute production verbalement aboutie, c’est-à-dire effective et actualisée.
#**À partir de là, la psychomécanique a laissé se généraliser l’idée que la langue fournit réellement les mots, mais propose d’en faire théoriquement le résultat d’une édification progressive et étagée qui est responsable de leur constitution souvent pluriatomique, toujours supraatomique.
#**Devant cet apparent paradoxe, peu souvent souligné au demeurant, l’idée peut venir que, mutatis mutandis, en psychomécanique il pourrait en aller du mot comme de la phrase : s’il se déclare et se réalise bien dans le discours, le mécanisme de son engendrement lui vient de la langue. La présente contribution se propose donc de revenir à ce qu’en a réellement et successivement dit Guillaume.
#*Abstract
#**Contrary to the notion of « effective unit », the Guillaumian notion of « potential unit » stands for an essential entity, since the theory makes it the necessary starting point of any verbally achieved production, that is, effective and converted into fact.
#**Henceforth, Psychomechanics has generalized the idea that the language actually provides the words, but proposes to make them in theory the « result » of a progressive and carefully staged construction, responsible for their sometimes polyatomic, always supra-atomic, constitution.
#**In front of this apparent paradox, actually very seldom emphasized,the idea may come up that, mutatis mutandis, in Psychomechanics, what happens to the sentence might well happen to the word : if it asserts and concretizes itself in the speech, the process of its production comes from the language. The purpose of the present contribution is therefore to return to what Guillaume really and successively said.
# 2000 : « ''La prévisibilité de Juan es Ø gobernador / Juan es un médico, Juan es Ø inteligente / Juan es un estúpido : du linguistique au mondain, via le sociétal'' », André Resano (éd.), //Linguistique hispanique//. Nantes 1998, Nantes, Centre de recherche sur les identités nationales et l’interculturalité, p. 333-356.
# 2000 : « ''La problématique de l’un et du multiple dans le cas de morphèmes romans polyvalents : Deux groupes d’approches'' », `dans` Annick Englebert, Michel Pierrard, Laurence Rosier, Dan Van Raemdonck (éds), //Actes du XXIIe congres international de linguistique et philologie romanes, Bruxelles (ULB), 23-29 juillet 1998//, Tübingen, Niemeyer, VI : De la grammaire des formes a la grammaire du sens, p. 531-542.
#*Résumé
#**En synchronie, il est fréquent de postuler la constance idiomatique de chaque unité. Pourtant, ses mobilisations circonstancielles dans la parole sont aussi diversifiées que le sens énonciatif avec lequel elles viennent à coïncider. Entre l’une et les autres, il y a apparemment comme un monde, comme deux ordres de réalité toujours délicats à mettre en relation lorsque l’on croit l’observation détaillée de la variation langagière aussi justifiée, aussi nécessaire que l’étude épurée de l’invariant idiomatique.
#**Si cette difficulté est générale, elle s’accroît encore à mesure que les unités étudiées se révèlent plus polyvalentes, ce qui est tout particulièrement le cas avec les morphèmes fortement grammaticalisés. Car, catégoriellement et/ou syntaxiquement, il arrive à un certain nombre d’entre eux de tenir des rôles si divers que leur apparente diversité les a parfois fait insérer dans plusieurs paradigmes.
#**À partir du cas particulier du un- de l’espagnol, qui a des homologues approchés dans d’autres parlers romans, nous évoquerons la question des grands types de position qu’il est possible de prendre face à l’apparente diversification de ce genre d’unités.
#**La plus ancienne consiste à expliquer cette variation par une nature elle-même diverse. Le démembrement et l’étiquetage varié des morphèmes considérés accrédite alors l’idée de leur éclatement individuel, pourtant démenti par une conformation phonomorphique inchangée d’un emploi à l’autre.
#**Une deuxième option, beaucoup plus récente, conduit à regrouper simplement ces mobilisations par types en fonction de la portée sémantique de l’énoncé ; dans le cas des déterminants, celle-ci est volontiers calibrée au regard du général et du particulier.
#**Mais on peut ne percevoir aucune rupture entre ce qu’un morphème doit être puissanciellement, et le sens avec lequel, circonstanciellement, il vient à coïncider. Une troisième voie se dessine alors. En dépit de la disponibilité qu’il affiche en énoncé, elle s’efforce de le rétablir dans l’identité et dans l’unité idiomatiques qui sont les siennes hors énoncé.
#**Comprendre sa disponibilité n’oblige désormais ni à le morceler, ni à en faire un être linguistique modulable lors de ses applications. Il suffit de se rappeler que, comme n’importe quelle autre unité, il est simplement applicable de manière modulée.
#**Ainsi, des comportements sémantico-syntaxiques apparemment inconstants n’imposent ni la nature plurielle, ni le caractère versatile de ces signifiants. Sans surcoût théorique ni contorsion forcée, il est envisageable de voir dans leur polyvalence langagière l’effet de leur mise en œuvre dans des circonstances énonciatives éminemment changeantes.
# 2000 : « ''Néologie lexicale et altérations morphosyntaxiques : Un‑et ill‑e du latin au castillan'' », `dans` Jean-Claude Chevalier, Marie-France Delport (éds), //La Fabrique des mots. La néologie ibérique [Actes du Colloque international organisé à Paris les 25-26 mai 1998 par l’URA 1036 sur le thème « La néologie ibérique »]//, Paris, Presses de l’Université de Paris-Sorbonne (« Iberica, Essais » 2), p. 7-54.
# 1998 : « ''Gustave Guillaume et l’écriture'' », Op. cit. [Pau], 10 (`Propriétés de l’écriture. Actes du colloque de l’Université de Pau, 13, 14 et 15 septembre 1997. J.‑G. Lapacherie (éd.)`, p. 123-130.
#*Résumé
#**Épistémologiquement originale et plutôt abstraite, l’approche guillaumienne du langage doit sans doute à ces caractéristiques sa diffusion lente et discrète. En contrepartie, à une époque où la durée d’exploitation d’une théorie linguistique est souvent courte, cela a peut-être favorisé son utilisation plus de soixante ans encore après son apparition, ainsi que son internationalisation relative.
#**Pour ce qui est de l’écriture comme transcription, ce que l’on trouve dans l’œuvre publiée de Guillaume permet de voir que, à la différence de bon nombre de ses contemporains, il est loin de l’avoir cantonnée dans un rôle subalterne. En soulignant ses liens privilégiés avec la pensée et son rôle dans l’évocation de l’architecture linguistique des idiomes indo-européens, il a au contraire dégagé la profondeur de son enracinement et la portée de son témoignage.
# 1998 : « ''Invariant idiomatique et variations langagières : du un‑ adjoint de l’espagnol au un‑ “substantivé ''», `dans` Gilles Luquet (éd.), //Travaux de linguistique hispanique [Actes du VIIe colloque de linguistique hispanique (Paris - Sorbonne, 8, 9 et 10 février 1996)]//, Paris, Presses de la Sorbonne nouvelle, p. 423-449.
#*Résumé
#**Entre une unité du langage et ses emplois il y a apparemment un monde, et une mystérieuse alchimie. En effet, si à chaque morphème l'architecture idiomatique pousse à attribuer une certaine constance, on le rencontre aussi dans des contextes sémantiques largement diversifiés. C'est cette problématique générale que nous voudrions aborder ici au travers du un‑(+ s) de l'espagnol actuel et de ses différentes exploitations.
#**Une première tentation consiste à expliquer cette variation applicative par la nature elle-même plurielle de ce signifiant. Un‑ est alors démembré et alternativement identifié comme ‘numéral’, comme ‘article’, comme ‘indéfini,’ etc. L'ennui est que, inchangée dans tous ces rôles, sa conformation fait obstacle à toute division. Une deuxième option conduit à regrouper simplement ces mobilisations selon la portée sémantique de l'énoncé au regard du général et du particulier.
#**Mais on peut aussi ne percevoir aucune rupture entre ce que un‑ doit être puissanciellement, et le sens avec lequel, circonstanciellement, il vient à coïncider. Une troisième voie se dessine alors. En dépit de la disponibilité qu'il affiche en énoncé, elle s'efforce de le rétablir dans l'identité et dans l'unité idiomatiques qui sont les siennes hors énoncé. Comprendre sa disponibilité n'oblige désormais ni à le morceler, ni à en faire un être linguistique modulable lors de ses applications. Il suffit de se rappeler que, comme n'importe quelle autre unité, il est simplement applicable de manière modulée.
#**Ainsi, le comportement apparemment inconstant de un‑ n'impose pas d'en faire un être polysémique ou versatile. Sans surcoût théorique ni contorsion forcée, on peut se contenter d'en faire un être polyvalent dont les effets varient en fonction des circonstances de sa mise en œuvre.
# 1997 : « ''La psychomécanique du langage et le guillaumisme dans la perspective des recherches cognitives'' », `dans` Paulo De Carvalho, Olivier Soutet (éds), //La psychomécanique du langage. Problèmes et perspectives. Actes du 7e Colloque international de Psychomécanique du langage (Cordoue, 2-4 juin 1994)//, Paris, H. Champion (« Champion varia » 11), p. 329-340.
#*Résumé
#**Aucun linguiste ne peut plus ignorer les recherches cognitives. On a dit et écrit que « Guillaume [est l’] aïeul tutélaire de la sémantique cognitiviste “à la française” ». Pourtant, à quelques initiatives près, la psychomécanique ne semble pas en avoir été affectée.
#**Laisse-t-elle réellement percer les premières préoccupations cogniticiennes en linguistique ? C’est cette question qui, en dépit des embûches (bibliographie foisonnante, interdisciplinarité et apparente nébulosité des recherches cognitives) nous a incité à tenter un survol attentif des expériences et/ou des résultats des cogniticiens.
#**Sans prétendre aucunement y parvenir, nous essaierons ici de situer le guillaumisme au regard de la linguistique qui se réclame de la cognition. Pour ce faire, nous nous pencherons exclusivement sur deux choses : la nature même de l’approche guillaumienne et la notion analytique de représentation.
# 1995 : « ''Algun- dans la perspective de un- : réflexions sur son “problematismo”'' », `dans` Michel Camprubi (éd.), //Permanences et renouvellements en linguistique hispanique / Actes du VIe colloque de linguistique hispanique (Toulouse, 18 et 19 mars 1994)//, Toulouse, C.R.I.C., Université de Toulouse-Le Mirail, p. 323-333.
# 1994 : « ''¿Qué ocurre ? vs ¿Qué es lo que ocurre ? : sur la viabilité de qué nucléaire sujet dans des énoncés interrogatifs d’espagnol écrit'' », `dans` Jeanine Stolidi (éd.), //Recherches en linguistique hispanique, Actes du colloque d’Aix-en-Provence 20-21 mars 1992//, Aix-en-Provence, Publications de l’Université de Provence, 1994, p. 409-421.
# 1994 : « ''La presentación de lo gráfico-fónico en la Gramática de Nebrija y en el Arte de trovar de Enrique de Villena'', `dans` R. Escavy, J.-M. Hernández Terrés, A. Roldán (eds.), //Actas del Congreso internacional de historiografía lingüística [Congreso V Centenario-Nebrija, Murcia, 1-4 avril 1992]//, III : Nebrija y otros temas de historiografía lingüística, Madrid : Nebrija V Centenario, p. 605-617.
!!! Collectifs et hommages
# `2015` : « ''L’engendrement étagé des formes verbales dans les parlers indo-européens selon Maurice Toussaint (1936-2010)'' », `dans` Elena Gaspar (éd.), //Temps, mode et aspect dans les langues ibériques//, Rouen (« Epilogos » 4), p. 189-201. Publié sur CDRom.
# `2015` : « ''Ségrégation et pluralité au sein du un‑s espagnol adjoint : De l’élémentaire au collectif, du qualitatif au quantitatif'' » (2007), `dans` Louis Begioni, Paola Placella (éds), Problématiques des langues romanes, Linguistique, politique des langues, didactique, cultura. Hommage à Alvaro Rocchetti, Fasano, Schena Editore - Paris, A. Baudry (« Biblioteca della ricerca. Linguistica » 69), p. 291-302.
#*Résumé
#**Des langues romanes, le castillan est sans doute parmi celles qui, de nos jours, font de l’issue du un- latin un usage d’autant plus large qu’il continue d’y être pluralisable – quoique défectivement.
#**Ce sont précisément les conditions et/ou les conséquences sémantiques de cette pluralisation en contexte périnominal qui sont ici abordées. Pour un-s, la question est donc celle de ses effets – la finition générique interfixée en -o- ou en -a- -étant ici neutralisée.
#**On se penchera moins sur les différentes approches référentielles auxquelles cet agrégat se prête, en tant qu’il intègre en lui un un-, que sur les éventuelles distorsions imputables à la rencontre de ce dernier avec le pluriel (masculin ou féminin) : moins .sur ses types d’application énonciative que sur les familles d’effets surajoutés – si familles il y a.
# 2013 : « Amistoso y respetuoso homenaje a Maurice Toussaint : una lectura de su teoría lingüística », traducción de Concepción Hermosilla Álvarez, dans Ma Luisa Calero Vaquera, Ma Ángeles Hermosilla Álvarez (eds.), Lenguaje, literatura y cognición, Servicio de publicaciones, universidad de Córdoba, p. 19-44, disponible en ligne : <www.academia.edu/3249743/Lenguaje_literatura_y_cognición>.
# 2012 : « La traduction française de un-s devant substantif non-métrologique dans Las Últimas banderas d’A. M. de Lera : Étude des principales variations (ségrégation et quantification) » (2011), dans Gilles Luquet (éd.), Morphosyntaxe et sémantique espagnoles. Théories et applications, Paris, Presses Sorbonne nouvelle, p. 215-228.
# 2012 : « Projet et maturation d’un traité sur le parler vulgaire : Elio Antonio de Nebrija des Introductiones latinae (1481) à la Gramática castellana (1492) », dans Teddy Arnavielle (éd.), Voyages grammairiens [Actes du colloque « Comment peut-on écrire une grammaire ? », Montpellier, 13-14 janvier 2011], Paris, L’Harmattan (« Langue & parole »), p. 33-48.
# 2012 : « Les personnes communicantes et la perspective guillaumienne d’une remontée vers la langue des conditions de son utilisation », dans Catherine Douay, Daniel Roulland (éds), L’Interlocution comme paramètre [Actes du colloque de linguistique organisé par le C.O.R.P.U.S. EA 4295, Amiens, 6-7 janvier 2011], Rennes, Presses universitaires de Rennes (« Rivages linguistiques »), p. 36-54.
#*Résumé
#**L’approche de la déflexivité l’a encore récemment montré, le concept de personne occupe une place centrale dans la théorie de Gustave Guillaume (Leçons de linguistique. 1947-1948 Série C. Grammaire particulière du français et grammaire générale (III), 8, Québec, Les Presses de l’université Laval, Lille, Presses universitaires de Lille, 1988, [24-IV-48] p. 177/2). D’un autre côté, même si on le tient avant tout pour un linguiste de l’amont, il n’a jamais perdu de vue la fonction relationnelle et communicante du langage :
#**À s’en tenir au côté actif et communicatif du langage, la relation dont le langage assume la charge est une relation humaine entre deux personnes, la parlante et l’écoutante, et entre ces deux personnes seulement (ibid., [30-IV-48] 187/1-2).
#**Le colloque ayant pour objectif de voir pourquoi et comment l’interlocutivité devrait être placée au centre de toute théorisation productive du langage et de son exercice, il a paru envisageable de regarder ce qu’il en est de cette éventualité à partir de la théorie de Guillaume. Dans le prolongement des propositions d’A. H. Gardiner et de C. Douay et de ce que nous avons choisi d’en retenir personnellement, il s’agit donc ici d’examiner et de présenter, sur le registre historiographique et sans souci particulier pour la doxa psychomécanique, sa ou ses position(s) sur la place de la communication et de ses pivots personnels au sein du langage, notamment au regard de la langue.
#*Abstract
#**As shown again recently by the reflexion on deflexivity, the "person" as a concept holds a central position in Gustave Guillaume’s theory (Leçons de linguistique. 1947-1948 Série C. Grammaire particulière du français et grammaire générale (III), 8, Québec, Les Presses de l’université Laval, Lille, Presses universitaires de Lille, 1988, [24-IV-48] p. 177/2). Moreover, even if he is first and foremost considered as a linguist of operative processes -that is of the "amont"-, he never lost view of the relational and communicative function of language:
#**If one takes into consideration the active and communicative aspect of language, the relation language takes charge of is a human relationship between two persons, the speaker and the listener, and between those two persons only (ibid., [30-IV-48] 187/1-2)
#**The aim of the present symposium being to delve into why and how any productive theorisation of language and its use should be centered on interlocutivity, it has seemed possible to question the validity of such a working hypothesis within the frame of Guillaume’s theory. Following on A.H. Gardiner’s and C. Douay’s analysis - or more precisely on our personal interpretation of them -, this presentation will examine, from a historiographic point of view and without any particular consideration for the psychomecanic doxa, Guillaume’s position(s) on the part played within language by communication and the pivotal role of the "persons" involved, more precisely with regards to the system of "la langue" (tongue).
# 2011 : « Le concept d’actualisation guillaumien est-il de nature continuiste ? », dans Marc Arabyan et alii (éds), Le Concept d’actualisation en psychomécanique. Actes du XIIe colloque international de psychomécanique du langage, Bruxelles 18-20 juin 2009, Limoges, Lambert-Lucas, p. 47-58.
#*Résumé
#**Proposant une conception génétique, donc opérative ou cinétique, du langage, Guillaume en a pensé et décrit la réalité en même temps que l’exercice comme un ensemble de processus d’engendrement ou de mise en œuvre.
#**Depuis les remarques de Launay de 1977, on sait cependant qu’il n’est apparemment pas toujours resté fidèle à ce credo, et que, sans forcément le vouloir, il a parfois traité l’opératif comme du résultatif ou incité à le faire. Par ailleurs, avec sa linéarité et son « point versif » médian, le tenseur binaire radical régulièrement utilisé pour rendre lisibles ces genèses orientées y introduit des ruptures que l’on pourrait croire porteuses de discontinuité.
#**Ses successeurs n’ont pas forcément évité l’écueil, et, de nos jours, leurs écrits laissent percer, au mieux des traces de cette indécision, au pire quelques crispations essentialistes.
#**En interrogeant sa notion d’actualisation telle qu’on la voit progressivement émerger dans les écrits fondateurs de la psychomécanique jusqu’au recours tardif à la notion d’effection, on cherche ici à voir dans quelle mesure elle satisfait à la continuité qui est parfois revendiquée par Guillaume et ses exégètes, et donc sa compatibilité actuelle avec ce continuisme auquel, dans la dernière décennie du siècle précédent et à partir de soubassements théoriques pourtant distincts, certains linguistes français semblent avoir abouti.
#**Finalement, la question est de (sa)voir si cette actualisation, avec ses allures de processus second jouant sur des acquis mentaux virtuels mais préalables, n’entretient pas une propension naturelle au fixisme, encore observable dans le sillage de Guillaume.
# 2009 : « “Dioptrique humaine” et temps opératif : deux aspects de la psychomécanique du langage soulignés par la gramática liminar », dans La Lingüística como reto espistemológico y como acción social. Estudios dedicados al Profesor Ángel López García con ocasión de su sexagésimo aniversario, Montserrat Veyrat Rigat, Enrique Serra Alegre (eds.), Valencia, Arco/Libros, p. 385-399.
# 2005 : « La réforme de l’orthographe par Nebrija et son application dans le texte de sa Gramática castellana (1492) : du manuscrit aux incunables et à leurs transcriptions modernes », dans Campos Souto Mar (ed.), Del « Libro de Alexandre » a la « Gramática castellana », Lugo, Ed. Axac (« Yuso » 2), p. 155-172.
# 2004 : « Avant-propos », dans Alexandra Mantcheva, La Linguistique. Œuvres de Krassimir Mantchev, I, Paris, L’Harmattan (« Sémantiques »), p. XV-LII.
# 2001 : « La traduction de un-s est-elle automatisable ? », dans Xavier Blanco, Pierre-André Buvet, Zoé Gavriilidou (éds.), Détermination et formalisation, Amsterdam – Philadelphie, J. Benjamins Publishing (« Linguisticae investigationes, Supplementa » 23), [2001], p. 315-326.
# 2000 : « Une déflexivisation toujours en marche ? : la concurrence si / /el/ en espagnol », dans Miscellanées de langues et cultures romanes et celtiques en hommage à Robert Omnes, Brest, EA « Littératures et langues », Faculté des lettres et sciences sociales V. Segalen, Université de Bretagne occidentale, p. 139-148.
# 1999 : « À propos du verbe et de l’opération qu’il inclut : se et les configurations en se en espagnol », dans Mélanges de linguistique, sémiotique et narratologie dédiés à la mémoire de Krassimir Mantchev à l’occasion de son 60e anniversaire, Sofia, Colibri, p. 381-417.
# 1998 : « À propos de la prétendue “négativité” de algún », dans Nicole Delbecque, Christian De Paepe (éds), Estudios en honor del Profesor Josse de Kock, Leuven, Leuven University Press (« Symbolae : Facultatis Litterarum Lovaniensis, Series A » 25), p. 519-528.
# 1998 : « Le couplage analytique des morphèmes en /un/‑ et en ‑/l/‑, vu de l’espagnol » dans Danielle Leeman, Annie Boone, Du percevoir au dire. Hommage à André Joly, Paris, L’Harmattan, p. 131-145.
#*Résumé
#**Dans la tradition descriptive du français, il est courant de voir les deux morphèmes en /un/‑ et en ‑/l/‑ couplés individuellement. Pourtant, outre qu’il a fallu à cet appariement du temps pour émerger dans l’histoire de la grammaire anglaise, puis française, il n’a jamais vraiment réussi à s’imposer unanimement dans celle de l’espagnol.
#**Une question demeure donc encore : est-il réellement imposé par l’économie de ces idiomes ou n’est-il jamais qu’une option descriptive parmi d’autres ? Afin de la reposer dans des termes partiellement renouvelés, on trouvera ici :
#**1°) un retour critique sur les grands traits de l’analyse proposée, pour le français, à l’appui de leur jumelage systémique, notamment celle qui a été progressivement échafaudée par Joly ;
#**2°) les remarques qui ont régulièrement servi, au contraire, pour le refuser dans le cas du castillan, car, quoique nées dans un cadre idiomatique distinct, certaines d’entre elles ont une portée suffisamment générale pour fournir de possibles contre-arguments.
# 1998 : « La traductologie comme révélateur des variations de l’actualisation ? (A propos du un‑s adjoint de l’espagnol) », dans Jeanne-Marie Barbéris, Jacques Bres, Paul Siblot (éds), De l’actualisation, Paris, CNRS Ed., p. 119-135.
#*Résumé
#**Les solutions que le traducteur choisit pour le texte-cible découlent fatalement de l’interprétation qu’il fait du texte-source, largement déterminée par la manière dont ses éléments constitutifs sont finalement actualisés. Par ailleurs, une même unité de la langue de départ reçoit à l’arrivée des traitements divers, variables d’une traduction et d’une occurrence à l’autre. On peut donc se demander si l’examen de cette variation ne peut pas éclairer sur cette actualisation même, surtout dans le cas d’une unité fortement grammaticalisée comme ici le un- adjoint de l’espagnol.
# 1997 : « La terminologie descriptive de Nebrija dans la Gramática de la lengua castellana : nouveaux regards à la lumière de l’informatique (II : de la sílaba a la oración) », dans Homenaje universitario a D. A. Roldán, Murcia, Universidad, 1997, I, p. 563-616.
# 1996 : « La terminologie descriptive de Nebrija : nouveaux regards à la lumière de l’informatique (I : autour de la notion de letra) », dans Hommage des hispanistes français à H. Bonneville, s. l., SHF, p. 591-620.
# 1996 : « Introduction : The Psychomechanics of language and its various developments », dans Tollis 1996 (éd.) : 7-23.
# 1996 : « General Bibliography », dans Tollis 1996 (éd.) : 187-245.
# 1992 : « Nebrija face à la réalité (énoncive et) graphophonique du langage : à propos d’une terminologie » [1991], traduction espagnole (anonyme) sous le titre « Nebrija frente a la realidad enunciativa y grafofónica del lenguaje : a propósito de una terminología », dans Nebrija, A. de, Gramática de la lengua castellana, Madrid, Ed. de Cultura hispánica, III : Estudios nebrisenses (M. Alvar ed.), p. 261-312.
# 1988 : « Approche psychomécanique du cuant- interrogatif espagnol », dans Hommage à B. Pottier, Paris, Klincksieck = Annexes des Cahiers de linguistique hispanique médiévale, 7/2, p. 775-785.
# 1987 : « A propos de la genèse mentale de la phrase (Réflexions sur les propositions de K. Mantchev) », dans Mélanges offerts à M. Molho, III (Linguistique) = les Cahiers de Fontenay (Paris), p. 357-370.
!!!Articles dans des revues internationales ou nationales avec comité de lecture (ACL) :
# `à paraître 2019` : « ''La dimension anthropologique (anthropogénétique) de la linguistique de Gustave Guillaume'' », Le Français moderne, 1, p. 33-45.
#*Résumé
#**Avant Benveniste, son cadet de vingt ans, Guillaume a souvent rapproché la linguistique de l’anthropologie et Avant Benveniste, son cadet de vingt ans, Guillaume a souvent rapproché la linguistique de l’anthropologie et considéré que le langage était si étroitement lié à la condition humaine – même si cette dernière expression, tardivement apparue dans ses écrits y demeure rare – que leurs développements respectifs lui semblaient avoir été parallèles. Il attendait donc de la linguistique qu’elle se focalise sur cette dimension du langage, qui en fait le plus efficace instrument de cristallisation et de manifestation de la pensée et, avec la personne et ses diverses facettes pour clé de voûte, le meilleur témoin de notre hominisation.
#**Néanmoins, à la pensée et au langage il attribuait une existence et une réalité autonomes et jugeait que leur très fréquente mise en contact dans le discours n’a d’effet majeur ni sur l’une ni sur l’autre. Ainsi, même si l’emploi constant et partagé de la langue a fini par lui conférer un certain hypopragmatisme, GG estimait que la pensée pensante (en genèse) demeurait tout à fait hors de portée, et n’était abordable que par le biais de la pensée pensée (aboutie).
#**Sur la fin de sa vie, cependant, ces partis pris mentalistes ne l’ont pas empêché d’appeler de ses vœux, avec le concours des « médecins-grammairiens », la mise au jour d’une certaine isologie physico-mentale. C’était peut-être très neuf à la fin des années 1950.
#*Abstract 1
#**Before Benveniste, 20 years his junior, Guillaume often drew a link between linguistics and anthropology. He considered that language was so inherent to « the human condition » ‑ even if such a phrasing is rarely to be found in his writings and only so in his latest period ‑ that their development could only be seen as parallel. He therefore expected linguistics to focus on that aspect of language that turns it into the most efficient tool for crystallizing and embodying thought, thus providing ‑ with the muti-faceted nature of the « person » as a keystone to the process s‑ the best proof of our humanization.
#**However, he considered thought and language as autonomous entities, so that their frequent contacts in discourse had no permanent effect on either. Therefore even if the constant and common use of language has eventually confered it some hypopragmatic component, GG considered « thinking thought » (in genesis) remained totally out of reach, and could only be grasped through a « thought thought » (actualized).
#**Toward the end of his life, however, his mentalist bias did not prevent him from advocating the exposition of a certain physico-mental isology, with the help of « grammatical doctors ». In the fifties, such a position may have been quite innovative.
#*Abstract 2
#**1. Before Benveniste, 20 years his junior, Guillaume often drew a link between linguistics and anthropology. Considering that language was so inherent to « the human condition » – even if such a phrasing is rarely to be found in his writings and only so in his latest period ‑ to him their development could only be seen as parallel.
#**2. In so far as to him writing and the alphabets best testified to such a linguistico-mental intrication (he saw them as ultimately closer to thought than any other form of verbal expression), he recommended devoting ample attention to their study. Therefore GG expected linguistics to focus on that human component that transforms language into the most efficient tool for crystallizing and embodying thought, thus providing the best proof of our humanization. However, within such a study, (historical) inputs should be clearly separated from the (systemic) relationships they have generated, thanks to some « fundamental operations », which he saw as few, extremely simple, but constantly and recurrently applying to their own output.
#**3. Endowed of a three-faceted nature (spiritual, social and human), the « person » appeared to him as the real keystone of such a process, and, due of its narrowness, the reason why time happens to be thought of as a flux, at least in certain forms of speech.
#**4. He considered thought and language as autonomous entities, so that even if they obviously come into contact with each utterance, when language attempts to give constructive form to thought, it has no permanent effect on either. Admittedly, their necessary and frequent contacts have eventually confered to language some hypopragmatic component, so that it can prove efficently motivated in discourse. Nevertheless, GG considered « thinking thought » (in genesis) remained totally out of reach, and could only be grasped through a « thought thought » (actualized).
#**5. Toward the end of his life, however, his mentalist bias did not prevent him from advocating the exposition of a certain physico-mental isology, with the help of « grammatical doctors ». In the fifties, such a position may have been quite innovative.
# `2019` : « ''L’introuvable signifié : De sa postulation à son repli sur le signifiant et à son éventuelle dispersion dans un référentiel socialisé'' », Signifiances / Signifying, 2/1 (Le symbole est-il diabolique ? Duplicité(s) du signe en question, Élodie Blestel, Chrystelle Fortineau-Brémond, Marine Poirier (éds), p. 71-94, disponible en ligne : <http://revues.clermont-universite.fr/index.php/Signifiances/issue/view/23>.
#*Résumé
#**Dans le prolongement du Saussure académique du Cours, qui s’est longtemps imposé sur ses écrits authentiques plus tardivement publiés, on en est venu à représenter le signe linguistique sous l’espèce d’une entité bicéphale à deux facettes, inséparables mais distinctes. De nos jours, néanmoins, la question se pose de savoir si leur relation est de concordance (symbolique) ou de discordance (diabolique).
#**Qu’on y voie ou non une authentique donnée, le signifiant de l’unité linguistique semble la moins évanescente de ses deux composantes. C’est donc sur la notion de signifié unitaire, pourtant bien installée dans la réflexion sur le langage, que le débat retombe. Car, avec le dualisme dont elle est inséparable et la perspective ontologique à laquelle elle prédispose, elle semble présenter au moins autant d’inconvénients que d’avantages. C’est à elle que la présente réflexion est consacrée.
#*Abstract
#**In the line of the academic presentation of Saussure’s « Cours de linguistique générale » that, for long, prevailed over the master’s authentic writings that were only published much later, the linguistic sign came to be represented as a two-headed entity with two inseparable yet distinct facets. Today, however, the question remains whether their relationship is one of (symbolic) concordance or (diabolic) conflict.
#**Whether it is considered or not as authentic data, the signified of the linguistic unit stands out as the more evanescent of the two components. Although widely referred to when reflecting on language, the notion of a unitary signified is therefore a much debated issue today, and the topic of the present paper. Indeed, with its inherent dualistic nature and the ontological perspective it implies, it raises as many drawbacks as benefits.
# `2018` : « ''De la théorie de Gustave Guillaume à la cognition : Langage et pensée, lucidité, mécanique intuitionnelle, connaissance et vécu'' », Studii de Știință și Cultură, XIV/4 (55), p. 13-24, disponible en ligne : <http://www.revista-studii-uvvg.ro/files/2018/Volumul_XIV_Num%C4%83rul_4%20_(55)_2018/2.pdf>.
#*Résumé
#**Gustave Guillaume, qui a très tôt été remarqué pour l’originalité de sa pensée et ses exigences épistémologiques, est souvent passé pour un pionnier auprès de ses successeurs. Est-ce justifié au regard des approches cognitives du langage ? Comme déjà en 1994, en 2018 se pose encore la question de l’adaptabilité de sa théorie à cette perspective. On se focalisera ici sur la lucidité humaine d’où Guillaume, avec ses préoccupations anthropogénétiques, fait dériver l’invention du langage et la curiosité scientifique, sur la mécanique intuitionnelle qui lui est sous-jacente mais est applicable aussi aux autres disciplines explicatives, et sur la nature qu’il attribue à la connaissance réflexive au regard du vécu.
#*Mots clés : théorie guillaumienne, langage et pensée, mécanique intuitionnelle, connaissance et vécu
#*Abstract : « From Gustave Guillaume’s theory to cognition : language and thought, lucidity, intuitional mechanics, knowledge and experience »
#**Gustave Guillaume, who was very early acknowledged for the originality of his ideas and his epistemological demands, is often considered to be a pioneer by his followers. Is such a position justified from the point of view of the cognitive approaches to language ? Just as it was in 1994, the question of how adaptable his theory is to such a perspective is still open. The present paper will focus on different aspects of the problem. First, human lucidity from which, according to Guillaume and his anthropogenetical concerns, the invention of language is derived. Then scientific curiosity, and the intuitional mechanics that underlie it but can also apply to other explanatory disciplines. Finally the way he considers reflexive knowledge in its relation to life experience will be dealt with.
#*Keywords : Guillaume’s theory, language and thought, intuitional mechanics, knowledge and experience
# 2018 : « ''À la recherche des traces signifiantes indissociables des langues : Six approches théoriques hexagonales'' », `dans` Élodie Blestel, Chrystelle Fortineau-Brémond (éds), //Le signifiant sens dessus dessous. Submorphémie et chronoanalyse en linguistique hispanique//, Limoges, Lambert-Lucas, p. 27-53.
#*Résumé
#**Souvent inspirées par certaines propositions des grands aînés de la discipline, les approches linguistiques qui sont présentées ici partagent au moins deux orientations et un objectif. D’une part, leur retour systématisé à l’idée d’une certaine analogie entre le signifiant et le signifié et leur opposition au credo arbitriste postsaussurien les poussent à délaisser la perspective onomasiologique et à privilégier l’attitude sémasiologique. D’autre part, elles pensent que, loin d’être aléatoire, toute particule signifiante, quelque nature qu’on lui accorde, est toujours susceptible de faire l’objet d’une ou de plusieurs lecture(s). Du coup, elles affichent le même souci de mettre prioritairement au jour les traces qui permettent au langage de se manifester en surface et, via cette matérialisation, de faciliter le contact entre les individus dès qu’ils sont capables de communiquer verbalement.
#**Par ailleurs, même si parfois elles ne résistent pas à celle du mot, ces approches tendent majoritairement à se dégager de l’emprise du morphème, et cherchent si, à un niveau d’analyse ultérieur mais à un niveau génétiquement antérieur, il n’y a pas à isoler des éléments plus petits, dès l’instant où leur constance sémiotique fait écho à une constance sémique corrélative.
#**Encore minoritaires sans doute, ces approches n’en sont pas moins diverses et nombreuses, et il n’était guère possible d’en faire l’examen approfondi ni un bilan réellement exhaustif. Il a donc fallu aller à l’essentiel, et, par manque de place, faire très injustement l’impasse sur un certain nombre de travaux, dont, parmi les plus récents, ceux de Michaël Grégoire, qui, à sa manière, a élaboré une théorie personnelle dans laquelle on peut voir un prolongement propre, syncrétique et élargi, des autres propositions abordées ici.
#*Resumen
#**Muchas veces inspiradas en algunas de las propuestas antiguamente surgidas en el campo de la lingüística, las teorías aquí presentadas comparten por lo menos dos orientaciones y un objetivo. Por un lado, convencidas de la existencia de cierta analogía entre significante y significado y opuestas a todo arbitrismo postsaussuriano, tienden a abandonar la perspectiva onomasiológica y preferirle una postura semasiológica. Por otro lado, consideran que ninguna partícula significante – de cualquier manera que la definan – tiene carácter aleatorio, sino que, al contrario, se presta a una o varias lectura(s). A consecuencia, todas se preocupan por sacar a la luz las señales que permiten al lenguaje adquirir manifestación superficial y, mediante esta materialización, facilitar el contacto entre los individuos en cuanto se muestran capaces de comunicar verbalmente.
#**Por otra parte, aunque a veces se dejan seducir por la palabra, la mayor parte de aquellas teorías se esfuerzan por librarse del dominio del morfema, y procuran ver si, en un momento posterior del análisis pero genéticamente anterior, no se han de aislar elementos de menor tamaño, con tal que su constancia semiótica se corresponda con una constancia sémica.
#**Aunque minoritarias, no cabe duda, son diversas y numerosas, de modo que no era posible examinarlas detalladamente ni hacer de ellas un balance realmente exhaustivo. Así, por falta de espacio, ha sido necesario atenerse a lo esencial y pasar por alto algunos estudios, entre los más recientes los de Michaël Grégoire, quien ha elaborado una teoría personal que puede considerarse una síntesis propia, sincrética y ampliada, de las anteriores.
# `2018` : « ''Les études linguistiques sur l’espagnol en France avant 1999'' », Chréode [Paris], 2 (Hommage à Marie-France Delport), p. 13-32.
# 2017 : « ''La théorie linguistique de Gustave Guillaume scrutée dans une perspective énactive'' », Signifiances / Signifying, 1/1 (Langage et énaction : problématiques, approches linguistiques et interdisciplinaires / Réflexions sur les théories en sciences du langage à la lumière de l’énaction [Actes du 1er Colloque international « Langage et énaction. Production du sens, Incarnation, Interaction », organisé les 1er-3 juin 2016 à Clermont-Ferrand]), exclusivement disponible en ligne : <`https://doi.org/10.18145/signifiances.v1i1`>.
#*Résumé
#**Aux successeurs de Gustave Guillaume on a souvent reproché une forme d’opportunisme qui, dans sa théorie linguistique, les a successivement conduits à retrouver certains traits de la grammaire générative, puis de l’énonciationnisme et de la sémantique cognitive.
#**En arrière-plan des approches énactives du langage actuelles, la question a été posée de savoir si quelque chose en perce dans ses écrits publiés. A priori, vu qu’ils sont antérieurs à 1960, le risque est cependant grand de n’y trouver aucun signe avant-coureur. Néanmoins, en revenant aux bases de sa linguistique, cette enquête peut aussi être l’occasion de l’aborder dans la perspective d’une métarecherche comparable à celle dont les errements récents de la biomédecine ont favorisé l’émergence.
#*Abstract
#**Gustave Guillaume’s followers have often been blamed for their opportunistic approach, choosing to single out in his theory those elements that seemed to bear a resemblance to generative grammar, or later on to utterer-centered models or even to cognitive semantics.
#**Today again, some question the possibility of finding some inkling of a language enaction logic in his published works. Those works having been written before the 1960s, there doesn’t seem however to be much chance of finding any early sign of such a perspective. Yet, if one goes back to the basis of his linguistic theory, such a study could well create the conditions for a a new global perspective such as the one that has emerged from the recent misteps of biomedical research.
# 2014 : « La neurosémantique épistémique de Maurice Toussaint (1936-2010) : une théorie cognitivo-énonciative inspirée de Gustave Guillaume (1883-1960) », Synergies Europe, Revue du GERFLINT (Groupe d’études et de recherches pour le français langue internationale), 9 (Énonciation et neurosciences cognitives, Abdou Elimam éd.), p. 45-70, disponible en ligne : <http://gerflint.fr/Base/Europe9/tollis.pdf>.
#*Résumé
#**Valette a bel et bien intégré la neurosémantique épistémique de M. Toussaint dans ses Linguistiques énonciatives et cognitives françaises (2006 [2001]). Cette catégorisation critique et argumentée justifie donc déjà qu’on aborde cette théorie originale sous la rubrique de l’énonciation. Mais en plus, comme son créateur l’a on ne peut plus explicitement indiqué, le préfixe neuro- qu’il utilise pour la désigner, sans doute bien avant que les neurosciences aient conquis la place qui de nos jours est la leur, invite à voir en quoi et comment elle peut en être rapprochée. C’est donc essentiellement sous ces deux angles que cette théorie sera examinée ici, sans s’occuper de l’engagement quasiment militant contre l’arbitrarité du signe dont elle a parallèlement été accompagnée.
#*Abstract : Maurice Toussaint’s epistemic neurosemantics (1936-2010) : a cognitive, speaker-centered theory inspired by Gustave Guillaume (1883-1960)
Valette did integrate M. Toussaint’s epistemic neurosemantics in his collection of French cognitive and speaker-centered linguistic theories (2006 [2001]). Such a reasoned critical categorisation is ample justification for an analysis of Toussaint’s original theory from a speaker-centered point of view.Moreover, as explicitely indicated by its creator, the choice he made to qualify it through the prefix « neuro- », well before neurosciences had acquired the prominent position they have today, is an incentive to search the possible connections between the two models. It is essentially from these two perspectives – cognitive and speaker-centered – that Toussaint’s theory will be examined in this paper, leaving aside his parallel, quasi-militant involvement against the arbitrariness of the linguistic sign.
# 2014 : « La métaphore revisitée : Le processus métaphorique selon la neurosémantique épistémique de Maurice Toussaint (1936-2010) », Publif@rum [Gênes], 23 (Les Avatars de la métaphore, Elisa Bricco et alii (éds), disponible en ligne depuis le 11/05/2015 : <www.publifarum.farum.it/ezine_articles.php?publifarum=e56b7f7bc8db12695fd2cce98f266d83&art_id=319> ou <www.publifarum.farum.it/ezine_articles.php?art_id=319>.
#*Résumé
#**L’engagement de Maurice Toussaint contre l’arbitraire du signe – une problématique qui redevient d’actualité –, semble toujours mal connu ou carrément ignoré, bien qu’il ait donné lieu à la publication tardive de son livre en 1983. Il en va de même pour sa théorie linguistique originale, la neurosémantique épistémique, partie mais évadée de la psychomécanique du langage guillaumienne stricto sensu. Encouragée par les recherches sur les formes sémantiques, elle a notamment abordé la métaphore en des termes dynamiques plutôt nouveaux, dans la mesure où elle en fait le fruit initial d’un processus d’engendrement du sens, et non son avatar sémantique tardif et dérivé.
#**Avec ses échos au sein d’autres approches du sens verbal, c’est cette démarche qui sera présentée ici, avec la certitude qu’elle ne manquera pas d’alimenter le débat.
#*Abstract : The metaphor revisited : The metaphorical process according to Toussaint’s epistemic neurosemantics (1936-2010)
#**Maurice Toussaint’s commitment against the principle of the arbitrary nature of the sign – a questioning that is coming back into light – still seems poorly understood or even totally ignored, even if it led to the late publication of his book in 1983. The same can be said about his original linguistic theory, epistemic neurosemantics, which is derived – and at the same time stands apart – from the most classic tenets of Guillaume’s psychomecanics of language. Stimulated by research on semantic forms, it deals, among other topics, with the metaphor in dynamic and rather innovative terms, in so far as it considers it as the initial product of the meaning generating process and not as one of its late and derivative semantic outputs.
#**This is the line of thinking that is presented here, together with the echoes that can be found in other approaches of verbal meaning. It will no doubt contribute to the ongoing debate.
# 2014 : « Gustave Guillaume relu par Maurice Toussaint : filiation revendiquée, réévaluation critique et exploitation originale », Studii de Ştiinţă şi Cultură [Études de Science et de Culture, Universitatea de Vest « Vasile Goldiş » din Arad (Roumanie)], X/2 = 37 (Perspectives psychomécaniques sur le langage et son acquisition. Actes du XIIIe congrès de l’Association internationale de psychomécanique du langage, Naples, 20-22 juin 2012), p. 179-188, disponible en ligne : <www.revista-studii-uvvg.ro/index.php?option=com_content&view=article&id=799:gustave-guillaume-revisited-by-maurice-toussaint--claiming-filiation-while-critically-reevaluating-and-originally-exploiting-the-theory&catid=74:volumul-x-numarul-2-37-2014>.
#*Résumé
#**Longtemps la neurosémantique (analytique puis épistémique) de Maurice Toussaint est demeurée sans véritable écho parmi les psychomécaniciens. Fort heureusement, les choses semblent désormais changer, et son engagement parallèle contre l’arbitraire du signe au moins soulève l’intérêt de la génération montante. Certes, cette théorie originale s’est engagée et engage sur des chemins encore peu pratiqués au moment de sa création ; certes, son matérialisme corticocérébral et son optique oscillatoire ont de quoi dépayser le linguiste formé au structuralisme. Elle n’en procède pas moins directement des propositions de Gustave Guillaume, et si M. Toussaint en a critiqué et rejeté certaines, s’il les a confrontées ou combinées à d’autres avant d’en offrir des réinterprétations ou des extrapolations personnelles, globalement il n’a jamais cessé de lui rendre un hommage soutenu. On peut donc estimer qu’il mériterait d’être reconnu comme l’un des meilleurs défenseurs scientifiques et des plus percutants champions de la cause guillaumienne.
#*Abstract
#**For a long time Maurice Toussaint’s (analytic then epistemic) neurosemantics met with little response from the followers of Guillaume’s psychomecanics. Fortunately, things seem to be changing, and at least his parallel commitment against the principle of the arbitrary nature of the sign arouses some interest in the new generation. Admittedly, this original theory has developed along lines that were little explored when it was first laid out. Moreover its corticocerebral materialism together with its oscillatory perspective have much to puzzle a structuralist linguist. Yet there is no denying that it derives straight from Gustave Guillaume’s tenets: if Maurice Toussaint did criticize and reject some of them, if he confronted or combined them with other propositions to come up with personal interpretations or extrapolations, globally he never stopped paying him high tribute. He should therefore deservedly be considered as one of the best scientific supports and one of the most efficient.
# 2013 : « Présentation », Cuadernos de filología francesa [Cáceres], 24 (Hommage à Maurice Toussaint, F. Tollis éd.), p. 11-38.
# 2010 : La déflexité romane et la personne dans les écrits publiés de Gustave Guillaume (domaine nominal) », Langages, 178 (La Déflexivité, Didier Bottineau, Louis Begioni éds), p. 21-41.
#*Résumé
#**G. Guillaume, le processus responsable de la déflexité fait qu’un mot en lui-même viable se voit confier une mission non lexicale et un rôle d’adjuvant : il devient « grammaticalisé ». Tout spécialement identifiée dans l’article antéposé mais également dans les prépositions, la déflexité est évidemment à mettre en rapport avec la déclinaison.
#**Guillaume l’a abondamment reliée au statut de la personne, car c’est là ce qui régit le mode de fonctionnement et l’associabilité du mot constitué. En termes généraux, la déflexivisation aboutit à démettre l’endomorphologie d’un mot de fonctions qu’elle ne peut plus assumer seule – même si elle les affiche toujours – et à les confier, cumulativement ou compensatoirement, en dehors de lui et en syntaxe, à un terme additionnel adjoint mais impératif.
#**On n’abordera guère ici que la facette nominale du phénomène.
#*Abstract : Deflexivity and the« person » in Romance languages : an overview of the nominal domain in Gustave Guillaume’s published work »
#**For G. Guillaume, the process that triggers deflexivity results in the fact that words that are lexical entities endorse a non lexical, auxiliary function : they are « grammaticalized ». Examplified by preposed articles and prepositions, deflexivity should be related to declension.
#**All through his work Guillaume explicitely related deflexivity to the status of the person, for that is what controls functioning and associating modes of any materialized word. In general terms, the result of deflexivisation is that the inner structure of the affected word is deprived of functions it can no longer assume alone – even if it still signals them – and those functions have to be taken over syntactically by an additionnal adjunct, whether on a cumulative or compensatory basis.
#**Only the nominal aspect of the phenomenon will be dealt with here.
# 2010 : « La linguistique de Gustave Guillaume : de l’opérativité à la socio-opérativité ? », Cahiers de praxématique, 2008, 51 (Gustave Guillaume. Opérativité et discours. Le sujet parlant, J.-Cl. Coquet éd.), p. 131-154, disponible en ligne : <https://journals.openedition.org/praxematique/1073>.
#*Résumé
#**Surtout pour son époque, l’une des caractéristiques les plus originales de la linguistique de Gustave Guillaume est de miser sur l’opérativité, même si elle ne va pas sans ruptures. Elle ne se limite pas à proposer du langage et de son utilisation une représentation étagée : de l’ensemble des phénomènes qui le constituent et de ses modes d’exploitation, elle fait des processus et suggère de les analyser toujours et partout en les rapportant à l’axe de leur construction, lui-même indexé sur du temps.
#**Si ce premier aspect est depuis longtemps admis, il est visiblement moins connu, en revanche, que, malgré son enfermement apparent dans le système et sa genèse, Guillaume a aussi accordé une certaine place non seulement à la nature fatalement interindividuelle du discours, mais aussi à la dimension sociale de la langue en tant que « structurologie regardante » ponctuelle. Certes, il a toujours protesté contre le trop grand cas qui est parfois fait de cette dimension et constamment revendiqué, pour la bonne compréhension du système, la priorité du rapport de l’homme à l’univers sur sa relation avec ses semblables. Néanmoins, et pas seulement pour sa strate sémiologique, il a régulièrement et clairement admis la pression de conditionnements environnementaux sur l’idiomaticité du langage ; il a même fait état de ce que le caractère provisionnel de la langue lui confère un indéniable « hypo-pragmatisme », en grande partie dû à ce qu’elle est avant tout faite pour servir. De toute manière, en dépit de son abstraction, la langue ne saurait rester imperméable à ses exploitations anecdotiques : outre qu’elle en procède, elle s’y ressource en permanence.
#**Assez vite après la disparition du fondateur de la psychomécanique, plusieurs de ses successeurs n’ont pas hésité, chacun à sa manière, chacun avec des préoccupations propres, à exploiter cette dimension fortement anthropogénétique, dans laquelle ils ont trouvé une indéniable ouverture en direction de l’énonciation et d’une appréhension carrément sociohistorique de la langue et du discours.
#**L’objectif de la présente réflexion n’est donc pas de revenir sur ces différents infléchissements plus ou moins importants, mais de rappeler ce qui, dans les écrits publiés de son créateur, peut induire une lecture d’abord anthropo-opérative et partiellement continuiste, mais aussi, sans gauchissement excessif, une lecture socio-opérative de la théorie guillaumienne.
# 2007 : « Krassimir Mantchev et son approche unifiée du langage », Langages (L’École guillaumienne de Bulgarie, Francis Gandon, Assen Tchaouchev éds), 165, p. 65-81.
#*Résumé
#**Après avoir revendiqué son autonomie, Rastier a concouru à unifier la sémantique linguistique, lexique, syntaxe profonde et structures textuelles comprises. Antérieurement, Mantchev, de son côté, a travaillé à une analyse du français qui vaille pour l’ensemble de ses composantes. Et, parmi les axes sur lesquels sa structurologie et sa syntaxe sémantiques se sont constituées, certains ne sont pas sans rappeler la démarche du précédent : un abord du langage fondé sur sa sémanticité généralisée, la recherche d’approches transversales susceptibles de brouiller la stratification habituelle de sa description et d’aider à unifier son étude, le recours à des procédures d’analyse à la fois opératives et itératives.
#**La linguistique fondamentalement sémantique qu’il a ainsi élaborée s’attaque à l’idiomaticité des langues et couvre toutes les « articulations propres » qui en constituent la « totalité signifiante », abordant d’un même esprit la construction des formes qu’elles incluent, des notions qui y circulent et, au-delà, l’élaboration du sens, du palier le plus bas à celui du texte.
#**Ce sont ces aspects qui sont ici abordés.
#*Abstract
#**After claiming his autonomy, Rastier contributed to unifying linguistic semantics, in a model that included the lexicon, deep syntax as well as textual structures. Before him, Mantchev too worked on an analysis of French that could account for all of its components. And, some of the axes he built his structurology and his semantic syntax on have a lot in common with Rastier’s own : a perspective on language based on its generalized semanticity, a search for transversal approaches that could blur the usual stratification of its description and help unify its study, and the use of procedures of analysis that are both operative and iterative.
#**The fundamentaly semantic linguistics he thus created is concerned with the idiomaticity of languages : it deals with all the "specific articulations" that constitute its « signifying whole », encompassing in a single movement the building up of their forms, of the notions that circulate through them, and the construction of meaning, from the lowest level to the level of texts.
#**Those are the aspects that are dealt with here.
# 2006 : « Le grammème comme signe chez Gustave Guillaume : une biunivocité idéale souvent prise en défaut (sémiologie / systématique linguistiques et analogie) », Cahiers de linguistique analogique [Dijon], 2, p. 5-40, disponible en ligne : <https://docs.google.com/viewer?a=v&pid=sites&srcid=ZGVmYXVsdGRvbWFpbnxjYWhpZXJzbGluZ3Vpc3RpcXVlYW5hbG9naXF1ZXxneDoxYTA5MzMxODAxZTQxOThi>.
# 2000 : « La description du castillan chez Antonio de Nebrija (1492) : entre héritage et innovations », Bulletin de la Société de linguistique de Paris, 95/1, p. 417-442.
#*Résumé
#**A. de Nebrija s’est fait connaître de ses contemporains comme grammairien. Riche, mais apparemment opaque, le métalexique descriptif de sa grammaire du castillan reste d’une étude délicate, en dépit des tentatives d’élucidation dont il a déjà bénéficié à partir des textes des grammairiens latins qui l’ont inspiré. L’homme du xve siècle qui se penchait sur un vernaculaire érigé en objet d’étude était d’emblée confronté au problème de savoir quels services il pouvait attendre de la tradition. Il faut donc vérifier si Nebrija a réussi à l’adapter au castillan, et si oui, de quelle façon. Dans le cas contraire, il reste à voir comment il évoque les réalités linguistiques dont les Anciens n’avaient pas eu à rendre compte.
#**L’étude strictement interne de ce traité semble être la seule qui permette d’observer comment ce legs commun a été utilisé, et d’en évaluer l’économie d’ensemble – sa cohésion et sa cohérence propres. Dans la Gramática, la rigueur peut certainement être prise en défaut. Cependant, expliquer sa possible opacité par l’indécision conceptuelle de son auteur doit être la dernière des solutions à envisager. Justement, l’observation exhaustive du texte lui-même permet déjà de comprendre de manière acceptable l’utilisation référentielle des termes les plus “techniques ».
#**Néanmoins, Nebrija n’a pas hésité à innover dans son analyse et dans le métavocabulaire qu’elle réclamait, et, en cas de besoin, à proposer des néologismes. Mais toujours il le fait en parfaite connaissance de cause, avec prudence et mesure.
#*Resumen : La descripción del castellano por Antonio de Nebrija (1492) : Entre herencia e innovación
#**A. de Nebrija se hizo célebre entre sus contemporáneos como gramático. Rico, pero a veces falto de transparencia, el metaléxico descriptivo de su gramática del castellano sigue siendo difícil de estudiar, pese a las tentativas de aclaración de que ha sido objeto a partir de los textos de los gramáticas antiguos en que se inspiró. El hombre del siglo xv que se interesaba por algún vernacular instituido en objeto de estudio se hallaba en seguida confrontado al problema de saber qué servicios podía prestarle la tradición. En consecuencia, hace falta averiguar si Nebrija llegó a adaptarla al castellano, y, cuando lo consiguió, cómo. En el caso opuesto, queda por ver cómo presenta las realidades lingüísticas de que los Antiguos no tuvieron que dar cuenta.
#**El examen estrictamente interno de este tratado parece ser la única cosa que permita observar cómo se utilizó este legado común, y valorar su economía global – su cohesión y coherencia propias. No cabe duda de que la Gramática no presenta un rigor constante. Sin embargo, explicar su posible opacidad por la incertidumbre conceptual de su autor debe ser la última de las soluciones contempladas. Precisamente, la observación exhaustiva del mismo texto ya permite entender de manera aceptable el uso referencial de los términos más « técnicos ».
#**Nebrija, no obstante, no vacila en innovar en su análisis y en el metavocabulario que éste exigía, y, en caso de necesidad, en proponer algunos neologismos. Pero siempre lo hace con conocimiento de causa, con precaución y medida.
#*Abstract : The description of Castilian by Antonio de Nebrija (1492) :
A compromise between inheritance and innovation
#**A. de Nebrija acquired fame among his contemporaries as a grammarian. Copious, but apparently opaque, the descriptive metalanguage of his Castillian grammar remains a difficult matter to study, in spite of the various attempts to elucidate it that have already been undertaken, starting from the texts of the Latin grammarians who inspired it. The xvth century scholar who grappled with a vernacular freshly set up as a subject matter was from the start confronted with the problem of ascertaining what help he could expect from the tradition. It is therefore essential to check if Nebrija succeeded in adapting it to Castillan, and if so how he proceeded. If not, there remains to be seen how he dealt with those facts that the Ancients did not have to account for.
#**A strictly internal study of that treatise seems to be the only suitable way to observe how that common legacy was used, and to assess its general harmony – its inner cohesion and coherence. The Gramática’s logic and exactness can certainly be found fault with. Nevertheless, to account for its possible opacity by alleging a conceptual uncertainty on the part of its author remains the last solution to be contemplated. Indeed, an exhaustive observation of the text itself already leads to an acceptable understanding of the referential use of the most « technical » terms.
#**Nebrija, however, did not refrain from innovating both in his analysis and the metavocabulary that it required, nor did he, when the need arose, refrain from suggesting neologisms. But that, he always did quite in full awareness of what he was doing, using prudence and discretion.
# 1998 : « Le pragmatisme et l’hypo-pragmatisme du langage selon Gustave Guillaume », Histoire, Épistémologie, Langage, 20/1, p. 133-146, disponible en ligne : <www.persee.fr/doc/hel_0750-8069_1998_num_20_1_2699> ou <kaali.linguist.jussieu.fr/HEL_public_domain/HEL_20_1/HEL_20_1_pp133-146.pdf>.
#*Résumé
#**Gustave Guillaume a consacré l’essentiel de sa réflexion à l’étude des systèmes qui composent le pôle puissantiel du langage. Cela ne doit cependant pas faire oublier, que très tôt, dès son travail de 1919 sur l’article français, il avait élaboré une théorie du langage qui prenait en compte la dimension énonciative.
#**Cette orientation, longtemps mal connue, a déjà été clairement dégagée à la fin des années 1970 par A. Joly & D. Roulland. Leur exégèse insistait surtout sur la présence du sujet énonciateur dans cette approche, sur la nature opérative de l’acte de langage jusqu’à son aboutissement au dit effectif, et sur ce que cela implique de conditions permanentes en deçà de cette production.
#**Dans le prolongement de cette étude et en se penchant de près sur la distribution des termes pragmatique et pragmatisme dans l’œuvre publiée de Guillaume, on se propose ici de rappeler comment, avec le vocable qui opère remarquablement la synthèse de ses deux pôles extrêmes, le langage y apparaît comme imprégné d’utilitarisme, aussi bien en tant qu’exploitation intéressée que comme moyen provisionnel.
#*Abstract
#**Gustave Guillaume devoted most of his thinking to the study of the systems which make up the potential pole of language. For all that, one shouldn’t overlook the fact that very early – as early as in 1919 – in this work on the French article, he elaborated a theory of language taking into consideration the factor of speaker-hearer relationship in the activity of utterance.
#**That aspect of this work, which long failed to be appreciated, was clearly brought out at the end of the seventies by A. Joly & D. Roulland. Their exegesis was mainly concerned with the attention bestowed in that kind of approach on the traces left by the utterer, with the nature of the speech act involving various operations until its outcome – the discourse actually uttered –, and with all the permanent conditions implied before the act of utterance can take place.
#**In prolongation of that paper, starting from a close study of the distribuition of the terms pragmatique and pragmatisme in the published works by Guillaume, we here propose to point out how, thanks to the vocable which achieves a remarkable synthesis between its two extreme poles, language is shown as impregnated with utilitarism, whether it is considered as an interested application or as a provisional means.
# 1998 : « La traductologie comme révélateur des variations de l’actualisation ? (À propos du un‑s adjoint de l’espagnol) », dans Jeanne-Marie Barbéris,Jacques Bres, Paul Siblot (éds), De l’actualisation, Paris, CNRS Ed., p. 119-135.
#*Résumé
#**Les solutions que le traducteur choisit pour le texte-cible découlent fatalement de l’interprétation qu’il fait du texte-source, largement déterminée par la manière dont ses éléments constitutifs sont finalement actualisés. Par ailleurs, une même unité de la langue de départ reçoit à l’arrivée des traitements divers, variables d’une traduction et d’une occurrence à l’autre. On peut donc se demander si l’examen de cette variation ne peut pas éclairer sur cette actualisation même, surtout dans le cas d’une unité fortement grammaticalisée comme ici le un- adjoint de l’espagnol.
# 1995 : « Remarques sur les traductions françaises de un‑s devant les noms du type pluralia tantum dans Las Últimas banderas d’A. M. de Lera », Ibérica [Paris -Sorbonne], nouv. série, 55 (Le Linguiste et les traductions), p. 189-206.
# 1992 : « Remarques sur l’approche et la présentation des dérivés du nom dans la Gramática castellana de Nebrija : vers une (re)lecture linguistique », Bulletin hispanique, 94/2 (Hommage à Nebrija 1492-1992), p. 411-462.
# 1988 : « L’ordre des éléments des énoncés en V + se + SN dans la littérature grammaticale » [1984], Archivum, 1987-1988, 37-38 (Miscelánea filológica dedicada al Profesor Jesús Neira), p. 417-457.
# 1985 : « Génesis mental del sustantivo », Nueva Revista de filología hispánica [México] 1985-1986, 34/1, p. 23-47.
# 1984 : « À propos des circunloquios du verbe castillan chez Nebrija : le nombre participial infinito » (1982), Historiographia linguistica XI/1-2, p. 55-76. [Réimprimé dans Antonio Quilis, Hans-J. Niederehe (eds.), The History of linguistics in Spain, Amsterdam - Philadelphie, J. Benjamins Publishing Company (« Amsterdam Studies in the theory and history of linguistic science, III : Studies in the history of the language sciences » 34), 1986, p. 55-76.]
# 1980 : « Les énoncés en se dans la littérature grammaticale », Revista de filología española [Madrid], 60, p. 173-266.
# 1971 : « L’orthographe du castillan d’après Villena et Nebrija », Revista de filología española [Madrid], 54, p. 53-106.
!!! Article dans des revues internationales ou nationales sans comité de lecture (SCL) :
# 1996 : « La genèse du vocable indo-européen chez Gustave Guillaume. De la matière et de la forme », Kalimat Al-Balamand [Tripoli, Liban], 3, p. 83-126.
!!! Comptes rendus
# 2006 : de Kœrner E. F. K. et Niederehe Hans-Josef, History of linguistics in Spain / Historia de la lingüística en España II, Amsterdam et Philadelphie, J. Benjamins (« Amsterdam Studies in the theory and history of linguistics science », Series III : « Studies in the history of the language science » 100), [2001], 463 p., Histoire, Épistémologie, Langage, 28/1, p. 177b-183a.
# 2001 : de Niederehe, Hans-Josef, Bibliografía cronológica, la gramática y la lexicografía del español (BICRES II). Desde el año 1601 hasta el año hasta el año 1700, Amsterdam et Philadelphie, J. Benjamins (« Amsterdam Studies in the theory and history of linguistic science, III : Studies in the history of the language sciences 91 »), 1999, 472 p., Histoire, Épistémologie, Langage, 23/2, p. 177-178.
# 2001 : de Petit i Aguilar, Joan, Gramàtica catalana. Edició i estudi a cura de Jordi Ginebra, Barcelone, 1998, Institut d’estudis catalans (« Bilioteca filologica » 35), Histoire, Épistémologie, Langage, 23/1, p. 185-188.
# 2000 : de Camprubi, Michel, Questions de linguistique romane contrastive : espagnol, catalan, français, Toulouse, Presse universitaires du Mirail (« Interlangues, linguistique et didactique »), 1999, 290 p., Bulletin hispanique, 102/1, p. 312-320.
# 2000 : d’Esparza Torres, Miguel Ángel, Niederehe, Hans-Josef, Bibliografía nebrisense. Las obras completas del humanista Antonio de Nebrija desde 1481 hasta nuestros días, Amsterdam et Philadelphie, J. Benjamins (« Amsterdam Studies in the theory and history of linguistic science, III : Studies in the history of the language sciences » 90), 1999, Histoire, Épistémologie, Langage, 22/1, p. 192-196.
# 1997 : d’Esparza Torres, Miguel Ángel, Las Ideas lingüísticas de Antonio de Nebrija, Münster, Nodus Publikationem, 1995, 281 p., Histoire, Épistémologie, Langage, 19/1, p. 188-191.
# 1996 : de Binotti, Lucia, La teoría del « castellano primitivo ». Nacionalismo y reflexión lingüística en el Renacimiento español, Münster, Nodus Publikationem, 1995, 186 p., Histoire, Épistémologie, Langage, 1996, 18/2, p. 210-214.
# 1968 : de Bahner, Werner, La lingüística española del Siglo de Oro. Aportaciones a la conciencia lingüística en la España de los siglos XVI y XVII, Madrid, Ed. Ciencia nueva, 1966, Bulletin hispanique, LXX/1-2, p. 203-206. disponible en ligne : <http://www.persee.fr/doc/hispa_0007-4640_1968_num_70_1_4135_t1_0204_0000_2>.
.cm-s-tomorrow-night-eighties.CodeMirror { background: #000000; color: #CCCCCC; }
.cm-s-tomorrow-night-eighties div.CodeMirror-selected { background: #2D2D2D; }
.cm-s-tomorrow-night-eighties .CodeMirror-line::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-line::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span::-moz-selection, .cm-s-tomorrow-night-eighties .CodeMirror-line > span > span::-moz-selection { background: rgba(45, 45, 45, 0.99); }
.cm-s-tomorrow-night-eighties .CodeMirror-gutters { background: #000000; border-right: 0px; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker { color: #f2777a; }
.cm-s-tomorrow-night-eighties .CodeMirror-guttermarker-subtle { color: #777; }
.cm-s-tomorrow-night-eighties .CodeMirror-linenumber { color: #515151; }
.cm-s-tomorrow-night-eighties .CodeMirror-cursor { border-left: 1px solid #6A6A6A; }
.cm-s-tomorrow-night-eighties span.cm-comment { color: #d27b53; }
.cm-s-tomorrow-night-eighties span.cm-atom { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-number { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-property, .cm-s-tomorrow-night-eighties span.cm-attribute { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-keyword { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-string { color: #ffcc66; }
.cm-s-tomorrow-night-eighties span.cm-variable { color: #99cc99; }
.cm-s-tomorrow-night-eighties span.cm-variable-2 { color: #6699cc; }
.cm-s-tomorrow-night-eighties span.cm-def { color: #f99157; }
.cm-s-tomorrow-night-eighties span.cm-bracket { color: #CCCCCC; }
.cm-s-tomorrow-night-eighties span.cm-tag { color: #f2777a; }
.cm-s-tomorrow-night-eighties span.cm-link { color: #a16a94; }
.cm-s-tomorrow-night-eighties span.cm-error { background: #f2777a; color: #6A6A6A; }
.cm-s-tomorrow-night-eighties .CodeMirror-activeline-background { background: #343600; }
.cm-s-tomorrow-night-eighties .CodeMirror-matchingbracket { text-decoration: underline; color: white !important; }
Faire attention aux champs suivants :
*''Titre'' : Titre de la traduction [Titre translittéré si écriture non latine ''et'' si disponible]
*''Auteur(s)'' : [auteur] correspond à l’auteur original ; bien changer le champs en [traducteur] pour ce dernier. Quand une même personne est ''à la fois éditeur et traducteur'' d’un ouvrage, il faut mentionner son nom deux fois avec chacun des champs « éditeur » et « traducteur ». Le style CSL traduira par la mention « Édité et traduit par... ».
*''Extra'' : [traduction de `<i>`Titre original`</i>`]
@@.note
docid #@@color:yellow;background-color:black;{{!!docid}}@@ | tampid #@@color:yellow;background-color:black;{{!!tampid}}@@ | [[membres (page du labo)|https://tree.univ-pau.fr/fr/organisation/membres/enseignants-chercheurs.html]] | [[Collection HAL|https://hal-univ-pau.archives-ouvertes.fr/TREE]] | [[idHAL|idHAL-TREE]]
@@
!! Liste des Publiants (dans le wiki)
<<list-links "[tag[TREE]tag[publiant]]">>
!! Site web
!!! Permanents
* Laurent ABADIE
* Xavier ARNAULD DE SARTRE
* Evelyne BARTHOU
* Vincent BERDOULAY
* Olivier BESSY
* Eva BIGANDO
* Christine BOUISSET
* Jamal BOUOIYOUR
* Fabien CANDAU
* Patrice CASSAGNARD
* Sébastien CHAILLEUX
* Marion CHARBONNEAU
* Bruno CHARLIER
* Sylvie CLARIMONT
* Marlène CUYALAA
* Jacques DALEAS
* Isabelle DEGREMONT
* Gaëlle DELETRAZ
* Gérard DENIS
* Lise DESVALLEES
* Hélène DOUENCE-JOUHET
* Maylis DOUENCE
* Camille DROUILLER
* Louis de FONTENELLE
* Bertrand GONOT
* Jean GOURDOU
* Célia GUENEBEAUD
* Carole HARITCHABALET
* Francis JAUREGUIBERRY
* Jacques JAUSSAUD
* Jocelyn LACHANCE
* Florence LACHET-TOUYA
* Danièle LAPLACE
* Virginie LARRIBAU-TERNEYRE
* Aurélie LAUNAY
* Jacques LE CACHEUX
* Arnaud LECOURT
* Nicole LOMPRE
* Julien MATTERN
* Jean-Baptiste MAUDET
* Delphine MONTAGNE
* Jean-Marc MONTAUD
* Isabelle MONTIN
* Alice MOULENE
* Olivier PERON
* Anne PERRIN
* Yves POINSOT
* Jean-Yves Puyo
* Julien REBOTIER
* Henri REGNAULT
* Serge REY
* Karine RODRIGUEZ
* Philippe TERNEYRE
* Frédéric TESSON
* Thao TRAN
* Jean-Michel UHALDEBORDE
!!! Post-Doctorants et Chercheyrs Associés
* Guillaume MARCHAND
* Milo VILLAIN
!!! Doctorants
|!code HCERES |!code Hcéres développé|
|ACL|Articles dans des revues internationales ou nationales avec comité de lecture répertoriées dans les bases de données internationales (ISI Web of Knowledge, Google Scholar, Harzing Publish or Perish, Pub Med...) (ACL)|
|ACLN|Articles dans des revues avec comité de lecture non répertoriées dans des bases de données internationales (ACLN)|
|ASCL|Articles dans des revues sans comité de lecture (ASCL)|
|C-ACTI|Communications avec actes dans un congrès international (C-ACTI)|
|C-ACTN|Communications avec actes dans un congrès national (C-ACTN)|
|C-COM|Communications orales sans actes dans un congrès international ou national (C-COM)|
|C-INV|Conférences données à l'invitation d'un Comité d'organisation dans un congrès national ou international (C-INV)|
|C-AFF|Communications par affiche dans un congrès international ou national (C-AFF)|
|OS|Ouvrage scientifique (OS)|
|COS|Chapitres d'ouvrages scientifiques (COS)|
|DO|Direction d'ouvrages (DO)|
|PV|Publications de vulgarisation (PV)|
|AP|autres productions (AP)|
|AV|articles de vulgarisation (AV)|
|OV|Ouvrages de vulgarisation (OV)|
|DOV|Direction d'ouvrage de vulgarisation (DOV)|
|COV|Chapitres d'ouvrages de vulgarisation (COV)|
|TH|Thèses (TH)|
|BRE|Brevets (BRE)|
|HDR|Habilitation à diriger des recherches (HDR)|
|!codes SCD|!développés|
|PRE/WP|Pré-publications ou documents de travail/Working papers (PRE/WP)|
|C-GP|Communications grand public (C-GP)|
|RAP|Rapports (RAP)|
|LOG|Logiciels (LOG)|
||Cours|
||Documents associés à des manifestations scientifiques|
|ChF|Chroniques - fascicules (ChF)|
|CA|Commentaires d'arrêts (CA)|
|Carte|Cartes (Carte)|
|MEM|Mémoires (MEM)|
|VID|Vidéos (VID)|
|!Autres Publi.|!codes SCD|!développés|
|AuPubli| |Autres Publications (AuPubli)|
|AuPubli|CR|Autres publications-Comptes-rendus d'ouvrage ou Note de lecture (CR)|
|AuPubli|ArtBlog|Autres publications-Articles de blog (ArtBlog)|
|AuPubli|NoticeDE|Autres publications-Notices d'encyclopédie ou de dictionnaire (NoticeDE)|
|AuPubli|Trad|Autres publications-Traductions (Trad)|
* `Déjà dans HAL`
* `doublon`
* `Compte-rendu`
* `Traduction`
* `Numéro spécial`
!!! Types HCERES (ici ceux [[répertoriés par la BnF|http://production-scientifique.bnf.fr/]]) ?
* `OS` : Ouvrages scientifiques
* `COS` : Chapitres d'ouvrages scientifiques
* `DOR` : Directions de revues
* `DOV` : Directions d'ouvrages
* `ACL` : Articles dans des revues internationales ou nationales avec comité de lecture répertoriées
* `ACLN` : Articles dans des revues avec comité de lecture non répertoriées
* `ASCL` : Articles dans des revues sans comité de lecture
* `C-ACTI` : Communications avec actes dans un congrès international
* `C-ACTN` : Communications avec actes dans un congrès national
* `C-COM` : Communications orales sans actes dans un congrès international ou national
* `C-INV` : Conférences données à l'invitation d'un Comité d'organisation
* `C-AFF` : Communications par affiche
* `OV` : Ouvrages de vulgarisation
* `COV` : Chapitres d'ouvrages de vulgarisation
* `AV` : Articles de vulgarisation
* `PAT` : Productions artistiques théorisées
* `OR` : Outils de recherche
* `AP` : Autres productions (voir supra)
* `TH` : Thèses de doctorat
---
pour `AP` , ajouter si nécessaire
* `C-GP` : communication grand public (valorisation, vulgarisation)
* `C-ORG` : organisation de journées d'études colloques...
!!! Direction d’ouvrages collectifs :
# E.Viana Martin, N.Kermele, M.-E.Chaves de Mello et J.-L.Jobim, ''Dialogues France-Brésil : circulations, représentations, imaginaires'', Puppa Presses de l’Université de Pau et des pays de l’Adour, Pau, `octobre 2018`.
# E.Viana-Martin et A.Lussier, Jean Genet: lectures en héritage, Méthode 19, Vallongues, décembre 2011.
# N.Laporte et E.Viana-Martin, Blaise Cendrars – Bourlinguer en écriture, Méthode 12, Vallongues, 2007.
# Regards croisés entre la France et le Brésil, études réunies par M.Guicharnaud-Tollis avec la collaboration de C.Benavent, V.Berdoulay, D.Bourmaud, A.Kouvouama, N.Laporte et E.Viana-Martin, Paris, L’Harmattan, 2008.
!!!Articles et notices :
# « ''Macumba dans le Sertão : quelles aventures brésiliennes pour la bande dessinée européenne ?'' », article écrit en collaboration avec J.Gallego, `dans` //Dialogues France-Brésil : circulations, représentations, imaginaires//, sld E.Viana Martin, N.Kermele, M.-E.Chaves de Mello et J.-L.Jobim, Puppa Presses de l’Université de Pau et des pays de l’Adour, Pau, `octobre 2018`, p.401-444.
# « ''Em busca de uma língua invencionada : Mia Couto entre duas línguas'' », `dans` //A literatura no encontro com o outro//, sld M.-E.Chaves de Mello, Curitiba, Editora CRV, `2018`, p.193-211.
# « ''La ville écrite'' », `dans` //Escritas Urbanas//, sld B.Fraenkel, C.Cumbe, F.Cozzolino, Maputo, Alcance Editores, `2015`, p.86-95.
# « Genet en fleurs », dans Le modèle végétal dans l'imaginaire contemporain, sld I.Cazalas et M.Froidefond , Strasbourg, Presses universitaires de Strasbourg, novembre 2014, p.197-207.
# Dictionnaire Jean Genet, dir. Marie-Claude Hubert, Champion, 2014, notices : « Autocensure » ; « Collage » ; « Espagne » ; « Java » ; « Madame Lysiane » ; « Morihien, Paul » ; « Réception brésilienne » ; « Réception espagnole » ; « Sénémaud, Lucien » ; « Voleur ».
# « A Idade viril : un livre-acte. Leiris au Brésil », dans Cahiers Leiris 3, Editions Les Cahiers, mai 2012, p.110-119.
# « Traduire L’Afrique Fantôme », article écrit en collaboration avec S.Côté, dans Cahiers Leiris 3, Editions Les Cahiers, mai 2012, p.121-126.
# « Journal et testament du voleur », dans Actes du colloque : Jean Genet – du roman au théâtre, sld M.-C.Hubert et M.Bertrand, Presses Universitaires de Provence, 2011, p.75-85.
# « L’héritage bibliophilique de Jean Genet », dans Jean Genet : lectures en héritage, sld E.Viana-Martin et A.Lussier, Méthode 19, Vallongues, décembre 2011, p.17-24.
# « Elle : l’héritage en pratique », dans Jean Genet : lectures en héritage, sld E.Viana-Martin et A.Lussier, Méthode 19, Vallongues, décembre 2011, p.99-106.
# « Le lecteur complice de Genet, ou l’éveil au sens caché de l’œuvre », dans Eveils, études en l’honneur de Jean-Yves Pouilloux, sous la direction de V.Fasseur, O.Guerrier, L.Jenny et A.Tournon, Editions Classiques Garnier, 2010, p.195-213.
# « La durée du voyage : navigation entre temps et espace chez Blaise Cendrars », dans Modernités: Poétiques de la durée, Presses Universitaires de Bordeaux, printemps 2010., p.157-166.
# « Brésil littéraire : l’écrit s’exp(l)ose », dans Le statut de l’écrit, sous la direction de C.Albert, A.Kouvouama et G.Prignitz, PUP, Pau, 2008, p.37-44.
# « Modernisme et concrétude , modèle et contre-modèle : anthropophagies franco-brésiliennes », dans Regards croisés entre la France et le Brésil, études réunies par M.Guicharnaud-Tollis avec la collaboration de C.Benavent, V.Berdoulay, D.Bourmaud, A.Kouvouama, N.Laporte et E.Viana-Martin, Paris, L’Harmattan, 2008, p.195-206.
# « Les voix de L’Or », dans N.Laporte et E.Viana-Martin, Blaise Cendrars – Bourlinguer en écriture, Méthode 12, Vallongues, 2007, p.79-85.
# « Poésie des ports du Brésil » dans C.Mayaux et A.Mantero, Van Rogger peintre et poète, Méthode 10, Vallongues, 2006, p.127-143.
# « L’éveil des sens dans les romans de Milton Hatoum », dans Crisol n°9, 2005 – Publication du C.R.I.I.A. Centre de recherches Ibériques et Ibéro-Américaines de l’Université Paris X, Publidix, Nanterre, 2006, p.139-148.
# « Les formes tourmentées de la passion héroïque dans Les Brigands, Hernani et Don Alvaro ou la force du destin », dans Méthode 5, revue de littératures, Agrégation de Lettres 2004, Vallongues, automne 2003, p.249-254.
# « Don Alvaro ou la vie distillée en malheur », dans Méthode 3, revue de littératures, Agrégation de Lettres 2003, Vallongues, automne 2002, p.279-284
# « La censure ou le cens de l’ineffable », dans Limites du langage : indicible ou silence, (Responsables du recueil : K.Cogard, A.Mura), L’Harmattan, 2002, p.223-230.
# « Les scénarios de Jean Genet : un film noir sur blanc », dans Op.Cit, revue de littératures française et comparée n°12, L’œuvre inachevée, PUP, printemps 1999, p.107-111.
# « Jean Genet : Notre-Dame déflorée », dans Nude or Naked ? Erotiques ou pornographiques de l’art, Figures de l’Art n°4, décembre 1999, Revue d’études esthétiques (Responsable de la rédaction : J.Sanchez, Rédacteur en chef : B.Lafargue), p.301-315.
!!! Articles dans revues internationales à comité de lecture
# « I passi di un poeta », Idra, Semestrale di Letteratura, Anno VI, n°7, Edizioni Anabasi, Milano (Italie), 1992
# « Un pantalon cousu de fil blanc, sur un essai de Samuel Beckett », revue Etudes françaises (Canada), février 2006
# « ''Leiris, l’image et le fantôme de la poésie'' », Littera, revue de la Société japonaise de langue et littérature française, Université de Tokyo, n°1 / `2018`.
!!! Articles dans revues nationales à comité de lecture
# « La peinture dans les mots (quelques remarques sur l’accrochage des toiles et l’installation du regard dans La Vie mode d’emploi) » `dans` Cahiers Georges Perec, n°6 – L’œil d’abord, G. Perec et la peinture, Ed. du Seuil, 1996
# « Jean-Pierre Verheggen », dans Prétexte, n°9, `n° spécial` Littérature de Belgique, septembre 1996
# « Un échange de bons procédés (Leiris/Roussel) », `dans` Critique, n° du cinquantenaire, Tome LII, n° 591/592, août-septembre 1996
# « Jean-Louis Giovannoni, entre l’arbre et l’écorce », dans Littérature, n°110, De la poésie aujourd’hui, Ed. Larousse, automne 1998
# « Identification d’une œuvre (Michaux Pléiade) », dans Le Nouveau Recueil, n°49, hiver 1998-1999
# « Sur une colonne absente », dans Prétexte, n° 19, printemps 1999
# « Leiris/Bacon, trait pour trait », dans Europe, `n° spécial` Michel Leiris, novembre 1999
# « Henri Michaux, la philosophie tirée par les cheveux » dans Littérature, éditions Larousse, décembre 2000, `numéro spécial` Littérature et philosophie.
# « Son épingle du jeu », revue Europe, `n°spécial` Henri Calet, novembre-décembre 2002
# Préface (« Hommage aux incompatibles ») préface au `numéro spécial` Les surréalistes belges, Europe, n°912, avril 2005
# « L’ombre de ce grand attendu, Georges Henein », Nouvelle revue française, avril 2005, n°573
# « Le poète, l’ombre et le clown », revue Intervalles (Suisse), n°73, `n° spécial` Francis Giauque, automne 2005
# « La règle de Saint-Benoît », dans le Cahier de l’Herne `Marguerite Duras` (n°86), 2005
# « Le stade Venaille », `préface` au `n° spécial` Franck Venaille de la revue Europe, printemps 2007
# « Réserve de Claude Esteban », `n° spécial` Claude Esteban, CCP n°13, CIPM, 2007
# « Les coups de tabac du caporal », ` n°spécial` Europe, Littératures de captivité, mars 2008
# « ''L’homme sans appartement'' », `n°spécial` Europe, Paul Gadenne - Existentialismes, `avril 2010`.
# « ''Au martinet du vent : Esteban et Chillida'' », `n° spécial` Europe, Claude Esteban, `mars 2010`.
# « ''Premières pages du livre des Armoires – sur le poème liminaire de Terraqué'' », `dans` //Littérature au Présent, mélanges en hommage à Francis Marmande//, Textuel, Université Paris-Diderot, `mai 2012`.
!!! Ouvrages individuels et direction d’ouvrages collectifs ou de numéros de revue
# Les Armes Miraculeuses, d’Aimé Césaire, éditions Zoé, collection « Le Cippe », 2008 (essai)
# L’Expérience Guillevic, `dir.` J-L. Giovanonni et P. Vilar, Ed. Deyrolle / Opales, 1994.
# Attentions à Michaux, `dir.` P. Vilar, Ed. Devillez, Bruxelles, 1995.
# Page, `n° spécial` //Poésies aujourd’hui//, `dir. et rédaction` P. Vilar, février 2001.
# Henri Michaux, le corps de la pensée, `dir.` E. Grossman, A.-E. Halpern, P. Vilar, Editions Farrago, 2002.
# `Coordination`, avec M. P. Schmitt, du `n°spécial` //Henri Calet// de la revue Europe, novembre-décembre 2002.
# Maurice Blanchot, récits critiques, `dir.` C. Bident et P. Vilar, éditions Farrago, 2003.
# L’espace, l’inachevé, Cahier Claude Esteban, `dir.` P. Vilar, Farrago, 2003.
# Les surréalistes belges, `n° spécial` de la revue ''Europe'', n°912, avril 2005.
# Franck Venaille, `n° spécial` de la revue ''Europe'', printemps 2007.
!!! Éditions critiques
# « Frêle bruit » : `Collaboration` à l’édition du volume 1 des `Œuvres de Michel Leiris`, //La Règle du jeu//, sous la direction de Denis Hollier, Gallimard, « Bibliothèque de la Pléiade », 2003.
# Œuvres de Georges Henein, Denoël, 2006 (direction, préface, établissement du texte).
# `Michel Leiris`, ''Écrits sur l’art'', Paris, CNRS, `2011` (`édition`, `préface` et `commentaire`).
!!! Actes publiés de conférences internationales, congrès et colloques…
# « Jean-Louis Giovannoni », `dans` //Quoi de neuf ? Ecrivains présents//, `n° spécial` de la revue La Licorne, UFR de Langues et Littératures de l’Université de Poitiers, octobre 1994
# « L’éminence de Miró », `dans` //L’Injonction silencieuse, Cahier Jacques Dupin//, Éd. de la Table ronde, 1995
# « Rebec d’Henri Thomas, ou le poète et le discret », `dans` //Henri Thomas, Cahier n° 13// des Éditions Le Temps qu’il fait, 1998
# « Bataille, Leiris, logiques du sang », `dans` //Bataille/Leiris, l’intenable assentiment au monde//, Editions Belin, 1999
# « Queneau et Leiris, sous X » `dans` //Leiris, Prévert, Pie rouge et autres couleurs//, `n° spécial` des Cahiers Les Amis de Valentin Brû, juillet 2000
# « Henri Michaux, mode et posture », `dans` //Henri Michaux, le corps de la pensée//, Éditions Farrago, 2002
# « Rien sur Robert : sur un coup de dé onomastique », `dans` //Surréalisme et pratiques textuelles//, études réunies par Emmanuel Rubio, (Centre de recherches sur le Surréalisme de Paris 3 – CNRS), éditions Phénix, 2002
# « L’imposture de l’imposture », `dans` //Diagonales sur Roger Caillois, Actes du Colloque Roger Caillois de Reims (2000)//, Éditions L’improviste, 2002
# « Homo homini humus », `dans` //L’espace, l’inachevé, Cahier Claude Esteban//, Farrago, 2003
# « Situ, t’imagines, Raymond Queneau, Saint-Glinglin et le situationnisme », `dans` //Raymond Queneau et les spectacles//, sous la direction de Daniel Delbreil, `n°8 spécial` de la revue Formules, `et` n°28-31 des Cahiers Les Amis de Valentin Brû, 2003, 2003
# « Pas en son nom (Comment lire le Michaux de Blanchot ?) », `dans` //Maurice Blanchot, récits critiques//, sous la direction de Christophe Bident et Pierre Vilar, éditions Farrago, 2003
# « Michaux et Prévert en terrain de connaissance », `dans` //Jacques Prévert, Frontières effacées, Actes du Colloque Prévert de l’Université Paris 3//, Éditions L’Âge d’homme, 2004
# « Le nom propre de la peinture », `dans` //Michel Leiris, le siècle à l’envers//, éditions Farrago, 2004
# « Archéologie d’un montage : L’Age d’homme entre les mots et les choses », `dans` //Lectures de Leiris – L’Age d’homme//, Rennes, PUR, 2004
# « Du trait au dessin, l’aventure de la flèche », `dans` //Yves Bonnefoy, lumière et nuit des images//, éditions Champ vallon, collection L’Or d’Atalante, 2005
# « Malraux et Picon, sentiers et chantiers », //Actes du Colloque Malraux et l’image//, Presses de la Sorbonne nouvelle, printemps 2006
# « Sur un récit de veille », `dans` //Henri Thomas, l’écriture du secret, Actes du Colloque Henri Thomas// réunis par Marc Dambre et Patrice Bougon, Éditions Champ vallon, 2007
# « Le Complexe du Roi Marc », `dans` //Gilbert Lély, la poésie dévorante, Actes du Colloque Gilbert Lély// réunis par Emmanuel Rubio, L’Âge d’homme, coll. « Mélusine », 2007
# « La Nâ, roman acéphale », `dans` //Audiberti, Chroniques, roman, théâtre, Actes du Colloque du centenaire Audiberti// réunis par Jeanyves Guérin, Editions Le Manuscrit, collection « L’Esprit des Lettres », 2007
# « Michel Leiris : roman familial et Révolution », en collaboration avec Louis Hincker, MCF d’histoire contemporaine à l’Université de Valenciennes, `dans` //Révolutions et mythes identitaires, Mots, violences, mémoire//, sous la direction d’Annie Duprat, Paris, Nouveau monde Éditions, Collection « Histoire culturelle », 2009.
# « ''Au martinet du vent : Esteban et Chillida''. », `n° spécial` Europe, //Claude Esteban//, mars 2010.
# « ''Le moins du monde : portrait de Beckett en critique d'art'' », `dans` D. Vaugeois et I. Rialland (dir.), //L'Écrivain et le spécialiste. Écrire sur les arts plastiques au XIXe et au XXe siècle//, Paris, Classiques Garnier, 2010.
# « ''Perret prend la mouche'' », //Actes du colloque Jacques Perret//, sous la direction de Marc Dambre, Roman 20/50, décembre 2013.
# « ''Littéralement et dans tous les sens : l’horizon rimbaldien de Capitale de la douleur'' », Méthode !, n°23, décembre 2013.
# « ''Histoire d’un texte et texte d’une histoire'' », `dans` //Une route infatigable. Cahier d’un retour au pays natal d’Aimé Césaire//. Aurélie Foglia, Laurent Zimmermann (dir.), Hermann, coll. Cahiers Textuel, 2014
# « ''Un surréaliste, même'' », `dans` //Le Dépossédé, lectures de l’œuvre de Jacques Abeille//, sous la direction d’Arnaud Laimé et Frédéric Martin, Le Tripode, `2016`
# « ''L’objectiviste et son autre : traductions et élaborations de la poésie française contemporaine dans l’anthologie Vingt poètes américains (1980) dirigée par Jacques Roubaud et Michel Deguy'' », //Les anthologies de littérature étrangère//, dir. F. Géal, Actes du coll. ENS Ulm, Classiques Garnier, `2017`
# « ''Arborer la poésie, Michaux et Arbres des Tropiques'' », //Actes du colloque de Rouen Vers en images//, sous la direction de Serge Linares, `2018`.
!!! Autres
# « Un collège de sociologie », in La lettre de l’APS, Association Professionnelle des sociologues, n°3, Paris, automne 1991
# « Le receveur de l’enregistrement », `in` //L’Expérience Guillevic//, Ed. Deyrolle / Opales, 1994
# « Jean-Louis Giovannoni », `dans` //Quoi de neuf ? Ecrivains présents//, `n° spécial` de la revue La Licorne, UFR de Langues et Littératures de l’Université de Poitiers, octobre 1994
# Préface à la réédition en fac similé de la revue surréaliste //L’Invention collective//, Ed. Devillez, Bruxelles, 1995
# « Note pour L’œuvre de la nuit », ''préface'' à //L’œuvre de la nuit//, de Joë Bousquet, Editions Unes, 1996
# « Jean-Pierre Verheggen », dans Prétexte, n°9, `n° spécial` Littérature de Belgique, septembre 1996
# « Henri Michaux, poète et peintre », `n° spécial` de la revue Pages, septembre-octobre 1996
# « Antillage de Wifredo Lam », préface, présentation et situation de Wifredo Lam, texte inédit en français de Michel Leiris, Ed. Devillez, Bruxelles, 1997
# « Unes histoire : les éditions Unes 1980-1997 », `dans` le catalogue Editions Unes, 1997
# « Préface » à Jacob Cow le pirate ou Si les mots sont des signes, de Jean Paulhan, Editions Deyrolle, 1997
# « Sauf son respect », préface à //Vers Henri Michaux//, de Bernard Noël, Editions Unes, 1998
# « Introduction et notices sur les peintres », Catalogue Leiris/Kahnweiler, le Limousin/les Combats, Espace Paul Rebeyrolle, Eymoutiers, juin 1998
# « Tasse de thé (Wolf Solent) », `dans` Théodore Balmoral, n°31, automne-hiver 1998.
# « Identification d’une œuvre (Michaux Pléiade) », `dans` Le Nouveau Recueil, n°49, hiver 1998-1999
# « Enfance rauque », dans Strates, Cahier Jacques Dupin, Éditions Farrago, 2000
# « Queneau et Leiris, sous X » dans Leiris, Prévert, Pie rouge et autres couleurs, n° spécial des Cahiers Les Amis de Valentin Brû, juillet 2000
# [Mathieu Bénézet, Pierre Bettencourt, Maurice Blanchard, Henri Bosco, (revue) Bifur, (revue) Botteghe oscure, (revue) Change, Bernard Collin, Antoine Emaz, Claude Esteban, Alfredo Gangotena, Jean-Louis Giovannoni, Dominique Grandmont, (revues) GLM, André Hardellet, Vicente Huidobro, (revue) Mesures, Jean-Luc Parant, André de Richaud], `articles` du Dictionnaire de Poésie moderne et contemporaine, sous la dir. de Michel Jarrety, PUF, 2001
# `Articles` « Alcools (Apollinaire), L’espace du dedans (Michaux), Capitale de la douleur (Eluard), Nadja (Breton), Poésies (Mallarmé), Les Chants de Maldoror (Lautréamont) », `dans` la Bibliothèque de L’Encyclopaedia Universalis, édition 2001
# « Babil et bibale » `dans` //Valère Novarina, théâtre du verbe//, José Corti, 2001
# « Surréalisme et utopie », `dans` //Dictionnaire des Utopies//, dir. Michèle Riot-Sarcey, Larousse, collection « Les référents », 2002
# « D’abord. (sur Nicolas Pesquès) », revue Scherzo, `n° spécial` Nicolas Pesquès, n°14-15, printemps 2002
# « Pastor fido », `dans` //Catalogue Gilbert Pastor//, éditions Joca Seria, Maison de la culture de Loire-Atlantique, Nantes, mars 2003
# « Les rouleaux de Rama », catalogue Emmanuel Collin, rétrospective, Musée des Sables d’Olonne, octobre 2004
# Préface à Robert Bréchon – //L’Age d’homme de Michel Leiris//, Ed. L’Improviste, 2004
# `Articles` « L’ombilic des limbes (Artaud) ; Plupart du temps (Reverdy) ; La Prose du transsibérien (Cendrars) ; Corps et biens (Desnos) », `dans` la Bibliothèque de L’Encyclopaedia Universalis, édition 2004
# « Le poète, l’ombre et le clown », revue Intervalles (Suisse), n°73, `n° spécial Francis Giauque`, automne 2005
# `Articles` « Du mouvement et de l’immobilité de Douve (Bonnefoy) ; Tombeau de Du Bellay (Deguy) ; Dans la chaleur vacante (Du Bouchet) », `dans` la Bibliothèque de L’Encyclopaedia Universalis, édition 2005
# `Article` « Surréalisme », //Notionnaire de l’Encyclopaedia Universalis//, édition 2006
# « Vortex, vertige », `dans` le catalogue //La bibliothèque idéale de Jean-Luc Parant//, Musée de Strasbourg, 2006
# « Passages d’un itinérant : Léopold Sédar Senghor », `dans` //Jardin des Prébendes Tu m’as touché l’épaule//, Hommage de la Ville et du Musée de Tours, 2007
# « Encorbellement de la couleur », `dans` la monographie //Jean René Moeschler, Œuvres//, Biro Editeur, 2008
# `Article` « ''POESIE (Livre de)'', `dans` //Dictionnaire Encyclopédique du Livre//, Editions du Cercle de la Librairie, Tome 3, 2010
# « ''Le temps virgule », postface'' à Bernard Collin, 22 lignes livre 100, Editions des Petits matins, 2010.
# « ''Il est rare qu’on lise un livre. », `Préface`'' à la réédition de //Aimé Césaire / Pablo Picasso - Corps perdu//, Editions Langlaude, mars 2011 [hors commerce].
# `Articles` « `Antonello` ; `Arétin` ; `Arikha` ; `Bacon` ; `Ballmer` ; `Bellini` ; `Bosch` ; `Caravage` ; `Duchamp` ; `Duthuit` ; `Elsheimer` ; `Friedrich` ; `Giorgione` ; `Greco` ; `Guggenheim` ; `Hayden` ; `Hayter` ; `Le Brocquy` ; `Le Monde et le Pantalon` ; `Mantegna` ; `Masson` ; `Munch` ; `Peinture` ; `Pérugin` ; `Rembrandt` ; `Rouault` ; `Tal Coat` ; `Trois Dialogues` ; `Van Gogh` ; `Van Velde (B)` ; `Van Velde (G)` ; `Vasari` ; `Vermeer` ; `Watteau` ; `Yeats (J.B.)` ; `Zurbaran` », `dans` le //Dictionnaire Beckett//, sous la dir. de Marie-Claude Hubert, Paris, Honoré Champion, 2011
# `Articles` : « `L’étrange mot d’` », « `Leonor Fini` », « `L’Atelier d’Alberto Giacometti` », « `Frans Hals` », « `Le secret de Rembrandt` », « `Ce qui est resté d’un Rembrandt…` », //Dictionnaire Jean Genet//, sous la dir. de Marie-Claude Hubert, Honoré Champion, 2014
# « ''Un essor », `préface`'' à la //Correspondance Jean Dubuffet / Valère Novarina, « Personne n’est à l’intérieur de rien »//, Strasbourg, L’Atelier Contemporain, 2014.
# « ''L’autre main de Joë Bousquet'' », Nunc, n°33, dossier Joë Bousquet, juin 2014
# « ''Moments d’une passion des images dans les années trente'' » ; « ''Wifredo Lam et la poétique des carrefours'' » ; « ''Au verso des images'' », `dans` le catalogue Leiris & Co, Centre Pompidou Metz - 3 avril au 14 septembre 2015, Gallimard – Centre Pompidou Metz, `2015`.
# « ''Les Saisons de Roland Barthes'' », Le Festin, n°95, `Automne 2015`.
# « ''Ériger la merveille », préface'' au catalogue //Pierre Bettencourt – rétrospective//, Galerie Les Yeux fertiles, rue de Seine, 11 mai- 11 juillet `2017`
# « ''La main heureuse », préface'' au catalogue //Zigor, Itzalean ikusi – Voir dans l’ombre – rétrospective//, Casino Bellevue de Biarritz, 17 février-2 avril `2018`
[[lien proxifié (UPPA)|http://apps.webofknowledge.com.rproxy.univ-pau.fr/WOS_GeneralSearch_input.do?product=WOS&search_mode=GeneralSearch&SID=E5JDyZ3weNaGlRHtxYB&preferencesSaved=]]
Site anglophone se servant d’autres moteurs de recherche tels PubMed et Medline pour ses recherches MAIS ''traduit tous les titres originaux en anglais'' ! Il faut donc rechercher le titre dans sa langue originale.
; Zotero
: `langue` : modifier sur deux caractères, voir [[Codes de langue]] (en, fr, de...)
: `extra` : vider le contenu du champs
[[Formation WoS - 12 mars 2019]]
iVBORw0KGgoAAAANSUhEUgAAAgAAAAIACAYAAAD0eNT6AAAAAXNSR0IArs4c6QAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsTAAALEwEAmpwYAAAEJGlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS40LjAiPgogICA8cmRmOlJERiB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiPgogICAgICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgICAgICAgICB4bWxuczp0aWZmPSJodHRwOi8vbnMuYWRvYmUuY29tL3RpZmYvMS4wLyIKICAgICAgICAgICAgeG1sbnM6ZXhpZj0iaHR0cDovL25zLmFkb2JlLmNvbS9leGlmLzEuMC8iCiAgICAgICAgICAgIHhtbG5zOmRjPSJodHRwOi8vcHVybC5vcmcvZGMvZWxlbWVudHMvMS4xLyIKICAgICAgICAgICAgeG1sbnM6eG1wPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvIj4KICAgICAgICAgPHRpZmY6UmVzb2x1dGlvblVuaXQ+MTwvdGlmZjpSZXNvbHV0aW9uVW5pdD4KICAgICAgICAgPHRpZmY6Q29tcHJlc3Npb24+NTwvdGlmZjpDb21wcmVzc2lvbj4KICAgICAgICAgPHRpZmY6WFJlc29sdXRpb24+NzI8L3RpZmY6WFJlc29sdXRpb24+CiAgICAgICAgIDx0aWZmOk9yaWVudGF0aW9uPjE8L3RpZmY6T3JpZW50YXRpb24+CiAgICAgICAgIDx0aWZmOllSZXNvbHV0aW9uPjcyPC90aWZmOllSZXNvbHV0aW9uPgogICAgICAgICA8ZXhpZjpQaXhlbFhEaW1lbnNpb24+NTEyPC9leGlmOlBpeGVsWERpbWVuc2lvbj4KICAgICAgICAgPGV4aWY6Q29sb3JTcGFjZT4xPC9leGlmOkNvbG9yU3BhY2U+CiAgICAgICAgIDxleGlmOlBpeGVsWURpbWVuc2lvbj41MTI8L2V4aWY6UGl4ZWxZRGltZW5zaW9uPgogICAgICAgICA8ZGM6c3ViamVjdD4KICAgICAgICAgICAgPHJkZjpCYWcvPgogICAgICAgICA8L2RjOnN1YmplY3Q+CiAgICAgICAgIDx4bXA6TW9kaWZ5RGF0ZT4yMDE0LTEwLTA2VDExOjEwOjQxPC94bXA6TW9kaWZ5RGF0ZT4KICAgICAgICAgPHhtcDpDcmVhdG9yVG9vbD5QaXhlbG1hdG9yIDMuMjwveG1wOkNyZWF0b3JUb29sPgogICAgICA8L3JkZjpEZXNjcmlwdGlvbj4KICAgPC9yZGY6UkRGPgo8L3g6eG1wbWV0YT4KXMj1UwAAQABJREFUeAHsvQmAHVd551u3V7VWS7Jkbba8yYvkBdsYsxnEFjYTAhN5YIYkZBmTIQMvMGFeXl7mWSLDTDKZBxnIJC9OMskEMmSiBAgEHDI4Fhi8YmxsJO+SjWRbtizJkrVL3f3+v/93TnX11e2WbCQjW+d03zrnfPv5qur7Tp2qW7eqSikeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHigeKB4oHnhePdB6XrUVZcUDxQPP1QPt5+pwQ1A7roE6qs3xbGjijqoRRXjxQPHAc/PAjytwPDdrC1fxwIvXA5yLOWkeifPySMhoejvb1oQ92zYysl1HQt6z1V/oiweKBxoeyCdjA1SaxQPFA0fJA5xvOfEd7rnXkW7ZsmU1fMmSJXV77ty5dXv69Ol1+0cZz9atW7PN1eOPP163V69eXbdXrlxZt9t0jQVvIxvll8PlaZdR+sUDxQPPwgNHJEA8C32FtHjgePAA51VOYoc6x0bh2xM7CT0n8lmzZg3d//nPt6Zv3Tq0JiXcq0f0jOPXbMo4JB1Ro0zrSAFwha7qF2tCsnX69K6z3vve4U2bNnUBZ+LAhOEwJgrjGZhxGJPbiC+leKB44Ef0wOGd4T+iksJePPAi9UA+f0hMud1pqKNwOclz5V4n+DVrqllVNfTN5cuHrj4o0Y3Oe1dWV3bdVt3W+9M/89Pdr/ipV0w96aSTZvS1WhO7urv7ewcGJqtMGhoamtjb29vPp7u7u0efVpdKq9XqVtUtfO63BlVkNEoGh4eHB4UbFmgI+IEDB/bu379/r3h27dixY+eeZ57ZKRl7duzdu2vLli1PX/dX1z295rY1B2Y9PGv/X1d/PTR68KOGXU8UqiVLuqvFi+sJAjzLNe7RvO6NHvhoAnBZwXh0o7lKr3igeKD2QD6BakBpFA8UD4zpAc6XnGw6nTsHwUj2JPrFixd3Td64sTWwZcvg6CSfxXElvaL1uepzvR/9g49OvGjJkjm9/f0zp82cOXdgYGBmT1fXwt6+vrlK5BOVxU9sdXefoEQ8WYl5umBT9eGqu1sfgVuVEjmNUQNp749CNjrw5pLbWabgID050ERhhz5b9Nkpuq2D+/dvkdId+/bu3XRgaGjt7t27N2958smN1dDQU7feeefG//Jv/svOS6tL2yYKIzauWLq0+2Xvfnf3jjlzhr/xjW8MawVhqHFrAb2ZeMTAbOjo+lD40dSlVzxwnHogn1DH6fDLsIsHxvUA50cz8YxF7PNIV7FdXNGfvHdv1/of/GDoG9dcM/TXSpYjc4ZI8quWrur7v371V2fNmjt3wZQZMxZMmTJlQV9v79lK7Kcosc/t6emZoSv32Uru/VKo3NtyMj/cBJ5szkkw19n29n6G57pTTACWP5luzJpJQ/6IaFgThH1aSXhKny2aJGwcGh5ev2///vt37tz5yNNPPbVh85NPPvonn/3sxmpltW/0KkLLqwavlV93z5jRfeuWLdg+1FgtoJ/t7TSuQ+HHHENBFA8cDx7IJ8/xMNYyxuKBQ3mA86GZNMaib3Fl/8Y3vrGLZL9DiWnN8uUHrjbvSB46b8l5vb/78Y/PPvn008/UlfxpkwYGztMy/dm6Wj+Vq3klea7ifb9cyX4sXQhkeTwLzudse535Mzz3j2SdbahlKtEP54kJbSEyjcAeW0d74q6DxQzrFsMzmhw8un/fvvWaOdz3zM6dq59++ukHNz7yyNrf+8M/fOxr135tX61Q+X6Fkv7cq67qPvm887rW9/cPff7znx9etWpVvoWAfnRmO0ZYR1rj4UaoSqt44EXugY4n54t8zGV4xQPZA+Md/zmJmIar+xmbN3efuWhRdesXvjB49apVum+e8oiqn3/d6/p/7td/fcGsBQvOnTFjxoUT+vvP7+3pOUPL+Kfrin46STJ/svJUI8QJPnKp1+2bdjXbbazHZjfmAcrCcQsizQtsK20mDDkB+5YFmETrlQMmB/Q1KdiuScE6Pvv27fvB1m3b7tj06KP3fu6//teH/+jLX95dX/ursXLZsq7Jl1/e8+ADD1RbZs4cbFslOJSjsj2Hoiv44oEXlQdecMHlReX9MpgfhwcOdcwbzxX+5XPm9JDwd9xww4FlK0cecFu57Mqu6oor5px14YXn6QG88wb6+y/u6e1d3Nfff6au5CeTvDpc0Wvle5hEj3x/UtI7lD0/Dh8dcZ0a+6gk31CQky9zgzw5YDmkXhLBT3nFQLcT9uzdu3ftgX371ujpxO9t3Ljx7h/ef//q7/3BH6y/etX1PMzocmXV6lq2fHn35BkzWv9ZE7ayQpA9U+rigREPHBfBZ2S4pXUceuBwjvGWrhiravXqnpddfnkrrvBTMlF6+sBLX9pz5YoVJ59y1lkvmT5t2mW9ff2X9k/ov0BL+DM7JHvyWE5EJDEne/yeEj7N47bINx47vsjtcZyBL2EYSr6rH3KEh0kBaFYK9u3Z8wPdSvjutmeeuXnD2rV3/s0nP7n201/TrYO095m0sULA7ZqVq1cPpocL8+RjHBPyMs94JAVXPPDC9MDhBMcX5siK1cezBw51XBu/fOnSLp4654G9x6+ZN3h1dbWeXquqlVde2TWwbNn8RRdc8PITZ8y4XEv4lw5MmrRY9RQSUSORk586Jnuc36A7nvfFYY89cv0hyUna+N33/OXjelIAv1YI+OzavWvXvfo2wu1Pb99+w/13333L333iE+v+6LvfPZAnBNdc9YEeP0Ogff+Ba67J+/BQE4JD4Q9pfCEoHjiWPHCoQHks2VpsKR4YzwOHOpYj6S9blq7yt+g+/tUR+JevaP32nj3T3vqe97xk/ty5r+nvH3hN34S+i5XwT2Apv5HISTzwICtf3Tfx49lXcM/CAyTzwynskERHzUqBbx+wz0AxIdAKwc69u3d/X7cOVj3+xBM33P7Nb97+81u2bK6WX23eFUtX6OuH+pbBDTcML1+58kBD3ngmZL3j0RRc8cAx7YFDBc1j2vhi3HHvgUMdv61lStZLli3rZml/xw1zdC9/2VClhK9l4NbE97xn4eILLnjdtBNmvGnCxAkv7+/vP0UJX7mjFkt+IeHXyV7tJv643wHPhwNGcvz42hp0JOdREwI4wfPRA4WP7961++adO565bs1dd636wooV9//RO94xyISAlyz9/KfjVsEafbNgeXy74FDJ/lD48Q0v2OKBH5MH6kj3Y9Jf1BYPPBcPjHfcjpn0P3zLLb3Lfu3Xliw655w3DEyc9KaBiQOXpZfo2AYlBwJ58wofeJ3wQTM5CDIjzFc2z58Hsu/H0jgG3pMB8VB35x2aVgd2a3Xgu3v27Lnu4bVr//Gvfu/37vzkkiV7mQzwYqYZH9rcu2XjxuFq06bDmQyUicBYO6bAj0kPjBdIj0mDi1HHrQfGO1ad9N941VVdJ5/3U123fuHWwauv1/L+ihWtn1+1qu8DH//4JaededbbBiZOeMvAxIkXKOnrxXpdOZH76XwlBS8dN71Lsi/l2PPAGEl+lKGHoBF6eDBNBJgQ5GcHhvbs2rVm164933hs42N//z8/9ambf/eMM3ZXV189vPLKlV0b52zs2bLxhuHVK1cOrozJBDrHSvpjwUfZWTrFAz9OD5QI9+P0ftF9KA+Md3zGlf7Spa0Z55/f3b/3vKGr/uiqAyT9K1eu7PnQpz/9kkXnLH775MkT3zFh4sQLlfAp1kfwTwli1Hp/NqYk/uyJY7dO+2/UisxY1mbaMfBCxwOFwvM7CZ4Y6hsGw1oVuHfv7r1fWf/Iuq9+9nd/9zavDGgysOJ1K7pnnL+5+wc33ji09fbbh9JkYLyEPx5uDLMKuHjg6HtgvAB79LUXDcUDnT0w5nGpe/pdm7T6vlQvfpkx5/LWlplb9l8tGStWrep61cc+du7ZS5b81NRp066YOGnSJbrSzwGdIF8v7acrv86aBS0TgDFdc0whtE8PawKA0dAeTknHCcT1S4o0GRjSbYLVWhn48v33rP7yZz784Tv/etmyAytEtLha3LNx8w2tLXffPbh61aphTQbyGwk7qTs8IzpxFljxwFHwwJiB9ijoKiKLBw7lgbGOR1/tT7/kkq7zXvlzXVvu1hP8SyPQ/vmsWbNf++Y3/8SMGSe+Vw/yvU7fze/PV3EpmKPTy7zjKc9JPyeV8WgL7tjyQE7u7MPcHs/CQ9E08PnlTUwkW8D1jYLBPbt3f/vprVtX3n7jjX/37gcffAxdK1cvbnGLoH9v/AZEuUUw3h4ouGPFA2MF3GPFvmLHi98DYx6DXO0z/CXLlnfPmDOjNWej3si3ZMkwD/P9zL//968+7YxFPz156uR3KunzK3mKz8MEaS/vKxlwBXdYV/M5+UP/4ipH6oJzzF10zLmLJH04ZTy6TjiOK+RyXOnDDxy1NBl4aueOnf/w+KMb/tffXnPNqqtnz97Ft0s2zrlczwps0bMCy81ziMnA4Rl8OIMqNMUDz9IDL5wz+1kOrJAf8x4Y69hr3Nt/d3f/ef1DVz3+eARS/Xrey970pmXTZ8x4T1ritwwFZ79LXyOuv653uEn9cOl+/N5s5AknOfoNmA3U8OsHF8dy748yErnZKpur3FmP6lo3OjL8R9H37Hhz4maf5vbhShiPvolLbY5HqYkfcuKNhHv37Lnvme3bP3/3TTf95ZvXrFmL3hU6HhdWC3seWfU/DqTbA512WjaxfWdmeKmLB46aB57/s/SoDaUIfoF4oNMx56SP/dMvuUrL/OdpmV8/uLN06dAHvvKV7g/8wTUvP2XhgvdNnjb1Xbran6XlWMXhOhPVSR/+w0noh0ODrOevNGJ/e3KPF90d2pQ9u6tq+9aq2rq5qrZtrYZ37aha+/UjeoMHlLP14zrIRQ3eH9ZGF7TukiyRLlDsGNyp78srt+kXDXTzpLsa7u2vWhMnVdW0mdpBM6pq6vSqmjAA1yEKOj13Ex3SURJagrHZPoSoHwHdTODjiRmPrh2X+riOAda3CPQ64u27duz62vofPvznf/qbv7nq05ddtj+vCvTv7ddPRH/As6e0KmDXt9nUCdZGUrrFA0fGA8/PGXhkbC1SXtge6HSs1Yk/L/OfP3PL4FI9SPWZvXtnvuVnf/btc+bP/zm9oOc1SvxkJq7sOi7xE5APJ7EfDs3RdTPxXZ860cstcbditNpGQh9+ektV7dxeVfuU5A/oM6gfwhvcIy/pc2BvNUyi372/au2Q3H3IT0ldevTi4iQXnXJhl+oh4flBPlTblkwDADr+4RySmUwEBODTpVavMJP1pPyEvqrV31cN96huaTLQ3afPgPATq1av6slTq9Y0TRama9Iw1oTBkwNkoxcb8ieZfISr9iTeSfyhaJr4ZluySOz8mJFvPfEtAq0KfHfzU0/95Tf+5m/+9pd2736sWry49Zkb+CrhqNsDzeWUpkk4ppTigaPqAc64UooHjqYH2o8x93lDH0pJ/NWSqrp68eLBas2a4S8tPPuUl77+le8/4YQTfkFf3zuZq33oFGzza179MFanRN4JBu9YcHBHr6T47URPjFfyjRXjEZV7lcBJ7k8/VQ1vfapqPbO5Gt6xqWrt3lZVO3ZW1TN7q2qPeEm8quocaQmRlv3LujlVcDWvtjEQq8OVvJN30gqOBYCWNwC9G0xLL+P0El3pU6LXnycR6DBpgugVu7UINGa9CFGpyfvENGWCJgSTtYowVfUsTSCYGMyKyQGThP4JwZS3vqOTfZbsy3ZmmudYtyXtjlLGojlMOEO38Rx34mnpFcRPPLN121/cdcv3/vtP/OD2+5kIrFizpnvG5hmtGz7zYb96eJznBJBXSvHAUfFAPruOivAi9Lj2QPux5X5O/Jd/6NM9VfVA9aGZM/frV/haN37wV89fdM6ZvzTlhKnv0dX+TBK/HrRS/PRPxHZ8oC8F2DET/POX+FOMzsnemdomxwHAFfqWp9LncSX8R7Vc/2Q1vF1X9dv1g3V7E79ytUYbqc7eCrguKyUnrshHsq5gRmujCcJIxk2yuNrX1byTtNJRJGvRpSt8GwabyFVZfo3z5AGQkBYXFPVkwPTkuAQXnVsoCYYwJ+s1XB2Pw8yx6RX1FK0gTJum2wuz9ZlfVTPm6HOiJgf69GpVoS5aabd/GVfozfprkmfR0GF1EDWw9mOmE11mbOKa7QbezwroWOaeFd8g2KGHBr/40H0P/fGd/8cHb75Krx9W4tfXCA+aCBxsXHZsFl7q4oEj4IF8Jh0BUUVE8YA90H5M1cv8VbWsuvxDl9eJ/5qvPNZ98e///GsXnnHGB6dOnfpWJf4JBEp9HDgVjLl8PSgoZz+3B+sMz/Wh8JnuudUkR5Kgis1Mw87JfvMTVbXph/o8rMS/SffltXS/h7ie6EiuWhUYbnGlraaSJIk+O88ZQDBf4QM1QlBqJ1bh8FXk+ZCLIMNIyJI9FAktJ+6os150Ii5kMvGg5NwKFRCJS/ZhojrYBNB7BgLsVq1iWdJZCwGobtqockf9vLJAH5up2O+MV4Mj70+bWA1Pn121Zi+sqln6zNQEYdSkQEyd/C/W51I6JfCmnE74dlh7P/MLzoHi2wMck5oIDO3atesb69et+/0/+ee/+Y+ffp+eE6gnAjdoRUA9FW3TAeZu3uCtUooHjogH0ql7RGQVIce3B9qPpYMS/5yZW4a1AnBgxcrVPe/6s4+9/pRFiz46ceLENyrxe1lfV/w/cuI/Okk/xdyI40pWXN2TuBSfn3oyPps2KNmvq6rNusLfuqMa3qtk5uNBaVFX6NxPh4fU7NwPO9mWCUC6J4/tTrj1FT0S4CPb5hpbnGqVLNV29lWNLLrId3JWBxYKdGk5HxqTauMJhPtiUF11iYEZBYzIRb0QyKT2liRNj0Stlm8lwGx6knjQJaLEj05x1fYIDKamDR2I9HCQp9JqTib6dMvhhElVa8bcqpp9WlWduEAfTQr4eMDY4MMn9S3Bcg5n0yl5Z1g+pnI/y2vvA+8Ea9AzMLzgN1Dy7QH9bPG3N6xb96n/95/926/92fuX7luxenVPNWlJ16o/X3VgVrXKjigTgezBUh9pD3Aul1I88KN4oP0YGp349ctq1QOx1E/iv/Jzv/HGeaed9m+V+F+n7+6T+ClE7vpHWnLA7WTUc8V1kjU+jIRCrFadE77ue1dPbayqJ/V59MGqevwBtXUPfzd0KiRuJ0+SqNpKqJEOI9k68yJPWc551skU+ZCn5N/wpvyi3CaASFzA5URL8s0I0egJCdGmZJ3pwVteyHCelKl54sHDgOTlkI2MoI9kLcIGL5MIi7XNcEALgWrbREv2MpmRD7x4Y/8BFx2TEPSZA7yFBzsUHr/qUCKqJJuaWRFFepANjsnP8IAeUJw1oxqeu6hqzT1TEwNNDmadJDT+x67mhCDpQ84hCn4fq4yHgwf84dCIFOM8EYB+z+49Nz32yMOf+qsPf/IrVy89dd9nNm/urRYtqr7w4S8MlokAni3laHjg8M+Ko6G9yHwhe6D92BmV+JcsX6KHnDa3uMdP4v/JP/noW04/99yPKPEvVeInSHKPnwf7Rr2lr04MHTwzFm4seAcRhwA1k0a6h8/y/eO6un/0IX3uq4af0Nfs9iqB6S/yXk5OSjpkr5Sv7Bw2TmxRe+mcxAed2eBJzQSmDwS0x+UGMOkjMUFH16XJJBy05D4oUhd1Xt43E4nWjHEdmm2BXsm/eQsiqBDCbQoSM/jQjRo69QOIoSTpFBHDYrLkMsKE/fabjIux8S0D0doopIrWhbY+6f6GJyZwAvYg8T2yDPDEwrZNEP/smdXwvLOq1nxNCObwTIEeNjQb+Vb0eTIX0I5b+7kjJoDPFt+JvgHzLEU+6NLpoPcJ7L11/dqH/uuffPA/fvGTb16yd4yJAANPg68Nbe/XiNIoHhjLA/mMGwtf4MUD7R5oP2YOSvwLlQLery+krVpVdU3/nbe+YeFZZ/36pEmT6sSv4Ed2GPVgXyQBRTWSRJ2lQnV7/yCD2ujb8eP3ZQrm5MSgZdnqiceqasO6qlp3p+r11fAz+oqdk4eGTqZRiWRIoialqa+r71Zc1huvQQDVRzWZy/3Ea65AZ34LaY4DHuuC11m9lpekqp80WCxJURMTJ03gSKYmcQYHW5uTaq7IbRv4xkpD8IjIX8AIKbbFfoJZcmVb+ISOPoksNxqeCaQzfaJVNTK2DBOH5MSKR2obJT34giMm+wR9aSXAkxYY9TFYG9zoVY5JPVVrwclVddpLqmrBqVV10jyNicMOeu1n+zX7FpmI0ejTfmgk6UC2bcfDt+Pa+1lXQyRfb5VqrePIBq0I3PbDhx78T9f889/8Gs8IMBHQelO18TMbm88IMGQPuyGnvd9AlWbxwGgPcNqWUjxwOB446FjR/fwUPZdV06+a3vWKefO637948X6eXrrlg/NeseiCc39j8uTJb0lL/X6kXwFuVOJvKibwEvyoc2m2M6xZHwrfpB1ptyX9zfkqX8v66+/Vsr6e2NeD+zmxOSGaWbE124aJhFpsTjE4rCYRpyQEec6M/iVCAcyD24xMQtRT4o6EmpjByxdISEzJ26HPuvKEIyXqSDIkTFi0SWpChKwUiHv2lmoBonMPVehPX+1TmzFZk4SxrA8d/MjKE4rghs5o4RlteCM/G4AumPwMhAXEmJgDmg9jndxNmM1RJ40dIm5NGJKODejBC2cqNm7kvjq5j02DYpgggFYHqgWLqyqvDsxkdQDazpMBa/E+oNW5hM8744BmfK47UTZxassYTU1UWBHYvWv3Nx954P7fvvlf/8l1V71j3uCKhx/ue6yvb3DrNVs1KJ1oKtraI+6MbPBAKcUD43rA5+C4FAVZPOBQO+KGUYn/kuld57xmUs+knTsPXLX1jUPX/+zU886/7OJf1y/y/TMl/l4FNFb6hxXP0pp6yGkm7mZ7RIuUkhwOUQ6HJkTkQI8ZkrtJ9/F/+HBVrbu7qh7RtdV2fSdf8DpqolodUhf/3iihGm94gIAAq+lIsGYByvK5KoquXuMhNyhDALkF+0mhDDUSgdpO6OIxs/CsLujPEwLk62o9ZEgANKhCj2UFLSBKTtbMFeICOssyUpvGoPwsgfDS59sGku177VYgUuxFH6sF6XkBA4EZmUwxThamMQspRki0SaTxfAUzlDTpqBGJDudYF7cJPHoLtyolxvCAbPWY09iyGiYXJqyVCZOLYMiepq8aLDyrqk49r6pOPlXPDujrh072TAbiGGkm5sw9Vt2JFpjtU91sd5LRzq9zZlC8FL/2cseOHf943/dX/6dX/OHGb69asqZ1x7Ztvfd+a+eBrbePOxHIh0EnlQVWPOCzrriheGAsDxBBmyUt9y+rNlWbWj/5kYt6F0ybNrhs9eLBL7x2+4JXvuutv3bCjBm/qKf6BxTQ6nv8CFAgq+U02+24TNROk+G5zvgcWDN8dE0S4YKK7KePk/66avihu6vWuvv1sp19yjF1KhGJbOTeta/WkySbrU0jlMaFN4k03R9Xi2mA0xTJG1qIyG8U+nVSBxC+IEfRyjWYoKURNO6T5EimmRB56tt2wXw1nW4TONGTgBkLiSesQmDSI1gMIGG4eMQ/kYix2/f7xe/Jg5Ni4kU/djGT8eAwJBXToTP6I5oB6EPFMZDwueGJBmJJ6oyBWQrigYmYuw5WyTgFyzZ5nMiyTWrQtnzxJF4qjx8hDVqaCNVP+ohWVJN7q9apembg9AtHJgMY4TFhkwWqG5xm77AZC98Ob+8jqh3W6NcrAnrN8OD2p5/+6zu+fduKt6zc++A107/RtXPSpJ7mRECrAR5pm3njG95GXLrHjwfiyD5+xltGengeaD8u6vv8m6qlraXvP7UHMVfvfNv+P5+/ZsrSX/mZfz173pyP9PX1eU2VS36h/YQzdDlZ086lCWu2wbf3M097PSads4ZiHldy25+uqnW6wn/grqp66B4nfScXQqJie1xdMlzotXWwV9owCIDgTAigJ+kqu/ieNMakxBC8ZnbyIYdZBzRiDJkkHHU9EUA4hToyXCRqdAkkHeJSQ8nYTGpCazbgkKijpk3wEnmajOSr8zwBME/SndoeE3IRZTlGqK2EmHQ6MZsgqUV5zsa2BbsRIdkeAvJEk+Tm8WR/MYFhqNZkOpEL5HmL4Ab5sEEGgjFOFfK15c+89ODzZoTOxGaAP7xHt7ZNbSSaD0lZJ0SShT/BDeuthdVpZ1etRRdUlSYFw1NPkIz8uwncGhm/NBL3QYRNXLOdCZuwZhu8+l4R4NaA3iOwbfOmTf/t+s/+7e+/7875T35mzg09B3p6um761AbduKpvC2Bqu7nt/ay61MepB+KcOk4HX4bd0QPNY6JO/LzEZ85bd/Scds45XR/ZsGHfZ+7Y0fP6v/7tK04547QVAxMHlkiSr/hV14kf6c0kndsEN8Ux0B1LpuuIbABH0ZEQnGGQqyFseLiq7rurGl59a9V6Um/cIymIxDwkIwojHUrL9ILF8jZ0QkhMLCOLBnISqhvCkyTVs0zXXDWT3UgQEAsrZb6iVc8QdAZYlRohQLX4ooMklZTIgZkRPIW+Pp5AeJZgaMqlQQuN/uELODrhs6BkWcgwhA3kicwd0fupe1YAxBEJvLEMbyKrYPjSo3H6YUJg4cORdwS0CUeRDLOP7F/w+mCjM7KA7qMX/2E7/8hVDRkFGmBmQx6rB4CgF9LtoKmZ2mEI1MTJooQzOk2k4raHYCdOrarzLq2qRVoZWLDQOismA561wDF2aU/gUGZYrsfibuKb7RAx8krsfXv2rH98w2Of+MM3/8JffPIVC/Z9asGCvnX33jt097W7y1cHx3JugY/ywPhH8SjS0nmRe2DUsdC8z79pqZb7L7qo9xy9weytGy8/8J0Pzrr0nPPO+4Tu87+eIK0XmniZUm2Sf+2mZhtgs99s1wxtNE14p7ZltF/tr9XS/j036Wr/IX9dzwnAJmlDtCfwJxtz8vJyslNA0iKaSHziMS99kn5aMkYMpN6oRgCF/AVLSkIxUZA+Jz3B0Q1Rej+Arzib/rIQbUgwkLJBNHMAaikMMFsStJTlWw60Y4AQuoRZosKeTEtNn3/pjofzNOmQ/KADHm3/IqBolWotLy+ZexiCGFPLMYmAAkDAmFX7Non2EZqMMs7MZvDzDCRezGIiofHExEuDNtzGCBf+h87EaHfCtuSASbb3m8R5YsWgfHwEz8hI1McY25RGl+UaDk4FR9DUokB1+hlVtfjlFasD1dRpEquH8THGkwE1O5S25G2Kdtih+jC10wiUH6jlqGjt3rn75nvv/v7Vl/3+E9fdrtsCf6+XKOt7LPsP8aBgGiQaSjlePeDD/ngdfBm3PdB+DNT3+cEuef8kvbE9Lfdf+vCsN73nPR+bOWvWB3ltr/I+gYireacn6HLplOCBdYJnnlyPR1PnSwd2spbM52r/3u9V1Q9u0RP8uxyX/eCcckgktjREM+c22ljyVt8gruIVE0Xj5Wo3M06kGQdHbQQyUlLOMPicNcTrVYNgJYEDR1/KjyHHYVhwVNFGP/zIy5UQpDmIIqkGzhK9gkByTMRJeIgSXSphPjQCoAz64DLMk5FkhLmwQ0w2w2xJlvweE4csh9WBJBbh8W+YNx53Upd8aHgecNYjEuBhlYTUtCDSDAiYCUQn/nx7xG2PX0hIkUnlCQK+DXn4MMRic/isngTiY5iwi6M5TUpC4YjcauZEnRQvq4bPuTi+Wshx6G8R6HYTg1cJv420DWxsmgm92W6QWMZ4fXDirc8/HrTd9vTTf/adr3714+/++tQNf75kTe8jDz9crfrzh/VGwVkawEpuDniETbmIaeuX7nHkgThKj6MBl6GO8sCo/d+86l+yrOqeumBB92t2nnOguv32auBPP/Suhaef9jv9A/2nSsKQkr/i6uiX+GTJJMhmEMwJM9eZrr0+FN6xSgHX3yTcoWX9h+7XEv93VK+tWvuaiYhQLBt8dezU6djsRCGYH4IjMZFwZKudQGbwfXN6ERNJuxTbRXYgkTipCEiS0CaWn4MOLkuLrnqJR0llVOJOCQnx5jF9YkoJ3LqcrdCj4sQEQ0qGNEn+qNBfmiKEHoR6LG4IFyOpx9q47ZD5rEL6whvZXotPExPJwoZkE5LjocSAWwfAZgkiDAxejMUamW2f2ueCuE8t/c1jx/IsREj2FaIMREwcY94HSUUSFCsZViqiVFtz5g8p3uLO5PORYxbh4pM8Vig8q9DqhCccMaPU7xUIrlWBYVYFztCqgH7+OCYC0Ou4YGzjlCa+2c4shwuDPn9jgIn4vr17N23c8NjHv/aOX/3jD1308wc+teAm3xbYeO3k8d4fML6x2ahSv+g8wNFayvHngfb9Xl/1s9x/0axZva9YsKBadse0/V/95QvOuez1r/6daSec8Da5SXGJKOv0p1jdLma0I8E3aZrt0ZTRGxNvlUoOXXr2cNMTSvp3VNVd36paGzUJIDGkK+0Rc2QXiUR/ju0SX1sKkTskFNKdOg5/wNUwLuyJdCg6JQPYIgFJrnR6lT7x51jvhJLpTIw8zRTq8CoKL3Fn+VGj03Y6aastudZhpdl4hECYeFSFfYBrBTUNNgOvk6G62Bns2noCI0ASa6kgLYoEFsv2BphJG8g92ESIfAtKPhpxhAidWa3QdjJx8oTMYsIO68p9Oozbymx3TJqSTei2PuEl2vsWowXzrRbLSjoxFBqLUhs/ghJc5K5jh6Y2EIhlv11ODYqNn2/Ik0vZhw2S4WMCPbDNVvK/4HLdIrgoXkWcbg8gJe9LxLWX8CWybFQ7+rDgDV41daMkVuNa+tXBG9Z87/bfeNUnvnPztedv7r51797uVfffv2/WqrIacJCjj2OAj/PjePzH49BH7fO46tdWhav+avr0nqu3vnHvx7b9yYRf/vTvf2TuyfM/pqf7pzbv80M7ZrIGqQK+SdNsB8XB24NonEREp1cItH64tqpW36bEf0s1vE0POxMzI5pDIF0RjJFqlGB1AnHEZthE66jqxCGAJwIp8TjoZ9KUCOJeuPhIYFkGgsgWKvWVtWHqs7ycdWYbMy1sSvQEbk8+zG8pMinkhQ2NtngYizYQhlratseg2Dh7RZO0iK1JimjVAhSbILJNIdfy8SN460GCbKxpYEl2Zz+k5Ai9aUPlCB3KSW7Isx+YDInSdkYiFQAifZiRZAHwqJvHnOVk/ULWaLU8CbF8xigck5eG3ZiAJ2wjsjw5SP5HEATCW2nyq3kyLqFEUJNYWvIT/Pb0tN5q+AKtCCy+tKpOOU20ejRGOCYoY5VGAjdJ7uf6cPiatGoz1fF7N3TO7ntq48bf/8e/+ItP/OLqxdtGrwYg2bcFPDVq6GHUpRwnHuDQLuX48MCofd1c7p9+ydquSaef3vOTS942vHTVIwdu/603XHLm4iW/N3HKZEUzXcupKKByk7MuByXrGqNQrkcCclCCbjzaBtsIne+pKmjueKaqHryvat1zazV8/71Va6+M0Sgc62FU2zHYSYB+JBjXEBHanFcSEx4ABl0WggyHPNkJrYWq8tUqDCATv5p+Apxukl+vIoiKEvaQDnTVmBKqbTbWxiTd2GBjEpONEJWFq47lZyQ5GUlf1KQeUwUfdojFOPNaUdqAa9DnpJj8Yjk2WLLZTyOCpIOkpiJ8TD4sSmbRpy1u/tUxnTmCJ+zMvNSCoztP6KxHXclAjI1XpbTFNnQLgbQab9ehEOUmElsMxLZgjBBs2WSbYn8nnOHRti3a4X6Q0PLQBi6VpMcQ35rAHsll/PqLUYesmHDIQNljjN4xNHzWOVV1riYCuj0wPGmycfGCoaxgdJ3PF6C0+eCzJrzJcSh487bAnl171qy7596PXvgb11537fkzuv/3xhu6dq5dq5cInS4H1l8bxJnN0nBGE1zaLyYPxHnyYhpRGUsnDzT386jl/qWzZnXN1VX/VffP2/eZ+Zsn/tRvfeRjs+bO/aje4jeRq34FoVFf60P4WAkdeCdcJ1i7keSHSBAKpFv0Kt7V369ad99YDT+6SUlAsUj4+soRYhIEyUco35YlfBM0fTuANiyigRRe+mqoAsG/cXQB0mcGkJNS6BIIHmehLARCk4YACwJgcMDSFfLIMnEmgk5tPvrOuycI+WraRgiOgZmcrnTHk/SAGQ+pB0Q2OuuGKbNnXMBGZNLPOKijn8eKM2MVItGNkNT6RpvXlA+Gj8qoVJL2kxO4cLXoBBcoJ7s6gUpM1kMr9l3w1sNWUo59hcDYR2GNOJ2kQ5UlJbNEiDRR10a02YooGY/9kOQa+Uru8GW7Qo4FapPqmgebRc1xM3e2VgVeqWcFLtAPE+lVxExaRs+lg52BNUozwTfbmaQTDFyGp1rV8JDO5W4aW5588v/79l995ePLvrbpqWvOeqzvB+vXD26crGcDPAcoqwHZt8dTHefM8TTi42uso/ZvvurnZT5nXfJMa97553e/9tTXVkurRw7cePnlr1xyySWf0q/1XUzQUDnsp/txaU7yuc5ubu9neK6Nz2/r2/ykkv73q+qOb+lp/q0p+WnhQUHZgZdL9JQBHMZTZnCST5E5wijBV0PXv8biwI0+06UQ7otNEdcPskGMt+AzDW19AhgwB+lEN2JKJoQ4inAutWEAkoGqww6BpMvWkSj4d3KP5AEOMMWJrrYFgBB+OREERgCM1Q76XpoHJb8JTOIy3mNT2/wJJjw2xD/EafWGpu0KXH5Az3LqAYjIBSFBh2yPAx2Cxc/35vFncmsMPDqSKVQMgw9VK+93fQVw9PMD0pGYvP8gNkeq4cccan38amP5xGoEYFzwk+thdVpPyk2fb0d4DBAIqXbQHqwjJOQxoRQaFfPREO+J06rq4tdUw0v0w0QzTjQMXzcLx2qzjNX3Me19iVmjeTJ/E87JrPPBtwX0a4MPPXDX6o9cfN3Xr712c1kNyP46XutRy7rHqxNepON2SEtj46pf0UbbZUuqSa1Hui+44IK+N6+ecODbOx/uP/nfffj/OXPxuX/Y39+/gKt+BQ+u+kd9pz/7yIk1d1TT7wSDpB3eYIumr6rUfEpX/Lfqaf5/WKkJwB3V8M49jp2EbMIbsc7xLiW2SJQKfsBF4NAOgQA1reMim0g+NZy+mOCxfQRQC0/CsEzNgBFgoefqTzWiXEwQCRq1MPg/JXTzKOhLbvYBtlquNl6l8GQGK7BRW9sebduKHjViBYAaAWF3jDvLT/otBSMkw8ri8tX6k8Bsp0VjDPI1qPjtAWxhgNggSuOwPyC2VL4yrVUgTfS1/wDqXwxYig1Iiv0DbcgCZzwkYkcPX9er9QWXiYI3CUGYpYzUoYe+NbmyJmTKLtuSbUok2IFt5uU4oJssAmp/mQZGVKZxQCuD2R/ZDmSYl5mEdQIQNNGYl2MHfbt0TK/VbawH79IPTemB/CmaEAzoK4UowYi20kzgbSiRH0zfTpP7yBE9DPqF5qGhnt6eGbPnz/0Xm85ZfNLD6x+46VfvnLjzvjN7+gfnP12tW7BgeNLDl1ZLqjWtNTH6LObwFWaOUr8gPFB27AtiNz1rI+v9mq/6Sf5L9IR/deqpPXP7Tu26al6175/OP/+CS173uj+YOHnyZQQHlfqqv1OQ6QTLlmVcroE325nOtZdB1dq6teq6W9/fv21VNfzU04TfCDvZesetRoAk9orGSdG5SgGZEJzpHXzVcQCOQI1I87jLhqyTk6O6WaaW4gnUFgGQBsx+eE59y4E8koQDqyiChhqe3CdpxJKxYSMGhhzrwW4GoZKTVQgQINlIhhQs5hNp3NjFbQOWudW0WWljX2RDzakNfcbmIScG2r71kIkQEPIxIcQ1xmOgoCR7CuPRPozJER5JtKnyfgxKC7OvbGz4PYB5VQdZIsYH+jMvBiRYiME28eq/PqayLegUvXc5lmc4ApBh8ZKKfPU976LmGHQxgUkRYv2MjdaICMu1fd4Z4kWpdajGNtOaO8FV4Sdeb6zaNg5KgtnUnzW1al3y2mr4/Euq6oQTbEk2TqLq0pwINNs1QWp0wjVhua26uRpw3wN33vHBi6+//lsrt03tvWnDTVV5NqDdsy/uPodjKS8eD4zanyNX/VU1fe3arkWLF/e9bc8Z+xlu39VX/sq80xYu1wt9purd4vW9/jrAdvBJO44+gaUTvMle43PQ3be/at2pV/Tecl1VPaarf1utDRGXuNytNnUjScXVnPBEcOgVSUde9mOA2FU7pxJC1XZF0FVgDpIIxKFQNEFmOjW1Rso2Ar8SfyQAhFDSlXJE8ABZaKhBQXzlLmhtezIDiJvQZ/5kHqaEaSl5GJ5kgUjYqG2dIHKObVVt80TocbM/1FZCypOZ4EjPNiALvyKXwVFYVYlhZxVJpvDQUbIOasl2IgWp8TixcAzQZ7JEwhvFKKa0X3wbwcoi+Qdd4g0lVhbPTogtm0BDMp2AvVPUzseKMKjTv+YkHItNPrXBG5t8lWiNgKkGY6f6+IIhUCthh2C1rUB1KnHcJ4Z0XNf2QqyO7VXbtNTiRUwMLHrDc2ZX1WWvr4Zf8lK9v4+f2BBFmhgyIe9U7PM2RCcYJMCtH8ekflT+yiDPBuzb9Ojj//nT7/7l335P76n7rl+8u+/W731v/6ZZs4bG+cogxpfyIvBAHBUvgoGUIURsyX7IyZ+r/s0DA93nnXxZN1f9Xz1l0SmXXfGm39P3+t+hk3/UC33qRJ2FpLoTvBOsjY3VhARSvCBI8nW+B+6rqhuvrVpr9MpellRF4tCuJOEYpSOSwOmEmgKxl6m5KvN9b1DIk2gYoIfcD/+p0UhoceWcSdOhbvmwRd9iLEyG6BW9kSDBZXpZ48tGQQDBwMRE9ppXeh1godd/LU88tBm3fVUzIwRCsPp4TOjAIvVBs1EfihgqcOHNAz4SemjTxIQrUDKWiEduJQjkyUDSJTTyRFTn/tAFXeBG7vmjWzJRiwwKhrjWBh8LCSRhUxtY07PQQoQCUZotc+Va+CCiITrBoTMf/aRJOzM8En2LMhI4JeyhY1MlxyqTHFsmQGhlEiM7rQd9ISHrcg9mALY9mgFKIwxBKA5bk7+YBHE8wGvfZR3ZSuHsZ/dFh33sm7P1a4Svems1fKa+NcCbtW1T2BXyUBSlvf9s4E1etVkNkKpW166dO79z6//+5q+8+d67Vn92x6T+21b/04GZu3cPrh77vQEMspQXuAfKMwAv8B2YzI9IoQ6Jf4nCBy2+3jflxBP7Lp9/add7q7n77/xnS6+46LWv/JspU6e8dKx7/e2Jvb2f3TUWvIk3DQ/4kZyffKKqVv191XWtHjneuDWCNMRCkTIiNCsSpuLlcUZFoE7Ji27oFTWBSyFo5HYA8Qh4yMtJ2rItR7SSQ1BGl6npo4Ktl8nN7D5wgrDlpaAddMET6MSNgdEUS46LEehbJHiCucGqaUPLp1HyuGoQOlGONZ7cBKttwlZlDUQhB7qsldHVsrGrxiQe+hAjc4QpsSAwCvbEUICJEFGJylffCTxyGwN0+BZKeDxxy/7A2KwPtI0XgGTpHUyNv6XISTvZYn4rD+3wGYU89EGMPH0QgV7XaqtmExUTMrXwK38gjUiM5gweg6EWKp4lkK8Rijg5ItiiDxFyYzjYlOXDnFQEQwi3jEBwDMPI/K21WefEmtv01Ve93Gq6HhKcPEVzx/R7A9Y8soljZaSfW4cDb9KorWFpqqcyMDCwcMEZp77ngZmzN7/xxqduHxiY1vXI4OaeA1N+OLzn8VcP81wAcaXxbICMZ4SlvJA9UCYAL+S9FydgfRLmq/5NS2e3Jk3iQb839f1UdeqBWx9c3Zr/yV9ecerZZ3xGDwFNSUv+3QQAFXuAOrezS9r7GZ7rTvhaDle+Imxt1b39m66vuv7+c1Xr/rVVdYDwG4UA6wBISKVNUlJgxiQHVWedCLROhsoD/GAMwRs9BC8HZIIz9lM54UoW2V7/hGe2FMtFhRCRKMQDjdEkVAsQLuj9AqDMj3z+LA4hWbKVSB8IFXWdOTSW0AwtckMmoj02kE7CAkDrMQRZpBAlGlYaYGcjrrr22JQ18AVakM2kwBkLWkrSb71WJhjJ0gIhUFFbKLDmkp1oqXU1bI4xoStoocKPjM2TMPreoTSEDVJ16EflRpYJLeMHad+p5l9tRpUTdOwryLASkqYN8FPM6BobgEIdqtRLMO8GHR92tXe8iFyggT50AEJGjCf7OB0fydY49tN+S4dA4oIxmhJqaxBv+aCiYZ+ZLGgNHtQ588h6/a7FzfopH8E1EWhNmCAZatsiLDuyReOgdOmCYKiru3vCzJNmv+PJly6Ye/c9q1d9aO3s3fedOb//0cGbhqulS4erNUvyA4JNI3BVKS9QD5Sd9wLdcTK73nfL1V7tfjzox5L/KScu6fm1gUX7vnzZxNNf9ZNv+UP9ct/rNNEf1McnfB62OrmpANi5XRN0aDR5Aq2gh5h9g1XXHbdULS33V08+rQCYAilmkyR1vzYSgNpq+mqIKOikkAKnh0hS0uAUsCM9iV8B1jDBnZhy4G7Yb3fk4ahGogNztoMEYCkIT2LUsFxtYkneCmQ7wT/o4h44sjQeYNkQyc3NmAREz68p1ricCGp9WSHjwF/ZloDnhIpdtk2i8HPKHbJNPNIXYw8b7Tfld/TFTxMDl1wxQU+b5JP9EMlNfZGgxtu0T2x53j/cumGgLPtDyAdD0E87F9HHMxn4wVoSxgyJHj6BrYCahgr70+NRH78KFJO7gPubB+m2A0gfS/Am0ZZhOWZM+iFUn7GbFxxEWAertt6B6nhepL7x8KUxZ3+p9qjSmO1OdMPAuLX//EuJonKCxzDwlodcfdzPcGCZwEQiTn6zH9UTeGi2Hg58pW4LXKgfH+qFl+MEvpHiieNI161OsEzSxDXb4NXHGL83YPeuXd+/+etf/4U3/9O2uz87dXvfP333q4N9zzwzeP/tU4ZnVau0IlANL9cHvlSa7Qwr9THugbICcIzvoDHMq6MAV/2bHBViyX+oWtB7yYJF3f9ayf+On73grS99/Wv+ZtLkSeez5C9Z/npfltmevA/Vz3zU0LbT8+rTlu7zVw89UHV97S+r1re+qSXNPaJWgHSUJYlTFFBJ9HTSSIhtlglIwTGW+EWQE1SuCdr8w+vJgmoLQVDgMkEEZvCC2N7clmobQrJJ8mCX3rgKDFn5KnT0pATp/NmAhhz6AY/JTBiMnbWfEJtKqCexhK6sA7TzksAhEYD+LQdY0COTeE0PaExYch+ewFgKCcrShLcscCHdvrYU4eRP+0XKLB8x4OpklfmSfBIlBTA8ic6qacsFNlyqYtICINoYUidLa1HfMkxiO0MudChompFgSS/EMRqSu+zQX77Hz3jC/+EjSZEk7IAutlGHAr97IMwUgCKsJ1XI4TOiKWv1eBNp1mU1wCCniM+W4TMf+0mOqszP1yGDRpJRu0Ovvrz3B/rNi4eqappuC/D+AL8lE4v1ybKtYGSDDWHHCKxTq51GfRdihb4SPO/kM898z4NnTnryDd/e9L2TTjm9+8n9fd19Ux4e4pbAps63BDqpKbBj2ANlAnAM75wOpqUzPzB5yX/6JQNde2Y83nXGKZf1/uI7Lx1q3fLQ8OB/+JmrT1989n9jyZ8TWmc2+xr+gwoP6wk/Ct7eH4VUZxTeiUCha8uWqmvVtVXXV/+XgtaWYPFViyKVLjVTfhBzirBSaa3oTkHeCcNQQqHowNW2ES1TkMzJ3wIwKH2slU5KeuZPkdKiQreTjSJorVYcUJE8AGKik2EK1oZnO6wrCPBDPIRnYGiHH11JYtg2kpTom8+NPHQ0iMb3903gxOfJBBgJtH1JNopso/UL7yFiA/Kok//UGmWHevzzidUC5IgWWLrwjYkPsMSJcPPge/k1sioqcHPUOFJy0BoJm8kBTI2VG2HDNjDCWSYbCZJMRNAjQSIHeJ5UBC72HeSmU2Nk4hMQjjPGgsk5+fvC1gNMKsWdE3mWQ+1JqRh53W/sV8GQ5aGkwaax2982CriI1IbHSgG5BK72c0KbTjx5paceK76FhnEnCbZj81P6uux3q2q3fup65klVNWFAWMkWcaZL5IdVhf4gbbYTs0BxS0C30/pnzp79zo0Xz531lT/+0+vf9fIz9m3pmd/HLYElS5ZUmw5+ZwDmPBeTDsvuQnTkPVAmAEfep0dLYn1ikfh5ICc/6Ld1z57WksWv7bt61kX7vj1lwokXffyDf3bS/Ln/SoGP53sITB33Myf/yJP6o80GN1YZwSkIkfwPaLn/uzdXrS9/tupao6f8WWtwGIs6lrgdryLZOC5GECbUOYyhLqn0lXvqe2k4o8h4BGj9OQ4TgFMgdG0BBNaGXre9cViNLnZLFuKyvBxMPTkhuIKTJgK7EpsBiKXUvgGuQsVEIf4Dr3YO45CHhCDwCDwAEpp6STd2k1jMl+xiciFw8IcQtSNRmNIwpQzVNl20IQ+liQE10hF6aeujTSRy0SQ/OpnCYkOQLio2KmGbPW9ZvoVjOdAFPNtvpuxH8cdEDilhE6ikwjDzp4lPlmFrReghIN/2hyb86Yc8gYvAPABtsLVYrs3zAGgFrxrJDGTSsYE0VNKxI5mMyLh8jwQliTYmFNoHsKQtY8ZWT1gYnw3H8cC8FTDrDLz1Swhy6okObX08JlqWKz7OqR+u07do7tCbhAeq4ZPm+vhNgxDy4ILP2ov9yPgSLuxsp5LaIBB6eGjSlMkvO++KN77mni07v/Wzj018atPpp/Rff8e3hy+6oGc4TwKulIhVI2IOVjyCK61jyAMdE8MxZF8xJTxQn1DLdW6y5M/rfBdc8kTXvs1Tul/1kkt7Pzb9wr3Xvf7El7zyyrf/3dQTpr5KF/08QsyDfhGFOniSczzO89HITrAmhfEkfvgfWVd1f/Wvqq4bvlm1du5NwZiI5yiopJSCeERBWMSnf0ho10FRHUdQwAlp+wjGiRYS2iRAoEaAiyHG1WDwj9xXRwXjFFy6HM8lJGgRAEJ4C641G4wmNEYwVlOk9eREtjpNICIZgg7LTzBsBGYVkKE/wdIIhcN29VRDavmqI2ly6YkfhcFGDxOpAYIKXrZ5mZpxBawxFig0wFb9Sl0J0sTCYj1usSAf+yDN9NRZ54jBaBMdVMJnIeZjHCBDvgef+DI76FyCnwlqhojd8hCmD+LA0Q3PqZMljfAYn+/zqxPHljiYuCEDUsmNq/7gi2M4+QiRaRzYlHWaLfUDbUOE177iWIUPZUKGP9THXwKx/3guIMvyfk+2e495f9iyMNDHfthey8Ly+A+hyN25Tz+OdXfVevIR3RaYpZcITReJlyhEc3DpdC5nGDUTgNxv5xbchWeHBiZOXDj/zNPfdfes4bve+f3dD/YtOr3vwQ07W90nrfW3BMotgXbvvTD6ZQJw7O+nFPpBB50AAEAASURBVCXiK36bqmUtXue7YOCJrkl9p/e88i2Lu39p2/T9P/jw699z/itf9j/7ByYsSE/593D2jjU8UO3oTrB2/hCogKPXmXbdqKf7v/RZvcxH7/AnIQppmQ6ItIPbV9lOcAJApJBVP8hW80CbcdBFL8gJywaZJveSKOECm2u6pOcwKMmB02OmoeBM4FZf22QnLVCh2wGbpj6eTDAYdTymyDCJT0wO+ikJiMzxWJWTMWo8GAT5X73UsE/wG5bDGPgwSoz+hxrbgoYWSYdEmbli0sCIGVdQRj6hE3KB+qrZAtK4RJ+XoUG7wOKOCGWfjUC/5Hg1xrpBYZVHYurgQQIylfjyTCvJCvFsU4vkbNvUx1g7EbTaGluWnVSbz8kKnFi8CwS1uLRkj63YEf7EBvDhpdoNiQf5MMcqSIzSvHnnBavwKAs1sLpggz788Z/1ug09+IxCsWlV4U4bknSHgclqGBg7JGqnYj8gTCX0xaSw9eTmquue70q0Xh409+TYVeYb4U0iRsnLsGaNX8cpMqfVRUzRS8OmnThvzpUbzj1h16u+uvrG/a+Y3b1jx5TuTb3fqzbplkCH1wgfbMw4igrq+fdAmQA8/z5/NhrrEyge9our/j2Px/3+X3n7O6q5N68dfPp3fum3Tj37zP+ir/H068rfP/rRDCKdFD6npX/fJFaSeWRt1f2Vv9QE4EZ9XUkP/inwRMBT8LcyolgKZCnIZXAEzAie5hFdBFOFOiUVBhxY4iaJTvoEczIlIcHEcrF0Zlp1LL6pI8swldhMkQJpTadG7SfGABU6nZjjqir4Qr/zoXwQtkgygzVB4nNHQCYRRokGokyjZs0CniRInR2hdvhCDcvAemcN1SGHoeak5ORgW2FETchzAvSNa8FR7skZsthP2IQMnKIkmUioTOttyDHIFNgAT/A5kdHXJ1zqVvgSIuhsi+CIspKoPVRI0n6FwBML76PgNQ2yU2LCXoTY39RWgGDsYn+Bp9VQZcNiouf9JVkxaRGNcLBE8ldLjMgwv/2CMAH41ycQuaEutlq+jgXkaJWLYnMtmyNJGMtINfrVRAof0LbCNZvwQ20HNCIMPexp+gIgHwEo26/998C9VdcTD1XD0/VsgFYDDDcBDCOlPs5HQG5luM+nDnyZXPGii/uJouuaNnPmmx+/7Mx53/4fX7rupxdeuO/BfcO9+zc+NDz9lGda+Z0Bel9ALljLp5Rj0ANlAnAM7hSZVJ80y9XWQp8izLKKJf/+bdu6Fs69oG/ZtDP239i9ado5n/jwf+d+P8t0nJ+cqGMNKZ/kuR6PbjROwYYlfyX77u9cV3V/+S/9Cl/iBbIITiQqB6m0xWLnIAdBEQYyxDocRCAnVEY3AmR0LNAYs0mHddFBrmqawedt7qhWnw8Uqhz8M61qAxt4B2lHbunISRfhFNNJCBMOycu2RgIJ+eaHL8l0gvWYZShysUEbr5CIjr8sBzX02YYJ6qVJAfKMt9wkA1mIpGY2EhnREtwGhm4RhVyLDp+pSUGblISgvG/QD4eQTjhuIEpQ65dSaMWGAMaCnLA/eBAJjScw3kHZ/oBrawbsCr4RPLL4sLVk6fSf/S6MMq55wsBELbgZ2WSJAQubkZfhkso+0lP2Ho79FrRQAfT7JXCL/oxmvKAkApvc0yba9OJKvKYRKKjEgP0WYqx4DILAbgTl0YPwroCeD/QxaakJAbkIbz460g0x/8A2bala996ubnc1PPcU3fgTiYVZoLmPxEY2IrCli4yhqSdMu+Tsn3jNq+94esM3/s2ueVvX9VUTdm24f2hheS7gSLj6eZNRJgDPm6sPW1F91sZVP6d5fMWvf9vsrgWLz+t719RF+55811mnv+bn3vuFaTOmvyHf71fur3k7aYsgE8FmPPwoXPNe/5f1Mp+bbqxae3XlQaJykFRIlNoc+B0htJEWB75oSSIJAphqxxFbChXgRKssMoIzOVjLSoRRAYNHH3M6Lpk0ZJGgDENZoiVQogxb4SNykrCQlW0zMRA+rDwoHcCvHsX8KTF4PLkNJVfT2A+rixpi8PK8YdiKJGxTxUb8WTYNt0N14DIAnAXjH0Ro4zFGO0BsoZNMDgMI9RFZ0qG+ZWdYTGjMg03CgbZ81Xl/AhQWsti6yQZ50uVmYlZlv6MU16syQSZHCDz1sYMUiNBHG3loEwOzR/3HqlBYEPsbDiFUwlaEUxCQ29GlP2qUiEU26OS/7J84XoS3zdDRDtoRPeGnJAIK20s//If0BDPQB5aFWW49ocFaawh95opnMsymWxpMvizfdGpxkIY5HmrykmCJTpPz6sH7qq7HtRowg9UAvUPAg8tMEofEpo8CNArWCZ/IXAnvopgzqJ8OP/XkcxZd8Z29j9548YP7Hj1w1pn9d93xaDX5jCeq9Y+fXe2sHq7Kw4FN7x177TIBOLb2SX22Lte5yv1+3uq3YGY87HfZT1/c92+eOXHvve972aUXvekNf6cHc87Zv3//AZ2Rvt+veszRNHHNdpPhIDjfOd67X1f936y6/+6zVUs/3BMPpzX0EH8E5Y8r5bgfrTYBlr8UoAj8TgpJoe9X0yYZIE50kEZgBqBSJxg11fXwMqrZ5+E2hIAzjxuW6T5Yk6SEYBkRnN0MNm1DBIaa0ranpC5C2+A5lhIQxvhjNiFJzqYwoF4mTiBweXWAuGxzkwxoE8BDiHbA7A9DQ1+e9LCv8GHitG7vA9OGgpH4zyhJmqLPJlo3nSixr2hLLvsOUoYJxKrRZ6zqhiYIgEMERfyrHT40MzBk+C9JafAlCFL8qX9JUTbkJJz5RRD2ZEVmkQRqzwtoyNe4BiYVWwuJu2p4XIwn4yEVlR2m1QavFAjnJawYtwUhyUKEkxiL1yaGTs0+zvqQLSIVWt6Cxw6OIWofL0YaLwmmjVtfnA8WFraJwbxZlCgtHbuBWZ7aT+mVwvfeJkBfNTxnfvywlg9+9IUlkP+IRaL8VUGeC5g5b9Hp796+6MR7f2LVunsee8nE3vV3ba965+tR5aVLhzetWaJXCI/6eeEjZsSPOIbCLg+UCcCxcxjUJ0Zc+S9r8UM+evtWi4f9Ln3Zeb2/8MTEvWt+7YqfPvdlF3++t693NrNwXfWT/Mc9uZsnfrPdPnQbENFMAUVXtD98RPf69YT/TTfooT/udxJsFIjEWNP6ahNJgjoYOiyZlnzj8JQCjzHY6j/14OXpbWBmV+1gBaWZQ1PiQTO8RMIYh6xJQdJwzHAQpoeFfKJKLQdfElxtq20TtXWg1+ZEsDXMIKAxiUCfPcCytOjVzboc0LM8I8LOjE9s5ol2xqhGFGZxlYgO2Yg1iPOorVZ0jM8mGYsWM9b31AGYB91qI1M1msJ/yAx9hkIDNsut/Rl0FpJhoTjsRGYYFyTCWV+ot2LGg+ysF7fHaICGzmhB5owNgTBpk5/sRxe8RiQk7cjyAKQjkLEdmbTZRGyDSJswgV5w5CSMlWGDjntorc8t941XCzucoENcjDnRMr7wAYroQAyh+ogCxHGdCPEB5wBkoCn2FTz5+LcMJpfA8Jkq74+wM0+QwMZxIvg+cd9/T3xTYPpsfVtgqlhhzFqgHl18TIQSkY5NB1emVc1zAcSgSSecNOvd6y8+ZftPfHXdTVvOmd2355neavuGNVXbcwEeGSJGay+9H5cHygTgx+X50XrrE4Lkz5I/yX/1pk1dJ048q+e8c0/r+YXHF+x78D/+5K+dcvai/6Yb/X068Xggh6/5jXvCgm8vnWCZxl8pOqAn/G++ser+0l9UrUf1Iz4SQaBxkqCdrijqq1wimwIZZ7eoIIAh2oL5rMdOhyj1hI4NEPojYzAqCExt80WCjGgr8VoFlKGDJeVIMoI5oCZbsAFaXEqBJfW9DM04LCzbFBJNakYUm0FyEy3IVLLsSAiis52MRQQE7jQOaothtUNto9mqS9sTIVBSYTZgKsZpYw4r06WrBGE2MMMjq47oTPbaBoTgD/1ZszcWCEZCLEHYKD6WRJn7kaeiF7c41AaYklbwq49NJkMPbX0CHDqyQHCWbkOMsxOk3rccsF2yGZ0/Fpr3ZdhYD8QHX/gDWo7NsAHZId99yzRFgrMfgzao7EwRsI/CUCfV2o5ka7I8juuwJa7UxQOfZUbtYxF5+MVjkQzEUFCR9Qg4ssIjuGgsKpEFAJawAda4NaNGJkYGXTH63LVf6GuMT+mbAvd+T4sBem/AnHk+vtg/h1PGixFNftH54UCNozX9xJlv2fDSUye+buUT/7t1yZzudRu2y7nPDA3M29p8OLDpiaao0v4xeKBMAH4MTm9TWZ+ROfn7V/y2b++aPeH0notfemH3+/pP2r9+xdv+w/zTTv33XPUr9+t8H538xzthm7hmO9tRw7Tk38Xb/K79YtX9T1/XlYRuAXC6EkQpyjxBK6ADDjDh9Bl9VkfYc96F1EmI4BXk2lqcK4WIkC9kisUZH1dnQeuEDQE/2atiO6wbftmFBQRtVQ7kBEDZHW3ohUChx5La9A1HRqCTNsPjSXnBKdDxgQ492F3rZ7zgqZsywy/WDTgpsQ7TwoNIElKSDdKwkIU6QJhdkzAuoJ5QBF4kKsBj3PgkckGyyzKzg21lPXTstp5aCYMLaVaOrdkQEPZh1hW09kWCY68nCWI2n4WEnbYPPESWKTnii/0jEDAV71/j40p3xDRsz0RBiywfW3TNYwFq4lfJikNGDR0nTtTQIScxwhc9IGpKiFemYMRnho4YBxWgdNyxLyBBn+XQNg52QfPDh7iK/QKVNr7tIF7vSwFsT5ZlIo5rZCFfgMZ+MFpyDRMRdLHDBbMT0/7hWzr3ra5azzxdVSctqKqJ/WJJ+wyetlLHAsGb7TYydxt4NVvxcOD0E171xOsWLLjpD/7s2re+/PKhJ7fs7N236eHh3tN2V2N8Q6CT6AJ7njxQJgDPk6PHUOPzlsTffLMfT/oP9S/sPef8Ja2Z69dXE377g783e/78D+l+P+8D8/v8Ofn4UHLtTtsm45r0o0kIOwQ63VF+4H7d6/+crhrucWAhUqEBNfkDrwMSdYLXdFwlh0lmIEjlPkEHGQRGGrVdiSSWMhOcYEcxA5apJGGOg434hQ0giWnxPfgwwCKYeNBQMLc+NSPYioZ/4RyoYdGnDsHY58EJRjtUBBF6JMcwNraLfozLiOwY8IABmjZ8AE+IV5BOKBPY6ADkhIjqNDjVMQ54Qp4sxke5T9NtNgEO3pzIBMvJKPHEVWzQRsJESGZmeCRN8dvBCUGVSDzBYoxyivmNsKNjkCRA7Laf8LCI7bSkR/C8j2oXQsu+0Z/HA40GbTDyMdA2JEOMiP1kfzrJihc4RSqDF3q1VGGJ9VqueqZJMhiuFEceFX2SY5gVYxfy04iTLTG5UCe5GwHYEPtICpyww3T8TkEjI7MIGwpDYGIA2GlSbaQPNgNqoCXEDx5xmy6dZ8iEhGMfkY89WrXW3xtfF5wxM2zKYttq2yuYb5W14Tp1oddHwx9mEjA4ZerUixdd8cYL7vrmddee9kzf7q0Tpxw0CWg8HDgykE7CC+yoeqBMAI6qe8cV7gN/uc5N3uzXfNJ/5kULe//VwksGH6m2TXz1Zz7+ZzNmzXofL+KQNKIn51oteJxv/dU0mT7XNYIGwV0/Q9p947eqni/qB3w2bws0QVRq0OQA7gawCFbNd9abDpsUaJwQCEl1gJOAEOIgSzO6DEXtOqCprYRtWVx9cZWdCsHZQSzDPH7hRcyflDnoGkzQJekQCDO/BahjUnOoibEEyxytQaaxCWv7DbKBiTkEIjf8IMOErp+6p6NPJFVqySFiUyML9tRgX8TyL7KEwe6Ew3oSpa0xE4yJP9UeEvRIhV2bPGkhAeX3zwthX47YgjMFCya46LhYv+iZ4IEPcxCgYt+TYKzJoGiLEh4ZFOa4g0FCjMhGDbrCbwE3icjYVxTIrVu6nEyhF5FtND+00s/g2W0IoIQ4NQCw3wNhH4dxthEFwW9F6iJU8jTetJvMGX5klU1oEijmsX+sSn3LRFuyExtFYwqOSfhMq022BgXYZkTo9HHjgSRqyc0yTQhLOCDsRx+rPthS60C57Pc4GLvVsPW4DMA27Nq2Qw8Ifr+qeidUQ3MXxLiS783QtsE/9lEbvL3boEE9Py18YMLEgXNOfvnFr/7hni3/cNXmgW13n3VC/677h4d6T9vglQDeHNg2CbDp7bJL/+h6oEwAjq5/x5Lugz0e9uMUHfma38Di3r7371mw//aXnHbim/7dB/6Xvub3FiV/XuurV35xPo6cJ7md607KMo7aCafJz4N+27ZXPVry77ru63qnfwQ9glaOMJDXGmkTlAj2rgNA2wmGwK2AFgGUIJcmEQiA1AamLQGraTD20YfOtkbwcXI0LBGbycpFGDUgD6s2FjuiJEoo9LEGJ0cZLB71zZgCLyxZhmqPwwZBBzcwtbXSYfmSESVkIx3b+bOPQIJCppEA1EQ3Ey8oTR8B3cTGQS8YiQdemKnpY0WGhXBBsExF8Hyx7vGZzyx549r2SWR+8RK6KEjBJ3ar+oy1prECgOZGMk3XaqoDfW7E2AxHJmOR8bYTHtMK5qyJTmRhO20dP1AC018tg6bpVNteAFIIs4rRasdRRKK1haE7SIIcH8JG5Q1tjxytiApbTBOMQad2/EMQdOyQpCf8DSoJh0SMTszQqx0rbdYQ+1K38pAd+9Mikw9DrPcFY8IsfWISl8comM2wt0SDIGAmdDswyNX4mMBhGs/3sMK3Y1s1PG9hVfX3CugDC8KOpWlfJwLw3n/s52inScDEhfMWn/Xm6wc3X/f+1YOb7j5rqJ4ElK8JdvLk8w8rE4Dn1+c+RVG5XKddfq3v9IG1esHP7K5Fl83o/79b5+29483nLHjlz77ry5OnTr0sf80Pnnyi5TrDqDsV6HJp8kQ0GdJ3hh+vevSgX9f39W5xTl5f5SUOWAkYEVVQPjpYWbYJREgAEDkyCEQu1AEHmeEOYsiEHjrImDhAE2DDCV7Bp2QCwhXEgsOYA69w6I1YDJdoPBGBNn2SbPMZJoxinmlFMuIb6FM/6xChE7ZlGGiaJCZUmCn4IslJjgOy6JPtmguJBX7VDsYhy23GADz5LmgByCdYyfho1+NMAdvDA58mWhjFv+R4FQTdoRK1NgWJuYQ+WWxxCeOOPZNkiVoTHiBOSKFA7UjoloUOdCI6ta3G4wGgUWh/GZ3p2GG2TRsYuTUhgCd8gJIocOgNFwgKT5YLEZSWEwwxYZSsTJcF2Th10nGDiKARrR/wDPsgR16wSbePJfoCAjeBeqkNl0GZKdgN9bGg4zauzpMPJAC4ixjNS1efODfAsD9DrvWA9jET54InGeYUN7zIsUhtEFj3gYf/AggSvKzesKHqenJdVc1ZWA1PmiRYYgwKdeFL9LA02onEFfDmhUXmU83rgw/oZ4VP0tcE335ja9uq9929//G75m4b2PVw7+AJp22t1p+tdwXoFwWvrNaUHxJqOvV5bJcJwPPn7PpsWq7zabW/47+pteAJ3u43u2v+RSdP+Oi2i/de/5PzTrvw3W//8qTJk8/jBOJrfpiYT8BcN80+XJiE6NwniCjE3HdP1f23f6rX+j6h4MJVFxlKAcSBBFMJbQkWXcHSlS90GUbNhw3BksjqhCIalisDCYGLLzYSfRZDQCe+ONFChZ0GpHaGYRwChMsJwcHUZkZgRTRytbV+xEgawlHjtpOjRRlj2gjSIiPQAsn6zQExMhBg4eax2CA3Dp7QBRCeqLQNKeCRkUrsN/Xj3x5nFGYzLYyJnopxqvLY8TFjgoQ/2RXJKI3TCFtjniRF1FgGvWp9bLMaOanEFWsoipEiQxyMGwYDs//FD6/3O/qFRCYbCuTuR8e0NEOwcImSPvJhQ54Z1RUs2uiHMeuF1oCQldsGwYMYceIol+w4+GMsXpFo6IQJ+zz5wmgV9WxPtjeOCRMKG3qyXWaAAzQ7ChPdSePhVpPlJpvA+2RAFPo8UtfIQq73s2yMYQhvIOeqLdMWwrCDJoC49ZXshp4x2p44LhBWg3ng9+HVVTVjbjV84okWYSGpdbgVdnkS3sag2OXfEOjr759x0umnvfWm3r3ffN9t0x67a+HeCU88uGNodvczw+vPPlAmAW1+ez67ZQLw/Hjb5yqqlusMI/nzpH+XnvQ/Yec8Xfmf2f/RWefuve4NM854yTvf+qWJkyad00z+8PnkT3Vzxt3E0c4l09On7Q8v9hlUiPi2Xuzzxc9V1bY9kU9FEwET6riaJCgRKAjqESzVJ5ZwslOxcQhK/SA2D5j8QqB4GprggwsISKq4x5+a1oswgiDJV3T5ihc5tgCYUOZ1VIQMQApmWGR74SfYyyYmNbwgCDrkC55Y1EZuglODBuQ8IV1qMmrfbwWObUEmWPgnEibIoDe/5NB3EvW9WgmknycVoCnhvGiD8+0AK7eNiEFqnpSYJUwQIvSZ2UoRF42MYZxOZCIK02FGnrkSa1BHws8IwTIRLN5PeCILCkfZN/Yp8pGTLKYt/jhmQqaHiixrFR0uoce/rvp9/z/JiIQXaJOnxBU7Tgyoz5PKdBwYaGIjg8Z20EcWGxXoVUaspaOe8nKUdCxBZhbGITzfOrGMPC7hw6nC6lgwOunKrOoyMmuz2chm8myJAde2Pg5MChZVwYdhYSsCktXCeXJhORZQ20KPCTQ6Pa4AuOsmqGwTlkCGXP2CZ+ueO3SDUV8VnH8yQH28kxI9fM+9MAngwcDevr7pJ51xyttunLjlW+/b2r/hvmmD9SSArwn+8PFXV+WFQc/dz8+Vs0wAnqvnDp/Ppx7ky3Vq5eRPn+TvK38l/xteeuLZF77jzV/S2/0WtSd/aJsJPfdzYqffXpr0jl+KVDwE1H3t31Y9fMVPD/451hAwVCLG0SZYBcCVI4UChQMD8JEglFgFTEWMdQIQc4prToAObxYcukwHPUoISEqEOfEDywEKApNAg8TcT3EykFAoGBO3IEFiLUMdl8ygjgWGXAIqtFFEE4pFAhAeSrQzDNuNwhYnFvVlfwT9pFvG4LM8jkhcEVhzGogH59ApFXn81ix5qFTxVxHFFqsj0iFar2BAIuE5ITiRB4t5bRc2IBtZpqeKP5N6X6KecUADYbZZLem1H6XUx1NNU5M2+LAR+aGQe/m0KEj15I7aPWGS32yaNvXqT00jmODmzYJgA6I6ju9oM0+oCwz5mw7BLWL2DONW0Sb2dxqzGY0JmR6wgOgwbmRD35NvpIUQ0TSMc+LMulDE7CJJsXOkE7CdjVwMZ1AAQw7UtlWNsDnJ9xhjEhEPTYJlBwU+JtIwhyzAtVgpDbI4HpoTS6ytdF3Qfe8aTQa2axKwUM8FaNHRY8FeLIrSbGdYrttxbX1PAnp6ek6Yc+bCt998YMtN/3Jz/yNMAnY9rNnBhJ3DZ2glYJNuB5RJQPbo81OXCcDR9XN99izXKZWT/9Y9e1pnbJveveAV5/rK/xsvnbX4wre96YsTJk48nSdodfLoDBRDDjKNkzDDM45+p1LjHQ/0XeBNeinI3/1F1X3nnUQWlRyqoz1KRg4YRA3uj8LgK1p4FBS09RU9dvmDNIJFlgJc/+hBlhUmWO7R1QdUXEXSRIaCpiIXfy6pCmJ1Upa3VCkYGaeVuW/bUJ0EBEYdB1FBsQnjpMdBskE3ElOFS0PP4wpa+GGglgyQ/qCFpvqA9TdatplMA1/IVG0l4IK/lkfSZXUglI3QB2PoYNKREkvwJbmMyxaEOouoRcEjqR5bBia+tDIDlzEQWk44ImSOSM596LMZtINbWNnBn/smcLoxBfbivrQxlUnAioUkFc99aGJnkLYWZc9KH7UmGUycOGSCTTD+6ABR8RiC1X3pzbRGB7XdV+uHAj9nGdAkceyTJn/QoQd6a1bF+aHxk/+xkzYykMdXAbXP60kA+x82j4datCFG5PCEWH8bwZqRFRYgLpc4npGLGvTDqo1o8/kFn9UludjjSQQXB9BuWK84sb4aXnBGVQ1MkAD2++jC8V2fc6NR48LFwyRgSJOAqXNOP/WK27q23/LeJ3vX3Tene6Dvnq1Dj+l2QJkEtDn0eeiWCcDRczJnn8tynUo5+QMg+c941fl9H5qxaO83Xjpv8UVve/0XdeV/qk6QQZ0oo5K/BaRNPvnGOgHbaTn5WaPsevTRqvsLf1p1P/BDg0hyEUKoOaHpKdC6IhSokZOPIwqSCQYOE6qChgEGRFt1HLQNUd9BRkBk006xhODkh65EZyZkoRh9/udKXg0ss0pZo8kHEI8bWpQZb6ja7lqzCUVCCZssNvFkIEExgrCHLsLaXAuQdNTwl1QgMvSj2T01oFDbY4M27DKTg6uYUoA3nfCQxK0J5NdOQbiIoQ8ZaEB0gAPndygIbBlothlBz9a0jdsriMCvpmMs3g8p2Of9EuxmthZtPCoJ489DzWZaoDaAJdT6zBQw5IdJ4BICWn3cs0xT2BYn79gBMdZ8zDHu4JAc9n2SlVsS6CfqqWUH+9ICsiLJ8fAwK/sIHHJqeVaiPvDQkc+DkBXk5kGHumbHhnCoyUKRxo3oGL18IxrkIho29ZFgWxgjqoW3aUES/EaJNwiEEReyaGkTNf3YIWEvUAoTJVb18IdgiQHXhA+kDVn6WK+Fwce+Ei9E4ut6Ss8FPHqfVgI0CZgy2TBsrfcnLIdZ2nnU98uCNAmYPOuUk6+4vXv3Lcs2DK29RSsBA3omYPX+TdUSvRClrAQcpoOPAFmZABwBJ3YQkc/Kg5b9522e0j3h0rN85X/DS+ed/ZIrXveFCQMDp6Xk3/HVvpxI+WRqtjvoNShoOc21WHjfvXrY7491Um/hVPdfXBHIRP4JFg4oBAL1CRwUasdVgAQNBRdqAopALEO6dtyABn2q9OerH5AJlhjAQCDmVGcBBjbGaEstLkmESR/xWSy6sU3JjlfUYpRtS0HMNNYjLnVi3ATG1Kf2+CBS8RhoqM8wxGP5RgcMmeZPZIwT/7jOArjiA26daFXBTtslG5GtEnZYkXAwQakPiFywwW0ERFBn6R9YEqN2kiFYrBYIJxlxuyHEWYoUO2mhQlxZsoXBywcc/o1LRNUCJERokQ1wmg4USDCyD536y+ZD405ORnAC9NUvMsSnbvZH3REYiUYg04KSLMPFhExIhIvleDRbgmDBCoEnDtBoR+KnmifRAvB5AC2yXaCElw7CVEGnP7QYK7ty3/jY2F9ejYFOfNbYlG1xIROxIqjpwm5wgQ+fQoQsScKxMFFxuHAc2C5sCjgCY58JJhofv5yzxnMMqZhHuGAWAGzgOD5qn27dUXWtu0sPB87Tw4GzTCb0YRVk5A8MtJtF/ZgE9PZMmnXy/Ld+t7XrO+/d1P0Ik4DuB7cNPzS4tUwCmg47yu0yATg6DvZRv1zHf/PKPyf//3POeXuuP//EMy945xu+2D8wcIbu+XPl3zH5Z/P0LM2oEyvDO9UO9vq+b8+NN+hhP33Nb9tezv04GWWZAxknJsGeIKCA4hjjk1WUoLRRBZMDh5uQK+lGcEWiAELX8cQduILbOs2YISnAii7lmbDLV0URVq3MAgncmS7swxbDkAlnpqMGgy22FxvcMU2dzIA6sdCARgVWiruJz4BkPSBfmaIv/GUbBKeOkmrTNSAijys48JkWOXCqj4oc3GkDY18YlukSCexc3UsHTQdx20PgRlTIdPKHHxoo0UX0DlDaV4LRNwzFajR4DDFO/k+slm8/WyTiXUwbbpEMqBJc8tgX9PkYA97G1lRhN0oQ5MNJNEzoDBCdmTN96gO0bFHRTOweE/oyueWQDbFDQNsXdZbrBAsWGUmW9zOANDeLK2TEZBkxqDyRjolIKA7/Q8uIoRfcKEYEDEBq4yN8l2jQn9tqwe0S37IY6SfwyDilK7RlHaol07qQn3RS+bix5BiLrYEfH5lHcI7jnXuq7jXfq4Z79XDgPD0cCCxmFWFT7eRszeg6JkMBs98aaPX1OoIDg1oJmDJr4fy33HLgmW//y8296++c3upnEvD9XRtbF13QM1xWAhpOO0rNMgE48o7VmXLwA38k/91nzupffuIZe1e94uTTLnjnm76ke/488HfI5M8J1DyJmu2DzGfJ/+ltVe/Xv1J1feNaP+zHiUswygHGBnIC+5NPfkKBSjqxTe+wAizApqCdZCHHQUaR2zYGqfFqOl7kwJQDXdguzohQMS4JjmV/JKILDSgKbgdmdAjnUGeUKKBz8Eo482GlPkQzJxaWRrNMN+gIV0tTH1BEYuuimUhYbo3witjQF6aJwHQQCkdJY7JsTwZED85BWHQpo6B+pCR+y0qCwOvjqz2akAiFr6EAbc9A495IHRMOUdW25f0b+z/8L26NFxkIdFKgFg+JIPyOEuxXFnTwRxMWAEt2mFd0kNo3aiRjobVwapwanGmbbDFcLBmrvkSO6Bcmxg0FcmQLehibEIPqg9ePY8iz6muFIWBJYlQhw05PACoV+4IkjzwVT5TosNOA25qRvtms3OplERCushEQPYNgpaTxeUUMPH0fl2qrGfuwMWYmLDhA/naNCPMBRJdo875g4PQlCAymeojqBSXqjVE/nwMiSjYEe7IDnyJDxVLVsX49KMzXhVu7d1WV3hw43N8nRHJWkI+5jeMs0Hky0ITlbwfwTMBJpy54y60Htn/zXzyy47E7T5rYP/DwjqGyEjCma48oIu/3Iyr0OBZmfy7XadJ+5V+dO7/vFyfP3n/Xa889+WXL3vnFiZMnL+bd/joRPAnj5GieINmHneCd6Eyvr/m1ntxc9fyDfsznbi3hxensoIFhwwqYzQfLZCbAUOVgEakuxQ2hCAwpgaQalv+fvTeP1uwq7zPPne+teZZK84QQFIhBAoOZZMwQY+MR2Qy2kwB2WE4bkuBOx+k4XUmnk3SnV5yV9Ep3u9PLdjvDchvb2NjLQzBm2WYQGJyAJUACIUBIaK5SVanuUHVvP8/v3fu73y3VRRL800i17z1n7/0Ov/fd79nDOec73/lqInOGTHPh1ARSE51wbZIIu82wKYPlpX80nLGqXBOhegpJj1XsFF9O5q3kyPjfJsDmwkjVyTMTTsTUz0wegHzm3Gx0dRV7e1PwNjW63V7hx6ButLZWnJqrbU5tPjddiRQrdQPMqvnoREW4PfQK5Zhm1i2txBKxmuAtWHaBYKkDLyc+CS1lgOpWt0jr2JHBTsFKbymN047HQyyA9DvlJgNJMenqx5/Yg9Zy/R9zuRQCK0McY1J71+71W9eNLZMt7tQuBP0wOOmr/XjYp+jfrPXDCmDLe88bVi+5Ypi48JJhmt+9n965a5icmR1WlxaHU1+7a1j9zf84bDl5YpiaQi8YzROydqTwHTDJcZZyO0714z02XHeaTNT1q3yzLXUAFVKushQNDP+Bs2yiIlRiTbVih27gHAElY3Cr/bI8ruRCuFnwq63KkDkOc/cB+gadQqt91zM3YTjW0Om4EYmBEik59joVPZ64ePah4fRrf3BYPcD7AibWrxv74j6mOSqO8yyP17uQPyfMScDU8tLSV/78dz/wQ9/5/k9/+n8+cdfc4sdvXbp5632rh/bvX735g/vXDg2/tna4edN0e4s61Ln8G4jA+pH8BpTPqWyIQMZwvd73xgl/zvfLfM/fB/4Wrr1i5gXMWv/10MEDN7z1Lb/JG/6e5Rv+WPynz1zgxxf3Xu55t3ZmPfQ1XvF5z4PDzG//p2HqM5+p+cIF1lHulslHF+NmspoKipaJpi0szjrWnbS0FQ0njPw57tjM4CWRRdy9hTbpOeDr6kgpFGSLg16uTtSXnKxs9ZOIsoqH6tiMKJMHBqJJHDO29cULyWpMy5GwPbmqUtpNVRH5E9B/r6z01xOIAMqFkXJUSk9ZaHJznkNF/yMYTCfodbXui0Zy8qONJp9YKJt61MCGLyZVj09cMJ76nwo5VY2rF//N0VE3InBHkJFhJyv+IednyBLYR66AENC3kaagwR3lNq09ZBgLQEReKFN0awGLj7YjPPJ0xYpNNaN5oDntlifBSJus+4/iKivnKRbxxZm5YfGZzx8mvuuHhi2vfv0w9/RDw+zBC4epbTuy+Ptw6eTc/DC1a/dw9x/9/rCVE4Yp9PNtAfYVV53WZsty3GvxH7/jYnMSonKCCkrotOZQNTaRKp5FCbRZWdswapVxGR13i57IFVZJRxk1/PAjNqtNu3CCCK0dO/DKtrL2KzjSVDTmMCu6heM+upGzxEa5f9xU9lSl5L+8TkzO7r57+Hnhrw3DhVfw5sD6hkDGd4wif5a0oS+dhS8JmXpZ0Ozsrv2XXfSajy8d/4O33LV47+9Pn5i74J4h3w7o7wk4442BmyCeIz+RCJw7AXgi0dpcNsPExd/3+rv433XsWL7q98iFO2Yu2bJluH9uYcv3/eN3/8dtO3e+cHl5OV/1q0FbI2283M2MD6DNypFl8Z/4mov/rwwTt32+JgAHZga5kwWbE934YLWaywgR+lS1PkPoVUEUrxYPAU1jk7cLUZswSkZ2m37ItZ2rJdUyObZMnldmLmwxpj+Uy2krtUHpt+EVjIQLmFj+q0vKomEFtd6aMPUtfHcpJu9X4l02ttGvybRkC04jTbX5X3cm9AR6W9My8Wo8shqFT1n8OJX4yy+9nLBEWL4iKhYvKupnYeT2rbqkxLlK2Rc0vOhqycWuLTwa97/FKT6EJC5Sze/yEThosBtUHYXmDTGhFOPlf2td+dCiHTPitrrOSovTKqhqFgjkUiiInCTmeEeiZMrIsMqLq05SXnrZa4b5H3zLMP/s5+dqX/3Tp1YGvlnGXQFOOvhbPc0X2oE48rW7h3s5Adg3OztMT9kK4gJdyO6E9VTjT5FHAhG2LS0mUSvBLK4WHepJtoW6VdtvJSx1I5iT705TpWIZZSuC+Y9u01EmbBl4AUw7ME1QcvEU05d+4pwxmMZpvfc+cJuPaVOMlWYfN0XnBCQHjZoyVE3B8UTqwfu5w+jXBJ82DJwE8NhSCTyOvfNXYnMWWT8O8KNQXhu8e++VF9/wwfu/8jvPvXf5yBd2Ts1u//LS2rEty2tnOQnQw3Ppm4zA4z+C36ShJ7F6OuKZi//We2an5684OH3J+funLlxcGF75b//7/3vb7p2v7e/2P3PBH1/ge6y6zJl55yd38b/3wWH2vb84TH7hi0wGuMN/DWiGbiaKECQ3nlmbnJxcMjulIDWDv+s7cWROKFiB12VgxO82uwQTWsfIxCV8Wc6iow/6GJ4PNlIfLYZodrvlk/ilngVaaW+9mgMgax20C3ae9YYX+bIjYBYEdUnlvzq9Dn5UtV0LRyZb2xWbTrZNVkHdYTOLHiQtjJJ1twabkwfL0HLFhWbkVemLIsweh9FJlUY9WQq21gQdWUkhdzkE1ht9zbEwt15tKedFj0gwAsOu/ExtBJ02ewISk6xsYBmz+soZ3sDTNb+nXrelBY477GqRtFofUyifSoxFDOXRxxrakM3fGgv3Kuv5seWVYXjzTwzbrnvxMDE9U4u+C35u6yOZ9pbequ1Ed+nE8eHYhz447F+YGab1XRlD4KaEDisaX6S0FNp6veKmTgmnN1kMHjVEtS9/tHiLiW85QdBMhKpevTEhLD/Y54Qi5rVbWDKjBqXUNRTDzR4WFWdX7Qe/2A1JgPZxXwRRd9x4o0M1NvMa9tW6OqbgKU8bgpfjTn3URlgPHRkm77tjWL346pwEVL8KmojfcGonAfntgANPu+rbPvzxT7139u6vLd2/dXpqD28r//Lkw/l2wM0bXxb0zRv+hj1+ciieOwH45o5jOmBf/Ln4H061d/uvbF2bfuahq6fftu3alYV/+pZ/tWv/vjf3xV+TmTicSFqqgdxrlZ8pI3WDHIv/wOI/955/N0x88StN2cmhJhKnHU1ka0O/aEwBED0jr7sATgkkZTM7OBFQ6GTxakYAG50CJM9sF1XFM3mED4mJxLlEvfCCzS4TctkqU4VXkyN8WWZVrFxfxXWiZXYyTwsxUFcwyOeSVif8b8ouegKS4kMVsy89/M9FT+HZ4Pgkrk1LrRb8NHnUbmzgT8CrkSmqk6sx9lnwzNUJaDOeSRUSuQuf/BFbZ8WDEmpzvkwhX5/jlF3hxCZV7DQOnldtsWHb4Sdu5l3OghbTQMzph20xh6c3ZsHWj1Aq73Ji9lsI+iocqexRsC6eWVuorQRL4dzmpqYpiWrGJ1odP+o4nFhaHlZed+Ow/drrhpUlv8mCrSgEKf23X1VWnIt/euXUcOyjfzLsm54e+HgZdH1kT5Mp5eQiuaa1LTJMj181RXlYFaJORE7xsp08Pos0QkEPJWVyl0oF+AAHN/HFHuzYk02lnzyM+iS4ZUXfKG2Q19dQUQU1V+nQwLGN4UCOG/oXm4UnTkzGGUrmumuB/+BRqONZPuurasG3QvInwye/9vnh9KXXjE4CwjjLro5XMcbLZxHFfn0cwE8JX3zZtz3r0Gd+9f3vveSyg2sPTq1NTD20sHpk4qFh8aW714ZbDo3/gFBr1dkQz9EeKwLnTgAeK0Kb89PxDjMe7nOM3Hho2H377ZPLPO2/Y9vk9HOvf/bMX5t9xvIX33XD/7j/ogv+pg/80cEf9ZKfPih6Pm6u03oub1T2yp/P/Gff8wt8Z/eujOWatPokwEBuE1oc7YO35QAVlkrSssUC5ZoQpDl15OMDSDDyZx55aW1yiy0nIBcf+U1SuaLVfFMnCbCVQH59MhOTf1UpZMJpOM5jkuNL+G1CKlH3CGR5UBNdJAsorLhphPQlld6OETAs9VkE2oRZPhhAFdbtN4BQRKkVlyqimlAyvnYfSh1yb6s2sRNHFFeaLWTLFsGQrq7+6HfknZRZ5KHnoT8LxY5eabe9WRYSBSi76JLXRC6PLZj6eyYvCsjYKMW0o4ySqpoTr5xoSCkTjSmnbEnXTsFESs3etmpncyX9Rhxu7WNniUX84We/YNj76u8ZVlaWCVmB1IIv6MbUj7f5zNzccP9H/mzYwztup33GFlo2bymQvHuQB/1sFjJryNgK2xn/lFElZpCtJqqqQsUjbVSaFGFZpZTDAla1D1pw4Sd+5Xv0evwjojP2Py/TwxWZJIrYJEKQn0yGVsl8xKVU9PgrnELa7O0vJdrbmU2mJFs74HksvIthyAukYmE/iA2IRx4epu66jZOAZwxrW+bQGR3kZmU968dmw8naOntUSnzqJODUwtatT7/ktS++4CU3Pfzbd2xfmrnznjsnZk7sWps5eWdOAu675ZYJ3hk0ccvIoRHMucITiMC5E4AnEKwx0QyLw3TAmx0iN96Yxd9f9XPxv+YFh+beOrNr6XPveNW7L7jq8r/fv+rX9VtHr4EJsQ+Qzjcfp42XHZAT/qiPt/3f87+z+N+jB8g7EhjsbZDWAuqMIZg65uwQXJeTAR1yyVuWUPUUnCyi1gTByHyXSUWWNiMSH2oHIZOHDG2Qk9KOLBqQ9TOmQCAfiQVX1ChouviKt0WinzQE1yt4pVVAVxu1iEs3SStehAoYanF1NItr9PQDtNFiFO3g6qBywVIHyH6SEh9D0Z415JC3TZLHF3tQqu3Bc0FHPjLqklJVsVLaY1VYUnxzoWh6IWpIGRZ5455wa98yZONT8pZC6Iyqe6y022zYyJFOjr91KCgn9oKwebchx9TYBdgdcq3hoUUJsgoubq2oQn/tc+nAIO5c6w0rvMPiwe27h/Pf+t9gz9v97U6JC2naysN+iMcMOomGPDB5qHyY5KOCh269Zdj28EPDLHyfEeBFW8PK/MKwvO/8YXn/wWFl996B+83D6iI/hsPJRuLDvo4Vuf3Kq/j4zT52bYU+krszXjpCGnXnqmVfuuWnkSmFKFPWoriAgGWY+omWuMELjT6SfkfFRRnB2I9CkxMJduhgqh/bFEY2Yr7x6BidbztKr/lH37JZIgiadqYubGlBjI2B3xaZ/Oqtw+plzxyGLWd/dXBTfUKZHwf4YrRtO7Y/9+5n7d/2iptu/cOjl58/e/KBB1aXjy4MdRLw0rVDt9yydgNefrDQcfhceqIROHcC8EQjlpFRSvsz/Fn8F27PT/ru3Tk9te9pF8z/1JYDi596y2vecNmzn/GvmXxY61gqHLmklgWgl3teqOv7TjcfbV7FeNv/11j8+SnfAuo6DlDMtIk/Q7aVs1jllB4faoTXhOucrGuZZJxsarINSbuy3avT5drKUpMeDNXjAsYkmpxV3LKYFrcmEPlMQJCyRbgq1d52gtFgSlN8ZSA6eeFjJsU2cyU2SiDiFVI1sPkOccPERb2wlGPLBE6OlCbjg1V5/Idm1cWpV7Bb7Jpg41oQRB4FXzIbSgqnRmyTWyvayDux0x4pylWVjKS9hqOcXGXdxpLthBh6cBVRNz4oKAG+hyl66960augVg+ZrfCrVfts/vjTbna2+mIVYJQl1skZB14iDJ361mJYv8Q+QBsd3+U8PD/NVvtkfedsws3vPcCpX/2kNcBWHFnVNQmk1TNjVVv3uOlf0Ky76N/+XYWp6cli85jnDKt8amHnN9w6zL/mOYfY5Lxhmn/uCYeaFLxnWyBf3HRiWeMp98hEWNHzU1fHW9IW56Ni0ec1ulcuv1imqzQq7KZsyMglWJ9SRiUD6FnTk0sVtaRZifVGuHbD0VcXiQFS7t6ULgPHFZBl2oScVwRJxpuJ/OV5l4EKPgDwKPQ72F8p1EtLkJLUDNvkQX7W8+7PD6qWcBGzlTkCbY4QaTzW2xylnL2csx4Fh0q8Ibt+188VfetoFJ17x0Vs/dPOemYXjD9y/Ohzfvnbp9NE1nwe4b7il3wUQcKylZ8c/R90YgXMnABvj8Vi1UQfrn/v7s75e+e/dee/Ujn1Xzv/tuUMnb3rDs1901Quv+2W647xXH3Tq6J05CMbr4+XuRKf1fOC2/+S9D7H4/9th4o77MmjlZTroA39swQ1OW6wLI5I1TPAok3PkkdRFBzaTTU4WRmOpmpxpVtkGgRAqKmDfcozVPhVYaz7k5wQCX7WYcH2MmBQTBK8y2y1qZQsbVrsaibxkSewUqRMBCet05WVpTY8iVyJFhdk9hQC/5KpNtkfqSDsoGuz06GK/5jgiggFj4GSdj+c1GAw9Jelrj2/0agbveKNJlRiI3dV7e4Vyos2xsyJeTGB7lMtXkF17piB3CeKCQvhnWZlGS6uDC60cjtzoc2nkXOxb12mK5Uf3PQ54LDlugdfUuonmU4+ddrrvSulKc0pblKML+NKp08PRZ10/7Hvpd7D4rwxTLOY+3JcIkasVYWTtWimzM0ZB9gSRmPM8+fDQA/cP237wR4dtL33lMLPvvHpPAFfR3iXwzoIAfm1whp/BnXvxK4Yjn/rkMHv8BF9zp2GJT6yVEY2l/5O3hlYsZFebEhPbkg6CXL/hEd+o8z9SLm8lQBYT/+W7eTs9x5IM6JgzH7fTGQVaQoIhExY+VLRiNNiJsu0GUai+iHcD2omJqLRjQptzfAqm9BC071uJzkPH6iTgMm7K+3FADRC92ZBG/m+gPrqSu4NFnnD+3LFn93fedmDnzd/9oeOfvm3XxMKw9LnTD9y3a5i5nI8D7uZOwLmTgEcH8XFSzp0APM5ANTH7u8/6MULr637L9+2amt5/ZHJ+yzPnXje1d/n2H3zGlU9/9ct/dXpm5jzPYOn0yDpWosrAcYJwAFZ9nGe5pzP5E+1p/7lf+z+GiS/eC2DhMBQbnpoNMzOJg7RRtEU5Y5hiXYmQ65kTpnLiWRUlig2LgV4LVdUtI4E8malNuHWHIVW5ioxkopM2R5NdYWRaH8cTUzm9SDnV5pRlibLwue4/h1fk4jnpdTklU9acyUlLfiuO9CQYi4LQ0HqMoPXIyA4ePo+f9MgPVuJZOBV76XCxG34mTZyR6UmPemRjZqGRmlydYMgt2exTLdzoR5mddjyg6FYM1OpyOmZqci0Xdv0kBG6w0FYs0lokkYXV+IUT8qh9JYi9CJubqNlWgwuobVUr+AgkLk1+FePepn/g1Nqw601vG6a4Xb9GPSeRPVbouAZ7DMT3aj39D2DbGii+PWA+zVvr9jz3+mGGdwKscoufb5m1hR9ZfMqfOXcMTvNNg4mpqeGuT/z5sHD0gWGWsstnvAUurTK3AfT3Hh8lIJdk+GpQKNU4m2MgwfON6LfY6DsnI0FXt+kAXx+t5DN1tDGmr2mqMRQ/JoqnRVPGX+AaPuUa0+s6o3pOZMpN+4zjvewECT37S9lcP8EruzEOV69qLNRZzoR3AvgRodOeBGxyJyBxT3/QzuZJ3DZP4hqjAId2Htj3HZ/asfSn3/+Xp7700bmF+ZOTd5yefHDvZicBm4Of42yIQJ8ZNhDPVc4aAUbAxsX/gTvvzOK/c3XXzMFjJ9b+yxVzu6567ct+eXZu7tIzP/e3Q5syaFL6+jvlu86w6tP+XPn/Oov/HfWZv5MAArU5kXjrOyYyXWgpf046+cGcMKGp4l9awy58K5bb5JHJqeHDr1u/ylD2Sj1YVik5OeOHNP0VX7nw9C+y6JT6Bl6eam8yIjSnBCi1cjKuhRfZWEKAvExHNvHCVsyMrrz8fjiVQOMDvsp3V/4WRhmD7lvWwlNGcHInXQxFLwuRxNRksilq26GZy3JnDlxJSItgyWV5YeLtOMq6JeGTtlsb8nW3AkUEercRBesojTYKOQCRhE775UWv+RQ/jUvVuw8uAMGRnL6Eoj70tkAPH15Bhln8mJAOR3n7o37yp5plY+/ipq7x6u2zY8RH8kU++z/1vG8b5rn1v8I3AOrBMk4C0ufoLQieZsuLf2mbLwjyx+zjSejY4L0BJq8c/TbACou7lElPDNIJyair6jcU4ipX/J4IHOO9AsuedOiTvqrCX9ohCDqWK6VlkUn7IKcdYVKJEWXdAhQs0bofHqs6KSgRo+V5reK5Q5HjUFDaTtw0IoSdi/8SZq9eEkz9DAYE5MtnLesHm40WhHp4kPRFVs1P8SQi8mWvNw69gGMcHLm93RNfups56hfyEaV3K89MYvf5r+dnyvR65/fnASanJvdc9dLrf/H3Xrbr8tetbF0+b+tFs3svOjkxd/TopHdhnZnrwiwIcbljncs3j0C60Obsc5wWgXSo8St/F/+9py6amHlwcvppVz5n6pUHDq298r/7if9ty47tz2Px9y1/m95d6Z1b7PHyeLSlh8ftygkW/9n3sPh/4WsZbJk0HHjxil3y+lw8w9XJwIHfB7WTNkfaAe4uWZsDMg04ETmuVYNpnlQGgrNuE26uEEquJqymjFL0NeR/z0HMAilowMWgaDlOuRha7nwLOBynIhQflM1JRvNQqVyVUYipiHp3oIBKkzKFWnTQR8ed0KXrJEbdmGWBl+cMWpjFVKBwIh0Fd6Q2iTdkqtpun+FjxGgbuyaNTbA9LlLKidgKlqSma4PSDOFIisYHsny1Lse40RXokzq5bcVEbFcsAJEgRuzHq6oLHF1BlGEz9MqDEB3DYdWk75Zb35CkzxWXcjY9DJnU3NmQ5lOIwZJBIbZZzLlCP7J0atj+wpcGL4s/hmrxR5JxMDlwZU7fcxM9iyAPDVqynV635+65zrKlz2uFh2b9vQBd9iRCk/Y4y/VrkjmlGIbZBd44qK3Sr3ZqiXoSALY/9RZjMNoFcwuxx1sMNnWaasJlk3NQJZZAbEQOHPlenaOUGKYu04JJveJXpv9Qc1tElhU2/3PSVDRt5GIiZt2JZMyqHJ0QUZQ3cnZkLdjSu7Z5xGy/dvnPNyu++FXmqv8r31DKhUsQH72LP48mjyjVb/WF+4TMpV5Qzc3PX3HdG77rF//49JFtu4fdw3ByYXZ6cT8fwR6d9OVr504CRuF73IVNF6nHjfDkF8yoOEwXv2+oV/za5JV756bnt09PH7zm8rm3zV+29NDh7z+874KDb22Lf74uCV4KAABAAElEQVTuNx4aO3Tv9L1zyx8vj8s7orztP3kfi/9v/Lth8va7M9DbWMvo0zEHYg3kmgQlZB6QzjQXm86XqcNUYZQyzTjK4oe+ZKGEXw+9FZjDPpOIfGc7YVI2F0wc/7SNLHNbn8hiD5WIua8CmQu1ui1ZFiyT0jqjf90tmGiFg2JOblLzZq166OtT4KqRVcZ4a7/YXSJ5xCjpSOfZ5EzC5Zci8dOdPNuveMAt5D+E+gydxrcVIQtUAtCsRgdAcAh5fAl+BxGrCFotQePk8bENZTSshIp6rqxDRwahTN7xKQZQ0lxrdx2s0Jpbo5BXPGGJ4QJI3s1FG8yGQkHfWpvib5WlKlV8MmHktxOrrlV4MpVhxyK+xOf9Ry+7atj/8u/MlXvZdpkuOL8GWO1QpzzJAg5fmTJmvxAUGrn8DlB31FlMDCR0l3wWFjY+emDVn+S2/4NfuG3YdtdXeKB9plzGN/uzMImHWfSBaAcqLY8DYZZtjOYPmSZWbjguIgZgu9tUFOraSNL/1lL11ey8BKX4iqa/RSYqaXNOLNLhMWY/btCq5uTUAsej42a8S2s2qh+MDGIFycYmq3jokwpm8nMSR469LNg+E3DP5/mthmds+kzA5vOemI9OyPvNgFMLW7ZcfPkNzz/vOz5xz/u+sHVpdvnYw2srJ+aGB2dOrl359FODvyA49srgePhotHOUHoFzJwA9EmfP04EO08tvtqfzXX9f9LP6lWFm53n7JrZdsnfhXTueu/ipn3jxmy58+tP+GR2UjzLrZ33PBmen75t8y5slv+rnA395w9/tvH7TgdbHpXlbELL4M1FlHmXiCGafFMzbIPVyqMpdWQe0zi4McyYeyn2Sc0DHpiqhO8At+2CjU0AARuqj2UZYeMo6X0bMyzEXgvw3P8VykiqwalOplo66JJB6ITXx8Kx8jUMFkSDolW61ib4/hBdagoQL0S//M8G3eulrFHvQEgsti6dSEeHaCFvfFZuHBis+w4uRpqOYPG/pJiAiIQgtsdYG7NpFuMXZ+MsQR64WqzxqTyki5+Jfx6UkVIAmXO1KX2Yg2UEvz3vfiDA+aRc5jlfZpFIsiCZj710OieIX1bKb1ernKUGqv/QHyzmbGwlmMX6Yr+OtvvRVwzZ+3Oc0dwP8TD5tLGtVzjG1jRrCRlb1eBFa3IiR6jj1jEAAmk/thKLcEiB0L9d92PDhu+8cZm77HB9hcwKAibJiW0ovwsYykGW3hKQRE/vESAlSt0PeT5iNd5596cwuL6g8u4VFbY4d+wBXAwsrPO2BmAXYY9ixa/HPFbljOCceHjNx0fGOoPkG21Tyb+x0WJ+7L2AkrhDiQ9HVb9EvArzu88RDD/PbJHfwxsCnP+qZgNHx2+iArR6lXLiMaqNCvh64la8HfumavYuv+vjRP/vEwvGFR/jcZvr+0xOeBPiiIN8R8MOofLDU8PJc2iwC504ANotM0dN59mdaX/+63+692yaHffPzP3vRK09+6DWXXHfVi6//Ra4m+CIsA6D37jNwx8m93PMzRBlkLv58z/+3/p9hitf7aj6v8qSUcVhTRA1oaDqZsZQJ0hHqNOO++n5NYEwOCNUJA1xnOEZ4rmScddDQn5rMlQ1A4Waxsq5OyQntwlJ+qV82Q49ciRfdyclZqPsVa00XXzLTVJ4JsET1KP6Y629g42P5r4umalPFSJm0K3Qq+phGieEE2epOsAGgLgj7uEHJvBIyFkargTK1AEWry+GO+jme8a81SW3/M1lHhB3C0TO3YEz0qvaRlyovogJYBD92KLtIJEbFK1+KWX3KMjy1eqOaXyEXMG1RpiTXC0UbnfzEchNCPlaCRTmxjZsFq4P4VT5A9za0cNL5txzcxAP9MjWc4vP3+5ZXhz2vfwMP7/EUufz0T2JCUcVgstB5UuoHDqa6ExABZAq/29bgGAx6KjQfmn7GBULiTU5ND8uLJ4dTn7xp2MEJwPjEWO6XzbjsLlUKRY6t8Hq8I2Ifg+q/x8ukD1UaFdZV4Oi07SUXevzYRrHZE0PopByHqlRfhxoY8ZQopchL90/xfgCiWrIxT6zsb/LLhrGkXv8oQm/xlJakCY9ZDBdz4sgRfkDozmHgtcH9B4RGPpfWpvt+HM3HyygQmrWJ7Xt2v+LmfVOf/KEvb/vMzVuPz0+srJ0evSOAbwac+3rgpqHdwBjv5xsY5yrVtcc/9/eJf7/rP797fuZqxsQXrtx1/nPf+Pr/NDs/d5FP/HMSMFlXAX1UrEfRTtx54516XaKV+uLvr/rd9gWIDKbRzE9RaLHIGRpRqgFi2dE9RkPPcVmkDOnSjWYAqoRcMKIqhjZBV9mUAjRmh4hY5K8swXeyEi46vYyQKZPICAgh/50YiyZK4WhTDOijyyDrnU6bC7E0MkE6OWiDjcln/UqoBEujLMQ/Z7e4VTatRj0ONKyiEILyv2InXjOEb3E9OpouvcRPPwBVNwuvJxwuWtEtWYtVt4CCToQYRhU1R4ptdon1KAfPxthebYFRk7N+VIujOwLAhE2Jme4Lcsi6yMQX8pIBN/6046Pvuthc1bmyIJFaww1NIbe0Rb6+6QQp9KhQKQwkqkQ7Fn3r32VXD/u//eVc/fPwWFtI6rN+JZEVvkplAuM5AZVhW+DZmpStxDlz/m2TdT+Yj551eiE8Mb2F7Vf/pvg5YV8hvCsfDdTLhoRK+/VWDOMdWDnryRjE/mS7Q6EJ2dqIQriUzSHqdySoj67I5YQb4NiL71RzwicQ7W4eNPVkYpWoORjB1wmlqXusSPFJ/RG/qKNWNbcqtlAV9a/5a38wBpWrS4oOO+NLik7k8fX+B3l1MG8qvfiqDa8NLryIP6Edep4ArDrX7jiw92WfePju99/w1Qfv+fTU8tzsqVP1oqCzfz3wCdl5qgi3bvFUae7jbmfGyfji/8CdC3ni/5HjD04d3H5g+rrdVwzX/eSbfn5h29ZruPXv1/2m+gK/mZXe6Xv+KDkG0OTRh4eZ3/8NFv9ba+bJYFeSgZxBVVo6mMXFmZsJLKlPtOaOQlIaAoaTQJMqWiYyB2xRs4hk/IIHqX+ul4mi42ViDmxNWiKpjkom2dh0uhDWyYNS4LpteG2y63az4Gc2UccNhZ7SnrFJBYFgN7N1slBtMwa5ohML2+VPtV+tugJjQvKqNM2OMSwFsSyGBNM4i4e9tKG3XxyVx1ScmVVzF0/U5TjWZ8T6RD3y6lKMXJmrPfSmb1bul5DhtE9lBSKLnEKGSLpJdyxaj891a7645WtigXdO6vron3r2p4SYXOxs7CJln2q+hwu92kQtLHb8t113gjrAQYATcKo5pNo3piSOsb7Q27nqPjUc3XtguPTH3g7DxVNtVCyIL5x9xrzpy9dHHYlP5tCs9+Nu1aTsyM1gqhNR4MTg3+d1KW/12wf8tLDPDqinYpADYL0VksFpC153Wp3oGTvFBcgxaXSqWYgVCpZyfAxBfCrGtiotg4BQt1eo1FU0EKagh1bzArEDR0RVk5CvOQlZ/Kj2whzxkdIGm/YznoIQ2AZCpnxkyNL3CiBR0ieNps06IJIEkvGBPXXrrcPU7/3G4McCdSDJWts2nQtRPxuv2tN+Qnhu7oKrXveS//PXjj648/wTs2vD9Klpv5Lte1nOPRSYI/CYu3N3AB4dovTuw/S/0UN/9903uXJibWrnxNzUeZddtfCTFz9n8f6//T3/YO+FB/96X/w7zNk67TjN8ni962Ug8tnn7B/87jD1F3/OIsWAVdZBjJCDuspxz7muJpPORMqxGHwLqXu10JSdZKyI69VtBmrxMvzlsdXQrQnByTX6sDqvX0mEwGLYh7t5bIbSPnuOsu0tAH1WpmQlhrGel0DV4x++RkYMlJ19zNhGfhgjNEZQ6Pm5f2y6y3+PjYIk6OUFedMPvNRc+ZMHIKJNfr2sD80tsh7jxm+OeKwq6YDbuuOjZoqjvMdG0NaoaFK2zfkKZnKbvu6XGiUnNv/akxC7yIUoQVpjhdbr8EJnx3+lokVan6SPLpNBjI2RcBco/Qijr0lEqp9XuYAoy4Ppn231lb9Htu4Y9rzj3cMUt/75vYwW/9JPU4wdPuTxEfU7vsUcI2MEMeV23LuYrkIvtXoosN70144ZnILzmwE8d8CJwH1/+alhxzG+cutdnMYFpWx1PJU6LQAyTBFIn0oTJRHHpO6jIk08GfqGrodWuOoL2UfVdqbPo5i+XdRqcpePr4VVbiMrdmTN609jwdK4MVOoFMb8RhahElGG//RRy1JVFW/Mhlik3syUtdlUJu+5hznt1HD6afyKYPp2yStXx9HS5qnLjOV5HmDL1q0XXvyi5x14xe0n33fr6ZNzR++8n9+PPrl24pGvTVx67fTauYcCN4+pnHMnABvjk155mD45/tDf9qO7p/bu2jI1d/mBhb+15crFv3jzC77nomdd8/OcjXo6zpyStGlH7p1WU5bH69IywrA88+EPDTN/9LsZqiHrjSPI/4wsz6hbPcPPapihr0+EDsyawUNrMH3lzMLiRKAMg3iEoQ1JYmp0VKTMuA8llwCUnLV4kjlPzMuTiX5kmK3LrnIhNzTKLrCSnUdU0l4I5qm0Ov4pGjl3ircJJ4t0SPEratiOqBAUuj9lGL8CgQyMjrme4weCpaOykz+58SgAyhUnSfHDtsYfc6WbrHK6FkFd0R4U4bKo1FVRiURSYaX4q1z7Ofniyldnq7+Ig6hOOgmbRz3EyDVthcp1jURMwZIXQ0thmaneeJW3GDcbI3YKiootFtagIR1XRElSTpkeh5hyJy0sdpO8mIfFf2pu2P6OvzNMb93GycAKn8P7UF4A4qHy3q7JXSOKPrHvBXD6HMblKxIHOjgnuLl1Djl+MkQ9SfOT/in0xc/Vp86njjp/fEsw3wp46I7PDwt3fnmYn+kPAhr3ak8kcSGmtBs0zYtbOFKrtRSav9IqJvgSn+sIqFUliWoh1tsBKWEuqiELIfxYWPcj/Qr/0+WE0RlS9RsKYUiQgUX7V0rsiEvXy82tdaPxzbiJE1gE4zMV7+5IK4p5mRGx4lW07NMWnrP4ypf5VsBOXht8SXdR8ToeKT2xHX7ldcFbd+547m0XzN3/XR/72sc+tfPU/OTJk6v9mwHnHgr8+jE9dwKwMT7246E/9HfowH0Tfu6/ZffC1MJ52+ZfsnZg5bPfefVVT3/1y35pZmZmB5/7M8dkaK4Pto14qfWBeGY+EuXqY+qztw1z7/1lfk84QwlWG2xZTNtKmMW3OA7mWmQdyvKjUjsHHJOPE2cunWC2W2c18JhkdDs/RyuvW4stdB3w2drc4QxhSoZ8zRQhxGyj61NS6s1n0G0JSAIHtyZx1Z2OkdOfAo+Mk76rvwtsM1pc25TVvnT7xJZF3Xg40Y9PoGrxn6eusa19a2mbpcRAv9ALi52TdvenyUdHoALD7dY2D31ufRaLPRLgiRFZ2yt+2cjHBz2WShiP+EMFkTRNVSfX3g6q5bcFhNRXJkGU5PGgTerAz7ceYi5CoZf9ckOs0RP8wROLFLsq+u+OTUx91KbbKDbKtEUkMUAfvk0ouvJjx1S3hZYMBnfNhqM8+Df31ncOc/vP42RgKYuvQjn1iix2E0daiqJFhpuehn66zr1T77ZcrPxKYRb5yOIDJ1317YhJuXEi7QuUfa/Crk9+FfD4ffcNU5+7edg2ywlAobfjiWqrZ4GjkrgYn8Sx2qtt25kEdvXNFhv7AdLWiq4Uwsa5czpeQAIgO1pxVpUk7dkPmzH12Mq+NG3V3jjGOw9CQTY142XEm2QMlUxIWsXnQlKq6uVNUZuypKRYZhffDC9i1RSJHN8vfWZYveDyYW0v3+O37zSY0v76e9tn6rllxjvViYntu3d/+yfnH/nTH/ny/B1/MXVkbmJyNg8F+psB3gU446FAVc8lIjDq4+eiUV34zM/9fejPz5b2bjkwcXx5debQ97/25+cXFi7kPeX8Kg/Lqz38CaYNOtwWm/zqvcPs+35pGBaF9DPlGiy1kKwfoozPDEgHLjIObAeRtDE3nFwy25GJ1QdhJgcpTor81eFnUFNMXVIbZFGy7klEkrm+1FWMNaeViloEgmjdp79HeGKQkumIV2jCSHDiIw9O6uyc2NtElDZJN2nQsgoW+mQFI/oKeLVoFvEmR7mCg0cAKt1T+V8KdWUFX/9UyU5fVC+dipn7ss+LykdoYgW7TWq5OZRwqQtXdxJL6gWnFTazRsBcM4wMNNmagi96eaYQ5cbXl7Jb4vFfVa98gxvQdduhKwuwcgkYZY+Z8uYpa4a+aAggK2sj4oN+JVF3oZUnJ32Rqscoiw58lanrvXt/rOcYb+ebetPbh4ULLx6WlxfpD9N0C7klpZ14bY7+5GgxL6sAceuypLMYYDdjirbEFcRq0dNlcNnUSWzA8h0A1VHMvQJGjzcFGoqFA+cNy7wXwF8gNKXt6gsQ/4pWdsAGT3a7DkCCg049KgKkoqZF96Vp1WRUItNqxspIlB45cEZFwJKEZsE2B0rp2jh4pZkxEiZ+KW9fqPZopjhilhlpAcu4hKuKtAgSFyoWhZIxFo7U7WfGOGbVS1JQHXa9DsrEydVh5rd/eZi8izea+obT2GgiZ8ni/9ehw5/g5G11emZ6+9Uvf8m/+ZW5ew7sXtq66oPazt0+u3XuTYFnCWAjnbsDUIFINzxMd+yf+/eH/uZP7Jnac/6e+Z/cf+XS6j988z/cc/C8N/pWKhbRUex4IHXzCMPpndi8b1Fw8b//YV708wv8tvaDDBjcYGD7eFQmgQygBi2rjSVQMkAdXJbzT7nVQlPURmVru3xXXB+cAOWtA7bBWljF7BORctiT5SSkT2MTRWRBDL9ZXLdZXMnS3NdzBY0Q+9IaN3mVozOqNz52nccyyYJW7W3yUZBIXT228pn2tg+QI5kdjUgslatiyHqYAjrybScEaV28iNppwvCwRMVE7r80+0RkIAvGf17aQ6HHM3cPWCi7zbRH+wbZfyByt8GJPXagmYsVcxQoxT/jQkF+caHHqPWW5HnwnKxdoMXRTjD0S3zvvLhg1Eli+higo7sG3TaKmfijJBHl0ckA+jlO+GAM9TZmJ4dHWPyXv/sNw87nXD+cWl7myt8f+0GeeImXNgfTMYCa8WET2kW/Tixc6uRODCu8P+CRY8eG+QW+hasbxiyLd3sroK3DhrEwPp5o1NCFEjl6U3zz7sMUrxo+PZz4yAeH3fyWgG8WxGLhFnBrs8QWN/K0McFE2oCqZ+4dtULQekqKIZRwFUICJIkUZmxUDbkoGH+hG4ayiCZe0Sm6OgXU6+I1YXPaHzchBy+00lkf7eVF1ypu87GcL9sck4DEZbEbaCm4HzXJtnv8S4R4P8Idn7tvG1avuHZYXZjJ8YnCJjuPW/p2t3+GHDx/NOg0F2bnXXDdsw687NP3/PYtyydn7737xOqw78E1fzPg0mvrTsDYDwfZxKd8Gi1iT+FIpCMcpn/6uf+hGw5M3HXs2MT80ZU89LfnkvMWfnrb9Sf//M2HfuCS5zzzf6Gj5WU/PV6Ptfgrp4wd2JS9Zb/u9/DiMPPeXxqmP/8VOG0BL7GSbTpRcnKEFxxGUiBgQM2A3IjdDCkfJUdpKlV3MFonZWKS5YDuPqhD0kbshKUGf5FDEoZ/mndwm5dvVe6/pV74AVAJJim6lVOh4AJnSyKtBCktw19pUQnNK63I4UedwMDtAq2ZpVt6mXVshCm55R6PEFGHph1XAsq5asxJQ6osFEhYV7LHM/YLNxOxMbWKf5nouomYK/26kxBrCEZ0HQ+56iO0TiC2Llm4AkHmT14iZT+wHrrhpaawq6WcYlVzu5B5UvOTcuKYdqllcl/Y5QvlfuykR4hdGtrE1cBstUEeW7vqFMkTi5Ms+Mee96Jh76u/m8/8edd/ksee4KmcmOtX2Y4Z7AaXY5NFv/mRk1j07vnKV4bFE8eHnXv31dW4x0XcUs4SnhMMCC7+U+jk9NqTDp45KFFo2sSGfevIh/9k2IP/U/B7u8ujdVz7RJIQvd2eV+tvc6A8CbO7Q1sbkmdIyhsn/qXWv3npNFLMQCVJNwOZYh8v4SVI0KCbtOMpjYQck+hBl0RZ84Wlgp5WXn6U56qkFKyOU7zoxrB48KJeRiyPbIqgPRUoxA62J47wq4sPfnVYvfLZwzA3DauOBSa/0ZTnAbZs33btFy7afuSvfPz0Rz679cjC2r3HTq+cODH2psA7eFPguZcE9SB/01HvQN/quYt/fuqHhvg1Et/0N7d768wzVmaW/+C6qSsvvf45/8w25lZja2xNdq3ydbJxHcdJJsbTE8P0+39rmPoMX/drg8/h44Dti2v0HE1RkknqZUdxL2eEOcA6yYEWtFKwmCo78GryEpcJLnTKY4tGfuAH8JpMlIua1ilTSXKCodwXyhE1sJhpU0rHr1kgfoWEfIfyij6LbmM4oXij1qrWbOp645yIQoVG9018uqKYhRXNALQuPgJz9rGCfzrQt9DENZHzgGMmQ2rVkjKlvR5bveywmVDTZvDJywJ7TTjTN+hgpawN+GkrRhCJDGQXtzQRQrUdnmX3AlPqV4bWZEjv2NU85KXHhkIqQuM4V5M1WNToy4uMYnFixIxJhWjkeJiUh1rtAK7HqQwIXguqD6ktrywNRw5eMhz4gTfS1erYOn7SbE8UlNVXbNsVbY9bXeljiav19Gr4+uOP/nhkv/zZW4YZftLXY7lKX0zkwTV+nKoHP4sLSpMt1t62F81maiQnBIJxUj6/detwam4hPzqkgH+mUdus6Ji2jAdY8tKX5FG2nuOjAWUbRh1U6oFUyvjQ9sTOSCgqUx7YkWseCAPdLf0f5miRDTkCOT6JAbrxo0Bio5CMDbLEKPXccqEUDJQypGK4yRAdmHUnSh9akzxWLXW8VF3I7SRC0KSKsRWtFW7GN2I+9zT9n387x9LfeniiaXz+bWVPAoYLrnnaz330By+4/jUz+xd3XLR/NnM5c3rh3zjUXP9ErT055VtQnpyNexytSi++Md2eN/3xq1Le+u+f++/af/HM1XN7Jq9943f90/65Px0tMeudb33gP9qaMuNyVS+5mQ/96TD90Y9krGSUMDYcGA7bDKgUMyozAB08smsQMXgpO4QduaGFV7TCGRFisGSiwVxLrU8ADlInogxa6MGVVqneb48fZZxc2/iIjnvtm1JGK1dvzmXId/8EaxeDMOIJWbNQK2fk6wpZEWNAziTT/6iVjLk29Vs7yumCq4aJzKZUDFNophQixX+FmGBDUk+gnqSXHkIhNmRBqddmsXODY8VNduQsJxCp2k8kJ84I9SfbcxLgZFpgie06UMcikolFAJDRiOXK69hJ8thUUBJW1TEaseB7wodtHPYvGOy1lyaDWYjwEpLyOT4K0uKuRtoTTXfwehBiXj+gc0y88j+1sjwcmdk67Pmxv8GP8qxx638FeBZeJuu87Mchpd9kvEpLdyjav1oCLP1NUK7wszjyaM4pFux7Pv/5YdceHyiDBTtuatpKa425tXQR5IxXzEi0ocaE+HpypD+nF7ZwApAAADvyouAgp+0es/q8QhCaj/OKZnYIiZ3tZ4sddwjohHKtWjkyHt/QbB8iMU/JsSBmQDxVqQVZkBGuCm1L+wPUTr50KDAK9NTKZgma9mxPc82iPkJI1mKUKCoTddslN5UNec0/YqjfQCllTIroP8feWMx87MPDzIf+DMI4lra/fvIY1DhYl6Nf+zzAaZ4H2HblDS/6X3/vq5/fNntqYeLkcPLc8wDrYdpQ2tBdN3Ce/BV73HA43fHGwRdHXLB4xYQvkhgW5ye3XrBv/oe3nL/4yM+94R3b9ux+3Zmf+6ubiTQd19qjUyaKMX46LGe6U5+9dZj5w1/P4MgQU8b/GnUAOfrh6KETg3V5jqWMvsbTJAM4JIT9ywzUcaBlAgqGPK052cRcpJ1Q69sAAQ9tNNA12DdnlkAUhvQahIg0reQOTOVsAqkGafkWXGieJIisWORsAEppB5yaNDwpUUCemTt1k1FA3lkyMuEUo2FFZSRavgrUmxFMf5DFOwZtkiw7AKJccmPyrT1dptyAL93JzMSEtu5yk+gGs0DAdwEwIZjjS3XUBIKRBbs5UFdeJa+s6HX81WgAxgH7odP2YNmmBApd7IeGi7pS1jRqJRyBR8crIZUnS7qpxbmqxYg6bVlfkJo4spn4EXB9XF1ZHR5mwV/40Z8YphcW+Hlebv27iMfnmn6yGNvA+Fgnln4Wr785EeDJ/tP6oFOKtYvFO3nBzKljDw8L27Ynri7sjpW4r67w9itRIPqgXx6O1H4/kQC7t9O+6kOHE9t38quAPCrowbXRNtmdeTZ3tC9BQIDxldhKViAdl5xjPjoRlVUNslBl8kJSC7wRmUKcV4lENYLsXKhL1tySdhARSIpVgPyTpIvyylXlSRG2z8AIQckm6HGBL6Vo6tZx6tTGhI5OO/GpuxliYDeY2QWlQ8koluhlQV9m//OvD9Of/Ry6j30XoM+5PV83UCU+bp3ifRKnt2zfft33/dL/9LNvOv+KlX2XHJx75PhEXuQ2/pKgwyMnujNnoj3563Vkn/zt3LSFuR3ELQA/9z969M6pnQ/PTe07f2HuO6YvWLr1rxx6/nlPu+Jn/YoQKbFyksjAgVCL26bQYXT5Gmw89Hf3/cPs7/7yMCyByRgYDZYMWlQcFw5QJigKXQCbNQHWWbc8Ups0s35Fvw3wDLM2PeRXx7xq6AOyJgltFMUJGzxtbpCBDy0Li4IO9PD1SVlptbkIWE8OryP3288+QFaLAvKRE0Jlkrho1MmPkyDawhsY/5UbtT2k2tleIUYLKsJBcu/kJ4h4RQ2c7RE0ErCdkLL6SMFHeWKSyr0mHx9Kr6njL3XFlWfX7RS5Jl8drOMuovIIl0Kq8V0fZLMvjFSyAOhrYtj4eZKbRanbrmOKtn0F7LJqPJFhb5tNZumHHieThBa3LODjgjJ1RMhWtJKTJHmRxYYGygr7il3vK7KEd3uEl/usfe+bhy0XX8YT/zz85efuMPKmv9hYy+121h2SCzBYtpFObWT0z79ykRaCqWOTtPf2j31s2Lljm2q5YjfW2tQP29vffufJBj/Thd2I5uRDG2mfZknGrsdzYvuOnAD0Q1UC5U0k9YHUj4PjL223DfDSdxMf6/aBEFUpfvQV0E9PEmgrx1B7I5s2RLkxnBBKTW/zZ267ksdO6TQxzBtLZOTpp422LHACQNlYQRnR5WvfmEXJwEVCKcrQHTf2O+VI1TcxIK5qVUq5xzV6iCce6I7G9hLfDHjfr2RuHPgF1M3SaM5oAoX7aGlPArhgW9t36YU/feePv+I1P3PwRY9cdMXe+QtObJ+cXjwy6Vw/MOdn7l9Xb16vE54KJY/YUzHlYNMHaD9X//fdN+GZ4dSe7ZPDzDA9c3pl4iN3fWnrZTd8+7+Ymp7azq1KzwDof21Cr4oExsXYwBiL5LhsyJzdTj58ksX/3w8Tdx9jEEltug4osaVI6gPZiUExB5pM6OKGKKOp110CK22wy3CCgxIhJ6FUpBc19GBpV0zpGiF1mV4NST5bb7O+jKAQ7PUmFqzWJieoJOeR3uPaxKHP/tdzB2qt4/Kaj2bDycIpmj9PBnQXwG7fY1BmZVCSobxbGDZE3ZJKMwTRlhuQtss/4xaMiLrTYSfqdqyNmRRYarvfgG29RBRrE6TIymnIHDx9iT+KU7YKx0lScm7lY6S+wVCLlT6WFAIoRF1IN+vJUom/hVy203ZY0ewwKDYX1KymK6EQspqLXnwq3AJQBqb+cRwtZmHpIgYHb04urQzHX/iyYdcLX5yPAfyFv+jnYTtMuOobdxe/ug2AFn+5qsxNf8rWa3PBCDKHRFNf+4uPD/svvjS03IXRH2TqfQGF49AxMGYmHu3TQv683d+/7ucFtxHUwtSOncMKvtUxRwlj1aJCsMPYZnfSjUNrsrWKBZzwRnKtLl8agU9Xpt3p24mdhjgmxhSRsmEhSFWnipPZ6gTECiLuxEjnkVA6xWVvDGNDwZZanMUrn5pN2RJC1JdW7u2Ub9u1ASvV5qxZ5BPP4mXOKinEmxOq6qvP2pBN3nuUufE/8Cr0RQAe352AQj/7Ht9AHYYLnnvon//azIMX7j22dOrUjpk8D7D8wPap3bffjoc3eh5A/tRNT8XGp8seTtetW//9c//92+cnz7v8mtmfvPDFy6/513/vZ7bu3H69t5PowPm2ROtTG3rLeufeQN5YcVHhoaWZP3zfMHnrF+ExRPQiq6EDwr7Kxn8tUm1UKeegi4gjy8GoUNuqlpbk61sML7t9+RQDSlfKkW64jdjGd9nOTAnDCSij2mGMfG45IhKbJTq6rQnNKTDTZqCpNRPKe1WgKSf06GhQBxVqRQsjHeGjD6JyXoFot9kQjJ8BoR51oOoEqXyQiEBsIFdqkc0E3nDWx7v+wcZg7lyIrfS4M/oSf8tej0sEXbSU139kXCyCYFsbp/zpwMq5RanJaFsIdKtApSbI+CaOuGzBTFlRYpC2it3sRpa6dOXNBKUwigWrXC0CYVZ8NU+VPVsdS9WyucMdccoMMgpHgRw3FC2X5RWGfXGZp/yPXnDxcOB738Ate27nI1bPPYBVl/uIGw8XWo6AdtJfqm4/LDoMxk70jTPvEbA/Hb3/3uH03V8dzruan5s19VvmLtzNj7p3ILPuIwTFxQWwYFMoUQiY8WjYzsl5HgLEjnLFsKB2COhaRdrDoAj1OpIU5CUM9i8rhbNhnpDsZnJ8KRcgdsnJLEbOXVXyOT2KHqWkOK8r2tIf6DlQTSUHCLoQjiVOqEcGBCDGMRIB61bHMCoo5UfY8OIUFW02P6KeWADAyYsiaRLiPelCNarj9/jKCJcXMH0xD0YPWf+LJvdsyeNnTDfEdUwQ+qQf285vWbjy29/5o4fffOmLTk/zTJfvdLls7/ZzvxfQYsVhe+qlw3TFm4cb+crffRMD7/n3ttCweGxyambr3Dt2X37y4zde9Yr9l1/yTm798wDz+vf9N+tsZ0ZQOTtoT5ZnPvKRPPAirV9VVcdvA0LxDBjrDqBUMmgc55l8yPv4c/g52JWKqoPZq+pGiLwMk1dX+a88qtFCKqO1xGIlkwpywuN3rrrEbCfKsSuPyaGa6NTnYDZ38KvbnCDPhCIfnpu3OwMnZGjVpn51IkroZt230Vyh9cYPiGUT1DbxrLMbLwHTrnJebVhAWZc6hrm+jvykrlg1kAJF+KP2Ij/6LB+imoUvrs6i3I+fRsTXP7KExlI7XrYnrslAL+Wc+FRLtR3FYBLzVJFTJisQFIHDN6ONrc0yjH/YWRyUNRbVlnIRrgIcACVjX9komYuBjgsVYqMQac82hdhaAWltjc/rea3vQxNzw643v51wcPudEwDHBKXCS1vBQ9ercHtEXvOrOf7sTxHxJItC76P6Gwxmrds/ftOwbWZ62HvJZfE1buhfMFqBQ+FHDUa+zuBhevfB+DQFSmmz4SyjiPCsgqcsfjVQmplC+Szc+EGLuH2oGdRGjnlk7WelY2bKWhubASoiOAlop/djqnxoFCJDvRHEqxMLCibhzNiF3nxu1GRGoNQjGR31QksbiiTNUvUfy43eCuJEKXIchNZI41G6OmGZaCiToBZLy1GPbpCKALGOOVWEpm9invzoh4OhymYpNjdjNjoyPg+wun3fnjd+6u3Pv/FnmNv37Dl/zrneOf+BO++c6j8adLgCpmZcbRBP+uypdgKQg7vhs58T+0e3/rcuL07+y09/eNfF1z/nH7nwM3m14XH2fjC+yJ8p0TvoBFcc07fdngddMjb7pJFbf/RzB0xGS89rsNZn/qDqMYPGG6LriSEDmAO1D59MEGDV1ARVuI7tQkGy2q+O6ky/4GtgikWdnfnos+c2mOszvhqqmWwybddALqvutQNNAPICpMFZqKzDIMukBzO+Gg+NxkVyJo2uHizxIuKVnYXG1y8xgie5bJcNbUU48nEkMS6dUV3byJUftL8bjp/6XeAh98WOSu5sdMNoi1ei4uujG4IQo5u9iopqR17YtdOUf1EuDRfaHK9SKTwAghj/otGwGjb6LrO50kZ5JCvbtsaPlsUXKJqLTxDok6XTJZuN+KU+9JTHfBUb/cBhxE/LjnHrf+aHf3yY2bGDz/1XAla3+2MMD22caNFKG7Q02fqJ/TZN1BtVlHMFjTrHGSfuYpHYfeFFwxwPAHrnIO9wSJsLU4y0RfWkRgfEUp2YmgPKf86PEiMWIb4FcIq7Dp6op9soL8bIBxQMqK6oblU+7Up8lJNSzqeoL6kiK6GzSs46/HRhT/LwXQjAxHOLn9JjQGL+RbXYh1Q1hL4amnRxyQjHSEfXtBsbtsEyf+aVohGlJqp41Q2IW29iC4LszEEjY1CUi7hlkbHQ9FOV4sUJqUThU539g9/gTukXYD76eYA+r0aJ3eOZg5Xlt1t+7n371y45/8jx036924979566qLtx5vMAHf5Jn9vlniopB3v0uT9X/976H7gdtG1hamrXJVfNveNZ37b0+l/4J+/kZRLP46pldOvfAJ3Z8TajSR91Sj/3f4A3/f3B/ztMnLAzOxrcu6PMIOoTkHo12mswKBpSBhoV6xnFDlTLbEwGIVFJ4zKrMODbrGG1rrgFIbG4OgDrZIG6kwOyDkIRsoAHqOQyJWRSQi50dMh96rzqzS+xm8OxWaO5fEQhJyoynOGcHJ1tpdsQJwD/LZs7cUcWGfJMwtDiYa4oLJVOFGwacrkLQTEBEYtUt5ThaXbUAK7ObISbJiJptWjWvYUdJdshSw35VLUUX6y0sNo+tcttStClWA9EbBvIAARPBSNuID3ZU06M2plXm6Rl0lQ1YAqZol1+BQc+MpoIGItAL9fxjlPxS/461Hh74kFTi8HCAL9ONoUu3PKVvcemxdc2P8KP/Cy+/LXDzqcf4on/pbxMR5c4oWap4D399J36RE0qtsnEiu86RcEH/LIgZmFXygVeFl8bnOaFQkeODCu3fXbY8/RrND+s8U0D0ZQ0JTI015PCXMVD8VB5DOuq3j4gXoihZ8xi378p3isQudZncsdE38CLjh4LSAVPrdGu4svwI5ro4PPoYw9NlUGlY9PcTdv6nGMiyaQv9guLqWdvqaWyG6Z+RhDl+BH15mOQyz80E5tm17U7/S91eGk/tOoq0alxYyuVZdNO8lCqTYkN9TQgkCWnThK8Eg+zjq0HNPd+SiRNcEe7F5czZ04+4LNS+Tyg4VCtAzCqn21e7szEtX0UMDM3e+nz3v4jf//GZ193emHPwVnnfOd+14Cn8l0Au8BTJh1Ot6zP/b31v/eikxN+5W/bwq7ZH5/bu/jJVz37xXsvPvhOPjsyJpvG5sxOeNYAOnmd4tb/H/Pzvl+6a309yQBymqHzU27DKJ5lgpfPKJMv04lP5fAUzhihkIVD2ZbU64DBcJJRQVkzMSm4iDKIai6q6aDEStZ9/+xePOs5cchkSD0EJ6tIyo1PxYCmbbKKkbOkpEbXkJjyoTY3Q2uWymcnWt1UObKtoH6IAaVMcCpMDc3JNzMzPASNh1W20eQGRrW3QwnIxsTZ3Fv315InLCbytAlcYeNHFDjOOhv91iZtuNBhOP40g+W6ym5A6COfy4ZeJPRoUOSVkAg3sa9iaJB6vJQqOTN9LZ3ANfUOM5JseB7nyOkHqvGjNbdstpio2A+IQh5DFxr/jY+6AC3y8xgPX3zFcOC135s7AbXgg0GT8lGA9nwtL7qaqa/ZUdZvAJTRFW+/+2BgvilA3WXCO1KxRf2O//rJYQev6t151TPQoS+nEeUL7MJmb2SzEHNXQhHgc+zW2nMAuJU2R85jBpB/k9P8NoHtU0nfNsR1LPIaCwIiOam1L8RbnIapY+gWasBUaKmNQWqlC18V6x7/6NpuCBI70yJlvCVjr3sGja1O9ORrF5JbxkdQqchDAUZ4VkNUUEPm7GmLLri49juR2vGoRSxtbboOBsHQjR8UE3NthV6wCTwIkioeVXYM9D9t2y5tT33p7mHmA7/Dj6MFSGObprOdBJTv+sWhqG8FrG7fv/vNn7rxxd/3ru0Xndy6c9+8c79f++4fBfix8GHdq9TzVn1yZo6Bp0LKwcytf24BJHHrn5+Imh5mVqa3Lk9P/uqdt287+KJr//HU9PQsndKr/1EHGCtG1Xo6rgNv07Q2TPM1pZmPfxQJu7xpfV/TSLp7kcGy4zsIahg4spG3nklEemNLFiryUehqIZY1FtE+pvXXCUkDybs/RbMZ/FfKCJWvEX1Sp3mbWUDDva7/iqld9N6G/lpdQWWr2lNJ2r5mFUcLCVxJLp7QevO7nnlNFiBEUELzNUzK+t/8ET5b2lI+yMpEpnyShGpPmhA/oZlnEXeIgIkz+TOWBVLq7aHEONsbH6Bi12QIHqlOmgS2zmYDvSsTn6GERSzA10TCnYKtVty2lXZO5Foli3HK+lnQuWIXRz0xQqbuIgtwOLmitVXUxC5p7CKfA1Z4ysqtCZ6SMY88NHNCdPoUv/A3NT3sftNbCdtpfuGPr//R1ypWaqvfMXruJ/PweMbWRc8r9oIjd2GHa0xckKzVS6nWhrv4/H+OOwE7Lr204oSu3bqOo0ac9PUxpLzy18XflwylWca7tc/W1wkG48UFjlj5bYUckmBmBU37Y0y+8RQ8+PIjSE65DJTf+hwnlE8LkGni0MMKcusTgQTDppSKJcrySQYQxvjFQJyIngolVu4YTzbapFp6ePjsGnbgULE/mGx/TpThRyiZ8hBsmn863ZNycZQsd+fgCQpSTmJiWH23UtKUkYiMY5xSqTTdOI+3EKdvuomN+bO3vyC+qf35h67+H/793CMHDxyZ4KOAmRm/9u1HAZt8NfCbsvWtoFy97VvB02/cR/tY+7pHfeWv3/ofti1M7rpkH7f+Dy29/F/+3Z/asmP7C3xydPzBv7OZrQm69eizCPi5/+SX7x7m3v+bcPvklWI6v+MhIyITUZsYHAqhyyNZZjDECrtMpBFp8m1OUK7GYKOr4Chjy+fiZYwqg1ce9T4ZOD2YIleWkHFxGIE2+zUxKO2EEh2NZrCmOpLLhKegM65Jm81OqpIbTdm00MlQJrXkXjLqtz7nr3jaS139rhsEUMRVOZMO6i4+/jlhVcNhqtgwklN1ZhO3LVaaLS9iRAFSYfWS8apJuGH3CUrdTIRp4Lo/gIYS89jT1x6HkW+IW87CJVBh5+QA2SC0eNuktKmcjZ1c/clnk1xEolUVCVV2kQ0eiIj3KzwDqJqLgIXEoNvT105vNpTQkNVVPi8/trQ0zLzhx4fpbduGFV77623+dAHaE1m/geADePmD5jFX2fYqSDE06apEjYWdmMQkAtPoLx4/Pqzc+plhjucLtvHLfZM+2e7x8DCi5GLuRwi6XItVgHN8mycBn8Q/j6E+NNNeKcLj6nN6hnBIF6X0Ew8AejhHi3LY2E8TlFfFNsQDygh4XFvW+YHF1yy40VGm7FEKXd3WcwSNKgy5yUIpl0OLgA5qD7nMU/ZHj4FqYuTkjlxl/Wx/9p86ETWn7caz+Z6+nqaBCY7kAHZM6vU1zjAaXxmSJI9hj0d0wpERfo+tsrouQHLYs3/0Xn5C+KvQHv08QEd5PDl9YdKPdRe2bb3ipe9+29/78ec+89TCni2zrgF+FODXwM/y1cAN3j4eO99qMqPu863m+BPx93B62qNv/e/Zs23uhUvbV/7khZc/57ynXf7T7Zm/DTHZcMY7ZlT6WXkO4mVu/X+Axf/YyUwkjlm3GgttgFkh9c/YMkgcrDUCSjgDJFoMsAagDCb6gCv9WrS1kZRRaimjSRQmAWScKCFlwNUolgPBBV4pNidkSaFXQbiCajJWXEhgOE2uU1vb1JUYOfnKxzB2WhmqV3nBgJSJqZSaHpmXdZkUXZw4LMZALH1XNzb0l0LD17BsJzHZmcwo+5GKJwPRgR9m+AaTgnj5Ez+MJgM/eEWLrchSj6B0AOKTXK8ibXH5EV1FTchlMtWe7emT4ijAXSfazQ9lW9IvN5NtQt8t1nIMZeiL0GLgezqL8vKgIxdzlruvyutT8qYfBWyoF39lj1WsEXP71Emu9hdf+uphxzOeNaxwIsDXaUDmJDh9tuKRr/LlWALHgu8Cyz9bxb/Kp3lhj/Kn0dePCdVi37Fp1//yLX857GAx2Hrx5cMMX9db5ad7E1fkXLD89l4eMgTQr/I5mH3PvO3IN/sg2A4t2Bz21UfAxnKMTfrGwNBDFAFv0IKYmKYPw5MOsU6alIGW4IqkobRCMTZ3pOhqu2060PpmtUMc5dhbMCPGNl5L/ucOjXmrRyiiUKKsOX1T13KMdDC0ogmz8NKuyCGrPlt1TYnUDXwSOMRVtTBGwhUblctm4SbEElDr36BQM2N51OECljal1Owrp40J5tCZP/6tYWLJam9HmLSt+1X1x9ojnxcE7brgwF/789c979Xv2n4tHwXMjz4KmDt6dPKp9jyA4+PJnNJDxp/6P3p0x1S/9b+6vHNy7+zOyStf+cJ/MD09vd0zRK4CHrNX2fE27XzwZm/6s2Hm5s85jrIlwG1Apjym74QSgw4emQ42Ozb/uUKxTCXzB7ua8CE5WmrsxBcnIuu5qlZFHTP2OUkIPgOKAVmLsAaiEHsZy06BKrEriPLJMVxYDc8sFPmR1Erhwokv+J2rYYCDqUqAtGu3czBTtn0aT5uxwgTTbeUKJLJiQEcli2tkPZkp2dqLoRGyNKbhetu3McLuk5kTqnLZsBg/yDWOn/G5Od6iEWzZWcTFVDyE8qDapBtoQO92407Dkt5txB/rKRReeNIs6JNhSp2y9R43Sk7SUoTOq20xNLIFI367eARAnmDoBK/I8VWU6MqgLcjVnYyGrxJ846p8SdUJ1fIS7/k/eOlw4Lt/gMXYr/v54J0PbsWBinE0qiGlyxJAW7y694rdBdAT2gm+QphzhtDKdsaZT+SjqO27P/6xYQtf/5u95LJ4MnpdL7XC1Flkgc2dGm3Hb4lY4rhn/FYo4JVfWdhctB0DfgTgX7kmHKk8T98VQzD7kHnwzZtMWgWusRcEZ4KlU11WPTf/cwekdNN3LXb/Ylos/9UhidNScLGbXCV0EysJ3tEQy5RcEArKeMcLvMwxshtNdsC6CVXsD+lGdbSqH0UwWOIYCU02qhZRLHOxKUdmcv1EnoOd+Gmrj1PLcabj86Npf/m5YYo59eulTefjMSVlmDP8avdw4fMP/ey/+fxNO4bj24bFyUdGHwV08fE1o9OejLmH9cma7Eob3vXvrX9/Garf+n/XlVctnvzpV75h6+5dr+bW/+pj3fp/zEBxZTLF7arZD7wvYzT93aFh32d01G1pUCSw0FHgj4mUP1MWlgw0KMhnMMrj6j1XyiVU0rROLYdQtNNaSvzXGLeggoPT2SRSEjJxWc+EUkbQKZvhp0zJyTGDRkzBkCFLKQXtlf2aOBCBmdvuTI4RhJHBqXnFybJypV7EnJBIF5P211UVeq0eFfywrdoWJSdCzErSTMl7TCMEPb6XRo+ToW8g5LSvT4QjZMjYbWFp2GT6kol/3Qf9yMkOumVFuagI0irkhtFajAsFbcSGKd1FQDwF+ybJyZd6PXSnEqnhiJGTGPWUTa6MCvpJbkyilp1CsD3Wra6tAoKsHlpg5ZhQVioLVJNRulS8wj41HGGx3PWmv56X/ZxaPZU+nis88LURBO15LMojAYNbSFqAo93ELOjRU8p4oM1t+elh6ZHFYfHWW4ZZbt9vvfSKuO27+yOEz4VEtflt4NMmQMpnKOKlX5dvhR8ufthwvgbYFs5Q06fwPcdeZf5duDxe4irklnhCD9+6ZSqqJA50bHmRlV9bxkowxIRmf7SOL7Y7OGK4WTdX11rv/84ZoZQrqUhTHYW0Xp0412LR+3J8bLQYxo8AeEwEwGCPXzhxJKX4wTEruTo5SLx1sh9LwTgRKkxPGgNejkK0GtHYoU3GIJOAdpSHRnHOuwB33Insxm8FNLTEuJfNe/8+88SA+qQvd+Mlb89/1b9619/4GT7+3XPx/rn+UYBrhD8Kd8ZbArvX4yaeFOXWdZ4UbTlrIzyT6y/82Xvq5MQjxx+cml2bn9lz/wNr/2Hl6IXnPePKv2tnySDNaN4I0zvSRupZanbM5Uk+9+dHfk4s0eEZVOndyDpIKPdJzsGQM+oMLAeQeGpQ8J8eX7oyUHTWEiOYYnHY8Dmdu+E6SrwdSzUYsRVcCSZ14LppkImt2Go0O1FWlkLE9ajZUUZ/m6hSXU26sIUvvELokVkUo0xXu4qLiL3PSu3IHf0AQYsrzc8GAl1/alKv77ojH8NikLoPDadkdaDaWgsbcjoFdtqCvmplL+Ta6ZtU1ZtDmYzEyqJqm+HnQCGkjKkuYalW7DJJB7ziKEYW6xhXodswByMLDsWW21EiKkZMiKsohGbLFuSkAk58GsEiqR6p7KoroR1H9YIZEci21BOOstF1PVDKpc9KpOKT+scXV4bJ733jMLtz17DEV/5yxc3Vei2w7Vgbn7ihIfFVT3BDj2WJNhLcdamRNCHJqjDc+Rlu/588MUzNzw3bL71MJULgcWQDslpWCJZta51qtH4FMS3TlPy4pp+tvW2MrPn8AhK22Rgndta1EHtlq/pr2RfLlCwnGOJqSC2p1QY/gkk1guysI6Zo+hLHvZf7VwjzzRBlNCBecNVpPqojzyQOW/WfTm9xtUHqFlATJ3CJb1OsVmIGoQ4qK+6rq/+0iIdfZae/ITu6KxA15BIQZD3UnCzZDQSpjwLGgfEtVTCETryVLRljl6NzbGmY+8B7+A0V6PGXzPZskjymmR/Pwoc+qe7+Ky/7mx84dODQ85dWV4ZT07OuDb4g6ILFxVozzqL7ZCO1kfhka1b1nsPpRfXY/wNLl0z4sMeWhZmpnfsOzvzYZS9ceeFPv+mdC9u3Xt5u/T8qFpt1oEdHy4ExNcx+5I/5VavbHKM1iCnYRdPpVbISHp3Tcie0osM1QxamHTQi8khiplUZF0xPjhoXiTDI0cmVvrpdMzpNkUFTgzRwsaMPXV171jPYgoWPmYzKl3Ai3wZm8CRYJ09ClupoEQJNbnCbXOw40FXVfyff8JxykZaWSQNF6fLjldg1+cSUPsaWk4oUAVOITatlHRZ4kSnB8jGiAihYelGXhBnp+qoRSKkrlpMvDesVvpambGn4qv8mhaHVZC0gTshys30RQ4f/1syUtRezYimUs4UGF0qiVAAIKlUJW07KpVz4nDimDfoR/5ou7qhVd1FKX7ZtSIjhFW7J50RKVxvGKpP08vKp4cS11w27n/eC/LyvV+g5tmmSYOK5K+8Sn+iLzTFrjLQgtksOJThyBaorxxwO2F/75CeGXXz9b+rAwWH7gfObPYOpLZeXfPpPuwRkMwlDHPxevxTl+rjOIYp/7twcV9yT8+WfGK3DjK8tXukmwXYsidZsJG6U7ThkuQMiQPjSKZJixTYhbytrPNo5S4Z9cHPc42j5nL4UgBY1edwpKAdlQKffcfQo6kPT63VPuDTDlr4d6xpTs+m39sTHQgzHemKpYJOJDjZywaFAgQBnAYLto1i65O1EtYjGRTH7pDnqtMc//fMA5TmV3GFREJL9GNtTN3+BbwX8MQrGMOgl8AT3HP8JH/aenZvbffXrXvGz1+y4cNiyfe+0a4MvCMpaEcwNvxXQWvkEjf3/XNyQPynTYbrJ+ut+90/u3Xnv1ML8xNSeg5fP3LB1bvkjr3v6S3ZffPBtLP70a1Zv0tk6VZ8svm6QuPqf4vbU7Af53qod2w6f3t0m5AIvmiPDwcOIXO/CjgKE6OQOcRcN7dYAkUe9S6uPbvcrnD4YwiuoYDvgtS1QzKpLWfkMZrStwrSaq0gxnDCg2l+iOgAAQABJREFU10qlT+oVbh4+VJ82xj8muoJHBrVcjakcou1UUX0GfsiFVTRa5XwFSblw3IGfpoDh4hM9uRBLBroK4pFFPlX9Vrf7L5MUWSQjTCZOaAJAjDEJTTbM3mrtK6cv8tePhZNS1mfxxJanrvKqhGaxDKsfVCa0YgoodMnLtQ/GvPRwaYsxsKKaIPGESsrWoeumzJEMltrnqmmeJyYcV1tRLdGOoJCjZh0Q+y4ggfYER3/GTK1S8T0ZD23ZMez/obfwYB13voRmwq55Ht34oZ7O+G98KNiUFus6BdAKm1eIlDwF1BiXZ+AxQpKvDtNekfOOgZM8/e/7WyYuvBBJ7kLw8KHYdYWuIQ0I108FIGlCVhlIW637WqIs4gj4oGHGW4lyLq8wSfvN3+hTj5fiUdSHArTkSUHplF75Ikw5YXwpIpmcY2Ge9hcSahWHHJdgFVeplLQrfZTAslzAEWmUJoFf9jVtutdBADQbG6lbkWxbLMTJIvai37TImQN8i3CjA83YW88xbvFKn8Eu0iVo3FJBllx+12pBaO0qJCtd21imzdhVdo53A0ze8WX49LuNwYi1vosN7W6S/LiXfry2de/u77nn7a96/X979TUn/R0YXxDkWvFUeUHQWC/dJFLfeuR0tTzEURf/w3DiPr4/tH3y5JGlmSmeNHrg4RNzF3/78949MzMzzQ+V+Nk/fam663hzH6sTRdaB4a3/P3rPMOnb/oTJZEvnSwe009t7SfT+TBQURwMOBQeFnbsWAuouwA6rYrQ8SiEXr+ugmknbeqmxD34GorNuzMNsgzvDTFltSLaErQy6yOCzvls2JashW2U0wlfZNjW5dqbudGNYYh+54oNu+2vFhMZkF3V15ZWZChnHo9mNO6MKRNtCfPU14ckEJw0K2EFrE5OVTHrmMUAhWMibs3XfK1ZqexxkWja1EzWrY/JylEqKeBew0jiBY5cYKIm1xA2afSQxskG0RTFtKxV1CPrglZCJYu9GKUuL3LquJHHVTIotS2AgK25hGD1TyeYwxyhY0efYNJDeJ7uvazx1/zCv+l34kb86THDVv8JDgLnCa3565LJ4c3C9dW89367BF23XcfdhP33CD+NAF/WTXcegui7k1TTqPrpP7aufu2XYcuT+fLNg/vKrAEKOjZse6Wv9yX9b1H/vT5DS1i4onObL14a+rbHyeyJQPiMQLu7wPoNEhpj0ecH+rB95FiCxqmMlLRyylBJkeOlvYYGlI+gqoNslaLHaTyHy4pdKOU7bcqSMnfS02dxGN8HQlIqETMQotwNYuJBpsxLZ1MmzBhULHRKun0itI0mj4TDLnOMLHPVDwWrGXXFpBPj0HdwrdyzYlxhD+uQ8FRnISfra2iJEG8uFphcGvWzFJ/vHiRXm2l+vjwI8+dwk9eO2CTtkxmIeCLzg2qe/+5//xfv3Hr/nnmE4vjrtWuFHATfzsji/P5615OsBfQvzPEJPppR+cjjdb+N3/ufnp6d2XXnxzE8deM7irr/zltdv3bXzhjz4NzWVz4OyANDBxtPX70S9008Osx/94DD1mS+kq9bObiuWA4vcjp0qNQdABpyc3rmVaZYVZfA6YBxsGQAZzDAcePLUzMA0Lym1Y8tCb4cYGawaJ3U4prz1rwaVYVWC5EAVqZnrfqu7PvCRVA6akHU1IY6DvdqVdgoFgH8C6nN9HOKU68BvvrN4OBFEnL2YtWt6zVDsG4uc8GDHSVVe4lM+iTHCYtbOBIhtRRIf3DQk3f/yPRxdJemnIKkgp89VT27RusmCxISw/M6JRvyFrhy+JhZOwMgb1/UkrYag2h0/SBsFm00BSYkleRZLqw23sRVukY1vxklfKn7oUUZDpPIxhFLWbHHiEWEoXZ3z6v+R0yvD8g3fNWy74qp85W/KJ+adiDmJ9jZ7XqFLm+sreGBwdyxX1MGp9hpTbryhl5/2yaLqRbfvE9DO6I+4atOHZ7/6iZuGfbyid43FeftlV4Jrm1VK70pTXHj8cSEPR/iJD1f49jto+uRHOPmBIAg+6+fJScaIAr3l9i9j5KpvLLFT/ahHrWKVcV3WStezEf1vY0jdJDMPc1tM6/hKjNFk6ticGDYCVhpOLyeHTpTDKzsCNy3t9XGEbvVxc/EUIm/YcU0bMVp9PP0jaCXr2Ki+o7J22rgd+a2+NsltTlIvd4IxKTOGsz4285jhF7ZHNpGJCdpmCyuO0IJNXfOS2TnXzjDnWnuslGM7JpQ+0+pc+OUXAxe2b3vW63/+n/zVn7n65ctbLj0461rhRwHn87GxPxX/ZH4gsHrPWICeDEXP2Hzwz1c8+qrHR45PTK1OrU0P95wY/sVn/mj/vmdc+bfGO4JtPrPe4yB9vBOty9Evcuvfp/5/JxNEddygVSduIHmwhc6b8UmHdhD6nw6cDg6WfdkyAyADxc6es/TSq4GmpnZrIqqaQ6npOsAd0GKDpaWRT8GuwahAtJwxQy9/nJ9KWcSm2/mySDljJy/fkFFHk8YpjlB2fvJvRBBfp0i0KckM+VqUmFicSEJwAnCmsFqyLYNQVxIF1XhQ01YXWmw6oSVPLOQpJ70gg0tde+WfttRAQL+VzyawOjqSQmEUVCDrmMgUS0x9rzhU04sezMBoQ5p4lKW5SWj1WnTAUEYQ6cmjJLFsUa3PVnE6C3xaUHh64eKnShIFYSTEz06XXP6WgFd4JCCV1jW3Og78xO8yb/s7eOmw/7Xfkzf/xTf5xl4TCDs+PKZZZMn7xzG+WjeLuYJ0O79r7wqcr+55wiCZ/lg48rTM7X9v+VM6wff/t83NDKd2/H/cvVnUZld553e+ub6aVSqVhCRARhJIFsYGg/EAng0Gu93QgfYU3HYnsR1fdNorqztXSZS1eq3OVa5yldvuXGRlJe2VrJWxu8EOxjaDmGmMgTYGMUlCY6nmqvx+///e7/eVKDFdmCrO952z936G//PsvZ+99znnPe95b1qO3H57/NT3vnBHJ2xa7gN4woFCeWQGLgm/S8CdBwj6YtzaW7UDU93gQULOJkjTm6KsfvuEnA65wfAeAhoVUMr6a3acdMVKALApSF1KJmXVo8bBvhky0/YoRih9Gk1qgWDrTp+ppE8ZAxHIIXfEoMuyPdDoUVBtjX7W/35UAN24iUMkzj8krRM5C3nxEhlOdiy654APldaaJFMoxoB/nGiFM9rHiraMmHOCjRtAqBk88J2fbAjT+BrIyPpNq42/4QVBfPPELVjJfduHXACeuueu3/9fTp2+566n1y5dPri1fe7Zjawd8zXB3zbqDaJg+H2vbIkB7thQJ47Z7l02Th9Z530/67t33r39n73oNRd+6b/7L/8BD/7df5GfiWSySud/owbI5H0NgVz1XOA7/+/8V8v6M/ziWQLU4CWKMxhsWoNctwxmktWunKA5EO8od8WQiBj0fO6GXK5wVoqZIFx8FcnJSaTlu0lnN5dJAfpkxZZ2wo1M88oOWgabyuJUpPVBwOooZ93koZQJRDshq9M6W9nUW1b8KKQ0Tw4CLj18EzPi0k6hYUi2jlnWMIxc+bTEsROQtuTk1nFgOEStPmSCzqSGirZ1oEZQ1Yg0+ynMtGnuCsSmPPbYnrKAw4vNlX/2r/zpryrI6Hb+5FXfJhLBrX7X7uS3T4dMdKobn+JHda1MJ3CNiKRtsOYVsQvo0AeBLT0ylG1n7bLBbH3NIKOwcVDvgmE/XOSS/Sl0jr79HfnK32WeA+D+KSa8gkZMnVTOAurYNwZd4FPmYKuJ7WIjpra05FV4FzfqkZMA/ePKfdziffiTn1wOPvbIsuPdhttuZyHnRUPcifAEwjtJmjAXvNGcAmdBtxN0yT2Z2tQb/cl5hk6wxVXk+ioQT8SNZxk91H/ywZRYPxOXGJfsNptWveQ1Lj1AHI1HSep4omAaTOxNbE9S0NPLCsuy3UQaiym8SNjn0INrUNgGEkYsRCUGwYg92FYW2ZyAi+ecIv70WWwKWle1JwgBDj3zi9ZV0BZbpMHURz1TOR4mK7bg9sKsL0VpnkyEZ7l81Sl1D6AgAYolfnVq2XrX/8ZvBdhm2FT8GlvqeQ36JHETYM21gMv+U698x1v/4O23/cCl3VteuHkza4Zrx7LcO0S/Nx8IHBE+m+PGTh9MyPWNfz7E4cMctxw5sH7w4LL94mfOXPqfvu/Zl558yYt/NwvNeOGPAXKtIJEWuefh21JbD/Gu6k98cgQmgcv4SCBnKIyATZOSdzBJ4pCB7ViQ5yAZk4AUF6xcNUmTrZIDwP/okHEcqihRPCeUDGanwbKyAEGOnGnylsk6UVtWmD0myGgmdki6wTRCJj2TUtsrstFBJgPU4V9Q8WwM4Z2E5KceFNPWrYiFoTH0lFeLYuaVVjT6mSDDlklGTPi2WPpQ6zFYXnyKkwizqNiX86Qok1Y6q1BtgNrVRBynEupEQog4ZWbQEE+7qTZVZUGMiFnjYfYVMuKWV4ySbGBzwxfrE6WAlZdRShlD+dOvxAc+0if+iZAjGctxyisnqbSz7RE6FJs1smkTC8q7Rzx5i10ceuV+hgX/0hvesuycvGU5f4H3/OeqjPv4LtgZK7xbT1+Es72NFdL8qA6wtl8WlOGvgi6c6Rf5rMT9BT4+FtAvYjS6YH/hg+9fTu5y+x+ftu56SU4YOGdIW/SqH5uWPSHgJMEKSi9RLHg0gR8xpK9sLBtB2vgIwHZN/T34LYAEEzJs0ZfOfw/gpBFpX9TyMQ79kb6lfqFFtP3VQaTcUA9P/6IcyHSRAuNqOKYkatS+hpc7TBQzRySFZqpOnSOlpSfGUJ/PCDle6JKKwrNe+6stQZUeil1+bcvyDoF9mXlMmzjQkxcdGZjzrEp8N0H1HwFJ+pwMh8YYZeuYOIc/fUsfFCQqyARBLHzd+sjHl60PvneCke5tHbt75W+U447Pmg+DH731lnf821849dofv7J1/tCpI9/sgcBvBHnD8EaT3zD+Pp+jidv9D2v4nX8f5rj81KXNtZuObL31tvsvverXf+X3tw/s3HKJl/4AFJ3nAzSAMnHuE1gpeOv/iTPLzp/wwp9EtIHpRDiDvEFbVfKR4UBkOy/VMpODgI7CpEo7YbhwMjHGWBQzMEYuPoUXwxNqcF1xso2BJobzjDR7OpgkM4/tnnlr1/oiyz6gK69/AeAw9L3qG9lBAzBYERwAnsh0gVZIGHEqUf8k9upTtEEj51b8HtXJRIGD/o1Gr5RVDig+6YMVlpPKDJzhr3VM+ysDTE8IIs4BECeuOOrCVHoSGiWTXDC1gd+ZjHRFu3iljBgjjdQYXUbF3MTJ5KSvmdjtoGiCoRvtnGTjDjmrZF78uYBGGKLQ+gKrJ4v6Iw6HEkm1oaj9VKx4G3UBQLZu2dSzPi35GN/5C7zt78X3LLe8/meWSxcuYkcfdapvzKsTLr7qqjeUR72kJLg8SQW4fYi93DEYn8mj4kcABmfWD/A3N7n9D/2Zj31kOXZga7nAuDvkA4DC8TcXvuC56OkSNq1n3vVvvSC3GVJZBUa5bWF/5C5FVBFGzK8BkmMLMj60VMeq1zaQrg6GbT6dtRh5e0uHtG9q3VIcba0/tEcEPEG1bQZ/JSi+xOIKl+dopp682CRNJad91aRVvfbJIz+r0pIy9Jty2RIV0zqUgSeFdspO53TBl6t8UGPPGqddQqSED4HWqPqRJc1/OMmnnHqgH7Ltrm7HYcap+vnXfqA48PwVdwHWH38W/KsfCNw/d+/PT839Kfw1Hwbf2t7evOenX/uHa+eubF2+cmHTBwKffeYAPxZ0pj8WtF+pnl9NuQFLROX3xvZgOmTv6t/v/J/hYY7NF5zY+rErN51/52vufPVNt9/667nd+JzX/eYqZC+q0iDXDJqMUKJvfZvv/P/fy/pXnmoYZPy72BGhhnwGy4hSInqPjvjAkNpFxYUSWQcLA7ta+3A66oMcJtgZHBFELgPLScmBkRGSfBcDccfuHBRZkkxMtSSmvrTSDkBtKyr2pJe2mvjja6TwRRlnppoKVRJ2NT2bZNY78uHBjL9xLPoFaTamwxJ42BcvO2Un3QGfjHTFmNBSBfJpd1MWFdkyYt8C6mnJiReauCo4WUPgPws7i0sn9dnHyvmvgPLKIkNWJVV7UhAPFK2IvOhFasiTr6JoyKmc/+CnHwtbH5CtmbZ8FlQXBIk5oVA5SKIJSFpasaWV1b6mIBuSsrZdPpIy5Yo6b/tb31xO/P3f4mqZq/xMtGNiTr+7iInJni5pvwiX9k59lGhbxHROSNTxSh0OV+EsQ0gwiXtpz6YtY+bLn/n0cuDLX1wOcdv/wu6h5dgdd6aNcpKgLnp5lBC1jCPNgjsXvTYtchrOll5XCF3qTVt5p+EyaWRpgMQPvPgqrq2Tgjpk2tjBaMvJHzbAia3gtd6Rt85qG4NABMeTAoVn/4mBmFoxAexsjz57o53hi74HRzyVjHF4ISpjCYFQneYHT6rkwVudvEhSN3K1Mecl6TFbg/VtiEdFXetl6h0QA4FYbD20ay5GESMn2HApJ69yYYdelLjhwRgQtzu4qZfmwARr/dGneCDw/82cDFUPvunWuehqMe4e+UDglcM3n/iFy//wzT//G8fvO7t124mtNX4s6Jmj2xv+WJDPlX2v/WSw3XCjb8ZGNz7692cd5xv/ds9ubOxs7GzfuXlk/a6f/ZE/2Nze3vZMD+GVzrWCQbBMlkW9+sjEtPGZf79sveddDTcCMmHHIWHu4uFGkgHpQEh0D5MOVgcA0h08s4x0zsa7WGXhycBpoGsjdlz4HGzwsokdGvoC5t8quiGjrTngoOhtblkKBiu+BSqHSHwdPROMOOI6VQ89UjddcJBnp7DyDVpREXBiECIK1qm+hOgVLL4rnVvHgUNyTBJpp+BDKwDpAIOpZm0P31wI9UN95cRLO5lxh2EaLFMyESbvLWF9kRdVFrjIUaD6WXBtBtpiQEcuIlNOxuinGBl4gUPVLWzSTnooqpu2k7tvCxbtEgErhPGBn4nfEx4d1SdlbGfrYz6pWfPGjNnhhcmKn4KVg8g+1L0V/wwv/Fn/5bcv20ePLef4yl8XGgQQ84RQ2+la+1psThqiD1JcGndVbMP4iQxzLVoCjP7yRMMTCzE0H1nTteVvePr/1MEdPvfnQcHb7li2Dh6CjmxwK++dg34VkVZKv9i/XtmPsZSr1nmSBG46tJX0FSDajH+jbfx6oE5AHqFiWccoh0rfG2NsGRJhWFauOqbd0Jh5MIwfoYKTvrJvITgGUMjY0SG2YI98WhPdjHHkA8lhdbcQ4XgA+OSlYqMxc5GDRKzZRZFTo7ZiEB/qV3oOv4030GwLbet40atnxdJ4aqOT/MAYc9KUn3OC5NUmtLgQ4nUyjfS0USqi9PAxZfLq0HZpGvCcizc+++8B2wNPffH7eedxYcemjP5xIpqvBd75wy//T9/9lc8d2jx7ZWP99JXN9XOn11d3AVhj9t9pnhg3amoP38hbIuNBQiIv/eErG56pecZ2wp/65QzujZvHzn76rQ+87uitJ/9OXvrj7LNvm50/A3SynluWnonn0uay867/dVnONtg8M08gjiDNQHGQwHZ85BABCon+q8w7ttBX0M3gH3mvOsmngiENehLATVVWIqNFffPqYCODVZpU5JTlX7xOgKFCGry9FamyMaw2/GrVnBpgz4EV/52MA6y4tmsriw35zCOD3zZBHAzm5+DUB3W1ZTqyllNV6e7DKQercmzWdmKmbAGxtJy2KffqPcSacKKwKH6ALHThFyN4SaEXLMleXhvaVZ89cMqyWRbUBSIk8/ohi3x2RMbntIZGJjNIDRPA+K+cWOaZ3KXB6MRtnm3iYy+SOJ6+1ZiNO7eYVcK28BjppiGHuOLrBy/H4Kn/C8sz3/+K5aZX/+jCg1J8NM6Civ/Gl9M8H6qnDbrG+xQ9fy5qwVeO/PiM3bsJVvASdfEuHDVhZyEfZW/Kka0mNriJn/o99eEPLcd59e8Fzts3X/JSBNDjR4dE7+f3mEibusDXRu8A9Mo+Dc+Cro8YjFV/Ljg/TYyv8UWX8U2R1s9YUFb/ZbLJjACpC6UNOXQUy66AjVfl6CeWAiGvWI1HdIwBaB16pEMPTvA0Z30HeHGlgSxU/LMu7Kq6rbDjh/Fgmww7A8pEueJTUF8iDx7bK+OsJ3o1j6QPRPIPUQUzI7FR7Wnowc8heM1VTl8Tu/rlFofRSln/rYd0jJCmHiFEOtBp2+hap2FPOObinXf+0bJ2yWc38IdN3LmH8C0ceBbAnwy+cvDY0R9/6X/xm2/+/dvvO3uKrwX6hsD5k8Hfa18LTJd+C21zXYt4RrZ63/+dZ9YO8xWOs8vFrfVL61uPXeGlP6995R/wFSAumMb9xX21udZCv499VdZY2/7Any9bn/jMCC4MN+rNdM9gaL4P44wmTmCbN8obvLnVSmmWiyGfzQGSgUsgU/Ro2pEQAsRQIrqaJ3J+4yDIaFJjjDU9re1ocSh8MRz3CnaiJjvdmH5kXCkLQ91hO4nCcwc0dhyAw57Jyr9hLn5pA/yeNCEdHcGhs4etYAqUxtV55qjQOQisTRfZQTOfyT6sTgh1ZUx6PfNo88WOgoHhMA2LNtrRrDusHGwTbYRGn9qtmcWrm0XYxkVdEa3aFvPOi+oy0ob4P7yCFkDKppVJPkWxR1spJy1Ami6+V6X+hZmFC8cUTSdBtjpM8pEezRLxug2/uvpzkSv/x7d2lpt5218ftOsVZvCAsXq56qYt40rizhMDStqzjdlqjTJ9548KubBnYo4X6Nrnw7/UNS4gh/5XP/fXy4GvPLwc3txazrLoH7rHJ7K1phCbTa8p22HY63MVta1YoFkXpt+KOu6cCvzs3z9db/xQc/ieUKQeCM+T5fSN/Rn94YP9QLlGRi+qQ63T5rAzBygzHBhdLGG0t22gXYTSqCqNwFlh6yVb+l18/la8IFsLHa8/2oqUkMiGjILQ2trX95EUyyZTLsD4n4pSnnZQ8uTIvxpHPkz19D/qxcGb9PFYzJEIrncrVrKpK3WJA7admQiqTUkeoHHWEhvlSsbRaOSEDZDNT3xq2Xzoz5XKJn1u+/OTtj+d8ScNWbpubXnBy1/2e//jl953/MmvPrW2vc2TpU9e3PQr5d9rXwscI2V/c9ww+cQEd2SoA0e2vMP5ab66wVc4tk7eufW2F9x7dv033/yzB08c+7nnXv3PTv9mwbFqDW47rj91btl69//eSGewrULMYGNP4gBDKZOxAy2BbkoBRsaV8RvgcSWlbkYQoe8kHqzi1VilzUeuFrSSXRMZizmM0a0t+VE1nYMohutr1RFBKLrITNpMFTcfGTJOtOMse4UtO/xkBpRKGi9m3OCQNpp+CafKnGyyQqk3/cAz/Z7tA8cpoJOytUPWf0EBcoLpNyLQwU1lix3JyM6K95sQOpTaM3nqCNucRG0P2YZXGlgB99oFWXRI0JyYcpvDK6jBSCYQ9UPVNG5pisUXyWbVtB0opSvIJZ9FObWOYNovAsM/7YhriqtJR3sm5qCnHYSWnUmZ9ok6B+MY0LJdunplfZrX7G7+3V9dNnZ388IfJWwaV1xlheliAQd9vk9LmysQa4SIV+kWwS94sNN3iZ/aDJaC7BmTCNuK/j3M0/+3HDywbGPzHJ//H73zRaGvcSdCOy563q1XOTEiVUBs5ipfjny7aMipZz5XzeQnsyczlOVBtTH1xHKeJ7CN2edDn0pYA9suV82WAxwxOamPakoU1b41D01H015ialc6u/Q0mF5MWnOt3EBSNCcKZhRtKm56gHJNaRN+4kjRnrBBiY485dQxNmKaQ/wEI26pr1ywzag8GzWMmgcnLqce6thCBopk/tTToCeDFFIWh21lRwxo9SnZYPZiqQZmG6aNFRcX1s6f8D4W5mgfCPx25vf0mzhs6HkX4PLu0cOv/NH/6p+85b9+1U+f9SvkrinHzvNLst9jXwt0JN3w2/6X/iyb/KwTvxe6e+Hc+rsf+eLB21/zwO/1bWXO1Nfe9gfA80gQGVvL5vv+eNn88lMJZoPOScfNRaIDT1oIZKAbmEbmTBiwkmYAN+ohKDiwCjAmOAdk1DvYVoNED2LHQUQm+QyxjEsHWU5AHGwIriYYy3Fw+ICZwCsWJ6ejDlqJ7Nk6WKPqKgC98rVT+07bysNJSyvBLo4bqR5a95zUgzNRoqZMQJUaW+A4+D/gcvtV0fgmQyE3Uv2i7F8WZlLL026AlY9KrcQabZR1EZS+XEc8aNSjPnK0L5xEtauNAdM626/iBZgjsqs/keDKSh04tPP2ygNLUFmxExf0q0jWSZ7tUCviDaw4g5VVGXq2CVy9tk1jqbpARKTxNnXO8aT/My/nh35+6IfzMcB8N37GCf3mDfzeOmeRx6bPCrhnhImXBR5M2y/+4hs+rif+bSlr0Hp5d0H3DatQKW8smzmBe+LDH1yOb2/Hx0t3vDCf/3OHFjn/DDKu4q0qOtrWL/PeaZgfL3QhIzZxpF2HFXQu504IctpGLScw7aA8UN46wOw/OmbYQwALJUuhkxO/faRfbuHGVtpa3+Kfgw5ZK8zWY7I9jA4uvRiIB800GOlvskmRKaP6MQ9Nso0jBLSepBhDgyYdZsrSqF+/Zjh0JcHXHfF7RyAFCeHViEX7EF7uElgubtxysDvW9VUbaYeOD6SKT6qfK18sgNc+U1Y/oCWH7MCP0ugT2etfeXLZYo7mHdWR5fAdbfEDzdvuv+d3/5sPvfPU8sijy+Hju5uuLd9rdwEc+TfiZjR43Y//vfq/+eKda8ee4pG/Z9c3dm86tP1rtz5w7oX/yS+98eDxYz/h5zo+5bm/orOT99P256/ie/X/6BPLgb/4N4gY7Jo3yE0M7k4GDosMFAZeJIxVg5U/hBK+ZrNHj/zYEuAGvSsRaeUF0A5o6AeTwSRESorxZ3m18HlPNHQOMixqW58ZqPGsCjHjQXxN9kCqooNeXkBgjQlLmdZEBejBNscVkw0SJ8MIhjjxgXT1UJHiymUTp1jWMfW0yLzRyaIeCGNvr7BWfkgTDAFlsnOwHdjqK+SwKTUTwnM/glFD+bm1xQvpMWbsf1cM+yQ0gcW1NFxJPMD3fwVXeQntC8sqsEdZAHAlqSTNvH8BMcbsP7ZxiIj66RsyI04UGUJNhSMXv/MGN5XaMo07ikjo10UW//zQz9u49R9cNFklrXve2meKdN63z20WP3fP4h4/R4tBs/kzTkjjLgB+H70xIoK7mEzwCFhSLh/foPPoww8vm5//3HJka3s55+f/fP3PvsudBdtQjYwVhL0jAM348jPv2hWxvenHWuvwNqxEFitUlIWPNOrmXSKHvPjg6FGuYNO/2oZkYOJobCQtyXbU/9DRap+go2ti0Yapn/ry+U+7Wif7d3amfaiECyebOjlCH5wWJY/+qS9iKOPJTlWiIS7lalsf20nUCmk6m+pxdpTVkelJhPL5DzHF4NlO0AMVd9tmPSvbZzFzUm3bIFdy8qUdvLFPkqMntM+/kB7k6GvjXwdCkbsnFAeUKW3nz/81c/WTtM3eXYD2SbRWh/20mZ9zPuV1Xw60e/jQy375n/3jt/3jl77u3M7R3W3XFtcY15oC3fgvB7LHbuhtXv0/+QJ+KJoH/65sXt68wtX/H3/pk4d5mvO3Xfd9uvMbVXIGwH6ZPRqqG7t87e//WpbHzxJ4+5osiwyxEJoBzl8CUdoeWl7EwWBJ1BiwycAnm0nNsrusMSJN9KHThrwxUUR0CpeeQY0yKsFg1HSshCZ1nKAEb8goyxbTHpRV1F39TNZzEE+8uIEICrMddFSdHjKp7ZuBQs2kroiyXnKx7R/L8UKb0wHxcmmHrOKU0y4q5b81FkdmJzQx9Wz4Gp/C5uDkAi/8gWE3Mmm1fRFW3hm+865gENgIHd1uCWxIo7sRceHoNvsg+ugqqZ4C4dl/Q7n0Mr3aT87AsX+c+CFEVpqhG4N64HJluTL2TrCUG/hpQwH1eNYlJYiK8VeL9SuG1OXvMgvtU3znf+dt/yEPu2wt588R79SxzwAI6tv5SMH1Gju24h/auodfiWdouSOgzPSBk6bQbHflKOdhvfCRBzsuy0Pk8x/8wHKK7/7v7Gwuz/I8wqF774ursBoa2PCh3Hx27xd7UjfSlQ/g6FPkXNz509cKUhrZgSPZk9xZD+8A2FIxmgCwb9ABwrZKhrrktEE+/3PstoCIbkWUw+qiYGIiFVztkp/XJ9h1y0l/7KSXEYKIfOFGH475pyoIBM9YF8BdW+7qsrOlTubT56RUqiLaEV9nkEKHRIHo5CgBY1EvBOqU0jCdF324MvGqKPS4pF7sK6tiCqRFzzjSrISJjkgvfAJUP6JbuSDsE48qh7Unzi5bf/Z/MGcfQBBfrV8rAsbzb5lrU48hM/K3v/xl7/hnH/w3tz772KPL5hEGBWvMF29+en3hh4Ly3NnzQ94QnPbaDeHqysn0/bz679f+7ly7ndc25ur/1M2bv37zPefv/kfv+Jnd48d+/FpX/yIlcAfkNQNkBg1BtPnpz3D1/6cMVIIpo8vJgWBzwvAvI3hEJwNoDuzEp2THNEEfO7mykOiQ6mbO/Mqk5GBKd2BaVoIFJ4VZJhU3wepgyyjCnjq14ZVJ8qiXho5qwq0CPoXQ4chIUlvVV1SdDJT4qxz+SYtg6xDFzB5hx2YHl+XqaNfqtTK2C/ks0rWbutZ44fQpMuo0O2/R2j7i9EE4+LNOkR8+mUcs/YDhNNPAL6yTFrLoZp9GSPORAKqxz0LcCU05JhcdH3ZqFyP7qhC19Bs5WfHD2GnZDEjFzOIEfeIFiEYSrw2kVvm5oiIPbxxEwYV5oic54AoI0LpXobQyak4RrunPXrq4nP2xn1qOvOy+5cL5czz1v4UePjCpa6rxa5vGyfjSZoSbhXRy5OOPTPxQb1U9F+tBt8/jJ/y8jAehDU88IT/+oQ8sN+3s8MzileXckaN8/v9CcLiq4y/nkELzZz8kBmwqcOJnOOSwo13buH5Q9sRDn9zjVH12sUmt6GNfdtT2TKWFKUYCR6taQV576kVXHDFqCwFEiokYtsbJYmZcdSamchTwRTxtBUL9ARVfE7ylhQVvgNBeAaNsnWmIKBrTzSvqJo7wbtKStw75E4PcYETWsSQ5B46JO+ohTbkg1O9knftsU+z2ZHsIKjvaKANfXDfbB3r6zROkglLWInTKpvqirNSqzVpQCqll/bINd/7sPcvGpz+LG/gj8Rrbc+mzPNcFUt8LcPnAoYMvfdM//8/f8k/v/tFzB07etOkac5yXAy2nb1l37fEO9INtCK3sc+waRq9DUsLxOvTrW3CpL/25/exL1jwjO83vOHv1f/nMxc33P/7Y7m2vuP937Eyv/menfgugKxHDJu/7v7ix7Lzrj5bljDOMkz59PIPOycrFVlr6vmnLBvSAU0WdSWCANCwT5uF18uoEgBkmhIZ7rgitBwoZH1F00AkqZoZIDCVnj8ZuLWRSGHHpcCoQIs4PThCxNexGbkxU4mo0jpuio/+kbhmsDPZUKY45YMMIX0H9mQqBCifOFSawlapc6zUpK131Al5K/KLsZJO2ihUqIh6Dvu7U0VjjkPZyoqTdwicrpPl4OvK2evVtGPtX3QjBoSCgdmMTPn8p2ZazreBVQA6SqsNLmOyzn7KywSCJPom+qBRd/TE/dp2ecnEx4Mhov15FNuIKKA49dQeLCuWEUXF4c5L1bX+PH75pOfUrb+czcBZadLwuN07a3pwEEO95ch4fjIVOHm0BG9O373WspdaSBs2PBIauJxO6CbBp8tCskouzV5BPPvJIb//z+f9F2vri7S9cNrd5FTB+9c5UT0hy/iCO43CApcXFzzjgxCI8g50fArIuo2wfxw19loED+mBd85VHIEJTaJ5xSBM3LVdZ8xkL2E8spiJRRR3evjEy4679q6b1thf22kJzE78egoFC5hT9Q8DW9S9ugL/q9yinkjpXMmhpY/3UsOjOWWaEcMcHvbC+ETaREN/IpM70TcOJ9oowh0Gw6KafadgCBzU2tYZ9ZTgR6sl7SNBiaGVKEY3vxTyYmtEXRa2XdZZUxORjW4q+8aNV28zZfi0wo7MNULnv4Hj7fff+1j//+J/dcuGRp9dcYw4eP7r2maNfu+rlQN8B7HWhkq68Ljz51pxIDPXqvwpPPvmFjdt55a9nZhsnj2393ZvvPHfyP3rTz+4eO/J6r/6JyG/6gz/XMu2EorHth97L1/7+isBrwGXAJqAIQgIxoZiBQ24GaVIDFYAM0Kg3qOGpY4DHArgZBBobNhPpDgJIHjORpKRsFEYJrDnA4oj22N1SVjajh2L9y+SvD5DFd5OWATcwtKGa9NiPTCFzNh4lDgCkqjGmnwp29/PE4I9y68hRonUPNikEaVe1q4QMdGT1IBgFmlf+oct2YYuXWtBzQlpdeeLYR1Q29i27FRA+Umlz0tiE1wqlvHr6W210RE+foqOBYkq3jSlFl3ImKOxGLp7EpPKaESvm4k9QdCOYcVwV97gLPzik6UoYVYZPXpqbMmLDy52qUbfp5+rzXfkD27ZX/TK/qHaa7/nvvOVXs9adP38+Nq0va3JCWOMJZXCtJx+xWhu1c7TdPEFqm0lOKYu6vHxkMNtFTfLBsTrwdcpb9Pr/+Q9+cLmZF//s8v3/c3wbYesl98aKvho3+UhCfAnTL73QHf0YmLaX+bxtML7JaDtKt830148+jJueDHECQP0z/vHJNhggkU8D2S8FIGO+bZq7Qom/ioJOhng0Acu6WdfGB3rUQahiIeSJhn5JSsYKWBDAnTw6g9jy9AXsBMisNFLZMj7IyRdMfkDDzUGOYBURX6xKZX4JdvXjl25RTNsguGqjlZL8UTdpTiZRNw9v9ZFWjXCMsZixEEck2naesJrXoJlaDSVtEmbYOQiJOb8WuPXB92HLmIwFVb6tjRjoXYAjh+574z/7w7/zH9/1wLkDd9ySZwHuvnQiL5zrXYDlhr0LcKOdAKw6sJ/9724cu/V8Pvvf2l7fOLy2u/GXTz6+e/urXv4787N/B/K1tm8aFN5ufOrMsv2nfPafoPRA8Bl0DmITY5IBllBPkEkY1ryq4GpjVYYsgrT4FACJQ1/eKlCdKAQy2NWKJroOJOSjI02soVfxwZ92kXGw5YwfmouyNvazY2OYMBr0C3sd1hxH2cVCW3rkv1Ju+jcX3Z5EOGDl4qtSs/3Vx/a0b13DYnLIVdIABbo29bkGYy+HGMXJtEFbBvHBN6M99nHyYS0y18gRWP34portOIky1HNXht1MJm/TsYc5+SBElkNwhr9OWsZE5rzBcxJK/QAWyr9M5NJHO2hSpjvAOUmIDPLxGbnVZK7MkB8qVRULAmZShXSBWC23elocfZMKcOv/4pXl2Vf9+HL0/u/PV/7WN3iKGp/zfXj6YLa0X60rOD2eWDGe9AMqcmZXdu07zYSQKinG1nZLG1iCn35G1mf5xH2UifvEzgHC/TInJpeWw/e8lCZBQBsYybAasrar5S5U1q14+UhBeuzXyVSX7Bz7Nm/l9YtNf8G7dI6PP9SL8l7/RM/FTLmBq/2AAJ5xQMEFTndjVaM2kou7/+rZdsqbH+VVLKaz4NXxxgFiUdJhHNNS5bUxQMUZOtrTfsCxm1aBH38wGrsWkFdNQj4+SgNJYMOO/aJ2FOGpEl3wbQYLeRhTeYHKtEQRXnyggJ3OWToR7yOTQxwYqvqjHcWkKyttyMR/aCs9eIkLdfRuYiGgzva7/89l/ckzlKYjVf1Ojrfdf/dv//cfe8/J5bEzi3cBfBZg4c7z3iuCp/XvBP27p2Mo3ihbund+9q/Tm2efWPcHf+bV/xsP3XzuyD940+sPnjj+k1z9M2FmmvqO6mecbX/4/cvmw19F3+AyEAmkRCYkvHFcK2ewZUAmlUDZ25kM2AzQVXCGUTy9EkCJpPD4V3RFG/YcTOUpoJq+0HUWpw6OOByFGlLAkHMxigyHjFp0tCHNHZiYVNsMBwerrChqSwCZTkBj1tzjRzAguaWZe3DxGHWl0DGJAodB0lQMm5lRGAc6WViRTLhOnNJTsamsT6PdHNvkddH655jZ1zairP/yxkSYSUkxHYHRVrMtlc1/D8ETXFuybSixYJQcH6ojoLFBogFs5cFPy9JRse1zYqSv6meDYZk9FYggothYTXwDuiAWWsv0kJVO24ERR2IwzVX8yuekC6OphzYks/tytwtc+T/O63VPvvXv92pdfPxJPcHPBNvVMPm4ri7x3aurWvJkIaDWB0Py1rmKT7PC4gY8vmLb5pDPbijph2F5CTzu4S1PPfb4svz1Z5ajPACowLmbTizH+PxfxSzqKKS54HnHwNaIbTGzaAEZXv3y632zCzSWkyhdge3u5tj1pAiE+HuZNyDa/jYvpNWWuqQ029B4QESGW9qgqfToyjPPNhLEoEXF1DaGlzISMWI6deZJlv6xGVvkYhdd8wGgziGWi2Drok7qYtDFKUE0i4EEYvWVm/yOO+n2dizIzRY5cm0bS7aasoOP/6FyiDkP+be1h1DqaPxAgh9X5Em3jN34LORQs40Tx9KqUHkEWhfQbct9/I2HH1m2PvwQ5kdjymNL/ZpdHRPv1+BBz12A3aNHvv8X/9t/+uZ5F8AfCnLtyY/OBeXG/EbAHAOrhrgRMnn68pFb1hfnhfHk//qlc1uPnj23feerH/jNcfV/eXbqter0jXgG/vrjT/Pkv1/7M3gILCKrAWsRmpGWoJRPwasz/sOS55bWbSGDHPnioOOCJCsjiSB2ljKApQniRj5sMkWhHIJyUAYemehEN/6OQRhMuQ5+BlVOGia2g7uTBDA1ZoLtlHOyIMNdnbFPdciZ+OKrBUSUQtnBO6/CQ9exwdcVCwMGDOoiqYzwyuywXdVcoTlhVWoFKUuUoFKIZmzOoY+1/FOebau0bWIqLv3hlqMHy2DFvlnwtJMtfd0JWTM9gYOjnnsUVUbH+tEenoBIjoj9ph/w9ScLIvUvfuVGJyAnnhvctJ39WEomRCZ+9bpgEXCph4JTMdxim2WvPnpeYbPYbb/l13jNBT+2w5Wv/ki3Xt5xytf0gEu7wcunqqR+bj4/e4+oi28C3vrIF8ceIaW+1q53FHTA9wGO4ZHq6ktGwPKFj35wOUl/7PL5/wU+Z7h8x4v5WvfWcsnX/6ZKIEUZ++Bo0/OK2MSGXTl9NVXH9xi0RfRJgzzdYJDzLwJiKvGPPvmLF3sHQBE3awEHGf5DU86CTLhDrmXJMKTrmHraXAlVft6Zkh6WKmaGSs3UbuoNRuoz7wLpFfKRUydbKg+EOAOIvH91F7r/spXn0PmEvGeDMtlyDi8TpbRf5oK2U/TsPUFWOOq67dG0N2O8sPqAXPyqdO+U7dNJRUWplYjacWzzYxOkEajOnn3KuqucGPBtS3d/KMi5PC93UJct8dHsNz2mzbXHdsv99/z6v/jrh45feer8+jZ3nPe+EXDLDfuNgNlz37QhvssCiYj9V//L6UfWV9/758n/V27cdOGpN/7Qqw6fPPEL4+o/Ovr9zTr8Wvxtzhw3HnmiwUQAOKgm4IgHeFLG1JKYdKg1EA30vclIL8ZmVDvQ2cwGIvgDXZ7/MLTo2It0yfEji3m8GT7Zi8EQVGmnIBc36R6HIR2K89JUYl9VRn+GEeUzaanfgVTcLlIuhmkzsaeKVtRHrycnEGyb1Ne8G/xEHHrxkwRqzzXIDV7L2u2kEwxUu6krLj5o3//4YZ3dykvLqBOfpFOwrpOGTl+4Iw3DKMtysxfzJ6CTlvWFaZvmqterLfTDTif6MFdUSaHKKLd6imeBlGeBRAw3k9Veu5aDlwUUPjbK8USx+ZogbxtpU479ywLRuxUDVqAIUyYVxwxnx8sFbv0/dceLlmMvfwVP/XPVy6LuZ/Wm6qzTl30wjwWTz8mF8vP3oFjgERuWaMpm4XPiIK78Um0x7sRBcc96KJd69YTK1BMaH9bz/tHa8tUPvH85sbuzbPJ5wLN8/r+dr/+BB2BweGiPT+cEya4/wfLbBUpgJHcnPIkZJzK66p2AyCqFj95NMMSrD1T4CLJd8kePYs0SNH00yzHjEn/Tf/pQcsRbJwjUxX4CnEI1W6ao27bR6H9900RstIOiGy0OvepFQALCho9pOnPGx7QjTzBsjDAjM8aFlXWza80OHaNJ8I5dtWEmnkhIOxarF1Fs27uiph5qS9szKJzKe7560jJ9MxXff/3En/IkKIeeDpJaj9AoVlA/lYdn6oZOfEy7Si+vCSeszOGbH/6AghGfh2vN+fKuRYeWXwrk7YCvfuU/+p2fesPxW8/7vJl3nn3+zOfQinvj3QWw+W+orVf/j6zP7/372f/WxuXtFx06ubzoda/+1Q1+RJyBn9CZFXNgfssbs8v6488sO3/xzqrMAZSgHMNlxJJDwS1paB46eSppMGla+3n62gEVXxw8MvaFZYsDTXl2aE4mM3ZThqRe9D1rH0RFFWw6q48/8kMk78Azz4gxq3MWV3vkAtOrLPkZcUPIqz7roB1kYw18y0GJvr6Xn4d9Ul8xYcpHX98jmlQb0N2uGvCUVZnMmHChJVPl1iM+KjjlqxNxRYNpfSlIdJPGJqknAfsIAOmqzExQ+q9Nmrpk6MOnto1824CN7Ey1oXzAILbfteOQC0fuyIGpM9kUHjiSmKgTv9h0Oc1kR74tqN2JNYzLS7uORUtczApVH7SpH9xe56r6mQOHWNxZxhky+Z68+r7G13qDw3rLikjW9shJDGV04y/lLOro6l34Y1HM8wJZOLU8vPXkUDn9S33Jc/J1mRMJv3J49pmnlyuf/avlKC//4TJ8eRbekXtfFl/yC962aV7w0rrmpT/i2TY+QKDP+qKfXPVTgiZfD6gDF21u1t4Zot60bj21wlcwLvnDR9ZdRbbUNf5CYzzaB6sYBl8bAVVGWxqoRTNs1clY1l9J82CqnVwdq6w9DmZiB4Hgts3SklPWEzVtyRfHzlDVgjEpXQz9s3k8CbCN3BOGCieT+qxw5M/6xzdxbC3pAz8pZSG0JUOa8jm5kMGGj8K5JaHQlLLy4uaEiTFacInBCl/F2LaiaA6imOIES02q0Wab/a4iNGzsvPffLutfewZhzxy7faM1Ie22T84yawqvalhf7njVD/zaF89e2D5w5dLmfBbgtM+h3aDvBbD3r/fNMLnqrX9/zXcwz/FGprOcgV0+cmDz1NnNi++5Y+Olx+849UtZ+/f34PPUzgCYQTDTiq7ls//1R75GwBhlIxjNOyhGyEU2A28MaAIzY8WZxSDNjrz6yavRcBXDSSu3AQ0uzdR4h4A1DkEfMcsASHAPsl7klrJE5bQ5B4+2HA0ozr+M8axmiGXGrgFVrYKbtQg15YEPVqqYAQikixE2u5jaLginbjopioge8RB71lPZTEBx0Twy4pqoZt3kZUM+ecCwVQwZCpvKDFCxU7H6Ltdi/I1wF0DLNrSLpz7qW9uAvPZ1ZPqedhxLAeTIkkbPSc18zE+i2OwBKL+LK4DgZsFVPnVWjg0bPalR3jqWljw4bZeJBc8FByPSs806KhJsqXqaytUdcaKFG7RvGlgfgqNB+4EfUeN7/xf9eV371YdeXThFsM/4s8pe5beZ1ZNg4rQx8loi3uRKm370c3kpcBJHysvnD7+1mYkV6mUnZth/85GPLDddPL8c5A6Ai9W5m08tR1/wAvwZsjaWfal/sz9qWECQKKQO5IwrTWZxUV+R3o3IEKAB4hs6uatDHRS3DS7zlcg8bwBGTzjhKG872Z7KjV1dbTsutKcdW89MY30KKyeHPw25QcrJZMqTrqMSBLIO4KZqrU/qFOXKpw4S1dE3HXAzkaZftEH6IAwPnR8Uqv+KDX+toxiU3eJKfNF/CYFMNhLgd4wri4/KpoG1gY79LFYwBegWXGi2W+JJXftU/dhOzVrOXBJrQ7t5j2mbwHIQC8/C9aARsNa/+viy9dGr7wI8d4nYvwbszw+DtOH6mifK/K7Mzx54+0+8xjvO3gVwDdrkLoC/Q3MjvhfAkXxDbA/Ys3wG4JnWTbz179S53fUDXP3vHFm233zryy6+/G1vetvW9vaxS7y8gc5thHwLNbuqswnY9a/x2f9739mAFcZgJpAKaL5loRtvctgtGI2jRRvgdaBn9DKUFa6Bn4HhooOdgTJk4Cs4Bm4wq1o5bMkPTnIyOwmp5iIkX/eDnIElASqOxbfBtzCsqdg6kclClgoqyH/sxyoEcSBYjKz5sSs+Kx++6tTRjfbV1lx0xdRS3lkeSAjTR4260IgltnSTAlFdeLSdeM4zIvl/1abe0Ki8JTQit1fvTvKVlZX2SN3ts3gYGCUs6Y/tk5M7aXFgLCDhQZTehCPy4E2LrQP8wpc+fAqWsmkcKibdPf6gaV3tT/5nO7aNoFs7+7MNUpXZ9jE66oOMdc5te75fr37bwDTGCDkUzHrXR2T8iQyptZ91qSPVkx85J/3pL2miEV428XO5RlRELuhB/PL737vcvLvNj/9s5Ot/a77+l/pe5Ja8n/WnoFvo5flex5s+9kAqU99ItC90Tur03WcF+lZD5Tusfa+AvquHLAeTy7wIyFqPkpVPf1jz3MmLqOBWRTm2HEbGNrI82yB1t+2NVzFkeVBm7Pht36W1bB/bSQwTVdOPFMSUJ47FzBHypdkeEsUBWJKbaXRMNbjH0Je84IfUvutfFCoWgbZEPsNHW+hUzTx4IiqcFNVVu9k2qaw0A1fxYiubWDVVV0LqqbYgKahR16f/1o06R3464Z0Q65W6qaKNuTkvrnEX4J2Z28dkgch+GXwI4NT5+hT+mmsLcbd++2te8Rundo6vHThwaZM3BK+7FvkbAbefPbvmGvVxq3SDbLOVr2t3H6RBP768fc3fYvZMa4O3/vnrTIduPr6++eTGlf/h0Y++8MRdd7xl/9X/czv4WhVMwI+On/LbnCmuf9XP/tEwSHLGP/qTYs9YZSsgXaL/5MUK2VIDtzFpgEIbQZeA3xeATpbFY5Bgbw4MF63wxA9u4R0pnWC1o13/1SPVjpWdvsxBIXUOEtJMQKQZoNWI660fGA6qQe+gqa2VnXisY0o5uGO8VGzXX3Q67oc0mKvJDX/k6TuqSV0Q4i+p7gIiKwKhQ0QwEzbKnXzxSFkPq61yOtHFWcZo4zgmfWIFMfz2S2U1bFmMXEXrIFtoSTlk9GhfHnJVIuuSN/DlzIVKrBUCWPR1q17dcMFKmylr/+inQvFXp2ajYUP30r76IE8Cu7bjEvXUt8h4glJefCDrxT2zWOnazd5YVdKGvZLP/tGlb/wswNTnBHISIk96/+GT8aRsLIpqZLHG9/n5exzDaW1l3uYuxBpP/5979vRy6a8+uRzj4T++ErCcZt992f0gYouY6Rv/4pJWwKM28aX5rPPIiluefaC8DUGKfJ5vsDnS7pwE2Eipl/Fg69AG+Hrh9NMJ0zSpnYxMmlYo+2GVGgCj3UrUFDJt6cjiRLtOG/a3XrGJYZ7qIU4ZLHzN3ZR2KuUwmqBQXRQFdF7iIU1F92JfUO0MeItgxr55jWVDxnYRXtnYI2PZg//TdnRsmclTj92qs11dn1JW4wWczHmmkeYw+kPExracGIyEdjMHEOdQa2tqa3dURl7cVp3Or7/RgEC8KKc4JY/rX/0adwEeSqkN3uw82v/GylwHJn1/yrdU+DmNy8uRW0/+4kMvOXLfnedvunCFO9Bnd+GwJrk2uUZ5v7rPq0VbD6/bbXTjdevfXuPRot5i8at/6+cO8MseT2weXDZ33nbHD5z/qT/8h284cOjQnXROrv5nZ36zWs3OtuNdxNZ4WnTrz99laBI8DpKmjT9c8d+ISqprFFI2aDMSE5+5TRhxw1yxoeTZegZeqKi2nAEbEY3aSBoAAEAASURBVLsDnNgd+FAivSoiqEJUIapHsMeE5NGjQshKPZJ6UNRAl1mBYCPpX+otVgStT3KjXOBSqpXJNS60rJq5lfuWojYnSZhgZnCahV9NjtpStoQUzaa5JMaXaZ1UhvNZ5IfvEobPcMLTQto5dAwgP08yIiNkMJBLKkYy0Us2C7iCIGnXTUZI+sIOviYkKWI8aDltRKfox5zYcsKUitXvYsq3QgMjQPCliV9kbFgHy2zBMKWsPy4Kk5ZqDB9NXMTE0E91wfUFOBu8bCeE2HaRZAdvSIOHPXlpuoE/Fit+XSftkTU0NVQcGgbS7vGdMjQ0Yzs+CFlXlotYlPuFj314OX7u2eUQr//1s9ozPPl/7O5743cWauqHGnN9F27znqQay43D2r16TMdamsd6+YNA7ZvZV3ilb3VORP55ERAnI/k5YRidA2DpZ4IhIinn5MSKtAFzDIY1ou7CRoV8xl3apdIJ3pWugqNBItsGsi7prciJBj0h4kH5+pvurzXo9a/t0HbvA4vKtj3E6XmkragCvDoa943HYsKzeokBBSk4h+lE/K2q5Nk206dZ+cS2dsHvXRyElc9caIa2yaQ16OTnGKu39i+tIIZNMO0CYhGA/qctLCsrTx9h1URktv/iXXm+azSiwqvNGLLNTGd+xpJCI7/mjwRxp/nQy//ez7/1dSdefPnkwa2dA9unNw5fOpa16ePcoc6d6hWyXly/24iA69fBB+m6efXvSxc2ThxZP7j71MZy4ab18089vvGvH/740ZvvuftXrMHssEwI+8qTN/mW92/S3Xc+9pFlk8+LGlkOAgfGkDQIndCySaSc4Bv5yHEwiFQikBw4qiiZQHeC9mw1g8gBUXyOsRn/HGxc+ddUh0AwwY25yA7bmQ2iHXODNXzWj4lPqu0MwrgYrAqqj2RESTGjmi7Pjz9WBOg5o7ctxoAJL4MPGqnZmFXfzdVh5vfVwclT0WzyxQtFI075MSajDjNRF2fUPVgodpyXZx2H/DQpo1fH1lFh9Wc/ahZJnSZJ3VMXYFKeNoc/eqVq6r/Pwmxbuq4m0Et9lGHXV+3GlkLskgYvdlPSf9jWQdOqk0m7mnURF6cMbCGgL0lHnaLjQVnbWPnA5LCKYfC9Il73FbvCwNUd28LwbCzqYZkuvMrlRIITh/n0fXtNZ70/oItkhIlt6pmCy6+1ipVg5BsDyNiybl/h6f9bdg8s25uby0XoF15wx7Jz9EhwXB/0I3csEL9MI3MvIicwdQr0tEGgQNSH4Tv1SR2g5MSmLNgAadrHD+IzDOzKvvTMs/lNAvnpb4lus98tR53D5JVNkX6InP2sAfuBmmtvjHtFMAV/ykQMScY9wPab46t/8NygNY4xiF7MmlUnKYcQSYRVBUbrJqH8zI1WyrI7LP1R1/iMvID6LDFAypthh+SmnylYL7e0IUnsoCmmUkLpu3rIVBq+0PKMADNCh6nOtDfrKVM6crRhsRS27tCE5i8AhUo+NMUci0CuP/LYssUcf61t4sgzP9eQ58r6rgr5J158x5v/5ec/ctvZLz7OSesL18+uf2nLtem2fXcBHkytRpWfC3SdlO3+63VLOEzn5tX/4Us8cXlhZ/3oySNbrz1524XbfuNNr949dvhH8tW/1YdU1Xq+TpyYq5ToWD99cdn+wJ8kgBtSI6gabQmwnMHGK5uNDIGQq1kWgAwXg2/GYQJzBLIBmDhINDYiHFAJdKA0mAGnRxQcrwR6zmTloZFkLHBCD0oNYjTm5iDVgqbUkpf8PPEIUuyFH0VF66HyPZtHz0GsX+rH3700JIrZKPQMv7rxLw0hF5wIxengWczEtfIbnkoKYjQLmoU6Xn/kZevElHbXN9tKeoySxln9UN9dng6aDj4y6mSy9opDhv5K1KeUyVvMUQqNEX/Ip11ggO/flFGtzzNoyN3NtBLtM+o3fQu/IpGKbe1AI6lW09nfiQkZ+oK8WdsgOjqmT+ErgtaUUcT75PLckGMd54cuD9BkLjjSCD1Trqxdq7JwSUS251/Yw5a4MYmS664Lchy2kH/b3yx0WRjVf/+6+RO80JBfW9/kVwfPLBc+9cnl6M52FtyzFxiPvP7XZwMv8k2FnCSgqg+aEEZE6TMOcg4mOAK2SumI0ia6EPvUQ7+UddGRZr7fMAARWv7OcALQGiJYvCAM/bhA3e1H29eyW8ZA6KOsJ8jE4UihQ1ut+XO4tnP6S1/I61Pwlbd2JkWuBRteolt9j1CCEYog/MvpLXiKqKzGgWqC6o8+Vjg+yyrPNmCvC6EhSupB7L299dpHVcm6KZsTHXhkjQFptlNscFCEo8r1rzmEteCG46Ojq1u51FGHglt7cSpo9geqhVWh2VSAonTyWw/98bL2LF95raLGsqXe+rnyYXL2+IOSrwTyI0Evef0/+Z2f/pWX3Hd+59jO9oHLh9bWz53Oi4Hm64H3IUyv9pGuj6zj+LrefKDCr/7Nq/8zBzY3fAnD7vb5rVu2j6698Ede8fc2+GxmfPUvdXm+TpR5bd6VZfMzf7VsfOFLI5SUnIPUoDDi3OfkvcdPwI/gTlAx6lKMeMO87BGQVQ1+TtVHzJskq7DBn8AVBAZJd+0rKGEwRjmUHCQMuaEopACmyTqXxCkUUi/Z5NXvofIWHcwquXgkY4EpaejZnoGCqm4nq6ETUkAD27HV6ViMLjD6oKr2k6kHkxYldCy7UQ7LOvhHIX2aEQ5GJg7kggVTenSRJa98WEMkE3JsQBi68osJTW+iM/wDI1cs6QO56fVg1xkp2vEoDo4G0LwUi6MO8kuAVjuxV4NKkotETzqm40N2Ly69EhJrD9+spaiYsQ7+6VcaweryS5fccrdHPGhpNT5stwDkMLCdLtCXlXZwqu6fq/P84Z28fQ++T9Kvb8QxLaDjQ3goCwOiV/FmH/74x5djp59aDvNrqzyBl+//H3rp/UbxOOGIcnywDtrSK6H8yIHVOrZSVz8W8M9m10fLGtE/6HbHBvQ8gECdVU/3iyUQtMtnTi9MKRqFiVb6z9Yd/ar+ypvGMQTk9Dg52thWtdHFqHSKCnjS6S5+Wp9UG+ylRQgZ+Vrdd5Jqi8VhKxVgRXIyFXyoLsRR3T8WhMxWbCMr8omFiQOQWf2AXpZ1HqrQ9UavUq+kI2/DWmUA+nETepTbVNUrkG1Ue4G13tpifrGe0ZdGKXbNDgfic42DW1+DP/B6hy8Crb/QwSqE+huf/xK/7spvu6R/wN63WefgDtr+/BwXtVuHTr3s7rc+9PjDB9fPfW1j4afozu9ubTxzdHvfjwS1qfaZuO6ytvj1uKUX+yAFRzY/+/fqf/csv/p3eHfz+LO7l9599PI9R07d/Av7H/5Tdn/HWd6/PZeXW6L8dvT2R/+MoFCSQy4nDED2eGIAE6ROJiUg1wBs1DugVZ7NKcZe8Iclm4GZESGmAybY0opfUxz5z5nzGEEJTFSGM0MPj1DNYAquBizV7y4olqEHOIcxzyCFU8rWJ/3VKGnoYo26S3czse7umVGnvkzl3dTfJz8GdyjQO5FWrLbIIxNY7ObKJaY5ZC4ort/3Frv+giOZyc3UfqlvEpUhHRNs0kyCQwZefEAyOh6qRqqM/UgW4NiQmcxMNUHezTs0ysqKzWSGHpOZYmmLIRQldWyN0RamkUN0/NmVbvXDQvWz0JGtfDP76+5EmMlQAf6zjTje52gA0h+JHarBGwDxAt3hE0zH03xw0ebLlO27Acj5UYAnDt49sA+MTSf8K9yfzxjwRJFxElnkct6IT7rUrwbSNoh4ItDF98ry5Q+8bzl5cHfZxhfb58yhI8uxu14yG6HNiG3ry3cXuEdfW9YjvxBIOQ/+aQV/9M93C3SAKItgbvXL9tsP0KwHZDe7ZCxLaYfl2TPLJrGgn6pGP8bsOQkwbGzS9qdSbtL00fazqTlgR9n0W9CI5QBWY+oXwZ4oTkwgn/YNJnTwoFQx3iMNXE82Eg3wdBq6so6b+DniWvrY6sLEgt5/uCP2p8/oZK6gAolNFOeJtDWd7xYINOZ0b1WLdHB9SZ1T9jSMbWVP39DI2BvtOdyKnIA6O5XSadaxQom5gCk32gCeba9Pcx6cWPaDc/2VDZ41WbWlDn3jba4b2vMrgY6R3ZuOvu7gG1//gy/duP3C7q0nNo9zZ9o1yrXqRvlKoF12XW/zxT/ztb9e/R87cmD750/ec/EVv/bmN3EFc+wyrymjg9rH1GYOmmtVrAGzx3HwbHzhi/x61McSMOU4wAUyMcwLnc8ZDWKjaGWtglPGaQVuBmZk4pbDFrkEqLpKaCPRTLbBmpiGlyBDxADWiauvOCnHAOosQv3UQ8F6oGxyCjmI58Ier/b8iG/BmSHgpDUGDbKVREB2qhhnisKkFh9iSx/xMljYQ8yusNzJTYIFpcSnHJPSS4NK1gJCK9n6UJkokzVtXo1g2YxtqPDSHvolTkw0jS+2BfJBwEHTuGCfihdRdEe3RDbC6MTGKCAbmYmPdrbhR/wCPScSpPVPj2tvz3Jze3IVEMY21EauikZ7aiPtLNC0FQJ+6VqSPSshRLbsKE859FzMczJH3j9edcLRnkApNE9kvP0vSH3v7d1O4iWjsYqR1kfYSvN5Kf2QIjgujHaL3vSFPhvc4r+4nPt3H124i5o6n+e71hdfeNeytbO1XOb2v/3ZW9r4BrCLWrvCaBAM4zii56aJrdjIY2Cx1TsejR6PCT/9aTV9mD5+zXouZ5/tjS+hkU89R3vbNG0zgwTfwEnrjqSykNKGcmp3ymT+AaNjWjlrgVRiLo5DIvXOm7ZMx2Yu7RcfKCiX/9Ro5ac2V20tH6XMFfEVf2JfsKgPGAXZa5Qj+cDGMexqtOy2Z2vWh/mwJ1vRgItDwbMYa6cd+YHnkH/oliloKxdiCSTLbKmogmLjSAA6t0YiePIED1BdR2/aaltZVti97bTJHSfv9vbsVGPf+jaWmTXXHO48b7z49a9+y327J5dDW+s8G9jXA/tioJ0nn8zrgb2D/a2j/+1LtkX+9u1+U4sPpuHenif/V1/9O7ezfmV7a/3C17629i8+/+cnTt7z4l8SaHT/12E+d7GfAnt0NHkD2daH/mxZP0ewOnPln5A0qBpBV+MPmQjK538oxWMHin+JQscAf8Zf4hTJRIMLUYLa5nfqEidaTRE2aPNKV3lsOWpv9ljJDeIMAFDEVdaEQ05GvFLFqiKmUsNHxEkoMkm1By24A0edga12EChnnCpYUOhsUalMZSd+mVqSm82JXAXtBoN8LnlMlcBL2i6+IFufYDifZIMWe4qrIw6M7GKTCa4E+GIBYt1TDrvtHX1xEVtNyml/hOwDGapN48kPeXlhgiJ9OmGMyIofJGHWen2DYxsMsdXkGo32Q6AAsX+EiTbE+jjtqgCzwpGLm5l4h99pM/LDh4FUHF0bb8cjG5lZjwlpZ3t1rZxWXfrdGwMEI1f788n8TI65yvNqvb43hgOOm413WKmXEl/85CeWo7wB8DBv/+OyajnDor9998tyh+Eydx1cAFcPkdkvyGShzsIIEJD6lYxOc+WPS3YdLE8W6nFedBRBe6AdrrhyWVbEBumSLwFypx5Ssimedtxr63lSV7uA2HDuyiXLgS0mgzPKEswqw0Er3axnZWTabhkDMPUxOlGqTI/DwxTURxAfgphBHqfb184HZSBSy9qVFJQyo9+HlGFUHT2ktLGSUSxg2JTePiIX/cjJjwypPpmPCrIlpV6FpY9SSeLGdMgFbzSoJzHe0ZNlVn8CP9tMGltOmpP3EKDKD2ZOhs5fWrY+wh1fnj8JkLx921jk91GQmnYmFSFpx+94wS/+0eZfv2jrqQtXNo8dzsvpjl64GcP3Dsnr+yuBjsjrbWuv7fNqfvVve/vpjQPHDm7/zMn7L7zy93791QeOHH7g+R7+u1YnTsgVjxG2/thTy4EPvSeBnBgkaDI8iK7GpMHrFJHQI6ZIzfqkvlFIXl6CMfc7R2AauMolGBUyo8YITGWlsWcSSFRbjAI2m/Z2dn2KeAZlz4QzNtKDGcJ6EUjNOnGqJWwXP1IhYYaPw+KZ9wrLaq3qQUEs20n+yhXyVW5abhAiLy/1y4mI+PKg2RRiaY+9blh/aNCV61m60rE4zJCnfqn3xFIkhvRWYPFa1xQw0Kup0uX0XnMUq63MqJT1jM8c5+3aWghwjSuvI7Y9ZJHrVCVTlD54Ji7wcd689YsQIqm8Lde/QQ5cK2vfxms1kccugGmD2VbGI0AzVsY1LXJOoCsn0WdT18SDHQEQMBZqpYWUpeVWOvx4p99D3oXXKll2YQ6UMUw+L9ihceIPNHXjRfy1Lql90/gtxeZcW770kE//7/D0f3/971nuCBz29b/89fW+OkuJeuVEwBMST54SY9CwJ93b/lnYsJmmD77+udz7lkMDyfpbB/J6CLS3cqNnXbBx4SyLP7+L4JuFFdDP2LdsI6KTvs2JtWXsR0ZcZSy03dJHaXhpnoyYijZlB812Dk8jAw29XF37witp8COiYIRL0PfIIZaTQ+M08uoMpWFw5YpAOBt/9RW56iKYZlCBLXc7gRkV6wOuZe0d64+QsaeshdlW+oKPcdl+G6wKUUf9D344cb1+UY9BSnXED0Gim1EmXoxRpBRWy/FVH6QNfMdh+hrazkN/uqx97Sl4VHhsnYtslwBNclJ5c8tcxoG15/LWgZ1Tr/3tX/upN56694IvpfMrgX5Nfe9jgGXJS+ym8nWWGi3X5Zav/u17+M+v/p3n8//tZWtza21747YfvO+XuQPjBODt/2vW4fnoex28zpng+5e1x3hP9IRI4FoweNgNLPbMq4yODOrEDKHHJNRQMZAR1w9V4k3zKYhj8PmnggK5hII8eqDBDM7AqJ6GnCa7yZsWkzpGgqf9cnLUHAxZ8V8YDIcicc6QkRBdhWJnMBYUOmR041NsT9nKT0zbRP1gmIInTnZ51jGDnzybEpGPXfGtN95lEkZGKGU4xhVyTnJCR1dWbHpFgG4MCJmOqX5hIu8CkbqLa7sIbjtrJf42W8WRH23U6kQx7HEAA5oQQbbtxLZcSMvtC+XoQxMOMR2p6VPbqWD6o6La8pWHgC/Bw0BSjy6AyBXXOlW3daOcppCGjm0VTRec1n+elPjO/GwmiBmW9VIdTeAHWEUYuFGBTmp09kt5aKV+BUo72+exN8BFEYjH+ze5+tLOs5/g9j9X/5s8f+cPDp29+ZblKD//m/pYP6WsZHLqtg1qu1f3BlgscOjdAuvYcZOqI3wpvmjRNuOEAahgoZM1VgvIXTx/dtnktwB8UFDd+fVC8znRQlFbtn9OznREHulwM3VWRHoskro5HswGl9Q6itWxoqxtKoV+0kGxc6eDfBwOJIViZBzXsfDFroVIBL8nSq33iotdDWupkhxTDymD6sTkGIjDDmB8teyWJIz4HsLUj3p5QzlJTgltU/6q3vixonP+sB0UThOQFbKOkknB2pGnzh3TZVv5YnIc9jM3ixF5ieRS78qsP3aaZwF8PbB165aYmwXS55YzD+6jZ76ifPPdL3rTB594+ODlpzltvLCdr6n7lUAfXPcjbNeyfbDXVXav9teHW2moB0c3+iCFv7c8v/q3e+TE5u4zpy+/68DTLzpy6uTP5Ow93+G5tvPP7cCrpJwg+DrI9kPvhmz4OLIxT5BY6tZ+M2gNOrcM1kjIa1CFxcHUcRME8ys56RO1NuQGLxHb0T3PwtXrVR2y4yw8YhkgamFEvEAwoEaasm6RcTJL2Xray/tlqafsDEbra711PrryzNSLBL0G/B/8ZCxnEULNyRXl8iu3ypNZ3UHRboD0kS24tWOdspCDq8gcbHHLgxNu3UJAHCqVBp8KtKH+zC22KEemeJ1wR9vkZCHegIYcfqY0ITSGbnjxWTtszsz6Mtq0CKVP/6oDLd0Khn4Ff7ojg/pOW5S07v8wa5a8NHZthT8UTNiNRd1RRpv2m6wuRhMMyvBDX9vGEOygyGdqDjyqwSx422No5LZ65L01rh5X1Iag5w/pOeHsaz0gzdf8wPM2vODq5KE0fO1ivCxf+tSnlsOPfpWXevLwH/xzngB+H1//Q8Mf5BGrfSam7TCumCly6h+79lE29DWtX1f4BaO8kEiaYUIaHxFNtUX2jkA260HLuPPnGwk3+AggdUTd+ncjp6kUyVDw3oKLlyenmprtbLa7BqcOdYMohj6YMYZiV0Icw8vRV8GLX/KQV5Yk7RBMDhEqPzwMiK+kfzGDb4EOwxatfC4Y0E8dDAf/ooB66OJAVzz2KMRhiXLYxJw6QRgL8ahD4jCCYDMxiqNXqsQWB9PMVZMWexHEjaYJcunRlaaS/1L0m3ZznpMIW74JpTaRMkOn/OLuPPT/LWtnLyCP32lrtfY2Y2D/psz+jRjKw4CHbrrpx87/2Mu//0XL4Yubh47xu9p9GNC1a34l8MG6o/rVoPsBvwv5OQq+C6avaTItnAcnePjfdyvPX/3zAYttbrG8/o77L/7IO97yk9u7B27mBOCqh/9EfG6nXdOKRDpz69OfWrYe/soIwIRSIiY95CAwKBRNAJnb67vQEiDQEqjykOG/IV7piZUBp0QGYkU5Rn51i9pBkoUOrQSb2nu4Ec/Kox6ycjMIzY/BYKDXiTGAxswBWXfrspr6qo4W9srByZm+gwqms5pt0ZmpatWGjr4y8MVwT1ESmfpEQSv+Z7XSYnl1SAx8dPJ3Qg1ClCMVxdSpOmkW5HJSYSEVkoe/QjuZmZksU8i5iiafLXXRJn6HKUP/1RtCJM2aUYva6eKq/aW5te458/NEKKbVsc1ILccGPquvhniKmCrA1qwTUQuZFO2HsqcLZSJkWwu8miThBBdOVJDJrWonN3haKAcnMpGrP/ZqDH2axXqEVeN+LOBT9fl4gH5KmZRP6PNyHquV7rP/tGfISRDEFJjwbUAhxSb5Au/+P3XowHLAbyLw2f+z5y4sB+5/AB5cOmbGUGtg+4s//RDHbyaIJK08+5kSBiFzR6Hy2vWqnyiRBYYnrXGFfBCkEUNnHn+c3yLgBKOdBk0F+xJpBLOQRNO2Hz7aTzCDaL+DpUh1tNJNMkzqJVDx7OfEIId4gp+KdYMnNbL1tyc2cIc+GQvI+Yev0GNHAM2UbSlt0BTb+YdpHVqscHxTSkU2xwj5UYq8uoFdESsaHDvf+NoDVZwNYTo0dxHMatOyLDvafPBG6muOrWOV65sCylSQTE8qMq8oJ91Blrxl9pXnkzjIOLDx+a8sm3/lVwJjWOGrtvTjoOzPTyH6H9OXL29ubW6/7A0/8YbX3Hbn5UPHNvIwoF9Xd+3yYcDr+fcB6Knralt7MP3z9uWmz34271b2Hcv+4tL5TU7rn3l6/cNf/NzhE3ff+SYH35wQ9tfAjpq7MtfekOHDhO2P/sXoe4KcYKs0PAe0ZQgGf+LKK/FsTT3OW0oJH4QSrxb2j7oMKH1CPnggrqC04y6Yg0ahluO6cuGTUYYtV30WLGeHl9mVsr0ZbOX13K2TQlSyGERg4KV2yKwUh7oyYyKKuAN1tE/Knm3ri8fhCzm3sJNBhzo5GetHvEE+KXWcXWP1UmeStsvwxcUik4lgbds2sGUo6MUjMvvx5dlG2lEmu/LZR31jCHyllEm7VwZiMrmyqxLNM2rl1ZR+RcZ6YWfYAAq4yvWOiH5UNOXZVooM+9N/DaZlnGzVQaYniuMkDFrbevYlfg83UjHtqpcdr6ZhCbA0GZvQu4DRfxKJ89xFG3zOptFgGaQLUrcc0c9Vvz6wI+Nrcm03fzK3RstTdxjTcm4P2EqKRRYc7fnRHTVbTn/8w7z7fycP3Pla4mf5HYCjvP7XkPXuAs0RfBe2jjUgcU6ydbQu82O4+qZ8WjX+KahsKMSS/l2ZCwv48REBuyNzBem5J59YtuZYtJJsaU/nBIz0hFuiALaSG4r7+iNY+iawsZOKpFFTlhxou9OKUg525NSjHIH2c/pKMwpCt5cqpBylduaICcdm/6RHVlVUohk/LbCTT7sOfr5qGl+gm7LN+oqDRvfBAxwCnPg6mHWewsRGiDraJrZHfFXGRogvpAIXrHmnAPiZ62JUgnge2NU1k7ZQBVzbTvz0MxRNKG8bk/YdAREpRirP18s//t6sBRVG/nm2+D8aJf075DThdvz2W9/wP3/2w7dc5AF1v6a+dn5n3bXr6Yt3Xte/D9CWbR2+20d79aqtD/+d5lf/Tm/w23+bdxy44+Laz/3gfYdOnHhtJq7nuf0/O2sVmFehUnAS+uKXl+1/9/EGOMGQh4wMSIMrE34nmMa2gQVvemianQMTQwLbgJUoXVmDsUIh9OEsDMSG+jN0FCc/dGY2o3nO8rJX0a8VCJzpamqFM/TL289HyklGUTXM4kN06f3EdOzAyACKKPkRGoPmZJvFj4ao3QAWL/i2V+2EiLxbPyclI3w108RdiIZPEWzeyX4Fk1EsUxwOsa0dyjoeTJny2GfjJq+1tpFsxXvFESbyY1LRKx/ohNwmpp7BS0vWl8FsDwtkJ1KSnhypbUi5NO9GCAhTUWXjoHLqlBc7Maovo3VwtCcZcQJq/6KnamxXvw6ralmm+8iaGYvPcBNfhoyGK8qV/biKpg8b9ravi7z6hg6y0aMO3O9PvGArt/hpw/SDdeQz/PCsKZOxt9g9L13nvF1bmfil20wIfvkzn1kOfuVLyxGu/v2Y4CJOnr/jhcvu8Zu4cOcXApBpCyCPD+2ufpavIXVyNYyPtrUPIvouAn9a2PHoGu4hdacyV9Z8WNG2VUGXRgNYTbJW0fg9//iTyxYf5eY0QxrCaMWGpfbn0AZHH9096Ed6EbFasLI2jkDEIvY1lJpFUT7/OhlHlWULzwxl+5V/ab0wsYAd5OsFeKrBL66Zyuh3dD0MfmgiKCImh1W82deqDGyLFYKoDWHgaU9be/EfVvp1VRfls+FlFuf6K6R362JfB7JpdzgEr2jQBjt3H6eIRP2IHhn9oeAuMfQ6PmjyoSoqXzPpbO3wToBPfmzZeMwff/N+1vNvaZM6fZUQ2Os+iL579PBLf+h33/6anzj1wPmNKxe2+jDg6fWbLp5bfQxwPT4M2Fa4qkrf3YK3//e/+e8gb1fywYojJw9s//jR45df8rpX/8L6xvqWt17wNP39XI8ThIO4P7+S4ytNOx//wLLGz4xmMyiIjoJRSIAATrR0UHchaf8byCOgZtAaWCHBkyZQdkfKnrxXAqPUaHRg5L/0TBLMRi5cAUxUF0s4+Y1gum0sYIlqRRAQW8AurhLGYLI+znLacgQEV341pKspdljY8YQDcuqTQa/A0MtkHoUo0V4CZEpARiUPbvU3JXSbxkyrMWXS3nBHe8ZHeSpMcuzNGkIf5WCqLyn+JTt8gGsTKKRP06+U1WGXxowWUij4DDl9QGYFqZx2bD//2cNUMdsYSmHLZIsMh9H2JXKMMdoDvK4P46QndNudvwGRPsQlbWUhdPIcfEW6o5i6GUczr6uDC5hxeYn0Mi/ZubL/q39xQMPprQHjfZvW0cXBF2CJ5FV6PgbARlN4drFVh5cNOxb9yIClH71LKyytjNLy8EPvW07xS4QHtnghC+1wxgfv7r0vdwi008U6iLOSScXWJ3G8A+imb5ecwDmD8ZsDudmPH/LnCUpO0pWkr1uboQnEHsqyXHjqcR5QBMeOp2JpGdrWdrU5E4HGu5vxoHGK8jwYN5GRz3ZVTCqsapJKzb5O39rHMgWbc0P6FR2cTCz2zIa+1TfkDZQ0CjLm1Y0ND+z+j9goD345OtcYSV0homvvWXeh4krJCcN820BYGWFaqD1zOREh7SYdqjbikK5EGWz7RamBU3LkjVNPGORUlxwYqZb1HDrhiyfQ6IfMvQjmYiu2ixFlso6HWATHdrPN158+x8cAH4NptF69JQYGaX8+dvbROTG75M9T3/rye39xe+3yxqGDB7JmuXZd/TDgaICrzXxXS2nS76oHNZ4QeJBu8KcU54MT8+G/ZWdz/ZkvP772rz73lzedePGdP2ln0AnRuZbv+zvr6/gE3/rpc8v2h97XWHL02woGDP8JNJEdAQZiIy38ecYbxYyQ6mQGcbIx+KZB9RzEGQDilZHEQ/RJDUpkM0FZr3y9sHphyMwOTR87NIJnOCcYJbONdsEUOhkU6qrnGbfYlOMI6fC/n8kNAEGYWJTKFsfUl2z9VtZhD9tZ3PSEDYG9waGw7ae+KWX5AZZFDn9kp/1Jks/BGtRnnG61kVdF8R5GGppUMvxnszhIaYdZiDI8RfUlgFfr1YY0J0JlI0ymy0T7FHgFIXEcdUyOUg2n3qrW2OgPheGn3mEibV3VQlJbKZk64xtPTmiUzbsjk888pYdcegu0lfrOxCP24NY/yBeJ0XN33b2cv3geF8Khea1XF3Iv2TNJq0sum0bog+z2SfD00pOAOaVTtlrWK2hoo2c+K4fS8P0uvlfqLu5Pf+SDy3FeQ7ypHF8lPM3X/w7587/6M00zLldjCgPBAzLDVWw320yVqUNRlwVp21JI2XhCl/FljeX3boDtzpwwFv2LPAOw6QlPdJQ0g/8ketBFEHoEMKr/5DXfI1ajUvv6nziDbyNFBj5U5KxJ+eq3rq3dYO3pqk8l1Ytt+8Sa2PDZgiCqkIOsIxbHX1TlF6djwLIM8VpHNZRJvA1q6lQRhZRIGvbMQ3cLb2T67FDxpDfGC9ALCXxJDNYP57DGuQC6QTkXRfAT06BIs94Cknjil3TmrV/qJE8hNnSSIJi+LAz4PAv2MT4G2NwFb1YwosPX5vcfv2594TzC69Gjt93yE++5+OjtyxNnly3eCeDDgP4+gLrX65sB49z+yn3X8zz857Z5yxPry7nd9eUAV/83Hd164NjtF+9828+9/MDRww+M2/8VvMaxQbbHuLrc9/5vfvGrRlcDwxhxoM7QDR1aon7IuHhaJkZCTgANmrE1Aiw4kLNgBo/CasSY1xQpOJqR53B00jZtPkIyVzLVpJxBYKBCGYtUTCswg15FifFLSbFLipoljavj4JHHnpOE+FGK7F49ECZxVpsQxwKhCU1Ki9/m3QSDadFjbzG2dYMHL/Y4zCfko2a1chnRdsjVlFc8CnuIEtnYiTC0MIcPyrG1YVe8TjDQx8LroG8fopt+N0U8EwAex/EYCVw6a+Rmn7U4/RSbPQ1CYpZdrmn9JZcCiy0LTGkkGOuJm0oRCG9/FVMf8LNg6a9i7vHTxYpMdhPz/qOATFzi4C3208dPLmdvu2M5w8N2fUEOLcyVek4+xXKBt42Qte279RZ+Xr4DjuGi+3HBlAnW9u3E3cXdxohdAdLQkc4Jgr+m9ujn/mbZ+dLDyxHe/S/Hq/kzfP3v+IvvUgMbPuPPhgt6YX2NHmMpV/6AqxcjGqLkhwJ2X05yiZmSWxdPgL0rINFfBFSji7K0audtc+QvP/41TkpEc5OptFs8QsAy9q4iY7vkyA3J6lBwYVencYdP8QEFYl1Wx5gZY0+f8Yt/yzUzeLYzZBhj3FpPeJENw6paOSSKrQHbzXEWWVTREDq7ULVixlaGq4BPS5pyUDYc0r2Kyow0JhQY9YPaZwngC0k5m3XOPgn6NVgGVCpBEpsqJgOZNK6Q+vyGPZP2pKwM/+l4MmlnebKG8cREAKSDCyHjSDXy+rD1qU8vm5//vARK3/5G7GP6ypWd3d3bXvlb/8GP/OTNd+WdAK5daxd2113LHueB9uc8DPidGfv23fuGGo3zbyjyt8fM7f9Hxg//8ADFcvgM36vcXN/auLJ916GTV77vx374p3mAaN3XMOLVjJ9vyUEHVjp4fWvZ/sRDQ7sBLyvx5oIaWOh2T+gGFtkZbPutSTeo9ES+aa4k1Bl05Y1CmDPknSyNYykxMo4z/rIoisUWv7IoWgJBuodAehjwwZIVAYhiyxRjgJHvJFR6wRUZsqSVtRX0Fj0csO1EUEqaJtKeDM40y7C5QkHeKsdqbFcndZHBRGa7hZ8z9NqQELenv9pyAhBYRlKdcLJRe9CcE6RBiVVsFMcJY/oRZifCqIEdhZlSGJBOVNFPGw9MEmmtr3mVddj/oYt8XPfyLQ0wcOLFAEidxEQno08A2hEozcfIgNNE7IQhvwz7SPiad7FNA6hNvj4lte0MFEhnL1xazt33wHJ+5+BylvbvlRGnCeYH/vRJrU7qpsrWDyfYS/YdJw3xk7wv69O+V/9+/m6LRx81M6kD+OoqY9//zUM8/b+9uex6AsBzBefw7cr33YMdfgqYOwHGaHvO2/W6J2Kx8tEAOOLmwFSgxdzRMJbwxdOEnnQaYyKIYyyNz3mnrtSRN358C+DaU0/wLYBxO3jKpU2tBFhpKzxqR+ODNgY5TkVAj9gnQ1rHkKRswSYHK3NLMhRxyPa0zp5YWTdNKR4U2jWxL3EGo9zR3qbquCUG9Nk28GQDhMRZxgf60RHVDa1pxNKsXz3B1JgbPTEQyUSP0CnCoImRHZuk2uwu/rChiDLBiBAglR/E8BUpNn5biA+k2bTtLmbTkAdccMhb3xxmfSgnnlZtB//85b4ZkLfCAhgYD51LV8VVuWP/ajp9xXn9+nLLy+7+2WevbGweXDuwcf4c0X3obB4G9GeCfbB9T2tUbR/hu5Hd79B3w7427aLlwaS9/f8035/01sk5XvyzbFzavPToM1f+ny//5YmjL7jlJ5Vli06zX398bsetJAj8jceeXLb/klMNIzDB8P8z96ZNkh1Hut6pyqytq6oXNBo7QOwgCAyBGYrDuTOXcymTTKYrM0kmszuSPujH8E/pk8z09ZrNgMNlOCS4DkgABMAGiKXRW22t53nd41R2s7mMiWgwqvJEhIf76x4eHhHnnDyZWRPYIK3gIyqrqbRkxtDUcVF8isM/goo8dEXlywZQMgkWAkPWaFKNi2rwrNhAi1cWTIJaDMSBoXnqfbnCCy30tqTtqA0ROyIHQyJfxsKPXVUroN54xSt/YUNkaC7FFm4rBiuLLJsOeS1ExTNcMfo41OeEQzxuveocrY4vsoI0XRvlCUiXydIVq7ZlBaCYiUseX0MnySc5TanEClrIw1I61V5/LRRh2Qqnru7UNuQpj6GSZp8j45VDX/Wpl7/ZiHAg5Ilg2hQg2Q+don1dlTWy6SNENzYZw1dZNZVMMFpYerhpylW79cQC1DSa86Lig35XDnjb69WvTlf5nPuhG24v6LcOfA4GraUo5uWJ/dRjYHyd2GAIs6HODwPqE6XrFnr9xK9dL+u82vYvWzL9Xi7lX5s++c63pwu8/+8P7ngy4bf/bb3wJezojRu6PyKotry6+0Bhnx5iM8qJNq3kLmL60ccA8hAg+o1N/ZJteOQ9LxmdJDjKV5HnUwgffzwtr12bNsTmNaeMS5RrgGZkriT+h58A1QYbzfWXTRnPlCi3YuOiUMIQGXXVeKXkIVLBUmFL6NqyW5AA2RjZFFpjpLVV2zsOaEqMCax9fgIhV80Kaq/0BI950TTafuQgHu2JM5mpp63pVir26sRFEHG0V9ycRASYunFTwtUzMUppcDkUdnRrjLrNSY0RGhjlaYPTCnLaEdbizwlzZCJcerQn+ou29b1/zPfCjEFS16wPltX66TqpbLUB5l2Aae/ihb977cyVR48vX7l17tyZxVq/DfAuPxBU3P/Qe11qswXVdu+PbdS9V7yiMaPk1b+3SEwX+Pzk2t7O+v7O5vreheXG8/tPHj/3f/6PL/PVv8/XFcvv99vqwBXi6XH5sx9zln8VAgPshEykGAwGTuMaLEYnrwrKki/WLCkVPMqAARJxhwwbfYIPejoFRCA5k68zZqnhrnZrqlRWrOw2ThcnncLFX1fBhRn+Mod2gz7/ZsGZJ1YMkIiB/IuaFAC4Rx6inaA9HSS3OewlM8sWAn5j4S42eNWsH3h1u6pqDGQSw5YYATs9Q/dYSKo/8NCVvF+obPSDRx6/CjFg6GA8Ydusj0b16MOmRr8MnrBon9mc5A04FNDkK0PCUYti80CpLgggetlVmMQCOBEFo3wm2ChbCLjs9cp2hVzqPaa4xjRbnziAITzIe3KoAK/0S36q405RbDpVUHJB5IB9x77Hvn9u2n3iyek6v3VfG7O9YcvlxMD38gMPwXngyUuutMXIsNlOVPp2gXosQ8+DgArSJ8up0675dYokgFp45VbBYvqAH97aePuX3P5fIqXMyXSVu3Lnnn2Bsvp5GwEsUXNUXK22WXL8kfEmoNfzsYg27cvJgOOqnb3x5aeJc5IA3b7x797uSJb9mKZi6td/89G0feS3ALosjjFSq3qVrXJAsCEkDSN5bpEUFmlFl2ek4Tvb7Ees0O6OEeOuxDkaV1WTLXB2LbCOP4VsxObUEverymQxZZMnpy36PZaSih+aRKhuFFYphEnG2CFQ94d8npOSk+SjIH/3d8zD1CXbbjCFkXrekpBWa6Z8OZWTL7zk0AJnjr/SPYNrVY8M88WEjEYVpDhLDMGgKDyK7b/QtIOm9ff4+OePf6AkrxX51Ko+MDMHmz4y2vxSoFt8NfD9X/4v/9Pf/P3FFw/93pqtTX5Ymr3sAj8QdJe3AYb455aPsP3cDEDxGO7ppZXb/zvHR2sHx9trm1sbyycv7t165C9f+m//Pbf/xyCZp2y+3Jo2Xv9nBrynwuj9bEFNunniETgVW+QEVK46Krqw2smiYAVQutHBWSiEnbPKQByTSBkDLjJw0V6bTfHIt3oiktiNbSptKIrWQrFPmQ8Sm5oGuWlQtyBGeGwdm+fti5uTMGLytbxq6wonBggYuOgJZDjkCnz5Qq6qF3NpjWnRb6s65OYVHGU0kQqv0GMzxNoRbJWFJI9yJZvqKCOj6TlhC76VEBCjTV361z8r3l4dfXVBEBqsvKhooQDaaAfj5ywcyvIKnQMYtSAObPgV4ZXYs5DUyhRAv38RVockar5vm2RTKQ69aPZBKcaKoIx9xG/6YN8BqE2KPJ01L1xv/996+RU2zeN8cU/8Gh/51bc3w2cH61wJLPzurX6lNSP6XIBrzypz+iQhDPD6wTmTPhbQmhtr6uA4lPrjre+8Nj3AB3t2Nrbh4x0+NuuDRx6dti+cz6//KWiMxDvIRA48+2b/3bQzD9Vvv/2b/aVf+ONEXLt84FBbNCkXDlaxS1/Jlwf/KEvwrsfV9y9PO9z+X3inAnrGw4LcZuYAiBFQ6lZsMwbC0jx1RiBFP/KSL3LK8jKg5PVsxJY0toEMRNaGFaFwhQf2bOrYKDFdpSBEt8d7GsrLj7gKk801zJSlJSEgBikx3JtyzQFtqLZ0Gix7mGeQUFxzRcEIY0v1M+6CKK//CSqbpLUuZeSIgkysao9P2o9h1UwKFffwZ1AapDMlK9oohH/g2iKTdUsBKlJ8Th27YmefJG3+62t8nHUTs1wbEPojU8U4cMfH9TbAs09/4/L6lc3F2q3Fwcn22trBjXV/IGj36qV197g/EvaesI1IuCfK7qIkzvhmhqVu/4/P/vsEpbf/j977aO3/fuNH951/5IG/VZ6B+aMdOAYxA8T9wcX7fMvXz15HG1PEuHAh7yBhicrAc4Di4LuYVArFgDA4Cf5cXSSo4amIN5L6BU+bGL3hKy1uHFlEmzkTeNaxUlBXDGR4lDdgo75skFNZdddmqPJKEQ0+G4Wy8daQsyck7KuPysCQfnk1IyAyqCyu9LraS6psoZw7FeiubuItJ5DvDQY8h5g/xNJP+1PKa6JqchmrwuisPsXA2BN825RVOHw5pBx/2mQ39IVlm9Xja9TJsz5B8M9/ehEfKiSbzoovER7i8b2NoTV/iZfO4LSeoIQZcHxC3waO3YxB6W/zlBFFh1HeMoRS4rII5WvbkMtuKL1sbIH4U0o91V5y2u6V/TG31z/lx212v/LXwIOxXCZ3/L3KP/EtAB1HYCJSejDBkDMm6iN1QS/92JAr5+TwkzsnXDTDn8WTOpJeSRMaORHIg3V8RO/Df/7WdGFrhyfttYaP/3nF/fyLno9x0nGUnum7EwU77jUvrsNm3xrIFbv9c1Cp25iTlB6ncetfO/2JYz9W6K/7hG58K6Ob9afivE7YFK/yvQSbbv7sJIGFRxtNdVJljNE34EZKzMkHGxkF5OWR4DhmQpEjU+uQmCSbePHPYQhTtjHVtNhKci2qeCqGalNe3NGfxB00vV+Y5ZeKp6Y1niyOWwlDtNzVemCQfqRzIce/OYmAlr7Knv4FsPqqZmVgyAmbjN3JcZKs3rzcecDoQ2jpD8Tg2tQxVQ/nyqpAA5x2Ouux7OVr/RRgCDVQsSnFko1oCTRkjdfmj/mZYL4TYNYXnjqMvSTzOnacNo42wPLVwGcunvvavy5vPLS88ultbwOcfifAn8/bAA7D55kckWn19r+/pewtE7/619v/Tz3w8NEz//nrL2zt7T7nWfzpd3j/YbOdcL4yQDxZvPHTH07rn9xE0ClC17MrVEBnFSUCM7aJn3E7v7gT10rG4kDMYWZh3qQanUwieow8hMR0UVO+4jLFnCw4YXhVIMmozeqSGREmGq3pi4uiNbGzKJXy8NmHmmhUMTRXMEIEEik7Z9mkbbwqiYhRpQ4W8eUJG1nVB3vl6MrVBXrSRRfNxiNTPGIy2w8J9CP+g5YrH9nDqLnllCC0oiyYMARfPJLvIxY2xwwWRPzqoqH+4LuwBwNMCb4S6bSrQJOgRWX4orXMDNGTweLjGP4oDY0YhDQ3h5EaeYq2oT+2q0wTxIhASbknzHiKal9vRqG7OWqXgNkEh2+o44zoty3Y5JYhljuiTY052TwC9xpfsHPh2edj19Z5rrSD4BP7QPR3YdQY5xi/yKNdqxufV96ahRejq1wqQc/3HQJB9S0mHXPI1sW8veXmz5dvbbz5b9PZLX4ICKBbnJxc4/P/uzyc6EcEKyGPE+oqVT9iY/DBYoz5p19ow0f8U9EW7z+c6q22HuuAClI+rbequmwb8pkX6Lzxq7d5/985BL99LLc6QNSpqFzbUqaoTo/yaYspovKM1I0wZH531TArHuiUai4ad2VbwTWoMgMwDhEbqY6ZNMkKqHaUuVDBqo8ali2NVpXRD/2nJWlMKe1lK/SAg9tzXXBJdSeAwhClkF57hWMMgJc5IG4wJFhZeRnWsoZHHfqBevilx9MlH7H2k+WRxJRfuShVvhnMBBuA0LU77LbFqSWsrWuf8ENQP/sh7InsoQE7Cs+81qS56bYCDwHmbYCtMzuXXv6f//u/euniC4cnGzfmtwHc2/7c3ga4vae3deeeVPR+0rj9762S3P7f2V7b2Tiz8eX9B0+e+NtX/2a5wWcBch+vwmnImY8BWqWt0g2jWwtu//+Qp/8TFI69k8XgEIDBJ69wg5ZVBjoTLAYaABSMl2wcNIXOMbl84qgnQFIpBzvFOjQPleLLBAgxwV6Y1RbkBKh6tcMrGCeAyCSYh/kqL70sIMjk5CZB34jKKKS+YVSaPPgysN1Yqx/R4SQ2hV+OLlNPX7OCCdxtsXHwiKpN+lXJxqodw5a0pwMCpAZPOmQ9hqKaHJr8QpinPCBtt2GciMjHrpD3VylmIospjItlOoYIfFCzQVpLYlc2HuLn5IOOxqFP7eJFXksoB8gDicz2rB+zrqKXETXdEncZW/WBMuJNms7FXukBGspjgwrUEVVRWT6zCNHL6JVkl69z+3/tlb+i/z5gd2vaOn8fV9o0cFXsiJ/w5HuhYUvbFAhYoqtbNXHV96lD097qKvcKKCQ2sN4noitu217a3vr2t6ZL/OzfDt/+548IeXJw/dzF6dyTT0VXvjVQpXGgG4JkDsa9RhV4AEvn6vIFR8YtVqZL8uQkOLKUcyaJ4vzX+LmkeHfCrp/8+r1pe7GEO9oqs4iajHXHr3BaL1UdODc8Q2ycKAQU3GalQCXzynE3Icx/9S6dLdvs5+hr+OAu1lZhRQQkM2ZUMcS4oiV5BDQcnPoTSBmxS7vFuU196QyjkjOrbgsNfmmWuy2aGibxDJLVMttSnBZ9mXv6mJrJO1Xz3Sogg0WeBMAwJXhxXoToKzEREKwmz7rvMJioD5zY4KEATmXU4RgyXgUDgT7N+wfE7BHrfDlV+i0wMMNfVT3l7/pqRl9P/KrrB7/47H/Y5xYYu87ygL1svA1wl08DrIrf83JC+p5rLYUZg29mmO7y9P/14+XVjz5a+6/vvrV37pGH/kaRMVDmo1xQf+DIgC/e/820wQOAFQBiES4JEqNiTD5NMnAMDJenDmIXpEScTfCkvVhl94pOFOkJ8wSPi4pYinIwUGVShXyuoG5W2hFyEApHHSNZtEleMrmFc80JvLqCXa22pT2N0pws5Jm49qkThWgeiyI4sRfdZTZy0SeeNNsbfGBokTj2n/aSUAjinX1Qlo0nPJbTLp9g1beqAFa9BAa+tJlLLejRHuJwhH7IawwGmNaxpTaiwhh2RaM2pz1IUZC4Sj+hiZ2kkfLCEiOKmrsWObGoun3JJjNscWDiC9sVhgFSFkTxoj/IDUAWm7uaMnLJ4zlVyNQvSxU/+rb6pgLVcPv/+GjiF8+nc6/+N3W7G/rW+XPTEQuUJwv5+ty8BSBc2UOpxpl6YpkOexs9oMjXczDqgtRnARkxu0fdtx1M9f4/OTj1qQDuAHz3NZ7+Z0nk5EC2G5yUnDz9bL6975C3AqT50bfbTmTU0Sn2UB52wVh24Ne4yFzetqFOPudq2k7bxW3v0cfDGzenxccfTnx1S+JFvAy2Oa94mVx6wWsslpjZn/hC/S2ABC35d4IoI8WYKmybBlGdepE8PK3PinDGjZmvlJVDE6/qI3mfsDdrMTvnIwp/8vZXyPQI451jOUmyI5pgCo281GAvvIja2ZqT1TZPD6rD8PQtalAiJg0e57HSjrY7uFT1TXjRX2uMUvYPutLK2BYfA46v7GdcJgtpYFVNQkAtNKnsKEg76khR8x87YzdUfxxowcOgf+irgRv0LhmnT4DtPXj/1/7fX//s/iPeBjizvrUcnwbwE24l9OfxNsAY8rt05DMnZWRy+79VbV68ki9O2NrlU5S7t5YPLHZPTr781JM75/e/3Lf/23l/vG21Ma1z+/8H0+JTFhlFDcCB5OJmxbpRYOBU5EGiHr6VHJ6QhoxwxqS4kROjyy2WSRmFcDk55JOYieJSHWkRICtsIkBjT4PAmwlqs/oychKrPfCRLXnh8zCL2PLLClNskWVWSQF7ynTKozPKyBMc8ugbFRskUA+gcGLbLhk8ngmI/zyGFgNotL2zqFZnEV2QSlwfU7LdQ7dHyio6JeVYhkssUDrrlYJ2RY0HVVsLoYpW4t80FX82URfNbKbNrC6L6MniJ1bXCw9L1aVdEmKPoPqnfFR64BEXHscutyKpBlvb01Q4gdFpktWXvqFfMymnpx5k0T5B5EmD/EU/4ir/5hNPTjsPPMhH/4z9k2nX79rf26eLjs/6dHyThwBLRM9RItGWPZ+6G7Ljqtb0XxZtUKXtFLL40m+77sN0/vnP832C0d/16cqHH0yLN7z9z3f/20zjtQM+/vfiy/ODiTEfXvHVGA3lQgQ8uVBw6JODjVUV+qX5gwF1+FxnlxnwVwHmFCKTXzkE4soHl6etq1e5XvPkCGSB1KX+5heoYo9G/nOHirbyD7ySM8YKm9SjkINoKtsdqqQ+aag+yccrIGTkdjcyiqeOIGVZAq0RyvDyr11QTcNX1BIfiMRHrVwPJ0VeQMY8tsMXGqQyABcWxrzhRx/tEWu94W2+GKl4DI+aMMMzTlq0N6MMzY091nDQBqFy8TX3FUXxi1I1nhlf/edc0pTEc/HN64gNbVcZMXoNsLaTNFGsVOFffMrbAD91V+rvgpAnGJDmgYvoXQ/1Gxgn09bemaee+1//hxef23/weLF1uMGXXmRvc4/L2wBIr+59dwW7B0TD+/NKPQTTNL7739s61i52AABAAElEQVT/fnGCX/5zZv/Mxlf5RqWnv/7XX+P2/xkGwWiaZe4cjDFIv9UZB89f/vvRd2iibCBBE80Jkc0isAbXSJbhM7jCL91W+Vs+5hRV1iEdjBzciBTxQKuTJgsBWp1gNFazQxABMnLaqh2yqfWlnHakXJ0UKQXV1BMnK9bsqrqiUE9wW02vbqVPDOwaPMoPtlzhtXmqhpE2+anYl+iH7ATWp7KQqhvyWlGK1KfrueJoRid+rpgzspTdbGTNsZgia1HQ6COXPwZRZnGy2YN5dKcKymgYGwUcGQfaq62uJMpCmOlrbEK/qnKbcuiMAIr1RxlJwTIesR8uRmVJHxl/xiHxEwFYxwKCkaffKSCEvrQD0GNzecB+lgh2226SlSzjkJMVxWJs5NMOr++XX+UOwAZX/7f6B39OjvAvt99v8UzAobqQP7n+aWEDYQ80IFeGUWX82ACf+lUTumU2ZP1FXZ8mpQJNu4lRl9A8gEf+9ne/M12E78ySEwD0+jaEH/87+/wLMhF2auIPqKCJlYq6LOt6bHZDt98SaHfztZYXB/M4DfuyEaAncuGPlG6ORJ0o1pB+8s470xn64y8BZvNHzpQpK+6QSbnGS3szDrbFlohAo93UWWsFxI6cjmVmSONmnIMdQo277KSKAfMeG43hP82JO0vFXHZSFSZnL3SqeVc8Ff7qG3La2TiRz1qir6HbR32B7aWhaJbj+0EMMxX1prGy4CGr7vIVjf6PDqcipkbKobBFysYXeeasQNogvkjK81/48NjNqpQscypI8GU5jBwiGRMiAt6sReoKVjNQ33ydvYI9Qz2mMW/nORjq7zwwnXmklPTYq1/6+vO8hX12a487AHy7BHube1zeBvjKz7H480+flxE1yun/7bf/vVVysHFtcfjBweKHV947c/6ph//aAcitwRV/eUfgbgMi7TY6o+/T/xs/+TF0A6gHOj2nDK0ipYIqkxd9CTSDxehJoIHLJElAhmCTMvLAIk6Ciro0oje8M70CriNQAZhMES6ZMiQkV6GB3Y3wAoxcLTDYpfn+aaI653bL2qYOT0TktcPWYXRCQ4pQzYhuk9Z9Cl7xeYsQa+LX+E9ZoTz4Hz30VxnUhFccebJYY2P4WyZCEDQpdpCnHQDsSRG/OV7pH0B53zA1aFmhW4/9QUA+9c4+U9amrCJ2S+z8mylSRwsxTmbKNubbzigOWwANi5jamwVSXupk6ahyJPk8GSioeOLUJhnCx8ExIBub57AzGPIIpO8EQq9/padpNvivn+NoseXhhX+Obx1NV/hmvfO+/8+fc8in7NW7yW33GzyA52/e37p2XUHRAWvs6LOMXOYJ7ZQ1WZ3pn7ympoUX32QfQWaeh9gC3HT5W/80XdzerCtsQA+5O3Hw+BPTNnckxtsE5ro3/QV32G2/VWMUZjMahpCLHb+0OYrrDiUkxb/aZYP08McN8IlHC7658os3ODnh4UQ+BTC6Fr202ZfhY2rlLcHBKtdHoRqSVBFlVYiy6JLfv8SvAHA5Lx0zHRc95mnCz/aBel6UoXuyaHPmQPi0CC7KVmNfFgRx8VgZGIhaowZe6SgvWT7VJJB3V3RWWYBMcKJwCJIbFxFNeTSUyoCkazKl3+pQfeOGP2razgRPTK1D1NVJumLFP/pa/ggtmEOEShwFMFprnpHL48vODTvsnTT5Jcc4TgJ5q3j9fd4G8LsrOo2TgFG/Wz72HfJoOvvwA1/9f97+6fmbn3wyHW1cz5cC3bz28WL1bYAVnMis1O9JUS99bumbPSQa4EckrvPZf2//n9ndXi4PDm/9cnHj0u7F+161nfH5gw4aAyD/nBjUDT76t+AHgOohIFqg1eSyaEAZTMAz4fKUeYKhNyLUBtcN3QXZ6Ia395UKHiCdKGWiPMq45GiyC0wHo1X1yDqSbLzGe4h1KlsTz7isJLoVjtqYSy9w/PflIkurZQtOtqTIO4G8BrKBV/rQzdbdrHzFrgKY9VINxCkw5kNs+FLY2sQNjtjaKFMxZpOKBVohjVwc+z54LIKhHZFyXPIqjqjl4FjVOUv32bp/yGlrzT0p0nnRnv64mWsT/pNQ7WqKNiX7v3L5ImdVnzercnWFTEPrSGluh0zKYqt/1RSs0iMliqgWpVDqLoAUdLkpuUnAHBss6KzYTt/0i75LP8CPmoFGP/HFwdHxdPjcl6atc2f5ilseBCQE854/WLvPvcC370ET9+aN5EIkBTOquVInRw89nvssn6GiP/o8iTJI8PazmBF2BIRfcCv1+kcfT9PPf5yf/tUlPidwgx8kWrzwEr3ibgBvT4AWfxipEdSOFNUuqevUsoEWfHi0RZuKkyO8+RljcoX9aWHlExv6jZQZISadNEaucQKwzbMRzq3aNJXRpqFXKWpi9avhQw9NZTQnhceS/OiuTLTYJyE0B1IgO9tjLkytOcpTyauhwc2fPLa4tKgjGCrpeiaXumxu5rRpC/XYpDWIWqfkMVA51PqXJunam5wjoClHR5UqTtRfr8jF19X3nOAEF34a55MRq/IFZqVivWn6PH6bjUEH9mQewCbZfqg7a3zWW4VrsEvM+Y8tOiQv+XlZTW5b1dc/vs6e8UPa41yIlZT19btOBgZ9vA3A79a8cPHvXnh8l43j7P4Znn7dDODmwenbAP9gKDZ85/c0G8rvqdKhzPdALn/D7/7/eH1x31U+98eP/xze5MnJk+Uz9z9w/Ox//vsXN3e2H8r7/wbWHSmDuUJzAMYgFJkR9fb/j7+XgZ4DykIGnUONPnIMrkLSJWc1o5joAbeDJncB5FMu4gan4Vl1myqSOm/88EqqaKRABZG8nPhuUN3HbJjIBTlRKZvK1MOQaSvyQuSVjYGKqfnTkAO4kZOTZteb1hNT3Lh5pf/aQ+qpnpK1wGiiNgkgXxRjx5ChLqlkpVuDF9tie9ooSXecxEHCP/OCbE5tlNp9SSvlqsYQWk1imZlXH6I/NolQ1kSnLNLja8NeHER9WdCHoYYQXvmzBsiujrYhXZM5BtkX+GzT7jRSViYLDm3BKfsTR5GFqObISsBWSZ0GlrJlow32p3DCpnGeLJQrIdkGD8JX2eC3Xv2r+sY8PmLnlaZffGO6jzsAB488VssjzwDY8zyEhrKKDSmgjf5oo3VeWlB3RvLzOt1AS0Rss1gG+cVD+uOtf/nedD/27PLTv36O/xZ3Ij7lDsT+Sy/n0whrvt+KXL3HX5qy6LdSoyI+LCXIo8eTzdikR5gVGCtfrqjJ3b6KQyrDTt/jO23rcctzEJwAOPS33v1VTgD62xDsBDbJm06LEBtrHYhjwAV5DJpj3XVFkuIGweWE18HWzsaMfemjB5IxpMJmHbplT4JeZY4WAHIezWbaEZI+TxxYCb5E2rSHlJPzYpUZCqdDZoCmD8pTD8lDCmTJEVSv7EmUrIfWoO3f2to4iYpeDgpVgMyiBUGDorRFVGJI9oNiYO2rAKSMNUT/bcuLtgykPNVWneo6xsTGQHgoekqyEx/Vv2pa/uRfcMvdfxtgrEtw/q7kxwFPfOv6yf/41b98+fwzR3y/xOa1w4PscWfvP+RtgJvZ+1YAYtlK/Z4UXaY+r0SH/2F6/soV8uew4aFp+3h3zZ/+5Sbl8vGd+249+sqXvuJHKnxPBYa7Omh1MFbL6RSBsvjwyrTJ1YehncQoZzIaTJJENQBYUEoBFQLJq/1Z4Qg8AeKxnkmwGtxKFotTWoaWNKKIXoMUUxLI0WJEV1SLOAdxpMZsTgNswRj4EDObViZDTFGPAqaeRNEBUVWJbMq5KqceY2Tt9vgCy7STcq6UaK7JCBEQRZK8LBSHf+nJqniqx8lUYrTAoWxsiEhokQzNkYliumZuM636iz/HND6TbiojobuQDltpFCt2ndoaqABWe+IDvL7RTJ+gZ3DAdYOwM2k3oxL8tsN+5F/UkSBgpxAmTeA/hVzFZ9GhLkP6Qx4GeYYQzbJ0v8qIYqqrJH3Bq4yLePyBTHD1dZczdtSP2Ww/XW5O5/L5+lv91bb0mrE74m6AG+3m33ydq3BucfJNgH5VcCCcZukMiJww6K98wn6MnZriZ6+MfcGGiCEf+yyHKJ99xTZe7/8zt/93tqbNDRixwff/bzzw0HT2sScqNJhr/oCPvG7cYqjbBwVzhQ4hdWT1kwt5vhtAHSTH0aFPTCBfb3kp64kFcWKbPnRq6kcJ/CPAgd8meJ+P/33M1wDDH28ClvGgY0hRFkDe4pdWQU0p/YQeSNvRx7FZLSUl1laJgRO3GRRCj6pmmiShY3PzmUFTLEtBk7ESQlXKLfYk1ueYFgQS1zAo76HmgnMJ8SgvmIIKQ3U9zDFyxgingsM3FJt5gJMn8AWnDYsKErSWG+KxVn92J2CMtnSm7DvFBtZEW8NSifLQtCv4kaWUcSdPTItaSqMhPAGr9SDNbEM/fX1a//BTWA1qsvQxxdsOq/TaprpZtcTr+ccf+8rB8UcbfPRmfZe9zT3u2vF9a1eOHlurvY97AKepO39K+KxLuuZep3Tymytax7f/rR3yAODNW8vFjZO1//rem2f3Ll38S9lWnbwidhosK8Q7eZdvvTGtfXgtAV6L+mB2+BlcBlb6fLeH2EgMOuky6E7Kuoo2sIwXQ20ODBavBGIRKVrowExTyZRWCLZ7dyH4pUOZBH4miPzFh2WlyzlkIEYm8BRrYdPuTH7JygFZc6gnWza2uh5Km4jq8U9+U/R1TpYBSu5iRs1Nho7nyiLzoTBinBC+4pgs31RUUXIFRpkFWJ+lRxTVkUXZ3SP2QOE/7ZGVAZJl7bOfwwcqSMJvaYNHu8JaG5NOoBqM0d84Jj60/7R6khcd6VR1ITC2xpLQYnsPPOylZwZvG4WgsVwqFwwBt4zxJEsVg7S5yfR4FpQ+Til8p4fGEiC+sABNbFP3W33abF8P8NMhV/kbe3v5JkDVRMYNnrIb5aWv/6fp6s7OdPjJx/lCHnXL5qtGibHvjVn+pLHjoHuONRvsSwxmO8mj/+SIePJ+wI8PHf/0J9P+1mb9wiwOyq//Pc0XEyF65PcQEMTrWaVLf96q0RBDAyBPWGId5dwBUyclT09ky4FOjrsY+kDhWpA9kdEt2gwr/Ux/qBiSonz4yzenPfLNJXgaxSG49Nv20NQz3BAeWmywrL5yMlVPGkijrcs5UbCPskrjGJ9ZcY5KEl+cWWGsoN7zl+bEuyzyu/ZYstILmH1Miv40ICNwl9UqT/g4SO5+SQo+edoh1JVx85WBttpQEAAYx2LWyYSAlItAgXraOFjArrIEO1IYvq7myHaxJPSzfivcMpiyVRlIo6vyBU012uVY207/9LVjICUXaeLFRnMxGOsZE44Pr07Lt9+YdajHNOZo1U6P9vf2tgro3YvnXv3HTz64b+IL6M4tdxeHN68uFjevr/uW95D+puZ+TgnP3vOUYRsfgfAjEePb//zhhOXe2mIfkzZefuyRnQtnX3QScxUQB80b1h0m30nPQDi43MJZvPEjRzcurrN1oBJ5gBhYlBMmsBTZCWJlTBqVwaMJ0oiSGugOykwe25ThZUpRvhHkIhh4JFn1OrmMdaWRIodacMJjsMa+gaE+ZUDSBo1lBRt9r6tEIaBls4UTe9TrLb/0UXGNiLztAopHFldoM2VTd4XmLBAiOZFyMqT9OfFpRoUGvwX0R9+gRZAK/RGu+kwpwypdxmaWFvtFgBb/qgeOXAFKEIUX/cvCTv9KXv+dpsg3QQ/4F136Vt8ESgY7X3K1AErzxcJLZlPdNgWhyJFPo/VwoE1GbQpuA1IuDIFkbjp5jUmsBHfQ0ZWxpw6/mOmj7Y5t2KJUxY1Ngc6o9oSr+auHR9PmK1/JFXRuq2N02VT2H/LZ//XFcjr7f/xf080rV6ebV6+Xy5XvDsb70V9+M6Z8eds8X6FrPy0jo5/S7/QvBK7yq+Nvf//70/mbV6e9DX78RxfwdoS3/7e/9Bdg+RwCf7Bqp30LogSxag0NYLqNz9xk0hcP6MhmbrzYFv8oW3zmtfnRzn95v7Bz0g+WU+yjn/4I+/wNACrqHu4NbNkVfC2hWawYm2JhJ65is+L6W5AGCosxVvGZoaYpn2iQxTXOzsfIgUc1dUfCE5NVOk0NLVfSEA9dn8pfto+HZpWRrVnItYnaPH9l6HriABxsDjT0nNQrL5uOiM2l3jUxIjU4tV7ClT8hh32dO+dCQ1wek34T1h4LVniUe3wTQMaVyQz2Fi1Z7Ck/BiRlWYLMQA/VNdfUoXzxpiKDCbp9Xb7xE85ieRtgpZ/F8NvHsfnP67F3ungLjGfanuCt7GefuI+PtO+cLPe3N9fPnNvPnvfn8HFAIuCepxoT1F7goxB+JCIf/+MHE6Zpdzp7bn/5F4984eCJv/vKK7yHsodDHZZZZtXa4ezV3HK9XLw3po1/+wnCA4KSi0ZHTeSIQmPeSJonZivJRqWorw64yMwBwcRVVp0UgtOWJhApVxUA2hPgMGVyZoLaTmAKIqOvnFnDYw6utgcr+sWBR4Oav24PWoff0VzZmLWnrqb0iVLySSSfk/hoUZeY2mUe/gCEs/qjnLaRu8DJF7yQq0xxLBTFAMEU0ZZP3/GdfZJU5BSCLbD/8YuNJGT0RfRSja30V9tTbhD7mI+JDRsjXEpq0RJaw6FFkNxmBz+v0j2MSkwUN2wYrK9Sbz4rwRLX1PbofPsXSscJHRZP0+yNhboLIC6MA2uUaffEMydw+Fu/5kHUbh/s6q0NjXtaR7emK/zo1TneX+dmf/lQG/rky4V3nU8HHHLlfemr/2G69L/8b9M1nlJ2IXQDLf8LaDCV/jFPvB3vKVweOo351ddsvPoSW+sbAKEjDfP0zmv/OF3ip383spD6lj8/u7t9Zjr33HPVd+VkjrhbHRra1vlEUdvsu7y+LSA2PNkQeH4gJ+fS4nDaxYLLbxYsOVukGzD+x3PkfOsf/bzGl7/sYN+8ITp2GWd9Dr/VIKIiV93I81+xR4GnIeMjmsNrWzFwdIzlFdJNCDAxosN4oC4NUuWUw1ykEbMBCY99UB5240txUn2kMQzWQhvGlO4i15xSrACiX/WqzdoIX+IWu3MiVrzGhbyJV9spZ5TtnCk5IMRI1SvTpzExOuCVnTjxxC1dF7c4UEQjL1lin1VhgJRWqmoM7Zt7d/wbrp5jrpvqklmhtFlGD/zpf04i0Jq1Tg3aU3oj0/Ng4w1/N2blmyGFuyMFD9rp+MdiuTh3OjlZLJfrD77yxa8+f/6xo8XJYuPq8XL9tm8FPP044Cx4h4rPtNqj9ZnqWAVf6WS99+FHIq4d8/3/4+N/V6bFwdH1jYtPP/4VFxMWl4TjKsidZQfBATAfA2J0LC5fnjbfeZsxBceASDLcDO6uk5VRHC3MZ+7wGUmJGugJTGVNIKSg+8CiIqas2UATTACPenjVV6/IarM2hARj7IPmF+jIb3/SaIUX4PFEghPSSMGmQuO8MVtVRLu0Ozl1gflPqKesXpjhiSmak4igEFxz7TxVFjMLvGQFiA6VpkiVAv+jTykL4YSTbvJyUKW+XCRsEpdX+UW6xMo4Rt41/JSmYcWgtwArSDdL/addjsHASF5tYU/dQ/tBXpO55jVTXZFTVwWNIOSV/sWE0m1r7EufqPTsqn4VqNpqGCjBXJjIU12N0XREH+kzE5g1vqMOSXJ02dcy+yYf/zt85jm+iISn/7nStjl8+CPrHrl/XnH7scAX/8v/Pl185JF54y4balPNczExOwiJb8dGTJ+yryGk4vf64mi3N2Bz5ePt/6Mb16fj138wndvcnJbq5fcADvj439GTT0+bu7vTkd/+Rx98ZV8lzzcJapt+BtOTuYyDZdrLeaVPgmNRwwYNg3ygcGC6gTn+6Qf21l0JMRgY7j5wHpSTnwUPAO7yBUBrvn0BTPwMStYTYzJl23glPisCpJcyeRRUWfOFVyp/Pae8eya2PTLBmZfHqFGmdSSXkwa1Fb7wGZBTyZ5TirUjwALfwVFeXYHVNpAiL7NYGKZNNFUchVw2KFlGQYQvfbAdjApacoELX015xTxotFlPim0DD70EYkHYUPJhpRqKB8vqJ4995nQwOtVBP0pjEMJ3KmyvtVOyYPJXBuhcTKf0ibGGQZbC6IAhu/zVO+whv4F0+nHARvmtbOw7p3O4WKRfePThV35w+d3dI97aXts85AuBttbd8+74OOCwEM33Ls3Deu9UTtM3e8zU6UcifE9ka/eYE/Rby5tXrkz/dPmts/uXLr6oMwnY32tj8chXr/SDst/ktPHmz6e1ayyCbpoGA/QaZIMRFg/D7RYiZwNYvqwbRa6ciSbraKA8FokK8kR9VOeAiOE0yoFOXSMCX7mzqie08Oqf7w5Yr1lig5VGpEG6Ez8nKzSRMikh5YoH/rKPCVPActQCMfokr4jqSao+RY628oX2wSJG+JSwkZQ6B3HkoXAK3fz6N/wyD1oL69JuLR8UZMYoNg8Zcs0gC1lXu1vYPJJAM8Gxk8nUfFkMG99oarCIRc6tiwb4MuZiBwIsYWizbzk7KgJ1meS3nQOFKnLMCYikomcYKerbUS5zI0Gx9QZBGTFbpwJ+3s5clSZZ5EkMWNf7bnZcXfOQ39Yrf0kTT+Abt8i56Ptn102xi/yYLwY65Dbl5LffGYds5COuj60zfnkLARxv+/vjPvolJw+0+zBffvDHfuG7tEOP+eC/9QNu//NFQ7ubXF0zJrfY/K/zkb/ll14OnvbHJuSNW+8kaIf28X2q0aUZFk0U84pt0rErZTbu4WtpkZFTOnrHNMlGHKx4Czt5QPHffjadO7jBs8c+AGiX289WsGf4SiPkN+lttKdsTMwt2VBX2gaf8ZByy9sR2Jwe+kXYtMyi1LBj2GL/s/Eh5BX1sMmaYRGwtju0+FEw9GYOyoQc5eIX35NPDYDedyRq7RDOdvIkMDIA0kTX8eaIjn4EFxp6pUeWPqsr/YY/cA42xOoDxfhOmq28+E+RmqlOnCBDbIRqt67dpe1UKHZqh9Js6uJZDDBZg0e/tNDht7+dHEKF1OfesXzzp+hyfsh/e9IvYyxub+kau7/tZ86fffHdrZP7tvjETX0ckE8DsOf9OXwccKwJd7X/syLm/X9uAOQ9kIdZd/Lxv831vcX64v6trem+L3/p4U2+SlHnedtxNf1ehzdjgoVbehu/4D0cU4/vCP601ygzL2xkcDOBOqdsUJyeFdcEDozBURFWMpHDRkXdQFYUqse4ST/SQj1GQBzRCZ643uYVygky8whmXUxxzFOgNOwOSUG1kaswiB3JjRlhy7bOE6HqaYtcKYnN6M3JiHBpM28A8V0HFNRP5vKDW+VT3NtE4Y2MzfICkzNvC02L6cEttfIP/6lJuTJVw0ZSb208bsyF5gLhnQX4eqEqbm2l1LaWfV5NwJSFQ65CUIN9qpgrffVAknS73v1VBJnRDd1kT40hy24kJVB9snvphHQrGBE/qDcC1V6bsRsidDdz+EqjRxIKG8FaNtVPNzansy/y+Xox3dCx0W8FxBPw18anrE/Ye0V8wicB3DRhqStg4sr2WswpZ/ohD1Z9lK766bxcoN+f/AUN5ZQ1hoQa95vpvW+9xu3/HTZXb6MyHtj0Kfk+P/9rOfMFZcmpe/s4YZ1+uTGhC3LsgVYhX74S398YyFsGmqBMD6Em+Z0H/gSwvclWAX72OXIxPdlQ7Dc/fp07FKwVfEOiirJh6gztIcvbC46j9STsRpc2OVZSU87BACqdNjhsanHUTNonpVKNJZ1MtU4oKSpTjEKFPdCxIaWyP6yFrD2lSyjwo9fiiJOiFU6x9C4582hVxi3WYigVaXFDwKnFVFCKkVxEuUgJIAuRaiplWfQXeU5I40fnmzj+21B+jCzVkIQx5pWlPSqhKZ453tANF5mSEwC5+JU+KAhG4o2iKet3l6nRzgsgsZxzuj920bb8xU/ptz+hHckc73Y4jY/bW32GjV8HfOCZ/+4/PvvkpfO8DXC0cXi8s5Y9j70vqW6GD0E7cM9SRd89UxdF6aC//rd79VK+GnGbLwC6ykcktrb3l89cvHT8hb999SU/Q4nz9PtvOeRuznYBHSmDyHs3GzwAWANHm4UsxGO8x5CatxsM9ASMwcArgE4uFx0DRx0uII1HzdDNQi0P+GUGki2jRAU5BQOrbZCaOI0AZfWKm+BTnmqCkcliWTwg5oPRSsr7r9pgH2BoExPMdkDY+IPGiKSP4gQNlmZydW3avJGrQLbY5kJWhEyqJmNBqFow8PXJWBAUlSc+GjJFTP/KBzChW/mMY+tMpkwZIVDUSU/Sl/7zSqIwNixtyANg9qmcIKWKnMCNh7Tklx6cAUNluEn7VFD2k/fJn2NTDwaqXC+SY49Y6b9Y8M622o4t6TqHstm4K44gWAyDm34ACk8b5FNeivKStME/cpaqfLve4VPPTttnz9ftf+TqR3mQQsYrdjXmVCkFUJTVR97+ZpN3cc1CLT6oujh6LYDhd/1b1wCbxMp8INca7fbk4OTm4XTzhz/gu/83OTGASHzltwkeepQfSnmItwmO2JDlB9OYN/60BQwO0ZVYyPhIoI2bFZ6EaIJ2xruwaw7/gvRMLjvq3UP4HBfaPCnybUXvVORLkcC59qMfcoeibRQ4HSbvPjr+2ZCp5yQzisTTVqyNMRKRMaUPVVOidhNL/Mkri7zB6xp9yR2SsIspD4eMOzx5G6T7KD5N8gRDKGipiqOK0GSyzEFadYQc3+QPx8Z2GtVjXAeEDPD0TTFLtonRMRBYCcpbGeUwWVUnbcr4GvTwWmctsT2Kq5OxO8BlXeZxDkYYvJGlf/qiO5kTMXUZy9ETANRjf9uWdZFm+xSfARSa/CEg0ydh1c4JnLLpK1MizwFsIhMntd3I/o6UmO02ymsnx8fc919bf+iLT7389N4TJ4v17cUae90a33ezvLG/7h544ec/twem9LKK9+Y4FN8LbaNzeLe+/lel6zev5j2R3aPDde4OLnY2lmsXnnj8pXr/P7PxDzpdnAooSyaWw19fnpbvvd+D7mjzSqBYrmBw2mRhl2RKUJqVqbXRw0W7TQkCz3RlTcRJtBGar2qilUL4pOe/JOBNcNIOmXJNLK/LxMm0kwesvG9p0MI35smQLQIttodH/ppI1Qfo9rUX1WHYvIBhWy4yYneFQHXdXqlRu8WvXlYfWG6lyVHOSHs7mPXDPtCajpG7qpuAj5izS/EV/OAFMj1PXzKOjZF+xka1jkQp7QELvtDSRIky20OohlGNcRrIu0pZcGWL3d1v2Bu1+igcFH1cHYGPblX3pdnn0UGY429o6TrWsLCMWJqRHfNC5UgZsNKOnlTLgloA9TXsGYcYA6/SrbONjYt47//q4U2e/ufLf+hT4oHNbmxUI57cBL3ZHVyHXgxB2fzdMLUpD+G5iUeTXuUOgUwoynv0TEtdot0C6J/MVGjH7NJQprfZ/M998hHf/ldP/9vP67znv8Z3E0QPbweo06tybRKg4oRyiOhUD8Tge4KCHlnNq+uODnK6lLxolqnB6AmG7XkwMX0Nt40M22L6+P3L0+KXv5x2+USE/lA+/erYjT3iRh+yxo2ysSta2h5s0C6S+bh7ol3BTEMfxJIYX5tro96FmLK5dA76gUqdrApsvVOKHgQzWYbXHAXZAO2AzYOl2dKfGGyDEtjgO62I1tpTIhEPhH6zuYEi27osu4G27GBJH1U9dNNeFykDiYYxP9Iv6h1EeqTK8prU74s/x1rD5EF3raFRnnq12AaLa7CYwaVOKquhySiYfPjflK4MWg3StPHer6cFe0l0pd9hvevBmFvdh0Zdf5999MGXf/Sbt3d8DmDz4MZi+/jM2t7RoVZ0ym2AWANhhT7aP5vcaXGvUjpHN6PT2/++B+LX/047B+uHS95o4T2S715+b3/n4vmX2nlxhA78Q2nweMvF92w2fsnT/zd8eKMCJ5HoeI9JEUAHDOwEoEFRehLurTJGQ8+mZ0BVrIMKVwYcAvIZ+ARIjWEmIDpylhosMbw96Ebqi5BGt7rydDJlbQlNUyKLfNupaZHJYqER6AyTDE4PZRWMe4lpOkvgq5+G8Mh1ym3QawP+Uq88pSz1WkC0Q6LoppooOgFkqtWaJtV0QV9EQlFsCF17Y3Mroal0VPs8BHBnTIYx7oo0Bi8TWX9HUR0cEwlmOiR6zCxLjPiKH8BPXz0JoJGNTmF7UjY0xhDUDjCzO8uXWICUcbBp+AQEbEkcciIQEcWUjxnkptmu4ZeyUTZRZxso13vi0oGwXdbuY+xpu2zyrfwrm9vTuZf/Ah5ssl+0c6O+1Ctq7GGbbswYkecq2TnjVDE+0304odmXbE0rND/Gp2yuqhvHWKhP6krATHTk6X++/GeLEwBp/iDRp/z63+5LfPzPuERd4lO16ZwFcLVdlxLH6tfm2ODJjFLw6hepAucZBFuoNurst/CouzqcXJfVic6t6Z3v/8t0gfjii8fRhe8Tz3YWXeANs1Qres0R4w8eXhyLViUq/ocZ9uaXqeVFMVnNumAfogSmxHHJIlnTOFVjqugZe+1MDIARe8sPsSmhDBbGuxbEH1EWtXVAvltiSHQ1TYZaYzRamxBu1fGPDKl33zO/4MscJdNOHRy+9kSbF1adKm7zOHfkClngrF3ksqVF1tIlsdbLxtUP4aKuWmsSPGC3xfS/SVkPVZGXmBRGm/LqsVHJ2EfZ+Xz9ZFr+0p+RJ0ZKIkfnwEijnLk/iOTWeeHSW9MOzwG8ufbpefe4jX3OPtnz3Ps+7+cADJl7lWb/XZ4uV7nf//c9kW0+k7O7zs+TPPPog1t7u8/qtPH+/3DwqqHSVumnZeje/vf9fyLLpaImjCoZEM+qM3iU1SHZQDeNJnJaE0AV1DRl0ssAXgLdAZZPWW1ViIWDxaN4aBTfaFZMthSUUJB8DrieGGCEzQlFyrzSPpMN4rCkRyfyddUNrzzBot0+Wy7jilcWVfoXBR4UQh+LdakANZPAlvKZkzbspbpAIkq7NOzNbXZrzVy9o57FqdWgvzTGArV2XboStA5FsZ2KBkeLisSXJlvxSgoh/LJACA3EXqPDo254YlcJUZbXBrFsI5PDlQh6VKcJKo3hiFoOxkrwQBHmNjPCVLjSYy20pHCGVtUWlgyQVzLRkzo0TClwciFU1gtb4lZa/ELOJn/AE/2Hzz7H4rKfj/jZR32VZwEEcpzzMFO1eNJZmzwnCGmTbtKW0377Pnu6DH/uDBh/bMbK8J+rbO3LTMOXSx6m87v9b/4rDwBubtVVOBhewF+/7/7p3FNPaRWy4gHAy0XI7jpwnrDED9iRuROLyubY5hBh37jZP3CE0lHaIaaukSdDTt2+SpenF+bpw+99Z7rAWxQbPivgvM24JoNHfjyoSGNXRUshJHbMAwk/Bcu2ya8uSdJsswqYdY7N63pBezUHo2IVWpxebRxJgg456/aDV8uHPyZLsP/0KTJWVb5iz+wKMQIVrLCHtTBsCm0YORtqgymzkbz6lVxq1l0xSPqxs/mOmIHjfxTYWDiR0M7QsS1NjkHPyR6T+K9gNaH51VuKshZYbAWho9O82lKgjob2c6ssGSvBko/Z9ebPcgKglaf7DDx/RMrbYcQeX2n/6GN//7WnHr+we8Jp8XI8B3CdrwW+C8zdaHdh+/9Pcu7dy5SOPf+VK3n/3/dAfP9/jc9GLhfbC53z0CvPP7+xtXk2E9bQYNTu5vQxiVeNl8/gWONsbckdgIowJlmYXBr4S+AYDBnhipp4gTrWJbja/Qkg+JXrOKZCo2fr8vSkopkEIZhy2yaetGpyshYb0zKy8vAyAMGpExXKzmjba0m0EDXJafD2Ym4JRkzDeWkjoDVlhjj1rA6lJv3WBl5Rbzk2AyEfuDVhlCvauBshwryYaIg+9Ow4SNow+kYxshzEhD6S1oVLv/CfeudhDS8cKK8TNspiBbBkUovz2pq0QwUz45M+WYUfPHUoHu4CKzjpXuXJJqdXu2KkxtG+oSdbkxAx0DqILl5i6QPlc8LXtqq/QcWyeeS1QNMOLUTzJHQHS3RiFIZhl7KijHE0cGafBFx9mMKX/1xj0914+RUqQ0fl9qNiC2x24dTsj4JsfE6IYBgg9hmy9mQu0ZD+2EeSsoZbYsm4JR2HGbJV/CjWOz/50XT2ow/qy38gOF1ucgfg+Jln49djP/4XX8mvYPVU+KFXoFzh2mwPyNd8e8GFPJa0HHyOHV4MnS6Ev6LSsqm/cCgKsJX14dDfQOAbCs/6FoUs9svOw1MqAcLZ6bPtOp6GRElNppwAz3EUUXiKDcbh/whZxU7w7DfKElOy80pSdzDM/Gug2FQ0+WJGaCWYeJTXV0gcogvfyu8x9pLRR3vkf54dii0lyhEbldGf9DpxJCMUjUwMkJuMV/og/vB3KhVCIdZJpXzK6EVw0edYyRu7bKYtcw22ccInVezSQ3vensgoVcPsE5mCUIUA20MViKDtxSEptqaPEYo9SlfSeMViaRgcA08+NvMsGXeyPIkkVcymmEOtm6f1O0pcI53c4vsAFo986bkXn9h/kFnILwOw57n37fO1wHkO4HP6PoD26h0m/+mrw8sMwx2PPPKZSD8bub6+tXhk+djJA88//Vy//x9vV3AwEBnQU8PurI8WF3Pfs9l4530GjCH0ZSwwmMEyEnhJS0nLalbNAZeWNFYAJaTSAw6udLPXDBbNhJ4JY0lB7Y2anjxVjh02RN84q6UtMoNHLF69MhRa1TNBLHqnoCd1pKENCG2NcpTlliYA1e8mx6uNaqYg+mqNp9HN0A7SH5vsoZBJFOdKq0n/3TCLk/YwYQI0QcWQF47hm5owsTSwXvkVbtN6U8lioXL1C2VuMnezGb5vHVE9Nmj5HBPbYhJl5ThUn+xnpco98pLXrAVLZ9GzQaRdhGLMR6gUseprZPp/BpMKhv/ytG+lllH4nYZ5Y5iBSqaqtCMXTHk1KcZ5dcvtdRy099wXgQbLPrJoeg2IsnjJ7nhVm22Bcj5nH/2Fq/Hi5PY4vs5o6WPwKt70NnWWr7qFTi1mo4tYjbvAc+F/16f/z2xP2zxcp73e8r96cDhtvcjH/2D07X9jTB9ro8i1nWidf2JipKDh6NipTkMvu2zmDYna3hO3sCumnTT6p5E+t9AI6Pa9Dj6h8KPXp/1rV/gJYO9SoFG/Oe+Q0SJT3OvcsGoT/ssG7tz0v3WlbfBEPsw9he2ZdVLmLbnjb+rstoq4uXovS2LEbD+NlnnVfC0bVCRU4DQ6Z2P2+LQ9rcVQ1mR9qQgZbeWlEkoXAyBGBhp8AMRXnz7T8BHLmcJwuBbEGA6jnxLCbAMpDjW3AraF8LZC2TXAfkRWRl/oDY5tqVU7bWHTLrg8DJ9re6iRg921Bv31tlAxlzn2CSZk5W9tlLk1/R7PilxmPxEVHbV+KXt7ypqxQjqtsxIjd/bhh164eeNwubi1zPcBHN7kW+8/5+cAHLZ7lu58/9/PQvpeyMYh9yaPj9Z/9uHbZ/buv++FVYNOnbhK/T1l3l7Z4JbN2g1++9yUyUDuoBvIpgRIRrqCNcNNffDKZkQl2ggKy+Exo+7K10HswFZQGlzyGZnKGEwd3PL6P/AzoZCLOfAlKRO2wpsXI9vFZVHLaBm8rSK4hS2XgVtpAPU0cEM1Yai2yhVeysrZv2Kx1gy+5+qCZ39WYOW1OkgBlAVC6eeIgfPZvNg02uYEi6z+S7KuPvoW34lLuVvtsLgSctfDwvB9fKEsNDJ1pCh/usDBIuMQrY5HCPKKC4AksdNQOKtFN7bIysCDYbJnA5A1cMNvjQFN+ulVTtAiJ4cwI1bsZ9a+4KDHhbONseR/eOMqWqx4cpMER5sr6iGb2s2HH5/O3H+JL9dhg4vdbtAIU3aZH5IxgrH1yYATduJcqekKGPKWW06gNBR13upnwcwDhQK4MSnLx6LXmWcakU8FZPH2tr4/3MVP637/e9M5n/6PkUW7ysnAuedfSDsQJGyzT/zn1nD6qQq9UCcGPiSYLT7xQZm2PDCY3iyMzJSwMG3Kpd1Fnn/97dsjflxRRrMcwHn3O9+aLm7tTJub6Uw0KpF4C6o+xijmrGIBw17HIXNFcAArvmQgSeOVNStCRaz4R9Y+aoQ+tvv+yTfzUozRgliuPBXZQmtM/KxsXgl8ASXYB3P4pOsky5AqCopHL2fOOHbaJU8S7UkQpIkVZ8qPlEbQkcFVvBzTH3UIBkvLBQId8lvWeZlXqegBWjIXiyP4ktJ3ddkfX8prQ8BTF7DaKOBX/Zs+CeUrplgYZXJZsS2+cCzSHFAgwI+CFTIifFPd5FvK+QiwWP/uZAenaefC/jOvf/j+3jHPv60dXF9u8t03u5/zcwAx7N/dnz+RwOJoZ32L9/93zi7Xjw+Pbv38+uV9HpZ4SngGtkfuVFmC4rR6lxIDye29Db+8wVYH2NtHPtUbAmUDhVf+KlZp4k/e8JBFjnrPdPXGGKMwSYwuitQ4NZGopA4v455AU9p/hSJXbs9iJ2TayCmrOixWbBMs0Q916KFB92h3Mcsof0lmlhDI6Yf0lrO1JpC4DW8eUQ6rjWwe2fwRoqW40//2nUT4y23ktarDW9yzXZnc3V9FfPUib8VeNEh0ZHJCKhRwmdWlFoquKAR49a1pGIhdGTftlqstUVhGM0Fd8Lq9gEdz8xdT4SpUcxc59YAacQ8maA4+erNYS+qmDLV6R9JX6gUvmsIgPgzhE4uXdZXwKkyx9blsNprK1pws4Vpvr6998cVs+F7F56QULsfEL98ZUoaBKrwE1xpTbRan/YoeDi7EkcQOeXRLxXldUeekQChBAPUjhu4T7/70x9Pur9/j6X+u/u0HtENi6fDxJ6fN8+eno5zA+ZE8xNh7h01Usaj1qFtDJCaDrkD8IhfJOU0hc4pCPAKPbUabJ4zr1MefffHkYMmJyxr+usEDgOe2vP2vn40ZXuKJME9o/SKiPtDgtoG6SVIVaUdYXcZI4lCGYbMGIZuTrfTBugytClqg1MV/cLu9OiNNHfQ5nVNSXSUfuy3Hm+jRTk5cOJYNYsWhEqSrJP+UsNsTkmoqYgSLM31WxnmQddR+Fn98YxH+bJ4a3sbIZUre8JoVWu3UNlZ7OkyL/YenLY9OddWYUKJdlvjY6ERX/hQDQ13VDq442hJshUwQ4xvb7FOUNX4GyYawQZS7y3xy5q036D/fB4BM5GzrNOrzuDd9rmOHPDv7+09Oj567uLVYnuzs763nOQD2wIFzRz6MvoP8p63+LuV/Wi0raJe/4ef/r65/eOHG+s39o7WDk+M1fhFscX5t+9ajX3v1oY0zO4/l4aTeUFZEf6s4HD83ODh8HnrjFz93/GoAnTSJCghNzESx57wSYAT36QIOxcFPBNUGbj1pRETiyAovg8j28RIU2VO1BmXzyeuKFzkyFyzlxuQc0RsOcZWjYgAlGzkk7ybkdhYNKg+uZVKvnrPdFsTqhS0o8NSiCpl2zQhGCtEmBVrbOHxIU4rypUy77PaNlHIwBp/+XxWSFz6ZI1PM3bNuxB7I6gkq+bwZjk7ZkFd1PHziDUE0BFmMYfup4jZAIyqF16K+c5MWqtuMqja4MavFLbL0lV7XtcSk/oSkWG41imM9yc0GedVYH3xi2RUXboSz4EabRJmyHZd9biy04fls8J/y7X97PF1fG05hw0BdWerwBzo1ZCQh7QN03p4P8nA20KGQw0YZLYS0m6f05OBGJqpgdC7pMP7fee216YEzPv3PRgu2/rjOjxMt/HIivnnwFncoxhW5/DmRgMfNMd8sCDbkYNW8QUl0O2tZiNHlA4X5IiPq0rzjpJ7cOsf3/iJhaI4DULohmwf65X/3Zz+bdvkJ4L0lPxbmxpaY0RYVI8FFQzZbq/BLy63j9FfEShXrGqMeR8OjSRpgbqyZo+RzDIoli9wkQWSrrPgCLAG8HuvMUWQSY+DX5tfy6lOPqftCR7tIG/8VkHaw7KxcgW5SLgYVzYpm4NZIZO3AL6OHUvMSEjlr6W8qAsEZFnGKIS7IQVuhjXUPRfmD5DyPLyy7XqUybKaqvtJGk6NpKp9mw7ccmvI2caiBbXugxbBuC4J+DbCNoSSeqKlfHRu/4JMAPFx+2n8bb0+Z+yukUXfs3NOWW5sXHvval596aHvHTvIcwAG/F8wX4rEXuie6N7b4yFfQPptiR81nA34HajpVv4H85HSJv202fx6IXPfLEXwA8NJfPP8MD0ts4zh9TizU8I78DrxUb2tjoJcffDAt331P8QSCoZMRdMMUb7i2AylBIsOgm3c1QYlMFmNolWAYvAlsK4IZ8IYHZXnDFgRbILjQVJPHLPIGd1Ln1oVKVWaxkUvdA6/OsoA4AdIniGGz0aReZF2AMwEGHUui0xxFwtchsDVjSn4+ypMuVV+kBwJIc5vHVZI21YQDP5Obuv2BKxZk9g5bJEe6uyWvbU1TjOQonm7+Elp+jKXs4NRiYcUEj+1dXC3HpTZ182izGj1A5NMNbsThwZNjTCTwP0yot0daJ2NhL0OzHxHGLmfY3C8N0ven7VKopQ/Zzjwxw8gMWxwsgMgsvhkHxtz+RigX89P18/dN+088mY/E9Z35yGi2T/EjXq4Ojkhg2U9A/Piet/GLzb7YAAf0Glf1F5+boFtAvoEPAcvFz8bM0/9yXuXJ+vN8m+cG7d6B8JsG/fW/XU4AEgwwjTEQf6EeWjzoK7FFzlsLEhmHcSXliYOuLJv1kbYorEwKBeRdfcFiXsnnqpgxkfTOt7+VHyja5hsAtSkbVOxV3DkDrTenhoeMYmgcSVBTcEDC0XWN4yUtL8nUwcvbjzkTqTmb+a+uYOnr4iWz0EnbKerYxIK9RCd9i9YSiq5aB9sWs2LoQtuJTQXdR3hO35Y03qFr0wh42qMWWnzEHYDZtJg0GGos0uhmG6Nh0G6TtoTVQ3dPIME9AYNx6Ik7JWcO0aTA8LtMTUpsUo2q5oUTHIl2gxx/K1EnBiFTl1LRojeizxgQqJjbfCr6yzggX77z7rR8/yPK9QyJZvyhNOIWPs5VTvgx0/W1S8899awPAi545m1tc2P98Ma1hXvhND051d4YVC0xofyzTWOIPkstoxN06vQBQN//X+cBwKPDmwudcZZF49zjD7/g+441erebVAF+16ZTRgZx+c5b0/q1w5mWkDdwGMgYomtr1ENjhKPOeDH4EwQVCalHPkFFG/jha1aV1AQCOYFfI1bvI0lDhvmQVw5OFMiQtKXm2WkQQooOZ4PtBqu8dVB30Wc7bMwI1jAOGYXHolabT+F41BWj+/PGzQSquTVbJgAwMmtAqqgtDSFa9JX1qOUEEUs9Njsxcyen6jXZscJGOejP+ItddgMR0UxlU6yoSpzfDNEFk2D6OLkFknaqw5dZgNSL/2UJvbW4ATVf6JBdRPRNsVVjuGfclh32RAnG910r+6SwzYZFPGIZvjoB06bCl5ZEQU2xVVk7hf+ycRQCjSL5Z1/UspYf1zl8+LE80e9m6+bpY3EUooNn7+XOVXAe3kNProPTR+m06pMYUnNBw6VrTy2k8IR2Oldsz/fw46d8nTAA773xb9POr9+Z9vzuf/70t5/Tv/HAQ9PZxx8vTDYvVUEm17rCzMOLYFJLv3NBlsVXeyOBO8yHDcXnRhEynUj/9Hd87gEeB5eNKw8ecpKCU6ar3/8uH1HkGQWGzHkSHzevfk2c23l97JjTZhb/J7fsi4P5nKjoS1J5LyJUan6mwXVIvPwVZ3C1hep4RR7e9DwDJKi1xrSayV88EYTiX/pcpfBL0ilmMTf1sqPshUBD2tonuTqHLGsSvijc4hv9S80+Mw7VLooEOSov/SLJU1mKjg2FsrkkVFPONk5oNwYkKVAWVl2yJ3m2pzyAoVO0ybPD4GVsI1b1YMmnBoQjihXkWc8xO3HBYuF8dM1wT1m8+6agBXSX48qGn9axZ1kBOw8C7j34wBcvX3l/a3GyweQ4XN8+qS8Eunp0c61+Hjh7pD0yadlnmn53b/50atOJOx8AFN6HIDZONtcWnGa98fEnOzwA+LT0VcdZ/+MSavz8/zu/LHa1jpeUuLQILjNGggNu0GYxtjyCoZgTQNJmUQBzhilnXXr0Jt6yUeiCYt0JpyzS8mYFgUxbaOGhboBlIsATWk8IIcJZjEHK7UrITOasS3IEr/uiGurZ2O2fEGDU7WTbYNAej/ZbjmLqNcM2CLin+gBGsUcm89mSjbXKhj0w4jgZjSgy5bLZFVDjaBN6o9ODfefsv3njF+STCyKwk5C/9GF0OgppjS7a7Ktw8bE66AD/YYuaYRCkwFqnXR0Ill+av8neXgwT+nPiEH8GLOT51r78YPiXHL4sPkCrql7QrOMfFxNpxrivub0QcGtae3zgpRo/xmAqNnvogbnG1fXiqaeouwF64iuu/sJuFuXcFodaV9YKe9XsFTa2UK2cck6ExlhUm1i5EufEJnMkcVw25fP35cxY7jj+6lv/ND24vcWT9ZwAqB8F173t/+zzeavCXyc0ebtVH8WOW9w50JaeI7HXMmkcE6camxdvLdhgNT6hL8aB7+0DChI5YxEeg8lYYDPxI4QE50f8wtvW22/XRxSPNaJ5HVrx9J2bWcqKS7PqCJfGbgW3xtB6EoUa+xrvyMWQrsd+uTGOrEqUHfOZXA11JWsMwo1vE47dpzGvaoMNWrqp7f6NNNwQDscwcUG76nKHS16dR8pY2mA5BxWXr0OqvoupvLr1SPghJbfR//SHQmJZOcqqyoFyfK434VXGbjrmFFVo7J7e/odGCrdjAb9sYmWfcHxFSt+qJc2Q0w0r6Ztyyhc9ZemOK7ozx9VSLo+e9FVI2OTb+NUv4OMksi2gUDZYIP3+fQuPg3Hmwv4XfnLjg93p4IBnUY7W3QM/OryxfuHkQC1J7JWjPPLR9CfPe/T/5LirgHfthA8A+hDExt764gBnvP3ph7tbe3uPthNnmeHUO8+uVhWEh4FycBbv/YqCi48EowCoBAASHQhOklzhtZYKDPl5STPnPxM8ipouUY8ZhB134R8LVmgKgt/HOcCD03ZRtr10mY+oK9rYkOYAlFeF8iHoZNDEANgnJkZdtUpKB0o/TLEEoHFLM10s4yKfhQCR6EKqTh7anvZXGuEpXoTT3w6d6BPKiUROig7yuhoVnP9MXjwfu9ONHFQRnTIpKJ/W29XG1ofjakKWGq/Gom4fZQ09OEDEljTCYC4PLwFGolxV6QFQOurnJ36h52QguTwAo6ziEazAUVcMsMpr/DP28JZG/WPJF1wyJndcLVeWLo8NgQbt0/xaTMOmIgm813088W1i0w7f/193JuXXXjduWNQXXjPHlHbodXLAIosefzXQq+3KOXVSVvjWPQ+HhcwnMlrlN4nFb3jBvjZd+e6368q6++anDK4eHUzbL9XH/zwxy1Bw0FfqchspJIWge9vW12y6vsXn6m5jtFf5iht5YcYXyhcrud1FJpuR80ZZ8re//c/TJZ5P2OZTCo5M7MEp8YvOj7N1kv9ykMq0xLCxkBhSJ/zj4iFjrZkKaF8MaMEQLQc2mMGdga2hCxvDNdtRJzSxJFDwqT8IELRbkvV0JJ2G0L7Rz8qZx3fIBgcSrDlR0q+RFy5EcmNcVHU0dmqUTfHlAKIe3eTakumhTNPxg83lGHITasq3HFUvr303FyTQnrB0XRrt6Yt8kgmC5ErY3yCmkrJ1/2UKbuyiXiT02tB1u51+2gjRcawzueIODm9X/Zq9pe/ylaTsDRLR07Ltt7Uhp518IdBjm5fuP8/bWbc2ds8sPmQPPHOyv3b9+HDt05s31+YvyRsKPuOcrt6TFM+MBwAnfwWJhx/4+FIeANybNqeLLz1338bO1iM6aTxRvmpZJvkq4bfKBAQLzsZ7bycUsiQziJnYRoKBPILpUgAAQABJREFURsqiAbEmkSOLPuq12dQAJsQoZnInuGn30wSwGycBhZ4gczK40FiPuIsCsh1dkhSpBZyg1g77OAcOHAajL5N4kQ0jxcKd7aM5tmuIInlx8F9aFgjLgjVDyh54NamMwo482NM2KhRBw0LGeCJ9tm9ZH6AWjvZJtN68rWLU6Uzb1CxZuSkPNZlpCpH0R5SQ2Q92oZgCLaMV7CrHdxELUeG8Mo7aLE4WDHJBxplJuzS0Egm28hnNGjitaYpMpMwScSgHr4ppgyWLP9hegY4W2ZTORlA7ajWhI1fAiRu0ahv2Cp1kLMkPQNwxGqBlEaeeWADHm/s3d/enPW+vu5C7OPHv0njiuNofexIbyeHhXXko0imhg2UtV61eZTJbeEHH/7pKNjFiryK1utuSORqS/eBs4/Kbb0zbv3ozT//7HfzakhOUnd3p3DPcAYAv30TomQl+cmuruw/qBJpPL9ivGltz+bHDExTsqbFFFhy76R2Dumvgwmq/yYmv3Op33pfxsU3XaKPj87EnKX77nxakA7bJzZ9jiO0ZDc20n7wyOBQciuBKxbY41v7bgtzYwB0/mx0JjEu/5PHPNDCTUw+mfdQT8vuS0QPlSuQarG+zeVnnX13pSLcNdoXl7Xo2ex0dw8SnzapZ1p/Awe+ctcURotGYpp45BbXg7GtaZSTJ13jxByT90dx1Rll9k16sbYFigrZ8iuAlAqEFNfBVdqgTnNCy5oZjYDHu8mqvOazlzx6HGK9/1Td8HK4wz3cuYBi/bTLzYdHStwCOEJ7HRAW/O925Z1nf2Nq68NArLz52/+T3AfLmN3ugD8NPD07Tg0fk35jx2rC5/pkUdOdnmUYn4vrxAKDfAOivIfmrSFvLM+sPbm3feuDl555Ybm7s9zcA3tWm4dCR38ZE4C1+8zE/AvRhAqAGycDgpXYXUMuJjoo55SuIKBgjWsurrjatQMzGLI6bPEGYwYcua3qFBgWdELRpW+zLqiNGJ1cXJwd2RHtwlKUKW348J7ZVhAfaBhOiNgU3JHTFlmoORnBsFEw6eRkYlPQNuv6oqwFZ9EiAQ69Jr2z5LTLqFtYuW5CYhp6JKueVBYLcquweKRar1cikQBN82sZL3nCCn40Pvixo+DPy+DH2JlKlkMja8qqHU0Nt41AGCJ+Xi5r2R0achkmfrMgHucavMGRpmMYU1/4Vc3hlkJFXfZTKduyfifolYuGxHF/pR8cvf00jC7708MFjvLSOwqWiftIJC7Of/z96/Ilpg5/c5UfHwmqf7GK+9AdexQsvxFiWZwAgusTno100xUDqhns25l7I7W9iTZuNXU0y06WQ6s7CNL392j9ND/C++vamP/3LmMGjff464XIX+7z9D8221btRARHaPzD1i7HhZm0fc3dh+DPK6Z3gjWW2rqD9ydsANFkGJ99zwEmBJ0frfHnB1Q9+My1+8XNOUtz+GSv0JgXLUiKkaVUePLLogtJLWQTrvjBJnxQcBR1DbchWPPR4D10RCCq42q+MIOT+U9SC+qdkMYCUwwrq8APibpiZU6BYU5spx55Ls0Fp6XklQ16la1YOXiWtKKwa8NKlmaEnTuRFXjZOtDTLDkRK3bl4ajw7pqSdSJ8Va/lqMkRgiQJyiUpAVFd8G8+Uz2nPiRNHecSNZs4U5Mq88aQT0TqJwTNZA7QuRBrE1h7yON42ZTSElL2Dx2x+Tfx8+MkpvVpzdCwyHiu01SJziCWDU1WeeHvwuacff4CH3qc1fvmOPdCH4Tdu7mPVvX8QUFfcs1QPOUyT337kA4Bc/vMJgK3FAxf2Ts499vDjKw8AOgJzGs7NxjBT7ygQTBuXuUVz8yBjV60FUyHEwA9UgyaBBY2AcQLaZOgYFAZQZBKkkDKB5JBqXmfHCbSxKEK1TVyOsPoSC2qLBtPJYASqnwArm5AxADNRAhS7OCAfqfBX/wusFl4xyqLwpk8hAWLwKltBHJsKOj2Qf5YNZcVI9eoXWRIhSksTr23yah7jY599FYz/MUbSlVd/sqpIoNviIRMRc31mRc5I1qKacfFKDe5MUNrF4RWEoTegZYt0UeLYOFfbeDFOLhTilM3iRJD8Dhuhp0ld2uQrCx3oVi3LEBeHsypxtQxW0VODW/X4imLTypfUwY49MSVbsiX4AHHhKkPQK3j7PEV/Xe94WvLtf9pjPLhpugjqqsSfGS8Phtyw1Lrvv5cfaiOLHWHwlnzbpDA+TsYhrmhMT6T9c2PV159+h+/V3+bKmitxN1+H5ir2bXzpZTZ/rswRrrAXD38LJgJ8di1olluJuZ/j9+pfw3mCCp5OGXfqzBdOE/hTkDq8xso6DsjdDe8K0KQCZd/+l+9NF7mjcIaHFA3rDm3kohhexpdXEoFvqTYqY6e0z80ORRlecQBYxky5hlAk+gXsMRt9yIVIFKXzMJYvQrIvgvCvfGKdhtiQerwVPbrHWnhqssIIU5QLW7ihqFw7xJBH/8wGCmQnzAsxYyG2tE5lFrLQxIwTxcj8oK5fbIguPQyfa+Qgyhs4+124OfYh/s7AQOhxC5vt4vri4J//kmstBC9rq3bZSaJCGzNhm0/e8JdPKGodBxS6PgRbqknO8o8QNq1dP+QCkz0mNbI/kOZYaj7uUDGsa9P+I5e+4EPvE58FcA90LxxQ7pH89mDUDbHR9lnks+LPAhxMvWiiU9+Ie33acclDD37+f+PWFo/tr6/zZUjr+w/d/7SMjBlzfohJqaTjEszddieP79ksuP1fyQAGo3lH7NkWZAkhjiDEDZAyGVg84n2DrydHPhakiHUbA5JlpwO+7Y2g7V2HWVL4W7Quc2i3P9ogb+SwOFcyBi9koy4FDiMC4e2exfzwZPOCF9vSJdlVKGbsV4cvcNUpbNogtQrrlutlwcUvHoSZVCYh3lgBkG7/oGFDSEZTcAQWgVaxrMqQDU1+CYVfkxVakm0WVEi7E3PmlZ/G9Ilm+cZLnZTLFrgCD3+/5RA5mWnQZ+ELDozZlewvyQUkdgmo/qEjrWlzwcut56BIbyZ3Xf+DO8rKW0YI/9eiT30AxxbFelyy4LVecNIPIIZ/qx/gAOft9U9x09lXXsWC9r8eohEN5SbImSetUq/W2QGZ/ZPPoycQlB0xy8rrCSnGa+IKY0RmSWxZuNng5fzNm2/xYN0vubLma3UzdrTxbMJVFO698CI82lV9tOvlIuqJp9KXshptTMftlVZ51BdiUCXVRovNxh2p/ASvG438jpHFWRknCuB++L3vTvfxkKI//mPX4hv9LKs4vIYvxNBQPaP+rAWxF64wImF9GKXftD39F81UdouT5CZjue3yRDi40vyPGDJdnvsMXf/UmidT2azRlvyLaOuucsyHoXhLKqLVEFl7RrIxNuBPCINX/TFVX/AapheHgpSM+9Y+C9qgvTaJF/yi2RR6A5YueSmNFwL6IEo5BkYCgtok38AMX9o0snVRj784wYmyyCmr6BiDxqUeLI1POOlLyq0g+srg2Lh49y3M8kHASmMfyto4iHe03UH2lwGf+vHlT3ak+yCge6F7onujzwFcmv4BA+YUT8y1P3GhvPYnBl2Bi/ErTzVO42nHwzPHa8eLjxfrnPG8/vGvdzfPnHminNjeXgFZLd7N0YwWnuQBwA8uEywOngOtFEOZQZVmefiyFo4Ex2qEGlglFpXzWXpWg5A6SMRDk5gVl8iNEwZ10D5UpaY++PW2xSy4PfnCLoiah34nbQVibm+pTkxZOo2TFXGrz90eHvC6i7OQKvjLhFECvpQVs2xb2suW8ErnRUMd2sbChNtG/3VCLwRhp6qIeAUgFUT6bV2Lc/JQTIJHwGoBIglm1YMSmZqM4sjGIXmEokbztPu2lA7I39TkXemNWeGMRl8F1N0GTAp+WVHSyCk69Iqd5rJVNwTLPCqaP34TwZMhhWFoOakxPrK048eMS+zGruCEq9dDr2rXpkOuZA+/8PS098DD+RieV92C1qamXnpEvI2r8TIVun3VtxaVEV8+ZBshtNqQ2fyxJ/3i4Hh7JW7yWF67xYN1fPkPP6pzxp/+pXv68pAv47nJ2xN87Cm34l0y1ZA5ZRxYd9NsPKeGeLURUFZp7POKPsae9k3ttPmXceNoPb4qYyn7vAM0TgIX3KU45EHjk5//pJ9RiLKCjyz91CABhDZzmESXxr8+Cj4N+lh+yaO5BKmPBtq0Lkr0OfR6ViENlGUcPBSoF54OVE4SB/ouPTFnfRgYC4qVY2wOCZwRt+mHstobfdHQNlLuOVu6bFNpjvitbLYmTu4wqScM8BUr3bPR/zDF3iI0r/KRKb4UFY4Efp/9oKEk8QY4PEqHlz4YG7bagXlc7Js0eS3HrqZRD56YMhlk5ry0ex6DjCl0GjK2gsi3Kh8oYpEfucrEKksU+vckUaeN3Z3H3j786MzxlU/WTpYHiy32Qk8Ctg+vauHkg4Cre6a0zypF4WcFfieuZzf+/GG+AviErwDmIwAnR0e3rhwd72zunXnI9/8ZgDjpTtksbBBHbvtcNio4K1v/iJsnlK2OsKhNPKPp8NaEKgYhSB0ITas5RqXrpWPUyefAqND0aBC7UedqNuu7muRVzqBk0YaeKlzpIWcDxpevUgYGV6Dy/H/UvWmzZdlZ53fy3ps3b2Zl1iyphBiEaEBmxqKbbrohRDcd4Y/k8FewHf4GjvBbv3aEX/qF+4XN6MbQEtBAA0KguebKytG/3+9Z69ybSalUhapEeN979lrrGf7PsIa9zz777NNGWSLU7w8pCA1ysRAsnuRhHHtSRawTSD6EohAyTviMqk+drQU3X2sMH5Y+t2UUcisQFHnBYT/bQ5vFCk8jyjARa9MWpExu8phfAuOpAdr9QsyBUpz9Woq5JR6yXjGR7Waejr4t8OySUwB3nsc/QZDxCoGq1MtW9oNunMwVi+0whuAftyOmPvCiPV8ZA1sVg8g3dqipehyvWdRwAgojnsAcaORvXQ0uu9J85+538N/26Xpf+Oe0+S6984b+6gmawMwVilDHZgcRo3Qc+vk4kP5p35Me7UH0Mn0/nLO6vsvv1Cc7+NH4oZ2rHGD7zP3k8Prv/97heS7/c0/TnHAg+g6/+Hfys7/IvQl8pLD9w1e3vnZFKW45mGAl8G/sGDWnq38cq8bmDNPz9T8lPpcqu2CxexIgDekPxeb1tT/78uHZ11873Drl8b/GvWyL7bWNLKt/fIVK276hIG/hK7LUE+Xg0ZiCFtmdIFuIVmM60giNxzNmklVlBg1qCCpG2UFOo52YQgxz+i0z2JnL6/KIQ13+23Ka2oq1Qga5DTchUdQTmtJxonlj9iVXJq9gZRZlymoqHEbrRVV2kdm5HQ3XkIAdYo9t3hWmkKQPitEIltqsO+ZivyLmYx2Sulr6XoO+wgf7SxDs+ye/16JpYK4+Shabks0Q3BoTqTsWJbCjevqtv6fkRPeJuFL53jty6jg+v3nzUy/95GdfuMm9b7fPn71232Pho9vdCCjIG4c3thu7/N7Y/0gJe+Dj3iaIL667HLX2HIn2MYh8BnLx6Ozayz/z2RdIyidk7W8AXC6WUr/XxiS89+Bw1i82gdEAXj167FIw9ISI7fomTL0+y0qdjN4eJwm3OCZN02EkwAyEBkDNNbw8izy6OYOvtjJ7caKcbeEwiPQ1RcsG8JQzmJXzpSJ+WN1WHOS2NbINpz/t4yR3oCI33jvL+C9uKyrK5KWJmraHZ1Pi6AYyKvFpi1PhBEKKevhUXL9zOBB5g5NChmiLYxxu6h/PkqAHJhx8652QKLvzoE2bGaCEx6RXVhz1hq8jW87J7ACYBYZHcy2WviHvfvcDpf6N/cFDQKCxialk04OWL/LVGJ902xDdzQJGI+LIhaeA3aItX+qvjyKE2eGNHoAcqH3wzusXF4cXv/Av5kY3c4Nsn+sLB96kgwabdXeT3znxjIgvLfyU3SiH2JwcQEfee3LWSXn4YoVB2ckGwt/66lcO53/9l4fnePa/B1YtPnp0n6f/PTrc+flfYBxwR8Gi4wQAYOsfgsrmIbt6KYLLMvMZbNeC4sgX/Vd+stv4BqRWdGw3J1i67VcPZuJoi0n/de5ReOmmjyjmca6CZplcUGvc6EH2JVDNwbgkZeKa2NFZ6lpXp1JfchCa42upCitUE2K6ibZrjq+U4VmKRemQFAKlsQOu41qySTJ/vRQfv1RKQn1jK76Fl4r0MbEEa0cTF550i17iiiV56c3BWQdWELCVKE/6aiuHJ/bxFRrgQiWhAjUiqO29V5FM0PJh+o3cZN+cohGuumwO0DDsr9HbFGWzp5yAOtEJD3UxdJ9dsQVMLCrnhTLLn+SGXB8t/4Q//dY3OdY4pheO6h9wc9xp++z62Z2XPvcjr/j4+7PTi9OH9++e3rvz8Nrdhw+v3b579+TOF+9oym2XeTmkj3bvcPu4tu10QexvAHi348n9eycPLi6unZ1eO71z89ajF378R185OTu95aLyQbY9OJUNnKSefOe1w+nr31kZg9rIXQIuBo5y5Hp3gZQYDsQZFfJFc0PXup2+BkxUBRo0itCRymgcWqq+e7fm/JAuSwEWJQd/Qsr62vwUF6/BtxiAhyVQr9VN+bMmeyQAxBDQg4bqzWaqiyVf+y30yY5KwsqYB+lOrCbM8kE/ISs3kzGNoXUwVm5k5yx91fU3RQe7IkMvog5s08dSFdsi+aAL0ozNmPj3cLBzMXgKxKCCYP1Kla0+zu80BkP6Fnfyw/dSbHHHGC/mXRyCxSuatom9xVd5CFdPVhRQ37HgXzCDtTOnyOqOZPUvOcuJdNq2UHWBaOGkrrkFOnVp9Q/3uXJQffhLv8KlxGcO97273q5n/Ki1cXz33jt+cRDQMw+qjYVoSvOXnEx4xNcSCNYc+MHkozWhZwzQFxpgU9baV3+fy//c/X/Tp/+ZD2z4lfx3XvnM4fYP8/XEvp2ArP2Sc8gEYYTitWeHEfXxyROZfaVjnu6HV/qgj/y5d5ua2OPT6IjD1YJOiuZkQPrdL//R4Vm+oTC/UKgLo4MLArNb81ds2uauvMrqgE3FzgO7sUC1eHdZx4qFh3sugpWKpfYmPGSQq1Ele9qqpT+jRJtIJRLLHARpgzFrmfMClgLkTp+KyUStPE5c0IsRGVnYWaB5QGPkA2O3bZeTlWFoNRfNMVNE0nkZVn5gOz+D2b0kb7203Tqjp/oNPfvLBUjiRLP/tOf/BlDW+QitfFKuxtKhaezKO5Ip5irhpimvBtjYEWdO/qwrYzwKgG4eaZdKlfQL237T7OTV1+EreLldPSZdUv9BDbX5JsALP/ZDr7zgbwLwrYDDrVuHCw7+dx48jyM/cvjEN75hptz08GPdtqGP1Yh3NXp3ozc5jKE7h+t85nF+evPkkzefefTcZz75CmftPimp9G9nprlb9u2TSY8jjY66ziNIr92146Am5s6OtbBjlTNchi71PfDkKdTAa7GnmdIqHShSHBRTCz/9McSEX3gNOmfbOJG7o5SmuNJ6Z5IITAnZnUU63Xju2I4B0bbOLM7lFcfYAsfZrS0n4bZpZakdbSqE6KAPX50W4BXhXgSyL6TCKcxCJtZAG88gKTs5WcYp9gKpbnHj/4Ip3zaMxZcuBFoYlxitwtmbHHeygULvPABQL1/Mi21jUD2I5ZH1lZRSqGFf5X6qNZGzL+W1V0eacrwLDDNH10IhIUB4Kqz4pn9sqowPsdFBaB1ix6gH0WUjHAXdwEGTbeHukqY3/71+/97hmX/563NpPcOa8bkADiUz5AHBRY5+4s+DcAdS4ZF7RK6MqdlA2aVf4zZGLLdA5oD+8wQ9BNWxi3IFsVN+qlffX+PBOi94Yx0Luwdij+N+O+Hw+Z8B9xG//sdHAZ4UgJ9nmmDTz/6gH++LUAL9ri7ohbnlOQVuXupWR/8tfCkcpiUEnmgAnxMW/syhNH169St/c7j4+6/y4z9cpZioF4C4jhsjWzrGLXZG4MeSQD1/rCUwPti/+qQeJTtezlH9NEdDqZ8TURfQbUesSO4mJ3OjsE1zs8qgaVA2r+y8MBTYYNRzRB1o6DdPPOiuk9dOaBVHxwIv115dqr6UX/Ef8WCkq0+w0zY5ti1UkbHGUHQtmL+CcDwq5L9ENq/UQPIVXv7Sdiw6EI6bSjrGFr6Qtoe+WVtGyOkLSmE0regw4Dle1PaPzR1MIrE17VVdhwx46EA74Urz6de5EbC+HnH3+yR0U1ozdoNyt5kTmXz2ky996vlbzzw6Be4ajwS+zyOBr4g/XU3naeJH0XYYfVzbdprAvni04d2OJw/unXj3I/c/nl5cf3TtmZde/FQJ3Fk6Sn+wih13ylcAe3iDvcmA24NiO1E5vX6l75STMzqbIW30h54uMv75725uKGTQMMAcC3EZIU70BjNSjZH46s2AtpeVucTcgiB0ei6PvwThNShH2pG87e45dPRTkSY51jUVwPglRHMwLFlkLHnqjYDtj+Y0DF39fABv0SayObhoQ4xiTU4d1WdBcIIK0aTKycFRVNOXW85mNjPunCMKJrml9VHe5KcYpSDfa5wdWA982uRVnFFtL0zLFVMkdZUNQzFrYquz3hnqZgvHmjIULWSIXPa5emJtO+qPqTJcQsBbOsMcGTWQTDjXj23l04bHd/+J7e3P/sThzmc/e3jA5+zG7gFTr/yxHO92z3vvj/CgLOr6bL464L071vtiAnvl0FMCD7pdiRNn0+kPD5z6Ud64wx/W4dWvfe1w/td/xTvr/b16iJwwvPnw3uHWz/1C9xQ47I/5zJudZ/HB9GDjgSAp2hzv54bGrccJiCnKH8RwWtvGVtD66B9NbitGUL5XyYir1PLrf/z078t89/+Cn/91jfAjFliCLjkBqUNsXLlTwJcstjnhnHp7T94SxhKKq4dEmXjSGxD34VBpXuWbAvMavv0gZdPnIGUzzHyFb6DBalFZYfQdYk2ZS1dSJ4JLssTJd7PktZr5bzxihCWjBiXbblrFUUVyuOmAnHmH2E2sltpqoKvsZEEhJciOOwBbZ3cM2xeh8tOrHttoxMEDS2q+LT88SE+EVMJGXgldcJwYlnUT7NrSnLbNK0FpIoi8X9qhnrw8/5Rjnn3j7/Dx8psAQjy9Ff/TxNWWd+vFF3701btvXn98+uDk+qNH13wgkMfGu8dHAnMb4OWWm5fNj65W9310cE8gHZ3m147M6sG7HL3bkTuYr3kCcMovIn7n3sOzixee/dEnNN+n0aChs1qkkgOazjh97TuUdhEvJriDwm3N0dXTdGleNWKmr5FvJNS5jh4Q8lY6LeHdWUqYCqYSijIKM0S06SbXxW8JUNGmBDZ05+EfgxnSGoD6N4NVuYUjQX0XL5H1h3IsLqEMNWQTnUtYLobypWt/6QnXBkYnDYMl5gR8xU46cuAtveO773KArrAx8a76yLYgLJ15lwcO7ckjuYiHX0dgrOirdHGsdDKABvTyonibAnuSgtWJgUjQ0StlYgU2UNkJBFV5y5MCWHnS9IRlvmg1gDz7X7Etd7vqk5GFnc/GJK79jGBg2lqgYO3cRUxHG0uGQntbzaZjJh0wfAf8Jjf/nf3qr3cl4CE/A2yg4zo323F1QJn52AJ53/nrCjtvjOvHe0B/3GV55Hw3pUDYY3e+S60HmiYS8VhEvUGwVMKa7+SfHL7C3f+fODs53OTZ/wWBI9p457mXePrfP0MXzJ4TAAbKZsb0+Saoz38X/s6lczo/zZ85Y+tgM+7kj3bISDE0ncDAteQ62OFrqt57wJ+5eZXv/z/H0/9OXRQ8IIAQJDu7d070KFOE6JywQdFBiHpjVjv6JCj/JSSdLOWfcqqO7SVXC8owVJz4dTzsUKPb9sqJcWdCGcc5ZUNRD0wiW+uS7fFOWOTkuP5R0Z6vvWUPVMvGhXWYKWnNF5u8VTfyY5zIlgnHaMnHV/WNobmycp+uwrTlayQYacqPLaVzL13o9M38Ta7CzFc7aXTrDyHRDaqa4FSEJTeOJwbfECxl26dgSU145WXig4JPw5NrfXyLJi6VvZacvDrHmqBkiTuBbtL3LK/fuvWpv73/zsWBx9Y8enDv1GOiSj4k9wf5SOA1lL6nv/9oAb/O4NcaDOoI8sxtH4J0cv/Ne4e/f+vVm+e3bvIgxMvtgyTUA1tJt4c4ATh58zV7os52Qjs+nXBNupk5dXIDww7TG1578o91CA5a9LosGNxgpuBgcmKp36haPivSAHBpgi2PbYYUshEVEj/GlFfl5Gl3LcgBOBFRHh/H5jyjGnJYgu1N/DGRDckFKQQLQhN2yUrfCfCdohu2pbXgBhQxlnjlezmvaNt6d2HdvtCl2UlYdejlQ5P44CK9D5CTF+TYlFESgP6sLvfRU1eA/jvA5ecG6GxPbPXV0xE2yqqS1wKwwIaXkKDTU9o+bpozUAFcmMSwaYEdyXtBkDarpjjadFrZ73AaeworBW+lW41Bo1jY6XQiAyH5EQ4fSA/wb9y6fXjhV7j5j3FyzcvwerSC9EDdTbTa99yAd9ZeFdDO/ISun617SV//oGPDG+YcXz6m137hFGLgoHnRX30Xz64uSENfLA8wr/4/v8f36s8P51xh2HG9y8nFg5/+vJcjDo/u8wtq+NI8RQe4FmfNb79d5PfBym8VyPNqg9bLs5JgdNKgr9h1LBa7fsDbY9NQr3Gioy8eBPz639033zqc/JVP/+Pzf+evuZ6UVJ8xB81td7J1869vW7hBiEj5FIQNXxTTY1VjZWDG4nE8xwAp244LgiSnjfgBSKvLccmAJ+zyQUdruyOGrC+sCSbK+GvXOtcb79oRaG06QByDRp22mr2yZQOFHJU+MsfOxYs5cauTEJgYQhiHJybNhWdfXTrQSSBy2ssPKtsDx1j1nJHPf5gKrw3acm3C3nRdtn7so4VqezhrjE0r3PDNBBXHEeXGFqu1hIqcfCHkzT95+00aXAEIXxtPbo33J0lXW0DzmwC3bnzq23ffuHn/rXuHs/PzaweOib459jcBtvD6KuCxvekfZelw+Ti3f+C8X3c44RsAZzcI+nD/8K13712cXpy/rBMkpuRYn4kWzeZ7bsfJ6MLBDYBtdYr6lx1GjTEMAV462ytl6z95W8FBwbZG32oFJsmrC9Gyczm4M9hwgasd+bMiTB2tVMRALrMe7Kcmd9lcEyH6mmCZySqaY1Mf1QmzHQRjPG4Ziu/xYM5ws4qEvlEwojeqah04m7D4sESPJxqY3RNg4sC3qUyqrLM4XX7GSBuaB8GizaSOjMVtWV+iLP5khgZaRUMOtWsqkzT85buy+13C+F4Q41f9pwQK2hywAYLqJt7W66ARbqz0UkldyeWDB97xjD1UGfvAYqwuoNJ4zUmkKEPonUkzDjwXvMjsLHeQa8zslbsxt/J4l8/WH/7yPz/wO+KHe9wH4AHTk6o5h1sHQgLphkAPvPz5RDw39/POmy/fhAeBA1inrB6QOPQ7NzTvgV+1bsYzNjAdWlypRIx38dh9nW/cXP/Lv+jyf3mQj39vvsuPE/08DyfiRCCj7ZDwwKUZThY4N1kpW75NF2HDimiOCE5OkHOx9KTDe6U6q0HELhUWk7zGP333aoWIxqzbGvzan/7J4QWeDnrz7AYxGR8yJjVJhUCwjf7QqUt2GwNPtuF1IEvI/lZQok5NdSqeFGBrkatoX1HkO7lEsDpy1vx3PEpzs3ecu2ND/6TJZ4u4dIpHXYw5roxFffq3DqWlXkSV0a0tTXu9HAnKq+iLXf4uu6r78gZHO6CSagr11AhISZ8mB9ZyWnvV42cJTf7ksdNsgywf9EnaApLb4Bk75VXf9CPfB2NQ0OEf8vLDDhB9bFoV11g2jmPM18jAsE0rvXFwjh8rzNO3OdbwVcC58VbsJzfzOXhP0qMtHse/5+98+pPP8MnUwWOhx8S+CojKO/4mwOU2rkwQl9SPqGZIH8e2A9jO90MHd1/mgQd83eGBn3ewmlznJzmee+UTF+cXF3d2ckye23sl8Kqj8keGbr9773D66rftv7VR6R9eoxYysAOtkHRp2rLiIGGzqmDl1JOzzUtpB92UI6qUvBky+gTXTlaobUtLl4BtzSGQa2E7EbbC8m251MBfLEW3q9ubYa1ubAEIfOzL9JUi1WNvQ9x2Ec93Fg4PXvnRoq8eQr7CmQhtry7CxgB3IuA7vGWsA13GLifpxLp8Q25f1QhME2IJ4Sasdf3Y9XjsiMEcz+GBdv7hk4LWjWY5qMdKDhee8SdGpSOEoOqMX4PhfvRyAhGl4lkukwMWgypcYYhB31oYbKs1yiGm40E0/8amuhnIL+wGNLhzMJDPO2Du9n+d151/9a+7/C/wup9oDQls73xp2rhom1bnSZfjlxc7lg5OyPTwXx1Fjv1SlU4799j5zprCkwPtfOUPfo/L/3yW6Y112iEOD8BvcUfzsz/506XXq1XNUfPiwcjcIKu8fwqpY9UiEmN4dMzdeFoferKsnD4YFLp+2yB1cak45PLZGNhsf+dLfzyPKD7z5gIBPFGKqwR19ATmZWmtcTI1GtqVipLGjQUfj/NE+ZTkT+N40AMoW/jauqYIPnRgV9T40DE+Q/LlNl5Ac7wOqEJhiWcO52/7tnRk8m/LorFkJ4u9wDNhu1wgJ0EnENOPOYGQZAu6soIlpxAv5XJ4yLNXaPMUoe56ItmtunmjDjHI8jo2OnlJR9mhZdMkhCG2r2HXV/RlEAhaPrGGKJjxLNEomSjLENIKftSXVOtbOQGNnCLS3ZBrfhFAV5tP+dbLcD7Ufp8cnJ3feO4TP/W5l+/w5beH9+91Q0FfBeQY+VkQrzwL4EPhf1jhlZUPq/bh5N/4wjzYwK85+HWH80cX3ALgVwDPHr340z/88sn1s+eawHRYk/8p+PeiKSL9MavAte+8ejh71csy/ddpq3uVmj5sUCFAh7bwNQBGSq0GUqNIjdCpTO04CNb4PpLXEPBAuBfuJm0CM8SOEzVIWwsbXcfnDNplJ57DSl27BoO+vdvsJp0xSGAyad+B6cRxW2fJsjs7VtF/B7myezBfgbzEEVOMlNMLfrcBavKGIQBt322MgeqjNO9Ew0ph/G3BpDober1ToeXCrv/iaqtNp4nLuhjRl30WP/3S7+HDppVICVVFPGN2Yw9GdYWs2+jAK6YRQLBtPVD4ltqyYqGSYwdZ1XdPxpO/qHNAUW62ZMuZFHxe/ekJjLxslCdNRBk6OtNCBt/uEc87PFb3mc/8cB8FdHNT3ox7Qk1g6Injutm1duo1odMuBfCTwaVKBu2UCNYPqUwdWT+TFtII+pyd+qu///uHF88vDnySBzwyjD0v/9//8Z84nN3kx398UBFyItn3c3NizeLZl+79aEHbZXb548cSO2XmU7sIQGNHn2hRft8SkCZbvrz6kXax85XJP/tTLv9zjxCBjxX6QEBeztv6PnBpYsngNbDYo5IN9JJX2eSuMjWN2x7aQqFlm20ThII0J68yxvpIMWbbBiMaOyXmRBu0bKAfntEM4BzoaS2+MOmoX0zIbV3iUV3XYrnG2AR0+yvfVoLGbFVTvvpTXQDaMoVovtJvgrVH0txR709lDSowQqWxNQu6Y6Q1QqZiybGbiqA5IHnGLkL41kcS0tRDtoxqS0rCVF1rHMNwy6eM+a90l4paJWW1XZtaZxTGP2GpnrzGsebd+zV2n9D4rlvHqZwZEdvM37NnPvXic7dunDw+O7997RE/i3PK1+M9Rr7lFYAv+ERAM9FLRSx/9NvHdQKwne2HDT7XVwA/bTBtDy4eXju9fv0anx4ebr3w4vNMeO8iOm4fJKlbWEPXv/n1Y4dIL8Hliw7HageqPBq3piNhLJrHixkcpKPBsV0dfQdasitbHbSVa+44pNj2bnW0l8LFHCRqiDOE5lhn3YMe/0nRHgPaq4GkCw7aDUj5bLFyduhNTlHXJqaTQlH1HLRagDwOALBspVPgK+YgFhJFposFBPWPVvDREw1FK6yoAPCiVW6bqrL1rge8+kOfdGQacFHMr0TZDb5wI7P56EOKzn5jjOmhClQGil/9Ja/ijodqG33UOx14shSZvrVCq4Gi5LZPrVxg4agAW1HFiscafHTFC5O+bNEyLBcjib4DU6sDlvijl4YLp/ahGY2f/b/Ju/8bv/5v++rfQ+7Cd9vZUNPXBCEuG34KYedNpmpMfHqFE421EULGXEDW9CUgNAlaQgIfvBT/NjdBnfyXP+979XMa4zv5h/z4z/3Dde7+9/4En/5nGPtAxGgGSx+g8VeJId/N2wpfu40bTUJVH9L2rVMNaREVtj7aOj4UILzJkcabfExx/rWvcvnfJ7clXCl2YaGRztqNLRpUerdXX2eG3UTaiZsHhuyaZDBmglR3nA+tiDTKazA3krpSpce1DzgJa464bsBvHC693EtcHGQVt20QumJLlvNmCDQUkj7yylJb/KFtinTFkldq1/WTTkwuMnhuCCdPtfHRZ1DkB5mZFzojSEAqDDQCO/Jclt08UFGxKUcrZgizg09l7CpH4JHMPxVj1U5kk6IsjHjK6xMv/6XtTTWIuXucd6kjTj6THb1dPXnz7cPpNzk8f8CtE9z8S0GLQd1+8aVP3OEYeMNJ1S8DcBjjnfHdR5+65jGTJ+Nd9fQDWvtwYo6Yj3XbQfj1BoPz+47XGVVnpzdOb/EkpNufeullEkRf1QXTHStZe8F4XwfppLNv/H3jp0F+7FAqdrg5ZFTYl9Yj2eGB2sEOTloStjjtI78a7Z2pYYx4NO2IE2B44YTlwAJfaHdOTgf8epciYw/S1JPVN1ooeBJxzMEILFvLv7VYrKCWDwrymn+KHSuEJod8DdPQqb14qbXr4I4LOb0Q1IlsIXsWyWaTLTf1nHzWNabC6HUAtN1RAYEhIypt5BVtJjZxFRBITF8Dt4ZGpCNIUgqwGZaYKIQXuPnyj37aObM0x0qad9SnpV1ytv0cp9AdF2YcjMyiwKEmkFLmbtcVa1jDaiGNMWnf9J1zWeUBH3UGQG06tu7zVL03PvnK4cVf+uVOBk64Ack86G+ftSPmAderKR5E3OtDNarz2bgxDe4cv+akpO6Croy+lnL0tZ23CMx7bsqIjw9/8x//4PAyILf48R8cODzmZju/5/8Wn4s+y6//NWYd4yIsHWMbnyHphrhTQWQO2NOGZxzFD90ULGfmmz9i4h93+RvfMGnrh3K8PKkwN37+/xx+XfBB66k2/HPOluKcWPrQ2PSvbemvZCCzYg/f3JDLhAWbtrGaX23MVS19krtATSz8fEwKeUjsx2a6OqZOsJVpO7h4LST0thBy+TFW7L/GMrSJBTpgeui6M3WxtS0arwokjFnZ2ux0wrrbgMEPLL+LXwXXM/FUaE2xZj1FU4ee/URbcnTazS9oxK1wOqqwzZUDBeGVJOqWQ1l1ciXbnfRwRr77FFTXmF2EzJykUdoH8qJVIAdd35WNt4psLxliGBa5vcuvcPqjQFuY2vttjuvG9hJifPMQ0pPD7Zeef/6cXwXkfP6UX8TD+p33g1mevZ/Ih+eVng+v9j01rjjLvYxXNm92KFi+//ji+eFw6/nnnu/gsDpY0acTtmlXYC6rzOiT1/j8302rDiwHO53q0JBEyx0829MZ0h2wI2Wd14ylSsdOl9bBa7I4hn0tKNUblI05digUgjgtYMM+vpPfAz0AlfzPSD45l9qEckJpC4K5SW5aUBTY3aYx+VDZKTey0sWhhS8tHWIesYjbPLHNQlZl5JCZ/pCmLeRGNDvVyZv+yjomZMVXO/Jcbp4cSvAf7LVgDBhBSl342jseYLXtjUb6nfAqbecXqnECznfJ4x8V40B2pKzLI25JxbR5eiUTK5FojzrjaDiCOp5SFXDJVRoCupHY5UOUJTbsaewxgLR/dvJoYlBFu7XY9GfiFN4H65z86y928H/AzX8u1n5dDuF8pMJNyZwU9K2AuTu5eKUTa1fDKbN1xDe3UBhLysiVZX/NwUHU8cNx5HAxbfr17d/53cNL/vQv9wDM5Wwf9PPwcO9HP3u4ePFF/Hww626YxoidcqmNIie1W9NnD+iLyPw5PnQ+Z8ae9eJxpw/660mQf+gal309alIRwd6rf/xHh+dvcKcRb7Bm7APbvJp+PY791Yf6iQWVpwwJnewpVAImDwkKpnVlKJEbjDwY8SU3yOOjJiR30LHSXEQnWeiUjvHjAVeCzA5eYNg2Ty5oe1sxFBlzvvzpmb6XXuXHr2pgzEHTfPHn4IdxnDM5ocbYaEw0QSZekewiN8ujr8QyPmg7LrvpX9tzIFRC3DxZcsqySWYMJiuEOc0AGMQ/6Hu8wBfCXPGXj/T78Q2dnW1u81MwqhbFsegUE6JtBLOvUP8wKZURf4Co8+0arjrvb2TJ/aCbsUwO+Fr8s898mhsAeAf78MQ3xR4b7z2aGwDnq4BfzPIHxf7HyJHJj3e7+hXAZ1ZwD7qd+PzwgOcA3Hju9qf7zG9nZbljx7tt8m4v9iroMEb3yb13VidOp+070RuUdNwMTnuUlyr8VTnW5flP58hachqp2QBTmJZ1hC4xaSskjdFTB1Prz9EJ04NwuA6wMLFk5m1nYHeDfGlgQtKf7M2olJy2q9gMxwhjXx2w0klKnq+caw7mTvj4ZKNYEGm7HN7j5m6PDbHEnpxuf8V2xrAtM8oVVjvsFDh8bU0ANJplIcaH1yKLKed+l42ZZKl2QNCyJx0mBQFj1SZbkASeuSHpgl5kswOOC6cLQ32EkCGpAIp/btNaNUgtUBAnn8ZEbeUshUQRNBXLvqQOdNoJH4LAFauC/5OGFXM8duJs2Y62Gr/Gw34eHF7jxroXfvXXOK/kXe6s5tl5or/N4c5ZBgRbgLvEdgc9E9u/0U2/IpwP5ctciSVNf43PxZd3+G+/9vrhhF/Ve5Z3/965VErg+eNEJz/78/jI+3LvzjNz0CvrN2XXuDE3+WuW8Um5/KFswZ6Tkq7YyPIMhi01K8g2HkoAfsFIBjHpfLyaXw/w87bP/h/4xp/9k7w6RWgG3MQR2jlszENTSuo+YZaqwmJXV3/G+cZQRk3+EpSv4oxdG2Mbh+lPPcgLx7Z9o4EsWF/jheqwkBS0k2MDBgu8mTPKs2VUBRtiUqw+GEfgFaw4MMHInOUIL3/1TxlzBs4AIo5cfbtgNh2JwUGnTTy0tn/5Orydl5nwCAm/MNWZ/FXBNjrLX/OkL5a6UU6WuU5WNobM6ApNfpY3o6MJ+doVe4QrujplTJ1kIZQh7VJ3LUfp5A2/dSbAoFI5bvuYJWHXnz5+2b5+6+bLr969d843/x7PMfFweIYb5DfQlRsBj7TN+6hKevhj255w+nmi9HuOD24+7COAE2bUG4/fvn794uKFnaT380SZ95ZjcLL42BdOqzrE0bUGQN0j2U62IY69Li2lNTggyXHSjiC1BodiCTfwjoORhcTxoJmRd+EYMy4wc7BYLCFi+jnZ4LsPdU3AmcALIE/U1QBlmxVeGaTbDEESu/Kir/JcQN08UGBBkQStpHsVc8kuI9NCUBFetXs3MRyJZmig2LcozAI22BkbvfTFGryOLvmIWq6AZF6FtpDoVq7tCRdhiCs/x37ZcRfL9JiI00UrF4M0cKZhLfotRNlRj4oYy3BR5Z81o2SDnxmq+iItvb3ILMkOYOIu7DnRASd86GhO1oQcFHPZmECmMaE7AuhPIuz4f4d30w//xa8dTniQzX1uPDpdB0MD9lsAuaJK/lGhv3xX7CV9RtscT7WVFx6yfWogLWiGqzn+2ehHdYXoK3xwqetbaVlXHP72D/lRHR7ve+vCp+qN5iN8fJOTk9tc/u8yvZ3B4uk7e/v4mpfnxQRpDq7jTVatOpzx1wxjLqdmrmcZPybOvpZIfXs8XNr0r08w8CDXRxkE8c2v/M3hJu/SbnkDoIYEPqpS144AbDN2JCDA/5z82PdDq58cRzKXTlg6Ll0xX8eKIBCE4+XButHTnKQtzc38dbJBjuqIsdfJ8EgsH2iks/qxXB1JS3LlbvuA740n+xWJYrD0L1uOgjgDlKNW9UlI/V91F8Jcm5jmpAURbSgjr0RIs+42uqZBc13W9yQk/vAyMZJUFUpxlhUb5GfcUn509oFU+fFfAOQQTxZjSIK1wMKVSdyFYQYWniVjJ8MLH8HcGH+RFCxAO5oK4s6Ja+++e8UGrO+y6a85mvE8QjuG0/PzO995/Po53+nFN56My7Fxfhb4rsb4QOD4o0DfBf37J2fo+4d5b4T1IIOYdzn4G9zhcPvw4Jxv/L77+Nqr9965zncgb+6EXEW5mrCr9CfqdoyT6gGPU6JnOjPcHe+IqDMRWnUHxUwueHaKExCana20r+nsapeERrBMN3VTXzoOJ19yKD1r3FnNl9UW0tHU5KN0cCt/NGWF1zqAz1UM8aAhPoLKo+dI1oYvMLW7TbnwTu7GVrkF04W3+AcsVzSnF3tCa0Y7LhZ6s4WimytkQSJfHmSQ8GW9eNXARniUA0Z7YMZOxEtd8+FLNeUWRPHknPISfVHf/XCVVD7lLpAkta88DfWyo7rIg2OtbXfA7rRFNrlIFuIIAmMOlFem+irTWTz5vchTnaI80S/35uRAZDd5a7Cgo3/bbd9n+O7/daSe/Te/0SV2dffdzCbNA5Wm6wbNL2WOtx18PWbH15Q8DtL6xOEYF6eP9aSsEE8fB9jqM4MB5pmd4Zd7xuK3+fGfl25cHG70IBT8hdbT/z79mcOdH/7hzExHrpOPsoifYHKRM499DoEyecBBwbGhn72ztWX3geufxpsS+OvBfa466NPEjpqazWF97ECHzjf+5MuHF7j57+L0HBTonc0b7ZXNuTqujN+xsGlfQTffQNWY+aj+ejX/EOR/oI0CLjpm9AhiE1kpMy9pQDuubzCsK+ZmavS3OW4fpzg8q0sZGXmOkiGtbE5Dqr7Hswy0sdO6o01p9sEIITn1mptmaTz8L6/olyHZzofYCpor+yXYhUvDXIrBq7Uxu+K56dsCDEIfxBkuzMtNR1cy1GrTnhV49s+w9UGHc4xSPZvLB/1xU0eRJbqE8Nf+SYFSk+wcJwQiOXkZ774Nc/oyvO+yO/bzk3yG6ePD9Rvnz/Grmdcf3mOEczuNx8ant3UM1QE3HftINyL4yLft5Hb6aMAHHTzgkYfXH/sQoHuH1+7dPT85v95XAElISTkKX6nsJM6CeoVBR3hJ9NqDu3WWnPo+EczvDqunnQYumiPa2b3R6+X0KlW4zWYnNtj1+JaRR90RHTSNqmr5kkmZjoMr4TjHAwd2qgsDuwVGrZzW3tDHDxv422q4sJDrIOaK6EBGRB00p2488PJl1EdIL8iTcsf8LP9KTQczreqDi4r2BLDktfJDY8jlTT5NRcxDKu3yYXyira/+8xrctCAZwNRn4UdGP1YuxhB8dc3bMZ6NA8F/6exaSBI394wJ7clceZozfe25wSw+ldm0uexK2Qu6IIMPkQBbYJZ8J2bolG0Z2suhjUe7MRQ1/topMPLZxMF0tx4NcThg3kf/3s//14eLlz9x8LN/H8FbONojr40b6juvku0af+DG7/0bUyagjWvoGypyvlpsZdm2JFjXPxE5r5MQnnGcnJ4d3uWpeo/5Wt1zPfsfPrLOEe9RuPb5n+Wzf96H8/Q/52njKBCRcVcMXg6H2ibZZLeTSJ+ZbPOcD8PpioFcjzxs8xhi5VT2ha6FO6q6bcxv8P3/Z/mVwh7/W3TKFNlR1m+z1IMmpU2/rejbODprD3XNyzNxGaJR4ihzzVw7X4edjPkvTsevjP2Ky046eP4vex1TqIdjzKioNduuSUcJN/XGXRzdls6rNjvjk5Z9Tqqkd7AcQPaOzwkurjrkI/mwgkuuj0+qqRwSYPpBPYd1ICdqqj7Qy0FVxM9rbCCKIfxR0Je+QWpw1hrYck5bO7xcN03nTqmwbcg5picHQ4rHbiCwYerWINSPyQi0HIOZq0vBmARQ3uOMZGGFuf8OJzR8uyQBiR9+O7t+/dbh2tkZ0+lw8/rtk7tPPQzoykcAHx78A2rY8x/rdgzik2PmnKsADx/cP32HRwO/9fDxdX8b+bs5MJPmkmv7aRorE/cAeDZmZ9U9lPYaG6tZZJt2nhOBqlJJNhA44DExElDPQWkL0lDRkR5PyrwzHJk5oVDSk4sZZduCIKPnMAuffUPOg7EGsK+IE8D2PnMVLQeUCW7h5K+W2QzMwjGbs+hHIh5A+9NstsVfi5OkbFle+tzJlWDhZXRUqeaPiJIdMeVI/+XBZXYdTU1t9siroqJ/ydhmK365HqyjBHqFB1WDvqhmQUF9D1TRVY8O8Qihr/CEGGUtocre/y3XgjGYYinTYkSM4+8Ijp6K+Com/aBJ2234OD5BrSJ3ZNxLWhoCJzNhaVNZ9ggNy4M3d/X77p9Lg7d+899x8PQZ/45lTnNQ3HNgrCNsQCrDd4gUO80Tx5W4imjD1/Y1eVVijg/6onFwdHrC82RgPjb4Cnf/v+gvEXJjnWpiPXr04PAGX/+7xdP/lEs1H+BXTg69ue94opcPZmTZ1sHqU66s50OAxpHvkJbOPlmYJoY4YeKD1MMZJyoP+Eji0V/+BZ//szYYB+gGMxg6ZVv7zl/9Mv8Kjc9aaS52sEl0mPqZr9LGV3M964Mi2JCejHRBHUzmnq2EWNbA8hoVytGH6jYlZacLTSnZ62/iIEPaEUc3lEmF0ra7SSJVK8NPRUHxtl6+acdNpvvlF9TmNkz5O05zs/tBW5Mr41V5zZHl/zIUtH02OUkwK+VvzGq6dOknzJwU07VLB4Kso+wfRBDcohPzxK/+8nD8DAwF0+bLd/T6jVQ+A1w8Ka41XWANWnYFIFCN5tzJA+478ypYAhRr23Nzt6+WRx4Y1nn+za07r7x4gytiXEZ7cHLevXFcXHjx8kmAH/ezANYKdtXN77tuytx6BoCV/WjD+7d9CuCja7du3nzsMwAubt84O7t+fnFMjMIfasMUJwCHd3hnUifboQ74upOSdp1K20gdNHZY/+OmuY/mgGhUXXUAGUbM0FF2LrdoCO1AgaAOnTm/MCbwtBuQqiuqD1qxhNAZeKQloO1GulAItOCpuPjS6qkZsBMT/OOGXAs3hCYgMamTdSa3MLbzQyUI5cmqtpVlc8EzfW6VyDX44SNTHiANLr5YxUbvS4W0mbFle8WblEx4/YklsfwZk8zVQZunrn6tCTe+21PSh6cWHiPmCRUc3RRW6pW6tGPOZXsw0gN0LlOijvayoFRgUMbXXcmn4XXSd7nSpium7lXmO4lEJ//0Dlr+INKCZCkBK5qoRMZ3/2/xRL07n/uJwz1+gjRH9e34/H/9NG5UGhszBBronshp57g+GZduSNDc8I/jWhDnkZfdV5yelvkXSx1Uvvk7v314uWf/8/l/iyg9z0H/nZc+cbjz459L1nx6OEmb+lyZMc/6ABXALt/nD7LgKLtzYJX/EPR1+1TfyugSxfSRvvlys+iGQmrf/AsO/vw42IXfjECxISyiQsuUVafAqJtAagokRNNNWWTqMVgeDEdeMXKfp8YE3ZxL0VE38pJwEwqasUMKX6ebr4KOX/MmBJlxVkFRpj8QyzXP7rIxjEzZYduUBPS7yqgoSpLyz0oJmz5NCZE6Fp7iYiPdv7ta+qzNTZYoRwVeOwfilboVW/KIjTh+SDcH4ig4jmWlm6QVFPO49i3dyPjikFXm+BoFVcYPK2yQhbYy8sZrgpSXR1lMNaWsF0pWdTDZyZ3t1uRRH578e1x19grApouybFBta84/RbvKOzk7vfPMZz71wrOntx4+vFvnHjxGbhnvAdhfo9+0j7p01H5sW87zRKNP8GSjd9fzjc95+3Tv7dOTZy5OH9155ZXbnAV1BeDyTt8rGcWzp5P6hLMk99o77x7O3nqbzkaP1LmoTXUWx4Z2A9I1AfwAAEAASURBVA5+//CR2XT7u41Ro+X6iwEyZBVIUXoziJIXrwrlPvA6cfkXwL/qA4xvk+ZsSts2EdJq8ovY5AC/cl2yawUT1ysVnpCsyZOzDeZByLz+LONFZFt/8w/9Sc545oETXhpMkibOToguiw1TvhgtLI7TdMb3SZgBhTKyJRF5SjkCR7I1YhTDlzCphKHNURg52ymOI1an3yZris5iIgYc7BhqZohbWSVbAMNtF3bvRhA1SFUiUtGvy5MFHNCoiaFsLFKWV8gdQJeqMgudcnLZidFIF+Pm77x2RBDfreHFKQVNL5e/xfPrz3/zt3hjwLt/3mUbVPZdIF3Q/PfDfuX5sN+/iNECUyBTfhygbp8rkyepPkGzgxS62ux79X7LADk/a3frgIXuCV+ju/s6dyP82ZcPz1/n0b+L70HvLpf9H/30z5iMLv8X6KjnUbbgmeW+q18cfFRQDAhqHwf608c1VpTt8cNo9r3+kief9gqvozN+el+Eh2OT4dcLv/nlPz68yPerL3hMsePD7mtgwDOPe6zk6zpwLyGwkHEQJbuK+n/6tz43fsVCG+zGk7ZygzIuPH1tUFLXR/kqVlBxjCuNnONuPpYQ39dIuU8v2UVDdq4cCrgZ1tmW7+qM175ZYTO/OkTDOMZHhXjpeCc1lIryUqfcmd2OT1CL0bY8EFSzz5ZNMaeurYGePCunMMRyLAA4JQwvK8eongks5A7F3OQQtPGJirQAKQrKYtOnbrzlICD91T/1sjL4tMdb6PrhOqtI25zYxC9YiGBde/tt3D+eYS/Zy2LiUhQ7O7bFbgxR59tvZzfv3L7FJ1X8INDtax4bFeFt8WOPmT5Bd10BWJoffbFHzkePvBDv8kQjq3cePn/t9MH9kwePblx7yE2AfIv48OwPfeJZDvy3nk7QezmjzHvJnX77O/wUMJ/HqOTIoFJfO4BsDGMgwZjP6RTiPx6syfseEkuWgsVhDsjimqqF1wi89CezjOfsF+2YXWIwZDZjYGh07EfWkQTlD0bF2jXmrCPXJKjeDpJBLHXt2lwH+iAhNBlzUEFx3EY4PGIPhvhmAZJNbLq85dAzm+V1j5gWC/ERWwPcBcm/DLlACaFmiZ6J4ES3LSn+yn2i2dRYPXfpg7lPzgDmla5+QhmbVgAQOD92fyHZSZOSGkA6Jf0TBblWM6r5lghi+ptDMngJTVl+0ckB7YuvRKBDx//Y7ZVYOCtPk0h0Vv+JnTZt3x3f56D6+qd/6PDCL/4yaxzPAOCdrBIuHKpoxJR4sNN9T57VG6aLKiI1fR8vXxa60m2Hg1yM4at7vGufevMNBQ+2pv6rf/T/Hi//9+x/sPxo4k0u/1/09D8zsHM6/QdMNqfPV06k4W/f/V9lj+8dx8Zf+4EAikkKY0l/xm84xGN8+qyl8pAmMUF+68tf6tf/XMfLW4UKcOtrSscElOYAdPXc5fmOX/FeckmEBZv9NmsRNMdcQjAcd9kcnKr5qMhkJ6OCLLkOYjkC336SpyExa1HacTAajou8PB7pxjd8lbd4nU1D+aOxGQ/RwN/jIcXlQ/Eblnr54MmjGFgULicRYOsEBLoxj2n7Yx0wke2NCpT6TucS3OBqIGvBJrs3GM2VDGpSzoDLNwGtKxN9exT1K7+VX7mykD8+0PBkIWOLJo5CrSujNk5oEzT7orEiMnLQ1qQrntO33z2c3OVjgHj6psxsu16fQ3fcbtoSYUpA51e1Lp6/fdur4Q+vP+Lq+I1rF3xEfv4u9wOsjwOeugKwsrUtff+ls+Kj3p5wkvcGhx3M9RNWz1s8/IfHAHNzzmO+B+mjxHhDcZm87+XM07LXv/F3PJnJyaxZcIKypNvs8NpT7jPxGTjLknwnsZt+NPKRbwRBl29nyWuUTtuz3rG5+AjOncao7lGdsp1PmmeEIzzysvLvyoAe29rUKJshWSwfVgs+NS6FThx4gYrDtEF+VOg9F7p6uTCLCVBX9UD01Rp/y8VwjGzRty87piZp/mGPf/OiO236qw1LR9aRIYn8xIC5+Vv+qXgNKD8YLr1jaeVTe3SDdUJLSdf4aMrnlUdgTAnJSW6AbCOGTO3Jg1p6l/5K1ehC66oL/DG35Ggkh33V3KjM2MROgFla6TO5ylDa38ZjjCMSLxhhIb7Ft1pOfv03e/CPX/0TJPvKV7FchmkXcaVu0Nac/mlSZ6g0XvNLXf/1Y0lQHBcpab6Ie6U4P7/5e787l/+57LkPzD598O1nnuXHf34KNAxyZB5E7Wamg725yRMcszYcJdnwd/I2uSys5KCbIF3piI8mzD2Hiys0o8dXTpp8ouq9t/n536/8zeEZvgFgLgpRO1ZWToa4+0sXQNMdTSjbnMxj6KK7kVS58dZ6I97qB4v5WCSENNrRdM6YgvyR2HhcInaWuALoo/aEUMG2W239sdcWYdndfRi5DkNiqyZDGxz7p7vwV18IVC41hvwYsZwcZwn6Xj+OYuBEy0n5qk5ij/6pZ7Lzd+dPWYWN15f23bezQtU+od3clK6Tq9i6ss0n9JGwTqMDuRTtuFOQfxqyJQ0hYspdbUnFmCfulMU3lzvHAa71hFgbE6/zA3Tf/JqGQn6v3V4z5V2tL1lMXjvcfP752zdOz7is9fDEY+N9Dvz7YUCffO21k/9fXwHQeZ9odHHyY48NyuC80YHLf8wVHgd8cf2Cs6DvnsGdqTp/Gnuh2ouGvwMwA1k+UKvDrTsgHWsz8NZA3JNiie/RMdwrrjhikD0Ons2idLCEqYwmxWo/A9uBlu0jn8nQIFLuSFx6ksALRHBExVde0RxgEMvndRTzAHKc8FFVZCIsPHGSFsR3e/AEaf4ZVx4GPxMIPGGkq+JEt20+9cWTBhiSFuO44O3QUtOGLyekwgO2dHQOkkV+1pyddqwlP74NLnVxeCWBXnF7UFAheyq6RRhb0F2oohmzJwTSAiW2HJj+ms/E0dWH+KPnPn+MW3Pqd/JEHbnBuuKrusg2Npfpyz6ApU3pJTZwiRppcfZrct7A9vqzzx9e4Ff/vPwfj/32aL4vv3TMFXmeuUB8jIfSt3w00X0vX6J+yceHXktW3bmsLs96Do1fXH045TLnu+/cPTz6k//UXfXFjDP6eg//7v+znzyc8rXAB3xkUazoYxWkXA8vn72REb+sO2xnDFgfm308oN8cyI/+IDe60P14wi8wUjWOvuVAQ2vmpucAUH77r/7L4dl33ubxv2f9jtaMaYDsGxuNCQOw/8ZJQxYnp+v/5RNjxo6fUa8+g0ClDjby+sdfSl7HsYjMmJHoPEIPcfEzOYY0XqxVpOnCCMhZZPs3wdp7Xbj0HYXFH5pi4/FSoFhXU/IBXsnHlzpijx9wln1xth3HRP+NbW3xQrAD9RhWmNrI7fF+vLqUDGr6yDaFsiur5Xj5u2TGkdXQGWXJoT5lZ2dRV+qEKmPEGG0Wo7HSWOyMu250FU8fZuxoqYN6gbtWwurAAUMlCP0Vu0xa9x8erv/936mJe8tXxZ/aZn7h9VMytl3nz29e3Dr1WHh2xpMAeRYA35IbiE9XvHHp/Y7iKQvfX5NsfPybvwNwfnL22OAeECw3/18j3Mfnd25fkARyX4KOAT6drPf18I3X6uTRAYek+uegmZzbgXawNJAo4jdjbTt45WtlDxgVVjueuLyUkCU2AnNgVG4wpG6ZBgmN/BKLs1p1WkRsXlkRcs2F3AnpINSI40AwFw+LhCT4cttYlCO4YrCJzMaR7cmCMluUeu9WQplYds4GC9kOLAuaYpR3zEbSapL40aN94El8UbcfyY8D7sfZJWPBK/pUlxtLnthXxtVEkLYxFqfKyNWBlLp13BZPcDdVLCoHsz5BKfWYe0pYbgX6jnzkn/EgbGuw1iIigH3E1v7YX0MYV5ffCuUnuJmATt+L97af+f+r36B/Tnm8xbs9Z1+hwaTEvi8JUuemQBZH7/hzkQRjpMWEtGQtYqaHhAvh4u27mYuwsPEEuQ6+oH3lD//j4cV373b3fx9GxHvElQp+oOgXfhn3PBAbCLkAM1iDyejypnHchf1ildeCDr13+PJ9L7DeD/jEAKPp5BTyXPe3MvVsoKMZI+6ARM6/zdcUn+dD1XN+/jdf4iOhKq8Z9zmnWsRhsTdhCCprLvS2E4w6D1HK4jRHe6tv1Fm86AALEtYStinPfs95K+SG+mRI33jFl7UUUFIi5Wyov9vUd9O8Sd56aGXnKKAtGvIt2yIMdpDI6LPrUFa3Z0s8J+A1F8RRnxckXaptrsDYJxnxkTleHTXHrXPIqwdWMubRtni9pk9bJyUJK4ckZZZ6scSoVxLS/N5m7E8M1ZV1jRogcAZ41nPteWIz1scgDfN13KbPUkfw9Fu8+TzypnL12GVdG2PnHwhGuHH79q39ZFwJZ9dOn4DkBrkn2k+hfN/Nq0P5+wa7AnA1a5G9AnB27bmCucHjzK4zSa9f3OCiR1v0p5O3eE8UT8iQ3NN3/TrGEmEEzcADbtPsbzvatqV9aOOY1umkNYKHXj8rwGSgE+cdv3rKOtgoe0HybJJN+nwGXmtwpNF0Uu6H97TQ5+fIpe3CGcb4J23G3diSeRl3jXFX3wzIGPkLhF36Aavni25W1oZc5Xk18BugUv0DW98oVrUKpNFzYlvNBjU/hoCXvPiuYB7IlplEsROYASWz23GzOjX2KWIDjLEDrQVit6WKT1sb0xxactLQzw4CJZFSHyj0U73BHozJ1hJNHbo5WL4gzrYBbKGxYpnFK4GFaw71DwsjOgZb8AYpabGdeRTZyil+UIcb817jwTUv/MYXe/DPnMyqocfaxS9r6lkSUF8LpNGBbZtQzpd0aGoNCwJjYQ7D0jfQyCpcD3NyMDZocWD55u/+31z+96Y6D6pj23fsb57fODz7+c/jK+OXExb9mXfmC1vbGkanFHR0M3SJk6fyzGCUls3ltzrG642v+bly2kEyfXvFEw7vFdR/feULQZwA3MbPnhswZgByTCwn8oe6mwVGw6dhv0VqD7VJAqiOqddu6maq5iiM74psenZUpZL+YCcirnIUsWnZ17NO0Ii9ZGoo4ICxX8buTGmNiM8/fSBr7CkDXTu8qiLZtnwZJSkq8aI0h8pKGqXhDa794CYTdjt9VHQ4ky91lu92uv8r3qOc9nRNtV7kuo6lYX/AkKeloJTZ9eObDPscfkLuFDIGCuw2BzFy7Cd9WApiZ3uco6ES7GyOY+GsWLdPx+bO4eu8+cTv0RZzOQrWru8yA0/tzPfp9dNbj8+4GcB3GGx3H57b0T+w7Qdq7JQHHTx89FaBegXg9Ozswki9i/fDbCW1ZAPFu5BWF3MvTJ3rruEAwUEh082BJk9BdBfG4A2/UVBVN9c7mtWxUqzacW1NxqkP5Aw8p0oH/D2wEG5BZmDK6ytE6VLHFRdkfRt/lJk/V7SZdvqPHXTyP+Pu1BlWOVj0bMQYmTn7XgP1GIt+iynAbB54td7khDTur1wlQt2mUjLJpZ5O/qmB5cKUvZ3zTCwb5G1iNWgZemDs1nmFPM34kkrNZGH7NZLsxVjqdYkLTnHv/NGUIlMlY9VHqkpYill/pqs2gjEoV38lvfxVP03x6LzCTJ42MZiX+F1m1AAbspOvXaYMgwXKeY++ebvLCcCDX/1Xh9Pbzxzu8317pbzDf5ve5YSBHfsrbMrsggNWv0dgXvQEBztJGGuFps8dPJVYPrdg4kTYSHnz4Sk3H973bmeeqve8D//xhI986au/UHj/xz53uH77We7+3z/+Ax5OTg4oMaTPguaO+tAuT6jHX4WUIJv0Zwq0DQS6BRBIrivvEOTVb6LOHLnG5//3eTzrNT7/v+Xl/44cHgAEMD+Wg3QENXlu8JKbVvBDh9/atOQozJ3y9XGeKaM0JTzN1CcKrjEVUaHsjGzrBWMkHGOBMJjoaQ6Q8cmSOIlnrhAWuALHPK9kCLw2MEQLY+VHx3RQ8JzUDi9JbL37pcyHFU/rZn4lAS/H1pzTO9vomFdewzfnns6JHzveXFWgvczKTK+BQauBBZN8D5yYC4MinwXcmEIXU5V0aqejZ+Z7Ca8456QAXmQ8VMQcwT/CGvuxQd15zBxNx4EvX3+onHoTIIyakt5jM8b3OgnYtLMb15/lV3JP7vHMj31svM+NgO/y6Pz99fn3gP3ISCv9HxnePwDaQRjUW3Cvk3EffMA3Hw5nFzeuNwio74TsctM34Kbv9pQcPuxFOswOapzQqLMiyoO6B0odaYcvlCoz4JYyDOQFUOYoaGOUWsg33nE0XA4qD34NCAeLm+bbielrtVvo4AsrnqXVIVDO4nW8gZA4jjgaMC5kJ1ZqnkG74CgX5thBwgovcpEd5CIp6z8l9OTc20wfWnGufKULo3dkKo6ea9NstMFq3RVYEF76nI82lWhRhO5ECmP10cKbiSui/lpMPLKdjHPCQF1DYikmL2H22KkuLSOasbHiwJnLnEgWY/Hzm7oY0sNaeuBr3e2yrMlu+lyUIMoJepYDjV9U/CcG3elKkMLQ9fkRd9O/zsnsnd/4ze4DMC4Tx1uDjkFejrcNKgd46+g5hib4wTcn2b48UO951EG5E0rHu1k0rm2fJVuonAV6p5a8fPWP+UodC90zff1vDlKPeU6JH1Wc/Bw//uNn9izavoMbV/g6YDGBxnwrV7hrqAdicR7nk23kqherfokFnQf+iuUc6LcP9FMqZe8UTRhxmpP6Fj8tX/0bDv58JOj3/3f+jDvzYoitbnWjxZ4YgptSK/puG+qcwIx+tHRjgqUw1HynHIfzY9YI7QyO+2XFavQOrsU6ch3kwcf8CLQf3pzAjz/ZVUZfLNrjI5V0d5w4pkRSySPbOIfoHF5yRrvnR8kXp0QEDHcG8Zizj6CX7yvYtM1jL/MmP72Ve9volRfK8RmccnaZ7+aL61gC7LaggWnXvsER1SZYMfyfvwnWdsL5MycWGvd/AJUeiaFNuItCY5ZKbdJB9TOY9ZWamYRnnD6gazAhHzfz8AG2hM5u3nyWY2OzFrzKrXuTrwPuOuWu6+hHtj1h8CNA3c5tZw8G4dmM2M9k4OLATY+1T87ObqzBdpTfPnzAJNLJ9MzSFtROblxtIrw9iOdsDiFH89arrqaCudXAGciUhxefqtswZxINJZtV98Kg0Dg0A89BzERwc8I16XIUf5f5eMpt1QbS0ok5ug6+GcLyls8p0ca+EJKDcuCutkVn+tughCZqjIFCSb1BXXsnuDYDhk+Za9CKKZ5Ys8WryoJxZQLldZBgdCDccUDEp4lpgaQ3C46c3jnmbzMRofHtePaOUf/GH0M2CBcTSxAoyQx6cJIVG17/cqjwWu6Fk00tiRHO2Lat9BxcLv0Og3FVzIjuBc+DRKZQ6mMiS3zqAKNlLp/f4yB69xe+cLj5qVcOD3nwj5/R62dvQJXXO8q+M89Bt9++oV84hEUzbi4WdMVg4qOB3EO/Z48uv74xC5Y6+EhB21zA1Q7tlQKdi3bKgeLrv+vDf3j2f3fVQ4fn1YE3kL/zMz8bVnlG2b+eTaBB8bQs9tF546Atx2Dc9EVh2xWg+C5QNmPCjxdUUN5HDRubzxDoW1L6Lx6yfgTxrT//z33+f92rFeZ3YYit1cZvRLAZGvWBHhmvK6E+YGuL6M/4NePCplvTp6EFpVQVYL6MgJJGJb3oqom3x1yKnsiNkYpwxYsGa58QydhOCQl/msuOuGrJk1QsI+cAyg8h9AK++Mq75U+5Wpj6JMtcJOKO08XtnERhYo+n5U8sDctIEbuK4miqUeXlBSWJtnlsS1rAFCrFtqrBhZm/1pMdGXPhvJr4V78bE1r6Ls5EjC/5B8c+T4Adrmy/48tCzpONsSvM8kcef8FwArCtDC5yT23fjb5Psk6vX3/23qO7J6d8DZAfCH5K++NvOlQ+xu2LR+xb6wqAhB59yHcfObs/fa8EbZrlrqv3RJ0ubYC42wPeTmWbiT0MO34v2J09yod1PKAtnQbEwrGr627hBvI4XrMqDQxltk/HgQCvAYlIDhqDVXfpoRXmIvSuTLCIo7TlUNhUAToQ7YG78dAYXyyRTgGmE4K/I6xYspGRM2foTkJH/8hShOVOidrUqmqvIMROheZM8kSyPQDHSeoBONJgNKHEcdOPbcIVHCxFxToWkrc8MleygQ8yoG1+WCxU+6AvfS9+giTubtu9fMfaIiVnyXSgUI44h2Z+xJtyPMlbiXLGd0nYr8dHEbuT7YQGZQlDQdXx84hL6K/zdb9b/+7fc8Dj1//MK0zjbYJ2oBg14+tdsDTsnfB0vzmZQJpF6pQnBUq38Ma5k54c6Jvv4ftQH7cWIH3c/YZuqaP01/1OT67zsLN7hwdf+hLP/vfhP5NCO+0BB+J3f+RHD7c+9ekO1kY8PmiaPsCGba9Q+IeHM0elKaFvlNZrYHg+Sx0fC1oh/n3Xr2Me0H0egjchSkMjmsM3W+Tx7f/8Z3z//3qxmtfpR6xMqpCDZncxduqjcUMz089W3MrLlhhi89z+Qlq2nZddKRnQo+E73ADhT2NLPiPwGw/yp466lcFAXr7jTj3VzZJVMWf+5AQNhdSDHcayY/c2NzTIVncvHdvoDWfxA9fQAjI3OiAmtEnFZb7yQxwYY5eqfixarQbS4BVPWMJB0+8VS25bB2iyPfvSJmbGNZUQcTnStJCx2Utgiw50Ne1YqxzfxlfiMSHKLdksKr50LJJFspMebUNIhPo+qZ81Y+xoa6lb/UDbPm4wP8/vPzrhIwB/0I5PtLls5rHSulfP3zh84dKIxI94m9XgIwZ9PzgDPD+/VaAnZ7MUbPkmrQl/n20nTpEGFOVRL1XytQfMzHYlZjG3pOdb8+xMuxUdF9vKrWfKXewVbMDuQUBbHpus2amqYTEcILbUo9wDWEuMEPHGtnVU4qun/C6tLzlxg7Kkq3xph/8AxAjIkpejEJz81ovaMtwSqIwyo1wpXnkM7pZFLKhpj69ijDnd1QmLcmhz4Y0PEtjEi64k9YB03uZqa8ewEtHe5KYJ1U5NreyhiqA6YlhBZvIvgDmkJaB2yVcQOOzBsU2fdAG+IoNDMyzpstxNvbIqhI1Btcvemlg+homc+d82j5dcxWKLnlE95s/6GV+nw+e3P/9zh9uf+wnu/OfzdOz4Tl/bvi8wVXZ975XXeLToK4kwfXffQa2H54k8Y7xcdBIExXEBpljuegdu26aXDnhXrzvHk2Xof/vHf3h44Z03D8+cc1Odkvwr+rYnCDz735/4fcBHF4850Ziv+I1+PaKD/OuLmzasmwpMsdMXfZLPu3pKsW3O8ccKHAheVbBLrHPRtdwUMwLmlPcRYIH+13/JFUdPN+hbhwDIE5TJIwLHgTg0J7GZVqoN89lB3dro5zN19LoUXwLhJjx0ZedFQRK1e7lOGTcUwjmekCAjf8ac0jpE25DtBJqjL49oJhXZbw2BKqRXNuV1dqYPYHZFp4FGWywLhZUXji2dYVRfIcHBlnNm1GgLHlVOWILID7NS+iV4PAGpGE+bdht7EmyUkekj5VYu5MQt2eJKWFTrEjYmlfE7RvYGdcQMTF/CSFCuBABKNHUGQnFAP4oqte0HgBjxmbN9pSNQFdZmX40vyl4yrta37NVSPie+fj2eHj93ThpszwK4Kvdx1h15H9vmDwFd3gPAk46648krk3MPgNFr/P0SdVxg38PLnWo7sUvKVzuSVMqfDqaxI9XkMEaawWA/OwTq72ksa1HpeJUdPmsBcxLQagO6y082mggjuY9BM4BjslN/9MYv6QKMnXFAmqSRc+AhQY4cgTqKL8jveTG6ajghFE4aK8qybzALAF3IMTd143AQLnq6yikmnQNRYzL/VFV+FogOkrR7t5CtZVesTMMzbbiUpr636ccWQoaFoVgzOzzt5P9oLv9GZ9zLE7jQ0lcvYR1Hu2LyoYITXr4cY1IAPePVkszY7msOTY2jrzC2n+UmI/DFMUbfIlsn6MLTD+O3Yb+sjVYmJn8cOLmZ7g2+7nfx7/+bfgDoAVcAzLmffetVZuwgcOpKCPUp9jwAeKIgVhb4FcDtwwSp2oxdlXVFWfXrmsD1CDlUp2YDZD6v/5rP/r9xfrjBu+qZP9jkPoU3OPDf/oVf5IDtJdCFj5r+ldt22mNMQmS6l/dhZvnSFnzzeZIOTojBn34qma86pvNsLtnHEzHk+kiE/Lz2t185XHzr24dbfgNAR1a/pAbfg29pFJuXVirYTcv2+BIrf8asee4NAZog44qy9I8NE19l4dnWlieL0nldjpu8hza5KunlHYJnevm9MRXihfDlu82RYY8PYLl2Uc8HdJVeHlaftUKBNAaOQdlJRhL6aT7YiKnaGqu6MoNKJluuIFHsNu0rbBpnGwLK7PrOA8RwnQyJsjMuX8pkd5Vis2mjdacrbkvWOSzPHVX5c0LmOFPHyJdeecOeONlScdndGJla2Ggmxk78mU3UBCa+gZBnLGzsGhPi2157a/t49X7HNOX25tMAT+v8oXhzvA/Mu7euAmw5ykKnHJNXGN9P1Tn2T7bx/d/vaf99E2kHuchUXunEJh0Zq6NWeA02c8ikkUHbMdF436mFO0OACjTJ87ocfGVf4saO4G4WBEw3bqabaGBL/3RRsy4I4+/Q5l2BdgJaFhcGrQzhqH+rhe9LduHNpBy+hhyEySfGbv4pmjlHnwZbVJ1W3wV7Yq0tFlp9bi05PDHUmU2t4ouoVeKSSLBNZOkmeS8AJQKpNSEt2loA1QvxeMwGrb+ZI2D5FlH7JdNS7bFRX5rf1bmTb/W3DHUaebkOsNnjBFytAVsOFUSKQ17tiWnoxWo1l21RMe6w9MlFaNhpgJFPxTgJZaIf3vzxnzrc+fx/xbtp3v27QI9wwLOwrYPNOpg7aToRY/FuBrHzqoH93mffGLVPjNOHb3aerU1e5saucLvmxwdiQu8SvC7jzykH0fv8xsajL/+nwwucAJzafXUhl/9BuPuZHznc+vRnut/ABXImUzDhmnFt5495M+iVB08KeAxofnuIV87jq+PBn+7VTR0Uo5MbCesgM+8X1JiPBMTNFvrf4QFAL/Drf+d8jTIIYMYLXbI2DsjrfUgdgbb+deIG7hqbkw80YGltuV+9Rvmy/9j0ISyFkSXfmhLTv9ngiT0DFJKcwffE8XKeKD96aKQzFM0MVnE4jo5OjV3Fy13DSr4UGrbpvOIcUE3kTgEWhhgSKewM5WzaL5TKWUysgVBVbnxXOLmtZ+Los2yKmbK7ETD2qVOAg7e13S9DUVajYtYLq4PTGK4qGppHSIja1yFpylCZ9DmujMX5NPzo5GBURm8f3COWv0DC6mQMsd0fY0BD1ABrba/1PXcp8fTKUV7ivkn2gXnfU/sjEqAXP/7tPc5mxuj7PAXwaiKv1lW8mmi7ZgbQdKgD3s7ttTgZI6UNHgfu7lRLt0DUt6IUf0xWB10HE3CWdiJS21RZB2NpTjoHSK+rMtvDJoX8wetAvft6Qe5FQjzjNLbe2TdSaVuqXzup8c2eFGNhzwBXbnne4rMngHJbVr5Jwx5FubSe6hX9coOYem6qWEIIykY+LWj9HrTRiYeQwtaVN/9Wwdh9nBiL4op8sDNAf4QXQOoDbJvNg4flMjF9bButbSfVDJJH3z1BkLdiy6+QV14VVWaSEbbyM/kFEwG7O541fqZ/4O+cgaNy/bjMSfIy/Btc8r/+b3+LKwEPupwupv0gT1z7Zuog0Ha42e6S/mr7wz7NiS6z5/QcVBefIzXKgNJu6ITvzgODeaCOr4bpd+rdvvolDv5vvbHu/ocGz3fy73C/wuFnfx44fODyv/RUPODtsaxs8U7Me7jqu72UK5jU5r4hsUiXP9abI54IAD4HEseIHwUsHW8IzDg44L71l3/e43/5NeDi0rEOkvgif8KyIl3TMuSFoits0CpHYWiSJeqHL6XkgyNZOxYpGhTbhrGe4dFPE73JE7LLBz2YeCVtPEHKFtwycrSfWV0If+3Mv+b2ii68BPDM3zGWhLbHNRAavzu4Lbi5olUoYz2VwcmS4KkPxj4g2z/1N31Z/hXT+NEHo9UeNOn463iYNkayY9+yCTSuxU5FvhN6xTuCSC+M6ZtGHzqBIYJNROw/59Rx7m+6Pq83FobVmq5tlTJwiWMzLDkK5zAWqtP8ANuMI3VFf3z6Lh3EnM6IT8m9fBrgEWwcODY/usoeLh8V4kQ1WXkCs98BgGKgTPoCYhK+r/3vnVQniyZ5+W+1M+rppIxIY1vFDEbP0hkwdfZ4QqdTWYNUVMkOhGoKyhPHflqDz3YDWHoWHAg2HNUebJdViCLtwdyBwAEmv6OTdV5LnEbNsW1dnjLWGdzLH/1oITONQsEOolioI9ckhNPJhkyEHMChhWNd4irhFbXYa/K1MCzZDIw5vUHpKmioAExZ34hbW9QUcnLbHGs6pOHlr83aatDAlznACwZJ36TrIMUQyXGTVhXlVl940tUoG/vbJ7VGeTCCGWJ9qBn5Hdz1xcvrbp6wy4TUZ/wrSauHh74iNWVWjVXrxSyGG33G138Ob7zymcMLv/wrB54GxrtibnEzB/mrjIKeYATbMNC87/q9eNbJh/gSog9tOYHuxJwiAroTpTwLglrjkMrm1lcnh6//zv91+MTFTS7/gwnb+Lw68CYnALd/8Zc4d/CD/BVTPk+UygUlF7+0Zx7sz4axlmh3xQKedxc4HRufBNc7UGTKw54wotSf8PUvfbA58RHTqx4P/uavufzvz7NCACWhY932bKjCWgcY64YuoEm2VJf/DlqyFpR2rCYCbnFC7GRmqwpmnW3mG3xxU2yXv3tsl7HNJlbzEoCi21jx2q8cUKkPlEpmlhZK1vpniHbSKI4k/evoioyiDuH8Gd1ChuSWbXYdnNF3iTZmalOKGa4H9hijpI2wVdKsPB2RqL6blVm3IqVATaPObfnWraJqMdNK20NvqlPXr3xdlhCdzdSrWIcu35HXjYmTunxt6yPC65hbzqJp2TcfiixZtEZ2tGLMuqpGBpddWGt7v+PWVZ51PgDQmmOYW2pcuH+wW8P/B2HyvS5rkOp+CIhLe5PJ5cjVJG3f3ot25Fmpp+2sGZDxGkV2NOxloc/rnQhsLWzRr5gXIq6pEWv3iSPTgeXgZkIucgMEOQdDk4ZaG8UMOPFA5H901Ei6wd/lpiaMfm6hkRfHg1c47vJbHwDPPWjKwCgubXawHJ080eeE8mL4OuNEkjHMKi5WkytlZWiQEvFQ4CfuAZjKTFJF1IOQf7RRaOHJPQUlubPkpbKGZFDXmvXQt1PpsrNtrJ2hs4hg+yiXrAsLhhE1RbONP3uhKjfysKnK2FNSonZXtdL8gidY+JTFpRPS+IdeniJBYAO2Td98h2Ffjj9jsxOJLClPj6Hw1j0ut3vn/8P7PMSGu4BhoUmMs9hrxwVwFvKQ4U6ejMG/J06uyinw5ddCB4GlLcmTBnPl59MtrGItx8XRrj+o84DfOr/P9/+fvTF31E90HGTBf5vL/3d+9LOs2yTFsxHj9ATEDPSvDWjaJJ4u8tWeOeNY9YDtVQw3f/xIxcmVVWaEfKqJDGyYDjhj1pxXTAzKk6Y//Q//4XD6F3/OCQAnEzyfYJABsEZMzQ9bq1vltB2N2ho/Mqpcg079xVvsGVPmfeh9Dl8ScbSN0rbGwGyOKLvijZwckZiXcJFloodg22bzmEZLI6V0dyhsS2HSaGxtviIAiD22yO3SSG8fY/RnAe0b/7IRDqwcM9ua1Qjlkh+7S1CycSBvnjUqZ8b76E0OlhcwNe26530Mrjl0I6XjWvqMfWu2xzY18tAJ0Bpqc4IGffvpnAlTH9CFdcy1deW0g368VNm5jQNTJdYdpth5Je2S+EQ9pe9jRz/zC7mPTnzw196uPg747qFf012ObomPrjSd/4QbncXmYH16+yC0LTOLl2PBgT9jwuHz2Jsr6bg9tBor7fYoYtDsjnWUoqteVwNcbBwA+4DTgrAHj4IOMnQ6GNpeC1yxaFtHJioH5p5QURpY1DyRUL4FY/lpu7SgTD13VdJRXgsegvYrksnX5NzBUz5chWbLhxXwxKaDyJohxCZPkCTrBAt8OQ5CvMRltj3mXXGTbE+aZrosBSfH5WHAI4u34Walc8LtP9TM+0gIVNumPhpPf8sVAzfExVpaCEMrVu2yMCi3Y9dFVWTNJk95iVIQsHShlOaiwn7GmrSyRbnkVj4FOC44yOtnmz4LYNMX7UfIPuCd9GsvvXx46V/+2vzoj/piM45cyuYrdCK0nOPFHFij4PxgIqeEO3UySU5oe6DyIDsZG9rxM/UV/D5wuOiq20GZ8m/96V8u//uVOp8iKKAP6/Xy/zV/+te7/+/fDzsd7ffCB5KgTU8mwnR+8Oe3BBoLxWEn6DslPJWNXUk3MdfhcL49QFuMfX/EA36IhRsVOqH5P/6X//nwpf/pfzj8CI8qvqm/zqmcEYsadupLga3zP2iFlcymlUj9UpU48sfkSigN7UK/7O8ZHxGd8+XL2ANpGoy6GCIiw74/Rabz8ks/0nLngV/RfcAWz/Z+LRwV8jcc59zSg6ityJBcGyc+c+4GsTGOnD5L0W6vK7bMx5KtVECZvaGbtvaS1UyWx57MnQurtJ2LlY70ZVQfHOl6PWvAyGZLP3nppi9liis/zL8VX+obR3ulCjMXqltDOmXrI9vcZj5HLhr7Pqb7cUTDR7zBtZmBkbaBf4Nb4312T8vNV+OfVHiXrwFeHC4+GOCTqh+45Yj5J9n6RkC/T2nSeB/wXRL3NP0ftsd9h5wdUp9MT66OW50sLSbFrnc6iL4ptn7sSAgMOAelrLCto9c7GyWDQ2cPgjDkw2SrdNBOc/ZOEmtr0AsyFpBSEKUGs++sJNS2lL98UdeDpF8VHbDk0nCiHOUEdBvdy7qk4/KKuD6twb/pmhyFyrnTV6I5kDF25sTG+gibk6P9iCsf0WOVl7LiOgTdA8ZgUipn3gcugU7ioEjrILFycSkCTwB0fTc2BxmBjxKDG2hCAi0b5lRd5eWplODoHGlKbbkROSKoqrF1oMuq/oS14MybDPAsHcNv8U712hd/q6+/3ecxoL7rFUMzjk/jmK/9aVs9/uBlDf2Wug62xIzE/OofEIpA2ZuShuHr6BNAnhclBqMrBZRp4cfXf/u3D5+4ecEP6nBJvZNAZPnq3xv4ecvL/3wWXzryNY+gzb0K47+2eOmNtonH8PSz2Kj5ccL4Rb0KfOPHsVTNHxWfY7DAOhnwRklvUnyH57D/r//df3t493//3w6/+qmXDz/0zK3DuUZ6p6hN87I0maZTZz+wwzCh2lRuWNScC1soVnkvBhwaaWCSUWn5uzI/GoO3rIdnFBMYZSDueNUPcMVTwFxZS8ZalSmIr5Y7fG/uUM6bFGiS5dFns8YhE5BG1lK/dAtqB52SNrMsSq50GoZq66B+7XyFMWJWo+cqO3202HboD/1sk7ZPbOifAs22DLfRrVasjhNe9p/2DSF58aALYP/JO9pXWzyxxq6sSFGtQ2mNJU/2n8rFPrzRVsUae4PBeG1Ja3vC9U38LqXjpTHzFB+4R17+v0p+j3sArrIL5yrh+6l7y8zHtT3hqEGRbDN/tEdC1sg4kt6zYuLqpMWd9jTqePLnYFj9DQMz/ZPXOlYzEEyzCwNK/s1gtIP3ATH2ADtQVbNUVo3d4zbZegfT6KTe4FQfeQeXsg5MdQtTARdj2vjQVQYoM/hGVl8bC9lBXrKG9h76qI+cUc/AXBJrHGUzNfgosMcV/ZCIFtCLOsh+R1pfM6YcL7HqHejlQVXytGyUQ/0RodgvJ9LlAjr2s+pE69pt3ozDmpGZneU1+GGmhL312fvYc1KPfv57shCAGlT0Oz1kYoz9Y1VVY69vkMWuvLCpZ3lBTKGVsdchF+FUgRkIrQ5/crA8V7mYcsbdxOkKBu8hB7HXnnnm8MKv/Zt+ACiUlVe9cDTmE7L5RN67VI5RD9Zz0jYxa4bn5UXPDjqOqdbFxqEEcq/h9vDKAS7SJ514GAMKp7yrvs9P/z78kz8+PH/9xsHFYefqATcYvvPpHzq88tnPHXxoyfGkIXh8zi9t67OWKHHO2xrc8nP3nXlgU3aEiYDY/BaAPzN8Qr8ar3nwZMNx85CvS/pxAk9OO/zFH/z+4f/8H//7w0+B+vM/9OnDp2+eH26iN2NAYHFtYbWSdoY2jxZO1nf6a321y+qijZZgyk4pTH7bXJN+j42A4PMf9oxZ5RBOPsYIjFD02HaYQuoni0VLttY7iM3RHBj65I8RQmXGoXMshSVANOrB3f04fqxRTeDZSl8V2qQss3WRPvHSkNVjncbiD7525GpHObcIdfx8nRgSOq1D8cDUkND44ZjVq9aa8WDlGYFyI+ao2F/VGuTUHFxsV/txjC1s8IyzNTch8uTQQMfMzVw1F0Yw1EyEuXMLb1jL3siOHBgfYjNeN0tOhGv4c8A+3fMHvX2cJwDfMxYSvrru/UWvHvy3ZEmcUVciozdQSSoptTq9bn13kLmeQVrWj3JWtvz/R9ybPtua3Xd9z516Uner1VJLspAnPGAMAccYqBACIVQgybvk70nep4oMBFK8TqooqKIqeUUSCCCMMcFTCGDsYFu2ZDS5NbR6utO595ybz+fzW2ufc6+uZCF3K+ucvZ+1fsP3N6zhGfaznx1nYSzZ1Bk0M1vG1AboAAHSnsDMQAfylNEPe/kaVHtgbdJiMwcFuqCmOg7YarNVBkA4/FWpbXzJsWA2wBdvDjgGTUbx42d2NNvEGX6I2RrlPn/WL3tGnynZ5i3v6jF3KK0A8RNr544MdsrTqEKgAlx+093d92lb+j4etL7h9FddfNhnr2rPgZEog7edamd46l/VUkYMR1d+F2DNUz9hc3JtLNpCfL/tZNq2Lo8/YzHuWbAi95Za+aJpLMr6cmzYDo8tMhd8Tn2Xs/+LP/9neQgQO9w7d/tJX8900sLnzuZp9Dl7SO4MUx8edYNRzs/AvZVuX4o3r537Qj/dS8COc0WYP80dY6HPlJXrDtjL/V/i7v9X3uXhPx95lXGCw5yB+1ntvfOz48Jn/3Pm7sN/fAKhGSyf1PU1K44tnPV+Jr/u58cFbs2BacDEyZc+JlCYxHsAUQx6ZEwIexDgVxX9sSF+NQ3l4/jHf/NvHJ/7W3/j+JMf/tDxI6+8erwK/VnkPdZJABn3gsW7abS0qvG6Yo+RRctvbSU3PirbTqm4Jvuzox0cfekC5pLTejY0ZZD6kS9D7uoGvDHtYAHzJLN6Qf8SX+9i29Zpt47n5jp0ROJGozEiM0h2QzwxlNGcc0JR2s6TsQIvrA0hFeHWs6yGKcQUfafh3C0Y8QSnn22f9ITFzlofU8eXygnL1ho3+qm/YjUXsIPRPdfUbEcPe+cjrAWpL/Wf2PrmOII3fQpvuS1lkpA21YRqTDiMnVMc8pBfNhJ1HYUkypTFpNG82uRvsn1ShvZcAQB8Pga41k8CP/AHN74L5f08AHjkDQz8nvFTC18gYnGYo58tMJ19Gfdu7+2We2xrZ9RJuyMc3HSG46cFWGkHUpsZEA4WCGnQmy4W8eOO4AymVV+6KTCS9g7bkdCg0QfNOA8A6khzL/4ykNOafg6U9rauE4CdSgunVjeYgOio4YKmYhR9dxbwn1GI1neAS3/7oWh16HnRWeHQVJzcBq05YkDBsg1ax1cEsbe8z/zk4USLj9peGNTRP2O26gRUxvsGIOiubI0WDnwPZqROXObFEojzmeIi4xa5QM1PrUvZRT+hL4HJK7bJNbuWpaQTCAzogtSHBcqmnImRf6IsH/THxWBBLC2g1DAGBJRBd1xCk9y7M3vz1nPHK3/2P3L8j3lByPv0BUrudMnj/lYAKEG5tXu05c5Tfp/r0+7BM3IMxxizPbHpfn6kt/KrnzlvPsZ7bxJ8/Rd//vghLv/77H+vDijiTYrv8Jn/B/7oT1KHIDYrh3r2pTv/+aEeaLRF89J98eSwGYEqo1zvMeY3APQOrpf+G1fEhA3rrIh8O+LhcZNf97v3zp3jf/tL//Xx/L/+V8ef+/jHju9/+WV+9pfFkpx6yC3GbFS0rb3xgcbMD2zvg98CG6+mDxQqHyKVMSkVohyasLsnsDtTxH6bMWEo6W5XwBNSHb2chgTx3fIyH+SztMSyLZ1/264jFbZVtWt9C1BPmTZlThwSpGEeobsYZkMdhZTUU4nqT0vYvTM34vwF+2RqAlYZQXSNCVoHr8qJy5Zaf5rSRP6pK98+oZ6M/tnRbuVBnXsV1Fz2x9nRNZYOMNhqV1saXbrRDEkzYlnRPqU1RlFt8Tc+yBlpIaaPWCOEj+zbwE+t5thM7yp1eN/qXdvNuRHCfazwOYXXxiUxhx5xQyAhnV+7dY3f0PlWYO8R7/08APimLp49uMPPAr7EU8U8xXi81EFlf+hPth+TNqEg1Hnp7A6zkyn2pNzSuzXXTgCWgydWYmvAqFl7K7mFcBoVytmRQw61BjWPXBnQg6rODKREfaM08DVRnyuzFiwHtwrG47xKmrYTRnzkW9jjWB+e9IkzcOqbDkLzU13IsfHdjIeFl9D3gp2edGIQPQ0Wb88CnTCR2l7a07SlBTD/dzvgsEdPNFGLfkhbWX/QHV+oL9P7sub2ZujmIvfXwrh3mjqh7upbXdTedlu7KGrylPcO0BZdVR0QJByrICAj3YOa04LROENo9ZdaaOdezmUX3QISd9lEcM6kuYHuP/wzx00+Arh7l7N/8ByHnUFry1zohopXdgRe/nahhZqPnjGfczbeZXNJ1FtMe4w4cuCajezLX4q6bVWbrj/K+JhefyPgIb/6d/6r/6pn/68r9+XLff6dj3/P8fEf/uHjjN8s6CgEvTn4YFQCyrEMW+OebHTpnisTfg7rIYZueWnf/PMkUHukWD1eNCoPGMRzAvRtBePh7wY7/8/8y39x/Mx/85eOH+ZgwEv+n/CGP66kOB9WNyYLTMUNsCa+ivWdZ8k6GX8ruFWp/lZg9JIDY8Gmc8K2LxTzVRDmU2xp9qGS0i71ww1tCYq4+sHtpY/qNzEc0lNSUZ5/MG02ZsmnY0VxLTUG6lUFeOXHVANSf/ng2IjjVufbCgS+fbEGi7iNR8enQioa/MbOjkgCyMKPkiOuFDD5hwr08FS1Xp6qC6f/oLhNcWTzJ5tiibNgyxENjyH0F1uGoW9tqUprLi5+ben2mbILrX0BydZ+a6DbZTOx6tRYDyf/euHLzWR0Gt/4PmPhcfqm+REAz9k87h6eEn/3i3uf97H8ygn7zjWeLfpYOXMBIw8zCHZCHhO50ng6306no8CYAamCOyzL7pxpOTh9uQjHY0Aq2FEw73X2njjyGESdqSokVjbWFr5YFdl7tGVqDyLJyjiI2cJrmDg4GbFLGzPykPFYSLvutBe3gSs7fP0Jbt4uAWivwoQYskCUFDKsCQr04gBr5y3/scFkn0m7zwhHz9hKWXi+SQfMf0HDXZsmmfGba0VlGtuOQeKVIs7y41Je4cEt/sRtD1Y8hW2GO3iuN/btzp0p2/lTwnYLRT6pLkG6BxHWzU0kFatc88NyeTseBOpDRKez5PEy7vLCJkeGLGDykjHuj+y8xYM/X+HBPw/5GMDSBMSH8U9pI+Dz8MX0DHmHro18pa904YZXADB/vZj0FW12YvJ6x60+43chLyG4SnWuNnmCPXPFp/uheHzhV3/l+BCX/19kp+uHAy52F49uHPcueN7/j89P/z7gscXCdae+l+rBdR0+PXEQ237Loci8fwNos1NeqM0VGPjoGo+ifohhCn0oms8FuPAbBuTJJPzsX//rxz/9r/7L44/zPII/+T0fPb6XqxN93Q9/yx2IWitJU5k278W5eM1B63pjvpJl45ZmKIyf1gfaCSxeO0Npqq3+Td+Oqe8Vp56MMYKGrqKj43w3F3IsI1tryUitG3nzoMlVwgOSvT7sE4UOShMWBRzs69PoGrN2GE90tLReS76OQkdszfamk/wbyqxXjiN4JtetPovfn800h1k1oQwNS8mFgSuXBbryilt0LIXJVQ5Ix16x6NC2ZUi+0lNXYJ1evrCt5ny1yLJf3FnbbMduHCEkO77Al5TQ5HEI5A9asWpDYfOpEd4aA7TNpLqqfydFfx7yE5ccyj8G8fi+8v/+TqC/bZ3/H64A3OM7vK88Ojjs4fNEjwB+V2eVOR0Z1guqTPKn8+yMNWk2nHLuEFlUOkJvQDtQENCmnTlvdKhKEPyX7WkFY2x2iBLQkscrVbYzGtguwiDIUH4N0OrKurBAV1+ak1ZRi+JMmNoObFfoxbsUge4gl8ALlfzctm00SXVS3/eOMGzeIKe7FC9jMCnkreA2tsNaW2vCqCuAumIrJhgg6Q2BHGtnybk1BeVcHV5uoKeD7v5mweQ+pgLojG43/+mXL8oeA6e5L3ixomvO7Of2RPUwdeOg+Ca8BawWOdonHovEnHWP4BxsIZBdBZNUmT8zAT52G1MNEoO0MNaMzyq6nQVVpS4c/vG7GMfZn/4zx8svvXzcvcNVMD87984flPZB4XgPmkpQTauxaX1GFTVVMNtiTx46lDB2cFz/y6FjAAy/STCxsEGAn9/sowjlTDVEgUC5wU///iKX/589nrnF43SzL8u7/x9y9/9Pdjk+lfoXHM7SNWpOe94/tuRn14mkL3mujIstXHDNX1lzjOkeWn3cwP0CfZzAjX5ff/314+/+d3/pePkzv3X8uU987Pg+cvYSBwE3kxUGLG1okU3jQ1BzL1VHLHtcUm0OelVLHxBqjEO314rX/lMPp4Yv0/5TAnKeao9asmPELPux3Nglmiq8uRWIMpK2d2PJGcfyW6HJ0RITIgxlSuYoa1+fF+jEpQ2EJcanKjY0MRKtDUl7DoCTvmoagz5vvY+2scPQPATH3RJhu/KgmgJBTFz5F0EUXjqhfZvQ2wwnOM3PurKJEOLYHnkpeyxH275MwsHEB92w7Zxxp718FGqZHlh054RBzBUcEpNZ2rqKv9lsEl7moTD0qQ5IQs++abF/6qOnSPAwqwde+ueSONw3ebn97pXv+gHAg4I9Dh978PCMDxen0E+TyEnq4wm4SlPuso0OEzoaE9BBUc+tjXX//HcIre6kMbRZfaTCuzKY0tEFJ51HlWvH52jIRLJI2dAWAygdYN0ZDbydroxA8Pds1RcFdrxiOWj1QroN0PxXRLX9mX8Eia7cG08XlpxKcNiIATCM4oKKCO9zJqJMOmxTwK786vqSzfE9uSVcPAoKjf1saWPrC6HskhFyhLJIQ3CUbVLdISiW0s5ne7fQly/YmOYSpY2RcWvFZkPHmqzUXQD0TWPgyg2eytIYLN5HToHJ2SRdtlq8Sgi8/AcxWzT9fNtUC4xtfbSWq1ZW0fo5N869jcBLf+4v9NU/R8x1xle5g+4aNJf5R3+sAUIc428WQILjzhRsb+IbW6svbOmE/Y+PnmT3xRvjJzZv8pv94dh2H+DjdW/6cyTcm3DODYD+9O/NDkrAwfb5g4vj7kc+erz2Qz90POAAhtP0sLNojvFjZRm746Pedb2PdjODLXc65pdzZnQgYb95Af/cX0Hk633eS/DLP/PTxy/9tb96/NgzN48f/30f55L/M8dzxNpvBWRv+j8A87FKeHoDXot/cVPH4PbUvmz+2WfaV9f5Xd9DkGIzECpSxLlCK94IzCcSOrlgKw1/9rjLZgYgO4Yq4psh+85+UU++NkC6IqYvgzE5Uy7ZTddRafxNLsZCmOLYv2xOfgBeOz/VUb4emirvEzfkLdNYQrZu11eB1U25mKFG3zf8Oce7B2ZERlY1O2jPf/UXTDHHNx+RL9/CGMHWW4QVrR+TXXkzApXtS/OoqQSFMn8Ky0NXGdb1YdMXzrHWDYGXknJpqWd1ATr9BKFpLPb1tyqNhdUCHj3VAABAAElEQVSpT5N9eHb2DhMVtIfHg7mU963g3nPed/UA4B4j5AMrBB97yNO8+CXUSeBpBwn/Sdpuq3pVznadFwOcBlW9JWWK/Wan2WH2ZLOIbXbdIUJiQMyCsWR2nzaCBFiDbkZC7apo9xXCQLSvPngLvn7PJ4grTn1oIC+sFi3XsPgq2tAmGwsgxr/GEAQGrkoWicSTd9m59GECuwLjap9taKptAzWaHpiFgW137g3wNOZtJIan1GmxWzLSLiGRNg58Cn5PPGO2rh/FrIqy+sR2nclL8z87wlbH4xGctbqcCDJlxggY+N4iZZ+hJ8rEW9XW0NSHceIly9sY0yGVZ7vs1hd7wZfd3vSKDNXGmWHq/Wp4Qf+MM+l7P/FTx0uvvXbcv3uHr9ypjgz29L11K7yh1cP5aA5nsfJMM2TcrKu4cpibqpg/3cfmtXPkSY037E2etcHZusLutFfdbuakO9te/n/lrTfn7v/tFwL3+Kji/A/+IeyyRPG0wmvspPMDW33e3Jmk84gYcOocJ7rpH/m9pmImvr6X3voIP/WbsexX/G5x0+FDPiL5P/7Hv3rc/sc/ffzpV185fv+HPnR8CHt+v38/4Mf5/siDCQ9SGGNil2rogeMXxrTEll4wKbwk1yelUJ700S0ve8CnHuoaP8rQHlL1GftYKEAZYIVL3T6rMyWP3sxxbQojjXftWyKjI/mUMBrh9ZbQ7HjTEGSwV7M+F8dxsua5fjQnBF79eQqINhazOZ009gPWpGUGzvKXtnFJ1++p2NL9YDWxczA38smZNeAkry8F3GgZBcVWLsK46mvyauAU9ZP9ZXSv6UtsoIHLEYnmIKXJdxE4P9DXg2HxXpptIUf+2qeoy98kyfw47tg68RpTqDE2MzpIGn5qUa++WNxVZwg8Os7unr3JY/J31o/7fpbWJb2nQr3nxO/qAQC3EhEACwhHPGd8zscvjt0rolMPfuv49s7fxFVne1x/Zik1KqZur9thdaCdZje5KCJTHZqSdGTb3c/Kp5umwwGhWdyCsuOlSbbLPHJscDrQh7XHPK0WiEJbvHwYZxJe1hFEIEdSwoUZsJ6xO0F33LnnWSN/oyLwcllD+mTc2iBWIYNVWCzKSS/HovC28FZ8Lk77wKYdC/ztXhrakQZkKgUvaeWNHLYoGYeiW1s+2JnWpdznTUJ5V5b4OhCwrgAYS0E0xSzlJj+hIjbql3E0ybKPPf1JR8GpTTrkrTb8vLdPW4iha6sdzsqlopNGKpQrumrv/I8iSdIuZC+jv8kZ7ot/4T9pJ+dNcN50V9/WTxjSDhO/UIGeWHlXjEXJS+Su7V0lIGDEO1bUnXLilSpoc1DjGGG8I1eeoiPHX7nKdTHcgULj7Pr1X/r54we5/P+cT9NrkcMuBxDvMk+f/4k/1jcWNKp8l041bJ66CmGQ/M9JvlVkwEd+PspYbYMpIQjgk18R9KyfBfD4zC//8vGP/vJ/f3zvnXeOP8FZ/ydfeJ4f9/GKAHcIgPuIgxoPXLxh0UQZizmolABqGiZP7jDmANT20E+i5TtBGJa8ZYNEsuaMyukg2+r0g6LlMD6NOisi6pPbQIa0sLeueaOejQz3tse2acnuMm0U28yWtu/KH4zxw/Zw56DdiakBN24FQ2APEpphxIaeUbcQUs1qQi4hozcwvFc6CF829FcrpU4Mc99WSPsaEvneVw7LbANQPQzoYwBCz5htsZYuqGBiyF4O7fXoav/kO4NheOq4ZotHsckrW2J1RVdMGwroywiZ02i45vlLnH1ABW9Siox8Y33m2fDTEeqJ0hr0BO3J5oN79949ztkfnhjuI+2w7055Pw8AeIyhGf3GcnZ2+zi7ef36/bu3760kdTS0JU87vE14ylY9O+6cnyutbEsMnDkitsOor8WsMwFloLXo1/mzc58xCVNeYGtQWGfgRbVPWvDAVLTQkL4c/Wk2GB0sIjkHkh1WOrRbQDGqrSYu247wFd4LKr7MyB3dDbTmzwxGxPVEnJENcXDXIHWi5Y2yDmptKJEt9eYVho0mz4jMpNNrEIxTvf6H9tgkXDjjWGLjMgvA+KYplMsXUJawTNLIR8tv7S1R2s2HlefxQxUXeWJfgisLQp5sFKt7ifAFNgFsjJ3/SgrWQCg3CktcSyw7ghEhj+pokz8fg6zpyohPEJumlnT68+zh2XGPJ+i99snvPe5x9u/O3x2j7oxPKPE/Xe7S2UjhHQDk+s49xtyhTizySxRtjawDBJ0BpK/kiQdSsSKilL4IsA8OvEJw88Ytbkjklwh/5ZePD/rsfyWMjZ31Q27+u83jil/74R89HnQam/kwROkrZrT0SQv1zbiIKWPk64H5oFtzALPntg9Dusm9Bo6hT/3P/9Px+f/1fzl+8lW+2/+Jjx8f8ZI/9vXW2C4eMM/Z6dsTDz7ykeMRv0Z4/c7t49lf+gX8J1t2TJ0zmw560Gxn5c67MQJBQOdwyRj+5RmdGDLIrZvE1o4Evb3zrk/WmKz/tUtsA8k7TQfGpuRXTHvVooAv+8Y8S7NQaa6oydiQDvZqMRW1gyPJSxdFnMyNmYj7Kh2asjGwx/u0xVnaVk2KeQkK3O3QiChgF8DWEwMXV2GVbFO0oQRNXTTH4WhQG2G7nbZxSrLdVgwNhVuDt8VpQ0yrH2f+Q0xc56hiYHJJ2/W+kcJWw/rEW/2nsAcK/BmN9vaJipSTTWodbyivpD5YzE06g3nx8gch5mDsp731TI8nGOZGLfvl/P6D+37qzydvh18E4GMuzr2uP3r30ZkOve/l/TwAuOL8l6l/tPYDAvR7j374f+8dvgdFKSEkYw8+E/MkTbkGshVKsshdfPCV6YLHOmd1JlmWbKfZZRUGaPhrAAwR7klGpaGuYZJ6OI1uqMIhdDmQaLpAuvN0ElfkIrWwZqFnIKLXggQvCefQWthzaU+elGPq8PjkqoDxBu+efNqCvlg01mA/GVYafeN2Eu15C9Re1GRPLPjvyNesRXP6b9utL4UpU+VdgfyDLr6cJh41tmNz8VQteXgEZn0okHLw0l3vEprs5VPMlTvj0wEDUreFcTtscBTF1zbgNMzR5G4vZAOUJNIbAzlt96eTk7B91lufySfWwikeZGikVbsGMTI+r/HZP5+vP/cfc/bv5XS/+9+H8+7o50Bg8gQyuTSdnt8K45j0auB1Y3dsRcOO8XX0wJa6lyw9m1ZG7Qt2vn7e78N9Jqf6NjlWoe/cz2k1UV/w8B9++IfL/y/x8B/1tC3mfTC9/O+O/vwuD//pwGUd+CTDG8VIzN/Y10lobsjd7q0O1sThMv8N/LvFNw1e/+3PHP/gr/wPx4f4Jb8//8lPHN/74geOF5HxRj+/Eqj/Zx/84PHw+37gOH70x44bP/oHjluf+GTfEPjSX/5vjw9zEPEiVwBn7uKCeXEHUACTy+qwZju9qnP+TW5wlP9d9NsyBzPIcMYoqTnrEDE2NRsujo8VrJ3iWJ0OQZC683JU2m6/IMEb3fKkjD6FMUYaRgWkLDhDSG5s6MrEms9Up0DdRjeJrZ4Ir047SxvqS6e+aoNvi/89D8qVcemyXa2wEWmHV+m2OmprO3FMlmUseXMkzrJhHsqB45LK0AVeJfnxL3ubLsbGhJbEdkDTjKMBViGHZ4s9ZbUgtXm8EmafzxqxRB/zZ/yboMXmIzHujbm0gc4qxvGtSvwV773bd97l6ZePvAKw748b3a+x4RT6fS7v5wFAWfj8zZuPPnk1CC76X3/m+qN3GHWv3r9zxmJ0wVd+HFbkhSXQgTYNOnh3XKTT24lOZz589TU0kasT3dT7e387vexgsOiRndqZEPUGIsSsL7sOCy77aLqFBdyOksVtwC0s1FskVl/nAqvCLEAyL/kzecFBdrSdUtQ1ou0coS6/OOLKgKQvDj4aKvOaGB2sNmWAXa4E4EzDFODv8KmPUupGs20IV1jSysFMjgTzAwEW4rlKof9qUFLcDmFM+m5aWfXsW3dnich28cSnshfvkDf+mkDlzYMKPyIDpxjFCd83SqbVdlpTJKPvvjCKudiJX7ijtONCKgzFUOa1zyDHT2kmZ+LMhpbAHHwpyLBQpd8OKJhumPOjrts/+uPcRPcjx/17DH4Sbe+PK2ucdfleGhh2RD6IKvbasWYSO6ftjAk/c5+FC2/scwQcM36EYwmzra3lKwF7k5Zn6N5X77P/v/85Hv7j3f+IqOMd/rf52OK5P/IT/QqgPl8iMMaCGpo+6oOpHhl9U0P8idcDH68K3Lh+M/rP/q2/dfzG3/zrxx9+6cXjD3zsteOj2H8Gn89feum494lPHI+46nDjR//gcev7vv+4BS885qUHBV/mfoUv/JN/fHzoVc7AsmNS+K+OT6UJb4rFXhpauchvvCSAbuCbgCXQh2uupTgxqFus6lE3YueP80axE5w7KpnmHurQpzekp+5blbVVPp3ZxAp3ZZt8GNOo8G7/4kzx5NQoV+1AGDyl0VkTewEXRfTmoWKU4kC+noMxawhijqnSp2XqmfENnObj2NBMOm7RV+K0A7VBaa0RRl3XRx2oOQLNtVmwkNi2qZVPnaCuA4qfYl7gBbPrgk6nNPftIB10gTUe2YLs+QUvTXni2NimFMNWOr4lKFu50bt4jvt6Pvo9l0xqTxbH25PlSdr9O3fuuPN/9JCjbT8Qx4QPA7pF4j7LvvPDTwK8x+338wDgMVfv37x98fK1F8veg9tnx/WXbj16ePcBHwHUa7NaPaZhrieBe2A+wa5f7n/0Y3wWw0ThF8Jmgk+PNaZcS/k7DboFEG0t1LtzYzFoxtaVXpcRGLQmWaNj1cF3oEhSTndtWKpD7Z832u1IE5Q/vNOEUgCsUwz7yFd5J52YgbpV90pcjnjlk4VNPVx9acKxNd404WXKti+zEdzAmzPiPH3zwEmbRMlM/iRoC/xZSGhYApvqLMhgY2b6YGzpwKlPkfdsMz3edqQqtUMlBm1Y8mPju62og28uvNpxh9MWaeO4mgu4/o+afqu24pdhYjpY1Cl4Ckyyyt94t+zMWoPMcqT8rvrKu0/68wd0nvkLf7Ezf++idwcvu68eaoLXNmXsejM5YAvz8YMRCSkn11fnzNPyJb3GzeRg0kpuVEMvW6jjAWGxc+Ys3IPdB1wBeIVrkN6E7LrZGT++3+YS56s/8gfwPaJa5HYuzU/WQhJ8bBBLdQNCeu/8zWHfNEDs137xF46f+Wt/5fjYu+8c/8GHXz0++b3fe7zwfT9wPPyRHz0ODpJu8THJ8y++iAoWeHkJ9QEPKOpjCq6g3Lj5zPHr/+D/PL6HmwafucnF08fmrBFqWT/JRn6YHMcHjRLg25Ud0Wn50Z7ukydtq4+kxMa4+gtC8unjD+sJ9jYyVk+y06fpMEb6CulA5WdODUC2apvuMPSdSo6xoVpMMsGIN8CF2BUYZLV46gfbYi2H7PetN2uNQAkMpjYQCZ53OXs+lbdxIP7SWtgr362RcARYaSeDNHQJz5a5dGl0wCBtjCw9CMktnMVTV73Jg7XlqDv1nJZmv6lMYQJ0tWNaDBV4+kQZu4OfKek7NZLXSWDG9BP2GhHhn7/4zHH+GlcAzt8W7lTM6TcrV3nkQmePu2/x4A2v/fd9uPs8BvjWo7evv/3ou7Vjfv/tfPo43vjY9UevrqycMcOev3Z+ce/s0bU3f+fL77BI3uVRny/t5MygJNWTn6fmcsvIPOd54OevPHtc//K6eaK0Tne5A3D0j7zSMzTaGTFg9iJxObCmi9OuHy873prcQXYAzeARldbYcYcjOR/GWnpzOhpP2bGnkJiOOqtij42aM8rHZp83L3tOQAdkO31tiLNGbvHKh9rkQy75kWr1EDeeNrU0UVkt5WBHYUcicsFMJaz6xQBGORknlthjRfuwtw119cs2ZR8IFAMGF/QsbOnQLwqjEldo9VNeb9o3DrUVdScw0tCWH6SkvnDSV4G+cqFaBpBJ2nyGRh+oR6v+1bZ2xG8x2fIIu3fNr+WbWqd4qHNR6wGX/t/9wR8+XuMz6/v3eIAOZ8BaYm0Bd2zq5B77emUc3h8wLrujigh1Pi7Ib+NPIGc5ttMXOdCX//qtWGdd7ngCHz3lvPPeC29f4Kt/L7/xtePFj3z4uNG3BrAD3H2cfPhjP3Zc40ancz6py0SAaptTwambHrZscnTmWh25Rvbcu/DFz37m+Gd/+28f93/zN44/9VN//Pj+n/zJ4+Uf+P3H89/3fcfNF+a7Qep66f/+/fv497Cd/yBD5yDEg6e777x13P65nzs+zL0/t/Ijw9MXOKGfOtVGD/g3if7lLARzkf/V8LUrTOo0mJCDH08V6MbdGBeb+oRHw6SrP/zmmj6YlDoO+vYlh4hG3i5i0ZydDRa3mnxY407ZnhzjSzL0TX4ZLBgz/1QyR9KQg05tLl5ZH9Hsl4u4+H6amxpErx2fMdfMj6nr686PeABqwBQoqpBt3/SJbc22tHUc+khgJ0mk7J9VNk2fHjFXLuf9cNKi2tjWQke4WqmTc2Qsj7w42wsN5o/xVvQHPUKKvsnwTrErt+jGp/vJonT+geeOi+efP65zILuLOd/laZ/9bx5ydN+1a4zxiztvv3X73hmP/73OY/Guv3DxkM/+uT3u0Ru8bn72Jo/TXya38smjS8Lvpfb+HwAs7wzqxm1mygtDuH3+9o0bX7zx7vnZ2bvHc892ANCgWvI7mdKsX+UpEo3cnPNY0PMXXjhuXbtNquzU6YTdFQ0ax615dEBMD4KwJvaezXTwTNwl0ChIqzHQQIIlN9/kO+4chJY1BkcYmg4o78Cn0cD080Tk88mR76JCe8civXrxzshML6DBGx3qyJ4mgnwHNps5W5GtQ9rfI1yeFN7yTb/gd+SMjCW+GyrFg4yYwz3F0qoSHU7xzeI8NpeOMWxFY+Svz1Nj80aZd320YR5mAeurTDJdcLzrm/qGMoi6WbzVB/VNIaxsJTwdEu+krNUpIzlnsC2miHd2hrE5kxpfFmIOzNgBjJzmqx8llVSdRd6FlxqetZC+zdn/rb/4n/bZvz+g00HEuLW8MLBxbuvdMJ+tinmOnP7A1QRF7KniGQ5Zv1wohZMCr3GJTyqNQr6V28YgQ4/tl9iZ/iBz6DnOqCex7Fy4497L/89y9z8PKmFocbXABVkn7Sf/sFP+3dpeNjI3ISGDHvLnnLk/Yof+7//n/8Xx2g/8AL+BxJMG+R7kyn6/Lni5wxd9gTGmvQvC8P0IwZ8B/s2f+7+O1+7f4WFKr3GDofFpfeRP4w2K/5Knz5C6kkMPJEo7MhMDsso76IXy5UETgGIGFXgKCkY89cWWWVsOV+gT9YFS2XyfdjwK6fUaCM1bDYK2PgrqgAKJ01yGq4ROtx7iv1H3XyDywAxm6NV523Z1Ix2R/EfPP0tnxhIpO1/mQujBjMObhKmnWxyThZF1EvWPnpXJgbkMh1j7+HXN88zLWDHUR6g578eMDcscOC/TiC+6KQQEMyse/RVv6PnSWIew/UHXqj1Q2TkfkHSrwsfN/PaExNwZ00Dz8dmzL5Bb79AZnO3T3u791hj5xvfh8/Ttt9/h7poHzYGk2I09fN4dw3envNcHANtx87TrRfLwjYtr589wpMMlDo7u+F2Ui0dn777LvD6/N51mrzym8m1l4Jp3Bz/nJcOv1UkqNSRZRGcxhFA+7XJsOCipjSlt6uqUqflORyOXDC6dbiy6ItgA2gNC/H3GjMy+D0FzjahSgd12tgLyWoP48c8hhyW/gYR+Piir36lOnerCVshJsGPKe0jsnKQ72UYRLO2idorZCSuok0JEsYxsaB1UDCm5znDWZEh0AkTHHeFyxx3xji2slcttBzYKvfuW3+giNW6JA7s+WjNQUpjE1CRcWArmtiph5Dm0GoIg4SphPLPZ+W4n4ILUH4KmCxFn/emyu3xiOPmCWEJuVRgDvEPAkRa9JXKfHd673/eDx2s/8e/yvX9vfBGnTT67qHiLnPkOFFsi+jYX2YFEQftKqJsoLdMtof5Ebz5CyXvMJImuAktQndrqsJhqix2w3+t/+K/+xfHKc9z9v85ifdCPD/95l8vwr/7YH/Rx3enoxU57df3B0/ELCuaXifKvzCybHASww/8kN/D540UeSHg5/5E/KQyGvVP+3ApmPH7NT/fFhGTxQMIx+pV/9A+Pn3j+A8dz+D8R6wdly6I4/rH1gNuxHV+BvF3Yg6xt5ROKRJxh0KgN39wY/CDlo/0003l29rPD0xCypl3x9Gc7ViSMreltqFtGscbtJW3623wgRL/tHWS2Ypo9WPmGTM1lOJpcdd1SoEluPXO9Wra3HQXnoGN6xDVkDsoJaM/F4FRcdtxKy/eq1KUlWI7G9mTa/i3f9YUwC4vtkOxnA9GXbQUd5ZZJ62p5IK5Qc9StJOm92xJ+crS5Yw5s/sxb+cjw0oYwB0dsT4CDGiE3eHuWG/T4eu8IZer0Vn+dWt+8cv7gwbtf/zeff/MO5/7cCHdxj4cB3TS4t9B5/+//yzGH6vtebt2Y3wG4d+0ua9X1R7cf3H7EvVHsM5/hWYAP+Azk8XI1gbu+t1cl6xY64YLO2Au9tD1AZmDbyQ4SBoIE6wiJV787cAKSRV391U7A8eMCsMeHAwQcB5CTuCNsFGacpd34EyL80yha2AINYw0+BC2S3Toilzks1R5bIaI6i65OzhmgXehEUBkNw+SAZOs0GcVxdWhxRXD+2Yg/vpdf/QpH2Zkcog4xRvKRShL65sLg1TVWxVaOyg0s/ZqkKrMhqKM3ubY+Ysa0cSQZh8U4kqVp/05udk4TjK7GqR9HcZjmtQPBaXodfnIjoDnQMXnkUkPzn3ALr37lPBtt5Aw1Y5WewmCQ5uM2O9Gbf/E/6+z/AWfAQZKjvhfvIoh9HwTk99ofcXnbOL2hz0uw5tOb8KTZ7rkg9hOvehaa+fZ5AupYD1c9dLTvWai6dnsfhVXRTfA4mzb2z//KvzxeefstHrHLR2joNG8I4T5f/3vIzv/6M89x9s6VC/3KfnBgT/HsnHPzeF4l0N+6W3+6bwA2djwQ8H4Isbwp0oMK/fW+J33xCsG59/BQ90eEHAN2V/lWl48r3AG+/ulPHy/81m92v4KPNC7tilmnON7sJv0wLd3UR12vG98y+4e29RsXag9Gusmttn7kzLStN0ZNcnYUsEw7A8rTzIdFTyo/YZCrrsSYLIdbwo6i8f8SC76h68/CCRqc5pz62zfNb781n0rEVDtIWHnSscb7RpW+eGNL35dNMePPdnxFkWJ8ndRYkZ0sDOWllSOcJN6d98aSS1a+Ktt/FS3GD2xEOonTX/zJxe2n/mnDgbtzFIncqr9z6XwW15e6NR0fUMx949YDHXgWbenbKd+7T0JMJF9uPc/Q5wBAyaW7txGfeLvK2x+zcNXr9rtffvPe/bOzaw+vPXjkVwDdR97siHMAvtlX6Z+A/46bk53vWP1bK/IzBiur/HroKSi++cfvHN564dbxwnPXHjy492DfRXGS/WaoV5M4MnSUC+ZN7xKG4sSy4ssdGNsWwdxAVpaThk527DQIGRodeUs3G+ra/6eXStJlMbSku9AoEliV5JuUMxpF7WUTA8lnQB1tqIaM4zAYSQ1o+aJLoE61JTSS9se27zN4lUfmSk8OFBJUrE8FAAe8gMr7FlMBZAlsZMHjX52Tfyj20YUC0M1XIbRdE666AryYlGGJsC/BabeiLbgm0jjVgxfNPAlcfqEKoohoqq+8TdKytGgKglOfq7Bi0V65ZCsYiS7+yAEqgT3tW1HX7fI/Hcni2xfQ5fvKF33Urtj9s/F7/xfH25/4fccrP/lT7fQ8+x9c7NAHxlvMwtS2VdoCrwVBE/Jd43zLHWk668cPHO3xnk7phGd81lvI1bPU5gFcK3/KWL788z/P3fc8+/+GX7xTaNa02+yMvfzvjwW1ABu0ucshFI3ZXOBcHhjf7rvlQ1c8lnyHBcqo6k4ffF9+Tur81K/y0g5DXL4xsPxBA2isEP9v/8ynjt/3gReOF/n837jdie7c658qq5vUyj9t6ls8/V4+SbNaTCUWORLXWWF5MyP2hA1eayPO7BwFpqhbaLzVz+iYGx3hXbWxr3947YHmKi2JxQxhbzOlEV46iIoYeaN/tE4IdfRwc8KqL8r0lRg2Ll8dlIum32vcV88QPmrTUlzY2u0GGtbFUoSXnpxyQduTj1PhY6RTaXwsXOXsK5uRLn2ZNvzyZ19NvT5ITxUTsjKggDbzibrt1de6zz/NXWFrvizFhGL+ap+xrbsqWOCPpO9Y33TGm/nQn0ccAHj1efj6OkJ7K8wuT6PJe3D/7N79B3fP/Vr8jQc66tcAHi9X96GPc96b1pVeem8An0B59OzxbJl5h9Hujx6c3bv+6Ppz8xyAZy9u8lMIZz0L4Am9U0Klm8CnJrGO56zHry/ZZfzP0VstG3QuxCadbtB5TRpqdbg0ZK6M6gYMMjOBUgknXW4WcuxO0bg2F75VKHMUXMhLDN9hND72IFHH0eak15YDytmjIL66eMwRr4NdmOGpZRFGKcss9Pql7tiaCa0gfHOXIO/WEStc43Ci0dYDhbuppvhAVyn9wZiFA1p2Vs5QTld1ymx4R2bLtygENjLtUKyKn9k1oVoANbjkrJin7bAY7QnVNT8n0WSC621hawCh/sRYce3ATuuC5rQp4AZVXjJbSePDOkuIB3FE2JYBmrP1IPAOP3Fxg8/+/c77A89sgdB8+0DzR2UWHGPn8I7L7o6bq2PXp/TNC0UQQvdzeOQ6o+Ys2mfjV3DS8WDTlFWw4zGC66XE+QlezqbJ83V+SveMryRe8NO/H2JnejMdMoWjnpHffvml44N8/98zcvHC1fn8ljCxulOemDywMifSsaFIQbtgxumKQFcJZHgw4xOHlm/G2Y58xTdzVH94+bAivjp47907x/1f/HkeEvQs9/sYofYmNuv1kzQx2ea37YSk6RT/6mTXnK26WxmOK3VRE0+JcIWxKLPHaW3e5CXrW5U6uzUF8fKQgNbgQ2huZ2+BNKbkT0mXnQ3CujQY25FlIzRF1IXWuhX+uDEJwJ6xspmXFauL0JpD2w7TUOThNU/F14cxEX/Ho/2uqiqiYv4pbZX2ynH6+ZfGCEwnjV75EGOVcEbW9wof5cyaZr8uP3MWbh0KjW0HByokwkg0lGKQSNltx1t6i5z7KyvUi2HF1FUlxQDrgG3pXdzipHNdyWq8DhRunLxelG++eXB29tbzN57nRiHOif047r6/CXAc7iuforVp376Bp4A8SWq6PEl8v9p3vRGwnrzPg0Bu8djRZx/cv3PPn0B6annqTv8bJFlkOIOp13ibHR458r9BAc0om7hsHYym2XYTbwOiwERo8pVq8zyDf0aO/Jbeoa/umPHqoiFhp9PBaOGdf1sNDG03QE7c0XNBRHePndlKU04Ma3skixU4wNgrLvxWTkYTma2jn7YTeXBUMj5xF0XdJv+YycSILQnjQaay9IVuZkmfSTOTX4Zt7fqCzWSdAy0auG+KRlUp44He6mJNBQoyydm0cloBJSjvZkdgw/bKiduhDN5uZ3Tk0gDXP9eSU26SQVs/Fc2UeLb0ddepWiStsvvU3aA7ubef4yz1D/87nP3z8RTqPVxHHvL8AgbuYl1YXm56w555zS+3jc1xZlKEfYUNkMpkQEw8TFcy9cYDkK4h5YkNO5M+Qw93jH7xX/6L41WepvcBfnBH/3KIHfAZi9rDH+NJezyN7yHfYph7BpafzQ9hTc6yPRFoapxzLOtHIjqm0xZomcFzth6IuFVNict8eDAgPxXi83PW4/jNn/lHx8e5b+BlvpWAxPgAA9QEx/4GcqsD5HFSOG4oalnY4s7OT9GFIx/H9MvXZdF/FOH5Z0l3ar2rccqDckHy5taG9vhTJmz9m0q4+aVwckY2soVifbSWDpgmcMm3XwxLdQE8mBm2mmLNf+Dje45oA15HcipQJsypw/KMvbP27EHWoV0fqXmXxqvx0Thk/bANtxMCTSMyb/pnTuHl39Bl66ce954A9Rjje8usbXm9tNBMQAUazfThtfbb2vKKjuXkdhyO2f2nxIiJRebShTKdlSsXz/oYYGN1o8CUq/VNe3KLDEsGB+UPHrzz4s3rZ+4LuyzO+106w6vl+2PzJ3Xf6/beY73XuFfwfuVKnTAJzhsezh+SWZ6BfPett760vjJRzh8Tfkrj8QSXfR4HzFcLnNRr0Ezn25xBoU59p7hd6/96Te9Kb4osjOnQOapG0AJpPu8yZeA6MKi149/974BYC3A+pOrgo4J/yaujrzSaKAOMqwUAQ56Kl3ajzUibOAXSjgsScu5kZwxiX97JkkaUXa94ix0Dpgorlsntsit/y6NSwzxKy1Uq+Dn2kJUm1Ip/VDmosb0Cnh3DcKxvA1GKYWRbkLS1OmkWWgxs7IFA32Jj+aVziOVjZGOgoi3N8dYmAWraZNP4SAZZAqrvwExaHyhzKdF4BR4a1P4n5tF7yBnr237Wzc7qYePPz/rHhpUbPjCfrTDzQKpxuAWcK4qetbtzLJBC1pZOcnMevsWDn2+Mmbj4qIqX7BMlCd3ABXHOut1Zc8ndODqLP47Xf+Hnj9c4m36WRwHvaC64WuGz/5/ja3r8WFeYHqgZu9DVaTdfjc0YiqOQxla+jf89p4BAZ+fkgk+ddlcjDAkM/7yXwKtP3hfQvQw6RNt+uXGdxZH4vvLT//D4OF+78lcB7TQt6NGqTLXOhFyfKUGWOiDZcgCbBIrxjC4VyJrcWMVqYBAap4tZzsVUtq1JUVkKL5u2i4mxX902RRlzEaz+8II2Y0ceL3yVPM7Brj7bCUk9dHg5J0Seg0l1Ry59FLEkEHiCwDPe2RuOXv5AE0vKkkMoVzTemNeJ/MCAFXFqS982oEkUw3/GwBz4I4yfQWsH3uREefOTNeh4UENPxKTA05hrZPrRBYfP2DytDYrlo/7Blq+uG6GcGOLII34zE01y9VFPHkPplGzYl1BBplICgHjpFQRKqkCVnevddvskbbfd3r99501+6oq74W5xI/v1i/skgadkjhl0nz0+bf3UFu+9LpO19w51O2u+K3zcf+2ZK0H5g0A+8vD6tYeP7vCjwLe//jYPBUStjt7qW/sbEyhnJzEpZuu5z2R2EHg222DYg5fBc+rF5dLijwXt8nIDocFHfXp7LXD2sQR8lO8iGIWNyypvS17bctxiv4HqrPRfA2twi19RxsYa4E1OBnZ8ZMOSDUHbxjZgbPVhzpRO/ssObldGrPsEzO1jPa0vCOuTOhk1ljG6ScVqI2A2sNPzbMH4FF87d6JJzB2ME6xcOlFPuvDLgXKhxAsGurmYM4eFrdl0J+vFm7DYFHWsGVvdsOrNH/OzC1LGh9CMM+p5x1YxNnozHtGUrR23ltU+LeYu0i0qMvUkgCXnEHzU9/89e9aei6hduxe+C79zTo5uQDeGOsadmlC2i2VglZPcgkXFvvSX9oy54SJNifzxIwNa2/dlG8SKl9mvcXDiY3i9nH7w7P9XfPY/6pNHDjAwfvvVDx8f5AZAL73f4KMC4cUMG39ceEHqQMIxbnuWV91CWN6Kw/ROitEpXPH0mLFr6CKFB532dZzpYUQ6TUx99x+bv/3//LPjlde/eLzKjxWZNyz0qj+NU2UogcKf/lFKI/ok27E4ya1PJMMeX2iMoyOq//7zshTnrseQ6Eu/R3AOdCOWkzlQXEoJj872PgBsjo+jJ145xB29bzzk2LInVd8orT1LrbQ7BmpP3IolurFwVUJ6vGdZeZRspevbdMxqj1xzLxFADHmTRyk7oeCIPNkdmIhLudy5g+/8yS79gWDrZHYRlL7yOQ3a60DHdnZXUHPgM9n0yuz0rf6jY3FbEjQyTs2VDALQQfHs8+q0aoBHHldVx4FQd+y0BufPtfUY4LWmCPeU0vh8Ct0+lnfnjTe/+NyNWxz2c2NsPwn81E/Dn4Lw3pEcFu9r8ULJl3ik4c3rb3aXI18DenTj7OwRN0pd3OOhBzwM6CsrUfSpg2P34De69TS+nfrgtY/bnSjMux3XogiWA6UFODg7OLHGmfJT1nYOk+v4MGI2Sxm4dBqDowVX/AaOb+jWodQWjBtFWvU20YE10rwr6+Cq2tZpG5QTBPCT9JJx4s/kB7iZgK69t2LUnyUaI7P6oMfKuEBYNEO71poYkh2U+WOMypOL1GXmj9ul53bZ7qBLyXIChnasZ4+2PO2sxbLJFZQ+iSzssq1XOaEdseCVfvHwxxyoIVyatPM1EIjo5/9ui04u9bX4jBodyVMbc9MYLPiXRX/SCNtFZq5G6AeluGLRqAe58RwF72b3Lnj4fOE1gd2jLSLQW/iELyYDXb7WRoW2f6d+X3ntONAY0J2zIFXRVc8xysuzf9F0kjtuyqH4XpGwfOmX//nxkQf3+bU97p2BhGp69/jI4qGf/XOQwC91QwSTA4EJE4/Co61n5hNlzDUMx3tNIjShK5UOG0j6Zh8iA9DoI13nSMMxY9Qfqr14cyx+/u//veOTz79wPM+9PsWTw0qw8BuvNtUB3BDlBFRNj+Dz3/fswVNjio7qC0y7CXIpMrYl41U/8fU7WRVtKDtHNUGtMNISTlmFTutZtCjhZUyYsAIfHfV0ZJOMUQvpj+9diVwCjQGYcpYQObNObJaCYrtyWzs6GttHRTVbPmXit30UXzp1Yq1NgrbeOKmvK1v6uM2iG1UMd9CTwPwwn5Xwd12zJ46NfMIYdV78tx6kOOyxSsfVR4i4c0Ze2KCTVd8iUV9tu11zRI60wuBNuG1oxZJeamDj4/mz/CjV93wSe1tAewp8e2WscSr89jtvn7Hz99dxeVIYB7dcAbh2G/Ybx+vsJz15/vYQv3Mpwv0ulM+Ojfs37pQxnwZ4/+5dngZ4/9rtr7zxFl8Dmu9T1EvfOplNGOB2wk37A36U4YLPLCt0RDvqTpGQc0C4CGO5RXd1dOOAAQN31BpwMm3zahIlPN0AbpBMJPt6JsOWkyAMW16zyFNf40OqK6XWGuLJSqSlX3tyQLkcR2ppP8QTlq15wcp/MCC1I4w3IGPnZAjiyBjfLDpS5KOsfRcIHNaX1oww5YrEu2xKGuZCeYkRSq4Gkiin0l0gKU2wak66FHo/6UqyJE4jkcHWNSfkLLDQnHT8Zz8RBHC4HAAx+LbdOSwMNgVVnBpCR4zsGN+85Mgzl6pUqgx/Y3vWaOh7DKYDWGdXLiDo+7U32+f6vhZxJ1vDavk1eR5UApK74oDmkHWxhZotPXKBCwBqvquizvSPXnZ5FN1iMkB5toHvYT6QvsKz/72Z7lkerNPuBdsXfBXvXa5aPP/HfqqDF+X13Lx3Vg4IUABhxZisGyFyLrwzhvVPss6hiJwLsjTtuPOWDWfcR44PBLNjzpRtYYZ+wdd7vf/ga1/60nGDqxX6+8wYnRyUG+Qdh/5vHtgRtCGNfzOcf7pF6QqBfpse+2Lpjw8J8LZ2/Cmgj3xegzlni7SKe3DsvjEH2BjVAZUoGqZef9i27jtb/wd86L6rx/+UyV9N34p74SUAkRy4gxa0nVe+yrQ/tAKvpK/6Am8oKVXec6mYTjtAIYS1GFxFx7W/Am4doE5seWCM1ejreCrhXzvL6fnUEVbSl28nX9S1rZaY2//lowxlQVSCl36wsZTveruYaipHpb7RfONFEF5BsNV9QGcMlS0Ioxeu+MW38vnyC8cDf4PmW5Q9Hp8mwvpLOi6ON7/01a++w1MA3Rd6BcCTY58r6EPzbn7+plavFr21PEkf6nf4bkrej/INTr7JKDt/kxnDk44sRHtxnysAX/ns57928fDh23vHPtzH33cy9/aSixk65uErH+RxwPM4UdPTgqeQI6XOZcFCzr9J3+jJruMZIC3ephgXoSJmCGtwNfhp+y9OMCorqpwMZNPx3Tpl88JLCabysFwxkBsI6p0pbh+dMArxQrxFlHqTWacr4qhPm16cHYPwKowNbVXb/uu4FEWYCHEVcFKIY2zIqu5ZpDQzcYLTJ/lDzecWVuX5G2B1xRNdGu1yaluAK0U5RZuU0rF2dYJCKR5iHgx9VA4snMoP46iun/IFpLhduFrOtvbUxw2llmS14pRZfAsmd8X1NQrK1TnaXAD1T6BzYHCdndc5Z9DDHkw9yHZ+XRoXL7lsKUt30g+5Oqrc5EolfaUVRGc2gymwso6h1ceduQrcNX4q3NznPQd332EC/tqvHh9c3/0fAC7/syDd/jCX//nVPc9srvHNhPwlp5M24tUGO5o5d9InfeWtvR9b84Ra3zRQ1n7j4T/ef+DOXP3uH6Ci+5MKH3tkXENzZ1hvIeB9AZ/51N8/PvnMreNFDvB7yBFK5Stz+jS6gg1Hhxy7FH3QCK8Zk1ktrGjakIQ3e/6Y2H11pmAcU1oMkq1wUtqh0RAjsr4MLwehz4mI0tTDUdjW0Joz+UYbjIDgjU87zolrNC51BwNZ9fStOJDdbW1YpzSX5dNunZWuP26dI5ZobDE+/U1el1EzHG5biNGhqmM9LHvQuv4aGcz6ZsmYnHhbzrYvxKDXP9TjSlPNdFEpT9CKMXl5BpRU28aaePyPhcVzooRnXvVNcYWo+RLd/FlXRdKKZ/jSeaGrj2Kfv8S+5lmfoaeCqir97kU5XiyZjHW+bvPml3kIwKP71+77QAwLU/OZd29cuK+06dVzt+9nWTPl/TTBEc0xRzM+6ODh9XsX3QPAsf99fg/grS/9zj2+kjQHAL9LIpvsV2SmSjL5LPPBBz+0grBzp2Psn/ra5p6wVNUbXfNLl7bz9QyHtuougPaB/24B4d2G7xRpbhad6pwVmk6HK1t1G0hSwNN+OiOTbrgLPztiaputwvjTDraxPnKXR+e0BxBszWlQ29am7nag5syrCbB2xjLiBTNaKykahzm6hSycmPq7lAZXxtBH17hnLKsxk9qDL/AUG4uXZqDFxFZ5TkhMdgmm6ZQzBS1i6sNsy5WosrXh1zSrw29hy8v4UwOUitEaSzIq66BJ3zgJJTg0TVM6JqqiD6LMX3rqUjHG6z76lscAa6nFTZbwpgYHu9kNuxdcXrfeGfTCanEwbhergpGvewC4AkYXUIOcPTtW3bKGuPOcmwRXLIhEV0JM2l/k8/QPn90/XvTuf3bM+QX2Pb+f/4f/CCL+hgEHL8h2oQJe/mLXX+LTp6BOde3qGzz9QM+v+HUzH4L5B4YHGL76yh9+tpjikjF4U6C65s7i/OP3QY6zu3eO2//kZ+eXAvGr7IrPazJtnIKMZuNAv2YPCs9xADs76lgWQC30U1KUOJZEPasrBjMa+Stbu9m2P9BVTPpsMeT8Sg2eMvqnHzlxyVsi8VTIdrqCyVWWF9vmETSbo8c7mOkp25xWFjsO0sVzPlhmDYvL26bFGv5AjRzsDoaKnVjl6YOxaF0fSqrxDWmcUk4fJVLYFkb62wD02mIsGoBmZ0LdgCEF41vZSV69RU5028qtJHfsOwVjHjkJ+rT1W6NXQyEZdZUyEFKUb4XX1iP28xc/xEdjfER2CYbMty4zl3UjYL4B8PCdr/7W5964e/8+T+Tma/G87vMQIFGu3gj4rVF/71yX2fezPPoV0soni5xQcFljrlMdXPl/dO8OHwdwg++N44aPQ3jjd3PCxO3k7e3o0DN8gnD+4iu7j5Ob8TWdZz/VV2tUNOScHHs0wZ8BKaLDMULwXeZDrx2PPFlwnAP5AUYL4BrQ0dZgHQAhUXKQo9glRxa4QJy4AIancBXasKcBWyVtiiE9VfFWEZNqlCWb/xDaKiZd+9gqD2r4H33qI6uS082iPLUWF1rhydaSLwr6iggzOtDGAHoeUNme88VxPqVRB6LFwvWKydiaQm18R7HcbLoyGjFXy6ZQV/zIh70Qanf29eODoku3HIohbYUh6iRdRYkmWUu0l4yBGiuM/pWfUBGYQIfHu1+re8hnegq6W1mK60yDEY/K7FzZAnK6fMts0J5nvpPvGtTx0IXdoyLqZpQa7+t5+uxxfa6/r3SL3br4fuEeHM7obX/153+Ou//56V0u/6tv8eMK7/5/4Y/9CXby3L+AuA4Wlu6jOPam7gI5/tlWmNJmbkQ0fSGjl+8w3eqfObmkqa+P288SXD6tffpTP318nDy+wuX/G+S7rysuW4MRGuj212AL2FjyoCKavtnD8AXdfSVvOnR4OqEzyCnbSUH1NLVKsc4r7EZHY3hgaavuuuI2ydGoHk3y5HXP62zGm4P00R29iYu6fgmu77yMS5uW8XO1xGlhioOs7e0vVeNlHHmwUxzmBR2ixW9F4WtGnFRX7C5I2YZheDUV0hcxIdhi4MgLT9sIl1JFtg0HPv+XEcDBYOvKxkEzXxZ+/Exgsz4bjIAEQy83NEll3IcuzzIEWjpO21eOrhjaoMd2+5tOsibG0T9F8+cvfBD19RhgDT9RZl19griaHtz6UdzZ/bM3v/rFL7zr7wDw7ZsL94mK8E2e5S336Z4CSPkbDS3M38vmMrLfC8rjuk86em1fAdhf+L/J1wBVucWP+LzyzM1799+5/VXbJM5idQZWtcffvoFf53Gm8SLfBLDXUG+cTy/TZqg5osFtIinvKw8ky3cQQl6DTPEZKFNpQG+aR8a6iHADxro+bzLN6jC9QXHNMEgIjGPMQdLOREgfeoM9WUGkL7BspTkyYp9GKDIUd9JNJn0wMGPYAXigIQGy7sPo382mTU4kDG9yoU3iU1XcHXs2aAtrKXew9be2PF4uMipL3ixXmNVOPFwIyOc/Nqaflk769hkvd2zq8rYX/vFLx9rF5uLkE9I2hI40VQdg1XdAMMquvnTmpCqUFFTBsx2rOsmJBTH6omFEVgsVvrprfciDdvTOnXVwqoTtvfZkN6Jb7IlF2yfgJSxtXCk/yrgzcPGwf7w3AElRBie6+vo+chqvLRKLlYvO3TffPq79xq8dH+RndG/kgEbxlQOA29xH88Ef+RFkeQqfC57rUBjiiatHiHulYWrju/1jMoTSNi/7qPTkj77LhqbiGjMji6Z5EcGKGIhc57ke7ie+8qm/d3yCO/+f6+MIncnw2mKntm8rx2uLCUhmfstjHTHnsQebODkYOkm/N5aoz5BD1kGDpH9qJWzVdkAzHpWfcYgvjVFkDWPJqjna+koN+nzEpQy+aN+kUE82u9LUkwkdRhiA6r2+tZWaIY35Qr59B1xZUNK0MsGPLeQ8oMsX8RJEt63GjC2lwUNAy/GHHezM+SG0hmhm20G43BUPWMYnpCE5zyzGL67VbY/2/CGIj/KTyDf1jFEF/7Wtdk3dHr+rSB2+dlOPsnTUk1hsbMAsZ/lkAx6lTQDU9LEgqPI7GQ3cLZP0t/1Gurji9u7trzx3fsMH4vC8jQcscetBeTeecWrvogu5sQnv9Xb1xnsN+xgeAXw6gh8BnHGzwxnbi2sPLh74nePrH7x/9+13PveYxmrsRecqbybnJWX6hceFvMxHAHYo1uxMh1e5s56Qg7BhycSDi1BYDZiRbhS5gJVyZK00WKgzUZUSu7IryMwwXYMVflac2Ga3WT4yGzd/tCGhrU4KrHKEMaF66Fd9UVQ55S9tW1uOD8bGxYnTjkBU1bIjhnWKW/GMxZ23NHPkWWBOQ4FfXOUygcVTd9rju6LikI+O9tVVYGbuLBYiwc8mbHOlX8llJb5EreaCWEGkCUv/JTymSsvdCTG0GILFjkVoi9sQBdSWZvNBDljQd3iwhl8fWnfnxlbRYhta3UZVLPXF80z3nJ+0jTaw6fVVvBQ8U4ZEvc/G9codiHr44fm9ZnyTpqyR6vvpLF9daPLMxR7Lp3P17Sx8L90r9oV//s+O17ha9oFn1pMz8dls3/NbC3/0J7oU77P6lS2P6nHg0Jk72yy6RUCZfKa2OPlgy/G2/VHWAxj9VKeDBf2VQG7LgRz+7QqvRqj/mzz179WvfJmv/j3P2b94OCtYhbrj03ynCMv8U5xbW0ritKC0txZCHAXn5YFIBezw3J7mLDzwNh+ns2sU4wtbq/riGK6YjV1n27ohZf7KWQ5OTElqoxcAp7kgmPTZTOiT2/HdgWUC4bvd5RQ/9pZPXWELSD+MwZgnM9mvRc18xUPOfAnrWE9o4YHfgbr2RgU95IWU0DxRwXr/5bXaittYlZiDnJGdg8ipyznl3Xp9Bs+qb+qWL2imwYGjA/WdNGKLn5HBUi05RZHNlHLGKupCli7cbqvGq6I+rXNPNotz0a9snrbPav0tb4Nk+y4HAC8/88LdGzdvXuOpIY+4Rn5xlwVzXwG4eXx2eXIF/H2oXhk57wN6qbzE9SMAPwq4fu1en3lcu3GDh6aeHW9/5Wuv91nhXCO8VHhK7akJ5qzlwUc/TqdMguvKZoyDFZAG8uTTy3en+UIntmAgtAf5iak49BDXAJHnZHcYVBw8GkhZW9QdhxhsoXEn1OodSirphrtQ3Kjn4Gqgb0zsjDCY1MFFaF5NbJjiqAsdrVVfXSpZfeOtehlj43giG0j4VdSJboxbTxIIOFDkgjnZkFVmJY46duVRzGkHDvnAG+10Ny/sApJCnCgmO9vSid+S5FfrBjdjhKR9uQmgY/+sPIRXJ+gMAvRZrFRGb/tSHsJDNOfFUmdJWDfXQumnG9v8V9z6Arb+1hBC7gIuuALQWKKdmDz/2U64xLWwNeMCaNsduDL+Zc86/LE+ByH+iJA7VYvv4SjDq7xbQWPo4DAGtfm1X/yF48PeTe8ZdSKeeZ8f73D3/wd+6k8MpilSFxvZRK65KbYs7VrhlT22qlysnHFN4qTX2ASnmxqN1WI+dl3JgmRbnPpK9nh9/u/+neOTL75wvMAZUp5gxJxkuIRIEOySftp5SUy+SHK0A8K18Iey4tgxOspK22kLtjFlA8v67Gv5m2HrKaEbXfc8AJULIflpqZjI8vnSLsJrypZbpZKZPsjuOJZJwXW9A6AqNPYOTQM4Mnyrk7HJ7RiZA6AEx0uxKPlGztrqvWvXnmeq0izG1gGd8H8U5oY8ZMTC9+Yz+jZbt0aR1iq0JZmjZDRqzLZwPq/xPa5y8Ipp6yeb9HZ4c8Z2R5vi+Zr3+sN8hLt52KNtP2Vzj11ap4MTDCsSiltsP/joJ9hePVGX//Qy6zPa5eBye+eNr3/uhZu3Hvo7AN4Q7/Nx5muAnumcytW6xCfbJ8HvtLKH3neq/zS9yfo4e3L4jVu3CPKN4w7fc/SJRxz3XNy/e3Hxxr23b3z1c1/4MouMsuqSs5Pa0/CfQnt0nHEA8Oh5biowIvUXRhMNywv5pPvYmMTqvow1R4fog7MnaViOAl6zY9M/hyeDYzymxsJno9Giff3QDeSi6wTttYg0uK07+JK1nsQJc3ngZl4N/KwKBBEno41AvmjUpnkopfpMHYKasbc9fG3HWWyISBdEbDe11bVAkBa4TSelhC042Kok6MZFJD39lM8LUn7m1ORkuTW+ICCGB2lNQl1JT317ZGEiEwRJc7zkl/1TzMqEwgJkv9iyvQqY6gyuPoiNhDRFFKWuB9mQLbG+TQI7bsdX6cqND/Pd+HM+u5bbsIbn2BBjH+N6M6exhMucLzJ2fNrdZ9YYyAZM6CZicNRqp1oi0VQtH0DTV6/iiMMH8ebDh/+8+/WvHzd+/V9z9/8z64waHmPCG5DvfO/3Hi/94O/vhsG5+18fZjjaB30kkC/j53SgrukQNDfy11u7QOiFY/+cPjZAxv4pF6pSh99HHNDOkTM/X/6N3zie//VfPT7ClYpbfnshbN+Rt+/UD0ZLEqQFG96MEfIb/uiYs4DMS7oqLNpYQBcapPU2CbBJnrQ+cSMg7hpnzQGZkcm/B1vKZm/8VH5oUh1vtMTg/7LQ2ELLL302t5eMcUF6OzIxVFJIOSFbF2Yt0mpk2R4kJLDMFsNSkl6/iEeRPPUPGQAAQABJREFUrA/zLyhVrCIz65lbZdeagn1dSIaxLMsDDWE2iPLpqOZLe9DsI5sl248HxHI7kzsZueIVmvLuL9tP5ij6IlzmOgegRJ/hASYV/juwkWN8eogdfQ+itlrSjU2yzFWYs+fPcXPqx75nYtn0tZ2cPEF8osnBLV1xcbzxpS9/+TZX2x7xS8A+Btgn5N65fof94puPvrp+PXepXnHgCbD3oEmm3/fCDwKRx88fx5uc/XuUc/3uda4A8C2Ah3f7KuBXP/u5L/Pc9B6D9GQSn2zr7aa5rU4PPuCrgGevvNSAWv2o1ScKBI8OSTmC8Wcg2Jx2Z7JqtaI7gWZgyXZgNVjkA9LgdbC2QDhoqQrT4sDWSaCOyuuIWPsNzD3AT4B74Dn4dl3APbCpZsDx4Ehmu4/G5WjD/1GftonQtz3ZaJ0g1A9eGW3Y4IVsZz1uA5TqQitfSdqqIi8/mbAgtvghJ0+8JulgqrsX7kFRLCA5MzEFD5MNIc7iKt6Sk98phWLa0DrxYT/V6otnH+uDDGNJlzdI0mojH/bSbk3YYwOBRLVtra0bqZbJSM0dryzGg2H7EUAq+uvBgn2QFrgsRi2kmHf09LPAykDvQIEFIunik0yLvanhtAii07gySUrixP7I4/r2N7ddxJDBp8/94i8dH0X5Re6ur2/E4nWHne41b/5jR3vO44tNjH2bSfj9lJHua9OYx83ln7HNztEwxXMr/vg5OH6N8TS+iEMc/QyLljf3GX43RLL99N/534/v/8AHjpe4WXH6dnLdolzCVn8XK3V8bszaj8al83Xwao+3vNNOQCFfNHexPp0JXTnbvuwrmcr70nt950WzXJoc6/7Zd5uuOvWxQwVGHxcosOeGtvBXsQGZWgRVIlsx94vAZsb+qNQ5yTl+rFhWh1DLR9c9/eav/lHQzqI0dva6yIhs3klHZuDML3q29YHOmr/BhoIOtsPWCgVZw6w4JjRHY3JJxX6UwpGm9HhG60A4BUS1vsDrU5+YQ5TzAfltRP9yZKMNpnmOLrno3cKzH/Ovt4kLGc2UL3KzfV6O693x8EMv85XzlxEKMCzfTnGdKJcVeeslBPCPLr76hS+9/tbFvesPzu+fP7p+8/z6PR8CdO2R+8jrX2xwbAB1xkl0N/G92tYN7xXYwvkGZ32i0b4R8ODHf2/wdQe/9sAds+d3z+5f//y//q03Hty994Y3Ks1lvMcT+rTkPk7jZ0lv3TgefvijuGAv8u7GQY2ZOnod0bWyndLoYNJrFZCLbl37jlppyABWf8OaQbMiZRQ76NWX7mIbBsJSUYU49bpOIWEb5Nsv8aFv21ShhMkbuIJYpKGsqJiSPfgYI+MfIn3EIYI2VMmglYWzaZ4RUMeLwVRUvx17BauqOxCwsKOZYuQtiJT1QxB1wMs92upD6qUfjWeXDLFguECrku8atuyFlioyqueG+PxXxAdPXmX5Mgs+VGOypMzbys1JX94ORCI+h1Vfy1OVP22sBW3yP74rMLXJwfQb8uYNoDk4YFizw+sjAF0Q0/XKmUYs4z1bGDt8s8zxsO/ZdylNr7ih6yQ5S36tDZJmp8+Wcdj67hg3rBXH5GOwvv6L/7TL/7f8NoACxO7Ddt4m7y/uh/9se9i/3kGIPhobtjEuNsZm8Warvy7k8iVLucA/tKrP0BuO8U1R0QOD2WFw3NE89UFENwji7de/fBy/9AvHa/zYyi0DB8ox5pWIrghVB0kTbkrKYGqhndYyX9+tugqNPYWUWy99yXvH7wAgCsUxMRw0Zcy7vK7etIUuvvmkzPy3o2l7CcWy+PWVdciJO8ZSExuajezTYCvWVGz4SnhoVvH3pK7vzQsobDuJccBlaPVNMLtvtAdGfm4xCF6ywfLkSRx1eS81Y38jpL7nG1L+h2dFcMdrxMExnMaRYsZDexBtU+Nle7y1XSMsceStNFOzgYg4y8YJLNtSndsKoS1NUQDCWED5tzHIWz61pi5YfFTP9WXmNlepuFn2EQfRMwnYUMaPqV99l36VZ925x68A3vmdT//26/fPzq7d4yR4vhZ/79GNd6ZXxFjPANDr97WsUfq+2vAWQFPJz45ee/TuWgkenl2/uHP7waNHzzx78czZtbv3bt9+vYUJuZ20JxP4pJeb3zBlMXvwoQ/bWyLwb+f7bw59n0E0TWTqnB3+yG5pZRqObdFM1oEE1Z1XA4tNi9rggwDVHaWayxbyYxc7YqmPnKMQyFn083PZt/8VcKBoM1kHTeq8ucBD55WYaW3iJzmhZxFRsQxz4SXBm3Yl7vZUMlTVo+uZPNJYZJQVi3+1jMEUC+tEPz2XIMzxa4yIk5Xeq+cMmmKESX07EqD9Id9/rW392WbSt4IY0XIlTLTVn2DPgYl511bgTeRTvpTn/zK3AmcamnEIKkE5KxT7vthzELYyYo98uYKmFxd+BGCc8IVwjZ6dlZCDI67IwVqRjvBl5hayToqVKd94Kbt2quEpIoQOhtrukp3qjeOt33n9ePY3P93l//1VOr+Jwm//HPd/6EeP5/n4zG8CGHN+7g42D/mUW8DqQ47O+gdPeX1rx6Y+bNdQXSgrOk293CgPy12XufE5CO5zVJ8D7mvHb/jYXxbYDz7/XHnwQBar5b0EgLG/YQIVRREp+epmcjrknMg3qbAQn+yqVShuxR8wpRgn2rSwdcewSv1HvHuJSUm9ZfPkS/JiatMxaNwqwrCzdSTYtc2REjkyiM1YsiLY6nsBHAflFAbNeTOJsiRQaceMTe0DK9ZSXfJLLzo6bsXFN11bg2B01N/+KbZtUldn/JtNLAeCoYxzCw9cFOvJpXMaR/qoNPxMT+vSD4jOCAMZfNsjq5XidjvK6FFhUBpz/apdeadYL1GipWr+Nn36QfHml/rxXNv5eu+rnGT2FUD436LMegSs8e6Cvu2zO/e+8qVf+/Rb7/IgvLM7F+d+BdCz/71v9GSZrwBeLRtkO3mV93uqE/n7Vp5w9rMZ2t8E8GsP16+dPfIuyFc/cOvu7Tff/cLy5DG9ncCd0Kd5a587QB56AOBgWaOiAWB9RdlAKpW+eSbEQGIRnUHDgAFn+uvKAGtyiOigUkB51MV1MluSYeDYDP9yO3j7TFMBXuMw+ggr3wATb0Pg+cKJpR3t8mc7mmpbV1hkxpYDn6IZBGfhndgkF7PMJpVbX2ujnQkOAigDyHy6zEeLX3QnytJd+to9UbZtt4hOP8Jtj8HW2Nkk39tqa8A2fhQn7VTCjqG1KbvZIr2sS+t0m+0YBgeiPpyGxvSh5BlX5HtjFdvwl3cC4RIC7nC3//q38tUCmwSfYSPdZfi+BoiMeUTW/lTcrJnX9guOQXw3N+6Y3Spj32SPBHhmz1XBlOdbBCKIJ66y1HWeVxxFy4dekzvEvvDPfun4GAcCH+CGuhtL5+L82nGHXy28wc1/53wzgK/koNCjgUDUvtqMW/fQ9dUaV2N0AsG5FnLt47i+FwM7oO4lKBl9t7mY5XGcUY66sVDneHnV7yb3JjzkI4jbP/szx8efe/7oewrwWnyTm1jrS2MgodYbj72VgrEjTx+U04RvRoQ/0Qbq1JgdKkTHiDbrZ/EyFIj9sa+4KFMa7FSrgGqh19JpAyX/1YWvHelzQIqOecXm5sUUT4q5oy6mFGOd8UZcSoilnIXEj682oOlfwNqHcgpaOvycU7+AkUcfDH1NoiO4he9H1FDnc/lR1Wr9IJYQIzK+WoeuTHkJ0LexPb4bD7XtiiAEnNvUVFYuEDXpXz0rjD22iwGmqhob60ppuGYiyU9bqXgOVO2fcrz8TSAPl38zDz2IczZo5vx0kmk837rYJ5f9kixdz7x7+50vvvzss7f3zwDz0dcjfwZYCU+Sj+OzVmtbeT+LKXi/i4EUzNUnHJ0d9x6dX+MzAAN+9MzDd7781c+sReGxzF5N4NX6NzjtFYCPfnKZOplscHY02GiALksLtvkfHp2+jpoT2+PFvkjGN2TYuIrUVbq9PY1wiZtcg2wNAAXV5eVGgAbq1l+yewJkZuuMsyiuCQCCC0i29+AX3sUYw/0BQKvYdDrcq+Ba1+fsOwSmPnK6t/g6Ik9Bsdfklhp5rFCHH542F49tmktdZatTkGuRVWiobVLG8yamPKR1KvraQCt32VREAngCK++LRcsJ247LfnUR4F8bc2mXZiRz6mswArEvBg3h4c/HASh0dWRNmexgBdsXN2/Ozq9VW1/4SOoe9wCAFBSqEye7VtyJvt4vWD1XCthxu+udHW8+p+YT+Khg1jv2L1yM8MsDg23AffTExnf40b/8zL0sHG9y9/+rz3JDnYJL1p3+2888e7z0Ez85N/+1d1yRgy0ed+xUaYouP/uxI3i61HjID8cjcZsLFPuFgXWXdG2wxTO1+uYw8uO+Cv1z/nAAf+1T/+D4+N27/ErhPPjHHUs7ZzU0qC03DVTBzDW8NXAXGwloJki60Dgqb/xVZ/wNVpil6JCawKgwZoCHKWn0rTXeICdIUM65kVN4SnNLcMqMT7DAEb5XyVgNN9rKTgrJtEPGIUVPfsGuaDOfVhxib0wE9lf4Tjv+XNMfwdjohBjWF1lSTIliWRwTVmmHSaM4lq9JIZ8dfQWrjxCpixe+6lWQzq4bKtJsi+lfNkWEaMDyGOvprrGZX7iEpWRS700sA1lzCZq+BHHy7xI6BO2v2OEsd+wt/Gk9ngOtWQsVHJkHH2cf4+dWlNbbnaso87b3UzNOrzBW9d033vw3L16/eY91g+OqG+cPr51deGLs6xulo3wz+jcR//bJaxZ++wrfpuSTDnMPwNHdjTeuvfXo/g0+9+B5AOc+C+De/fO37r9z/fXf/twXPQBghNWl36adk5hJv//Rj/GjQHwTgDILB26cBsiqOqaveufAbVDJmIG4F4oZiA5weaHS+VYYaGuAnWy1k9HeTJKx0dBeNHk64ws8iySxakNf9oe5xGuIQ2nSuAPABroOVhnyHP9tbcu0JJ/g+A1PjnINUnV0lNdcgl1M9JTzNQrVwp3eoU1FqTEln/aeuNkdO4MtjH67VU5ctWm1J9MxsXghtK84CDfCbM1v80Nlc8af8or04n2cGYK05Yf0ffZ2uaihGV8sq7Sr0KCPTx9tuErkI3TqEzWC7MB4nPfx8IUXj7NPfGJulsMfQbyT/eLdd/DvJA1Eu+aGlHbKP/a9WtCOk3wWOxg9837nSTdxodJCOP5qSmvGb26MVQvSOfzgVMVT7evH1z//+eO5z3D5n+fpX3fsehDD1QA+fDvOfvwPHbdeeplH/3L27xAvbvDg6cvpDFFDotvna+ju/WvjxzwqQyyyTeXsMmnjm+4nh9Aeb/rtQasu3fQAikX1y9z894kXnj+e76mFHHwAZgYnPhRWKXf42DyVZtAC5YfjIgfGkUUWaftQfNAtxpnv5r/8yVBJpnX1zKtbmjI0rI0Rkrjaq+pYja+cPP578bbmzYxleOtqg0KwElal6qLll5S9DinYC0ltaWCUs7Nvktt2y6H65qj/KzpWLeqvOGkgy3tOy8M3ZYqJLTbDjG/djqLHfYHfIFDDOjIn3dKhpn208OXql8LwK6nSJjddJRFDEczU59TF6H/XVaS+/TJVI4B/4LcWxIfcVQ1lkShuGGnmafXyscdUPuIe3zI7++j3qMXr6aWx+XQWJsgQ+7ivfeGLv/3g/AbH/hfnD7gK7rfi7vYrgG8eX+/bcgFo5Jsb+mY2/i3ppenfUuffVrw8q+Tdje/euHHhzQ7e9egvIPEUxPO3L+5f/9L/++uf45sAd9aZAXm8jP2b1R9zhB5/+MGXjrOPvGqv0mWMpgZUQyWag6CB18hBu1HFoN0D0DYDwp3SLC60JQWkP2uAKKPx00S3gagiqTBgE9C2BBq2qUYGb2LSHxdWRVS2gA3Q0lQFkgIGg187L7YXZgtedhDJJ03BNK5sj2F1J+RZnucsacmgqi1fBjKpyPswTsdl8nQl8zOZc+TkVwhje9CKp5hwqbOdTBAnvo4FMEuYcY4PHXmDudecqMZmMWfGV9Pa+JQL0qzwbwxwRo5GsZO3aAosfgjDRFl58yyqUHCtMHHn0u3CheYDdu585LXjzodf4/N07pefjuQyHhbu3Knb/DGcWeAEI2nG5MtFCVveZd8Z5vLLnulghTNoPai/i1NVfPDneR0/mweWrf71k0UTEvt5/Ebv8//0nxwf5+t0L3C2P7/qJ//ieJffKnju3/tT2JoH75QTF1h8nz+wBMBPu9v3C3zytwUcVj7X3ysWvrTnm756RSSfF10886uPc4CCMLA88CQdF0Tt/dqnPnV89M03jo9wAOCjkuegh8oqwCTfvkYNZQSCMON/BPVFt1dnK4Q0JSfXVmWJ+SoTH1JUmZf1+mPJI9yBAvlpVMhWjpemckaf0lNWOd4ar9Jt8+LNPPYkvj1P9UVn+C+xCDUvUBo82faA2xHbsuEGLH2MZEPfKLGmWrsqxGJQMMAlIBjFnnJHHp4dvXM1g4A2tBO+GJBOcoKjmaxvtrEGhirOj8FvoC0+m70XcjvKqKHrGIJUCYDaDAxwxA7eDXq+LYJbfZLixrmw4ihM1w/ostJlWzdsa9qW3wHXksC3B699pG8BqFXfoHe1PEm72qaeOcb7xe/81m9/4a2Ld677I0A8dot9IR+H32bf6PMAvngV8bG6+v8fcW/2a1t23eet09xzu6p7qyerisVqyCJFmo2s2ICsKEHiBokDJHDgPDhukMQJ4jgIkIc4+RMMvwYBgiDIQ+wogWFLlERRiiGbjUiRFMmSSBZZHatULetWf9vT7tPl+35jzH32bYoWqHuZec5ac87R/MaYYzZr7bXWXvumpxH6mw08jyvA7+P4Zmxub24dzHZnSz9+9vn3tjc28yDg+30TYDGg1znsQOObADsf7DM0OzH9WJPUDnbsZCConMFGHjlcHCOCCVAjYzQBGZSDokzIDMyhN5q3IB4b+oNwBiql6n6hXWw0q0P+U2ewlrqhqkEv2+S9TEazCuTKyVeOeo3auF47yPKgK3c0s9R1EsBKj7NTV0fMZcuPKfWaFwxE2ueaVOVBdBSNDG0IRuGNBTlsRfQdW9o3ZUEIQPkU2rCFbOTEC6i6bNbZWTyyVZEY/PrE4uLFQUFx5IumbSnDAYtVP+IPtkGIZnRGP/hpuuIjUz/qDXpbDz8ybfJqXd+mF2/A9Xv3E88AeHDV7XGwcEHRO49w+R4/B1TWJuwYU3yNYXLkMj5GY20zatI9QY6kdcp667yQNnSs64O09W/zRj2uiq2KoS3++PntaZ3F7OxnPsuFAp5bWOEkBbqu6QulyNkPYlaUHTjDPvbA13c/lYoLiEroZ4DFT+dxodVBr9fAxjeeh9OqttF783e+MH341OnplLhxlJbZaJKQ8QFbg1ZGww0ehnU/WGapSOjYRM/OBDv9oQD/GWu2WdkcNMp/Gg6t5Es0YNE/OqDIHyAarZT1C5agxq+uMpR+2akxFsfTgXGFGKJksxlopSe+mOSlmKzCYmQ1ggA6VbaGTQTKGnma03LKh2Hd1HVHZUCRt80DDX+GedfLurxfNkJP25HWRqnBtL1im/TDsYn0uHqXmBYtGPKgxXxOmJSGVlfZS1e86JWR0jNQ6sZM8VOhTqwiE1DFup52qVNKsdQyhrc2ZZWhHZ6MYDL6FGdc/veumA3OXKP4fqniecT1RNe5y+/eXH7lB8+8vrGzvTLb2t5f9WeA+VYcrw+vl+QRKK+Wt+Y8kkdIN7fUo/3mgt4A7XB8E0DeBjPiGK8+9JsAvhLY9yGfODi2ySuBx/nPCECCP/D+dUH33szuPZwAZMAURBbXFOlWRuYATqdmUIFO52YQZrgZEqUcYGTqgDcGSAHEQMs5mJ1AJWNeA0hlkzXk25aXy8RKCvCYMGK6xWTjCYr9fFqgTD7OpvUjrYl/AzDawahdDjfomdtIUiYZeUyxS46HDQFc2p0qKtpwcckiFuZQUYItgk6WtJJmmkMUmvbVp2KbH0MUXNxaNzEeGAWXhqcLSqZEKeu+C6PA0aOqDcoVb8gmbMbndEgaADEehWc5YubDdB3JCjBmZQRVQP7t3zCykOmKT7Bv7kH/6MemTS6h7/vJ3P4kebBd5grAHp+y2xswiic/JxJUQ5E+4ipBuxHQcsU0OsaVLeMWOXmmIZO6MpD9lC76G08/M515+63pzCo/pUucAs9ua48fz/qFP++w4PI/X9K1T+QHX0w2d20n0XMxlMN/xZ1i/MamB85gaKH4pV9eGpfyD74+RqiuAjheXvjaV6d7331nuoeH//K7oSNAgmhvxC4H6FKukIFqg03KxUV20dNWFRPT9LGCNYKikobgWxwSS559LVzh5iFh5ay6GSP9iE7gCDi0kCLQdrscnxAGIy0feg2YuYADIaviZW9zN5vSjNHMBB9WGmufIKBoFCjkcjdHfeVFrb6Ba12i8tXA+D3Xa7+SLbQvt6WHTh+glYnHFoDUz5w8WdYEWdpLIXjZUZaRsgwRuq1qxGGBKGon9Y4Z7dRlaWXXinaUq636i3LGaaQoox8od2CQUYCuvdKPT8GSR9Kv8EH0zAaXRNPM/gd822z5WOtBqfyJ9mB6/NpeX3/zvVd+fHGLNcOvAI4fAfKYOHAWjpXSBj3eD5mbld+qE4AbOr06/Tj0Y8urvPd4iZ8Gnh2sctlj6dja4R0n1javvHfx1T9Jw24cfHt0b5rd/xARw4w9Vr1cHWhNsgYYCTlgSfBf1UhbqZJiSVTVmR9AW8ehWakGabov4MoLqI0adDWgKEfHPIDIMJhiT4qG2LLIBaHgJaupk+ktCZS1lTaycMtTCpYDPVjs5wm5knHKyG8ZFdzGScGoIxHonPY3mqIa1eUwy2a1tVqWJiiTYKBArlR2cU67UGAdMfA7QhKVj6HoHrUTloa1XbDVVhRzQqRmwyqZCmfbaVfAGzM8bBCjmGSf3JinL9o/IbQzsCgkfrYbkfQr8lt8kj728MPTNi/9yaVv2H7QUW+Vn9zd7ZcB5SoOsfDPRcDL355A5NOzNwHS50BD0oB1i7nkrxZ1zm2Lj2PWvRrg7YCcFIPp9+ozL+Jr+XDuD36fJ+pPcPnf1+kaD3H2p8vkt/3iL+UZhtiB68mAcRPDqxMeL8fP/5af+qNf5V9OMlIvX3Q49uOfWHzi0UfrlA2dXlFMDpFPRH76X55e/39/e/owr/09ydf/tJtYJxaKlk3jDqhqldMGbY7FugdRtVORcgi7KtDPaR+7+CF79L3zR3mTmNCVcdxgzAPoGJPjBK9sKaucOz8RWkWSPMjhwYr/yqVo96IiIgR1tZXGNU2+xNApDRzzcgxWhCRgz7GMMCQz45mDnfjZAoSqedHqRIBy5NnBmz8j0zrVl4C6NhiHFg+GttxGClMwxgbl8nnEF7Jm41/Zt572q4ITCYOBsyyTJpSkkbDPxRKgqDlBiLQkwZQjZRCPHD1Dob65GMqK4SRNXaWCKJ41NdgaV1n/lN954GFCu2ftuhT5pl5bzm0uiPbB5qX11+48fnJz7dRp3vrHyrCyuz/rH8crdd6YV+lGZgbvpuWE5pamxUakfJFnAHgn4LS1tOnbAHkQcO9gtr194Keod1/58Y8Mlq9LvJFX1wb2Ohk6beeDD0wHx3kQUGtudqCd6YIhwZUgI/So6Q4vSUpYdiBFRI2h6wSKV+YKW2FTyc2dC12EKMumGTkjV0WziplbyBYKeuTBcefla31WuFjNnGeCzGMBXkxr0iappwFyB3JdxpLpVoM7NpQzxRAg1tGvqZQhL1MJVDtPzTIbDarFnHJiEWb7NdolTweNS8sZCFMv4CkLxzbKwU+9+i4TMo2r6MqvtrZS/LNMAwDKH3bLLegtFj2N6EL60ArMjk1qug5eLZhy1Q8xosq4ovghe/uuO6e1u+7m/j+2+Bux5mneibd8T7P1jepr7fdmLD034Ro9NG33pXNIkrPYoW+b6w8R+9OmkaXY7uT4qa/A8CPDYR5ygF/iVphf69v97nfz9L9XJAz7IZfbdzmT2H78Y9NpH1zkSgAX3GHyH3cQCja9BWj6XWcTD2Wkl3Ae3kxcoNk2kqrZJZ6o0ce5ZdGYYcPzLycQYL36xHemO157rX6jIHMU4cTF2IhRoJpNCbIHq8REOwgZszJuIxecCVS1LwKCCChGNStdq0owglWYQgtre6tPYomxA9GEr5mDsW1ZIjGTrjMtpi0QNBB+dWCx6xMm8mkcfpVrJatKaVpAATn4bYgCKWb0TwyFSJQzS7Sf/oHnXPCPenxTsVOtb0CNBqvGmlnjXwMalagOOG2mINKywmx6rRVxNP5lcKok36zbOK5MCB1v0j6FwCSG2o9L2I2V6CMZkZZr3LTJGObssXP9bX7Z6hihysv3NVsTDvS0veNnnBIl1JPwV9b+6bVp9wG/ZXZ1SuznQdGkvlVaLGMkvPdef+P5taWTXHYDk2PfDugeC5eXrhx6bFy4/N8ouFPpCHhwbkLekbgJSD8ZYu78ylsrh5eJ+MoGYeXlv+vEZTwI+OpTz76y6wMBJII311kovn+Atc8qtsdrGnfvvSt9n9FiBzpqRhhZ8ILcHW7vaigd7yDKgD8KiySV6xO0ZVJ7lsyDvDK9OPoJKQY04iYvuV7wJ7SK5QQFUzjkyPgVtrmeg19y26CSiZnJSGUsmKXZdQxIp105a3Zld9EaZ/Iipo3m2q0UDzpWao5JUw6AgU9xO+qWkRnfadNWfAISOCdwDrJCh44+DHVSx05LKgBVZPYdpypD0h8XA2XCM7YuQt2HcGrBQQ4IP9kH33iFB4ZpxBOcGku2x4Zo17IybmglppS9CSmmcuqz5dOvVfp6xkniPguCJ6w+cOfT9UgntCv4t8rX7HY31xGu1qXtLqDq2/74pNGRkJMO34KnACnjo5/u+YxJrnzd909bFdU1Mb2SQBlvQniVX/6768rlevWvVxvkgLPO239WePhvV//x0RPk4CpC3GxFPvl7dYGD/3ws2jZF3Fsw2e/+EXdJOVjiic8BZAg6J3AqPnpSHdW0LGu1EK/81uenh0+dmG7jNoVDNdEa+DSldGyT8ScFg5LBMmPLiVcKChStjOqf40UghWHGiD4KZV7GYidOK8Zf2kTbIlegoiVJJKkTr5SRlI0d9pTMrZzqHMWLn/5RxnrlifG8rdAFTtJiBFNL2erwAx3h4jt2nHdH/sSD1MfBVErNEe0iyRa/2QVWf5Qxi28W7BRyxonJg2VONsK3nfqoIy2b9mIpWNpAIs0pRw1/G41OLCOb2DqPwK81DnaoZTeNpF62xdeXq2XapcRErWaPEnXx/W9/zQRa9Dm0RDptVV6N2f0fnHbvugNpG3CU4utRNaUa8+138zgRXvZbQ2/88Ysv+gCgx7xNfhZg4jfDjm0uH2z4AOBb1wBV9WqgG4r89MSrW/PT49xIc9HxhHGc3fjig3oR0PbhGu9BPuQ1ZJs8FPHiE0+em21uvVkDYFGdPnKQZFDdyFTTGBGHq8tcBXiQLhv6mj6q1ad7aBkt6mXoLQw6xVk0qudrcNSMYGANnDSnJMYBw0nvGMdsPk2UyAKOA5sFdXyC0D1lxXQkdz00qmI5kovsXlwVqhxPnFyRiLDNVCpb9s62iBc/bUI/n6CSK68xFRFMO130lJeuMja67sRxEgUnkJTTYMViqHyMLvo187MwVbltKMuWv7RB69LKDWsZA9ZdFIS2HFwvt0LQp+C0rmxImtT/YKuqLnqKlon2OZ2lDgzbH3wB4skACj39g0yFCT4yO37SfuSxnADwFpvYAy32l3nbzjFCv8cVgJHKL2NnggmYcYx/3Q5fo+uELJnie2Kha558VG5FPW4l6DsK6Yq6HNDY0/TGl748fYC36Z1Y4d3/yOQrd1ypuMxT9md99S9XKKSxa5vxBv1K+mCI4gs7vcm4nnuHAPT5nOyDfXxD0SbltoQHfq8iwM8PI6F0kBOPpenHP/zhdPqF56b7+MnftR5bsW6wMi9ioOw4d6h2B0fMXY0T8GWGX74aGKvmiZtBSoF2ZB7LpVXQ0raKIjA9VhIVRGoAxW4O1J6gN3IhCFCWxsGgcmhgEd6ym8FDOdXWdKzZB6TISYYWSvIQ0Kct9nWptfXyXf9NIMWNrqJTDXa+qlDNEKBgHH/K1hi0zRWFSLjrdS1zXyPzzeY4oJS3cRTDs4BNYpE1wfa61tV/t68G1FgD09Ihg82c7Ou2zmZDOVX714I+Fy12Bnh4FTfNxn4UqVhPo9Qv+5kQ8hMjmRq3LnrXh04D7D7yEcT4UKDcNWn0+zVk7BKL2lhCeAXwzs6VF7/95Ms+ALi3vbPnD+KtLu3Y4iSu4g2r7cTg3Lq8evDW4V+FzMMNLjd52nGbj4/e+/AhiPW9rf3ltbXD44er6xuXLr/SSiMYV2FYGYG9jpHO2pv27nsQFj3VneX4zEoZRCaTE9aREnm6PCOkzSlc/wwF5Rwe5HYkeuMTZ1QyWIFRtYwgXwuOE8g/5bUkkIt4DdwQ2MHrHnCAZJHPIBdO22iCMyanpJp7MYi8vKAc2Q80A5mJFV81rhHh1LANbJUjE+cEKS8xKKrCoVVsVNemSW4kuqysPDZ9jQgYkoad0Nr+gFE2ZooghFvsSHKDbzbw4wsHlIRREYolplU2FlN9879c0oYSbu5jEB51+y76GrGg0sCQpkLpDcyMAUheZvf+/9pHHi0Z7rEPv2sxWPanPafZpYtxq/oVPGCdAfrkd/Lz6VM8v5ufOmXFImep+smuySKrz0qwcJUcnvFGP/HyqYYX6vjq3wuvvzatPv2D6S5/+Q/JhACJbT797/8bvzgtHz8x7e3OGEro0/Z0PW2tT/AOsUSKPX+D3n0bu6HhCsPK41cOBNDUM6j2go2wGbXXh/JZ6dw+YEy+/IXPT4/woz+n/YqiVxuqQ6qNygXBKjz7yKKLdo6W2pCAzfSfFZLzqQJGbjkeF5Jjh2okJZPmJ7vqzPG03WNYBTHyCZh4eMBCtsSNDyDsamxaMaZFFy74yisYfMthkEsQjhxcyfHfOEhji6yqqStgggAja4sCloXKyYQ40pSrmGm40BHCZq01whQ9GprDeK0ZKIOVHoiP3T5BYwhd5bWdcdF0fXDdIdOnrGHmssUhL78UkMbWJyphKBJld24qNJ5NUSF5dmUfcqWSjbHo4H+woNN3tkXflRq4PaSKAiN9hJz9kniT5xsdxGL7oUexzRUzcRZS9XWj2tCFVGsBBOiWt66sv/b68y+f35jtLnnM46cAeBnwCs/D+U2AmqUvVwsXUFK8Gvha7p+i3oefPwXC+6uOSOn8wjZ/yGHyAUAfBOQrSwf7PAh4+/FjW5feeofzhEqLwR20kY/gXifjPc77P5x+qqix5z+LSxUyGB0SLiZzmQArW/Il6oCh82q8ZcBVH9uhgoqBIsSBU5+W5UFHL3R3DgImiymBYRcsaeo7kQqsZJWClfmmQlQpgDmfTNIRUEZ2LSjlS/ahy6GdLmC2o3FbQSW2mmTiejCKTcti569tqm4qgSyGmTRCuDDqD2XPN4xcbIRocdhRyI0EyRh6slJ8OZSlF6VkVNVH1fw0mdhbN2Zhwjc34I0tNEUkBCMFtOSkDXJmQFdKpMSliwXu8CdxAtQr6tsn+G69twC0yQE1V9n1i4OMascIwuwCJwAmYRL88ZkpPRJsffRKoAu/6rpQsTQSqhofcvjzGHkaDccxnfvy3q2g3+ILgK985SvTh/ju/234WMctJLnff4mTltv+3b+Yh/+87G/M7LY4qDXttA9SJWmlHmLEE+uMU3WMibFHJW2zngMZ9sWu+cYe2RwU6DcfLtwjPks89/DOC89Px5/8/nQfDyket2WAp93aRV9bkGvTqXnR8ZFIBDeO6Kj2Feo5Vp5RL5YcylTERTLRRdaSevP1JHyCjeNpgzpq0NC0fx4kDSKTfiFHTJx4hr/tcnTtwFgxGPKsBZ+yJyXGnV3WFEGUk653Ma8tkdumqBrI1mXjh0x0LGtDh1VxF5uFYVvsO9kRiLRFbUpULwgKRiSicOKsusrSdmXLFnJRVx7puW9BQ07bnCLq48KmbgwIJRLsqqcQ2Zz0lUvUMWL7nGfaJlbC6Ux8imkJyEXUaJeXR2Oj/K8+lztaAVb8btvlDC+X46ryw30FINK1q3hfX14QSRE5pgZfyT1/8eW7b1vbOH72rPXDPT4Ee+D3dwB8S+7ydK4NX4uQJlxHvBmEdOHNALoBxmhMRbgFvA1w8V3OelY29hcfBNzb2jpcn20svfHyK3/svZL5jLwG2KCP7RpWV7nUwnec90/37ymN2OFNFihHi6sigygLqwNmyICQAZkRpQw8Fwk6L+MOfiZkzZzYg1OLNzjBF0v5LNEu08Lw1wtFlLITnI2k/SwkCru1ltApK2oxI5pM/3TEiaBQqpkOkXIhyeCWrmzaSo4PmfjSlQyGBWZKCFFoM06goCsgBPWOA5ip6z//UU5Zef5cwEiyssC1vxENZ9hrdfojoVCNQCfGOJT+afx8grTsxNc4ZftknmLSnUT8FBD/xVDYMWO0cvIUXyt26V/bI6Cb2YhzMEFLY4stti/B2bn3vunE3XdnTVm57TT43GPHXvwn48L7tHfpAntjYOdb8iCtATZnHn54oKqDH/Uk+dL02Q6LIGUtC0Nc0OMCfvFhrPBegUO+AeN36ne2N6bNr/9+/ZoeGuliIGbEYfvTn+Gk5YG8+c/nbB0jdSIheBkwSkno6Il7JKviQUn7MDKF4IqfwW0eXunHdwFsNwo5OQkWuth+nnv/j9x+ejrDiYoa9VsIJe5JXlDcaaAc6bz7MUQZ8vXLvlUkmqFbMo7pJMvq2EdJDgx13Ih3+q4xBFK2M3NjELIdl74EXdPqixcZSJId/wmMdIXcFMJmdC3jDTK1TljtgCtXhpqGbqejcSittowTao4/0SiAS7n9mcNJG1oUpGecJb4SiEHKFoubcWn8TPGVnGoogqWdFUNFxhWIyNglKThO1aBPcaqGMxzKbrUeCWaqa0hpmyqxZXyRp2yujI2rd2Uo1OsFrEIR2wrSWVcCApTcIFVsbI/q7AZPg5EKLA2wDcjN7r932rv33mCicV2q9h2RR33k+mL5ndff/NHKdHy2t7fHhbs93oa7zKf/zcON5fWD8+/SqErxaqF8BHwLSkTzlqfRsOqfBXM+CDjb2eGbALODncPZ7mV+GvilJ5580Z9LJPDKR3ceyNYt1gLQYpERNrvnzmn7wYd6QDhY7GSSA9s407GVMAGtut28So7STM6MhnI7RUEcMEymDB6rbuJJ4L+kqccIDGk2xYk/8lLIcFRSoWpjycnOQa55AUE6NFdexeYOQNdIDrow4gu5NDcz0yDZ/vgBrXlZrK02KzHSO3REL3mtAN44gUkVAoqZnJFXr3zKyYcICKuWOnD1OTiU9rv8Szs0qs20T9tVDkK3WQlTRMWPWFEtx88sTi4WSrr4ULAPHPHIuJNlHGVpJvTO40sBhznY9Hzu/x8+9AgH/HTUdOyOO/lUjX6bEJev+EyHl/sKgH1G7BaHQF6YA8E/ue4rt2QM9QsaPhz5Eo/TXg+RxdMj0P0mAjaf/u3fmT6wvTmd5ZP1ios6cp6YXOH7/sf/8l+Z9rgK4Al2xpLYKrvjAJQQuWgmbO0ZrHzFETEFFNfbA8tujrdYMdMHelegHqcc6xMnTzV86HCZbz+89cIL09J3vjV9AB+P5UREDFKBB6fK7Z+VBI9sLtMKxihHFRn43AJGKjrqIqOiGSJFT5mKvqonjkz/Ew/pptZPEZq8nFVStv9REMp2K+tfdJCrA+mgQ5YTbLSQz6f+zCm1nEylXT4hrJ2sNWDojvzYESdgiOI7Yz3N0JfUhycKkdQxfvo29FKQpU7J6dO8bfBj0rXQkqzokgdUSAlVKx71kPRbHfujJbKolQuFNXwuO4FERvmMa+cpEEhJKBCYiZAnSyQh5ZtXQFpWH+wb1wDbHfUAoyCz+gxOn7tKU6hkLTumpJp2Hvk4T8bO4Ldd+zYdUPyxj9/Qs/61DGsEXbK0zEH/4KUnf/DChe3LfPGPJ4iW8xr8g+XNOMTsuOoFQANSF03DlardxH216CYC/gSodNPLNMaHHbz04b2PUyjkXsjm9r73Rl5/+rm3eCHQKwliJtj7I46AL+YlzcOVH3q0BpIEByJZdUy6PUPAseFgSBc4iSDkcpPUGlUWergEQBDmCItlOlj26HDKGTjVVzlb7+7Tv0z4HhQZlEjXoEWe/8jDZ9RqAq7hYgucstCiws6BTcqElaFMGqGQFUh9Fq8ZBYR28tTCDy4LdNqf9qVrWlQpkjgqyYISnxrLOCIgg4SMq3xphVIzMlqxkeiL1XLlYrwBpeyUX8JoE7zYp5oQQIvJspPFUjl0zeKOOMiWWMvl5K7sRFpM42LDzcw9UEVOnUqS0x9Wu/0aQjLq29xmWnnsMSp+6uc9VmfOTHtx1LHiGOINdzh1eOFS+8ZX9ADN+Ijf2vapfJ3Qf5HLfooQRRo2bZ8HVceRKS3CB8PpgZWHaKdl30bIU/8X/sUXpg/xUB1XLcNTyNcUX3n4senMpz7Nz/5yEJ4fMJFBrk7IQNUXdo4dm6PHftJCID5qV6pyywjkQKnD6rjFOVtZumkf/PgeEE8ylqfnfvVXp8e493+WHygiMunqVi1MbSivD4aBev7xK+gSLfWBIHMli308aEDK2C5JMajbsUkNTDkaQy0ydUJVJ4rIyxtCA2zMf9BtflAjZ6yoSSAexq8qVUpZ31XChQwZJCJrZzpGDC68qEamdcUdmCP2tF/xJPhZZ6ikrZqWN05W5KdRSssEt2NW6574kNnm9+XjZ8VQzOCWSOljPPbjAzt9dD6JPWiaMrX/IefERhpb+pKC8zKxGSStqVxWExdFCPFIUU1FP2Q2JLR6uFIam4b0VVljSjm3Y+Gl7frWtpSvq1euw4W78+G+/B+YoMAbDRP06hRfIA0Zn2/Z2dh4++mvP/HSpZ2dPAC4NyP6GNju+/8eE1+Oo1dhlbGrSDe3shDOmwvcaIsNGBFj2B7d6/AhiAN+EYlfBTw4dvYkbwM7vX753fPPGTwDJM4I5PBwBHjUr+LbMTysscOCl061nlFKZodbVZHBn8UudSZ9f2KphZ+Ohx59hYeOpDAgQqvFyDNFB0sUarzFQiuWeoxmjOYgCNFJLoJqpUrBASed1IxUXSmC6aIb5tyehDE5oqOeC4STXdne9C+mqMfXLGLDjrL6ApM8NjQZv/Apf9otjHJSIGmV4nd8rgXUT7jpPu2rr4AHltip9kTdnTaRSbHlEx/cMqzV5sqViv/QSyOBhNm5PnigsL3GptwrfLElKEs/FB9CYhPDYMKjuNhm6xU/ChxMfQDw1COPZs0S/tjp26Y9Hc0Jq+fyS3yy5TfxNjboil5IFExSrkvo1Bo8xkF9gtZFvXFLzFLuNkHVlJfJXTOV8Wt70n74+d+cHuZe/92cAHgLwlSf/vem43/tP+bBP99Y2C8yQSc2jFUcsm9QwPdxgpBqnnwGq3kWlM+n/1iAp3HjyZ8nNva1J0Y5ptlW1Xlrog9Gvs7bCde+94fT/Xz6X7OvZJqlhJHYmZOgYm/4mppjFSHV1BMjONKKni6kqB91ktC+xQ4Mkxn8QFCpE1CVhGaXYWCl4tQKycY9aStpb2JILQO1MOJS7IzOjjRwo047SLGPiiZtVlm3Aqf+k2dcyrZNZjaecVwmSzkHM+DDgiS2A0zdrH2lyV55eIlXCWYNKSJ7fYOuq8q0z0bR5MGz7EKRF4NylCUbeiGVTjEop7/sQ/6VdUtHdjn06pexPjv3FEtKAQPmArCld4PhukcyLvEhGuw8UUJKJrusH0pGPYA00b7UThAilzo/AJQTgH4BUOlqtvU6H5YG3XrK7DwBuHLh8vMrW7NL06nVaYfLcN7/X/XgTwT9MDwd/QiAwAU+QG9hXqPw1hnoaFZ3tZk07hIvPdjk3sfOsr8MyEOAyzwetMc3Aw6mvbdfevVpFxAEGQN2zPXxuBFtdA5q086DD077d5yugZq+pmvHGe9CJ8cI/PB0kL7IYPEEoVaBTKIMweFLznKVZYuTZk6y0i9G8eK5u7SBggPTlBlUA7aah3/6IYagJmRSD3Drqhe7yvRwpZ5Jre8DpM/Eg+POiRpYduaxT6F15yRmTlDBkeZaUKLVD1kLYl+mEmz8S7JxUqofKDGpkjBd7TIffmiYzXhooEWNOgSqxWtysBQvflGzaDVwTd45CHhVNi452w8uNO2ZfGpPmd6SQdb6cCbthiBSrqgYEwR3br99OsE9wdzXpr56+tS0z6dZryc6DtRbJf6rWxuc+fOjQIE0fgJps3Kxcv85fSPd6ZhGVnsjWvLK6oPnGB6TLfhpSB9WV1d4w9jFaf1f/cvpIXw5iZ/2gXC7nBCsf+oz05lPf3biHRugQwTLkRfMuKJv3XKc9xmHcjHRw25drcgYV1eX4oi5MshzC0JftJs/46av5BH1bACHX/i1fz595PbbuEXBT/5KGv2RMYBP6BsCzMSH9BeVHHRkRc72Y5e6SVmxzUJUJrLKDwPyuoxiyZauMAXV9sNUl4InsqpGPXtKQtl3yqQagdQVQWMcvIJsADQND63OK1apB8NSBEpXX9WJ8UhVRZvBsM8KM2dawuJArVllAy5Y+tIwFrreTiSrYGvdsaFOycV2myhax1yfsiEXX8hI1rJz7en2hjDijU5iWkbQxJ5lB5QujwYlqPgjoDzBpFkkVcw6ONAlZ35yOE3/xx5UARRTI0GIkYaBpz/+Gbfwg0zZ2aFJfjHT+/8fuM8adX3SWqX3Kw/+Ys4LgJ49tbK2ucxpr8c6j3nb3P/3GOixsCLfri0q6vwtTPbAzzLZGGM7Lb/DU49GmK9K85PAXAXY29/a2di7uHNl5Ud/9L3nZjt8QdCI240EfTHY6i+mwZvLsRjs3nVm2vzIRxGrkVhQaoFlTPsgrgvV7YpizgnCACCj3IuK8jkS1qAQMjoZXKnUgEldPf0lByPDU6yqspdxlPI0cHxAR6gYRiv2hyK5hK6qHZSc3ZchIJLGRI0D7UQdHNUXoEGGGy5kUlOnvcZg1KWFTkw6T2G0s7E8AIirOSQr5CpgT7S0xVIqTUhb2UlLO4ruIhY87UXlCKfWcury3EjxSwMlBmWRAb9cgyxdYxS1nZJ6MRKgwlLKRV9AhcNK6IzULsoz3v63yvfpfaLdy9zH+BGbPX7PghoKxoGDPxirm1vT7pa/Csg0ixl2mXECe4VEeGLkQ29WOEhmIZPnJ+pSg1zy+aq/B1LlJJH6RHl6xofqqN918hS2q0/9oZ9LfPXv5F//T3Ii4Pfv67K82ABgINCMc1wgljTW9kIfL+PUL2W9KoC0zYhfUaQS3xKqilrwCGTpFd+f+lX33DM/nE4+9cO8nvh4gi2YMYtZduix5YE27Q5OCuVb5qhO2kb9JeZDLlfv5p0LNWIlq6iIGd/MfUpBLzdE6Ho46lLPvzttoW3jzCGlnSI0PScu9n/MKkCL0au1qfrLtUa78QURk/UjH1B2XSKrOCJgeDyTg+zMKI3SSXsznmSOeCGSJI7yrmUABkB8RUEKbxhSDswciMvKgHDtmLeVQiMBq02kZIpnMUruGhfd4sCFlFgomE3HLZBUbOwWBL9iGZ4+5EQAOfuiMvdsqkqzrI55+4me7U1qdjUGOXmkxKLX/WqTgu0bMjuPev+fF/fRn/PjSzSv3i3yFsvMbe//Ty8//cyz69zr3j3Y4dM/9/959m2J+/85Br5zFZYOmEZejhbtpu9HeG46cAPeqBGHfBFwfzwHMONFQEysQ++J8OuIewRp+YVv/tEbfGfyx064fNL4E3g3gp5c+f3dafOjn+iOBgdP6v6+g4OY6pk0NsdMVXvvpAu7B1vXSgjdDFZlSeke/XQI8ufYkhxQSg60IrSsSkpW6NWqcVuLceqBranjoMxkBU9fA0KecW5NWjEqo5zpMAY44ANT5+rg2tjadgKT5y/BKFBtpmmIlLSFVIZR4OAgVHIGzZIb9JxIyAcHtUxo6BW7EmvT0HoRd2HGRg4lKqlncvIPYX2Yp4p5YIfwiLfu2BfBwSfoalYsGwDCQMtiSi2t1p4MMexQPLLqQjrjYHZw//1F5naA8KvHj08Ht/EcAAdcZe1ZD5jHqe9cuhzUhA5h1Kkrh25Chc08lAcNZlmqT9MVb2NZzc8Y0wYED6i+13+Fh+o2z1+a1r/4r6YHeZ/+cTE5U/AhvRkH/M1f/uXp5EMfnmY7vHLMbwv4xyUEv53hffyML/zxx4zsMtXFr6f2qek4Yn7roJ5ZoJ4+IEfH+WZ71TVsFbqi+6Iib0HkBIczjB/9s38+PeaT/8TLLz3VARyfwKiythfmp74kSCHHdwNuFyfpShdTsjNyAAUjPhY/8aMR9m3gaE8UGwfEhiMnLkNX4YgMe5Ez/hKKmPEkXQjp5Lphm5I80Vrglw8KtczwhTipkQ8AwakDjhjhID9OcPQv5wS21QNl5pp+KUw88TvmxbYN0iMj3/Z1u1RQX35cd3zEMQXZop6iLpnSV/Iib1379l+YoWsj7Q8ROrJ9nkehcBu+zUDTjbAai7hpUl9DTgWCSXtVYl+6R1Xq6XD0iY+Y9tGR/7YfWt5i2rZwLjEejYpFneYBwIcfx97R+/9zTDL+5WzyxCQDa+5FCtB5+zbfzNnaPv/UV7/x4oXtK6tb2zNf/p9L/74LxxMAbxpyTLS38GyeRhMXaXPmzSrc6hOA4ediI7p8zk8PWQbMvSeytbF7sHb2FD8MdPwKzwE8b7A9OZiDLARe2uiEwW/5VP0p1u1HH+d3AZxI9qWDhpjORwJiQKsjucoIRla7PciQlx1b0dUdN6Hg2G1CEMnAeOYvr0Qs1Qnl0Im6mI74SCZzQA7XhnJxC9cZnzEmsP8JiwOxDFcGw5iZYdmURWNUoFZrlMG+LihUavBqQmSBsF1tS7yORnw40hEY+zg+2pt7ooldgdfEb7myxj4I6EJHNocQioVhwQUEtg66cLEYpE5RnbpKok/UaG9N8PIjeCOQyB/d2qmFHWm07HeVbWSn2CMuNjYyg6FgLRCOgW0OwCsP8LOg+sgfX+iJ9ME9/CYAqsO0T7uvsW2ff89W4lYx8+tqGvcThQcb+8uyMbRtKYvsAbdoOahFX3m98w+v0Pe++tOf/9z0MPS7OLD6SiKb4Pf+L3IicPtf++t56U/evU8s1df2wMnVCeziAXoZlcE27lncqdlufq5URTbqfTDJO+P1I3S49nu3UxnmdX5vwJ8mfol3/t/+3LM8+c9b/5QJUrKhXbSMB2Nl31cmw35M30DLmIZmFOxC85hNUIyl+m7o5I8yrhsXohpNMamEmJgognwJVuaBZshAScJixlszgjnvdCXEJAWTSr4Gay50UgtoK+Y6VyY+6B/JyjxRloyoD7c5XyIbPuMeSoGRpVrjRHZCrR2SmvHVuguGasrrnG21J81MsWdkSYBkqrAznnWSAg1WoLOj4smOBh1faCrhn1gJrWCjkI5Ttmna6I7IfI5s8YO1UEcDnNoqE4SGaF5eCpQcpzQo6xm06t40uGSkaXf0hdrBKJQD7//zAiCPJT8piZExd60QRNt0+b3zz2++eeG9PX6iZmeT+/9c/ofOjwH5uzimvAO4jBbB/bX1I85NLBmNW50WGzIvY/jw0vmVg3V+BGG2tJ17Iisn9g72d+mxw2n3rRdfeXJc3tTBGwa46YM38jSIQbjN+wB8FmC+KPXgc4wmvhYcnObSQid3PHXXFLkHp2fcpOiPgewgijBu09k6j3QGc/mDTkBqdGYRc5aNQecYDSi7DNhiSZonJqc2Yt2dOu2fZSdkTVyREEgFgdhBF4czEVIIzGcAAEAASURBVOM4PqqcnldPudaLJxpgyycpfRl4RxglHcP4XAfC4MsgxbzsUZHuCQ4Et8RAXggW8CHClkmNUycG+O+BUhnjY0Kv2mRRv9g6RvJyC2felu4fYlSfjOIMIOAhE0Rtd0GXksizELVjCSWfuLlZNR3/kL8BgMDYKC7zTIA/tFMLqT5M0xoL4vbbXt8TnPaT5V62BsSv1bptm9kpfrr3M0EdpPMaXcaygDxNBF+p+krdKq/5vfLue9Pml744fegU9/6xt8Sh+gD5TU5Udv+D/3BaPXuWdwNwCRPdAz/5Y3fMBw8CttF1O/iMi7IgTh3A6wTB8adlY4h15SmnkZZtP7k9UYmct5raNyurPI4I/6V/9k/70z8vJ1K4/qObCrKZR/rHn7FSsX6OlrLjsc5yqRR2mVNQHfjSNWYnQs44T4dSydiBnm6nPuSsdxIhATAf80Ic7SYpgU/BtBiN5IhpvfyW7n/YcthityJUt3lCRQiGglk7IlR1aGqKk7YEAxoioadOiXaMWIUx15tLYbtlWjP2kIt77FISar4ONE1bjPfyTbeMsn5Fs3yzKN022BYl0iaL0CSJrV65FEJal3oAGlFhT24YAZJV0E/KZZN6H9TT7oFEUBID5SzEFzKK1c1poW6QLMd6ak6tZlQhtqs9swd5//+9dyJdJ5W2Me2MpmZ0EvWjhs1pLZL6Oz9+46mzJ05vLB07dbh0fJdfwV3hIsB2jn2XL6wc+B0hYdjMC3QA3OJ8jOxbaabiftSweQNd5vJzwNwL8Z7I5mz3YGt9Y+887wN45hvf/uHu7u42weUdIR1pvFwM9nB6kTYXpVM8EGzxDucMDgcDWz61O2BseRgOBmVFU0h69YdZDTw/H0mn1iLORHlVh8jAjKxj2ElD0q/5Ip/JgZwYMtnVQiANH0JsWg4sYoIhneJ80aEcgkRApIcUn6U038V96CoxFgH80NM4ntlJINp2gCg7QWrB7Lhk0mnOiVb+dyvKNxVxtA4siNlGQ5CAqwei8YGuTF59G5v6IV809cGXDw1O6vLTv8gonAU+PHVpi/RgGYdopTqPl20MX3UDWnr58R7oGS+tjwR47HpREE/xJGWJ4YwV4/h9PBSEkz7day7GKr9COTPG/tl/JL/jPnunfuEjvcQl8xzQWwflnC+UD6WbWDC2bEqi4lgCr0447Bbk5GkCX576jd+YHuNE4E4fqoN0wGV+X/N74b4PTHf/Rzz5z62wiBKHfCLXNnIu0i5+nmTXz/4Cp//NNwZe8o8clzHraoAnEPiiD7gFMb+K6AE9bQbYoeI9fz+xe4tCG89+5cvT3ed+PH2QkxQ//aenAmBwVRKsYi3F9lb/KcsfIvN+Stme4UChMdqVMVAIgasTKWTmYyPM5hV+bqfEmIDQ2MWbGLOO4zKqKyiW33IiqcuKkFrTFvCHTuPaR86FEOxTdWxbKaVcFSjgqy3awFUsJH1QPwk/KB+NGUXQca/vSZTtI5ULuuJJzIeEDPXy4aH1Y7vpcx8yAcrnat/cRBWIQcYjclnrWHe8rusJZ9a/2MdqDJuXB0on2SyKqdt8gtScuUoMIBFCPoQpWNFKAy0PpfRJ8YctJ3HwjbHxt03kSYyhRIpG+MEkVHbKbPn9/wMenFV+IWWOzGNtk4bxBSGK3v/nnRuHL37/qe9f4CV3B/Wrt7n/v7xV9//13BAiPjp40diNga8286eqJVx/KoSfTnnc83BR4ruQ3AshEPvEa2N/e+/KbIMXAn3/3OblK388FlnNjMBfG/Br6+WSnbw7bXEbYHR4FjM7FwGHhKkiXLGvTw/FdUSNfvfTZw0wpFVQpLttPpBlAOMgqgGDUCa7AxopwRgo2oh6qOI0YIxhh5mnfj4NabTUYlS9cqBmzTgjz7Adw0gb/JnSRnHjfNuB6tobmeGTwrJDL/GsW9IKqhdbnZE/iA09hBCvuFbsNNuScSGYkakYxKAa4CVmHC3iKjKQx85C4ibNdTCyLATj9of0Wmi1ZgxJ2R3Zt5QTEA82+uVCQvuNtN6oWfEUzEpAu0y975/PTpyajvEtALVy/FGXgJ586KE8H5Cf49U2GHkT/3vcAqA+/yQtrHUXSA6cFS+mYXxxrPjntDRXjtHXB0veFpo2+CKflWN8+uf2wuxrX5keOM33/h03Lmbc97+ytzut/a2/w/f/d7n3zwtMxIDn4wM+m1CxFrfqUBKBQ58yBMcxmif6dQO/Yl4JD/Q2RnJc5HoDucNBnzP2GYfe/nD8LvtDRPBe+/Vfmx677bbpNk4kgIgtg2D7qsMNCjUDKrxbEn4hF8kEDbEcCGlItGO4ygGzJ01idZ42yGSTaZ2UPgkBYjWQvPVxOmtBBCmH35gNo9+e9Lj25IpTgkC90Kst2tERZWNLZewlhn2ggyR3fDBRPScn5lZIihvfoGtvxMT2KGRbNUNmXE2ZU2p023RP2eIqIYGaHUQesRrQRU9fqA/f/yhipGWCJ234Er8Q9OQEcpLrnyaouDwpG5wQqA4QfVDQdlgUwB184zY/MEtz0MofSQzrjVHNhYAfjhxTjR8KkXPANjX2my6x2xI2dnYeeZyvr9YJtBojZf50ZfHYc0059/8319ff/O7vfvmPL/P9/+0DPuEuLe8zU3LM88OvH4L7/r+Imh6b9WqApVuUejrcIvSCTTxvYIEXAr0V3vLShu9CPtjlROBwd2//2Mkz0z0nb790/sdv/qCDTWzfD6aNLPAXZXce/PC0d4bXDXUow+sQm9XkgunIjImeSZYdkAysmryUxwDBVi0QDqYMrwJyEGa4kccfMDGQv9SdvPIi1jrtWMwqT0E7IRevyqU2fMnEaM/KrKBQY89S+xCyuGA6O6hnoTYgaR95fCPTduaHfgonBnntLKQt5iGbJ25aiwIC7WFUxTnCt+2lN2jkamrM/2LGRsoRg4hb4jS7rEuLXmPmhEAs2LZt0a4k68qb0cb0AxguvBUPaC4aib+W2NJ+AbGNrA+17fIVtjVeYuOn4/SrR0AwTn3w/mnGr+9J9VI9pFwBmC6cD3++aHQjPcCKGYzE3UMmp3/AZZGTY5t1RRfg5ioA5VrUl6bnfPKfE5M7eef/iu3HF94zOq3/0r89nf7kJ6ftLX5vm+RJiYePtJ9MnGq3TDbi4sX/RNgY4Ffo5LZT3cSaxb9CGLSMFddjhZdh2B791H+/FmhTnsTHB4jBff3tBCXErn5SgQalfZ2rq4De2Pjg65uJij5Y674sshrQFEcnajnBo66JYESy6orKCN0dnvaBTccypmXrJOwaw7EaX2Oj7ZWf5Y/iulUdG0UIYjedsr4Jau4YqYT3EuJD2anmKcA4GVDqomRW8aMUpvQqJ3bSkuw3VcCMY1SaNfTTNtXhh6Uu//HNnD/pfnK2Nk6MynV1oBcrFnUsV/I40Q5PPYWVMdkfVvTLooNE3IFh++w7ZMr3UtSLkinLVVG3k2LGOdjKKqcx8tik6NnnfEA4YgYW+bz9yvFLnnfcNs0+9GEq16eMy2vI19EgGPfLb7/39Nr23vmJE/btzS3u/6/kofeVpU2m4SG/ilHHwGvg2jEbc2tTwn9rTVyHXr3bZO+B8N7fg9kWzwHszA72TnAiwKsSr+xtHb769LNP9u8CzP0cgR75dehNCJ8JN7vTrwPyJKd9TIc4H2uSS3LgGWs3Fr6EOwKRyX3HkuqBj0A+aaOZQUVdVfXyybIWxrHY1xgMs2RqRJeCUA7GTCzZlHuS1iQrn9S2Lf65SEiFQK68ZXbqWU69aPHBepwr/ZKVBlX/5efyqzmbKdgF5EGCKinTL/LxU3PRJc9kJc8pvrHLFFSJhFAWYnLl2ZlVW62nddXs2LUeQfY4pJ1ASqeMTGI6Fyt6fE840J0LRIXd0EF2LGI+iV+dU7RqZNFYhCvKyMcVFjJzHPErgAd33JGDoi8ESp+4B3eNe+2zu/nOcMYBY4nL/d4CWLl0iQd/+K5rsEpDPxIl+s378mkqWdqHMVvlQbpOMrrP0fcqggdz76tvcGVh+ytfmh44eXo6wTLiD+zwq9rTBepn/sbfzHf+bVa6l84a3Z2xhd369KppT0Rsq/Eu2yVzFD+PS/rjwu6Ji2XbcEgba4BwK8ABlTaCgeFlfNzkzYRv/frn6hf/eFfBip2JioIZCY4ZHYtiY/YcUC4yYNaY0+c2IdOxYAMzEJG0zp8u2Io6eap69oiqkwNdsB1Y4pR52+yfhOjTd2IW4OBRjb/IGA/GtnhGtx5SRH0AWjTpl9iJDXJpH3TrHe9xEI59Gpm8daMYt/QlwSib5WpIER1xFL95RzmYkmObAoMiB/Q41fL645Pxmhg+BliSTJJt5s99GTGrsvgjSVIuWlZgFmTrR0fdsUmn1dDTx7rE2Kh4iCohoDIkkOy/ToCHqqnIphkwwVNe4/4bo7jDrrwj6z4ZPmmGdm599GPTLicBdUbedt4ni41rePrj7bU3XnzleytLq1tLx5g9J5b3PcZ5rPOYd/miAZ8nVdxMI6/aLdwvRPEWWnmfBp0jRgyTfBfS2wAr/CzaAVcANnd2eB/A9up3v/jVZzlrOu9tAIJsSoea3yhdS0/f8w7njY9/is7vwRCi3Q9Wd34NTno+Byuwhe9BU11Rw9kxMnQyXiJDH8adINawav+ygGTEqady+T32tXaphznYGeSZZJQdGmzFLYG889wVPVDGxIJ6bOzGJUlHehb1MpS2ly9Dtu2V5dhw0tfdqJ548Ooko9pVRt1jU1/1L36Qp0CW9qFHY+wLxSZ+rnb4J39O71gokolfnUBNYBzPCYVtUqIhFku2zSNT2xknXUMkYwGM3FKpzoLFcEdPv2ohVr+3xN0x0X6LL0tAnPBgvGvs774HuxzwvJ4eJvfcuUyYp+wf/cjka4JFMHaeABznU/h2XgkMRV9tdzkQHC/J64L35xM3tEc59cjSjnKkMAD44W/8ep785xszPG+H39jb2JtNh//p35qWuBLBV4+gYW+0x3ZgK3Ds63v+frqHEtv2uwcKJSppUr6xzH3+vm3Bxbq0YfgeuRrAUfRKiem7//evTB8hdvfyzoRjtl1T/hkDrHWjKGvXepPRz0FIWkzB8ICsjpv/XUzB4NjOHDT0FzGE1Kh/8GNcRaixgw0EI2q/Uo58KAikDeEWUmMmVkVGhvGEasZVTArs1imx1C+QtWHq+JYt64DFn9IbXiQ2o114EE/jL/JCgRM39FPfUQ+Uc8KycBCVse2WhCsaNRVyNhOU0u05F+zYQmYcIRrTmNWVxGKME5o6iQHLfsAMVimzz5RrkDgQ52HIL7pF/c1YVUc39VfR6BQ/7W5+9FU0oZwxFd8EkhZO+1JxGMhVUwADGo5x1co3x97WJz4FexcZwY5SxinVjJ1h/4idEjwv/y/z4q3Zk1/75g/f27507NL6+t4+dwDGLW8FOSU+8BhIsb2N+tjdiDZ4Ny3vnrlpeO8HNKI4GmWe8vL0Tr0MAYLLHK9UPZhtHuwdnFhd2nnr/DuX3333GRdCu0nwxYX+Rp1wHY0FaOuxx6f924+nK8dgc6EbnxLEDboWMuisWtFt8lh2YDtghqx0J5JSlP00AKuFyRQsvtTiFdtytcODOHrzgTQWJHQZhGKbIi8piwiYPjGBL7GrnIKeSinbk75U4bFA+EklXy8bQAEt/yyqWPJgEi/n3HDJsnZcL+aLcpTELp5I1IxC6WXxdOYXR65la9oxT6nZrgM5+UjslShvFNRupdb2RK4XrvgTcbB1RvkIj74QULq6HgQUMG+yMRwn4R23YgYku2o3RfA9AVg6e0fFFCwjXn3kp/X96fjPfYKvCXICkPYv5fcATqKzfZHbADonXTv646dnGs5bBWLHk4PoxV3b42UKfKVuc5HOQ3Wry6vT5XfemXZ+78vTAzxU5zv/+RnAaWe2P13+c784nfkL/yZP/W9lHORbNChm2IivXYHI5dk2rcMpIepZEGhUDlpytI9g/ItPyMcftWqspE2OM7R9BmF1dXl680fPT3tf+RKf/k9Op7k1kXGpfTHtB1L6inLmohXImZNxTGfYlI2aTOsqmuNj19VPjysisI2wY1RNB9keY9n9JZ5jLjC2Qz3lVQgCtKLaZ5mf+XCAoEkRfSN5IDUOVRl5VeO77RPaQU4hssYvsbAPYLaaZSXKD+XBGTwhEY18pNRFQDficyKAikpNTlEBoQxKhNlXPOokW4uhxCdjFFwwI+2YFYctVzmC6UmrjYCuf9o3PibJYakNRsYFPNsrnTjUwRq70NzSDwMHZZuFZPQtxTa7io1+wdN+HBRH5U7QbEOYliUn1tpJDZYItYWtlL5ZIR3wPo2tx3gAcBG3WPG3i++b0aa8/nf94qUXn/naE6+uH86Wd7f4Yi7HNr62m5MA7/9P0/wNQJoe5kduI255clT8LNL7NSp0L4XwWsT9neUdbgMs562Ah8trXDE5tvnWS699Nw46SkgOmJGPcgjvs3Pg++uAW9wGyEJjnPl3PlbMwR0DwxGlGSdBCoqUfBj5RFl+ZC8OW1LyDE10SiZwQz8kB6uDvizXAtogOfsGKQuLwu2DWG6try3GkLu2w1DO4tRTXzhkoqZPvVBpVLW5b8NHSToUZ4/sZKGBLCeLqPpVKwwani5BYExyYzFsjwUhnzTAkBNeSjXxAydLO0y2oxMMgSpOQ6YuWWqTjVgt9qUQYps6CqUWYg9xyvqXqwaRdAdvxB2NiCtkPEZ8LRo3mHsuhrxnPyryUVecJSs6pz76kWmTB93yFLx4PFTnuwC2OGALqW/1lUYVVXGxqzFhbOvBREYFBmFHJm/sg9cmpiW+Xvcc7/x/lIP+XXyy9lTQd/xf4CG7s3/3v5z40JFbAZ5Y5BO6qgEjxwn/MgyAz6V8+DW+6J+MMwlc8cAHv04Yn/QTauSIQY0tkapN7r09kYcVnVhsT//KP54+cfuZ6S4emvTbzrYv+JQqVxmELNYBYoeV9G9K8LSgZXKLtUuesZigOq7CjG5iGtGhi3F91q77YMKDrLppxMeG2TYZ1V4EaE4q+hl5o0fRsyr7CZrbPAVfAWzGhnq2nTqbg0fx8l8tSw0iH2eGD5JTVsyKpoPRrdFf8eKAeiq0TJStl+06+ImhvZECWB6Us4mFxSR1C1A32dBkS4z5EBK/SzB2ShpBZXE2rubEQD3l7XvAE3BqYHWvpJ3Kh5eQGXiSdmynfg8fLGQS4gFFMQoT+WCQZ9KKDylsS7YGgfRRjemWiH6NS+br4x+b9u65g773odijNI43i/koH0lRMm608d3Xz33/zuMnLq+dOov7fP9/trK/vbTNA4Cb+x7zaKHeui0mHTVdSy/qTd53lG8y6vvDjUaNhvMgoF3Jz6cwGmZbfGtieTevStzk64Bv719ZffL3v/lEvxZYX4f+VRau7YSr6g42Lo2uf+LTrV5DLrMTuBoSR0NZC+PsNgelWILPwI3U6B41M+EkdFf2gnDkZrl7dGCrcapGzSVKVhSToD8OTsqxlRkhj80UGaQyE4qU0c2csiURa5lcIRA+c7zaWQLggzv+xGxNaOKYAphSrnqoqE4xKcN3+BY5cvFJv/HfmA7hRX19jXvxHxkdtn8AVsdqgZLJDr9pnMhUswe2eWnENxHU0XXz+FDYIiiruFsWY/NxFNCpxKkiETlBbGeBkXGgpXzIve16732BIZWX8XhAOHnPvdPsw49wogAcC57+r3HZfPbuu1kQbKAW1PHEKN8CIK/vxRsbX7fDbIhg+6JNQr3PDxD55P+ld96ddn7vK9ODXOY/oc+grfOpe+k//7v4xotLNreDIceP/j5UWFeBWEi9lQbZe/EuUNp1EVYG11yy0+RlFj7fJ5C+gp6ewYl4pLAeNoY44uePqx+CPfflL093vPD89IBvJtSi4Mkrnoa0FmHpLsRoQzPuEdawMiRPV8bIcF7HFoJ2TVLmJVry0Cl/DLQAdYBWLtC9L2xQFRlbF8cJQq0h2IGvyFAd8uJlzMeRlhMwhgqU0FBtO+UA9WrvwEnfKBg8djk40Za5vPapSBgO56QeKvU6iEa95nqw9Me+1X4BpR1piDv7QZ14l6pyka0gRld+Nm1HnqqD0SGQiaa+tGKmbcMnxof+elAt/5VhS7aQy225QLVNsSJqG+Qrpx/pd3f2tx4bK7a0SY14nLyCqK562mwMx72NgFTe2SAwETNtfuIzTLi6/J8xh97IS0KosjXqI5e+zOV/X//77He++60rS3uHs21//pcv5PKz97vbK1wIwGGSx77WM18sN/nWZ7b8Z5VGA6+yV88BvJvbAN4fYdBytrS8v7W/s7vO+wBe+MYfvrZx6dKPxnMAKo/OGPmgLQJf1UFM0k0u6RxwG8BBWY7Q2wxma47lDCQYqTvQOmXw2F8ZbEh1KxxwkQoeRCtDT/nUBXHQLYYZRs3M8CJoXVwPqhYworq+Jjnea8xTgBcmnuJ4WhP/yubwb3yyShwCE6WyQzGX82KLSpmE1tjxV2LxMhkt51OQymx64uJXImTKy6oYDdchQXavXmUW5jFpjCPMAJeW2JjIQcD2h9o4qcUqfPHcYyehtqQcdU1nZwFqSDqSKhQILg4hUbOYvj5SrZgqyb1/DsSxZy3CAvEbAfzQjs8BLP/8L/ASnvHVoaVcAdg990bwPeDmcJYYYQh5Txzy4zu0L0semL4B0Hikd+GXa8jz/6Pf/sL0CJfY7zh+khWEnxnlbOPKL/870+nP/jxP/W+GljeXIWvIvNTvVaCi+WQ+uH5Pn8D64F5ahYxixsa1qU52izcOSPnuv9IKqqc73MZwKOQqBW1Z4gRkb3tzeuVX/sn0ON+WOMPvI/BcT3UJ8kkasSHoFYmC4y5MKW3XSYlEFn0HQSflsn6WghVk0CtIcjFsFSlqPUbsYwk6PE8lO3cmNmEy/pVqlOBXGaw0GD3txgqS2LTsC17LsAaKmwNmRJAPqGsOhVTE0BB+6VqpVT90OZltii4716wRD8ZJ+cXepmDeUdMNL1o7FP8EQ6LsQNFvxTMpOha2S3y2HFRVyZyST0K2wtQ4oVW787XcFivsqox2adv/tD9ehAMB/8WVY0Pc9CPiYlAYtxjUh1HIGicprox0sqQUOi7imTL2aJtjIf+VV7xUZH6fPs4DgD9HkXneeuZpj/hNc527UYKfy/98/e/cH3zhXzx3aYfX//L1P9906/Ft6CxP5w9/wv3/IXbL83TtLbdSBkbERhDMU3b4rK+s7G/x1YjZErcBZgRrd+/ASye3nzhx+e1Xz31PiAFQcLW3Q0anjHzw53XORme80SnfBshQAUnLDjonVA+o4GfxhWklYuCrg2zhFa+Gf/EajAye/uiAcyj97YQnuVssOPFCC/Fo4MYXu0W6DtSCmHdXWx8DDz+Ftxr/5IGZqZFB2vXmD9+ilMuATgSYWTBEqFT3z9onfRj2UrY+F0wx1abV5GssIRIPVChbzR7ZXGEZi60exw8nl1EdgaGc9qC/mAukSKxjq4ATg7rSoj3o+gReeiMyFS99kpqFBplqXjVAsfhqzGHkZAbpcNHzZ353L1/ieApq63IsTduWcun/cDr9C78wrbPA+Cpe9dbAOXz7jboTw6fj8peDJcw6mPiJHzqX9otW/rsG+ynbE19POlbBX7/w3rT15S9OD/A63ePHuOS+uzed54eJ7vg7/xk/9sMJCHb9lkBOGRKDWphBCpb9zaE+sbNVy1xx8IFDL8/mCXBD1jHjC7kVi7SiD+KRa3EctOqjDJjK7RHRv/OP/8/psb0dXvpzejo2X2jtW8e0qeJpL3RVUh+8yLHvyWmCCsM5px37MRru9K1qgbAvqpoejN85cZCuc0qPdupTEjk0bxHmQEfHzHWgJKFfB6QykLEkL//tEQemI/tqIStB+ICUfJ5BoOiBTFdiwsEQIRrYg1yRaim4AR4yMCLbbR827M4R21EOr5DgKlBznaxO2m03cOLVgEw9kspEo2Jm2bND41Qc9t2AxIP4titzvh9kan7ZfwIIanwtY7RAO0+jSl4eQpnH9hNb1lwVa9hGp3CMQ9EdC7ETG4LXNq4QaDUh0tGYg88t+Mxv62yxA3/r8Y9y+f9OaLQh7aTYecbiQlnc6xJCyr/3+pvfP753+N4qX2nf2uChNt7/v8Pb//j12/0NjnWabN3hsNVBuw72VhHGrLxV+Iu4o3HpggVG6MvnXV75KvPWEu8DmBEonq3m0okvBXr2D779bS6p2GNX+Wug3dJ5DbjYSXMbdtruDrcBPtMDxUgvdEEPmMg7oVuxHMVGCNT818tMNIcfZQed+MqQZedoG4O2pMKuM+qWHQpWHeyxUQM+Axs7IQEqbD4xi4m9tFe9qMm1TCV86nzqyhmzMsZoPnsGZrwEX50IUaJR6Of5ggBCrwYJkkVYSjsFy08iRdCCxSzciojZwokN2NUmpDRpDJVTiV2dXEmXiqRt95NmhCUVvmpH7dRf5clStDfwyVhKB9e/sh8CdA0IwmZG1QMt+/xbMildC/+QJ8cHn+q//PTT0fMiuQW+hi8rWvt88j91/4PTzmd+ngcGtc7vAbCt8sKerXV+FZADW2IurAc5Px33eNOXuvwsmcWHIZTL3YgmFhCe5d7/w+DdcerExBf+p8vc+1/7e3+fBwl9xzg/9kPyYb2xWo7Fvq1CNx5kxCFDlLpXGyQlFmkHPOPvpX7jFRoCJMdRJqB8+5/Y8ZrOvCzFnyQ+9+xz0z6vJX6Ug//pVW4ioGvfOqbSHl1jq0970Iy9WIJnZ6H4Zbj9JVa6khPFyKGTdiaawXD4Ou7G3EgM2vf0pQYcG+S1hwmG1sd4jPHskAhP6QJJKNAXKwcWfVIWu/HNchpETmCGFY3FJ8OpguNC2lDSp5RrPsWOfMdHlM3Kh9St6kPrp83QagxCTwdJ0KDCbrQywC2nzTgRZkQi6i5yFe+0DZKpYmjJGJghg3w242K52I2hTEdPe3BHM7IexWE0ZEWT9lsRV9Vmpew4Qb76PJQKWYwGQPTIlHJBhuaIFbPHmm2KszFQ/rmvNfxw2vzkn+Wslldni2iMbpB+Ep0XfPGs9sH00lPPfptvw/Bue/bL+zwAuLu/ss1vAOjNhaVDfhYgHl0Db+NMNzZcvJu6H8PlpoL+a8BG48yz8bJUgpH7pHlDEvcoD7xkcunKxu4FbgM88btfen7j8pVX+zaAgUu6UUdIW6SPuoPO2wD7Z7wNAARbBlwGjt1NcsD2YlMGoNtjDpbIdf9k8DaMHA9WyqmU2UFdHQetfznKOLDV1315CuNDy2WCoVufQio0Y2GKedFVJVN1fhmQslYCB69kAx3hXM5jErgAxNQAiF5E2JmDwpl7I1HtgzaUfGInLnqV5MQwVvO6stSaMF9ws+rrtKmZWXyKIkYwVRXTRJZ57cRtlRIqe+kPxMaEjUJGMYpit8C8zzpoQU8AiLmxEFzxGKFtib0kJeHZheFb55M4H/VPcIl75emnpue++lUWWt6sx2Xvei2uaH41cJ+vBO5NJ/7yX8l9eX9F7DiX6U+sb0wbbzO+8TNP0yuNPW3Ug3hYxfdqoQdlv0kQL/KJfrz1b+vLfO+fg7/PFWxha4ev/J147LFpi68a2rRg4W1pmpdf9QkujUGoxqGy6TXznGwdqRl2x7TaOYATiHpxEW1M2ZiQtMm2TFy89//0//G/T5/kLYn38KDkqt0ukLljhwbZZEAzx6JINUFW0GCzOV8jp2DkBUkBKXLnlJkNNsfPeihWWo3DxJZg1xhATIgkFKJLhRwN8upxq1WyoBB5xlNx5vKMBf2IbOZ1i0csSsGNyblhaolB4yqhvEYcu9obvlfj4NgWyG4dOFkSpeeABtd545Y1jzanjERu55HHBWVQKp+bFhDnu+2plGVxYJeDg0Ouj10d9pJLa94CP/0uZwFn+BkxHRtrcMZ+tSMWEMgo1Wf09V0bybFZflQbj+Z5yYz+7FrHRcBut0hCuDM5Pm0H2f6Zk1z+/zhd4W2+ozSOISM/4lxdgu/l/6Xtzc1L3/yd3/3BezvrK+vrm7N8s43jGa8Rz0uA+vK/JsY2gBbNDtotzbN03lILV4Nf28BRdx059NKIl0i8VGLQVnly8hhvEDu9f+wCl1S+66KfsbCAaaeYRj7Ki/UI8KKU2d1n+YngjyXsjkvx1HZgOuQKvPCiIyEDtfg5mKroxJ8PbHzKyg7JwUSKCMj6GjtOsvmA044YjdlyStfJAEqy0amF7Eg8k1mXxPVPKGpCyStXqWRCUVewJLKPD3xEMDYZ8t3+TLKI9iKtVozNLUUnhpUzYS8O2HOx3SdU2o5dj3aRbOfaZhQpo+efmOkrYuJfAZMbzIyKKmtuDpjGKksysz/I86nW2CYR0QWRmuhES0wTThq/KKJse/uQCIm2eKlW/5QByGXyFPfeP8RbAF/5p/9PYuwrbz24ihNTjIMDHsg785nPTlcefZSTAR/cW+NrcLy4581zmAxi5GvdL10JntzmSoguuZCLSJ4DJ7lv/XsYuTt52n+fJ/0v8azB2X//r/KVPz75258erMoL9DIqyBxDWPLTvGzowaW4zHywvRCs8E+B2KQddiDVMS+qqn9eYwFD/MwBYHdZLInPt/6vfzJ98K03+EliXkykjO0B2l3Gl31mWZr7cbTpaglrUy1lFV4YE0023pH1yon8BNL2KUt7+VPUekWBcs+HGiAyKyk7/HGsjJOKnKmFQTv0h/KQq5MpYyCleBW1wsKsQMNALFQcS772toGSG/jlsW2AXt4fYcNPe1RJTAo6+zCqnvEruLDu6NN5WbnmGfdaByRh2bjpg3z90YXEtFpVDGTb37QSP8Il+HNoAZAJDhCDkatew2+F2aLdba84SosD8Ul1axUXFAQNgTL9Hmz5wRrCVMLocWe8RDCsssAYVx6shqtf+GFcld382M9Nu3fz9D9z46dJnDTn/v+Ft9753uVX33pjf3VleWuXy/8cyzgtOPAW9zpf/8NqNe/IiPWRFsuDdstyu/pnmSr2FYBh1wYveUnESyMSd7e5ZsLPJm/z5OSMByg39rYPnv+j733DT1f01vv6vHjQXyyLGWBeCrT+8c9SAyKe2PlwnAAKkZJLckENjwkjY35gs9JdmFyNsVnMsCvVFs3EsGwS00mGrkMyWO4pjskgRn1yP/JDXtzJQFaPyWbGcAqKByIxw2qaoLGiTXi6ifHIh+digF029aJVQgqqingd2GuSxOrRJB+y+pBhLVjZrisUaWgDiV/65YDgbqYqV/uLln0cgw1MJHRSO6kZPxLVxJE8J2AhskuuKP4MPxN4eRXLVI0DdcfLvP2hDTq4qNj+Y2B9kBfv3H/x4vQKP29rW/OpOz7oDD8PzBh1O/k3/vZ0hUv0xuEEi/HWudeDEfm250E/l+yt84m+fBCm+taTiaWVY9z7P8+9/y9PD/K1v1UO/hfP3jmd/Xv/LV/5413/bGLYSzkHIM/YFcODpTxPaFL3E7wkab4emHBaRyx5UCB6QsBf8OzChRghjj7jxrZzBWTFS//PPDet/+bnpo/ddvt0O3XCQcxUJJHV2Igr8KRrVKmSsYRUked8FfEw/pYoLWpJctn4UCcMpZ4ZlTHTSmTVd5XXczSBxJpjoMaqOALmIBeDyihROOwhtN+IhlOuW6ktGVrWVSMzRdaDFhTHof4MpXGZX5V6BgN/FGhThULdvlNmdJZG21BxrJfH6qQd0VFXRXdsMaSs/+yQka6PJVO82A+9uCWnPP2RdUQstLDpJlbF0BLOp2+Rb2SblMmpGkVTaNhQOyky1NC1GH/0z1ikrYlkyBEYS3hkNandoUeeEwX9LVtppfy4Vxa8ShL72qBdm5/g2MDzK8UFzhj2JnK10dL1STlPer2a9upzz/8BL/nZXllaq8v/HMt2uPyfh9wv5mauJhY3AYfZEaLrjdwCChH6mabRyGF0HgSeiGR4nffbAPmtZC6XHOxzyeTKlc3ZpYPt1a//6hee4seBXrv2NsAAGnkWhQyY6zvQGG/ytra9M7yz3YGMUl1ConMzEGsgOywy6BYHo5gqOIAcmDWCr5Yzmi6OOsMiWhaqP2svACkVB3ssQYAuS1w3Kt7bi5g7SUnqhEsNfq/QDmLlM1laTuRCh5d2NJ6oc8wqpzkxMgyh6ST2U0T9l3nLCBeSjrQNnSrHWg4ZZJM8YFtJvDg7lx6MyiOTj3GtoJyTVsZwJzotT3mcKAQSPyObid060WtlfVQgIx1ZHMhBQ7Y0Yxj/LAtOnhbqhJWKoj57T/skX8X7EJfhzz/xRNRrUUAG8RzM0Znxqfz0xx6fNv7SX5pmfDtgjSsAu+fOBdoP420kccgnbxYrHyIc93O16HrmgdsueIa3/j1CY8+uHZs2eRRm9e//d9NB3i3OU//2Lb4ZK2Vz0IwJPw2nkNbU+wSUUag8wER4fjvBk4YKA3zKtqWPv0gZo9KKDoLaVM9XH//gf/mfp0/zgqQP8NIfH3ocfsQt9HJAwv+YLqeCV3OP1ipoP4y+RNZP89pNXxsM7TtOklsWqMCiXw42Kc7C11tSqtqgoB9R1YanTdDiKCx8MA45qA1/VcdxIWIy8gO0fShG2S6XymTreDpVVycUQSD2bBv+tfzwTWQdLjnYcVZKGtGdrIy+jk/gtMP4JSGZZmsnYuxsI/SItFy3Oa6zs43llnpaL3vpM9sfNdc2ClY6S1wiqoCGaWuf8ChXJ3yKIxThqHa7xFVvgRcdKECVbeSF1Ucy22HJPh+qknNY1Sk298qVP0WzjLW5qWqHeiXq78VsP/ZRNTsWQUl97GqcjdrVOTw//S9zRe7y733ut564sH/52BUu/3sM2+X9/74ACOs8dnvhgFve14PHs2DeiHe1sZtYy3J0E/F+WigbbZcdrl/2pUBb+14y8clJX6CwfOrU4drBwXvvvP76t8ZkvNbQ6BzzUb5KxtHCirbLbYD1j/+Z9LwDog4mDhaSMooxiMcnlSzwRUadYWPEHJnQHD0uIuaRc6CGB7MXNCiVeqTVRIhy9DK6HRogzXlU4xEYqlnLYI/amDQFq+D8kwWzJmuK/iBr+4yFg70W0nI7C69YaW9AA6ZkFYwLjYEVWdtlxTblAkzrUFZj6GXCiqm8vdlwqlaikIkpnw2FEnEhLlra2bGqxpey/pc0deKVEx6FAcjJ3FXmoMeOLW838N3ynNC+ZYEVRiZPBsd+PjkLLHFhw99VKHdyWX965um8gCcHbg7KHvRqrPBcACvWLk/o3/Nf/FfTxY//HC7ymN74VUBuG8jXbw+yaRWDKr8JYAvx04cAvVKwwvfxeRNmPv3fz5P/9uXsb/7t6cRHH+fJYn9fgMVWX/n3xMJP95UYBymDR24fZqOSJnUQ7C/+51cx6uQOBYnpRCNeoJlT0B3+lmOX+jf+t/91ephvRjzMp/96LRFEgR0rJmSp0R3qkBe4haIPcwDXwQ5p+y7CMOnr6AeuxwnK4pSIDOXY9MtySOaAMo7jL0Tn9PjULajzvJ2Cqyy23AwSvibpCoZyQg4v+CprJHYsi6M0u8hQ0hfnY/eR80ntOvlMCRl1lc0+rgSHWClhqgObpXYocbVNYZZJcDBTKXSK5LiSQpCMf6oQ7Qcy+REpMcr6SMpgbr80i24kUYoe7S0sMFNQSZMCshffssw4ZkwjEL3YoJ4xVUhUqsXhZX4jb9+DUWsX/LaljHhw0cNYlAq/qVTKvI3Ul8zNKA1H4kD5Q3Hzk5+adu86k4lUfgWifazyT9qPy//vnXvrjy6+9Nq5Xd/JsceP/3AMq8v/WwcbV+ZP/7cTMW/ZNPKq/Yz2Y9j8jMxdZWY0eOSZRna5l0pyG4AnJw+8DcC3Abb39g6f/eYTX/9JtwEy6RglowNHrtUYYcd3DKb1T3Kpx5EsNbmjnJSR5WR3BLsgFDkFAZh8ERmy0qJvzjbka+Y1EdaQg59hbj1JQohVE4tBn60lKsPu0IGdpMvqopODYYjVnVlklIthCpEDgHpNHBenAnJZqKKRb0zaH3PsMvlGwwamfoptmOCFHHP60hgiWAmoaDJITlgneCzU3kXSkJvarTm+appKU4KpEFY98JnsE+sRSGtiMhbQi9XkZT/+6bh+oZMMmBorxgC5uROKtQOMTm3wbT2ecF+Z7rx0cXqDBwK1Mw7kuqdXxnZ7ts2n/9l05z/4n6atDz447b7wo1wZMCbVFv1hw/8atyr68BF8nPLrer6Q55nP/dr0KEf3U9hc/6V/a7r93/ur9dAfcn769rv8Lm7cQYgvuTzv2PWqApA52QDLxT0fzPokx0gpka8FGoRIKw+tGmFzksSpj/VQcJ4nm/OTv0/9yy9OS7yU6GNnuPTPQcOvRyblIGVs2TwAmMMKTgQoDXDrMu0Sic1yVCVOpR569MWmvelzZMbfUMxCPwfXiP2GlP3oP7p1Uqs1Y4dIINPo+Bp+GPKMkgkhx1oXi1b7sOGH6/gWzz9t2j9qpVySCniiV+3tPDrs/K8s/lqZ10MXCxxiFn2nPB171VrnGtKyOXFpgNFWH2CNbtxB1piQJWlP3xgEytebIIUDUFF3tklMBBJbFQFI94cOyzgEQGcrtpbsN22VvopUkuBGlF34El2LOdmQHrwUoBVGYqNYnNeGvqksZvmmxrytVkj5SmpOchgbcXqaNjwmcGyIrRL7E+2Nu5f9gSZkB9OLP3j660uHazv5MoBv/+MY5uX/ugIwv/yvs6b2qCo3qM8Zt6rg8PlZp9Foe2mkjBAvjSxNF+zCyHjphADybYD13fOznZUv/drnn+Y2wIu5dzp/dHlAVF4LgJ1cZkYuV4rTZosnp3ceuJeag0WOiUGlDv+ZuBZUSOr+ascyAPEybMUsOCj1fJ4gKp+JpBAYCqalCkkbedvOUTDEkm+2QAUNoAtg/CaPW7UQSHVBc/BXAMEc+mGy0z03i/rTVX0XN2KQnSA10ZWQajK3QZFqqotb8YSYTzT9QC6i0URKfE06Of3XSc/wVYwg2kIvts+2iOuWSa2o2OiSkrW+qmkBLBc460f7BgEsC48HSGEEYa+ciKnn5E8ka+yTNbf1T/A2wLvXjk8Xv+frKeoI5Se8rCki+VIcDsjbvJN/n4P3B//hP5rO/oVfmi69wW0AP6qLg2ZZxACVvAsAXlxDf5XbBheQ3/39r033ra0xZh+d7viv/xtOKnZy5WE/L/MBggUyJws8t2SvJShpvz3IQZn7Fl7298+4yF/iKkS6AT9cAOyLPM/owZp4ytOPWqTrakTOCuD7i4PL+Pb2Sy9Pr/Lp/7M8j3Dv2omJHztTVSs2DDOA8F8BDMFdSObZElyKJsv4kbin2LL0U6AcO9CNX9SEED/E7NP0QEuWGfvjZBaFflEPdxejF/XIaVBSUdKQ+COxWLat8MhzJjU48JXVHELxOjDQok7F4rysbYXJpFs1pZEGnf4xlgqglKsi0VWG/y6b1zqEDBgFp3wgsstBPPMpBmIvpWp+6soLWbhUdEGKgHHQrPtCm+GVXHW4RBEizT6KyattaCSutEg5yuZpoX74YaDP/rMWjHGjnaCMNeYIV/Fqv1GSLqHGjlrxUVsIDZvld4uKnQ8hCh9OOx+6j1fFPxafoMzT4rFjTqQw6Oa9+eM/Pv1/4Yuf+80/fJeX/+Tyvx9eGWyENGH22FbfeAtaNbCAR3k0ctHcLS3j2/9vaTR6MU+wvFSyvby9v7zNzybuLu8tL+0drPJtgLPHTp4/9+Ir3/ZgYKRGRyy2YNDGAWORZ9mBt3dqbbry2T/HxMG0A6VToSrD1l1RXCo1Q5JZzCR1gKkrAZyUgxeBMS4LMDbESSE8fR1VB3AZJc8ZfXeNo0cTqsWwhaJkcbDqRCLFf1mad6JJiw4D1cW9eTVBqFpXyoMzf7kEyOzKpAkowJGBq3D+kfdfui4yyy26uSvd8l3bTv6xoMQXBaUHoKxqqj6NCYB0OYZgT34bMtroQYxK9Y/I1lFzU10d42pzxbE9MMelX+UHfk5C5EkTBPmYhiaeRtStMnUL2PcSvffj93jdraQlTgjiHxVPUBxWfjffKwNbm5vTAff3P/kP/sfp7oceDn8OiLwyXu7P1wkpe2zJSQ68H33+t6YPe8Jw1x3Tbf/9/5D3/OdX/my8dmxr/qx2TA0CJ506tM+fD+ppw6/veUAgQxZaFkDoQvFXv+A3j4REZNmREKGr+Y0DHkpc5dkDX0D0nX/0D6c/e8eZ6SGe+j+JgCcwCZaNxwcj2urBKMMU44CI+is28mMxplx9KIRMNx2JoMLRrzFGJe6BQ3Or3yEZB1X6rwcpimIoGGaqelkY1f/qaLNHA7zis4/c0XxTruxEpfkZLxjXzHw8KECn6l8l0HW4rYiNBMm+kS7u3AM9nIfBSvkQj3CBE7lyGXVP/9pOlApV5BhQUOz8UYyMWdmMjLL0hQZz0BZ7MNKvzq3AFGZMsEvAsZ26/CFUYnPhcpuqMSbFeTNq6ozJljjIH/r607bVI8WEhQBlsqeSNSa+NrNdyZixbWlREcdVivXP/vlp/5RfDweH5LgfYz+EG+wWZcbl/3fPvfXE9hvvnuN14Ut7uxuHG7Ol/eWdnQOPZR7T9LKhrs2HhUEf9VueV4tvuZn3NTAabJ6yfc7wOPSSyQ5nT7wPgK8GLu/xnYD99dls+Ydf/9bXdnd3eVuwK2N11o3QFztwsRxZLrVe+TOfnQ5P8t0DB5+LV+bB/0fdmwbrdpX3nftMd9I8IyHADGFGEGZMMAGTTtJOpfO5+7PtTqe7urrKlap0dVe6u+K4ykm7Hdw4lGOnzRBM02YIBolBgEASkxgiISwkBoEkNCBd6d4z3HPeM/bv93/W2u97j+5lCuherXP2Xms9w/951rOGPbz73a/Tg5RFQLoTChoD1VpGGwMxNeQjDSMDOBIemCAIUgoUKsS5KnVgyVBEMpsDueObZy4I4CoiTgR0zklANpM0FSwnUuSKGdPZVT1W4dekVrb0okwlVX2yIFs8F+W0BYb/MWZRAQWVLSOKq1hIXKEpk8apaJlc++byaE6WgIZZX7kLJ7vwVAO/srIDpQkJqxSI3ZfwtKNM2Yv7BlrZLMJNR9kkfYLfFozqRxkNp4Q01uxC5+Dpy2+OcHv+0IMPDGu8nc+Fw5v3wmg+D9qhs7vtwZ1fA+ROwOZkwlddeNAP3Tx012x4Nd5Gcvz0tcB+9n/swQeHyWc/xet0F4Yj/8P/NMyff8EwWVvPMN1h/Oqj50J1J4d2UTZVCym0xS4frzTZjCKbhnBih1hev9W1pgJQYiEnC1a2eaeBXx00FNf/3r8YnnNifXgWPh3Bidzmp+WZZzoijn0QFCNiEYvyJJNyl8m+Y8t4a3Tr2UqqFQEUM6ljiOum/Tieqmu4ULYwkOCl1PCFj5rclPW7Di5NAwFZMPVNhcwFMJW3DSZMZnSGqKx40ZJR+gyImjcQbH+UilaS6oEVp8zbRiEnz1RD06R2HWBJ6rXNBocMYvocAcZQ0Sir29tqUWyZ0UmVdlmZ+q6UtIi00MZ+1rJoK4ELcSzl1FUMVIymDRVT6t1eDQ4NQNJ3cnnt4NsqIiXGUVTA9ifG0C27idXirng8s19iDp02rwsDrjbZ0mXNod1DB4a1F78MERv6syX7to353P7/zm3fvNGX/+zM7exuzi/4+l9eKdS/A6N/FZ1mZYzIaeo/mzM/pzQ9cFalPX4gkYuSx/ZWmdULc+s8QDHhJGBrZ3llbXNlb7LwpY9cf8fyI4/d7vGf4P/UvZaOak31anjjqsuH5Re8gF5xcLnBZKvPLIFl8GRgOonbYqq60ycTxku1TAgHsmW3gqkDp4NNMnT+1YkJ6+DVZ4Dk2kRQ/5wswY6iA1b9aFkIXytuNfitqKXf0kz4roD+OwFMLmBq+/kv1Wggr4qLRhap2OnYQSy+RXFKMdpNExJE+eTJnBDSbKO5dKvxAwnpJQhPP+HDc6t2NH24yomgeJ2pe4VEJTtXeSoFUUJKKwwNQHYm2tbf1Rtd1bVByo5c+2BVH0PMf1pROPFNctk3diIc4kr4Qr7nf/Tb3AVII8HQYvQ5oKiHjicAvsp3m6tmPzvXJ/s6XwcUC1cVrRMa2A5pTgDu/I8fGp7CnYXzfusfD4d5kHD9xGqO6f2TL61VKLCqUevZgNCRVmvdmhq7omMi46UzbT+cvOI4zlCB4PMDrsv6ys+XhvaJf/X7wyU8APn8C/3c35MZsQIcDC2koK5tKdfIR+8QoEzDYxVHai5Es1xkn4Mluq0poVR/QwS2gIWlrg13BtOqdRVP6muJMslM5OOcsZG0IX/4PM6JxEWgOkFIYAFP2OJYWKJFvzBjeMTWv8LVpdZHxj8q7P0XkM2/QJnrX+qUba+xJIVWzVTEzmFHqbonvktOXFJAP3FBJhA1/tRJnECsftCPIKpFwlJslk+xEXakqRKTyEG0/81KLYWxX5pOmAkc6zaCkrXsX43F1qgSxDe4yHmXY3xmwT7SCH6W1+zLdNA039S7AfJ4Fbqx09XINNm1F72Ij4OvgJbjCXhxWO4pU+ebuzEfueBfnFs7vvzDv/p/3sXt/43FjckmL//Z4kH2SY5hawz2+eHYLse21llpfjfU8+boKc3+0ogMmzOSeqO7cet9y3nh3PLc3jqBm9uY29ve4lcCfSnQ0pE9vlO9cvcdd31WxX5V2julg/V8P31aJ9b+QuCLXyFKWaYUpzKwHXwZLhqJSO+7nJlDyi23sTslZChHbDygCZhBK1+cJsPCWZ/HIjA74CwrBlY/YUBRErg14GrgU3dgK6+NDPKZyeAoF0ffg+mEwVlPZDID4LvQ21br+VembGmjL6Y5OZETWx4E4cHXpOtKJWk1ucpvEcRomydLlOOOChpip0U1y3IKMsoG2N03hSIz6tmWiGoVeRkMZdojns6NV0M9Bi1+Ol0wAS2Q7JsnWUjL1/gYYX2RgQx127jIle8F/NjN8dtvj72Kp0DVrjRW29RzC177Yx9y1Q/PWOp6JiH1/EjPPL/4x0uDlj/xseESXvRz0a+/JT/y4zrfH+iLrhFBNx8h2JTWLxSqfX1vs+KFnuh81TWsbvpFfRhuYjpWCGXuVPjRQE4CYHzqrX84nMvXH1928cXDpZwA+V6EfJweAzojTv1JaqZbX2hEXslY0GL6ypI8T0ZVJI1jC7vlF3l8k8mmajiWRTWVduZoHx8Z3/LLllksYyDeAJoDX3L0ze2Q5qt6deei2dCWRftSsVwIUNC25nP1LafGS4aMMVTEBKvmJeXoSlDeRG6x20i7bIgbeNbB0lBwUyyfI9JcQKB8iT5CkasDaezrjcEMS98UiBD7EMunBALbmo9I4zX8yHJos998x0JBVlxyQI0c+DhbVswpAZOe1j9sCD2m+Bxu04OrfX2Bl76KhlpunpyBGpmG5K2xJK3JKMnELzXqmTzDsPqSV3LJyat/qffjSRN5XFZzbEq2nkiie//d99x0cH37RwcPHZrn6f/tLZ7+n5vM7W3Mz+/Mr9RzAGg2B8cGCDZ1dgr9hJUc6mcq9WDM2pe29wi9yhKZJyd9faK3Uvw2wMrqsa2jmxuLn/vgh2/eWF9f4S6A/o84+ztoFriXRxk6bZXfb9946uUFEctKpUtr8EFzCMWEB09HeCQazVUqA4c6eeT6pI5k7TyTVkP9TIamHlvo5etC8ALvLoUoNJoK0GVJplAQEvDQLZR2cBMrKvBNwWSi6Wuq2nKr7i909vVPJm4klS5rVtXvi5V8aU7+KiAqkqkQc8JBzTB5yzexV8Z4oC9Wg0WqYlSLAyLYKh/EQ9ZQN9xcMVlWuS0ACtSJgERw7YdcHVG3mfEdnOZjWZbO5o7/sGq9gFZxrfbaHhkIhc+Bj79zuFLf+e53gOYhOt4SmM/k9ZtUZnKFkLJU1+5+4Fen8y0DAABAAElEQVQ26xQ++vl8HVDwCv2v/MmfDE/lrWTP4D3/m7z4xzcKGh0/zw+2BxTkvLnh8pmPHIIRtp4ndAWLXuKNrk5gyq7L1T25fRJshfk3paU4t8tvG+ShRcbJDW9723Dw5huHl19y0fCUg0v5jQOfhchqHtWyOd7JwDNDIWROKAS2z3WjiLVoYy19xfhI/8YHHXV8CtzHdADclZsd3EZRts1x3MbZFnRDk65sIkXWHMATiiWhSFIGHzQ7KjSx5ZRApFOH1MeU9pTAzwhDL2mjKq8p6JOU5lukogIfjPFmZnyIJDt9McaoopuPEZuPRWzY8hQxCdftpt1ySk5VU819qI2gS7Jye1yfqpY8FypNPxyh9Mu+lMCB37y7lVwP7OfWR5G1HzEiPbbcJZW36S/HqWiJkYKOCXSUs08Menx2LaHaMOyCmMoarXDV1XSmClDe6jdK/DtOJ1dfxat/nx2bWUMDWvqn2qc9MIJROUvo/DwfSe987dOf/cyxrb25jc01bv1v7XnM2hx49S/i2M4xTZW2kY2ptWKsP6EFonPGUvoV6z0AszldyccAKz4HwDsBeJDChwE3tze29w4tzh37zvfvPXr/g1/O8b/1Ru+U/a05VceGxpDYPXxwOP7y16LiCGHo9QnjIHPASeMvgzLe6mJ1qSOuf4alzcx/ZR23rWW1gDV4hVr/Cz8exJAPpraEbzIpKVdEFeKL1bJFXVfswTYv+gDVxbiZAe3wawtEG/wCxMVMKmUFrTwLePSYjDQkbYkhjSHjgZzMGVgxL79Di1129F5f6BKPQDf/y3LaFf2umGkicDxjb2D0gYxNP3KlEUJIbVcTPAJRnS4iUVVeKHPamRMLqi2IaXqAwg8DUY3ZBnNorf25JYo5WzJPw45wi/7QQw8Na0cfKVwO0KqYzBw7Hpw90Ev3PRK59U/ZE4iYlO/HWZwILPB0/T233zbM3Xff8LJ/+Xs8cb/N1f9GDtaezIiVPhYHZU9/9SUHLA/Gqdsf+k4fKy8Z+fqcHqcMQ/MrZQTwAGx8ID7BxT9/zXB+nmdkEPr4v/79YfGGTw+vuOjS4UrehHiIZwEWcu8frosues4GzAXfPpeWuGtEmy0wSlqX1+UNzvREC55J2LagK142ZgwYPFMfw1QzF+zjCgQqEv2nX4ifdd2KfXWFsxKiZZJ8k/aRj7/x2ajBjj1BCSyYUQgmXOX1uaWy7xiWxz+8OrGlQuODLYSlxL8pyoambNASz6LZp5oL4D6/u2/G1QOtGhVkbaulHTLKwWVf50Pk9sFMLKOrH9CjGYXS61FJe+W3uyDlF1YsNFpVNA1AowkV1LQP4cRZWgYwXJLyAYJvMf1KObFo7UAsbY28RknK6nGrppBYsKPPEr/wdoflV7922DnMOz2cJD9F6seSmdyn/3lXx2O3ffHaT35rfWGyeGx9dWtje2HTY9aEh/9OrHIHgNv/wGt1dtPi6KWVM5F+upb/cjw7VeN7gDIUMixZGXyQImdUnGzxgyu7k929rTu+8vXP+OMr6dGfwr/eaSeLMgh4AGTzonOLPFqnSmSwPxXPzGl1MycR8pkS6lHJhM+kdHiHiUBGZHCyEDREF6WkGRONVcMCekyqT6F0Y4iqVqFnsYkHsZ8JozzYWew6oBBtrNWiIh609L5+I9ht5BS9prg6WUjiqu1RsPkdPIGbrGSBAtwM40v/8y5H+kA91GpuG2R1UNa+MjGoZZ1zwoIPLQc0TUTeAmrBQh91F7jEX4b05FhXrm0aDTz8HJDEkpCFLxGNbhDiYEHlgCYkmzZ9CFBbB/mK3QVcnT929/egaQQBDwrKRtKn7L3W9wCEpjzFKOf2O02MaR7qm2uv0P32tdcOr/ln/2xY4FsvGzxoJ6Y/ThLEwJcN30qY9mvXRmpDR7XtBk0bdfXvNxPrVcNhIod0yeiXNqD1vtrilwZ9xa+Y1/5v//tw/i1fHl512aXD1ZwwH2HQZNioj549lYNeDtZiQit30Kdqg0k5Ga5S6w/18x9qSvZHkzFLzTEUOXCwly1M6BrioKJcfE9bLCvnvmwXkGNNzBmcNn9KVoNy1VGGzbZ0m8khYbMOVNhQtIxTIKnSNsXD8+xPOXbxqNMVsGFpMzm+93bGVNQ6P66VgfRTK9I/Sd1XdNIXjoPgtvFQrS5/ZI02C6cwLAOQgzR2ewPIczIulHzrsJOsk6pe7bPS6xmTzuH0hUrIh1kA1XPlVrRl42u4yoHvuuf4tD/Kb+uxGn/0ziRpXBsUL5QOnryfqNiHvvRn9SV/Eywa9hNSP3bEj1PIfuf2b95wcH5p9cDSEjc6eWCdj659gJ0TdkbY+N1/XYznM3k5P6WfAv2XS6q5/Mu18ePQe0CUmS3v8jEAZ07Hs6z4JiUfqNjinQD8utKEX1lavPbfv/eraysrP/D7l3TMSb3YO2y/4SwYM0QPMpsMhOWXv7qodEeuIhxhDngyB1IOFhl1ughFa63rMugoZ1zXLjIO6IhMd5lfWVhizaEuE7l4r7GqB8zFTHqcgBdsrasnmX3WNHRCaLpWnDSZnGDIK08ahDRkg1flshNPkPUKv/tRtiIrXjDL31oICz9XxqpkQdVejLKvP+v5ypJtlZVpoZU0PP7KMM7CRL5dXSkeaq6QrLEpi2qXVkPXRBRfjJqsVAhAMFM0LgqrEVbio0QPc6SJvWaSAG7NjswcN/WCDXGRs3+f0l+5667Y5qkfVBo4fCFGShyjhiHHmONml1f3yfflO/bBXV/80vB8Xh98yQteOEwmHPyRKVs1TRMtQXXPCnF06CsTsnVNlJlmu04EeqxyYmWbxOAvxyfB9JecHy4dlni2Ye34yvCB3/md4fI7vjm86tLLhqt5F8FhZMoTDOi4fpNBntY1LlMDWoiAFGVpb+jWQQpTR9z8Vw854x9Cy0XExerT3h8q2HaxFK9CPKJsXnT54gaAkjnyZLl9bVl2fFCjTjYjIE+cJlOK7sNoTaxaNRe6rMSAPE0sX0TSjn5Em1107DPIdXBqss1dVSIb/6gwJzJ342vzyxhw0G4oFV+U6oIBxciiq23RzOXbfovyQ28E/FFGapJl1XSWQtGxZoHdGLdijDpBMA7q0eb0gSakQdK/rKuQisfe9jnAEKl1SN0CDklG2op+Tphst1iItUGYMRYDYlCLfaXEb3hky6987bB10Xng/Xw//NMe/pufrK8vf+IvPvgFH/5bXTsx8eE/PlzgW2wbuf3vMcxjWZzRJZ2aptnylPoElmo+P4EG95mqfp0GxYD0oGSoeAtlMuf3KbkLwMOABHh3iZ8bPWduOHrvt759g3gdxHIN6D4gpExT500pyPE55/I1rxh2DzIQMqB1oBDbsEEoI7fUKNZBX25zNQtWG7kZ2HIQhD1e+WTGNBVUHa+ZtEJkkKOfwVpmXJm10KQoO+mcSGz6IEv85kJ8lpjZ0CDTnua7PCei/mGn9MtG5o44AZNXm/XyEaZttEnK4KoTzQ6KXwETP9SGox025dOTOk05fiCb1BTNEsMuK74wzX7souriJKO4CsSn6h/4DS6LC2XNRVzTaCXm8aUw9E3/00Yk4x5CUivRHgH0TVn6JIstbH3z5rlv6NvimwC+IjCv8EXbU6i+wHpr14NdDrRAGRNv5etjvg4IzgL8zY0Tw7kXXTT8Ci8M4hew4sMOJwjli36Iog/Ytm02xiHHrQCLtiK3+r3N6R8uJ/6U+Xnt2KyPAQrTz/ZRSzv89TO/XeDriP0Y4vvf+Mbw4X/y28OzH/jh8IrLLhmu4oTgIAtlbApsMhMgOwKcokR9rarOVv9rs3yskz/FoOh4gSRLfznGy7Es9mGnMY79GCS25Pynn4XK2KFgAlZb9k+sluE2FlRynpF122UUDYh5otH+N8gt0NKVF9sCJSVSTOChNfsl475k9LPCJYYHfnm2oulT01T6JcplKDrQI167ti88+99BkJxiHdgaLcEvG4F052YXqWcaB6N+SmxbFCIRitwodz3raXOPQdXrIOskLV3rffyHAr18bgJRo5zYw1PY9opPMe2XpogxLELh227aWH6jknJjiaB/MWYuYgWyYk8Z3s6hhWHtZa/CVt1Z0/LpkrZMGU+Ue110P7p74Af33rz8/XvuWTi0ML/RXv27MJnb2eDq32NXeVEQwrRNQgFbOoMpYT+D9k8VhDFIj+YuwHL9OBAPVPgxwMbc9vbK2onNx3gnwGc/9NHrNyeb6+2dAKfCelzTekd2Br04nHjqlcPq81/o6GmDi96x7F8GQOtGyxQzCWbpLHS5EkOefg8/YxsMq5XEqKaZZctCJk1eCeY2sQpWmw9kpWDBwe1tOouZJOpTTVZ060WVMVMRE0YX7YVM4IYZWuwia9IOWeYUJSeeMRE2Ni3E9VAarWI3i1X6BVSTUWCQiYGZhgrVMjVPgGLYirasYChAErRHSoBrGFdfBaycRjH+pjPsS9Xj7GizCmLBR04ZoRs6ecPTFgfJUldA//aGwzy1v8Qv/W0cO84BWBhxPLhihwODXeRDfj4EGRvA+RxAPu6IP6Fy1b04PJWvpfqgHy/ATp42t6u++KMuKPrkNwYylj1JEAfMfKzAQTy/K4BCxhJMPwZIq9GpUHClD25aSTu2OQmu5wQWhi9/8P3DV/6X/3l4DY15BU/7X7l4YDhA2TcF9pigCHg5U7QYC6kW61hTCCW2tgh3AA/cCSu8sN1FpY8A5xOq/QG48Gy1bUVGo9BCSd78aQakK5L4RVYf1IODLWsaznhJv8j26tpcOY27lZuhyZLmnA2DMv9lMkZ6pfAzTj3oK+a+TsxqjEJzDEjX7kwbwte31maRMVxxUpxqP+DnhLj76DzibzxJ01eFdTAgMTWW5YQdkV4CwSCkjYi29ka9YTgHCgSCRcSdY9FR1/oYI3kQ1DALBkpFIpfQKmTpCkiJi0ryXJdUjKwkadRVTaryeGenact2FCiubxF3x+Z7/zee+hRwat0IzCl2va/2s6R7zOG19Htf/eyNH1vd3t49MeEJNY5NWzz1vzW3wMvrjMLyHsewFiUbM25CxqVGs35G0o+PwBPjkoHpabacwBGlvROrc7wMiDcD8mDFLg8DTngYcMJvLd97623fO/rAg1+YfRhwBErP99rj82nnMjj4Gshxvw5Cytk4ozVjxZUmq00Y6T37rSanvYm76UZcRS5FR7Gem2xN9CnoDwL5TqtFBxF2FKlRWvKZwNoIWMlpL+rBdVERSEUhFRTQhcQym+4AEDkORvLLV2leSUlh32alWV1VicMWfXKk/NdGLabqoC9rJsUEgkVGJjrscFqa9qKTdmDZdshjIvv1IbFdXJWznRFO3toQQAjGMguCgvAENVCjHWX814Csqf3IQut+xJYySCuVOyOquzBPV2QtBzMHLRcMFx/w55FT9jBHxvN50c+xH/wAOlfSGRz77KYvsKVb+mcj4zdtpw7MsMAPDPlZv+8M0Ka97BZ7KCquunb9yKAvXo6XDDF26enU4aPKPvGs9qEvOTHrzfCni3cGvsc8bKysDR/93X8xLL/n3cMbL7tsuIa3D17G2w4P0L4FYq5PAU3fWRKdShjuymacbKLySs5YqQ4B+0Y8KWoK1RgN2bYBknFt/9HemqvqhVo27XPbWkjsLYnP3qJ5KyQzOp7AyVIM3LoFLT5EOIUWReplNwdb+QilDSlGofTEGRttI3ua+htcVECMbZ2wz/RFZ3PRIGSjRdO26yjEtD8n6HLKtqpJHtwEysZOdjWYnIp60py3ssJXnL/Qoeo27VDOE+8S1K560sVVu2PY77amdKILN6nZTpskjLqW0bAuVOgicGJEAyxlTQxTRW2am3qBPOraL86U3eIAIScu2EqM00iEmz3buvoyPvLla+DlyAxOKxrv/dusFDxe7rkwHH/k6G2fft8HblvZ3V08sbGyxc/+1Zv/eH+NxyxHHHp62reTYGYrZ6rszDvTyeFg6l1qbuCSuDGfrwR6RuVXAjfJd/mcZXd7Z3d1srD1jZu+9PH+MGAmSlck31+fYaU45c8Na89+Vp0VuuCoiwvypxOuBpSKmXDhRVBKyTEZo+2C2QeqClZayuJv1BtpxC9QbCroTgFy6A7oDOqMaEglVDbLYuSbdcrlf/J+BdmHYhFLF79sY3ztCwVydZDIDWeNNffxR7vqdP/SrqrJymKpmH82gVxfS8JamsOiRAF7IuVFH9L1L4upNtom3WJi0QIWufI7JznxATlkPcJpo+SjGPuy7KFxWLX4J5wqyEr7KRhrqpUsIaDNNh70MbeIlWNwLnHL/HzfB3DnnfG7/KUY8HpgLv0njnZtI4r9UTrbmr714C+2V/DcAeiLYfoiJx3IecIEruchGZva0C8PbBj2OKoJky7nZBMdP3LIyUQ4tVD6YiIA8/XFb3/5luGD//i3hyu49f96Dv7P5Zf9LmCBW0QvESXGNeZaZNrBxJOT9K19kA6njdHRuIHF5+QtjsZAWYNkooxEYlJVeZQSY2VsFxlb3ebHWgjSZCCTrAlBkZbHruyf1NN5AsR03FGvcfUlsYus6o1n5taTfkvICavFJhAjZSl7yBnLzc+Kj37TFlyJ/56JdftgjndEpIGbZ2qQTZi0Y6dqLgVketsbOSeWyisUJ5RVjLr6wlKPbeqZ8+YKtbjkRHO0U8bLvkDKseWOjHcyipavbxaKFBIeoFTrRxsb8gMkHwMdS7ul0Z3TwfiTUadO2imNrX88Ez/S0qYnwbYoR47ryuecMpwYCQSlYfKMq4YTz3pmw5ZycjI2s2mM1T66Mnfd+o1PHtg5tMozM1w/cfXPR9XTq/+cXpZz5akqHbzn0s5o6uvFmXRifzB63dwHKJgux/dO5ARgY2dhc3NnfXt+e2VybLK8ubr04X//nq+uHjt+B3cBWGvS/Se1pXdoz09iUik6nwsdYRF/+esYaAw/FqCMVAegg8pqtjbwrIQXgIhmYBtN6A7GDGKqWYnNgWq7ZtM6OFlYyo7lmnTmjOTwFIty5F0sdCU0fXBLXZ9SKJbtsJpcOcpmHcuchoUsYOgKSDGJx+ZakAOTlEZTRB138GqRtw4la0fhBN1iZFvbRHGSupgYWw1YFNOD8P42QZZVnWDBVAcGF5pcafQ+si52nEOrt0n7QrvwSvM2ZnQiXDGRVyt3qYWfFsQ/uGmrWXoAPMeOp0nn8jHA5ne/iy91sO0HK2/1N1ORDZ22cgM+W67e0ykg2m5t6kai4pU+RgRwI9XHQ0Wv5wikI80ZgaKcO8RO2kos9E8M7Toa1PHXNPf49oxX/Vsbk+FTf/y24Zu/+38Mr+NZgtfypP8zDh4czqE87wqqM9nI0BfXLHkMStVw5zeZCEGLvLSSCRbqqSfWTb8t7oXlmHCsoEPzHO9jnDQfUPEYA/pmsq3Nj8Qj9kAL210cUax5ppK0omfMyqwwB0+WMZtRAI8646RwvXItiBzAERw/5lFZIfzoPiZXPineVlEQ6Yq3fk5Ff5LwQr9SpTBDl+1BPn44d0zJ2GG/1grGRut/KK05zS/tIio966DxFr/pBi9cGU0XLA2yj1wA41P1ge082cVmxODqq7Zi1viV3ZrH4hZk9QMVgVCDmrZYqbuNo+Px135xXAQ5J6WoNr3uS3J2y6/gGRt+C6YBCV5tT2m6q+MCYgnulO7Df1z9z59YXXv4/f/unTf6QPrK5Pimx6T5zc3dycDVP4vSaW7/T4GqlDDuJz6RdWb5WZV6QMzHLWvmCn1NYLe4C8CzALxveX5n6bzDe4cPHDj+ndv++tO9Fb3jet38VLST+KlwmvFinr6+7GJqbdJlSFF2vDk6GUAZSE6QGm4hexDsA1V+poe5EyUEmxIQgcCw3OpZrEKV0Q6C1isARiEDW4iW1Gdpn0bIwR44dsiVfflU5El0X84joDAMJkvoKiNSdhqYsplUZJ5E0AnsI18LknLRiJlw2OWqA11lNJMpL1YEIKbt0rkCaAeZk9hwyoj7KAW/bHWcokc04jGkSEjlOpbjxNhTrS9a+4KOXoStCFS46Z9uKvjFq3FA2TZUhTDyuwBcLS/cc8+wtX6COPGwHAf4tIk7BPaFWzVbP9Wv+GjO6yAX/mwqgRdZdpX7gqG6gk88ESkvbWv54dcS/TPZuqSYaT1G54m/w1W/ty7ZDd/gZ3zf99u/ORz+zA3Dmy7nlv+FFw6Xt4f9XBTid2yJW22wUb0WCStK6lAaHILEpCyeHl0lJ162TYygV7/CcxzUHA0QohDLCSTVZ5MmjpuZbUosiyRiWIr2AKGtek781NcuWeJWTgNtTTm26CnAZtlNOileN52iAMx/yVmwGHByJOqsoviQRfA/MjhYFxmSe2zloaeq8r0R4ERdiJkUGTmY1jfrmrQmhpWcHIhfR82woqcsipnHkUWlty3tVUcc/YlwcPP8jP4ZM/USU/KWimZFIWSCSVEGZZAKc8y8m8DmxUASOq09MZ8yDF0xEy/uwCgTUIlagBWocvnRZaMQ+c0rLuXtry+mLNrpkw/EOrb6dpIkROfQvXd99zPbj63ev3DeobkJX52pF//QEp4BmFtNi+yNvnWI7mmvn/G8R/6MO3IKB3qwfJCCz1NWdnk1ME9V+pXATb4RsLWzurY+Obq5uviRd733MyfW1h71zIz+MZ0CzgF0anqEGRRbF5w3HHvVr2awOMBcOPpQyUNbbSTmjBWljOs+sKnXZ/Azo1ZgAWJ2OhYcx41oYVzsUg5elpuae04kGLntTJ7Bzi63g8G1SQXH3isIwWMvVHxMJbTSBYQJrFZOIjqmC0LAnET6WrYSgbiuDls530x4Fu+mTfAiQpl6Tjb0B8l4EpPapJ42gWw7GlO2KWfymkGm/Gt+gdIPzDWvxImGTQmWBTFjSj/FphL3xLYaHSuNWcIQSJ0XpapKGnWCQD0rJ93G+HACHeRz8vNWlofHOAkwXrmVT56v+bn4GiMwNWno5z1J4Crb8PjNAelZCEXzH4I0c71InZL3NX1YTyEXKS/6cpcBByMLyyf+I9r09H2Xd5I5XnzC/5H77h0+/M//+fD9/+sPh9fBfD0H/2edcw63/Be55e+3BaLOjkIbMHhejhNTD1xxq7HTz9iw3f61QdB0w8BdGpp+CVKXJIdvXPAj5RzsoEluB16RUzevDm86jAsYtq+5GduqhpihV2MhAK3u72GAVLDqCh5CTsWKXtRmtvgZV86LBFQrnIAQag+Gph4Hh51bUuZj8XMooJircjFI43okRv0H3vhGJDSjajtKJ+AyrWonnVF9Xj4GuDG7TGsbehke6KXdI6pgHvSqn4Jp/Md1IIOSenkSj1RJY/UlgEKUl+plIMnDVvj2s5jNdm9DbEBUl01uEiST/qbYdo3c+hxPgkN0dCEDoZxQzi1rUyEMy695w7B14bkFKjjJPsiFGnk/8JdO8Wf3Xv378B8/7LV940c+9vGVrbX55bU1Pvvn+M8xia+q73iM8lj12OO/+tdd7/ks9Bkr18g5Y+ZHw/uD0uvmKePormdWm75oga9Z8Oj/NuHe9t3L6/f/6J77v3f3p3wYsIZYdeyIPlMYJ90MzWKNxz3uAlwzbF52UXEdUG2Aecs6CxyckGOp3Kspyn72NhwjUm72KKQRzbu6qumeNuNZBKQxID3xIPcBOQ8IKmdw6wsiAQNfWi3GhZ7Zog/xmazLOrtGH+JUdrajkjMPQ8w2PQU1GMmrxp7kTmz4gU6ZemOOvnT7SgkdPgXzzNSilRp73YPkTpv65SSsK4g+RIkkuP12q+JRSiPaAqcBsWKDAv9JMWQJA+Cmqo9Z5DQqrlS9KL3UIUnpCxdFdPFQUTdirZ9L3E6/kAfmHuNHcjwo1MGLAzQnBnrmyuZVrgfrvHHPOuVasP04wLZ17DpxcDGquwF44NgQlr8ddOs1vsihVAdPfo3QsqJxzpMLTkS2tqpbObhvrK4O1//pvxs++d//k+Fp375zePMVlw8vveTC4Ur8Psy8cb327YZJlKv9tpaUDnF84LdG4iyyFHEpWWsABBtS7el+5wrfMe1BM7xqWxTbeJie4FZbY8cxKR/B9H3QtU8h4zWsVq/xknkjsO62mBQENFXb1aYQaYo7Acn7R116Wn82Dp7CbhWkpiiLmIvDFn6T7SfQUVPdQvpFWXUgOHZyBiGzUnCK28UzRuTGyxYrY1KvupYjXp0ka2c8eFHOXKEJ8VJdx6YyTcsYx5dQ1DXeGeGM46lfOeG1rbQhPpqLHzDlUglw+MYp6uQSImI5zmTMFN3xBF+/ENKbpogs6FTHuw2CxN+wVIDZxqd63UbsilW+KiFp8/KLhpVr+NU/k4FKNs1r/ocMu+hVm9nD8KOzh+9/8MZbP3PDt3jif2lze7J1grvRHpN4Ps2r/7gtfNM07+UZsFPSZvlPSDmhf0Is/fRGerB64JJ7RjU3rCS4c7wUKC8F5AeCllfXth7dXFv47Aev/ShfCeQFTD4i9eODe9oOZgJsXnze8NirXz/1NguEYw83/Hfxdqg6SBh3mXDJZToQraCOF7nN14ZDhgXjP4mJ36++20wKZmYGepl8YuREwAKbc6dhZXJkkLqgiqiMBTzTDYwrGx9HPmwPeElNPnhONJ3t+uhZdrKN4uCmrEwjBl+fILllB0+CuP5XVirSItMmrTwPOBGCVg0pfeVsb3yqeKs7Lp6Nr4xt0nyuxeM3NQ9U8bPZlKSUNjSZcnPORakVyzNjwb867vLPLg7Jgq9dGRyY9ZuL+TwHsMEJgP28sIQF2JCzpelgOTJ9yE9VoksZCcZCLpbCCytKc96qVwo9vgcbWf3mw4bo5pxAPzHuWKqf9S2fdvxaH+8lWGCx2uG3BL70/g8M7/+t3xwOfOLjw69fenE+63/mkUPDBTyM6I8aLcQBbOuwqfleFQ8ukmh0xqPlEKKg9UrmLui2qcYhjkLixJl+Ljnp9oyOK6dA6StjPFJj50Gt5ogUdFSBnzENRVrdcaPIibL9MHvQ0gctZVwFonAAkEVGeyxIFsuceaBHAIcmLz6FyK7LB6D8VSFVd6jpp5M/tLogSVvgaAVh/ylrouHWyU7xlHKLn/2ASdVYhV7GglMAMhk8JNeixEHs4EhMMbqJl+IS6z/l+JU1wKoxqD5XSLzqf8rgRl0IkxXXlGajaBCVi+/GNUJhFV4rKsO4a61CHjm3UJqMpBjRhn3fDCXILU7S/EfWYkRQF8lOUMM5tPzaN+bFP/noCFpOsJUhlY9VPt0+Mpwh+cD5V2743If5nb+tbb6TtsMD6Vtzm/nlP+JPq1b2jiUCFR3hZ7YOH/d65UzmNXLOpAdT26cKyknBw9nd9bV8E8B3pfAxAGddOxvbO9z7/9bNn7/zoXvvu9HPZ/i8M1h22k/TuVMXqrT8kpdO7wLsYzrJ7GfHdYagOTOj6pQdcVrPJKjh6+CtSQajDfScOIg9M2ozXHE98wC641woLxRKT3GRNELCbj9IFUFaDXgncY1+adgPXumKWanqtRhCQSVJnxJCJOMA1CjZDnEbQjna15+mgy7x6SLxwX4oANeX4tkE7QilirvmchoeWsmkjRQTR1VyAtVckt79zWKEAfiIId8a1ANZVuTA6w1TsrYsMK0vK/jSW7QDCJ4dzdXR2B61uVr3dwGWfnDPsLG2EvuRM4a6wOYFlcPSbwCo65f9agwQUWy62c0VE+LMtwK8mvdGQLVfrYq/feBP96qPGjH1hBLMTU4u8NMDP+rDV6+7bvh/f+u389W+X+Pz/V+74orhBeedN1wGn/eW5Lv9ZRO1DOA0Mm00OqaKCQVjjI3ayEzqJLY2ThEXaeiKho5/EMaDaMaUPGkKthQdlHqbogsPm7KyiR97KYSmmKbqgVJsw9JuaWVElSvKRNCTEYv94G0MIUiLP2Ijm/HUcujiaruJilY6PY+/9oHJNqOgcKq0FX7gqVcYiyemfyMTHazQntYChY2B+s14yacxRXPMd1xy25OWxyewYSuh/YKYsRfFpmzfKOT473dJ1I390s3al4boX8UjEPrgSSTqleBlLqKn8RknUoWS9mgz/rqOZSRSN3YlVXtPptIBJ7U3jRJZIRtGPp5c6kcCTU7auvTSYYU1fcZB9GiD8U974LRyr0ex7aRxwrDr1f/RB3/0tb/683d/7cTuZOnExuqWL6eb55f/uPrf3ljjQcDMBGdDohFPTjJcmNW0hn8msxb1M+nCaW0bvJ4M6C5nVixr3AXgCMxnnTtrc1vbkzm+0MSZ2OrO/O4tn/rch/llpnxO0xVPl5+qoyPLQJzwisiT7gLMgrTB5S24XNlk8HnA4Q+egzCD2wGJXqaKY9paBl0fbOQlkKNDTVwN0SVhVPMzqIOpek2srhYDjjMJJU45S0TZEi52U0Ck+ahwk68FEICuH16r6AcTW73YCJr+iceu56kqU3q4WzGwELlER6n6ZMzcNvU8ZzjUnM385+SjHSzGhaLjoJeTG+qKejDM4u1Ijv22WAQcCdoQS2VMi3FJuJGXxY+6B/a4EOEmSKawpLZoRCg+l8uaPsIB9fwTa/ldgH5ATjfKZGNZzef3uQPAScBCsDgNwJ5X7/PQNBJf4XFfgOZwkNYfbLdeSGj8GEF/xPSvvtJXB/49vtf/9Y9/Ynjvf/ffDg/96duH13IH4Nc58F9zwQXDlbxs6BxOFhbTRs1RYHN91QI1koitHH5RwooAuxx0SjoO2ZdUcwAWwXC5E8n+ogE1NLClLMLWUxbGcmQsVP9JqzankHHooi01V6nBp0pyDAREnvjJOw1WkcOrYIpjVYabNWlYDCsEifgOQd+kS+5tb3J9fMaqNMcSMv12euEK1DaztN8YxNOy0XBjhl3GNAaDS0yqXrrN4ZZhbyYWNiBt0NeAGU/KVuggSTYmeOrpg2OUNioWj6InaaRQUaZ0bWPvCom1hhhvBISMnLok61UKo+7SFAVNaJY5yHOmmyK08bkKWfFZQIqp46cFy8qaEbvSpRxCxbVwh+H4r76B33s5Dz0b+vh0umNBjVXsAc44IBx7wx1f/tpHDg4HTuxwDPLFPyf4LUBmKsclLa/sHa8VbmbwlUfNarwr2cf7cSYorjpnU6qezkiKWz1gGaJSDtOrm1sH5/aWthaObPsLKj5NtcWaOHfowTu+9dCr3vLmF5134QVX+6NBdlpv3Eyxk8b88TwW1fMuGs678xvDwomNUe7kgoPXTWcrrxHq4KurgW5d/BpkTUcG/yYzB2/yXo+iqDAyZks+Z9VeSvKfrRvIjIPW0mi/ZiJuMh6RdaL6J78BpAnCKJocTvxVHsfiWy5flfFER2d1QEH/Szn6uqZeY2aeKh7ZojZWDGqvmH3CUhdIe5ms5N5ChpSDRkYBldhQudTjF6INLFn3S6wsZG3ydxzFRSgfxAxAqCNyc1DviqZ8tCLfaeXzwsCvgA8PHD5nuPQlL84txsQxHaWeixxNQ796YUpLN4UK36t5F/wePEOgTbZYVp/bkPn8H299KNDtxMrq8JUP/8fhc3/wB8POTZ8bXgzey3m18HP4Tv/FXLnkmwro5jkZMKufXKcCDaEVtJU07ZPRLo4axkjoX2SpNVrGgDANK2zLScp5AOIPRo+p9eghVz6FggbykUPSMWB8NCnWCFzgqcLp8R5lZCeOpVLVIBWEaB0T0fC1GUPdD+2KyGY7Y8yDlfbwzYAgX7ltEEXpoBXPuno1Da2wGXvyEq8YtEp5CFsb0mKfugkVU4+fPumuYrlbI3TD7G13vJmaapUQqjbog8r+8xcwRRpIfFDE9uKzvmBTg02t+d5oqlo0pZ3iBDx0eb2f60Cu1RKJfBdXJcIxVgLymB8JXbOiTC4CEoAe9RDj19blFw8P/8Z/lV9+LUCNodPbWdUfu0fWq//55WPH7vqX/+PvvH15a2N3Y2udd//NbS5s7u1s8P2/yfoCJwJ+DXDgBRvjGakeu5l6XrWzZN+je5a4MwZpf7DGQHqGNTes+ktLfB2QUzA+g1nnWYBd7ggMe0sbt37+S3/l5zRMuJyx9Yb9LB3uKuezAI/y1OiPTQ7QpOZuvGzT1wkUckYxA9eBzrT1gGTOAMwcc1EQg5GcRYJKeE5QaFl8IgsYI9+z49AC223M5EBlvQg4dBddCbmyEtsy9JZKTFophk+xFoLyua56pOksgt4izMwjVy8LAwV9MoVX9RSlxyYFR5w+2D6VFaNuVMpxaZYbj6IsM2W9+uh6korntbDlphtppFIvnPAUif8lGprrMO3KVYdxFinGXOxiqXwRP0bEgxc9WTqXpy6G87jNPvn61+hjb68vxs96gr8WObG1EPiAaatsOj7D9+oqJuIJfJ8RUINb/Fwl+T1+7937UZd3Ah743veGT7797cMHfvM3h7X3/sXwOp74f8tTrhheyWt8n3HoSH6syPf441K6RbPxwVzfg1xtkFMHKXLp2tUZy7S5/EslcvqcCKVP2viVXbCBAyA4OQltt5aNa4O1SFkb0lCMuXI2MWnxTYZUFEoo+34QCYv4jBjgtJs05Y92+Gv/sZN5pqJE+W3cekwfP0ILV038s8/9TIaaMvZ6KdZJmwGODag1PogONOMdfOm2z/aOQYKfeJRMYhpfFYbG5mfllZPZqM6X7N0G3SCNkDGCnwkaTOT0QtPTQRCiWuHLqgSeLHRzwWFDLGurG0gcVItgsK11/LRZeVODr+ehUHS89/6GHb+U0YZ/ljUmGOMqBMvRMWOudmyFnIsJQBH7GqqKgsdf98Zh84Jzmoz6xKFhRWSmbL2nLtNzcf/6lq9fe/7C4ccOHD6yN+G5P47/fP7Pg38sKhyT9pbr6j/egtPzDtnzuNYrZzpfPNMO/Bj7Bspe7YF02Fl3LdvdODG/s3t4snPO5MDu7tL81vru6ub8wSOH//JP/vTzL3/j62+7+PLLrvEugPJsSXZmBkgn/AT6Mt8IuOiWm4eDP+KLiKdLetQ2x6JlB3IGDqPZyR+2CweDyPFWFGWpZDSTq5umNjBWm0wp+ZKy0/9qTnCcKPIKNOUs6i6EMhT19liwgqYLWGleRbf0AysO/8EsYCokFqC0Rx4LkAdRiyUCVjUtuPqSzxA1ZGoTtDSU7UbJ03445RR1gGJDGflU9cnaGEt50DiRsq2pxX5ZEDIYY6+rzJbFhJxKQo5Q/5wybZKVxU6b4PY2qxFQQPjvNhNN/A40Mt7zOYcbUuc+eP/w0B13DJc997lcqeMTN6gcc+ki89iog7q3PfO1Pu3FBvjkQdUcSr7X39v6/mpZPd/KZ5qTreGuL3x+uPPjHx82vnHb8Ax+HOvN5xwZrrzkouFifp3wMAj1lb7yz5b1kzjb2OdA5QQsztkCecpWmxN6BobxGkMQWQEVbMGOklX7T5sqNDaZ+KMnMUetDZocGJRxVovXjQUHkob5d4klq7XeviTiNWaFBx85VSNspkXFkgtgeTpmWocULVJwM2+aH+E0teZD9Q0MwSJbQtO4YScn+Mq0lFhSxsc0LW3EBnLGOf0R0fJxnB+YqCturVnhH5HYskLKE/KUxy7pOJ2PvErREz4nEoI0sMgXVoF0Z8FsehkjETF2wgkKhFj0g75J0Ya4sWUMKIeuL1Eht4h+2hNm0RwKxXP8EZsspNC6bsCtq5us7bptwDK3ogEPCwhuXnEJn/2/hHbbp49PfW3Zz5mlU86Lf5aPHb/vnX/4x9cfm6wure/sbvIiGr5kwztp5ifbE45F3Eq3FW62bP/WTUg/q9LZ9hFAD479nL5uhF5PT3KbZeAnSnx9OvVFLod49oIPVQ8sHFo6b+7gxsVXPWXrGc97zptaRwanL3rizZYbfrKT6IygncNL/AQRi/pdd86Knbasvn854DoCreUASNm6EyR0xkH9TxcxdT3oiN7ELWauimlBvBwkFZBJxoTyTXD9ICV85gt5m2oxLVYmJxOsXEBPmnLR6QX9b/TYU7MmdLBTrYlYdbqgq3o1EmJZ1gIUrYRuKVdsLt7BKTvKpOUhsmsTvvxjX0Fo7dIXbNp25bBXMVVPU9bVpKgquv6FV1SKYgSikVVUB05GWGCajcYJG7/TnwKpY2ptjN2FgUdShwd4m97lL31pPgbg1RTkytTqkFv86GQxhWiMxhOOwHnQ5yqHu1jamOdK328EeLX/8H33Dl/50IeGz7/13wzrN3x6ePba6vCqiy4cXsit/qcfOTxczNf9DiHnU/39zgPwwUncXXztH70xC6/TyHvHh2EfKQc9C3SV4zd0T9qU73iJi/qemGkhdiiYtGueHblDxnLHlSGw/9KDG+eomCSy6ctIbjEMH+Kol94NtQ5WpdcEEOt1zVjTN2g5aGmmG5Aql9Tg06aRbQyqXWkLPvdvIURPbPXiV9kSaoS3ArDtVd7/VMpibFrMk/La7IqKAhpSIFScUW8cJZQL1zkfMGplMHnxQLIfSlJwK5gjt6wP7uDLsWQa+z59KBd7mTvadX62k8molr4AYogrfMZFKRVwO0GxqWW+WyRvflfEA6HFchFeb+/05GEYjr7l7w1rz3s2feuDt2XPzDR7kC9K7Wfpltn86t/crV+85V23X3/TzZtL84srOysbW3vbW77/lzus27tbC9srw2a/9e/ENWkykU2tdmn+TP2MF58MdwAMksE8aZsfVnfWT5wzf5C7AIubB3YW9uZ2ViZrk82DW4ff80dvu+ma17/6GxddeslLuGXqswC+ICjBzuSZKYfYdvtlHFbHOYO88OtfGg798MFZ0dOUy0aGeY1wvKbPM46r73MG32kO23ZwyKAXFYjMO3MHtgwIHvjrJKCEMkEtws8C7cmDog2AYnASNR1ohJwwIOjJhtC5hVgFRIrGHoa1mt2FKwl07TVuvwLQqvJpFsVaPFgAOJqWPIb8tx1j22MtemG6KLR+Ech22FcBRSouNmn9SnNyImAJ2x5UYoRqko7wj+J4zIZOLXHpi78qsW+mfK4upeADdUOQeFgOkKucjdEmRNuTtMdV995wER8D3PXFLw57//V/Myxy4N7dBsnLA+TV9Id8bKeYHKZBAgs9P7biy/zDnOeznNDtoqTvxx95mKv9Lw3fv+lzw4Q7C1fzvf2/dfjIcNVTrhouPriU1/YewFFf3VsnPp6kgOkVpv/GJWNMO/gKpvT4b5zbohta2mFsoSsTDAvNZ+Wbfromkg1LHXiGKA3tY6fQIJL0C8WMV+stdHnfhdjNCbHjJLTymapX3FTLG+n+U4ue8hBMttW5YBle4hse9AQDTpblZq8GTtH0X0XnBjLjWE8wwHIs4ETosVNjITraa3bycYms1HXUiIodrwShJlhYyOml/VY0KuElXF0n41IFNmKROybNLyhJdcJjhwPQ2m4rjUlciVTxLGrGASJk6ViXL0NiCpRqnJYrQQwv4wSxzBnb1OKj9qhe4CHpU08ZR+Fpr9spvrVa34qecQirr3/jnZHQkI1aq7SGTq6+clh56TWJ0xj3Znx/vfs0myvD5sF/fnV55f53/+G//fjDk5UDGzt7k51c/c/t8Ph/u/pfoeUZVc3hBE5aT7P0Tjsr8rP5DkAPkN3bN2npbu4CzB0atuaWDvhjpdsLm1wkLR2Ymz9n6cjSkfmFjcuuumrn6c999t9WgRSdFGq0FHGmHMLjdhxqDi1xG/fwcP5f3/447ukIozEF2iSNLPYc2HUgLKemslWqBdYym3PZYmaECE4+Fw+LRSwtyk4ur2L4U6HkyHsbJTskg1laDSim+uRsnKKJ5b9Ed0yKKhdWTt7xI56QK1aWKfQEsxYmCc2r5lM1IeDolaa0flEQY8FVxiZ2H8AJhpZrccriDn550WyWQ1Of0YlNtIJI3bWnFvVYaB6OAlNdkHM09aBo6kCpyitsv+bH7cLhHuSveOELWBQ5cHmHxgOCfYSe3+TvB9fQOfbPcafAzSv3Rx/+0XDnzTcNX3z3u4fb/uzPhrmvfXV49vra8DfPP394Ma/sfSYnAJdyonEO8ksAGIocx/ULVzKGqoXNTYn6zK6NAd3Owd9C/FKglTNGZMCyXR4QwxaHQl+wpUHKwkwZKdjuJUJwPCoeeu/hqKCoXCXnRPA7fOMUTQAY0DJvulI11H3ZUiKdKaEJcRRP7MPr5HhXEhoQnl2fdxlX+hHx8lnn1CqPW06MyiuoXb7nMZ9dhOpks9XFUi7K9h020lBtQpzti+4yeQIkBG2M281GeYOmdP402MOQeuRiLEbDc7DoQ+xa4N+P5qhHUnYcxD9tQxWrxlXEQy17FBtOsnDaToLtEdX/AitMbWlag1Cqb60g1PEyqBtNTmSVaPLecXReNXlKYzr6G/+IH/15GrgKTJNxOl3qvJnc2/9zt9/ylf9wy8c++bmdpaWFle3lySpX/4u7W5tcWe7sbJ/g6t9vp40nAJY10g31/HRmzyj9bL0DYNDacBnj0wNpPm7rJ+Z2Dx6e217kFYE7e3OLy5O1zc2DBw69463/9+de/NpX3nHRZZe8oH0j4OSRIAiDoSbBaGMsjHTOkI+/7JrhvDtuHc6//Y6R/zMVaEkeMlPJ8Z1JbhPKpT4m+wQrMScjMpmYJZtxDs3AZEq2GeH34qVNcan180+KaWcM9zaXBVGzAGlnnEROTNC9MpKerSzGiKqk8eCBD3oKJaJ5Q5m63a64brR5XKC9gom90lQRiTLV8hxUuluyDFJwLFt04cROKubV4H7XwZWhYg62crI1oivsKrryNCgZgTzcKDYEm2RmjHW3L0a5mmpA8NNn6c8I81a9ueHqwweG+66/ftj7h/+IK/pc/sfNuqJsbbZfMeJ7geaYhQ/fe+/wrRtvGh74T18fJt/+9nAJdn7l8MHhynPPHS47zEt7OOD7JL8TNpMWO7qWmGo/yZa1A0AnWaesbJxAIlfJ8rGRWFCWHc9sPO0tnYpTmO4gJtxiWDA3kVmqcUaBcJvSJREp3fQZxYba1KOJtNar3NuQjtBxTSkRm1YCip8iccfCWMTpSLmjbrtrfPQDrNRuhQLJWEHL5X7VbeO0/xHyf2xri1ezlZgGSDAHmEmbZLod9VaAr/WiO+5KJ/YViUqdEBjb0i2cqCFg/NTKrhRykpUr/OKgp0RvV0qtPSqQdAH8SJmnv4lKw07caIO5bYqkMREzWoURj22yfR3oFhvL2iAzZX5Eu+7gSIuImE3W9ibZ6FgxbyBZh/CDvkz7ExvKDq7coSqdAqj9yjUvHo5z9f/THPyzrswo9zpf+89n/6vLyw+964/+7XXHJ3zvv332P781tz2Z57v/67wDoJpjJGxEzy23Ro3g++sj40wWztYTgP0x6cGb7e1dzry2zx3WeMzqMCdjE36FaWn7vIOLW/NLSwcOzy2s3PbFL//lr/2Dv/e/CtY71vJ4cJ+hz9KUySRxcrDtsoYffcNbhnNZmHnmQ/bPkGogBz/ei2lzpFeeSWKRCZBpFBWnW2u2frQDnIZV6wekHPxHvHDjs0//54oVjCw8GZtOHAEYtl4dUXbO5RYfoDGjTWiZ/BbbiUDJqRvnCkIxfQYonosVftnuk1+H89GHBkjaq9R8lKxfsS2+Fbw+qV3ykdf1BAA5r675a8oVF2RCae2Jv71N8aPk9aj+ux1gdCt+kMdX21X0OpjBhJ622s5R2KKKXMGDceHigeHqq582LHK73qf2PdZ7ZZ/1Cj1f6Ysk7uMrB6+N1bXhun/6T4crNzaGFx06NFxx/gXDRRz8z+Mhl3Ph82JB9PloAAvGpfb6Qqn5mz5oPiUm0mfjl3KJTxFanxurAg1g52cMwDHeQpcMZSqtK0s+PoilBJt1tvKjV6B7wA4IspDjLoK5+vTbKrQx81R82p05CJRgoqhg7KMcU1KhhamAtq0oA92TNcrRkhQRaWKzD16XMLcNMNJhDUZB268WPDEsu5uuGeF2TmO2MZ6G9o9Voll+IBV/GAs5gdEm/+WtEIx1CcCMYy/TxfYWDgLxI3KxI0HUtNjuS63iJZBOdwuWNdhpzRCkxDhQZct+cgtJ03ENKbGamzqagzK5H4GIrUuilZD4VunnALaYao2+7kEdx1aUm1Fkas4XXlG7jrRp2uGO7aNv/DvDLi+7SNOqoyjHmangKUqzMpT9YZ+FO2+9/cMbDz96/96hQwc2TxzdWufZvwW+eUZr+TbaWo5BQBkFt25kf34Ka2cHiV45a9P+IFp3mw22Q2lngzOxvId5k98I4OyMn2rcfGSyceCdb33bZ4898ugd3MbxGQD1kmY7utNOlSsXWR4iWXvm04ajvzrziuBTKfwEWg15GqHXozcWqDsZ8+/AbU1Vjv9xWGXCMhn6hMmBvPmIigfZfNLsFbaLrYoNqmYwFfCcuMENnvguvgpqTAEycv+6o4UlD2a/DR45JDOhyV3E4nvpZbm0HhpQylvFVvnANCpjMEwjYPmjrDTkKzzg0rTgkrsAx7TmmrcKljnjIt0UIPIa7oobQw842o+cvguejJ0qgIdHnjsb6kngPxhxilLiGaTCReCcpz8t/u3ySj6t+sNA+fzftgjAZj97MvTtT14/vJzym666cnjNZZcML+RW/9MPHhouwUff07+EHZ5x0bpIbKTunzgVlJQytuTpk2bYVd9WtbyULB08DpLxh6JICahmEgvjQ8pOHrJkkU9sYiA69YSDIIxByTkypLMKQPWcAem/IB0LHWUzdmAZLf1yTOoRZT3UBbfaU0I+r7adhgOWuPEukpFVKW2U1OwkNsqWT5qLTxASv9SlSbWifeSzpw5M92hcVryboi80XskmFFjjrP7YheHXTnu6U/arzYlN2lE2e//5OU9kA1T68QuXMgeb30VrlXGtEIvWxEeK+pSYV8syhgyE2CVKXvHX+4S2+ZkWtrGgFxFPu8GKg8pHmLox17/sNBwNzfQTqMIueduadVfgJB0mqaal+FeyUvan429447DOWs1EDEvJWk/3S56arqxX/3z2v7C2svIgV/8ffXQyWVxfO5Gf/J3jGOOxxmMOLulcTOzL9xs7vcP7JZ/gekXpCTb6c5jrAZzNE3w/f/FMjIbwPuZN3g2wxTsBtrfnl+Z2D20vrNx68xfem4W2j7bTGD/dIFE8Y3l3e3jsVa8ftng/wM+bMkkZL5kcLoaMoH7LrozYPA/GGe1I9ubWKLOaud/JTC4lnaBKiO907otWTRZ4sseeLmmxpMdW8KjYUDZpI0ldU2YsVP12Qc2Ell46sZHJr6aT2EVARVULJL7jR014bERVLDVM3QeVrMtQt9MllnwJVF1/qm4GXw1ItXDK46pkJMpAjNGT+IaOiAmWn9mX41aareagonXiUr6nAVGEo5qIAE/QO/Sc58Ix1tNYipsai5N3ARZ44M83A65+5tPD83hF79WLS8PFPENwmKuXRWK2wIln3KNsW9Q1lA2xtdGDtEHl35iTjwd/K6bMFPnwqDr+zI2bqEm21YNqF+LksuZExcGPRxJDNcGNvqoSvduEkUJtJw3t45S6gSQGahrigBSbcdR4idQGRcoKBZ2c9jjWet2DibYDJ701LATQrZZWKzQC8PoW+DgRGGSYPyGWvSp7AoOeGzpFC2jcMjw5tiROyikGtu3RN+iyqJSudMeUlApgVKIjljrhspfvWPZfYjuIdd3QymATaDrGPkaxiXA1SZ+sYJtcuOw8IZCgS8SzXKLP0t8K9VR+9bsoIzDg5RaIQgHaY5gQyNdQeLJ7IaJpnxLxVEd1zLyCJlrnQpZJEiJyFJpc6Pt2/uDPY699Azb8XA0cHTpNGrHhW+5b08lP/n7zq1//y8kDj/5w/tAiN37XfefMtr9ECyrbePWPsXinpXg5U5d2Viemxlmd2gg4yUdpDt8xp0M8I9se7wLMzW+dWF3dXN6dHPiLt/7xZ4/+6OGv+TAHnczD2NPOtjybOm+W1st7LMwTDv5HX/e3O+nnzx2XTgzNjo0ERwAAQABJREFUsyVzsMadMKfTYJxAxc9kixy6LrJJnQBEa1PUbGtChVBErLekGWoRHycKkwYBaTXPnNwlV5OQCpHvV2VZdNQNlrkLoDl60shV1+fCoeICF/l2tZMFyWlPUljjOB//Aanbina3bXVSy87qFfl+0IMZvntPPoQqEMXEDKMOcvLEyijqMWy0xksM0gZUZw+UHiTBqjsClltM01aizasn1sE95288R8VCK2diz+brC18eCu9uvs9/+aNH8zk/j5vyEYJtZkE2htR1QXtRol6Q3SYYMrMhHR+Mq3+qaINSB0E0B6EwpbPlqlxZiWzBMiv7yljqvlABVhvazj964qothjbZJBCrOuhJt85euWYjfUq9dPRfjIYbusKlqlQE0qYwm/GymZO9dCU82T1zLFDOOBFMni5qLG1GySVdOpknU2QzqcVaim3Cfu4S5MyG9jl+jaNsQBQRoPdF/AhfLoldxUQ1BdHJQd+yespU7P2NiZw8SARYhGAoo5h5M1hqcMGKJbDD0hnbhLCctF0UyezSF9ovYWja0IqbqfmtApiZ+wkoJ4Syc+JgzOBDiI2UY6BCk6KdU8hBDIaYUYsd9cNT3j4y92yju0L1x6VH3/h3+blfXvrDibOpr4WzOpmv2j5Nalf/88cfO3b323/39z/6yGT1wPra2uYGxxSu/vPO/wnHGlzLKAJGMLfZ+mnQzz5ypszZ59ZpPZrtuR7wHe4CeEa2N+HNgJveBdja2uFnAbf8gQa+yLFxy6dueG8+b83TYCdjSz9VOtXgUW75mpcOG0+94lQqPxctY5zxk/mXgUkT/belLnYw/FOuEiUr8lm842eTzzoBU6xM7IjaxeAooyLAqqaexaLCGHsqIl6TMFIIaqwZbAtA4UMOrLuOy4HBxRSQuiJBs/mvbfWyiJCpo+/xU3x4J51Q4Fv5pP/wPVq7+GYxE4AUF1VsxQJBGj9UE4B/26NXlSyzpRFQyOMXxepzfamDqPK5k1Fg1soV+yX+NXxdk0V8vByYXHHZcOSqqxCB6EMB6vEfQ/GJrwz6cCC4D1173XA1n/t7q5/ft0gzfSgtC7ZqbPobNUqYSNJnIetkxzakVnqxp0DFOFXdcLOCv55Y1dihbvvE1a4GjEmUkE5/Rqt28JVRQh/iDjIOAXHLCBV4tbPgmPOv5EdWOQI7KODZTsraT0PFKT1z6TVGml39SLuR03bslz61Gos6CaNOhCNQOAokQdOMW1qjLMl228e203oEKNl+JYIrXVmr0YqbysrOVbUC8tjSJMXCVLVsJ2YaKfiYql0RKwLTmPd2yi1oQVGXkJSOjmsxL637a7n7ajnt078UG0jZ7XA5YSEWNS8qSlGNw841eAj3WDX4akKLYQwo1vtMf/jPFuVEtZyIDmjhu/vJafVFzx2OveKVo2CNi6panq2PQhQ6b4Yfg1+7+Qv/39z63tG5w4f3Vrc5omxucet/c5sXw/fP/p3qDijlzfen7njP9/PPinqNlLPClZ/aiR50FXpwM13n+EYA7wPi7CyvCd7h15p4UHN36QN/9s4vPHz/A1/w9al0tB03pj4gZwZABkWnj4IWWCgn5x/hWYA3nUT+z664uDCG6qlVu6QtOjWr3JNsKltVquF92EFTIwsAsyZrVcSVZ8vVSqnWMoKii1QUyl43kckLL9O8AzWb0RFXJ+o/duvgjEZuE4uttnYR0oWSSrnqYoQRmSz61JWb7QdFrIcWn7ySkag+KW2Vr2ZLodEm5W2fjJSVpyJLkgtaDFQ9cQoIePqREw5LHig9ICNOLe1i32tCloY5r5DmRUDbz3wWOqwUlL1AtFzjiZwDvc8FOGB/eOutwwV3f3e4lM/7vfqfbQ8ulw1zhNNV+pCRLgvfVBnXHmSipM+krm9ZbP91JO22zxFBptrV+BLDr1YKYqnsqIBckjYop+64tdjB2gFU+2zGxlykUb/DSG0+l2TZKxMIKYeN6ConlLFQIGzGWq9IUkSdpAjHpDZqrOO18l0t5SLU5+EwtDaeEFFrmIEddxATp25PhjjNV0txpPverpaFT6OUD1jJGcfueGtn8aMQH4pvNJHNXbPmq/4Kqz9itD7JwbpN7Roj8hQ0p2A2+lP0wmlikiKUQsWtKOybfuxRzpikrdq2vwRK0Z36LU8ZUrOvv2l27Rq9ZKu/1P3JaffgwnD0zf+Ar8fUGlqxn+qJ5baffop63vn/2MNHv/Unv/evP3F0c/XA8dVjmztz/Mqfr/ylpfPTz/6NnhsOZ+v1qeEnQalWgrPbUQNs6nkvWzfoHtC9C8CBf41faPIhjdwF4G2NfCzANzX9tcCbr/vEe3wim4GwYMfPbgKa+oDovFlaBNyxgB/zayZsv9jkRKZJ/cqMiTQewGLIxatCoH+RzWST7szqY7HNObHa5JveMpfWjoBiai6Q4FkYFx9VK0YErEGTx6emaBaAyiJHPcuRmPkM2IJOuOEf2WhC3LAjXDI2IRN1qqUfapumBzsrCAMmL1cgaX7DFLIaVgaVoR6SO13JkbnkEkv1WchaC8q3OIxsLp3Bnj04xv/yQZ9dAz1R4DWhw/zznpf39ud5gvgFBnxthkbugnTftR/N+/rP5fW9eXOfB7fmO+LYpaK/bZb2BRZWtSugYitto2RoQz1F2FnQtixTP3igIzdJHx1LVogpkaLclQSSQrK5FppiTtzsg37wkcF/DiwKpjxaxgRl3Yy/ApoUgi6vJ/3pqX/M1dglho/660clsQmz8fORUZzsADJa31PKGDIGxob/7NLvqVQbbQ8ioczGJjZkyCn56hPxxHIH3RNG/iLFzvFZ8QTMO0IyjIObnasKJVPFngLVPFgZPxtu5MEl99s/AYmOd9ysN+zclpet3nSrA347GYHTY5D1Iz5ooPW1asGzAXiXmEAMtvEvWX2PH45tOycbpB7fUtfh4mUQqROomBjvxp3UbyXz0+wf+1u/Nqw/6+nY5K7aDMb+dbyv77GN3P46dJaJveGWG2/8i8VhfvnA4cO7vOh/u1/9e4e5ffY/e/WfCOzzs9N6vo999lQdNU/GZGBnN9vg0NsdTjBEc7bmXYCt3AXYmJ9fuu59H/zK/T+451P9LsD+zp+tB6wNpJMXKzksITy89cgbfp3vIPLbhL/oxGJY66NLQi1ccYXWZgE1d3IlOekoR0BpU2Zu9rWouPS0xSILrSIlq7xYpU4N1RHb+e18DiT7FKDN2lJAc+ZdTkFvCZJnQRAji4GFalOqiGRRjB48ibVCBTKY+la1+BjTzRFvTedg4IIkhk0MBrUQQHfRotL7Nq1GKX3qKhrf3AkgHWtUpZtpNAjiWtJGnKCMetZg24Qd4+It/zWu7o9wApCPltrsUi4+IKe6b/p79O7vDwdv/U989n+Aq388k9FupepE3bLWC3Rsh//YbJ6RNXoWeZjdRwS777mqDQS7LqLjpjQfokm7/ls1BgY2epJbWTn8qv6njLCxSt9a8KBqn6RT1FMEGqUaB2UjfmpIgZ5iWDyDio5q7NBsYydo0QmivgfbtvQgx9P4WC40G4qApYvaDlLbVa3suE8IPVhb4D916ULEx8qjrn+tHZ74Bavh1lis8RSQjMM4QowE1pdqqh2hrqTkYsQg+lCSyrGKtzTqiVXre09qIhLxQlI7jbCj7ZeYV8BCw1VGMZT9hkbF1Bx+xhy5wKh4giG5P5NTd0xUJtn3jed4qPleLPHrAoV6sOivEifzT38aoan8LNnksguHY697I5eAm2Orur7z3M1+cutrea8rlz6sfHdpaWnukYce/to7/s0f3bC8u9Ou/nmg/NRX/7Q4JntArZt6XrWzfN9mz1nu5TSos8HtZXM7Id/JnB9O8EAgwyF3Aea217kLcGKyubm+tTVc9573v2NjnZ8R4vuddHzXHweBUejk2cEi/aTEQyYnnvaU4eE3/d2TyL/QiqsYHrLPxM/BMR4zmJ34WdHKotMIauYXDZhGS4A2keG2thEqaE7ytFEbGjG5SnhAjVHr8JAjo2Cdkv+ZyK0sTRslVRkAUupqrBancRGIZLyJTBam4IqHERXpTkmWyzd9VUdaOSe96tDbFIwq/HpAD6KjO0Qke24xC7ZgYsgQLBGEqe1mXyM5OMKLfsFAJTV/LEpggfS3pyZ8le/IU68mJDoFuhDgWM3iyLdJpP/gY9cNv8Jn/+ctHcRNrvXETzvsTSRShsh/FrFoUW2BMUv/KZyY0NgWGwGEs/3KpQfNbY/9K5Mn9wuqfNOnfoKpvHZKLwCGhwRlJqaemORgkbbCAz4HT4XtLxvVOypjNkHQFJsNFLHvzAVXxnLFN/hUx7aFqa4gyGd8xzAxjmL5GmDo6T9EVWHLRwiQjYV/aaNQoaEUCAklU4yAQag84s0/5TpSdGVqS1kC0s9pgqMRU7NR9uGkXyB6oA4PGduCuNUqCzpri7YHDokE3virU/0gSV1PvqqN2RdG5OXVVmrgWQfU2JROxBPDrBdSYzO7Ylocnca8MZbU5LQvvr6kfelfa72vZ7CU+RnTY2/6+8PmhUewVw/+zapnDMe3ou6vd1npHBPmvUP82Y9c+y5+/HedlwBsczeZq//cUd6ebPDef54z81tn6NkZfbMxfeuQ5mnyLOFsLNsLT9Y0G/SxM1bpoHluxNazAHwAMLe1Ndne2Jo7tLD49U/f/K3v3fGtD9LXtnn8RkAmIAQHQk+9bO7VnHmnlQyvbH3VK4eVF/yNrvLLy9NSJkqbK7nbF19dgJs3WUQsO4EhtgUuC3CokhqG+fSIUzpM1FpyxRBUHMskqs2MZCY5ko2Xg4ZXADJUsKh5dupEz3ovpMwu4OK0ZbD7ho6LgwcSRYLigUGV2IhA6rUTEJoZo4CsduomRikUzTqb4lFx1MRntfTDZI69VJS3zl8U1C0psyARx/xRnzBOdp7P6385IO6ymHjgN/n9f2//O47mFxeH1aOPDLtf/MJwOT8adMCDZw6OEVVaBTDQTT86VuNohazZ7f6ER5vqGKxcyXpCoh/pVZuHn/abdxbilT41G4WFjIlKzKITXYUVyIEUjITKuKT1MssvY2v0zUxis9kHdRLZTjiK2fb6SrKvo+je2DdMqYHRCfTN3JnriI1W1463KL2luEPdvB8Yc6UqH1q/O2S1qyUPvn7YPrFtUPmkXvyJkv3SDVDE/tQ/NU0a4l+9KEPSSJjuUiAnGXcEa45Ct11pnrFAiXJDIRNEg0ENZuKsFXjaUyK58YcONWOwdBBoc7hilpZGoXQdI70NWqWtNldc/UyBuqkCXGWr8LUWH+mXOiFUT3U4+Qhk5qObUfNnL6y85AXDsZe/HEWdO3Xqa3biioj1Tusa1Hf43v/ww7t/8MmP/vn7vsiP/B1cW1/h5363t/xqOa4zQ9d31/iYGR17gkiMuTDWn5Tp9JE7+5rTg9xzPeydIc0tZ2d22IavbPIzm625fI6zzsuBHt1cXfrzP/jj960cP/4AHwWcdBdAsJ5ONUgex2NE8zPEw4/e/F8OO0cOdPYvPa+530LggYOic7CaT52UfSamU05mk++T1VmepKQYTMxWdNVxiqvj3l0WpmC0RaHJBt1y7wVxA81OvVzRBT5CsjL5NIZsiUv1YGWOZfG6n1nMSjY8wakqaZ4dCqUrj01msJpInFPWJNMhX4uUtrLASw6PhuQqrHyTVFegFJp/PaJq1AFVEH/Mh9v/O9vDEj8e5cN/OQkAIN8E8JsmyPjzwPNcqXz3Yx8feEv5cAEnAN2bmK9d7Xv7PArEDwjGORX3Oh0hMuKGnD2WxRrUXLFlsLQpbtn4mDq2GCHJAzzxk9Dk1AkGdU8ecuYpV/m2WY4Kua52G9D6yUbkkevjKjG2Lci0EYVp9VXqG3w+/w+cbVO2sXQ1sjHNTh8Ay4ESmST98yCnoiltiRRYylpuumMbFRQcRMcBxbKPrLZtQWjqQ8gmXQX7wIKpFToulPDcxR+wC3BGp+xGN3otXqjopSd0yaLf2grDuIllc3MiSbn6QMVSTlxgOyYz/sVQ3rz5GP8sh16s3OYnDomhsjnRV0c+dtJOFXpS1vVDf+AiJ2ByyjkZsBJjXefny3fOOciDf7/B77TYIbM+NN/KOKyKT+J9ClPQ/c7/wvqJ9bUPvfM971jZXt9bm0w4+PPg31Ze+pOrf6L/467801Lg9+ensHh2kdrqcHY59TN4Y8B70B3dlne8CzA3nNjloY2dLZ7L5ksc26vb61sLhw/NHf3hDx/gpx3/gzbs/JabJUmaPVvs9Nm88/2+6YmnXTk8/OZf4kcBs4YpZ+5kUDtZa9G32frdGmPDxknhMlKTui8wgOQg1yemWm0qU6wDSAulmBSl5YqUxbHmroJBpl76wVA2czFAwY2cStK7K81e1WuCFpoAJSsqHGELtOlnEYtN6LIo9/kfnSYXPQUY4Vk7pZPKXRcqCFbSvmiWgK+kteROsgCRKXn9DL8tlokHVzV7fPa/evAw3/9/LscdFJtR7wLonw//zS8tDpPVFX7K9zPDUw4c4ietRaKVZvFHe8rTpt6A2BEAmlfx1vEnqespy+Ksjp+ppjdVke4WOXJ0c1IGVoa+fiqVeoRKVodtmPRqPPXGFy/0ciEHWVFU0T/JiOhNDk6BCkFLUXIfE4qGZAyUQbjdaYiZrqHfahoXuiMHNAnqqpYCZU8gehI4PusHxMjXwakqRQ8vAaUPc4BzSURYW2S2a/xGiMLZEBFTG/HNfNq6mK4dZHVsX/MydS2M4Og6wGwYmKYYJUekiI0hPb6p2+xRDFYbE02CWFhST1n/7Rv9gJKxKc9N2+ZkaXDhqh1eqVOm4Emga4csZIPneFMYYvVhxa+sIRvs2QGr8n9+OvqWvz+s8zEst9R+LFjZL5HZcleCxq+pzw933X77B776mRvvmjt0cHFze33TY4bHDr9K7h1ljik2ogUseQWtaB3uSZfbW0+mdKqg7++U1B2uc9wF4GDtxl2Ag9vLq8cnPtzxJ7//r6599OGHb+ehj/EVwQ6O2W1/UDpPei+bO3kfefVrh5XnP3u/yi+1nrNpp2BfkLzqY1zWZKxZW8HSR+pO7pKIX3WFSNFFz39knPqF21xHtZ/sZNo3nH6SUCcFgc008DZ3HVgB7GZbIbJxqMlkgUKXGMaG8uFHFZw6uemLb8Vcf2inbQ6uruuZ9tiHLJD+S2Nz2mb9kW68ijBeDaE02tenEitfPBhJYJbkeYZmJ9jolb85RA5bVDaf9axhidf47vLTviChA48Dv/5VbIfhO9d/angq7/y/mK/+LeKY/qdrkE9B0PzrCwXt6LKAVN0KW34tvooVDzu0ISdl6NR6DjPtRyZiCqtbmTQrYubEMFX5bC7yHJgUTXwtJYZtrHlASIwQTVhFUVe5aI25feMWnIgppzQ7dcNTBorxRri2KldjkLNdZJGnoIyqgocuYscNA76mUi419/Xwmbr82cbgqki99VlgQ7eP4PmfrWIsitgaNk9bWl1a+RoqZfraduYMpnTYlz3b3PTSigjCq4YEvD8ISqX5Kr/JSMs8Joc07W8CCSFxHOlK4EgFueKCbQ/e+VikD0bbK70Qk8e3VtdduUSi2kUtNNScWz0W0pT5RaZVPnZ97DWvA9K2TFNfl6eUaSlr9bSaEnMzP/e7fPz4fW//vf/zfY9tThZPbKxx9X+Qt8rOMYnpiPWcStlz3gFwawFMbrk7sT+HdfanJ9sJwKkiauf0jrCczhrvAmxM7wJM+ExnZ45XsG0urt30ievf4UMfJNbL3ndWp+lUA6rTxpwJvcdJ6EPcjto5sjRVfgJLztU+x1z86wqJyTnLIERZT7JSNQXmpQuLdCd6Jqpz1QVJwMxbSkYULP+acGsddTHyh04BQcv0hxXgWtwUdXGJT2C2A4fatSBBy+ITy2mDi3SuWNsoLXdwpsl1y/pUt6fNI1W+6HO3GVe0NZvKVvS1pbx+9ivJvjDbfpMYaaOFWtay1GFjnYP+8KIX8fU/3gPAtYOW3OozT3i8g8K3BC5f/8m8+OeQJ0s5aRMTnxOPBDrtq77TKNUMaQoxK6o6DZ9CDvg9rjY/htkZKnvB+JWataool9ggER47aWl7u6pDVtd6P1YFuWZcurpW9T9XgI6n1geain1xEMnJpgeqpl9+xQDMSGRfmNbZaEN6KWx2+khWJ5/ysZATNxny0ujw4w+k8cG/eENdLENNqhBggUEeO/jfx2H8rOA04eKlebpi7NFyX8dsgY2nbWSjrcYi45hcbpxPzi5KYsIxJnEdvAiWdEThazMnWzEuVUKphYmyGlrTtOwyCL3LOQ7sX094NJYYiNP8zzgRhRSQwks7Q7al0EZs5WAIoY7YlPsJdRFl/OLSzjkHhkf+zj/k41cwcydDF4xZPIihXp+l7feg8aJ0yw03vev4A48+uHh4iY/xNiY7WySv/jl2tKt/D/xGS/m+CTk1au1JmNrS+qTyvAe959353jE93/GhDZdmBiTbFm8InNte8+VAC7sHPvJn7775vu/dfR0PfzC+T345kICzg2e23I3N5nt+FPD0q/hWwH8xS35CyzkIaDGtZ6wmOn1mWs3SUD7Bqx9mKaqytc7JaCAW+9VK3vWOfpv5tWA50SOcRaEsoNsXtbjCxOxXiH2Rk57VTAPwU66FsqaYq4tCcQA8yjQn1JAoZSqS++/iWArZVxyary5INqgvZhF0J19x+S7MRau2U45PxY4YNv5/9t4EwNKiuvuu3tcZZhgYdpgBhn1fBRNXokZxjYmJSb74+pqoUb/k+4yJ22tckhCFuGNUXMAVt7iyqGwKCogKiCjDNsMwzMJs3dPbvbe39/87Ved29Z3bPT3IyHT3U93PrapT55yqOlV1Tj311FOPGzWkGOlQuFCqMHrmz+t/7ccdq70A6IqEolSqrRsNs++rb7op7Ldta1jU1hq/7GfZiofSrY9RTldmCsPf5GDtQFlVtAS3egPisiLxgxPAgvyIRxVHAYsIbvKIccvXtAD4IPMba4kcTJ7gW3LsV5QLHO46q7gihcpuLK2BEjfgsGW1gkt3wpEZcPjCawJmZcSoWwOZRYKrlUo/cuIBGXSQ4WIG8i0iFAsoz0RH/7VyiJPXBa6CTRrbhm+o8Sf1A5skR+YQWJYxz4RmzAWGt8IRJZbPJpMqD7WM9QAllieWDhpdJgcFYyzVxQoY+SrdaiXSOO6UZjISVBnaJCcRV3VB4oaco4iEB43x0iQA39qekgju8kz1gJxyW9Qyj2iGa4kAVavIMk7wqDzsdpPbct5zw9ChByivHXf9k6W3J34eri2O7v7t0J8N69bddsn73n9V71ipvbd/myy/2Qp9XVZ+GBqRDXHjj3T8gh1hr2mtT/qscLNxAlBPsNWuq0RvJPPVN0d5hcM2BCpNMwEdDlQe3q453lc++dnPDg0ObmETCMtBzni6juM4VT+OdnWFsbDprHND39GHV5OekIAGeFSeGphUKY786DFYqSXjNtXWo2a4NZJtsCcEW/aGPilUlIHRVZnAL8JMV1bhQkMppDvcaEQgpUxRGUUywtArBU8/8qzcxs9iGA5o42WFBw8A9bMCQ0+luPDU9KQjC3xctc4CKGz0KS3NWSI+hCQmVhERmSYeiWF8pKHhI0Wkg6bC0D77hq7DltuSvx32InwmBzrzLx7xKwaPXhWP/e3UR38axQdWpqgsLF7EKTN5qW7xbQQiSrBCG9MYjAJOYfiAwo8cfAQwlCoM2tReKhNcwYs+cACGIjYwgIeuqoaAH3eOohBcFDZxwY+OkPjaSBQR2Rkibao6AYAOi2MVZzIAbUyLdMZdeYoJfMzCpwJAblkJv2r54WUZxiJYunggT008Pc9IJzzgFAInflwma0MAAAz+ES+xMyMJnaNFfgmXsSFEg1lRRWv1Iz1d5pEILlzlW1kUJK7Lygq+1Rs80nQZE8KKkMaE2uDAdOmnqq8s6olCtrwEJGvLngwENrmz4mW1illQZsvWSmJ4AHxcWQlNWMYBLvYHjfUXWHvWifrx9vKl/yi2WHfr6wK4HDxfq5/LwIHyhcdzf50VX6lc9dVvXDIyOlZpbGnUwXENwxKT9o0FNv7Z7n+hI/X8ghM13c21JZvd7+gWs9G58N2nDjSSN4w32LhmcBqiQ6NaztEkYFirs5oAaEPgeEd7429++avVt9/8s89Fg2n9YpIsEtxgtZ3LES1DOp9GwnjLeNj4zPN/r28FeDl29FFEru7wbaSaYsR48UfZMVJmeON6rCl1EhjPZkHc0KiOphpYwiVRCoOxhd5AQ1pYcKJGrwAGgbyAGVy/xhc/BsCeSBPQWJOH5SZfLRk3v0Gji4xIo24wsTjdeCIXm7AIbrlRfpjgg0LPkLNSkYSDr7ESQvy3ckQC/ZKHTTYiOs+MDd/qF1//GznxJLsjHtPEEqVJ3XUboUOp9UZAU0NYc8edYdFDq8ISbf5r0aMAKwtZS3bR0FNeHGkKiRaPKyKrgKm8eCZ3Jca2JB6p+eWqpovIVikSd0pWXdmBoclH+DAVYZWL3aVKLsiLH+HB0/MR1DKJ+Aorf9In2oQU+E/QxA2IEKY0a2dFkW1aKaIgtqRvhYE+yQoSHPUkjO/GP9U9JhhWDFIn+FEOu6CJ6UYuRtZHEtDwnBd05INgLL8YtAg4jBcvt7OVpomb5CIAWZsjT5+0pPyBxzLIVx6x9RMjsjRSkGkAnPIzPuDrShFA9B/QfWyAbU4k4MVVF2GApKsqD7E2A299wEsLUkS1rqiw8VVdYxnhB1BcXDYQ7GbHrn9b+tfj1lj3iQxzPe3QejBPS8/+w32//u3XrvmfK+4Y1ca/gVKf3f1jI8p6VozNyO7+WQVI0rMGiUKKDD3svmczK3w051xx3kDu001puOpMTp1CmzuGdThQwzAbAge17POxd1/w7a2PbrrDNwSi7GsvF9BUk4Bqul7xGjh4f70a+Pt7K8Dznsp3Q0C6lV/SQWmgYeIgQZuYRhFQg9uUEQjJGQOFHcek6/gwM26mSOJdcRS/6RQMpY2bhEZSRDfmMQ1FAlwxpUfFF3k4LjEUbvQVNGr9EjBi02SKUi4BjV9SEzIStmkRXIwMPd4yoq7OCxAIpKMeYaCw6m7siApmz5QBJ6UM3hjL/9pL0nb6aXb3PyoC25Al5qZ4KZ9o1l/xvXBoe1fo1psAjdwFC2Y8zWeipJjAZiRN2XOHBgbOCm2hqIRBhpASGIOUBoR680v7Oj3JgqG5BawaccqqFPt1A2V4xk6h5ERmuejHlo1jzBJj/wKuqH6qNBBgoAUwucE3ydP6ieErZ8MTrlAjk1hGI6QCOMscSDVg7RSjgpp4+AGfDIUHql3k4ZGUblnEvOPGN4Ux5oJHTGRVJY8BsYvNrjomNoCYbFq9DAg1JQBBzpnAO9EYyJITH5IsWXHrkPBI+PJtg6IyBur8wEMWttJgxLR5olE7WnWBKF9LJj/RxHaY4G35WJLygb/9gpfqQH80WiXhWxuRryJWkUgF5e52W/5IS//a9c/j1tzRtrF9I9Tj7gPN0/WIzpb+e7dte+iD77ngS306718b/3R/2FDRlzzi42JN21VDsx0it1pnPpX2irsv0Ox0jJrZ6lz47ns9iNNoOPzqXgC18nBFMJ0NoGOC9YkAPQ4YHRsvXfGNb16i6d8oy0JGVefHO1HeseqgCTQeNp9+Zth+LN+D33McCsIVUxzumdg0oE2ZqLgYB8a6aQHv56CiSRSP9QcBnSBMkFFwiFqeKTEMFmFg9k0AIcE3aRNyMP0BE8sDejljpzBRFKs1n7DRSLyeZ75RR3TyBtfJk5/IBKa8KiVwfhQ2FJQGdQZMD1EaRYM/6ZZvDAgoAFWbKLDREiVN9/ehf9EiHf97rG3yo44mQxjqvX99eiJsWb0qdNz1q7C0tVk7/3HUQeligoyMleWjEAUy5shQcf4tbgHjbQSKGierXIoYBNnCVw55Re7me56RqdLsnzYCEru+sVMCceTn9DZpsOVnERnf5MvzZWnAtuoD41hca0cTbqoLm+1ikSkN/PWLrBh6SrCqAo/FgXksg9HDN15pLpPSBIsFV9yyNp+d96DrP7lUKNXDciZBl/ECQzwola00WTS1jzPAV1+nT1k5DS4cMYuPyybysvkU9SJL80WDQba/VA6FmbxQFvtBvs5TAOujyEsyiNVDRuStBiMd2VAWosweIfZVFWMFvnEXHuVUOvyTLImaUyCOe/eNbcQD3ciQS8K3wnp49/t9JxwTtp15ptU4zy2OC4qZ6pgnZmHGJDiOh/+jq3/4qZ4NmzYFPY4rjQzZeTE8JmaluM7dPxKOQo98azOsjWe579lBes1ccnkjeaOZP2inOA3xPWft84iPAtgQWGpqarnmy9/5+f2/+e3XtBWATgK+OvtEp/GOMyNBaSCOtekzr097tr4V0D4jkt83UhzH+kWZofSs+6bRbaMcuInBRj+qBtWFJgDLMKGBkIFlDEiTzCyM0sLp1wyaRYQLTwjlm9KBHN4oMtilPEEXn6iwJpRYxIUGFvzIWf54tFcCxcxFLx4KAyYXEKxaFMto0w8aLhZJ6dTUUlXEpHjFJBoF6qcw5VT5uNPn63+V444Lja0tQc8ULbNoBGO+2LU1+uTvoZ0doZuDf6hXZI8IrNwxoLJYYcmDAnuphW/1ciIlEWTkwiuV1cLgaeIkDhMVRE4uGJNElLUdBWwyUR1leIwmFsiKwcTEJkTwtLzkw8fjxjfBEIclKLH68R5wgabyY9wsJmbUW38EkKW1iXjTvtX6eLmVaKUzoUUeVgjjoZDysE2Uxp1GjHwtE4QvUMwQoSnNvJSLomCnCsewdQRQVR7yiMW1soEKLNYVxoknEBglGmNEfQ1FpU9jIE6AwdOFk+/90cYG8rI0BE66IjZDYCIzQRRFQR2QovgLHT8WOFYnMoqTS4OniQHysnLTd6yCivm4q2ahNCZPxlPhWBj7/X3/8L2VLRy2pg9mUVHTAcg5u3JdXVs+xwOut75GWeldu3r1dV/44CevG2pqbBss95dHOPJPNoF3/oOW/mUrajf+VSUjNtajavOZrfHU02Zr8emh5vBrwzQUMHy7VNnRBnu1g+OCK6Na9hnWhsDKtuGBlo+88z8+37N16yq9FWBnA9Bxal0O846Vw6r4uusbPHi/sOEZf1wF7ZEBlJkpHdXVFK3EpCB6IS5FW0BhSq800wRR/ZnugFYpUZ0qZIYEJF0kIENjEZW4MU7Ylp80mW0KqyogumOkhdx46GfCuKOYSMAlPHnwxbPSKBCXRi1Aol32XNk0p6JGazlYEAgucoEi0tgkg6BYxaVYRSyunGSgRqUkB3S2f/Opp2n3/4gkpMLxCEFKW88ZtT+wKWzfsiWEW28NS3Xmv50XmVibbGBtRjwCY1+qIsQSUTGcyVIlow5CMZHJ2MeJkHyDq1wIyOqZCFPY1LiRihg/yQxm1tUT/5hZ+oWt5Q2WhfSrPMifqMpOaT0/k5/VR+1t2YjKcBSxdjPqmGZMqE/MAD5RkRN3/hAZV2VlOcW84K24FYHy0++AIQ+DKn8AyjSxpwLVesYVHgjE27woM+s3RpHSILKVKLhifORbgcmP3hbxYGJfeqzSxvIoNRYHGv1b+6Z6WJr9KEnZ065xhUBAm/zw+AwHUgyZED1KwSl2QjEeJmQQ4KefVL8IEByZGTwiRBxS07gjaAz1w+S3mi8JT4zb/KzzTZey2bZW1/qEqhZer6TpuX/TQH//ls999JOf6B8pjbEZnMfBDUFvh0fboEN/qkv/PgmAHR0RwUbhApkI57CYMot+afm55mgQGgznDYfPWc5q6KFRNnmkY4JHWf5paW8JPZu3bf7RlT/4GIpbHcuGgXGo+aGz1Xa42riR6O5j65mnha1nnF7DYc+LWm2lDfijLlTelCTiM+VFCkvCKNZYfsM2XAFsCMhHykaMYhfQwihKsOXobaKBCSK25W+zZFGZGm/o5KoKH2pjFcsVGQnBXk1MuLEAIop5GRQlClz/k1rTEk11k42Vx9rPCqgKODJ4wKwOgGP+lMuoZeg52re/Q8/1T+D9/0hAWS0LJgCiffAqHfsrnnu1aee/ElCr0UiLJ7IwbkLkzh1a8pcgKJPlY8yEhkNAgkd5EI+X4RoveIIo52kpYOVG7sT1jx9RqZf4wtogEeosjJd+Ij54rAwYeuSTykS5jBKfdCHFIlEv0eEsLREnkOVKGGT6AuHkuRzMQkouKYcoIyuwkI3WmNvNMoVgAga4CqDf6rJ62i+p4qc2sj6pVQt7RZFyWjtCS3kShYJVZ5UXHpMOkZszulgUM8QJbk0JrV+USv+whrPVB36qNzIC39L5qQrBcojYrAYYM9EKv7oqYHRkogBhQpQJXNqBP0tOeRKWi32ZgAosBP74jz8JiegT5HrOPjtsO0Nn/Ztgdq08+ZhIYTvx7+Yf3XjJr26+bVVrd3uzdL9u/OOR8RXZBN39m41QdWlBLjJ1f9cKIMLZ4ObCBCBvmDycNxxh29TBo4CGUNLXAuOyD98M7i33lwabRtu+/onP3Lhq5X3fTGcDQGMu70w5jDBp7vKweq12fzeGTU87TzNYHVk5S5yPtaigUBjJuZISxKC5opSuMfWBzhEcDHOmhEwSlh7Hk1JSsilYFB8g/ZhBRJ78m7KzFEXVFPCytU7wFa7yBgcSEYGCD7rhRF6GYIoWHF1y8W6PsLiBZvnCKyrjmEKC/ad0wih+DRtN8Pj4T/mYY0JTdzfLi3xRDGqx4KM/TaEyOBBKN1wX9td7/226g6FsMR9lk8ofl2QVZ3aQyo8c4gRJcIDiat3MLA5xyCO+P/ONUhQMfJtUZUYPMOi6LD8J21YAgBt+9CNnwiZNo4nJQpRMo2z1K0ZWDyOIwwR52+MTYBTBjTAZ40RD81kyIGtP4slYWwdQmIpOWNbYToYvyVJuykHcfmI5qHvMXz4TQzIRH6sFszDLGBzgKc0i8Et4pOEoe/IjD0WMFy1rxPrVH0GXg4Wh40+lsUrCxGIgEol1sQApkZ81lfpN7ONilPhamcEFZPnAI8laZbYs+EGOGRnlsklkFJIxsL5khYp0RgAv4cY6iUf8F/6e4YZ0rsqWpz1Th6whG5VSZa11k/XtRGotXDd1o62trY3r16696ZPved/3pOvbtw70lGwjmB7ixVfES6ND9pjYhIyg/SLn/CIjL437wGalmwsTAARf2xAex/eGrPrq6/YowHwt/6gHjA7rUUDPcKX5I//+H5/p2759jfYDVI8J9pat7Vh5PA87PoO4tPeCsOFZLwij+u77bHOST1IQiJFYEnRMiBGUsv4MZIoyKkDi8Q5lgpa7XOMBiIsfFBWXx6XQzDZgEAVEriiw6DBq4JLmvIhjAuSYlKSkqNikPDAABqySRHL1BlAtIv5WBKHaxEMJkTvKR/kz+bEyCGr1VTl098/pf01a4eGEv7HhEWNFdraKJA73X3NNOLhc0sE/7aFJBwXFY4ypbrKEwonKWYVJsiFnyjWh8JAB+DC29QMrk/VqQlaJRGCyAxCVZqyDeClgcjBZR1xLoy6kWQRe1DY5BXxCZiUCh8xoF0dC3pGRPNXBtQnphosX6xNpQDYCy8vC5JnwzRgTplz44FoaPszpCwJYYxmiYDFTQIYMntqLfSUGo53FzHImLwGJpVKIRiH7F0y4HrZ8xQo8ZBf5wwtaCHRZnkKwAAZdf2nyEusEDkx1VeHARGhCT7yEEfuE2g3+loZcKK/irA6BY3kqjHwUNx4kyHn98WMYHLCSLOFlmCIzAhFCS8QTUvoT7aErH33Oi0N574WqYmzfvEwmFxNwDo1h0nLH0j/nvOgz8Nu+cPElH9MbO6Ms/Uvn60ZQS/8c+VuyN8V8yd99GNF4zrDWz7OZteEdpTtrq7JDwWmwvBHTSAxs8rDlHpZ9bPbXEPQoYGS4vbujYd2ajRtvuPLq/zalYSNuMt/aDkbqVDCDaz9A35GHhQ36eMWsdyggDJWkaurEjDR6BGUS4eaRrsvgKDP9586UOAj8J54KKhoRAZlykxd5EBCGGcmk/CC2dH5Q+B7DSHiGgqZ8LFnhqPxJ15WUcFTQxIGCo7+khE3ZooQsAyl59SKSxvTMv6+lJXQef4Kd/mffQRBX++KfXvXTjDJs/6HO/W/vDB0qj9UDfWKCiaX1MsEwTpZgECcbho+BVcbIywysESCKOBGgTHG1IJUZvEhi+dnBPYYDoQLkzShQqsXhzd2kLpIwpiY7RRDhRJmSJRSdFV9pMT3S8BvlRYA0mEVcsrKyU0eIY0aRXmHlZLjWZOpPxhcegpqDlbCsLAieuPGAH/LkEiwZWEEVlvQMBjxdnq8AcZVBSeIXk4VMOqsH5MGjAZzxSPIhqjh8qQcys3zAY9aXJihEI5lgIJsBQ81ykWKp8snZ66/8bCzR9tAoSc5kYjjg6Q/Sqh/DihrLKBrylAQom5Uxhq2+Qot7JBJ74wWPPc9tevb5of8IfS+z5pU/SlpP1zq8No24LiYA4Wc//slnbvnxT+9r1NK/dv1J7WuIsuvf3vkvjUSbYKODxvcrSdekbNnwk9weLEEv4s59euVccd4gtT71o0GB++xuTMs92vxRGhlWBxgJw8O8CMKy0LCWh7548adueGDlvd+eyTHBMMelzrZDB42FaQhbzjwjbDnrzIg8W39RKqZZUSJSNig9Kcvq8qXpOOFU66faWyTCUFLmEIppt6ioLSourqispdB2JJgjLGWWeFUzAJDzVDObIXI6yuuZgqdwNEYKqx62+1mKl0kICtYyBA5bGxmC0nNIE9wmK4SlmCpSsqWjjgwte+8ddLKU8ONqgW0EFP3qn+rY361bwqLWttCcjLoV1uoNS++S5D0hB6tkte4UWumKU69YlVgWK6AVVHGrVyxmlVRREanYlDumwYv2i4ZTMIpAGp58kwIMcEqLkwEnBsFKamkmZ6Mlf2gtO8NJMWNjKBbiR4gm11h3WoPyWLtjtJJInC3oVjA8yEnHqbDIxMpsDWWIE9kqahMGxycZDvqnehNyBOwAEq1wSV4RHkmtpDCxIsVyEeZPziYD4BNJTu1rovR2Jk2X1UMBawfFbDzZxBZelCEVEvTUrrFtKEPE8baCnzEUSSxhzMR4IiPjqDrFTOUrHZQ92G170pPC1rOlJ6lkclPpVk93H7zcseufpf91ax6++QP/+p5vVRpHOnoHesro+uGgXf/l+DhYtsAeD4sWHyb0nNQbLT6Z8R4vRZV+hi72+Bkiz0I0Gs6vvEGtgWPDx/0ALAexLMTy0MBwpemD7/n3T/Rs28ZbAU3qWOBPcrWdzRO9s3rcujGDUafBPfr080L/kcs8aQ74Eq3dHaOB0hiRxyY3FJI5k77CKGwLCxo1cExOCtKoa5frjQUMoQE9Ks6oxRUVwwhWbhaQDw0KWSlxOd8SIj3tQBQcymBlF0D/0KMyIxwe8YKf8U7LsJDxud9BlbtRXyQb1fRxhE9JwFj52ud/Rbv5ah3729EeurQPhOfcqaDRB5cyWDlZVSBu6l/AWIRUM4tbGUgXWiplzM/La8wpaKw/rO0Zs/CtmpE9QHPwixVWIMGij3wjyJoIGRgzGEVz4nhgWXk8A+L6o2qMATPs5Eb7YlgpG3GrM5kYY8XlW0JKh8Tk4xKYKKAZdcNNJCT50DQ0A4g1ZVNYuKnUBqPsVi54UCyjAYmKkggg1cvzMRzSoE3yJU3lB91KbWT2owQgJKRVGsNVXHnYpAn+MZeIp7AxSkWITIUvOYFn5ar+xvyrYAqgf/uhPqnx6PfeBrFORrHH/wwcdXjY/Iw/sr1TNjapWWykumUnzS8QbMKaMHXgz7he+dOu/4HNl3zw4g+WR0ZHKyOlEZ3za0v/8bl/eYQbQZH4jaFPBEyqguPTMnPWzbUJQN5wNJo3IL5f3sjma5CNNJT5AISeCemDQf0jI5WgtwLWrVq35epvfPOD6kiksR9gh05QD1aLVMXhrnFhZ1j33JeE0tJFtWizOJ4UFQodEbGMa7d5rAzoj6VZ05RSSvJNilGzGTwehasg6pAB7ZIweSsmvmYr6KmehwFAVF6gECSAw0v5oezt2XdEiEmmVmM+1bZJZJYXxoAhDy3ldL62RCtGUuy2/K87+wWnnR4//iNljXIfRcmL/9o7bg+LVz8U9tGxv5o9xnkGuYtvzFk+SlrsLRPyiRHzLVurQ0onLd2dKmQ1sHIhL0+Tb4aHQos2tgGcYGlIyipmZDQGp6Kk4cknD4E8a0sjD8tRv6BaYjRukU/kUcUBF1aJrbG2iiMb6CMksVRE9KkYsXxCMRyMnShIi8U2uPGFUcIxphDonzTKYRMqIkZnP0oARxcTDqWRF1HjRwCnvCyuIFnYr+iA+eOGuLwu/CgM4YkohSND4aZJDfsQrJ1hT370IcpB0WzSkfK1sglmucZf45VKQUqCGiSWDT6CKm9jRRYUWT/VyVeEAN3jXWm/xWHD+X8SKnt1qk7RLOXjM6/AVHDHSem26/+G7//gYz+/8eYHm7rbm/pHdXenBV+JaFQ633zR0MNqL0TsV5VtCkTxO3SW+3NtApA3R21DEaeh3bdZH6sAvBXAowA+AqHuMczhEKG7te0bl33l5rtvv+PzPENSp4J2B0dnq+2Q9eIG036AIXX09c97qQ4Lmnyk5Q6MZyvAFBwykZGwSxUBxh2NfN/gJARrCVO4ShaFqSubxdNCUph4ptBggfSFx0/yEgV8QSApBowTz3GFCAgoP5asn9iSMT+QyMl52rkEQKysorM71khP76Eqtvx/4gmhaYF2/+tZf4P6x5hWASg7ewHWXXFFOKRdd/96E0ALAEaMjcG+Wj6CcIcKrsvBsCgojyTwvbdNVFxAq0m1PsjI5GVMkaAc9QPTmFjIyCg3jAGbHCIqv7rkjFh+kjtckIrdTRuKfownuEKGj62gID21tTMFzl/KD9YWxJcAYjbIlxQ58oMW2ThM4HwMWeuk7MmNv/gf6QjDkDTyZdJnRsQyiRNRWxFQusmBEsEi0QCM+VFumFFiPHzF5fNnExSD0TiWqSYbBBOew8zQRy48crI+T1m8TS3/lEeWnbOhHjj7dSD564/fPDfjTR+j3OQRSY1+tvygCx99/stCab+91Q847F81pS51nMPddxTifnHTxtL/qnvvv+KTF33kquHWhk6W/jnwR7IbqVR497+6699vCCcaNUqRAngh3Pfs5oxv6mnO1CZWpF5j5Y1L2C9r/LgMVBobrsSdobwdur2/p8J+gHf/479ctmnDxl/RobSjFLq6bqoOOQkZ5aFJQO+Ry8N6fdZyLruoSGkKFKc8W9538SGHWHvfIBaVP4NYo04R/swxsBWwu6e00cs1YKRJvOTFD7FABQ13XwSN2nhas7OU79lTBiscABgI1/App3iQTmbGB2rBtJt/QE8Qm8851179Gxsbls0Grhy1D2DT/feFzl/r2F+9+tcsnrbsCz13hfCyfIxxykthjL6lRvUOismLyQc8iPv8U3nF5W0BrVzGXAhwVxiSxM2AIobcTBhphgKtG2PDUh5gqd7GX3jISXzslwIgEsiMt8KC2ZxYME6Ns0KaBx9hKR9ziQ6y/NFQLKOhigExJ4BWuSJTMuSfJF2Rc/QtTpkpG4UjmMppkytjB584EY1yB00J8Ie70YjcHlkhj1hYY2l5qsWVeayfl4GCxHwpn24zYWD/Jj7CZGE/oocPKPR/6GJKxKeO4h9xxS3RxdUh4uIPA7sgj7zpC1Z+cYOfycfCs/Pn0ec8P2xfsUyy8MN+EFp0btTdd/hUvmz/GEv/eny75n3veOd/Dw4PNlXGypUSb/zrMW/U8WVe+bMbQPGh0bk8TuZ+KWhhfNxEwWJ81v/OxQlA3lB5gxH2xvYG9jjqWbNDHgPwOED7AbQSMKoPvQ6PjpW/dMml7x8cGOjTSgCTgJznpA5Qr5PaAE5Ylp7CW550tg4KOmMS/VyNmMEyTSgpc3eECE3LKq67yChQheXi8iWKm7jUHCgkqKVsF7NLPylFG5PVMLj6g8aUupBR4MohGk1he48XTiSDoV9khEs8BDZqCgArlXVEZe9buFfo0grAmBnlZDjIR3gPX3FVWNbRGRZw7K+IGsGBPZzwiSpgSh+wymOGizAIqXvFvkJFEsyVv+GJxmQIjS56Mc55y7eJFeTA7Ud8yKsKkxERT8oiaLoIKSwc8KzuEhLL1dYc+jF040l9DSnyh4USDRcG+uenSme4AEFMhpGgwtFg00r6E14MeV7OS8jGzBhDqDgwKk/FUpbGX3EKSroVOArI5ewHMcEi3p0nXuRMfcXDSkpZyFPsuCxnSzBCA8T9G/AnwTCSp7yBiId1AcpCveFZ5ZHqSB6MA9KMih/KThslgNFEnimDKuZsDmyTHtyiA38m1ylWOtedU9XRxonJVtLVRFSTcM3Xxsa/89VvvH/tAw9vam5vbigNaXFX6lxcddmHfvQWGG+CmdGvZ/gRtAvbs66NO3xW+3Ttue684dynvoxYLlsBwNeMUBOAku0MJa6ZwEhvuVxq7G5q/tFVP7xbJ0h9XHAGtPqcFFXqdMBq3XRphqtRzVkyG57xrLD9mCNryed2nFaw8a0AhsUUeKyyqV5aBdliTByVZDShXTAwM2U4+jH4hOEAWQ400qRcI0WEWQz++jfDYwaCNIwPYCOEWA7eKoeVRx1G+Ve0AlA++aTQqHf7R/TuP2XiFECO/e3duDE03fYzffSnXTv/Y/ljmSOrlKkiSrN8LcNYDoqkumMC6D+Uk+pWVw4olmiMK3ikRfKJEiuOwbI0qwY/RhjtJHxJVN/DGBo3qzS5Wo7mw8DqLGpjRpy8KTP45CsYYoF7tQDwVsRoUzsCiYgJLiLoIl98V0GkKypZupGkfBPOOKVyUVYcBNAnnlV8wUGgnKARsEdCwIEgAEuIxp10nLxYhRRXHQxd+HFMQ69/CsoKCXUxVGQhGHC52KWjPKmDhVzOJIIWUY3eJmuoI8sMWcOKPAVK/GOasZ8zP336YNqjz3yWbZCm0q433be+OkVtwXE8UFKcL/013HHbLz771Us+d3PobmxDh+sdHXvez9J/iEv/rvfppfkEgHjWOnCe226OPoiuNloayT7CDe4wIh7Gb0Sdt2iSODrarMe6ow1jo036bGA5NLW1ddz+45vvPuMPnrTvPkv3PYZlJnVOo52uk+ZpeTiWQoZDz74GDzo8dK1fFVp6+w08r34kwvhHrTEAUfmh9EyXRu2ntAgw/QieFDJ0ES+m0RiMXGsVItAYwEIRn18jijQYQWuXtDxvy8WsUMAEBWM89Ct7waIru/97tC40+rKXhcZ9loRKqaw0NgWOBb0sEn77ta+GQ9c8HA7p6gytVjfxMnYoNwoV62dlwAilRxoxJ+IxazBtqSIZFOpqKydGLx0l3lY1eBtM6ZYVMU2q7HFLlCescMYjBoWrGJnoAo5BI24wK6eYWXFAouYROcoulhaIZUpqjMSo6GLDTMCRo8lZ+fBoJnKj8IrH6jgrkZKbVcb4Wm6UyfKgrAqipqvlEymsrAIpa0MWJbxEEH3qKGLF8XBWb+tUYgY/8TFneIqnvgA8kkAf8/IiGY3Alg7vKosYtnhMhCHEjpyystpa3rZxE5noDxI4GGniOZe8oWUHhkde/BdheFG3ZL9rZig3/C4T3fWPtrW1NT3y8Nqb/+lVf3/RSGtDc/9gf6Uy0sj330a09K9HAOWR0sSuf58E+ATAjT++O+8R7jt8zvjqkXPaecPlvjc0MMJ+WYdQB9FssTxsz4q0bMQ7ozxDGhwZanr3P7314i2bN6/ULLN6SmC9zugSzdPysKezH6C8ZEFY+/w/D6V9FlTB8zPgilGKj5ZBw9rBLIqgBVHUBG0Nn7CZFUOzJFe+SgLP5B0ZJUqTaIAAAEAASURBVHGmBJ63AydqPvEYjnBF1CMsORm/cZZrVIhR3f3377M4LDheZ/+PyDDy/JePAelLZYM9vWH0Rz8OB+jZf/zoj8onJhMqnPLGfOEdCwkk5gQyjzgmlqkz3FReo2OyogDGLNIaVGHlJDwzsGlCIxCIkSdW00gBRt7ROFIW4fijB5JJNx4EDSCffLiUjwVT/QQnb/5JiLICkoRoFPqxYWY5CT+WM654RK7GlDa122elmxFGeiyNe4NI5tYvgJOhCgINvvEXTKgGtmR+mMAoPaHHfASWs3pg+dNdeewztCmp8BaOy4UsuIxljJhIojAsgaJRM88qZZDkj4yFBj+XmaKx/JCLKhZI9HCYu668z8Kw7kV/GSrSff6Rn7r6sUYE4NTD44aM17X7+/rWf+y9F75fZn6US7ob4+/P/esZ/9RbvNdMypBGnvMOzTbfXBy9VVVhjZ/PBnlWpI5RHtXHXXkSMMIzJD1LCps3P7r98k999n3lUsn2A6gzWiep1yldqKR5uoc9bjja9Tq0/95h3fkvC2OtuzYT9jzmpI8yRKOiGJNataCMAcbB7JJkm3SmGT+0s4/aaCBNv1bFY4oVQhv2yYhE9kaX6XJTwpYHQF3cVbP7f/j0M4MWhrT8X7GijVAGGZH7rroqHKJl5kXtHfHVPys15SegvCgYVwK5wsegUS/rSYxGQ3TP6UVIMZRcdaqDx42t3Ran1EQWY5SPRy2KWTkskBBlHOEDb5iRZD8qCHVWbEKijuQEhhyJoSIKCnlxp8sStkDRicbSyUQXeFzpjhiorXhYGrTWUpHUmCAYOd/Aocx8w57lI3xo4jI/3KgzfyKG3vDlxw6kKHDGpTBsFgK9aMyDt2UqAmh0gW+0BgEQ5Qa+/cFHMC6jVd5pUgEDeyQCC6rBZewkk3no2PG//oV/IZ23WE3mm/52LohJOlPoxLl43s9zf4XHvnP5Vy/61a23rWnTK39lzQGku02HS5fbIwCR5Xf7NIBfFIBGr9cowOesSyNrztaPinkDug+MhvYGx/ewTQR4K0Bjm/mjdRydFDjS218utXa3tV77navv+un1P7oYJjIyVZ61HZT06Zx3YMtcmoFdsOuf9bzpSOZvmoSEHo5OClWGuBo3pasUa4kER7FbCwvXlDSUUJi0BXOGKJGIo18pJOC6xNMoEg/oxnXuf5+e+bede67OEB0zTUIbNjc1h7I++lO+9tpwoPYFtBshH/5JJYQdfz7SMFTmkq4hK+oAPOWbimllMeNhliPiwdZqCRu7rOQA7bK6wSfFBRUeOCADjM6SrSwYbMqiAlIO8OSTXu3d8DMDKN8I4RURosT1a3LD/IkD+BpiRmJ30OLtdUhl8P4PQ2MZGUYDGYsgOOXSZTzIW2UFW/+xPrEMLNXHtuN1RJ/sRJivJMAeY09e0YmDyjzBJ0FdBsgBR1l0xTrBAxiNmUy9Epn02OOFVG4jNdnCg8KSQFA/Rk+YtPnnNj77BaF/xXK1s1732wU3lX4VfJzn/rf/7LbPfOkTl9003tXasaVnQM/906a/pMPZ46Xs6FB+s5c6V2yZmqLQSjj3Y2wO/s6XW858tHm41qd5gRmc3qL9AI22H6CZCX9TQ2mkPN7e1dl56zU/vvu0J5+1ZOl++x2n5Sc7KAhinCmCGNzhd9o0YQ8dcEBoHhoKnY+s3YG2AGQS8JYDpHA0QlGhJ4DpXNe7VUPmdGlYx2fD8IhGg/aJ+lm/xpc0JgYc/TsSNi1bFha+9KWhMlyyM/9HdMffpGf/K6+6Oiy981dhmZ79t4vQ733JH0WPH5euU8ZuLMnGXiOLxsrwRGKZQ0tpMDZmdQBH+uhFY+u1B9XqIzpsS+xrxiTViQTxsOfapMMPH2MmCaIO2TtgecXn9MbHfgwl46u4OYxfkjt3/KK3iQCMRUd2Vj+rr5MoL2UeS59wwDNszLtxjFWljMSNnnJSXuHYoxdSAMQfk4nKbvTUkSR5lkxY5L7aAjTyVKoRGrrJBw4QmXwIpPqbPCUkewQF2PESaeQDXyUiy5wvOALPd7f13Cfr66hPiSf97YIw3PjHPi3Zq50Jo3vb29ub1qx+6CdvfOVr/0urCy09QwPlkbGGYa0J+HP/UT3W1WJu1fCj2vOVADoLF62GIzxvXBxVc7+69RqVBs8b3ztBtXOwYYSNI+wH4DUSXg3cPtBbqTSPN7/ltW+4eOO6db/mnVN1SGh26ui4ftUio7jsuOCnPiX06Blz4WYugWhM1HxJWXO3bQpaLOzVQZQvhs1aWz8oaTyDAURxRxQz1HY3LAD/Sh6T4h/SM//xpzzFdv6PlNUdBGPj37i+A9D3w++Hg/QFsw69CWCMRGcK31hTEgKit+f39AEQBDNP3dCDANx4kGblMIDCAKiYfOFHnhYA0ZLMV7oZc7trVp6ii7ZIuGYYoRcfsY13tcJQUmJqaXEvBEDhgq6LehlfK6xyt4mDUak+PKdPfKgjDIm7UJGz0ek3lV8AIjHvmEHMIyZYnhPtqvIq83iXD+u0uhALHmVmxY3lrb45QbmtDgpYOrKnXOQNLkCcp9MP4gZTymaX4QpFcfZXTKBO0BhDk6nDEk+8wpkEtp94Ytj0lD8MelivOEKdmcv1ZR6W7R/T2SxN27ZuXXPhO999IQdyl/mkm3Q0j23rbPpjIPlFwxPG5eEIib/eOXLYnAvPlxUAbzjvee4DJ0xjO8wbnrgsfwj6tptWAnSqW/NY48hYU2hvb24Z0T7Bjes33Hn6k570h9p9ukDPomb0ZoDYmfPZrMcTUCcEtur52IGhbesmXdsmJReRmUnAGs6b01sVra9/qX8XteKEU9MbGAPgzR+TuavWMeJhs5b3O/73/1ZPaNSdx7A2BOruX7uX77/umrDo5lvD4d3doUO8m+wuOt7Pwj/+eS4pb8qQ0ihP7AtgprwplxkcxWWojEq2h6VwwwfPbJFSzAeeymsBjFzMg8oaO/IhElkKGCURH4EoZyuPZRfxiCdZxPLB2IplPIyX4nA1Qx2TJyYZxkVA8XHe0BtL6oITk5gW8ayg0suwMjwrOPWIuHFy5jkLZnmSrvpb+ak38KokY1wgYJ65rSKI2CQSCWJ6ypsM4WAYli6I8jCusLGMEz283ZF34XaQQN/RK8KG5zxPm/4WS3je+DugTQLkxn5SgiJK4wt/jZVyeeCyT37qrXoku2q8vbm5b1DnuepAV23P0aPbit7fsnP+/Y7fl/79Bo/e45dnYT0qwR02p/35OgGgUX244udh76EO16uBpOv1QN3hNckvVcbHuxZ2tj1y/6rNzS1tDx138gnnSUk2sSFFvvOqdpw6oKnTRD7a2R6GDjo0tG3eENq29VRxi8DvLgFrVG8hhrsDuCOW7B2UEsyw6L4ibNNhJZ16/l8aGow4Mv7osns/cnE4Vm8H7KsJgp4URYMjnvSCmI3/ine0aoIrFwODL0ODkVfc8rYyyLgYDEMkOD0SEkVMfwpg5AkIlr03Trr9Ua/E15hirHAYSnxDTLgqjfhb0aznk7dQNJFhxSLSQRppYg7wwFEnwe2uWr6VUzArq34ss2QojR4ezifSe16ULWac4JbguImXouYUrRYMGKSW5gjEVXYrGxQJiRB89VaH+emOHgyY2KoGdET1QxvErIiAYikxMWKBWbhpJNCvU083nP/iUOaYXz1Km85h9N3lYYfhA9fFBKDh2iuvvujyj3/yR2N67t/TVxrUSX9853e4QZ/9UUvpg93Vw358EsBd/1QTgInM8wzneHj6Fpmblc9H8VQ1dBxTifQemwRwPkAzWmNU74CPjHct6Oi857afP3DoihWVQ5cvO5tVAKEaTa3Rr43nGe+QJiU02tmmMwKWh45Nj4TWbb05ehF+vCRgrZyaGmMhF0FR7aNs0BY9+j7U+CteERoWLgrDlWEZRp04pkP+V990U+i64YawYsHC0AmtiKGP1AoQk8GJBlFhGZCUTUR282LGzlCNxnEiHziSphg9yxYuUw7GPqazvG+vEaZoNGPR+IItDvZvITJIxize2cZkw9OPsUjo8c4a9GQYVQgzi6x0qNyw8hR4I7PYnyMDK4GCVtXkWRR+JhiAQKKLJSacYKmqE9GUG8mOQjk0i5GkBUz5i3e1PrSBLe1Hvp6dlZNHJcaL8hDQ4wVnrGjKAsLC7aIEBo7QxuYX/pk+fqY7/xm86+96kD5UzwHXxVG/jXf98o4v/tu/vPXzDV2tnT29A6UxHcytL3GOjNn7/qM89/ev/OV3/oRxjCIysdEEIHP1M88Q5lJwPk4AaD8f1+7T6IQ9nofNoGsS0MCjgLHRZj0K0HmSetBYLo+OtWsS8KOrb7j9zHPOWrp0//2OZWOKOvIOkwDv3GQ+lZuEIxYjTAIOOSJ0blwTWnv6piIr4I+7BFI3aG7UXuJRbf5bHhb86ctCpVyy40bpJY1qn5X//fFwTLkc9m1v08l/Moy2CU7mw3pP7FLRAEZ+Bq8aPaWLh0VTdlTDDG1SQWaIMG7eNc1AGfNYYxiacfOOm0wXkwEwSDaPMokpWeovmUZILTVmlzBjz43ERo1BTCsOyt+ola/xt1+oibkfo3b3XC079RJWJLIJQpVewLgykujkGT9jJ/1siPoRgyjLmAyWTTaEUOUlGoae5ZXgdpgPyCDpMpGRZkSRkmR3zs3jhf/YJDB4+CFhnQ76Ke2rL59OY/ytDVPHSAZ+ygx1f2Wb/h5evfrm1//N313Q0NbQum37UGVUX3GX7hzVrzb7lUe19M89Wz4BwNDX3vnnxp/ehnM/xubBrw33eVDP2ip6Q7tPOmG/6Bx++fJReqak8wF4xsROE+0M3F4uV8aah1ve9Oo3fHjDunV35psC6dA4DLt3bvctYWc/GjglHZqx5kV/EQaWHbAz7CL9cZQALcdnHwY0AQhPe7ruL4YDDxfHiMvIPHLnHWHvh1Zp6V8H/0SQDKqoeP8QL92uo9uiwYWjrqTsoo9Jc/xojOJZ+mAqbkbbGERaq1/iQ5hgxIxB4Zvxg6UC0cCDQ1zs8I1tTDNyjDQw80VvBwDJt3qAYVSx/yoXW/InN6urPKULaoxjf08mFH6WMT9ylpl8KxT8U9gCERfK+I0DJYrYoX7DFmUJM8aTfq3gBFBjsSTQ2XHCqihZUGF8sk1ZG64BLW+QCvd4SmBw+UE65e/lprvqGf9cB+a6cboysOmPk/606e+hC/7Pv/3nSCiNa2yO6G4L48+xHDL4Zvwx/Ohs9DdG3y/iOLqDdQ2LTQ4n0Pzx5usKAC1s+ik1tYdzP+8kwC2N3lTdFNg02qhdp3oZvLFpXGdPrbl/zS/OPPfsJ3d2dS2iw6YDKlIWYiCFZUoLZgozEDxeRUoBT0e5jXa0hIHDjgmd6x8MrfPxyOBa4fw+4mofNv9t6uoKXX/7qqBtH7bxzwyJDgK659OfCUf19Yf9OzpCi3qGdQ79WKfBygoSTWE0Y1WVAwNLpxIY1Pg8OuICi3fb2DZL16/1EXjrAm9iOV68QFSCwcGNZOo2FoKFQVPMEMwkWr4xLeaT8oUD/2ZUxdX6aeTruVT7rNLgG5fOoQGP8gloZSKR3KwQCReYLsHiC5OiiBUDGNOMr9JtMmKlTUkipMqgGQ0TCcXs36CWF+WLZTEyJZNWuN+HBAaX64jfP/mbeLLpFO/6V/uPCuTh6XQhe6vY9Dc0OLT1Yxe9/80/u+XGNeN6/W+ITX984c++9Geb/jD8fsOWG36MP53Q/dghBchcPViWPDeD83kCQIu6ZnA/b+WoUSYgHtfyf5oEjOlxQJwEhI6OttZNax/p7du+/dcnn37aU1taWzvouOrgxts7Or6HnXVt3OHuN2glYKSjOfQfdmzoWveAvhsw4EmFv5skII0TBrXG0/v0p4e2U08NpcFBrQiMxk/+3vdAGL78y+EY7fzvFp53DIqCscmNz6TiyfiblrFNfArpxjWuGsjIKWo2F4NW7ZYYZSVAJLDNHeBvcXiRF4RKBMbSv8J29y9AtI1wiMv4IFWNLgSWF/TKB3oc2Qtu3AUEDHuDx9gETOBEIJjVXHHKANR+jJeHjY/RxPRqnYVq9InExoNUNe/7x686xnyMrxcoCsGKJbLoEr1HC//3K4FBrVKufekrdLw55/tPHPQTV4bU5qkDeNxLVxuvgZsOFe3I5Z/7wju+99Wv/7Kpq6N9e1+Jx/yj2vWnV7WrO/7zZf98IpAbfsLuvNe77/B548/3CQAN7frDfW984qZu6uD4JKBBp1DLPuvNgOHx8c4FHe2r7r7nkc7u7nXHnHD8M9Rp7fPB8mt5VwdDnSTP33xPR0GOtmslYDmTgPuLScAkKT2+ERqd/ZxbtALQ/JrX6NXMtvjlP1ZsZPDv+dxlYcW2beHAzk42h1Y70LSlsB4QjaT1hvgTqZUWe0g0vDYxAF9XNIxu7M2U2sTBjDs4Zqwn6C2HNCmw5/As5bM3wQoXmdpjBmVI3zIjTKoZVCYNvpwOjH9Jw14TgAEzFsvBuMUZiePBS6WFHBWLby7WifrFwVQNWJ7VkpF//Fee8KymiIuHLRjZFr97lASmMv4Ukn4W+xo9YLKbyvg7ltLH9Vi14cbrrvvgJy76wJWhq7VrS+/AkNbn9FSuavxr7/yJkxn3avj5pag5L4z7Dp9XfjEBQLtMuOnCnua+HgWg5vTVQB1u0aRNgYNxU2D3nT/92b3LjlxeOnT58rPFmg6mGz0pxzQQJrKLgyOPTxe2lQB9k6B/2XHFSsB0gvod07jzLMv4bznrrNB13nmhrNMZ9UjHjH/PukdC/6WXhWNl/Beo3bFz1Q7xO+YLOYYy5xfDmQFMeeQ4RqduZsv2JPidvfzY59QFHaYM/BFC1HzgKAQd/TMFLQ4NSDxOYKaAizMGw48rDUoz2phO+eHPmQV4uORVfQ9MrhVYQBzbSIufWSCBScafV/284XdS9umMP2ls+uO5/x2/+MUX3vn//8ulMv6dyfjzuXYdxhFf95OVr73zZwqK8cfnonP6paCF8ee9KyYAsQvkWqc2TDxpP0Mmbld8FKCwNv5rEqCuP9YwJMuhlYDOG6++5s4TTjml88CDDzpJxgNUuyfyiYBxqvlBWe/U6RZrTHsC+pcdW+wJ2Kmwdh2Bhubuf9uwXvd79atDWLAgVCplPf/Xtj4Z/JVfujwsX78uHKy9AXz1bwYttuuF2EWKWIasJB50n1ISTv3LwRlo6hwd2Wua9dFqklG78Y4mPPblyRhTZ1KkzFYJDOqzviz7V/bu0kmmrIfRzWK778zA16uz06AzOeb3/pX3ff//+99/934d82s7/tnvZ8ZfH/pVLuz4901/+SpAPcMPrNbler02bV7EiwnARDO7tnKfFIw2ncRhuU84PQpQuk4K1NOAuBJQGg2tnS2t133vqlvPPPfc/Zfut/RoOrQ2BVYnAaI154NlqrjDJ/lpT8CA9gR0rl9VbAycJJzfMaImqmi+tlnHMS980Yt08A93//G9//4tW8LWT30qHNfeHvbSowC9d1ztGL9jrgV5IYFZJwF2+6996d+E8t7deko08cy/VqfVVsyNfC3c42781z788M9e9fK/fteIDlsfGh7XhzcrmpbrDaxhPtI2mht/brD8yo1/fvfv7N3ou+/weembQZqXNd+x0t4h3AfDZ43AvGN5R8O3WSezUG1E0elA8fUTZqk6I2BkuGm86fWvfNV7H16z5iecW82SFkxxPgjwPZzDDWmKH6PRekNJm23WvOjlekXwoCkwC/CuSMAaWXf/fZoAND9PR5eW1aDaCDiqZkOprb7yynCYGO6lPQEMHJ8N7koeBW4hgbkgAd7zX/uSv5Lx7wp2MEq2MlSr07y+U8FJ9zSMP8v+j27ceO9b/uGN79SLfcMaguOjI6X4hVYz/pWdGX/0bG78Xae770Wa934xAajfBbyj4OcdKZ8EYPy9o1mHZDeqNqbYl6fKI6WKXlLVN+RGxt/6+n9894b16+9iEqCOXp0EeNY+Y2YQ4HwweNzxdvA5J2CJzgl44Z+H/sMP3SG5AOyiBHT3P6wJwPajjgrdJ59i7/3TJCz9D23vCeXrrw8HyPi3ceefKbxdzKVALyQwqyXACX9rdTZJacmCSXf+01VqOl3mabpBsnf9e7b1rPnP//POtz308Kre5uZ2fYW1hE7VIf/c+duOf4sLhi7N9bDrZxRpfik66TFuVLRA57krHgHs2AHyGzsPu+/YxGth9EZOC2wY0+uBss06l3IktLd1Nff291RW3nn3rWc/5Q/O6u7uXsIsVwak7uSr1rDUxr0AVV9sRjtbw8DBh4f2TcW3A6pyeQyBMVn7Xi0yjr5Gz/4X7x1KpbIO/mH5vyGs/PZ3w4H33BMO06t/7eLN8n/hCgnMNwlwtv+6F7w0nfA3sew/lRzcuO8sXSqRr/s1DvQPbPzQ+y58800/uXF1U1NbS395QO/6cw4X32Wr6FDu6oY/W30VX4w+EwG/csNfz9DXg01VvDkPLyYA9ZvYtbv7dBoPQ5GHPW4weiEfDNIkgDfGGtVlx9pbOlo3blrfv/7hR35x2hlnntvR2bEXs10Z9yqfLFj37jJPJ8NJTpMAOzb4oGX6eFDxFcFJsplhxHb+a61x8wknhAV/8tIwpPf+R9NnZysDQ+GRiy8Ox7e0hMW6mlgBmCHfAq2QwFyRAF/1W3++9sXsqw/76A4nd27o0VMeztNrwzkOupDz/culUs8nPvzRt1x95Xd/29rW1d431OfGX4/+q8bf7/hRtR6ud+cPzJ0bffcdPu/9ya0478UxSQCu492flKgI8HxiUMXLJgGcJ9NQGR0eb2vpaHto9QNbNm3cdMepZ5zOJGABs14NmCpdbQbEa5Nr41UaJgFd+nbAgYeGlv7tWg3YVE0qAtNLgEbk7r9HE4Cx1742jC9cGMqc+582/933ve+F/X/967DMPvlb3P1PL80idS5KoPfEE8L6Zz8vlJfuaPypL3ppSt00jUAw/unTvn2f+tjH3vatb3z99pa2rs7egd6SFKMd9FPH+GP42f3vd/35BMDDnqsbffcdXviSQDEBmLob5IY5D0NB3I1/nkbY4tkkIK4EjA6PaRLQseqBezf0bO258+TTTju3rb2tmwGggZPzmHIgORo+M2iPUyBzthLQHgYOWRZ0RnHofOQRTyn8aSTA3b92b4TNp5wSFrzghWGwNKBXASVfvf8+oo2Aaz760XCcZnJLWluLu/9p5FgkzU0JbDnn3LDxvD8KlSX6ql+dT/rmuii/s59KGo7jxn94eHjg0ksuefvXLr/8Fhn/rmT89cxfO/512p+W/Xnmj8HH8Pvlhh5VS9jm8cmXZ64w+i6JKfxiAjCFYBI4N8z1wt7BPA3fwzY9TY8DWAlo1ErAmG782++95+4NPb3bf3XKqaf8QVt7e1e9SYAXKzfyeZj02rjRaHIw2tYS+o48Mox2LQjdDz2gdxW9mM618F0CpjV47187/5ve+Eadtthmu/9HNSFo1GcfV15xRVh6553h8OLu30VW+PNEAmOtTWH9c18QHn3aU7XPqEMKZ8dtS27M64kknxh4uuNL59n5/nrLZujyL3zhHV+89NKbWlo7u7Vfqiy9pvP9ebOKz29VDb/f7ee+TwIYxvlFdrnSy8NelMKXBIoJwM67QdWgC3UmYTiCZ6PFVwJGx5r03YDQWBouMwnouPc3d63b3tf365NPPfUP9dpLx3SPA2oNfR7Pw2RsjhUC3b0OHHxgGDxoeehce19oHmISXbhaCTAzG5Kx7zn//NBxzjlhsH/APvrT2KRHKvrU70O6+z++uPuvFVsRn+MS4Cuka//0/wk9p5wgKyEzkRl/N+J1dU+SSy2Ox0nmhoczUeSVv/GVr7zr0x//+A1m/Ad6h8TT7/x9w5/f8aNKCeNj+PEx7H737xMAgSa5wvhPEsfkSDEBmCyPqWJu+N0HLw97vBZmcPVUvR0wpu8G2CSgoVQpjXd2LuxYefddDw8NDf3mxJNOekprW1s7A0MDoB6PSXf7tSi1cTK14olVefFCfT/guNCxcXVxYFAUTPWXpX/e89+0aFHo0t1/mTVH3gLQakCjNjmtvOqqsPSOO4q7/6rEisB8kMDgYfqoz5+9Qo8S97fNfrwKm+uYPDyVPMBxvNz4a2zZnb9U3fC3vv7193z8Ix/5YbrzLwnf7/ynM/4Yfp8EuNF334vjRt99hxd+jQSKCUCNQKaJumF2fxrUSUmGT49NkwANgAZ9PKg82qrHAffcdefawcHBu086+eQn7+pKQJ6LD7YcZmHN3Ie7WvUlwaNDe8+joW3Lth1Q5iMAzcCtQ58mAKVXvSo0HXxwGNLdP1+g5dn/mOCrP/KRcLwmCfsUz/7nYxeZl3XuO2ZFeORFL7PX/Mb1CEybjUwO6JfckO9MODmuh2X0Mf56Q2qs8j9f/ep7/vvDH/5+Q2tnV5+W/TVb0IY/e+afL/v7HT/q08M7u/t3o+/+zoo6r9OLCcCuNb8bf/drqXO4h91n2spKgJaY40pARSsBrZ0L21fedefD27dvv+ukU055ss6/7pzucQAZ1hr7PJ6Hq4XTJGCsQ5OA5UeFxuFS6Fy3rpo0XwMs/XPHv/Xss0P3n/5ZGBjQ5351RhNaqIm7/yuuDPvcfns4XN8C0NPP4r3/+dpR5lG9GQvrn/v8UFmko3212Q9dUlef1JEJRt5x3eCD5mGMf7O+lyLdNsSy/yc++tEfYvwHdEaKCBl2tc/8801/fsfvxh/W9Zb+C6OPZHbBFROAXRCWUKvGvCbsXDzdfYdX/bQSwCSgQf/6oFWcBNx3911rt23p09sBJ5/T3tHRzSSAPHxQVRnUBEjPcQjng7GKrknAaFtz2L7iaG3o6ZrXmwN96X+Llv473/ZWO/tfZzfHM/+l+CqlobDqgx8KJ+qd/32K9/6rXagIzE0J6EM7ttlv4zOerk2wrXa6n+uRmdTYjXwtjcNl/PWttOZGdvt/6bOfe8dnPvnxHzVotz/Gnw/7jMU7/3zZHzXJ5Xf9HsfHyLvxx3eXG/887OmFX0cCxQSgjlB2AsqNu4fpcB528rwTkubpfEBonMcBoWYS8Nt77lrXs2nLHSefduo5HR2P7ZwAH3ReCPzqBEGTA7YmDhx8UBg6aJl9SKh5oJSjzvkwjSJ9FLbrOf/Im94UGvfdL/T39ws2avAGbf771ec/Hw554IH47F8yK079m/PdYt5WsLx0sT7o81eh5+Tj4/N+dMQMnOsZ1y3uO6mncyPDIT+VSqXv0ks+/fbLPn/pTc3R+Jdl/Ee0x59X/Vj2x9j7XT+GPg8Tz42+h6vZeUB+rnczcBGsJ4FiAlBPKjuH5aOkNuwdMIc7xyosTQK0Nj+meYBeFqyUQoceB9yz8jcbHn1kwy9PPeOMJ+mwoIUaQFMeG+xM3c8HYR4mfSKuImiQ2+bAZceEtq06Pnhrj7OY8z53/0My/r0veUnofOpTZfz77BCgseGR0NTSFB686eZQ+uIXw0la+i9O/Zvz3WFeV7B/xfLwyEv0MTHf7PcYpDGhVyIxhp8LOMaf431LOuHvko9+7G1f/sqXb2nVq36680/GX1/2DWNu/PMJQH7nj7HnYhKAbs0vRSc5172TgEVkagkUE4CpZbOzFDfm7jt+bdzh7pNuOPRobbPRGNAkQPsC9MWroB2xrQ+sum/Tmvse/NlpZ55xRld392LtVLdJAIPKB5czq+f7oHTfcfL4OI8E9A2B/uVH66jCcuiaB/sC9O5RPPDn6KPDgte9Tmf9l+y8/3G+9qdJ2K+uvCps+NjF4Yy99goHdXSEVuHv+OazS7PwCwnMXglsOevssEHv+JeX7BXYDzMTN5XuAe7Ocbhx4eNnA/39j374ove/+Vvf+dYdOt6XZf/SyIju/MeGR6UEc+PPe8q54Sfshn864++Zu+9FKfwZSGBmLT8DRvMUxY29+y4Gj9MpCXs8Twdmnwa0SYD6OpOA8bHKeItGzkOr1my9+447bjrjnCedsHDhwv0YUMI3ezSTiUBu7HcMq1iUTJvd7NCgFSt0aNDC0PXwgzpBkDE39xx3/ohwm57pt/zrv4YRxfu3b7fXm3W/Em7Rsv/A5ZeHs7UvYHlXV+jE+M9wOXTuSauo0VyVwKg2A2P4N3K4T1e7nvfLBExjOt2gTyWP3PiDg67RIzYz/r09PWvf9+5//+cf/uCHv23taOsY6N9eNuMfuPM3488yP3otN/4+CXDj7wqJUnJ5XMFqyaepAWiFm0oCxQRgKsnMHO7G3X0o87BzAuZwOqzHbRJAr27SvoA4CRgZb2lvbd24/tH+n1x/ww1nPfmcI/ZesuRQJgEaYLJLcePfzganZ4wPTb3BaiNHxo5Dg4Z0aFDbpnWhta8/J50TYc7679erfUOvf31oPvzwsL2nx+76qf91H/hAaLn22nDW4sWTjL831pwQQFGJeS+BwUMOCI+8+M9DzwnHaBMSqn/mPRz9sTOHftFlxn/zps0r3/GWt/3zLT+9ZU1Te1O7Pq5VNf6y+hVZfTf0PglgIuAwwqhEhqf7HhbInKkuhdxP4MLbFQkUE4BdkdbUuPno8DAd08M5pcPdB8c6ce0koKG5sXlosDT8rW987bonnXvufkv32+8oZtcaZBqPEyMyC+b5WDhPy8MkEjdYYlVevCAMHHGsXhUsa4Pg+h14zVYAwi3p7n/rM54Rul74QrvzZ0Vgq+r4g7e/Peynz/yeKeN/aFtb6Ep3/vUabrbWvyh3IYGtZ54Z1j9P37k4YKmt/NVXTZPlVHvD4Kk5vCZsxv+RtWtve+Nr3/CWe+5ZuVXGv1Vf+cP4y9APj2L8xccNfe57GOPvE4B6xt90ZSpLHvbiFf4uSKCYAOyCsHaCWmsz3LDj52l5mA7s6daZ1ePHfSWgoUFT6ka9lt7cPn7lt7/5Ix0b3HXgQQedqEGHw3hXeWXBKYsJzVQuTgR0Ml57i14VPCqMLNTpeI+s1mSAcTm73YjqvVmb+tq1639Y+y1GNBm4+/rrw23vfGc4Qa//napl/wP1aKBDxh85VIU6u6tdlL6QQBjpbg/r/jie5z/cpRMtWPLfiZtOTzip4zBeFEaxsOGv6Z7f/vb7r37FK961qadvqKm1oUnGfzgZf73qXzX8GHi/80fB1Bp/4yc4vl8KFu7xlsDOe8PjnePc5lfPdgCjE0/lSAOnipcmATorm08JjetX7ws2tzdfecV3f3LE8uXlQ5ctOyOdpW1LAc54JpMAcHM8D9tAtmKqGDKEgwfubxsEWwZ6QvvmrZ7FrPMRbr8Mfu9f/VVo1dL/1o0bw7Va8t/+ta+Fs/WBn+O14W9pc3NoK+78Z13bFgWeXgLbjzs6PPLCl4XeY4+MS/7a+Dudc6M+HQ6v0LpDZyiODhrXq35NP//Zz774969+9UVjnHk6VmkY0tt9Y2z4i3f+bujxMf55vPauv96dP9nmejQPk1a4xyCBYgLwGIQ2DQlGPHdu1HO4w3I878ykGa6vBGgk6bx6zQLGKo36fkDLNVd9/xfdCxY8dORRK87UjLuNRwIagNWRzaCcqQOXi4HPxb2v0QNTeHhBZ+g9+oQw2r0grQYwTmeX49n/Zs73//M/DytvvDHc+J73hAPXrLEl/yO02W+RdkC3JOM/u2pWlLaQQH0J8HbPxmefH9af9+wwvLh7yiV/G/NJX0xn/KdKk+6xA36UPnLND37wobe+8V8ubevoahuuDI6VS/qK79iw1NgYd/5u8PE9zATADT8+Rt999CEXMHeuI4nnYU8v/McggZlbi8fAfJ6S5DLNwxhp4lxMvNwHrhcBDNaSwsTtEiDBWpqam8ebO7s0wAYr/c9+3h+f+No3vO7fFu611/68Jgh9bvzzsNKmdTluHoaIqQCua+3GcMD1V4WF9z5o8dnyow0TYZ2W+e/Qjn/O/T9Er/ct07VES/7FXf9sacWinDOVQN/RR4QNz3yevgK6nwavVEwy8FPRT2XcHT9Pz8PceLDkr++YbP3KF77875/55CU3tXa16TW/fl/yRye58c+Nvht+993ou4/C4SqMvzfCbvSLFYDdI1yMuzsP06nzMOm1caeJVlcxjYJxRoLvCxgdrYx3dHd23H33Pevuv2flT0857dRj99IkIK0EwM95Gq9ag27Amh/H8QHucdBscUFKZESrAT3HnaKzAzrjasAseV2QujTr2ksG/zAZ/kN1ccBPYfxrOkERndUSGO1sCRuf9dyw7jnn21n+9qx/Nxh/6QjcmD5c1rRt69a17//PC//lK1/92i9bZPyH+vsr6TU/2+wnveXL/Bj3/HLjj4+uc+NPGxTGHyn8nlwxAdh9gs4NsYd9ElA18Cl7T89L4zBwmQSwOVBPBJoaSiOV0c721vY1ax7pvf4HV1138mmn7csbAoanRwYyek5LOOc5bTjHzcNGpGXyca1VDBx6iO0NaO3bMiu+LEjtWeLv1lL/Aj3rb5evpZLJs6RppVIkFhLYsyXAXf/Df/Ly0HP8sVIS6vE72egnA26P/KjVDuNcMNLd1YRNF/G8/6HVD93ytje96a033/Lzh9u62zp0nHZ5PD7v19H+O2zw84kAKwH5RIB7G3i67+Fq9h5IeFm0CD4eEigmAI+HFKfmkVtfD/vomiqec3Mc/AZGCSsBOiwgVCpj2nXb2DqsswG++43vXH/4kYcPH3Looafqc5tNAglpsuWvieZ5TBueTBf3CAx3d2g14GTtDejSasBDelOAMb3nOoTHoT5cLtA9t7RFyQoJzEwC8Vl/uuvfq9M279rJVnXI3ZC7P3lcx4mApzl5HldYB2k26sDMpsbbf/GLy//2r//Xf2zp2TrU0trc0r99sNIwxmPIMe788+V+wnmciQBqzCcBbvDxPaygOdeTRPJwTC1+HxcJFBOAx0WM0zLJbU4ehqg2Pi0jEjV6tBKgibtCoyMNnG7b1KxB+IPvX3tbS1PTfdoceLo+JNTFoUFCt0OD8oFcO/B3mmFCmETHnkMVYuCQg+NqQP82rQbM3jcFZiqDAq+QwJ4ige3HrAhrX/wXuuvXoT7Vu/766iQf/zMpfy0+jxf1Nb8mvuZ3xfe+d+Fb/uVtn2tpb24VPAwOVip6QGh3+LL0fqfvPjqIsBt895kE+FUY/5k0ym7CKSYAu0mwNWzzkelhfDq/x2tnuR53v4qXRo49EtAkQHPzkdDW3dn+s1tue2D1/ffeetIppxynfQFLGbjwx9WUp+7SXy1OHq9VCtxpsFJoewOOOVHvGy8InevWzIlzA/J6F+FCAnuSBEa0+rbx2c8L65/1nGmf9e8wXlMlUAWuDtzP65fTKYyz9/s51vfDH/zgWz59yWd/3Kbn/aXBwdHhyviwjD93/ewIcqNfz0dlAXej7z66jYu4O9d3xPOwpxf+4yiBYgLwOApzJ6x2MMLCB+adnLDHc5iHa9mzL0Bfr7fjg8crI5XxVu0LeGjV2m3X/eCqa0867bS9ly5dejREmghMOi/AGdVTAJ5Wz6+HP96o9wR0BzKoTwz3LTsqNJUHQsejm+qRF7BCAoUEfgcJ9J54QnjkBS8NvccdFd/r1/Jf7mSs8+ik8K6mYfnFwN7vX71q9U/f9s9vevtNN926Oj3vr6Tn/X64jxt9v+MnztK/3/G774Yf3/jLL4y/hPBEuWIC8PuV/FSTADf8eWlqYQwYp6+OdI0eOzmQfQEjcV9Ai066G/nWN75zwyGHHrT90MMOO1mbdlrZFwA9RjxXBvWMel6I2nBO77T5mwK9Rx8bKkv2DW29m0NL/0AteREvJFBIYBclMHTgfrrrf37Y+PSnhuFFC+IHfHZc1Kty/V3GN0x0w6AvlDcxuxi99eabL/27V776wq09W0qt8Xl/OT3vx/hj2DH0GPw87BMCdA5h/PxCfxGv6rFpwkoq3O6SQDEB2F2SnZqvG/GpMDy9dgIAvg8Y/Gq6RpK/KsjTuLEx7Qto62hrve6H19/es23LL48/4YSTu/VZYfYFSDnIbkftMWHAY5YoDodNVbhaeI4vzpxGEAb3Xxp6VxwXRvZaFNq3rA9NJY7/LlwhgUICuyKBir7N8egznx02/NFzQv+yg3TXr6NB2H+TXG7op4N5Gr7TMG497OmK48bY5d/f1/fo5y677F/fe8GF32rTx3x0bxFKg5VytuSPwXdDn/t+t+++G37i6C2/PFt812u14RynCO8GCUTNvxsYFyynlUCt3D2Oz8Uod58wF5M1v6oHBSWYx5s4OEijSfHmpu5F3S1lvZt7yEEH7fXOCy54w4oVK57DAGd/oBSAaZLcgIvXY5oAiOckOuNpLy6Oh7ae/rDPz28N+956c2iqoCcKV0igkMB0Ehhraw6bznly2HbGOYFJwLhpBRuuk8gYd7mrjedptWHd5E8as9z1M2612a9xzUNrbvnP97z7v26/8861rZ2dnQO9Azzm5xO+vuSfG38P1y751975U1i/6/eCu+/Fq407vPB3kwSKFYDdJNgZsmVo49yPsR1/6w2MWpjFGWE0Km8JVEoj4506MGBgaKjyP1/71vWHLTtk4OBDDjlJJ3jZI4Fk/OXF7GsN+Y7FmBriPCYwxFN8R/Vxob4jV+gOZkVoLvWH9k2bJ1CKUCGBQgKTJNB7wnFh3Qv/NGw9/TSNndb0at/E+JyEnCIzNfw5Xj5eeTyI4Vf6mJb8P/eq//W379u8+dGBBh01PtQ3ZLv8VQJ/xc8Nvt/1548APA2fC53kRt9911vup1pMWgVwWOHvZgkUE4DdLOAZsI+ju/4kgLR8oBB2mNPVptuI02izvQGcF6DJfqN27rZe+4Mf/PLRjRt/fuwxxxy9YOHCfZWgMW+3EcYrVwp5eAZ1qItiPGxyMR6GF3aHnmOOt/0Brb1biv0BdSVWAOerBIb08a2NOsXv0ac/w+76bZgzdtLkvJ5c4tCtlxJhpPs4Juz4Dkvj35b8t/f2PvKZT3/6nRe9733fbu/ubNPNg24g7BU/M/zSJxh8N/Bu/B3mcDf8ufHPDX+uq/KCTwXPcYrwbpCAG5HdwLpguQsSqG0H4rVX/iig9pEAE7nqY4A8nB4JKL25qb27vXW0VKroewLtF1x44StPPvnkl0kZNOpbAnZwkMKTykE0B+UKZSZ1y2kNH4WkRwMtfYNh77t/o0cDN8/qLw3ORAYFTiGB6SRQ2nfvsPXsP9D7/MdrkqzDfPRejzmNPR9vbrhzPvVgpDucsedhp/M4adz1a6Ofgg0NK1euvOJd73jHxx9atWpLa1dXR1ryH5Uy8LP83bC74XeDn08AHMcNvk8CMO5+VYuSAoXhd4k8QX6xAvAECb5Otrnx9TADxMM5yVQDJ4dbmNGoi08KN9hbAp3tLTo5YPx73/72T4VwzxFHHHFCV3f3QoHMoRA8I4ICenTSZKAKnEHAWRonvbo02tYSBg4+MPQedXwYWbQ4tG17NDQPlWfAqUApJDA3JFDeZ1HY9LTzwga9z9+3YnkYa2/Tcr/UMWNuiirmY3EKlLrgGjp9WZRTRFubhoaGtn33m9++6M1v+qfPlkq65W9ubtGSP8/7R2XZ+ZTfVAbf4agXnwQkVeMLkFWjT3X8yss3VTVznCK8myVQVfa7OZ+C/cwkkLdHHuaO3+O+EuCrAO6zAkAYn4ndDisCWg1o1qjTVwXbm/VIoLkyMDC0/Igjlr7l7W9/zdFHH/0c0YzzokCaBHh+AqOXYtR9lIqHDWGaH/Dq4ms1AK4tPQNhyW9+bSsCbVt6puFUJBUSmN0SKO+zOGw968mh54QTQmWv7mjsMfxpPLmxdj+vrcN83Hk8xyE8DdxW+jjS9+E1a27Rcv+Hfn7bbavZ6FceKGshsMRGv3pn+de748fwY/TzO3/iGHZ8XG74c4OfhyNm8fuESKBYAXhCxD5tppMMrzA9Xm/Q1MKI14NZhhqV9rqgPtEdhsuj462t7W29vduGvvPNb97Q1dW1Ztny5cfpGOEFTALgI0XjeRt9TXTSBMCVTi2OEWY/eboVVC8jsFFw4OCDwzZOFNxrL705sFkrAqWMqggWEpjdEsDwc8e/Xqf4bV9xeBjRBr8GGX57GSetsvkYmqqmjB0fP+Dmcaepx0Mwc2z0K5fL26+/5rqPv+61r/mw9gP1NzZqo9/AkHYKVfK7/lqD73f8buxzH2Pvl+sf96vF8oB8G/ZZvAg+gRKYpOCfwHIUWU+WQN4utWHiftWuBjChy1cB6q0EGCxbDWjSgkCz9gYMHX3ssfu96Z/f/Lcrjl7xXIrDc0IpGc8LUNW5IgKQh6sIMwxMomVFQOqhRa8OLvnt3WHJL2/VWwPFNwZmKMoCbQ+UQGnpEnudr+d43fEv6rYSjmfv8nuRZaE9OKXvOIwZD9cia3U/H4+23J8O9eGu/6cf+sAHLr7l5psfTHf9o+mu347zFS837G7wfXnfJwSejo/Rd5/CE8f3iuRhgc15mscL/wmWQG5cnuCiFNnXSCBvm9qwG2V8nwQQxrjXu+o9FrCJgBIsrb29W3MCzhAcGXnN61731PNf8ILX6XsCB7JBMCkb+7BQTRmrdyGukCYZ9FrkmvhUuGwURFO09vaHxfesDEvuuE3fGdhQQ11ECwnsuRIYOviAsO3Us/XmyzFheK8uZslaUmOoTjgfMxOQySHSfYxMh1svTTAbtzrUp3FgYGDbtddc+8kL/u09V2gVQHqiublU6rf39mXhc+Puhj+H5WE3+m74p7vzrzX2tfHJlS1iT4gEMBqF27MlkLeRh/H9ovQ+CXB/ukmAGX7R+B6Bxmw1oLmpral5rFwePHTZsn3f/Na3vfLY4459PncQ+hIYg72B54dkmDtXUg4j7kqpNs1xdubHTNAZ4zo/YDgsXPVQWHz37WGvlStDYwX9U7hCAnuWBMZam8P2Y4/R8/3TwsCyZWGks0W9Nw1TW0ibKK+PjwmIevoMVgEcfypcwXHs8G+SH3SO/w0Xve+9H7/z9tvXNLW3d+gx/5ju+jH+ehA4aZNfbujziQDw/GJQ+kQgDtDizt+bZdb5OyjzWVeD+VHgvJ3yMAbf4278iROuNwnIjb+n++pAU73VgL/+m7856yUvfenfLdlnn2N4b5hLRp08PF8FFckUnIdRQB42pMf0o+eeqFGtCow1t4au9Y+Gxb++I+x95y/slMHHxLIgKiTwOEqgsrg7bD31zNArwz90wFKZSx19zXjQHT9joJ5zOOPDw/Xw6sHq4QPTZaf5MWHv7e19+IrvfvcTH/3wh3/MXf94aGoplwY4k5tn/bmxnyrMJCA3/H63774bf+J5JacK16tKAXuCJTBJiT/BZSmyn14CtW3lcfz88omA+27oc79q9EXrYfeZCNibAk3NWg0YKQ/xbvC7/vVdLz39zNNfrk2CC1kNQOFIeZHHDkYepfa7G/4d+UrDSdVI3zQ2h1btE1j827vi44H1xdcHaYfC/X4lMHTgUhn+s0Lv8SfF5/t8fduX+ZkAYJSnKVI9Qz4Nuk0UnCafOGD4oWOTX6VSKd11513/c8F7L/jS+jVrtmqDTweP8XjWn+74c6PuRr7WBwee+KQRzi+q5ZeCk8LEcdNVPWIUv0+4BNyIPOEFKQowIwnUtpfH8f2CEcYe4wwMPzf+nobBrxr9mnC+GtAM1mi5PHTm2Wcf/vo3/L9/d9iyw56KAkKxyLd8o4fOGw96TCB2EwY8V1qW8Dv+kGHUR/rqkT0eWBUW/+ZOezzQVGZ1s3CFBHaPBHhjZfvRx+hu/9TQv1y7+Ts0ODD0bvinydbHwTQolgSejycAOV0ejknj4zyWw61ft+6Xl1166Sd0xsddWu5vleluqvOsH0OeG3w38A7LJwiEMeTuQ+uG332BzOUGPw97euHvgRKIunQPLFhRpGklkLdbbTha32j4fRLgRj+fCPjEoHYS4HHS+f6Y0bS1d7Xo/LBhGf3xV7/2tX/4x8997iv1WOAIHgn42QEoodpS14KI5wrOFVotXi2f2njEl56RsjQFrM8gdW7cHBbdc7ceEdweOjcU3xyolVkRf+wSGNp/39Bz0ml6xn9iGNp/H5nEYbOEcRGMh1STbV7ex8nV+/lMS1CLn/NT2JzGgO3J6e/v33DdNddd+t4L/v1q8R9ram5rHR3hvX65aLxrjTrGfiqD77j5Hb9PACg+FfXL4/juJgvCoYW/R0pgB4W9R5ayKFQ9CdS2HXGH+SSAOGEuD2PgieeTATf6DquNp8cCzXoo0NbEY4GOhQu73/rmt774jLPOeJnOEOBTwyglVgTgMcnIR2MNdLIDLhoDToUzmWLHWJXOJgLSWVp9aB6shAUPPaQVgbvDXvettKOHd6QsIIUEppfAiI7m7V1xTOjT+RT9y5fpbl/bZdXPtAlGg0nP92uMfj1u3r+nS/M+XA+3FqYJt6268VxfJ/n13/3ru7/5X+//r6+veeCBTSz3y66P61S/4WT487t9N+y54fcweJ6Onxt/BihxN/q5gZ8qLPTCzQYJuMGYDWUtyrijBPL2qw0T9yufAPiEwI19PT+fAHjYJg2KaHWRVwZ1auBIqbTiuOMO+sd/+MeXHX3M0c9vk9M9Bzqq7v4AV3R5NerB8vRdCZsA+EmrAtrJYBsFu1c/qInAb8PCB+4LzQPFkcO7ItP5hjvS3R76jlgRtuuY6oFly0NZn+Nt0H55LcprNDEEJjs30PRjD+cYDqvt5w7PcT1cL00wjHCDNvg1cD7H6gdXX/PRj330stt++tNVek9G7+40NWmTH4Yfo54bdI+7scd3mBv7WuOPYQeWG30PC7zDzCefCJBeuFkiAdOZs6SsRTHrS6C2DfM4Ydda+B4nzIXxd792IuCGHx8c9w1PkWY9Fmge1bHh2g1Qec7zn3/CX/3lX77yoIMPPhslpYmAdJY9n4TWnKL2bLNWGXp6re940OE8XotXG3c86BqlN01zNbVqMrA9LFj1QFh0793mN9um6FrqIj7fJDDS1Rb6Dz9Cz/ZPCH2Hr7Cv8TVwNI76zzjH9Cbn/TePe3gqP++7Ht4Zbp4uGttwywY/6Ddu2HDn/3zzm5d96bLLbpPhb5Dhb9Ny/7C2+OVGPTfohHPjz+TA4/lEgTBDxQ0/cZz7buTdj6k7TgYcXvizQAK5sZgFxS2KOI0EatvS4/i1F0bZr9pJgBv7qSYEVXxNAvS2gD0WaC6PlEvEX/GqV539vOc+9y+X7rffSRhi7lZSmW0i4MY5waY06jmeK84c5vQ7850GHjYZ4E6NycA2TQYevC/sdf9vwsIHHyxWBnYmyDmWjtHvO0JGf8Xxof/Io0N5ke70eX1Pq1f+UR6q7H1vZ9UHz/taTgdsZzw8PeehsI0bbfCzcbNt27aVV1999Zc+9KEP3Sj+5bbmtg6NrjE+4iNrPp3xrzcB8AkCeXARx8e4u69gNU4Ylxv/PBxTi99ZJwE3ErOu4EWB60ogb8/asE8CICSMIcevnQj4nX69iQBp+cQAHNsf0N7erg8NNTVqIjAkWNs//MM/PPm88877iyVLlhynuL8xQNAUGoFcYU4VduWYp0O7q26yIpayTop+XJsHmQwsXHV/WPDASlsZaN0+uKvsC/xZIAE+t9t3+JGh70g911+uO/29Mfrc6cvmsbyflvi9z+2sSm6wZ4qf88tpPJz6KAaYN2kUbWjo6elZc9ONN375fRdeeI3O8R+Q4e+U4ffn/OBOZ/zztDzsBh8fQ+6+TwAEMrgbefeB42rjEVr8zjoJ5EZi1hW+KHBdCdS2aR53gw+hhzHIeTg38ITNyMv3iYFPAoA7zPAU0WMBvSelOQITAS0OdPzzP/3TM//gKU95+eLFiw9D0fmKgHQb9Ds4waeEQe/peXgHghkAnA/KX59HlkZjZUCTgb4BHTv8SOh+6AFdD+ptgo3FyYMzkOeeiDLW2hQGD9hPz/LiYwlwAAAgF0lEQVSPDAOHHhEGDzooVBbqWN6q0Ve3relvO+tXpM/EOR79LA9DS5zL05JvS/08PsP19fVt+sXPf/7VCy+66MrNmzdva9cGP53t16Bjff2OPzfihOtdGP1aPCYNwKiI+4Rt4pHgHlZ0B2M/MwFAWbg9XgI7ats9vshFAWcogdq29Th+vQsjDtwNvvvAzcAn3ycADvM4+EaTJgLaHxDGR8LI0D777LP49X//93909jnnvGTRokWHovzYLCh8lCA0Vad4NUzA4/iuSB3B0zz+WH1yRKuZUOLKq579Ntu73R36PHH36gf0uODesGD1qtC6feCxZlPQ/R4kgIHn/fz+I44ywz+0ZJEaV5M8Dr6V00vz+p3cxyyBtGTcvV953NNn6ud09Xjl6QrbOHDDr1f6Nv/qjju+/ZGLL/7eqlWrNjSNN3W0tTVxnr8bfvDd2OdhYPUMPnDHc7/W+LtRBzd3DgeWh3OcIjyLJVB/JMziChVFnySB2vbN47kmBM6VTwLMmCdYvTCGH7j7PiHAB9agnyZWBDQRGNNmwaEl+y/Z+3Wvfe0z0kRguXCYCKBYOF540seGUJKuPMHD7SwesX63X8vDVJ0VSyWTztSbjUwI2rb32YrA/23v3H/suqo7fj3vGT8mHr8dP2JIAoQoKYkJiVMoNFUoryJIRQVFQsoPUX+hf0v5oQj1B9pGiqqWlyJaCoFUBIgK1AmJZYc4iYlj7LFjO36/7Ym7Pvue75012/vce2fG71lbc2a91z5nnXP3d5/HPXf+rjcb88f/2BjZs8e+chg/Wzy7is8u+sLIkJ3Zr7FlrZ3lb2icWbWqcYazfAP85m0ed5hXk8vSscVaeGDutFalHHW6Um7zBYx5e1/67Bnw79/y8stP/8M3vvGjXTt27bOH+4bs3ppNotM7/ErALjDXZAAfdKLSyw/KwoHteRNbOnha+gQ02aLsTMHeyBXg4It281fA7+ecTwNQVQJ4RszSArB7kJcswCdGuim8TQS4NdDLRIDxbNHYotG///rXP/HgQw89NjY29l5Al4kAg6Lx5GiBvQZV0XwSgK8aNvxo7fzkX6KKU3+JVo7pVoGN2zwZzoWLwcNHG0PvHGoM79vTGDq4vzH09nhj+OChRryNsFTZ2et4C9+ZJWONMytXN84uXdE4tXKN0TH7qt6oQZZhWnoVrx3CdpafjgL7xwGdo5lfEx0vXidex4JkaMlffrktl6t4wHdeBfyNY8eO7bUf6uGM/ydv7XjrbdMPVMA/YY/38VpLVt+fxYsvTQpy0JevgB+ZfKXF1Kn5cnle9qA3UQX4fESbGxXI97WX4fNFkwD0UwA9kwX6nub+2OwcOl0R4NaAJgKL/u6JJz666eGHP79s+fK7eeDZTwT8wCre8lzSZIMy6Eq+xHGGipSPiUV1BmmdpBHUvpdlrI2tfFWMSYF94YGfMB4+8La9lXC8MWB02OjQoaMxKZhm7RPYj93SOLPCwH7ZisZpo6eWr2ycX7TAntWwF/E4wOc1vDqYu0UsHScCaR0z0mt1ZZfcDS3FmG7C+ujhUj/vybCH+3a8+MILP/zHb37zf8Z3jR804Lfv8jdsknwB4Pdn8YA3i8DdU/TeVzbFeEppkKF+MTG1vHS5LL+gN1EF9Lm5iTYpNqVDBfJ9LhnqeUBcOgBcPJf3BfCeok9Ab7TkIxt5euenWwMXLtpQd9q8h5944okHHn300c8vX758o/2GeZ89LAiYM2AB6PSTmgbX0oAtHbTkRwL5NLNN/7/iyZ/6ISeTAxo6W2XeFMeEIAHTxEV7bsAmBXaFYHj/XpsgHGkMHD7YGHznoPHHG71z/KeNJwb7GudGFzTOji2z798vbZwfBfRXNU4vW24P7C1MYG/vmra6GralyRaHVrN5hNJ+admq/SNZVMcFcilGeu+n2Ha0xr/1o1kG/DwAe/HAgQMvPffcc09/61vf+vWpY6eO2bu2h+z9WT0nz6ZX9wLgbJYH8hIvHZTPiGQBPjJ5JENVLqgWY1OTrU6WPuhNVgEG42hzrwL5fvcyfGkBhEsLwC5w98Dv9TlPHvroHZ0/v9++3mRn/jYRaDT6H/ubxz74uc985lPrN2z4uH21cAEDK1cFzJZuDyTQrQDX82afMqD7wV1+0pFTPHGXq6kf8qX8rCegBWVSwpkqVwu4y3FhIj1TMLjfrhIc2m+TBLtKcPJkY+D44UY/kwS7knCzTA4m7Gl8QB5wP7docWNixPhFo43TS5Y3ztjZ/fnRhfZTz3ZI2CV8q5Lduzf8sppNeWBPV1+yneWB19c/c2sr+uNBvPK2O07kkyc3PYCb3tMP8Nt39c+Oj4//7zPPPPOf3/6nb79otrMV8M8z4Of3NQTQJSCXDoqfP+NHlh1eMp+X9JmpqGRRU6eG7Fsue1vwN2EF/MB/E25ebFKHCuT738vwADUNXnILvCsd4I4uB/lcn8vEKG5edUWAiQC/Wf7uhx/68PqvfuUrn3zfBz7w54sWLVrDQMxVAd4zXA3KxKamQVoDsmSMJb7k18x05f+3CpwmBozXBnlMCowaYtgZb1+j5/yE/dzxsXSVYPjQgUbfcZscnDljtxjswbYL5xq95880eux1C71nTjf6T9kFlBNnr/pkAVC/sGCwcX5kuDFhr6B/d9Bo/1DjYt+AHQl9jQtDQ40LC28xkF/aOGvL+VtGGxN9dpuEp/GrSVG6jA/PBZ4E8KqOUfvz+0n8ld9Dl/brj6E262GmizzMml7Xi5892HdgxxtvPPud7373Zz/78c9es3W/aMDPG7MbR+2pfpMF6gJuqHgP7OLlL1n+ougF8lD0NKgHd89jz2V00eZABfSJmwObGptYU4H8GPAyvGQBLhRdE7WmXhXwII8fshYvi/cUfh4vFLIAe6+5/c5vo+/8LUtvWfz4449v3LRp06ft9sB93B7gHiqXU82/9dCg8bWNAdwP4rWOZujWr12O6dpSn1wlqFoTGJtyup2QAJLy2EhtPJMEHnTjqYqes+fslsLh5kOIhw7ZZOBYo++sTRZsJsXZNEDUeXzXLm72OSnxozdVn4ZcE4NDjfMLFjbOjC1pnLGH8M4tXmzAb4APqNtZew+X6dPZO2tqmGN9pyfxEVnfCuQntxTD1W3NepT3Mzb2hXy6WTPzBXQB/fQtFq5W2ff2X35x8+af/MuTT/6GB/vspJ2HYAfMccKuBuAvwBZFJ72nud7bFCtKWeE9NTHJvuSelx0abQ5WQJ/1ObjpsclZBfJjwcvwWggD1Gmgkhbs8Nik6wb8vb/ieuyhqN75g4N99v1nG/T6+AWfgU//1afv/NxnP/vIe2+//ZEFCxYsscGanyLmoSoGPgZv4i9pGtShap6XTrSdTT5XirKG+Qjt+wLUaQmsKnAHppM27SGVQJ7URToLnCxBytP6V+wUZWVIrH2fnoDUr9EkWD+tupqixeM48yYQzvdd2u5CH17vY7UG0kmGaj+XbN6vwPt7+xZ+cd6pU6eO7tq585c/ffbZnz71r09ttRi7pXVhyH4ps/esHaQO+AXiHLPwVBYqfc7LL6eKS3vG4rGL99TUrYZezfPSBZ1jFagbDuZYGWJzqwrkx4OX4SWLFwVh4HMwR5ZeNqjniWXJ9cSliQCTAbs3wA8M2USgb2Ld+nUr//arX77/Q/ff/wmuCnBNlUGcqwLWuCqQYi2+1XIgkUEgIDmnney5/7WW2fC6phE/+eQgCqija4E7XqargiA+TjJ1L9WonZ71q9sf2GjEd9OUp+Tbzlby76CzVUrHFq/nt9TzGufOnZuws/0tW7ds+flTT/3br1995dU9Bvocs4O9dkjasy12yF5yf58Ny8FccrtJAHGyy59V9sDvZXi1vJi5LL+gc6wC6TM9x7Y5NrdzBfLjwsvwWsgErwmAeMke1LF5uQT6fmLgc+HbY7cH7G2oF/sYWE22N/D0DX7s4x+77bG//uKf2VWBj46Ojr7HBl97KL81GWCgY7CmNc+aK+DzAINNzfO5jphSnlKMYq8V1Xqqf21h3chfsufbpe0np6+f+ihRrUeJTidPKffl1Gl7/DabjnIxoUyIzwN9BugNe03vnj+88cZzP/7xM798+gdP2739C+n3L2we2m/f9bMfyU6X+VMs8W4RgLejsgnkBfDSKy9UvLGpHyg6Nc+jy2X5BZ2jFdDnfo5ufmx2hwrkx4eX4SUD0DRkgb+oB3Wvkx6dnxjAk8fr8FFsuipgg23vxNmzXBXgZSnne/sGF37t8a/d86ebNn301rVrH7BLrysYsLk7YAtjOQNpGsgFRia3mh/4UeZyy7FgAyfa+fvY4K+/CjRxvrVeAtV0pm//0m0mu8R/aN/4+Iu/3bz5F0/+85O/O3LY3vhkM1Br/Xa237BJKS/t82DvecCbvFABeR0lTn7EKE7rhR2eJjs632SXLpelDzrHK6ABfI6XITa/TQVKx0iuEziTRjw+nveAj97L4kVlRyaP12PTwhvVbPwd7DlrX6GzxrMCF5evWL30S1/+0j0PbNy4aeXq1R+2ycASmwzoeQFNBgyz/c3xSdAXIOSgnst0KJ1i0NHQSyefpiX+X+0KsB+0D3KedTEdT+8Doq0zfbud1Dh9+vSRt/ft+91LL7/8q+/9x/e27Hhjuz3Ql860B/uGhjgu+TlewBqAJb60COhlE7jnMjnkq5zSQbUQR5MMVfN8O51sQed4BfKBfI6XIza/TQXyY6Uko9NCKvgWWFdyCdRzgJcsqgmBckGVW/nSLQL0dg2WgZDJwLz169+7zN4tcO+f3HvvwytWrrzXJgPLuDIAEDDIG9WAmr63jV5NoCG5jnbyk72UG53s5M/luj5Df2kFfH0vtU7VmC/73V410MPP7/Hzu+l4sDP9I/v379+ydevW57//3e+/9OorW/eZH7ecAH2OO77Xj5ziKwrv5RLIc2CV9Ir1VL5Q9DRRdCw00ZwvyeiiRQWmVIBBNFpUYDoVyI8ZL4v3VGCNLucF8NjE49MNj5/yyT/1YVcFuE2Q7DYZYNDl3QI9K1etWfqFL37hA/dtvO++1atX32fvF7jN/NK6VpMBw4XJWwUW02rdgLT3aQV2YPIYD2K5rUOqOWNWjaiP+C423lzTvmWiR0sh3NO37+vv2bdv30tbt2zd/IPv/2CrnenvN2ML9JkwZpf4BcyAMjzHmAAcXvYS4Of+ivO58FEOYxMvHdS3TrL3DT4qMKUCafCbogkhKtBdBfJjx8vwkkUF1sieB7yly/kE4pU/Nm/Hhux9lEc6bhH0pOcF7OuCNhlgkE1XBgYGRxbaZOD2hx5+6P5169Z9yH6m+A7zGwYYAJXq2QENylwattDmNuXA7EEotxHkW8me68gnnfjp9EF/ivN93wi8307WlzpIB89+8bXxPtJX22lhTcA3fdp/7Fviz1vjXfx79uz53ebfbn7hO//+ndeOH7eXKTRBPJ3p14A+YOsB3oM3fD4R8HbFicommdzooHWLmVoNH99y2duCjwoUK5BGtaIllFGB7ipQOoa8Dl4LGQFnyaICbE+x5QCPvU6Hv+zikcWnyYBNCOyLBBd7OKOz1+nwACED8PADH9m0+pFHH3n/nXfeee+KFSvutvcMrGXyAKgAQH5CAKBUeVtgZPIU0CWGloFS0umfcnfyk7+neaz6k0+7fuXTLVXuy5VT+brtP/cjPtt+U6V6A6Bmaj7boVs9dpZ/0d4nMf7OO++8sn379pef/8Xzr/z858/usaf2Tph/j53q96dvmNhzIu5Mn4QCZFGBtSh68VBkrxMvfU7pw/cj3tRTJgHIavjkraTLfUKOClxSAQbHaFGB2VagdBx5nXio+BaImk48NOel81STAHKJ93bP4yNZ/SPz1kHDiF4mA/ajRBcuVBOC3pGRkYV/+anPbtj4kY13b9iw4e7FixffzrcKdLuAyQCAY0v6egG5aFBbUkPEp6lu6iqQmqKr3JMvvPcvyfLvRJVH6yBKnOclQxUD75vWG13JR3Zs4n18iZef8nkZ3us9X+UC8Myt+epds085w+d2jt2nf+fQoUNv7N69e9sL//fClh/91w93HDl8+JjFnTfAH2AiyMOj5su+1xP8Ka/5CKiRBfDoJOe8/OXrqXyh0kun/qDoaF7X1DT/o89bSZf7hBwVqK1Aa8Cq9QhDVKD7CpSOJ68TD9VCdvgEyk7vQRseoJeffD34yy4dvtLluZQHmnjO9qtbBYAHAzUTgnQfeMnSpYseffRTt93zoXvusNsFdzEhsCsEa/wVAkCLxSYHGtwNl+onBfg2zdZT1aQTlb6OKn46/vjOtPl+lId1EE/eXM778uvcpc3Sp5VmxS083cJP/ZCLchuAv2sP7+0D8O1Hd17ZtmXb6888899v7tm9+6jF8MQe+19n+f5+PjlZtM+gnXiODXwE5pLJ43XKK51kTy1kCuBjY/Etl7GVdD4m+KhAVxVg8IsWFbjcFag7rqQXpV8GZxo6vwjk0XkA96COTYAvnxKVX54r7wN7WqqrA73V1QEGcU0IBuwKwYJH/uKTa21CsGH9+vV3LFmyZIO9hGidTSDGuOwMMIFZbgHDAA2anieAB9CglzRilQej/KS/JGAWCp/bp6nTe5/p8MpHDNvhm8lSpDqZL3VKxeHePSwuBvYA+FF7cO+PBvhv7ty58/VXt736pgH+W3aGf9xy8pYojon+alI3r+Ysn/5Y6E+Llz2PXbIAXzGisiO3A338WGjivdy0TPpIlr+Xg48KzKoC5dFnVikjOCrQqkDd8ZXrAWKaKPZ88WAt0MdHeqifHHgf/LyMr198X8rXym1Akp4f4H4BYGJXCBjkeX6ASQF5hza85z2jDz/88No73v9+u0iw7k57qHCd3TZYZRMJJgWGYaS1Ud1AzC3GJuBLAADoJafmP/ovtgoXWyAqGWfSSfZ8MdHVVVabmjoV8LGu6Wt4aFlvrTtn9tTaXrd7xMB+79GjR3fbQ3uvv759+87nf/Wrt17bvv2IhXB2z1Ua2w3ppTxc1gfw360u66sfKPvMU9lysJafgB6/nJfO5/M+Xm/hKR6KnoUmn6bU/C+b18HX6XO/kKMC06pA7SAzrSzhHBVoX4HSceZ1OY+shcwelNFL9rTEa0Igio9f1Id0PncdD9L0MikA2Fm56iqBnxT0m3ro1jVrFjz44IOrNtx++8o1a9asW7Zs2W0LFy5cZVcQVgwMDCwk3oMegK2FvCAmDRbZGutEs7AmK6bp1jLWTg6q4ORIjPI0Iyf/Kx/2Nn5pveRr0VpPUVaSVaSl5FDxxAH0tly0B/NP2GX8A/aa3b12Zr/T7t3venPHjr2//c1vxt/8wx84swfsmXSxL6kv731gH6SJQgb4AnHWQ4vXiS+BPzbZxYuSC97HeV5xvk9zTzFQGj40fNQ8Lx20Tu99go8KzLgCGlBmnCACowLTrEDdMef18FpIL5uAWjpk+cmGLH0O/Ni8TrHoFOPjfU75isrfQtOPFukqQU91mVqgAUBwlnrRTlMHjQ7d+b73Lfzg3XcvXbt27fJVt9661NpaeyfB0uHh4RW2LLbJwSIDyT4DNyPNl9QIZD0VbznTZAFatSsFHGx7amnFJvkWqLO+aqwfCwBvy4SdzR+3qyeH7Q17++2s/qC9cGe3LW/vfuutg9u2bTvw6u9/f8zO3gF6+52HtF/ZL5zd52DPg3uqL90JVHOd6iA9MryoeA/i8N4fX2+XTbHKZW6tvOhYaOJFm9rJ//Kb1EzGel3wUYHLXoHJT+tlTx0JowJtK1A69ko6D7QkxIcFPU289JI9eCuHqCYB3rfEK6fP5XXic8pVgtQXVwpsHXsA8+r2AQO+QAbK0svkwC4rDKxcuXLkrrvuumXlqlWj9hrjMZsYLLIJwkq7nTBml7cX2lnvaH9//7AtI7akiYKBLvcYLgFhD8bWx4ybJhoCdBJVvOH6u3yt/oQtJ205bSB/zED+uJ3NH7av3Y3bpfvjb+/de2h8z56jr7322pE/7tp10upwrgJ5QJT6sD/SJIx62XZSO17dnIDewF7g2Y4KkC10CsgTI9BWvJc974FevPJ6Ck8TVR9el/P4qHm+nU62oFGBK1IBPnzRogLXsgJ1x2CuR/YL6+xlz2MT2Ofg7eV2PPm8XfnRlXjpfN+5jokBOt5UmPw0MeCqQQV0gEq+4Mtlb6IGBuyHkOxnkPs3bNiwyJ41GFk8NjZi84T5IwsWDNsthhEDULuQMLzAlkVcTbC+BqqrCXqwjmcSmpcXLKmBOS31CWPAO8FZu5HznLUbmB+z5YTd6jBy6vSpEydOG7CftIfuThrIn961a9cxe5Pe2XP8IE7zMn16PsJSk5N6acKV6kkNWLTtrEJ1Rg8VOHpQNZeUC11poZ9c72uoXPLJbegF+N5XeUUV7yk2GjqatzU1zf+yex18nT73CzkqcNkrwGAULSpwPVSg7lgs6dHlC9uQ67ws4BbFJl4UncCqZPd+dbzvk3Xyftho8pnCA4qyiQckTQcYpwlCASABEAEU+WitPMb7/mUTxY8m0GpKk7LPLaASJdbnpm5McNIkp1rvlI8JBUy17jnIY1L/yu3lOl7Aq23PKXF1ujp9XUzdOmjdoeRUw58m2pSm/m9nm+oZUlTgClVAA8AVSh9powIzqkDdcen1ngeIaOikF19HPXh14rHnPvSX6+kLHc37a51kk+z94b0+Jal00usKguRENVlQgFHAJdnchMGZExhPkQHuUqtyl0z0AZhja4GZye2AMMVUyUq88kCVp8TLLwdyyYrx1PPyE8Xm7ZI9ZbXlA08jnobet1yWrU4ve9CowFWtgAaSq9ppdBYV6LICdcdnrpecUw+42LTQPbwH6To+9/Oyj1Fub/e6nGcd8vVDJz94mvdpaipwNwFf37zsee8zEz4HrlwGCNWfbKICSfpFJ33Oy09674dNes+jq5OVD1rno5yeKg4dLZe9b9Oj+V/+Xie+nU0+QaMCV70C+tBe9Y6jw6jANCvQ7ljNbcjSeSregyq6XJZOlFUVD8156XI9edHRPO/9xePTDS8/KE35PS8dwCNeFL9uWgm0pBMlj3jRkg6b7CXe2zzg5sCtWGhuQ+4m1sdpXX2cX5ecl0ycWkmHrU6vuKBRgWtegekOCtd8hWMF5nwF2h2zuc3LAnkKiN4vKqp8ZBNoS86p7MSLz33ayT5OPJQYmmLFl2idzuvhZ9NKYIYu1+c62aElkJWOdcuB2cvKm1PF1/l6O334ePXpqffJeWQ18tS1dra6mNBHBa5JBTTQXJPOo9OowCwr0O74zW1e9kCvVZAOWTwxWqRXHukF/LKLyu5l8VDseT/S+1h46XOa27w9BVX/5Od13fAlMBOI+njp6Ee8Yj2VjVjxnkovQJeMTx2Yl3y9fyk/OppsTWmyD9mkL8nd2rxf8FGB66oCMx0YrquNiJWJClgF2h3LJZt0noqnoPBavOx52UtUfjnIyxd7yaY4/MSL+ljpkpP9k3+ub2cXECpWMjHivU06b1d+bLLX8Yrz9jpgV646gFcOUeWGlmK8XblLsfipyU+yp+1s3i/4qMB1WwF9uK/bFYwViwrMoAKdjuuSHZ30onQtXlSgjU08Ni3oxSvGy7kO/zyPzyG+RL0OnjwAk/pAp1bSyVaiJYBTboE2cd5PPFS8fCTnsd5XvKiPlQ6a6yWLeh/pRGWTDFXzNuk87WT3vsFHBa77Ckx3ULjuNyhWMCqQVaDTMV6ySydKSnjJonV6D+i5DzJ2n6OTv3w9Fa/8UJrXl+TkVP2Tbztgy21eFi9KWnjJonV6+cpPcsnf27xdsdLltGTHR83bpfO0k937Bh8VuKEqoAHghlrpWNmowAwr0M3xXvLxOvGirAp8t3LuK/D3efJcskFpsot6XXJwPpJLPgI3nwc/6X1srvNyiUdX0vsrAOpLfnmM95VPHiNZNPdD75u3e73nu/Hx/sFHBW7ICuQf/BtyI2KlowIzrEDd8S89QCA+70L6nMov13eSicPH+6n/djrFQX1TTCedt4svAWA3OgCbfr1vrpOtjrIO2GQvydJ5mvPINJ+nqSn/79avHB3aqMANWIHSIHEDbkasclRg1hXo9rNQ5+f14kW1cl4u8SUdsdKLSgdooZNeIJbrZCduOk35iVHuXFeS1YdifHw3fKc4b1dfovn6SK9+VYt2OXxM8FGBm7YC+jDctBsYGxYVmGEF9NnwgOJTYReIyNfbxXubeFF84PM+vF0+UFrJlseX/FLwLP5pW5VCfZb08oF6ex0/Hb9SbtXQ23zOOnvuH3JUYE5VIB9M5tTGx8ZGBaZRAX1WBHylUA808i/5ocvtdbL0pX5l67aPOr9Oeg/cJd/cnsvEdNKV7L4v2dlm8d6e89345DEhRwXmVAU6DSBzqhixsVGBaVbAg1HdZ0l6AZLkTl2V/LwOvlNO79Opvzp7uxy+f/HK00mWX4kSq23N88hf+nbrJ9+gUYGoQKEC+pAVTKGKCkQFZlABfaY8iNWlmY5vXQ70ytPO50rYBMIzye3r0ymP7Gyn+Jn0GTFRgaiAq8C1GjjcKgQbFZgTFdBnzQNfpw33MfKVTvL1Rj1Aa129rt36yo848e38wxYViArMogL6gM4iRYRGBaICs6yAB7zZfCbbxc4EUOvyzSSXSkSs8s4mj/IFjQpEBWZYAX0QZxgeYVGBqMBVqoA+qx40pbtKq1DbTd06eX1tcBiiAlGBa1OB62UAuTZbH71GBeZGBWb6OQ8AnxvHR2xlVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgahAVCAqEBWICkQFogJRgajA5a/A/wOVIwGzs5O1rgAAAABJRU5ErkJggg==
[[lien vers worldcat|https://www.worldcat.org/]]
Utiliser plutôt pour les livres en langues étrangères. Le [[Sudoc]] est inclus dans Worldcat.
* [[Better bibtex|https://retorque.re/zotero-better-bibtex/]]
** [[Customizing the export|https://retorque.re/zotero-better-bibtex/customized-exports/]]
** [[scripting export|https://retorque.re/zotero-better-bibtex/scripting/]]
**forum : [[BetterBibTeX: "Booktitle" fill with "Conference Name"|https://github.com/retorquere/zotero-better-bibtex/issues/1195]] (amoisan, Nanterre)
* [[ZOTERO 2 HAL|https://openaccess.parisnanterre.fr/hal-et-la-voie-verte/formations-et-tutoriels/utiliser-zotero-pour-alimenter-hal/zotero-2-hal-752031.kjsp]] (SCD Nanterre)
** [[DE ZOTERO À HAL, EN PASSANT PAR BETTERBIBTEX|https://openaccess.parisnanterre.fr/evenements-passes/de-bibtex-a-hal/alimenter-hal-grace-a-zotero/]] (lien vers le sript.js)
* [[Zotero vers HAL, Zenodo et JabRef (TEI-XML; CSL JSON; BibLateX). Cas de notice de chapitre d'un livre|https://stephane-mottin.blogspot.com/2017/02/zotero-tei-xml-csl-json-biblatex-vers.html]] (xml-TEI)
@@color:red;
!!! ''Codes de champs (Nanterre)''
@@
|!Champ Zotero|!Champ HAL|!Type de document concerné|
|Archive |x-onbehalfof | Tous |
|Loc. dans l'archive |x-audience | Tous |
|Catalogue de bibliothèque |x-peerreviewing | Tous |
|Titre abrégé |x-conferencestartdate |Article de colloque et poster|
|Consulté le |x-conferenceenddate |Article de colloque|
|Cote |x-invitedcommunication |Article de colloque et poster|
|Autorisations |x-city |Article de colloque et poster|
|Extra |x-country |Article de colloque et poster|
> @@color:red;''Rappel'' :@@
|!Champ Zotero|!Code BibTeX|
|Loc. dans l’archive|archiveLocation|
|Catalogue de bibliothèque|libraryCatalog|
|Titre abrégé|shorttitle|
|Consulté le|urldate|
|Cote|lccn|
|Autorisations|rights|
|Extra|note|
|Intitulé du colloque|conferenceName|
|Intitulé de la réunion|meetingName|
|Marqueur|keyword|
@@color:red;
!!! //Doc//
@@
*[[Zotero Item Types|https://aurimasv.github.io/z2csl/typeMap.xml]] (aka //''The Aurimasv's doc''// : champs Zotero/CSL)
@@color:red;
!!! //Console Javascript//
@@
* Documentation : [[Zotero JavaScript API|https://www.zotero.org/support/dev/client_coding/javascript_api]]
* Tutoriel : [[Utiliser la Console Javascript de Zotero pour modifier en lot les références sélectionnées|https://slides.com/ujubib/deck-16]]
@@color:red;
!! Codes :
@@
@@color:red;
*//Tous les documents// :
@@
<$details summary="Langue">
Mettre `en` dans le champ `Langue` des références sélectionnées :
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('language', 'en');
await item.saveTx();
}
```
</$details>
<$details summary="x-audience|Loc. dans l'archive (archiveLocation)">
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('archiveLocation', 'Nationale/Internationale/Not set');
await item.saveTx();
}
```
</$details>
<$details summary="x-peerreviewing|Catalogue de bibl. (libraryCatalog)">
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('libraryCatalog', 'Oui/Non');
await item.saveTx();
}
```
</$details>
<$details summary="x-onbehalfof|Archive (archive)">
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('archive', 'idHAL');
await item.saveTx();
}
```
</$details>
@@color:red;
*//Communications//
@@
<$details summary="x-invitedcommunication|Cote (callNumber)">
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('callNumber', 'Oui/Non');
await item.saveTx();
}
```
</$details>
@@color:red;
*//Autres Publications//
@@
<$details summary="x-othertype|???">
|!code|!type fr|!type en|
|1|Article de blog|Blog article|
|2|Compte-rendu d'ouvrage ou Note de Lecture||
|3|Notice d'encyclopédie ou de dictionnaire|Dictonnary Notice|
|4|Traduction||
</$details>
@@color:red;
*//Copier un champs dans un autre//
@@
<$details summary="item.getField('')">
```javascript
var selectedItems = ZoteroPane.getSelectedItems();
for (var i = 0; i < selectedItems.length; i++) {
var item = selectedItems[i];
item.setField('conferenceName', item.getField('proceedingsTitle'));
await item.saveTx();
}
```
</$details>
@@color:red;
!! Web API
@@
* [[Zotero Web API Documentation|https://www.zotero.org/support/dev/web_api/v3/basics]]
* [[Zotero Web API Write Requests|https://www.zotero.org/support/dev/web_api/v3/write_requests]]
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qKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/wCejfp/hQA6im7G/wCejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/AJ6N+n+FADqKbsb/AJ6N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv8Ano36f4UAOopuxv8Ano36f4UbG/56N+n+FADqKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/wCejfp/hQA6im7G/wCejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/AJ6N+n+FADqKbsb/AJ6N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv+ejfp/hQA6im7G/56N+n+FGxv8Ano36f4UAOopuxv8Ano36f4UbG/56N+n+FADqKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/wCejfp/hQA6im7G/wCejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UANt7eG2Vlt4Y4lZ2kYRqFBZjlmOO5JJJ7mpKbsb/no36f4UbG/56N+n+FADqKbsb/no36f4UbG/wCejfp/hQA6im7G/wCejfp/hRsb/no36f4UAOopuxv+ejfp/hRsb/no36f4UAEv3R/vD+Yp1RSKQAS7H5hwceo9qloAaf8AXL/un+lOpp/1y/7p/pTqACiiigAooooAKKKKACiiigCpq2o22k6fLe3rssEeM7VLMxJACqo5JJIAA6k1naX4hF3qIsL3TNQ0u7eMzRJeeURMoOG2tG7rkZGQSDyDjFSeLNPuNR0gJYiJruCeG6hWYkI7RyK+0kA4ztIzg4zmsu/bXfEVhqNgumSaNbTWUsPm3kkbytK64XZ5TuAo5JJ55GB1NLox21X9f1/XYtaj418P2WkrqX9q2VxZG6jtDLBcRuqyOQME7sDAO485CgnFasWradNqcmnRX9o+oRJ5j2qzKZUXj5imcgcjnHcVwd9pGr6gk+oR6JLZMn9nItgZoTJJ9nuPMcqVfZjacLkgnBzjiptG8O6pb+LxJdLqTWsWoXN8k3m2ot8ShsAAIZy2H2lWIX5cg8KKpLp6/p/wSXtf+v66fieh0UUUhhRRRQAUUUUAFFFFABRRRQAUUUUAQz3dvbuiXFxDE7hmVXcKWCjLEZ64HJ9KhutSt7eyhug6SwTPEiOkiBW8xgqkFmAI+YHg5PYE4BwfiHo13r+m29hZQIx8wzNNI+FTap+Tghj5mdhxxsZ89sw67o2p39jBMlzfStJd2c50+c24S2VJ43fDKoJKhT1ds9s8ULV/NA9Dc/4SLRDcy239sab9ohRpJIvtSbkVThmIzkAEHJPSl1TXLHTJo47q4hRmBZt08aGNAjtvIZgSMI3QHoT0BI5G18LXbW2lQXNkojGsX9xdgMnMMouFVjg85DxjHJ5GenEGl+G9ca60q71SFWu4L0xyOJVOLeO1lijc8/xM5fA5Hmc9DSd7O249E/v/AF/y/I6vTPF2h6hpek3y6laQR6ooNrHPOivI3AKAbuWBIBAzg8U/X/E+k6EyRX15CLt9my0WVPOcM4QMqEgkZPJ9j6V52/hTXX0rTIJLTVED6NFpU8FtPZqEaNiCztIHwjbgwaPLDbyucAbfiXRdVeXVbW30ltSXULy0uUuzLEqwrH5QZW3ENkeWzDaCDv7c1TtfTv8Ar/TJ2O2TVtNk1STTU1CzbUY13vaiZTKq8HJTOQORzjuKjtNd0i8spLy01Wwns438t54rhGjV+PlLA4B5HHuK5F9F1OXTdT0M6UoeaS9li1d5Y9ied5hVlGTJv/eBD8qjAbDHgGK40TUtXivp5NFNgksVhaiylkiYuIZ97t8jFNgVsDJycHgcApajen9f16nXW3ibQbprVbbW9Mma6YpbiO7jYzMOoTB+YjIyBSy+I9DhuJbebWdNjniRpJI2ukDIqkhmIzkAEHJ7YNc5rHh68mfX5LWzTzrvUrC4jcMis6RNCWbOe21+vPp1p0Ph243WLSWMRaPX59QcnYcIfN2ydevKe449KFr/AF6f5v7geiv/AF1/r5nVWuqafdrA1rfWs6zxtNEY5lYSIpALLg8gEjJHHIqvN4j0SA24m1nTYzchGgD3SDzQ33SuT82cHGOtcbaaPrGlalFeppct2vmanF5UM0SlFnuFkjc7nA24U5Aywz0NUrXwlqyeGdTt5LBftsvhm106IeYhJnRZd6A545ZOeh454oWqv/XX/gfeO2tv63S/4J6DJrVjBFfzXtzBaW9lKIppp541RSVUjJ3fL98DDYPtgglJ/EOi26WTz6vp0SXoBtWe5RRPnH3Mn5uo6Z6iuUl0TVLfU7rUlsXuli1lb1LZJEDzx/Y1hyu5goZXJOGI+6fbOd4s0vX9R028t9N0J9PS9sXjCWBsyxdmkOy5eT+E7g2IskMz/MeCTt8vyEtf68zr7Hxbpd/rFzptpMkl1bXf2OVRNFkP5ZkyBv3EcMvAJyrcYUkaEOuaTM16sOp2MjWORdBLhCbfGf8AWc/L0PXHQ1x1voerf8JUlw9i8dt/aovjP5sZAQ2BhIxu3ZDgA8dwRkZxmXHhnWrrw62njS2hmsNFutNEjTR4vpJNgVkw3CkoWPmBTlx7mj/L9P8AMFq/67npGmarp2qrK2l39perE/lyG3mWQI3907ScH2q5XPaTpk9p4s1G68hY7GSwtIIipGN0bTbhgdMBl7Y546V0NNiTuFFFFIYUUUUAVNX1CLStNuL24DtHEudiAFnPQKoJALEkADPUiqd14l0Wy0+2vb7U7O0guYhNCbidIt6kA8biM9R+dQeKtKutZfTrSC4ns7ZJvtM1zD5ZYFOUUBww5YhuVI+TsSK57QfDepWHiG1jnjeexsLa9ggvZWj3OJXhdPlXGCP3i8KBhPQilrr/AF0/Vj7HQ6D4s0vW9OF/azxpZ/ZEvGlkmixGjbshwHJUrsYEnAyCATg4ms/EemX2oWdrp9zHeLdQS3EdxbyLJEVjZFYbgeuXHT0NcFpXhfW10gJPpzRywafpkXkSTRnz3tZnaRAVYj5hjBYgfMM45xq6houp65qNzcR6SNGW502+td7yxmTzZBCEeQRkjJ2N0LcKMkE4FSsm7ef5aCS6PyO00vVdP1eB5tKv7S+hRijSW0yyqrdcEqTzyOPeqN/4n0mz1e20tryGXUZplhNtFKjSx7lLBnTOQuB1x3HrWP4A0q/s7i8utRh1OGSSCC3C30tqxIjDfdW3QKFG7AZiWPoMDOe2jaomqafaf2QZorfWpdRbUjLEF8uTzCMDdv3jeqEbcYXgnih6SSX9aoV/db/rb/PQ7ax1XTr+5urexv7S5uLVtlxFDMrtC2SMOAcqeDwfQ0k+radBqUOnT6haR6hMu6K1eZRLIOeVQnJHB6Dsa4r4feHdT0vUbb+0xqWLG0ktFlnltfJk3OpzGsaeYQdu7MrAjOMEkmtMWV9a6/qaNow1C31C8huku2kjEduFRF+YMS+9TGWXapGSOV5IXb+v67jfU1b7xPpNtYavdRXsF4dKjaS7htZUkki2g5Urng/KRg46U6PxHpuzVJbqdLO306ZYJ5rp1jjDMiODuJxj94o5xzXB3HhnWrrw82njTGgnsNFutNWVpo8X0kmwKyYbhSULHzApyw9zWtNouqW9/d36WL3KxazHfJapJGGuIxaJDldzBQVfLAMR9z6Uf1+Nvy1G/wDP8jr7nWtKtbG3vbrU7KGyuCohuJJ0WOQsMrtYnByORjrThq2nGGWUahaGKKITyP5y7UjOcOTnhTtbnpwfSuLttH1PThp+oNo5vm3X5ewSWMNbi5kEi8swQ4A2ttJ+8duR15vS9K1afwORpmlPdpq/hyCzjaKaNEgkUS8NvYHBEgwQD05x1oWv9ev+QJf18z1iXVtOi1KHTpb+0TUJ13xWzTKJZF55VM5I4PIHY0uqapp+kW6z6rfWljAzBBJczLEpY5IGWIGeDx7Vw2o+G9Uk8XTSY1J7G6urS6DwTWqQxeUqgh96NNkFCQE4O/GVyxrT8faVqV3f6Vfaat/Ktuk8MkVi1sJD5gXBxcAoV+Qqf4vm44yKT2v/AF/X/Dijq9exuW3iHTrnxJeaFFOh1C1gjuHTev3XJ6DOcjAJ44Dr61Pb61pdzqD2FvqVlLfIGZreOdWkAVtrEqDnggg+h4rnvCei3uj62Flt5TaHSLS2E7TJJteEyZRj8pJw4wwQA4PTgVg+FbG6vdQZIdLMENt4gvrx9R3x4b5pY9oGd+87gDlcbR1zxVPR2X9a2Dpf0/K/56HoNpq+m3s93DZ6hZ3E1odtzHFMrtCeeHAPyng9fQ1k6h418PWekJqY1ayuLFrmO0863uY3USOQMFt2OAdx5yFBNc1p/h/U3sbezu9G+TTtJuNOk33KINRaTYMoyElQ2wsS4BBccdTSHSNen0q9eSyvZnW7sZokvTaLeSrDKruC0JEZUKPl3NnO7OARQt18vz/y1B/19x3ker6bJqUunx6hZvfxJ5klssymVF4+YpnIHI5x3FO03U7DVInl0y9tbyJG2M9vKsgVsA4JBODgg4964PTvDeqxeKHa4XUmto766vY5fOtRb4lVgAAEM5bD7SrEL8uQeFFdb4JsJtL8H6LYXUQhubezijljBB2uFAYZHB5zyKS1V/QHvY2qKKKAGy/dH+8P5inU2X7o/wB4fzFOoAaf9cv+6f6U6qt8xUoVJB56H6VW82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBp0VmebJ/fb86PNk/vt+dAGnRWZ5sn99vzo82T++350AadFZnmyf32/OjzZP77fnQBoy/dH+8P5inVnRSO0qAuxG4cE+9aNAH//Z