pax_global_header00006660000000000000000000000064134204155340014513gustar00rootroot0000000000000052 comment=485b32326349cb0329c749090cebf43f8359fa12 immutable-tuple-0.4.10/000077500000000000000000000000001342041553400147035ustar00rootroot00000000000000immutable-tuple-0.4.10/.gitignore000066400000000000000000000017101342041553400166720ustar00rootroot00000000000000# Logs logs *.log npm-debug.log* yarn-debug.log* yarn-error.log* # Runtime data pids *.pid *.seed *.pid.lock # Directory for instrumented libs generated by jscoverage/JSCover lib-cov # Coverage directory used by tools like istanbul coverage # nyc test coverage .nyc_output # Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) .grunt # Bower dependency directory (https://bower.io/) bower_components # node-waf configuration .lock-wscript # Compiled binary addons (http://nodejs.org/api/addons.html) build/Release # Dependency directories node_modules/ jspm_packages/ # Typescript v1 declaration files typings/ # Optional npm cache directory .npm # Optional eslint cache .eslintcache # Optional REPL history .node_repl_history # Output of 'npm pack' *.tgz # Yarn Integrity file .yarn-integrity # dotenv environment variables file .env # Compiled JS output directory dist/ # Reify cache directory for tests test/.cache immutable-tuple-0.4.10/.npmignore000066400000000000000000000000431342041553400166770ustar00rootroot00000000000000/node_modules /test /scripts /docs immutable-tuple-0.4.10/.travis.yml000066400000000000000000000001241342041553400170110ustar00rootroot00000000000000language: node_js node_js: - "10" - "9" - "8" - "7" - "6" - "5" - "4" immutable-tuple-0.4.10/LICENSE000066400000000000000000000020531342041553400157100ustar00rootroot00000000000000MIT License Copyright (c) 2018 Ben Newman Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. immutable-tuple-0.4.10/README.md000066400000000000000000000206361342041553400161710ustar00rootroot00000000000000# immutable-tuple [![Build Status](https://travis-ci.org/benjamn/immutable-tuple.svg?branch=master)](https://travis-ci.org/benjamn/immutable-tuple) Immutable finite list objects with constant-time equality testing (`===`) and no memory leaks. ## Installation First install the package from npm: ```sh npm install immutable-tuple ``` or clone it from GitHub and then run `npm install` to compile the source code: ```sh git clone https://github.com/benjamn/immutable-tuple.git cd immutable-tuple npm install npm test # if skeptical ``` ## Usage This package exports a single function called `tuple`, both as a `default` export and as an equivalent named export, so all of the following import styles will work: ```js import tuple from "immutable-tuple"; import { tuple } from "immutable-tuple"; const { tuple } = require("immutable-tuple"); const tuple = require("immutable-tuple").tuple; ``` ### Constructing `tuple`s The `tuple` function takes any number of arguments and returns a unique, immutable object that inherits from `tuple.prototype` and is guaranteed to be `===` any other `tuple` object created from the same sequence of arguments: ```js import assert from "assert"; const obj = { asdf: 1234 }; const t1 = tuple(1, "asdf", obj); const t2 = tuple(1, "asdf", obj); assert.strictEqual(t1 === t2, true); assert.strictEqual(t1, t2); ``` Although the `tuple` function can be invoked using `new tuple(...)` syntax, using `new` is not recommended, since the new object will simply be thrown away. ### Own `tuple` properties The `tuple` object has a fixed numeric `length` property, and its elements may be accessed using array index notation: ```js assert.strictEqual(t1.length, 3); t1.forEach((x, i) => { assert.strictEqual(x, t2[i]); }); ``` ### Nested `tuple`s Since `tuple` objects are just another kind of JavaScript object, naturally `tuple`s can contain other `tuple`s: ```js assert.strictEqual( tuple(t1, t2), tuple(t2, t1) ); assert.strictEqual( tuple(1, t2, 3)[1][2], obj ); ``` However, because tuples are immutable and always distinct from any of their arguments, it is not possible for a `tuple` to contain itself, nor to contain another `tuple` that contains the original `tuple`, and so forth. ### Constant time `===` equality Since `tuple` objects are identical when (and only when) their elements are identical, any two tuples can be compared for equality in constant time, regardless of how many elements they contain. This behavior also makes `tuple` objects useful as keys in a `Map`, or elements in a `Set`, without any extra hashing or equality logic: ```js const map = new Map; map.set(tuple(1, 12, 3), { author: tuple("Ben", "Newman"), releaseDate: Date.now() }); const version = "1.12.3"; const info = map.get(tuple(...version.split(".").map(Number))); if (info) { console.log(info.author[1]); // "Newman" } ``` ### `Array` methods Every non-destructive method of `Array.prototype` is supported by `tuple.prototype`, including `sort` and `reverse`, which return a modified copy of the `tuple` without altering the original: ```js assert.strictEqual( tuple("a", "b", "c").slice(1, -1), tuple("b") ); assert.strictEqual( tuple(6, 2, 8, 1, 3, 0).sort(), tuple(0, 1, 2, 3, 6, 8) ); assert.strictEqual( tuple(1).concat(2, tuple(3, 4), 5), tuple(1, 2, 3, 4, 5) ); ``` ### Shallow immutability While the identity, number, and order of elements in a `tuple` is fixed, please note that the contents of the individual elements are not frozen in any way: ```js const obj = { asdf: 1234 }; tuple(1, "asdf", obj)[2].asdf = "oyez"; assert.strictEqual(obj.asdf, "oyez"); ``` ### Iterability Every `tuple` object is array-like and iterable, so `...` spreading and destructuring work as they should: ```js func(...tuple(a, b)); func.apply(this, tuple(c, d, e)); assert.deepEqual( [1, ...tuple(2, 3), 4], [1, 2, 3, 4] ); assert.strictEqual( tuple(1, ...tuple(2, 3), 4), tuple(1, 2, 3, 4) ); const [a, [_, b]] = tuple(1, tuple(2, 3), 4); assert.strictEqual(a, 1); assert.strictEqual(b, 3); ``` ### `tuple.isTuple(value)` Since the `immutable-tuple` package could be installed multiple times in an application, there is no guarantee that the `tuple` constructor or `tuple.prototype` will be unique, so `value instanceof tuple` is unreliable. Instead, to test if a value is a `tuple`, you should use `tuple.isTuple(value)`. Fortunately, even if your application uses multiple different `tuple` constructors from different copies of this library, the resulting `tuple` instances will still be `===` each other when their elements are the same. This is especially convenient given that this library provides both a CommonJS bundle and an ECMAScript module bundle, and some module systems might accidentally load those bundles simultaneously. ## Implementation details Thanks to [Docco](http://ashkenas.com/docco/), you can read my implementation comments side-by-side with the actual code by visiting [the GitHub pages site](https://benjamn.github.io/immutable-tuple/) for this repository. ### Instance pooling (internalization) Any data structure that guarantees `===` equality based on structural equality must maintain some sort of internal pool of previously encountered instances. Implementing such a pool for `tuple`s is fairly straightforward (though feel free to give it some thought before reading this code, if you like figuring things out for yourself): ```js const pool = new Map; function tuple(...items) { let node = pool; items.forEach(item => { let child = node.get(item); if (!child) node.set(item, child = new Map); node = child; }); // If we've created a tuple instance for this sequence of elements before, // return that instance again. Otherwise create a new immutable tuple instance // with the same (frozen) elements as the items array. return node.tuple || (node.tuple = Object.create( tuple.prototype, Object.getOwnPropertyDescriptors(Object.freeze(items)) )); } ``` This implementation is pretty good, because it requires only linear time (_O_(`items.length`)) to determine if a `tuple` has been created previously for the given `items`, and you can't do better than linear time (asymptotically speaking) because you have to look at all the items. This code is also useful as an illustration of exactly how the `tuple` constructor behaves, in case you weren't satisfied by my examples in the previous section. ### Garbage collection The simple implementation above has a serious problem: in a garbage-collected language like JavaScript, the `pool` itself will retain references to all `tuple` objects ever created, which prevents `tuple` objects and their elements (which may be very large objects) from ever being reclaimed by the garbage collector, even after they become unreachable by any other means. In other words, storing objects in this kind of `tuple` would inevitably cause **memory leaks**. To solve this problem, it's tempting to try changing `Map` to [`WeakMap`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap) here: ```js const pool = new WeakMap; ``` and here: ```js if (!child) node.set(item, child = new WeakMap); ``` This approach is appealing because a `WeakMap` should allow its keys to be reclaimed by the garbage collector. That's the whole point of a `WeakMap`, after all. Once a `tuple` becomes unreachable because the program has stopped using it anywhere else, its elements are free to disappear from the pool of `WeakMap`s whenever they too become unreachable. In other words, something like a `WeakMap` is exactly what we need here. Unfortunately, this strategy stumbles because a `tuple` can contain primitive values as well as object references, whereas a `WeakMap` only allows keys that are object references. In other words, `node.set(item, ...)` would fail whenever `item` is not an object, if `node` is a `WeakMap`. To see how the `immutable-tuple` library gets around this `WeakMap` limitation, have a look at [this module](https://benjamn.github.io/immutable-tuple/src/universal-weak-map.html). Astute readers may object that some bookkeeping data remains in memory when you create `tuple` objects with prefixes of primitive values, but the important thing is that no user-defined objects are kept alive by the `pool`. That said, if you have any ideas for reclaiming chains of `._strongMap` data, please [open an issue](https://github.com/benjamn/immutable-tuple/issues/new) or [submit a pull request](https://github.com/benjamn/immutable-tuple/pulls)! immutable-tuple-0.4.10/docs/000077500000000000000000000000001342041553400156335ustar00rootroot00000000000000immutable-tuple-0.4.10/docs/docco.css000066400000000000000000000233011342041553400174330ustar00rootroot00000000000000/*--------------------- Typography ----------------------------*/ @font-face { font-family: 'aller-light'; src: url('public/fonts/aller-light.eot'); src: url('public/fonts/aller-light.eot?#iefix') format('embedded-opentype'), url('public/fonts/aller-light.woff') format('woff'), url('public/fonts/aller-light.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'aller-bold'; src: url('public/fonts/aller-bold.eot'); src: url('public/fonts/aller-bold.eot?#iefix') format('embedded-opentype'), url('public/fonts/aller-bold.woff') format('woff'), url('public/fonts/aller-bold.ttf') format('truetype'); font-weight: normal; font-style: normal; } @font-face { font-family: 'roboto-black'; src: url('public/fonts/roboto-black.eot'); src: url('public/fonts/roboto-black.eot?#iefix') format('embedded-opentype'), url('public/fonts/roboto-black.woff') format('woff'), url('public/fonts/roboto-black.ttf') format('truetype'); font-weight: normal; font-style: normal; } /*--------------------- Layout ----------------------------*/ html { height: 100%; } body { font-family: "aller-light"; font-size: 14px; line-height: 18px; color: #30404f; margin: 0; padding: 0; height:100%; } #container { min-height: 100%; } a { color: #000; } b, strong { font-weight: normal; font-family: "aller-bold"; } p { margin: 15px 0 0px; } .annotation ul, .annotation ol { margin: 25px 0; } .annotation ul li, .annotation ol li { font-size: 14px; line-height: 18px; margin: 10px 0; } h1, h2, h3, h4, h5, h6 { color: #112233; line-height: 1em; font-weight: normal; font-family: "roboto-black"; text-transform: uppercase; margin: 30px 0 15px 0; } h1 { margin-top: 40px; } h2 { font-size: 1.26em; } hr { border: 0; background: 1px #ddd; height: 1px; margin: 20px 0; } pre, tt, code { font-size: 12px; line-height: 16px; font-family: Menlo, Monaco, Consolas, "Lucida Console", monospace; margin: 0; padding: 0; } .annotation pre { display: block; margin: 0; padding: 7px 10px; background: #fcfcfc; -moz-box-shadow: inset 0 0 10px rgba(0,0,0,0.1); -webkit-box-shadow: inset 0 0 10px rgba(0,0,0,0.1); box-shadow: inset 0 0 10px rgba(0,0,0,0.1); overflow-x: auto; } .annotation pre code { border: 0; padding: 0; background: transparent; } blockquote { border-left: 5px solid #ccc; margin: 0; padding: 1px 0 1px 1em; } .sections blockquote p { font-family: Menlo, Consolas, Monaco, monospace; font-size: 12px; line-height: 16px; color: #999; margin: 10px 0 0; white-space: pre-wrap; } ul.sections { list-style: none; padding:0 0 5px 0;; margin:0; } /* Force border-box so that % widths fit the parent container without overlap because of margin/padding. More Info : http://www.quirksmode.org/css/box.html */ ul.sections > li > div { -moz-box-sizing: border-box; /* firefox */ -ms-box-sizing: border-box; /* ie */ -webkit-box-sizing: border-box; /* webkit */ -khtml-box-sizing: border-box; /* konqueror */ box-sizing: border-box; /* css3 */ } /*---------------------- Jump Page -----------------------------*/ #jump_to, #jump_page { margin: 0; background: white; -webkit-box-shadow: 0 0 25px #777; -moz-box-shadow: 0 0 25px #777; -webkit-border-bottom-left-radius: 5px; -moz-border-radius-bottomleft: 5px; font: 16px Arial; cursor: pointer; text-align: right; list-style: none; } #jump_to a { text-decoration: none; } #jump_to a.large { display: none; } #jump_to a.small { font-size: 22px; font-weight: bold; color: #676767; } #jump_to, #jump_wrapper { position: fixed; right: 0; top: 0; padding: 10px 15px; margin:0; } #jump_wrapper { display: none; padding:0; } #jump_to:hover #jump_wrapper { display: block; } #jump_page_wrapper{ position: fixed; right: 0; top: 0; bottom: 0; } #jump_page { padding: 5px 0 3px; margin: 0 0 25px 25px; max-height: 100%; overflow: auto; } #jump_page .source { display: block; padding: 15px; text-decoration: none; border-top: 1px solid #eee; } #jump_page .source:hover { background: #f5f5ff; } #jump_page .source:first-child { } /*---------------------- Low resolutions (> 320px) ---------------------*/ @media only screen and (min-width: 320px) { .pilwrap { display: none; } ul.sections > li > div { display: block; padding:5px 10px 0 10px; } ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol { padding-left: 30px; } ul.sections > li > div.content { overflow-x:auto; -webkit-box-shadow: inset 0 0 5px #e5e5ee; box-shadow: inset 0 0 5px #e5e5ee; border: 1px solid #dedede; margin:5px 10px 5px 10px; padding-bottom: 5px; } ul.sections > li > div.annotation pre { margin: 7px 0 7px; padding-left: 15px; } ul.sections > li > div.annotation p tt, .annotation code { background: #f8f8ff; border: 1px solid #dedede; font-size: 12px; padding: 0 0.2em; } } /*---------------------- (> 481px) ---------------------*/ @media only screen and (min-width: 481px) { #container { position: relative; } body { background-color: #F5F5FF; font-size: 15px; line-height: 21px; } pre, tt, code { line-height: 18px; } p, ul, ol { margin: 0 0 15px; } #jump_to { padding: 5px 10px; } #jump_wrapper { padding: 0; } #jump_to, #jump_page { font: 10px Arial; text-transform: uppercase; } #jump_page .source { padding: 5px 10px; } #jump_to a.large { display: inline-block; } #jump_to a.small { display: none; } #background { position: absolute; top: 0; bottom: 0; width: 350px; background: #fff; border-right: 1px solid #e5e5ee; z-index: -1; } ul.sections > li > div.annotation ul, ul.sections > li > div.annotation ol { padding-left: 40px; } ul.sections > li { white-space: nowrap; } ul.sections > li > div { display: inline-block; } ul.sections > li > div.annotation { max-width: 350px; min-width: 350px; min-height: 5px; padding: 13px; overflow-x: hidden; white-space: normal; vertical-align: top; text-align: left; } ul.sections > li > div.annotation pre { margin: 15px 0 15px; padding-left: 15px; } ul.sections > li > div.content { padding: 13px; vertical-align: top; border: none; -webkit-box-shadow: none; box-shadow: none; } .pilwrap { position: relative; display: inline; } .pilcrow { font: 12px Arial; text-decoration: none; color: #454545; position: absolute; top: 3px; left: -20px; padding: 1px 2px; opacity: 0; -webkit-transition: opacity 0.2s linear; } .for-h1 .pilcrow { top: 47px; } .for-h2 .pilcrow, .for-h3 .pilcrow, .for-h4 .pilcrow { top: 35px; } ul.sections > li > div.annotation:hover .pilcrow { opacity: 1; } } /*---------------------- (> 1025px) ---------------------*/ @media only screen and (min-width: 1025px) { body { font-size: 16px; line-height: 24px; } #background { width: 525px; } ul.sections > li > div.annotation { max-width: 525px; min-width: 525px; padding: 10px 25px 1px 50px; } ul.sections > li > div.content { padding: 9px 15px 16px 25px; } } /*---------------------- Syntax Highlighting -----------------------------*/ td.linenos { background-color: #f0f0f0; padding-right: 10px; } span.lineno { background-color: #f0f0f0; padding: 0 5px 0 5px; } /* github.com style (c) Vasily Polovnyov */ pre code { display: block; padding: 0.5em; color: #000; background: #f8f8ff } pre .hljs-comment, pre .hljs-template_comment, pre .hljs-diff .hljs-header, pre .hljs-javadoc { color: #408080; font-style: italic } pre .hljs-keyword, pre .hljs-assignment, pre .hljs-literal, pre .hljs-css .hljs-rule .hljs-keyword, pre .hljs-winutils, pre .hljs-javascript .hljs-title, pre .hljs-lisp .hljs-title, pre .hljs-subst { color: #954121; /*font-weight: bold*/ } pre .hljs-number, pre .hljs-hexcolor { color: #40a070 } pre .hljs-string, pre .hljs-tag .hljs-value, pre .hljs-phpdoc, pre .hljs-tex .hljs-formula { color: #219161; } pre .hljs-title, pre .hljs-id { color: #19469D; } pre .hljs-params { color: #00F; } pre .hljs-javascript .hljs-title, pre .hljs-lisp .hljs-title, pre .hljs-subst { font-weight: normal } pre .hljs-class .hljs-title, pre .hljs-haskell .hljs-label, pre .hljs-tex .hljs-command { color: #458; font-weight: bold } pre .hljs-tag, pre .hljs-tag .hljs-title, pre .hljs-rules .hljs-property, pre .hljs-django .hljs-tag .hljs-keyword { color: #000080; font-weight: normal } pre .hljs-attribute, pre .hljs-variable, pre .hljs-instancevar, pre .hljs-lisp .hljs-body { color: #008080 } pre .hljs-regexp { color: #B68 } pre .hljs-class { color: #458; font-weight: bold } pre .hljs-symbol, pre .hljs-ruby .hljs-symbol .hljs-string, pre .hljs-ruby .hljs-symbol .hljs-keyword, pre .hljs-ruby .hljs-symbol .hljs-keymethods, pre .hljs-lisp .hljs-keyword, pre .hljs-tex .hljs-special, pre .hljs-input_number { color: #990073 } pre .hljs-builtin, pre .hljs-constructor, pre .hljs-built_in, pre .hljs-lisp .hljs-title { color: #0086b3 } pre .hljs-preprocessor, pre .hljs-pi, pre .hljs-doctype, pre .hljs-shebang, pre .hljs-cdata { color: #999; font-weight: bold } pre .hljs-deletion { background: #fdd } pre .hljs-addition { background: #dfd } pre .hljs-diff .hljs-change { background: #0086b3 } pre .hljs-chunk { color: #aaa } pre .hljs-tex .hljs-formula { opacity: 0.5; } immutable-tuple-0.4.10/docs/index.html000066400000000000000000000000731342041553400176300ustar00rootroot00000000000000 immutable-tuple-0.4.10/docs/public/000077500000000000000000000000001342041553400171115ustar00rootroot00000000000000immutable-tuple-0.4.10/docs/public/fonts/000077500000000000000000000000001342041553400202425ustar00rootroot00000000000000immutable-tuple-0.4.10/docs/public/fonts/aller-bold.eot000066400000000000000000000721541342041553400230010ustar00rootroot00000000000000ltsLP[ P 3і AllerBoldVersion 1.00Aller BoldBSGPDMMR"xZgicyR&c4o4Fw[ H-VbOGs!a6Dz''-A)GVvHKt.'&ǘngOc<ʛ\*[ ƼYg-$ts.K&M^|׆lLEO.kفUOD7ji`N-q*_A RsPΤ=w,8,F N` ł aF{#r`I\B _` _~p[XW/?G"PDB 5^ %Q'u.h&{q|  %Xn<YJ|vW1BD[tf;a~qÁ"DIk$emOL ٗx%K9]L^S,hnq>̈́ iCtX2B:pmVJ;$.J3#j$D`K }<+e@;h4)W$ޖ6c+$vpX6PO,̏,a2\5HRf3a4RZ" 4жW`Y%b 'JB)7̄yG{Nn%w^ ݱ*U5IU45Y:3Y:8 TbCcӛcݖG{-̐ bLDYM%Uf$/sGA4^v ahCI\ SYfOJ~qlBw2 SId FGB4 i;w iM)MבJ ]bZaUtVaGJ3aH XSj8*HeeմT@RرSl +d*hihׅ~4Рdֱř4,{!+wI&g[Y݅s~ )1YB! W%;56-G$(yu7|'e Mdl $Hi=ak aOr\axj".ͱ ?9XIɳ/'Lɛ@ nCCcY=~Tjo7$#ss;+>ǫ/JD@z/lLVSH[QŪNn~4'YGuCz~k?\-SKTAY`-GsDq0.zѼ(d4o2F(Bby1b[Y ʉ*5>>U?!rB,D2Lm҅Msjn%#k -2-3-?SAp6^ޠ7#God.M,;Au+l$ 31̓VaNeg P**BT,ʅll#qJB9Vf@B ,E%׀pL} c1MqO8_E9nRӑ6܉aDwp̮DpF\m1ӘrL# >%2"X,t9zŒƎ$Ą\Y* 0M%wq:/MOyˉߢU/䆳Mm b`JܺccƮG'9w90RF̆ E"=\$[(?MNAT V52Fa.P+%K)v{X_x9 FDȥcGJCEO5(-|ynCk)YG6{l%h2#Ǒx0B6h=V7T¹Y)Ͽ/}( eR; ^4,"II){p@.i(8XdbqDIVHIhW8Lh}Evo9ZGBd˔TNC0kWH3~ro.pec[F;wHƧţ{-SiO_Ҟ)8 P"i%LmDko;o{~>"0`!/OHB&mR`蒿:cDdT+ BB ɴ?>~aqQr"<ɹǟŅ6{rZP!5c?vifi߻``0$;eqꇓ:J8x  2|IdafBmG>)'_?,M#Yֲz̭$"yr#Gʌ &[A:s\,329bb\fai#nv"mͬ, #nAƖpƱq@t%3`o&Q#|3Hρ#X>Fz;(?X򠑬~h>`HNHK8:9$pˆM++'T[A*؀5F3cźUJ}r>9qm2M&ӷo3Qm2afg70)e҅)3}\" ΗS>ЀccbuB/]ɷgẖ[~6CMD~vHx_ׄ2љAtFA"vg)ֹ>h$ь 7c}H%8"CV~_۶-aDueGci.fzo3\̻`HR*i>7J$8Qo ,)ן7%F$m dLK$ c6m328J22mihD%u ÄPEiC!ҏA p|:VMG8S\A\Ƀ~g284.N#K^n4J8 žIʎ${1m:-&{ݝbҾfQTiAbGZ5Z' ؊GW>zXcK';v"l9vTX6Ɇ"yLko㜮- @Z,(}6 ==_گ1)6:QePS5 @xwbgIXCd l^V-Y@"u̓}30 PF60ż{^VgROz7Zq\;7p?(?BJ8 sݜ]=-DڦDdn)ZbE`YÒ9OV׌ چsxW a``Kh]v!͈(/PboR*awJe~\]k.4ƀwP 8OI m5X\X\`]}*Gq4l"CH7 =g#&CDA ̟2dޠ$DZ&HHHHCAHMR:R&HSI *ǜEkEI>8$nORĀ!)bEJcm=[t"!.`MxY8j!&XU/]9q!+x?S} YT٦E$L7gn̠@͸Ml崥pO&3 ! uU H;DsU #T -XNv,O%TRmqs FA 3.bY ') &_\bCӹK^%+]kƌWnoȆGߵUv~kUjYY /Fv*f `PT!K]w .6Q/Z.cR{O#Z(=%MP5G\tTi𥌛$ 2d)v`pMY@oY6@#7ЋF` q ȳ"О+J fܲ 2$H?H),ʦU O@kѸXMgF`X/) &a`4icE*D`t< ߆ {\HœLf2:!IA0 FF!SpQTۃG6vÎ*f=I-vWO{ B\0&0R/HDvzVU, Adf; MޓynfD+PmH*Th0ٙ{|s*8axJ"HZk\{!i0+-A#3Ljp[ԣj#.ʛ;/?(yLaBᄡcc:- J`@3+w1`Ҧb6 %-q$` 3ɏmMbQ gy3@j?}\rurYz2;"mAA+wPARjUXѧ[POS:kʼnr}0BFt&I0Y*jCq-[kp@)F.FBMѰ ɪၔI*Ec26ɐlDB'rn|_[WH㓜cݜ@Kz`xNaqQQ,ޞ4s}rv3:_Lsƫ(3{go|vQVh#xxwB'w3fH g¢0zT5zb'$%)ۼLURLxi'ΒXu>^w@Z$K 8]2$,;nv^wo?cJ|z\׳ ~gx K[;S;/qvowG#vgsotOER:/C|,tDnI6>h6Mڙ(*n8_q~N4pڙ5}c}6,tgWrT0<`p;CPbBPp :y3֢<6 t+N1> zBfD쇢J 7cHszBaD (v@-;͔ɪf)KBR'f4%RgճZwڭOg>Ree]>5}IF~]*} 3W { <ؘw"qVh1 @A"FTr0eU!^qF*>2%%3rUՏH( [(ݴm١N@%*V2zv: D>q"؏5tB)N"+9F7pVJy jD$e-1V9^&Ł"dL- lo%Os)},Fȋ9ϔ HYN|:Fk3`eEyI_{s9 y0ɛp&z .Ϡ@{IUyz3mQxHYb(b'Zou-S]K$\3u|~LzMKŏU"G) Lt*oӂʓ6X8i Y/qC*xSL  jgk3#9.S7qLe5MJmҳ0Z\`5mg!ypNP옧l4$M;~s*&A){+Cq%o(j{[9keY)qc Kfy FbW )z#xWfa~pFV4F-"NIƝW;O8v[IOuҨ Qf: 4,4E"t!?tanLIO.@N._b:M} X?NopD.}Ma$[8np!Rʀs.C$kAẂyObezOc'Bs1P{HGr:i;C[ }jyT`  fɞnB,3X@ 4~K=:R / ejU]۩(ȥ 4c.{);P_(gqJ1ŃRB2Ub>PM9ER' @HDHqTY>+#!; |*KUzUcB;0F 02hYAGZFALɡY_ qR,=kF| h9Jf{z)svrP\,g'rd8?/*I}h kQdy;7+BmXVWR=#k[E+M ,5Z`2_F|ȼY %Q2 j`Mm_'L*,jV!2 }!RJ*H4*iXeRWgܞN g ōPL:%n]6$#Xz:l͛%RIn"ߴDS9RLc΢6ș(}!'QNyf .ʶԅh;8V P.́YĢ@ՉtlmH7B¨PRGe!l<wU9.fXe21Y;H8dHLHsrV 29a/(',Y/.2# dQ'O(XO$TP 9dQc{R cfMJjh+ogkg*-I40Be*|VS'I$'BCk'R75>']bDxD TMĘ氷za7P L>Tf.Z7DNb"r4L9BP.L|:*o.NyagjO5U CxEz74W h>dG_YjW7 9,-Hut49&R<e%\\FE؏MQ9Oq7!q>aP!p?7"Oaʫ쨸p!bDJqQXubز^p5 3''r`qN\KHnqk}FU 61)t64Ip) ;9%~hPFKX2r Yʁ ce=wW@vU(l0NvQۏ]l l3JQsB (ʸ{̥=-8Up+2#ع{52M| + Lb1J6SH].ZeFemi:%`>{cy!4쫁-Iz!RwhiåoSEeGBe[D\PATZ TY*gc&زb$aJā\Xd+`^ #S E`nxvd|BELQV& (G ) "Dط&ΕN/i:@@haKsZTNNӝ]AV'4ߎW74'&up mF"x4f^"Qm>cX ; `@?:~1q?Z{Q)릱BDC"4K?qHpId)xÏ[Quqg6@ 5)kjaAT:AtE\Fihm)7xqS/q2 p8[HJ6 Ԕ:tK0MuM'z"tP2[#N`NaqI"!rM9'!d,w ZTݩ%*LՐᔉ7+:LO@ărWX^mU>~5N#s֍Qe}8 C$ߴ)kh& )Tא7b8rY<[d^tX w,%*G)cOܢUxwz0rV`)KïҎ5hljv+|3-rjTc QDƨJFewXoJzBSA5RɰIH~|g xqRT:O!lR4%ebBL@u8N5赮j$jHzV d`+9cHlɏtC&tmJ%7X ʀ^B \cST. |4yF_P ̨(@7>lsWjb)0~@&͡BjIA3s;"Kò%^\U51ht O;O\DѶ_x*fFc{s c;=߄Ͱ1Ugw-hH '+J1ɫ+Y-[s a_hٟIBru.-wp۞\V#JtNILHCq8Ǣv껉ks$Or !v@r{NFKCdMbtbd훸Xn!EAxClS2 'r\`Qy1(5r8RĎދ[d!-)/l0zĸFЬ m80X)'`,f!gVU&B` ٨}wbƻoaLkLl~7!N D;h~s2bSJ4|O7t16U N S 4G3;-1TDP݈ݘ\YN(6G.Y$6[ fGNIp7 %Үh@,54O$ʓ V`?gN'@lf_Ta![0 PM!OxPz#w5/})9c>q\qO:1C,\DWj-C'N\Q\-Dw !nD6 88]sѶQJJcPqS nU ]Υ.rGΔS=x{Q9M&=øS2GpYw =n}nF5oD =j/9INJ!*ANZE'F\GXaP:{\meӉ܆ E ɒH U[;Ebۏ5jP g9,Q'!E#O{a࠷Io1y~6*ƱQ l!"ݥXst vPLcX ((n+p͑4ܸTQr Ug "s?ID{5W!HznFg5e/ ShSqyY"!BC>\3W + jA2Nw<'2GrF -m5RPbJ-ö#L끳D=ʹ` K”9 I 3Õ\@|)]M{ؔ \+i`+&q#"nN1B)*tsZVsO41 .g@m*+Zp$κ.-S$čmi+ 8@iئry{1N[)aGs*M4;?)Bx5 >IIop,uV!ڝAjO9ff Z,^uշaFq%U?[9;45}R#劣zwFiߜG 6,@lSx+bl⟯"~1PTVeAr{!>3)''Fu"WeshmgE7\[ՐQ|ifEQLj \s>;f~>T͓2Hus:&v K04#/FDs~$ȶq.&ݡ 뭽Ӛ\T@X3tP]ENJК@ݝT<*a{T w'ZT`Q.3îY}:b\KHE IGXPJ-qF/C"@@#hFWa}eDWwG#b$ ]+-b] +9xPס,'&k ?g7ZP8&5suތwTAd *w#O$ |V׏G3@KdUs&~]+5RTM`W98FLf EVgV m63zVXM[׫]TW+=ٚ\Z y6BXx3r4I%9LpW m?4 ZfMb?DŽCU&9eYA]"Dхmdp>I 2~ulFbMʜ0s p Z/3ɪ<}MM'fJZx?h*AG5$:HaT<MA \Xr\:6@"NH6͢x5ektp< D$}dĶ3,Gѧrˬ.ljW^@azqy{n64xc_"RPJVJ,Q&_a ɳ%,v>O]" 'h+%vqa_»:o^d\b!e5Ur7Ufy!n,n]MH( *;sż]..o\߿zf?=I-%$;";ضx'C1@w!0 Oap<ýɾkNLhEr)>V -T ht:X] ,>T6N@  J[, Y,"iDFvUM_4 eK$,,0z.Y4%GұG#fTl" lsHž9RW c%X„ʇ?|'U*iU:mK X"y /&Jf<qцO(iVF'A^O,o`2E:B8m甆 6u!Mśfeۥa2ZxT8S7бH}S{iBNRmί!4΃3@iErC}K1P]FQHV52PIV*;jˑ^%Jt[n$ۥ`  /IgC7%P/(*K&)"`8650f(CC-Ő3 :<-T*@R :NDt㼆ϒRBwh>rx{jWJJ@VN|#J$DSh~*'rpGZ,B34S=jx\F286Ȃafn~8oV`HfiDTO$Ågoە|<@ML.?3(: k`&KKg ~'u!O8lI." zPPx[^KGIXO๐āSdt #@Y&V+; #nSUN(F/a 3,I@DLl#7l{Lfs[Gvɔ-fEAkZ1\&Y(h&O6z&,g^.c&ԡwkȉ=!*F'!,AL]}Jv9O6nlJ4U{gi2I˄ y}8)3:lޗ⍚G/ xʼnPirqu^*!I^P8jDEdȽ`|!(hYR\ah% ih@ "  ڴrs RÖCa76WqEL($[&A! CXnq4Ui4TeL~6Le_?85Qj0FndnNXB'kVw3o*~ ~F'>sq}Fqk E~«/hU^KvǙF3h_q.Jݨqtp뢘Fi1o?@PR+S&1 [B'Jk7![ aR3w!yTlpk i A.:ڽU<(2 Fq((MYG4qTI6k.BA4X&|y)[rF7)uU1E!f,Zj`0!#aAn  xl` NtR|!MԘS(k9HpI )X1 D@2LbRD41(ZcF+߄WB/~̞ {2xMS>)X 9t0J6;^&Nբ_ qZr26z( 8L z#D6߼ڄZ G pLkM5BCG H@6A8O*&l2rEjyI#ṰB.I"hӧ,*a@p2zc>qa[C$G1&c  BaY(- "ńMB$D"dRO Bd3OsGh2 ~QK)Ps}V[_lJm!nҎݎRЉ͎ ׌,H2!ȱq>&˿!:gkǫ9]mdOjNFh%c)Uni xQ*.3 9,#W$AlfW1SpH0ynR<G-n*$D' Q]TL /A(+<'\}hzp4ˎih7Z8%e-a) [Ti1VxD K#!/| "MBV>khY͓[TgZĪ,TT*TF5TTy(x r.'JҪī1 xw6rUzMMt(Gwt հ@aZ=9},ߡ7ӳ2pW82.[];/SE@50;Hjœe W3i+sEi4dj0d$1%#.=S C;B 0 ^O,(@X&BT0D٬DI >Yʰ!0*o\=׸*|B}D_΂FSeTQ3kEL$!!h2:܍3M5j`_K!+RV4{i]W` ٙ@K&qHbʳ 4K 8,k+q򠱆'šL ~]; ,As封?uSu˜ -t.}WM:?$^#e [; Zy(p#0!wYx.ߍRN;kZ,]WN9XE~qHNg D[_qJ90x# !`,#(E3ǏUd@ KKOn= `Rڋ, ǷdSkw>[E6aQn4V@!" ]p 厳 #x˖K@AUGb%@W5^u]T&03O¯|PiR:iTk}K.ŹBHR豝5ٲM&WFPiQO␤/ǨQp-n,Ǣfآh5tcDKC~B5@NeƊaPīLҳlO0;(SE`!mv,/dL[ӋJ]A@+# Ӽ`vCI/qw$1#rP諸yGpruhiO/[79(A,Jp~}y9Wg;$=?~1C O1+v0"j!Q aaRݣTum0A@ Fr[68`PqpCd7^~9>ǻÁO/? X/$q^Xs".A\ g4" 8CUC CN*7ͫX.r9Z>,|+1S R/1lns 0t= (tҧ=HT$~jC2Q0@W'X Z=d4FZA=2 !x OU*:WtN-hy–u(Aq{-C(w"A.+Gza iUYAH0=eREuҳ R$rPTEEaɯ!{Ɓu^= [ =" $#Q|ki#ku^%H6`%-3Ap8̂LhDq D 9dl0ݾvPDm2+U>D'xjՙZA:mfM%XEno*0Ji rW*!WG nα=NgΟ=pZWŗ71bq鼫ˈG"<,Uw ֓G:N*C 2o qǎPED!|d A\% wJaDaLmSqKd'خ4J,~tB89l0oƮF8215MyȒ~1C.xHGlMziRITSXP:ڙM&"x)2@*I b9YtʛE 4|db@= ;9xS)jmXܦZfĜhr . k+ t4oTA9A~i3+QpZ8P|}7>2^قtY=榣W*轭^*yjXeJCQ8dyOǪ $#v;]qD;8@6 _^\!\XQ \8d`$Н`sY|_d(Nk9N-HꡂBʕ }`Jqai+<ԧ3`"z/$qX4y4uzx$|n&Q>7nb7,9_q yR)+xAGM)6 ^{͘IC.$ xQOf]؈4ҁNzy4\ώ >kK*'Pf գN1 OFi:ARy#?ZPrY^U:ƺ^}26'#,U70Q}6t'4E45Tpv%01w1K^4&_ݟ=!7!gaiUIKfيJc@I/T&L>Q H?6F4@J4(# 2@b/8jPTD۶ɚX~Ua{"?XjЂt?T74a`5z>,5 b̀' 1# ъ,1KѨߨWV}4:r d?w\ ^joVXk ĬG@Vf$\ ύCtn!BYMrGT=%kqcǦUr=%"0iLo*JvY(\,#)VZ&Y{2oY0$_J2K&ᐚE?ImnlLa r([2&{K2I:zU Zem 1_" 0[A4=[; \u3dEXan r.6φ}I,ao}r8vjڍ_L2y)J` m g%}L҈L[W c RIgU%a?`c 8 5 E%fYD(?lꈋzvk01<3Ql0gWǥY$V 1M) )&DLJ\ۂLjrJiPDT=,)Y?+jh6Xw:PG,#@XズKYEc˿`?g&P\l! wI4UHˢk p?TO{P0DSp[Ϋ+:,LE:N%P0P gp*NaGI؎ F PD:N2M]cDm1xpL É" (x٢1ތ[nUoҿrK~~/!PmrOM *P_E@$)_Ch=wI oCPb|0*]JbRG "5ZVR4t_d INH_lzԢ('6˅ۡNvLS/4XRwb/$,z` Y iC?L+&Q7PPTG$ Ki  M@(8RX48nutEө G~H쾄f!V곋C\O͆]eR; <$e0- /xy 1]&Z} op9˭𢣂 ܹAT5Fb+Im4 c&D)&Ae{fH=J+5˼ud`` "oFD2Qz$rVKvMNɯ-z p 4Qc'=gZI!hH/;l?Ux M6'7%J4,wfPt/HF#;b9%XDH7xL!⽂+1v2w0 $3'ץ~anJ G`Arrt$,*2j*hN/΁+2FXΗ˖8d' ~Shc큰5x6Q:y ;OC?0hYJdISDb,>jCs"- t6JmzֳK(LJU<`M,hAЉL`  :.G?QzhCh(3$#plQ bK0>bFb[~fN( /OlIB5‡yӗkK}U!Sc= 硓[7%Wcmt~^Ɯuae{ggsF!)jQ5b|εbyA½DK]p)OU֝Plh Y$}ڷ-L,Ǒ:BW+K0sq|p?s"&~Bm3>5@pPUOy.KQOsqюIQm#hiG ˇGM:ͅ%BSD_ S'? T 28CdEo.l@uG\кME1#d]xuMf]$cSOྲ:$0(e 4εa mGr.Uś]t3\mՆ@mŧ( RQ"#UVc(E0'$[ $)Pa8>Mk9<\p_`g(faGU%& g`TX[Z=B#5V?+.I#ɂž/l& )j7;9-4 j4!$b&^z* dz"³@ [UK+?*Pw& ; dhm}8_TJ$(l}zA@aHYAIS |v9䚲^^S>Ay}|52'@_Y`gD^`uљ m)dVP CC:ldt&hf)!T,>`O&#up?=nvh]>7B Ëbڣ8)jai.1iz0cZSSl,Sd HC]nz )4d</K1PSD*W-4 rqE%.+W6HUr+0x0VӷdH>KiS& [>v/8]3`ќ3q,!q#6 Bu9nzbi5ЙGc0$ͅ_L=@& l((esM܆XɰגqR8U{d1BX#E2L $ؚԓa*`}wn oZܱ&Dl\8Nө >_LQ!~"}>Ė!w 6p $K<E' )?& m[1~.NJ]Rg`J!{ %bHj=]SHNt<-qAa P Zaw lvA1SURaڅ"ҏ"Kx=A3u6LW06+cqd wz6T^zW9ǿZЫ6e6hVlŌF)#)6w0sHwOD:4 &Ac¦4PyT/LX[>+^DVc~DO֓zSHJÚ-$szV)%#\C7P@%n6b}M) &}ڻ^X~A8yٱn(" Po7t0UF1SH2o7R6vo0µ89ຒN °;O'uXyeVqPsT0Kf-.87#pkzb) +k|i4OXߎJ5&Z&/~kCӈ ܖٳِ W ŨlaMxHv$a֯*LCOaBr0v;bpM p `djHw&'{VL2{3R)ouQN3bu8'Yޥ#ЙєQpCL8"Xe Aѩ>+lY۸~؀ḣ$7(M'p~FF@"&s)1Hkdsf w5{eÕ-P(á̈-IZ^\Y6Mk4 M5tz 4MvŻ5ަMIL1~s`كQy"ٮ O6 " f" \8f e4Jfp=r.EI;? ՐnSҳ<ʩ+]yX) &3x'HyS[ 44 $g͊o;ᅣÉ<]2Ѹo>ҡfWg>ɾHgfX .vRtp}<*L]!1!5(d$Ti\_7ϖ\ >TcbB`> ,#۽;35w q nfӏu?ۺeYfSڵA oq龃;#oʓBM<|3ffhm /B4RDa^i Ik\#)4 4V4b2|KOI|2õ7^FX>2ɧ6]|d]uf? ̍axm+]=xD]ڗY"&GDBo S@9Y;r:+PpZhC}2:~zI^Q(9T"@IE]FCT)@3'MSl (J"=ƻT)m,Ki ;U$v[NQEi YtՀv냝Ui'&(FnVL(J\ u"&gG%uB)e0MNɛ٤K* H(A/;f· 燙zag[P&DJ+\"K.΋x8r йGvTp81rrJUV A){(~Sv$ ^ijiȚ"k`Yix B,j} PuGC-=!@{6,;)AH!AEcXBWu@C)E{Z8W$UEթ2 #Hó#ƑGwL# E·K\ Ң@ZFjYn32<=7[n.ޞD.uf B>X- | Ģ0  ;%IC@W@+?3yW -\5p{98B9ړZm *)+br%' Jaz*R0\LbKPD&ECe\?6m D&II/jh0?<|gC$3F SCy,"JgMY."'ݕeĢ:U1-y-x>Qz1-V;^U FAm%7}MZ-tގ" Iګ*3$T-WeK-.z |9'+s;Z%LbM-vAߨ8SfqIs L L@-! 탏^q8(}P7dqZ@Ik4BH&_p:9'~6Ғyy’ $64!j(x ) G' /QZPbpqEKiB@qxՑ_tl R*I=mqTdȅẎ? $!aJ6_Ѵ!1 h Տ]Ks=lmgѕƠ9Lq.X̦Igbٮ~sŖʍ*B~]p#g`3k%L"WlJegށEZ(xbT+*NNP"s=AN +@(4L # \N㧭>K._XX2+A`9`RGA`ĬZĬi0 |VY&u :A -WTTB\X7,жdsGbCsGOITGp,P˱(BxNAJO%N0Rx 11z5P/_ jJ+|esѕ Z/*H2*NvXBaѐ< "c,]sFf MfF~g Hn2XՃB{BRL0gl67v+fwg&%.+ ~s@{4L%K(V ieS0,² 1`7C^n2hE!ti-J} lcJ4cZPFJBq=nuW ?IQ#.}ȂaFJ`;`+/mly^_'fJpl ۧM' 5:-.,V~$ m%9vp˦D`Gx2ڶT߁|ӕ6~$Q.dD:)Һviɭ,HLr;" C( Q|!v^h%j!PRb,\yCImImSN s2Ǎ 9_V,à)t]TRPәȰNK"_c9Y'`Mwph߈ 52$xtL2bVV?X<{SA<2 Xe!5'.X`ՋQߘx;$ ڝf*l JCW)W < .˩gC%O!a X"]2E`$"9rP m݉ aB@3  I5$HXRO2è*ہѦ+9 QSY .sG%My.]Ʒ^1O#ڬ36>x(R̠TdaLi,X`cmapB*>cvt Hh@2fpgmS/@egaspC8glyfC@head6hheas$hmtxXO<locan<maxp name?post-pprep7XwebfQ= =Іc^N }~ .Hlatn TRK casekern 6}:^p`<hV d ^ T 0  \L>V0.Vbh tv, < X !j""h"#.#f$b$$%%x%%&&P&&&'Z''(,(X(()V))*D*~*+$+d++,,2,t,--2-\---..D.~./ /2/\///0 0B1 1:12|33X344P5p556@6n667D7r78888j8#mo}uc@(2R=====q79:<IHRZ!qqq\' ""&&**22447799:: << ?? FF GG HHRRTTYYZZ\\mm  $$x$,  7799<<==]]% DL&&**2244DDFFGGHHRR TT WW XX YY ZZ\\mm  &@Ho""$$--7799::;; << == ?? JJ ]]}} '2"* (,rz13 ##$$DDFFGGHHJJ PP QQ RR SS TTUUVV]] )b ( 77<<LLMM*&-@H&&**2244FFGGHHRRTT YY ZZ \\ mm  .HP3y=H\q\ ""&&**2244778899 :: << ?? LL YYZZ\\  /@Ho""$$--7799::;; << == ?? JJ ]]}} 2BJ)q $$--;;==DDFF GG HH JJ RR TTmm  34<o""$$7799::;;<< == ?? JJ MM }} 48@&&**22447799<<FFGG HH RR TT   5@"*  666BFqqqq333HH3H3HH\\3HqqHqqqHqqqqqqqHqHq\qq7##$$&&**2244 66 DD FF GG HHIIJJPPQQRRSSTTUUVVWWXXYYZZ[[\\]]mm#}}$ !#$7F$JJ8~7q{{\{{{{- ##$$&&**2244 DD FF GG HH JJPPQQRRSSTTUUVVWWXX]]mm}} 9jt|2\H'##$$&&**2244DD FF GG HH JJ PPQQRRSSTTUUVV]]mm :>F &&**2244FFGGHHRR TT mm   ;Cq\333333\{33RR{RRq8 ##$$&&**22 44 66 DD FF GGHHIIJJPPQQRRSSTTUUVVWWXXYYZZ[[\\]]mm$}}%  ! " $%<<D&&**2244FFGGHHRRTT WW YY  =>FH""$$--7799::;; << == ?? DD  b (q ""??YYZZDD&. f ""??YYZZ[[\\]] E"* FFGGHHRRTTmmF&. f ""??YYZZ[[\\]] H:B3R==)  ""??@@DDFF GG HH RR TT VV]]``mm  I&. 5= FFGGHHMMRRTT  Jb (q ""??YYZZKl& FFGGHHRRTTN(YOb (q ""??YYZZPb (q ""??YYZZQ&. f ""??YYZZ[[\\]] R&. f ""??YYZZ[[\\]] S$)MT&. )J DDFFGGHHRRTTVV  U4VVV,W"* {FFGGHHJJRRTTY"* FFGGHHJJRRTTZz ( FFGGHHRRTT["* )FFGGHHMMRRTT\$, FFGGHHRRTTmm  ]b ( ??IIVVYYZZ4??&. f ""??YYZZ[[\\]] 4)qMM8@f=DDFFGGHHJJPPQQRR SS TT UU VV XX]]  H08qm.&6&Z08}}$=@"* ;,$8"8 ()D,4f`Hq$Z08}}B$, ;)Z08}}*"( `*2 Hmm8"Z08HR(0 \8 (X.6H6&f6>q}}8"<&f ??$?8":$ ??( > ( ??`$, );\ *"?( ?&2") $&4$ $6& \&. )H ( $$=M *"$RM>*"$=M^.&{)) ,4\$$&&**2244;;FFGGHH RR TT    *"32:H=qqH&&**22447799::<<YY ZZ \\  (0 q &&**22447799<<m*2 {$$--667799::;;<<== ]]  }@08*"$, \q&&**22447799::<<?6&. BJq3h"$$&&**2244DDFFGGHH JJ PP QQ RR SSTTUUVVXX]]   4$, \&qh ( $$--77;;<<== *"X$)=77<<IIJJMMc$J"qq7799<<MM*"`&f $$--77<<==#,$( ) ( *"r$, \ $$7799::;;<<==  8latn TRK case2case8dpng@fracFligaNligaVnumr\ordnb ,4<DLT\dV$>X\F 2< (H (HHH$2DR $D $D 2R 2R {tuILLIIOOILx9$%&'()*+-./0123456789:;<=DKM]08 {tu tu{~l|l|$2DRc33fP [DAMA ff& # ,  ~Sx    " & / : _ !" Rx    " & / 9 _ !"pL7   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvjsgwl|cnm}bعyqz#!!'+DD,KLPXJvY#?+X=YKLPX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DdU./<2<2/<2<23!%!!D $hUDc + 3+2+/ְ2 2 +/33 22+ 999901747632#"'&632#"' LIJN NHKL PNPPHAFEJM NGLL Lu  fy  ?+3 +2+ +2/ֱ++01>32#"&%>32#"&f#>"#@##>"#@w#>"#@##>"#@@@m3bBFA//78@$3'CD$2A +@A3 +<2A +@ +222/&EF$3  $2 +@; +16?222  +@  +2G/?ִ9 +9  +/ +9+ +6 0 +H+6?+ ?9?n+ 60??+?+ ?+99+66+00+&0+'0+/0+676+989+?@?+9C9+6D6+E6+9F9+09....@ &'/78@CDEF................@<90690146737#.54673>323>323#3##"&'##"&'#&%37#m!;#;#9#;!#;!!9!#;#9#55355/914gg/h?EA+A +@A= +:+'/ +F/ֱ, ,?+2; +2; +7 G+,9?9; '1999 297 "3999A9'"7$9 99017>732654./.54675632.#"#"'5#".h!VV';J#mDnP+ѹ+-+/RT 5@GZ:#G:$1>zNX1+---Dj`^3;yB#Xb1@(/?XwV #wr  !;/):' 3!A\e) g)=I(+9+A+++/G9 +/+ +J/ִ ++  + *+> +>D+4 +K+ ($9 &9>*!9D#/9%$9( &*4>D$9/ $9014>32#".732654&#"632#"4>32#".732654&#"g/`fdb//bdf`/EJJEEJJE]FI?N!HAF/`fdb//bdf`/EJJEEJJE TyJJyTTyJJyTmlo X TyJJyTTyJJyTmlod3@/+7 +>/ +(3!2A/ֱ4 4 /4<+* 2*< +@*% +B+49< /7$9*9>799999 9014>7.54>32.#"3!33##".%32>75!"d+FX-LnG}`;P?Dj%bV1P;]-Xjɝ_B}byFoJjL)p\\/ub \@#;+!15!@0js:^w?fyo #+ +/ֱ+01>32#"&f#>"#@##>"#@@fuB /ֱ !+99014>7>32#"&'.f'BV/L+)RNI88INR)+L/VB'q L))L!fuB /ֱ !+9901>54.'>32#"&fNJ77JNR)+L/VB''BV/L+)R)B?)LବLJh ';+#+2(/ִ +)+ 999!9901>77.632#"67%.J-TP#?%%))29MPT?#PB'K!?mT+L0L+/,A#N"o1b/U/3 2 +@ + +@ +/ְ2 +2 +@ + +@ ++0147!672!!"'!& A=>?>B =>?> ?>j  =>?>  j=F5 m /+/ֱ+/+6=+ ..  ....@ 9901>32#"&F#E!!N"#F !@ j -/ /ִ + +22 +0147!!&j  1B==@B==99 ++ ++22/ֱ   22+01747632#"'& LJJM  NGLL JM NGLL L- ++ / +013632#"LHFI JGF ? VLB+/ /ֱ + !+99 99014>32#".%32654&#"VBʌɃ=A͉ȁ@3|hhuuhjziigg^;2 +2 +@ +/ֱ+9013!!.5467!&'&L7%('9#9!9##9!9#e367s5L';&+! /(/ֱ )+!&9 9999017>54&#".'>32!!s+FnL'ym-C>;!'1TV];mJ)Jd>l X\ud4V^9x= /cdJR=732>54.#"'!&547!32#".R'NZBtV3-Jb5#J"> XPX/Z=aXZF?1 @bF3L1 =>B=#>dDDžC!}VL/32 +@ + +@ +/ְ2 2 +99017!>323##"&'!!CF9Z%#B"%J% #A#%J%P+-G;@Ahw57+Z'/ /2 +@ +/,/ ֱ" -+" 999 "99901>732>54&#"'!!>32#".h*HG\|M!;q9 ) %9duAXP\fL?|;)CX/ht=>B=7mhAu ,b+$+ * +-/ֱ! 2!'+ .+'!99 999*$9990146$7>32# %32654&#"ub1 s}P4G^>XyGXb1ub^y\fy=F !B"3:JyV3+;uw{@+́uyh7  / / + 90147!.'!&  J? B=I6/`=`m#/;t+' +97.54>32#".%32654&'>54&#"`+HX/PhEy``xFjP-\E.YcbX'ujoqbb{+dPRe\[ZZN}`E/iVb66bVh1C`}Poe--e`kjab{!!}?VddVHXX^fsL ,b //$*/-/ֱ! !'+2 .+! 999'99  9$9*99014>3 .547>7#".%32654&#"^Xbc q}N3H^=XyH/y\fzuc^X{@պ!B#1;JyV2+;uuyy/I + 3+2+3+2 /ִ$2 $2!+01747632#"'&47632#"'& LJJM  NGLL LJJM  NGLL JM NGLL L@JM NGLL L:/ +3+2/ֱ22 22 &+ +6=+ ..  ....@ 999901>32#"&47632#"'&:#E!!N"#F !@T LJJM  NGLL  zJM NGLL L47 &O j HJNP1#FC#I)PR{# // /+0147!!&47!!& _ _ ?>=>?>=?>=>?>=467-.5467&kP P#ED"J)TLHIPX"2o/+-3'+)2+ + +3/#ֱ+ +#+/+#+ 4+'/$9' 9901>32#"'>54&#".47632#"'&X5ZVV2Jho"HBD=/gV7h+D9< % LIJN NHKL }``; `5P!+ LM"!!"LM....!"LM....@)F,6322>54$!"3267#"$&%3267.#"X"yT׃N=gBrV3\x\N/LwP)qXsjI" %fwB{PB);#X'DhJ'u.T{N/'TX^JZTҡ҅=-`/  Z\R =e3+ 3+ +/ֱ+9013>32#"'!#"!+N/)N/TPNIRTJCLs\? ' +j)7m++5*) +*8/ֱ *2#+ 0  9+0999#9)9*95 9013>32#"&732>54.+532>54.#"BqȖV'BQ+/rcAd{^L+^R5)Lh@{[3XA%+CT)9( %XoBpT7.Xbc% 0TC?U3/P=;M+j =++!/ֱ "+9 99990146$32.#"!267#"$&j_b`)HoKLrH#jb[ݤs'=v; 9z='q1 B ++/ֱ + +  999013>3 !"&732>54.#"Vsglh9)^wFFwVL }+ss/X++ +/ִ + 2 +@ +2@ + ++013!!!!!D   V'  =@D=B=B?{=@D=@++ +/ֱ 2 +@ +@ ++013!!!!#"D   VNEL=@D=B=B? h$_ + + ++%/ֱ + &+ 999 99 9990146$32.#"3267632#"$&h_b\)HoK#7LHHMjV[ݤs'=v;  -'q?+3+ 3 +/ֱ 2+2 +013632!632#"'!#"LJJMLIJNNGLLNGL B ? }  !++ /ֱ  +013632#"LJJMNGL ? 3M+++ / ֱ  +/+ 9990174732>5#.547!#"&'.3#5#N@+ H}d#i/;^_ )OJC!B;qe-  # +3+3/ֱ +01>32#"& >32 #"&''J'#I''I%%J//P #V/m/X#!O2;9 ,++/ֱ  +@ ++013632!LFHM A#?!?# N+3+ 3/ֱ+ +999  999013632 632#"'#"&'#"9RLPNR\?NNHENEFC%=5B=B L ? L H+3+ 3/ֱ+ +9 999013632632#"'#"?:=B:JC?32#". 4&# hLKKL=ݤss礤ss^(L++% +)/ֱ 2 + *+ 99% 9013>32#"&'#"&232>54.#"^bfԪjjd/'I#!N+3bL--Lb3'% )qȠs)'>dJLh@h&|++&/"/'/ֱ ++ #+(+6&".".&#.#&.ɰ6@99 99014>32#". 4&# >7hLKKL=  ݤss礤ss+;33N;}7'K%+3+(/ֱ" "+ )+"99 999% 9013>32#"'7>54&#"#"&Z`q۰l)?J!#g)Z/NL1RL5t-%%J##M )hR}^C -D`Ay%H<j8++#=/ֱ( ( +3 >+(99 #.8$93 /99989#3$99017>732654./.54>32.#"#".H!VV#7F$}FoM+Grhd 5?HZ9#H9%1={NX1LӊDj`^3;A#"`b1B-/?X{Vhm7%#wr  !?3)8& 0A`eh{F 3V: ++2/ֱ  +@  + +@ ++0147!!#"&'!&3  %I##P) D?>=@D===#7+ +3$/ֱ + %+901>3232>5>32#".'J'#I'7dPPb8)J#%K'1դ1<}u88u}Ėaa=++ 3/ֱ + +99901>32 >32#"&'#Z#NVBE)L'%L(%+P-)M/ v?!Bf+3++ 33 + /ֱ !+6+ .   .. ....@901632>32632#"' #"'!J^%K%)F%=H?D)N%JON\1L-?J T q ? + %/ +3+3/ֱ +999013 >32#"&672 #"&'%C)P'JP3H"%H=PI'P)@/H%#H3 @ D0++3/ֱ + 9901632 632#"&'VWNM#LOJT5)I%#L' d MNo.+ +/+ 99017!&547!!!Nj F =?D>V=@D=fZ59/ //ִ + 2  +222+01!#3f 59>E=953 ++ / +01632#"'JEFNJEHJ ? fZ5C // /ְ2 + /  +/ 33+01473#&'467!!.f 9==:5s5f+/+01632#"&' #"&fDDEBI@)F#BɺDB & -3 + +/+01467!!.d,1,1% + /ִ + +01>32"&')L5dTDA)J  N; /j+&+   - ++0/ֱ!!)+21+!99) $9-&9014>3254.#".5>32#".%3267.#"NTR;H!9T4o|ZNH́h}C-@G=9duLbP#1># +5^B)%Vo5: Hd$`++++ +!%/ֱ2+ &+ 999!9 9017632>32#".732654&#"JFHI\\sAR-dg^7^qRh# 7HAɉӔP muT;%=!++&/ֱ '+!9 999 9014>32.#"32>7#".T?-LEF+=];w313# RNāBuɗV /u5 )mI!TT+(K++$)/ֱ  +2*+ 999$9014>32>32#".%3267.#"TL{%O%%H##I%`ǍmƘX+)Hb9#9#)3'DdAuϗX J<͓TuE a 7\}X);$]++" +%/ֱ  +@ +&+  99999 99014>32!3267".%!.#"XBoy=XFA ɓӅ@!eZfk u͗XMj'L{n)sA=Rbyr#7(B"++3&2/ )/$ְ2 2*+9  901467354>32.#"3##"'#.#;o\=T10)HZJFHI13bh8 Dl5 Dn-!51 F!5D9;O[+Y++7/?J/.&/S+\/ ֱP < +<+ +/++PV+!!2 BB/2]+P  99V+&.7?J$9!/0$9J?299.099&+99S (99 !PV$9901467.5467.54>32>3##"'#".732654.#'"#"32654&#"DXI/7B?HN>uhf:'rc ;siXF#+BZ{{l/tc 3+$#GNXVLLVXN\w-TBNb-3[Pd9?1333!B#9/Pb92!)Vc5'FfN7RE& '/TVccVVdd7&B$+3 +'/ֱ!2!+(+! 9 901>32>32#"&'4&#"#"&#J##I%/Fb@%I##J%ET#J;'%J"#H4/ ZXov;kV3 "y++ /!33#+22#/ִ +/ +/3  / $+  99990147!#"'#.47>32#"&'&3 JEDI^ #O!#R##P#!Q# 76 F;BG#C#!E#Fw1+ ///)3#2#/,+ #+2/ ֱ +/&  //3& )23+ 99&  ,99 90146732>5#.547!#"&467>32#"&'.d9!;+ Ļ3j'OR%%RO';i/+N@);76ŭ !9)  )9!9+  +9}3 /+3+++ +/ֱ+013632#" 632 #"'}FIJHHJJPRNI;TNHO ' 7  9+ +++/ֱ+ 99016323267#"&JHFI1%'!\'fs ?N+PL ;9k8+*33+330"2:/ֱ6+6,+((+;+6 9(990 99013>32>32>32#"'4&#"#"'4&#"#"9##5 5J\:E)sJGHI8T#C7#JHHI7T#F7!JGH# '+)>1Lp^ Vov7eP Vov;kV 9;&U%+3+3'/ֱ#+#+(+%9# 99 9013>32>32#"'4&#"#"9##5 :K_9JGHIDT#J;%JGH# '+)>1\ Vov;kV TN;D++ /ֱ + !+99 99014>32#".%32654&#"T?}>>}?'dqsddsqdu͕VVuuȖTTtf;#3n+&+3.!/4/ֱ$2 +)+ 5+!9 9)99!99.&9 901>32>32#"&'#"&32654.#"7#9< 5L^:Xs?MՇ#C'H"#H7H1L83G-  '-+!@1AɉӔP)?mM.'DZ3T);&a++ +$ /'/ֱ + 2 (+99  99$99014>32#"&'#".%3267.#"TPލsZ%H"#J%#I0hX/'D`9#9#/!uӛ\7}ȔTqC [/&M$++3'/ִ +2! +(+! 99 9901>32>32&"#"#"&7!; -b6 7#VN3%I##H% '++?e6#R%>{nRf;3k/++4/ֱ!! +*5+!999 $/$9*%999/9*$99017>732>54&/.54632.#"#".RDyAD9'<5sPP!1wAFN83t9]B$?yl1SKJ!7q5 +"1,%!5s++/-%#/FfJL`8X#X+2+ "2 +@ +$/!ֱ 2%+ !99 90133#3267#"#"&5#/'9'< ZaŅo15 `?N- 'S!}/?+ +3/ֱ ++ 9 901632327632#".}JGHJ8R7L3JEHJBuhV: Tm?> +!k P/!++ 3/+901>32>32#"&' 1T)R##M'P3n'UN"!  d/$!+3++ 33+ +%/&+6>v+ .g+ ..... .......@01>3263>32#"&' #"&'/T)N#?M5E#>'O1%TK#'TK#!   B'/  +3+3/+013632#"632#"'DQNPJHHLQLJPHHI# ) F/+;*++ 3/,/ֱ -+9*9901>32632#"&'&4546732>?#*'/H)V#DGE4tCVj>9\-=1/)#7)# d  Nf9 1Y) B;7#.+ +/+ 9 9017!.5467!!!7kB +9392fN:G0/(/ ;/5ְ2#2#5 +#+ +2<+#59(599015>?>3:#";"#"./.f7H-'\y!  #;D )A0/B) D;#  !y\'-Gd6;IcAjp:;67:@dF{mB?m}Fd@;57:9qjBbI<B  /ֱ +01672#"FEFGHCH  s fN:G6//;/ְ21$21 + +2<+1 9$299014732>54>7.54.+&'476232#*'&f #9E! )A0/B) !E9#  !y\%-G87H-%\y! 5;@dF}m?Bm{Fd@985<:pjBbI<6;IcAjq99/32 32/+6-+ ..%+ ++++ #9999............@999 901>323267#".#".)`/XXZ2-K6)5)`/]ZX-1H5%;b1H/)`11D/)ZV/V+3 + 2/ְ2 2 +/33 22+ 9990147632&'&632#" LIJN NHKL FCDGPNPJN NHLK  L   !/a(/ +/ +0/ֱ *+2& + 21+&*99("+9999999014>75672.#"32>7#"'5.7kl+-+/3_;=];w313# ;h6+---mk5j`  ?i1 )mI \u@3++ +>3 +3>$2A/ֱ +2( : :/( (: +@(/ +B+:=99(%99+349>:999 9014673.54>32.#"!!!!'7>54&'#. ;{qF!9kR?V3 @#N+;%05i5TN!/}A +BR';V+!50%FxH#?!?#%krm%!C#!5P$8x/*4/ 9/ִ% +%/+ +:+% !"$9/ 99$9*!$949  $9017&547'>76327'#"'.32>54.#"P;?Q8fywg/VF#P3f~f9L- 8K+-L8 8K.+K8 Nd{}g9L99M6m?u1/V;;T-M<##732654&/.7>54&/B=H^T)3}?mR78y\C;#$Lh)5?ox59e3>-3T%=@Dr5u+1+))J%NL@!R;NyR+:5u++7)#F){)6B>))<58o-7/&),$3  $2./ֱ  +#/+01467>32#"&'.%47>32#"&'&GG!!FI HH !GG 7=;=<;>;==RB'I+# +/ +E/<+6/-+J/ִ +(+9+9+  +K+9#-0BE$954.#"4>32.#"3267#".Rooo說oRދݚRR݋ޙR3c\F\;1B)ZbhT/>3;i<`c3ߢus餤uuߤ^^߁ߤ__TuE)f) uoun !b6Dqq1 /x+ +/&+-/ +0/ִ!+!)+2+1+!99) $9&9-9 99014>3:54&#".5>32#".732675.#"Bh@&XT)^0H<5^T`5#15*,LXLh> H()N3/#BhR%'3RN 672 #"'672 #"'R??KRO;PQJ@??KRO;PQJ@!  :9   :9 )R 3 /  +@  + /ִ + +@ + +0147!#"'!& k=@B= B= R=j -/ /ִ + +22 +0147!!&j  1B==@B==RB'J+# +/ +B/, +B, +@B7 +H2K/ִ +(+F+F?+/+/+  +L+?F#,;$9/37:99949B /$90146$32#"$&732>54.#">32#"&'7>54&#"#"&Rooo說oRދݚRR݋ޙRA9kBç7#@"3!/=9>)75ߢus餤uuߤ^^߁ߤ__ qFlgD1/; "/ /+ + +0147!!&   ?3651543NhN+ +/ + /ִ ++  +!+99 99014>32#".732654&#"N1Rq??sT11Tr@?qR1J55NN55J?sR11Rs??oT00To?;KJ<;NN/\+2/3 2 +@ +/ְ2 +2 +@ + 2 +@ +2 +0147!672!!!!&547!!& A=>?>B 3  3 ?>j  =>?>=>?>=>?>`=mqI+/+/ִ++99 999 901654&#".'>32!!m{B;5N5 DyPdT! k+R'3+^5b`#'7;)Z(L$/+/+)/ ִ+*+ 99$9999901>732654&#"'7#.547!#".!7`/DdV5-' 1-L71b:=/+ +,-/++=N)JnL'% +  /ִ + +017632#"Rf5L)J)B  L/+\+"+ +3)/,/ֱ%2+-+"99")&99 %990163232>5632#"&'.'#"&'#"&JFHIfa5H)JEHJ+!2 ;}_'G'F"#D ٤#=T1g #" HDfBA+3+3/ ִ + +/+ ++014>3"&'#".2fXD^XP#B``yk/'+^R?2 /++22/ֱ   22+0147632#"'& JEHI  JEGJ 1HJ JFHI J1H/ + / + +@ +/ ִ+ +9 $901>732654&#"'3>32#"& %: 9FA5Dg= myU%!P ## eNhkq6 /+2 +@ +/ִ++901%33!.54673.3  !&-)*-m:#R^N++/+ /ִ++ +!+99 99014>32#".732654&#"-`bb`--`bb`-HLNGGNLHRyJJyRRyJJyRons?N 7 672 #"% 672 #"?71XX/=B)d-)*-m:#R+ X !3'5/' { =+<37+ /+2 +@ + ' 0>/ִ+$+3+?+99$@  !-0=$93797!999 $*3999'-99901%33!.54673. 632#"%654&#".'>32!!{3  !&BFI?N!HAF4{B;5N5 DyPdT! k-)*-m:#R+ X 1+R'3+^5b`#'7;)(2L1+K/D38+?2K8 +@KH +8K +@8< +$/+/+M/ ִ+J+92F+>2N+ /1$9J*,348$9F.7998K391)/99947$9901>732654&#"'7#.547!#". 632#"%356323#"'5!!7`/DdV5-' 1-L7FI?N!HAFC3a+Ӄ1>71XX/=B)d1b:=/+ +,-/++=N)JnL' X !3'5/' ub/"2m'+)3/+-2 / + +3/#ֱ+ +#+ / +#+ 4+  '/$9 9/90174>7563232>7#"&47632&'&uIio"FDD=/gV7h+D99#%5ZVV2) LIJN NGLL ``9 5R:X\ 5s=IJN NHLK  L#";+ 3+  +#/ֱ$+9 "9013>32#"'!#">32#"&'!+N/)N/TPNIRTJCLs#b57m-JK#J%-\? '    j#"3+ 3+ +#/ֱ$+9013>32#"'!#"! 7>32#"+N/)N/TPNIRTJCLs\-l85b#%J"L? ' +j !*-\+ 3++ + /$322./ֱ/+9+-9 &(99*"999013>32#"'!#"7>32#"&/#"&!+N/)N/TPNIRTJCLZ97Z!O'#^`\ *--'H\? ' K ggjZ-0]+ 3+. +#/+( +1/ֱ2+9.09# +999013>32#"'!#">323267#".#".!+N/)N/TPNIRTJCL#yM'LJL)%?-D#wG+RNL%);-1\? ' -F+HT-A)%GcjN*-C+ 3++ +(/"%32#"'!#"467>32#"&'.!47>32#"&'&+N/)N/TPNIRTJCLGG!!FI\X HH !GG ? ' =<=;uj@;><==}&u+3/$/ +'/ֱ+ +!+  +(+999!99  999$ $9013.54632#"'!#"! 3274&#"+5no5)TPNIRTJCLs\Z3/b4//3!`Buu?c!B ' +;B}=BBVX+3+ + + /ְ2 2 +@ +@ +2!+013!!!!!!!#"!#>   V' JT^{ =@D=B=B?{=@D=/ 3jB+>+++/4 +9/# +C/ֱ 7+(+D+7 #+.=>$9(9994(1<999#=99 9990146$32.#"!267#"&#>32#"&'>732654'"'7.j_b`)HoKLrH#jb   =V9#_5%BJ;p=)PɇDݤs'=v; 9z='I5D'hm %N"  7 #!l++ +"/ִ + 2 +@ +2@ + +#+99!999013!!!!!>32#"&'D   V'  #b57m-JK#J%=@D=B=B?{=@D=  #!j++ +"/ִ + 2 +@ +2@ + +#+9 999013!!!!!7>32#"D   V'  g-l85b#%J"L=@D=B=B?{=@D=? !,++ +"/&322-/ְ2 + 2 +@ +2@ + +.+*99%999"(*99013!!!!!7>32#"&/#"&D   V'  Z97Z!O'#^`\ *--'H=@D=B=B?{=@D=? ggN,B++ +*/$';>A$3/25$2C/ִ + 2 +@ +2@ + +! /!8+--/8D+'998- 9999013!!!!!467>32#"&'.%47>32#"&'&D   V'  GG!!FI HH !GG =@D=B=B?{=@D==<=;;><==# )++/ ֱ +  99901>32#"&'632#"h#b57m-JK#J%6LJJMNGL   ? # )++/ ֱ +  999017>32#"632#"-l85b#%J"L:LJJMNGL?  ? !!L ++ /322"/ֱ #+999 99 999017>32#"&/#"&632#"dZ97Z!O'#^`\ *--'HLJJMNGL? gg ? N!7o ++/036$3 $'*$28/ֱ +/ "+-9+99"  99-'39901467>32#"&'.632#"47>32#"&'&JGG!!FILJJMNGL HH !GG =<=;V ? ;><==3+q ++!  +*3%2,/ְ2 $2 +@( + +@ ++ -+ 99 9901473>3 !"&'#&32>54.#"!! VsglhV 9)^wFFwVL  35W } 3+ss/5153Z0+3+ 3&/++ +1/ֱ+ 2+.999&+$9 !#99999+&.9#99!9013632632#"'#">323267#".#".?:=B:JC?32#".>32#"&'! 4&# hLKKL#b57m-JK#J%?=ݤss礤ss  hf#)O++*/ֱ + ++!%$9 $9 99014>32#".%! 4&# 7>32#"hLKKL@?=-l85b#%J"Lݤss礤ssf hf!+4y+.+3!/%3225/ֱ, ,0+ 6+,90)3$9 93. 99!')99+#999014>32#".7>32#"&/#"&! 4&# hLKKLZ97Z!O'#^`\ *--'H2?=ݤss礤ss gghfZ.7z+1+6$/+) +8/ֱ/ /3+ 9+/93$,6$9 !9961 99$!,999014>32#".>323267#".#".! 4&# hLKKL#yM'LJL)%?-D#wG+RNL%);-1#?=ݤss礤ss-F+HT-A)%G!hfN+4J{+.+3)/#&CFI$37:=$2K/ֱ, ,+ ,0+ @ 0+55/@L+5 .3$93. 99014>32#".467>32#"&'.! 4&# 47>32#"&'&hLKKLGG!!FI2?= HH !GG ݤss礤ss=<=;3;><==1X7'67677'&'.!--53-&'/5+'3--##+.,(!-1hf#+2t++.+ 3*3/ְ 2$ $0+ 4+$!990(*,$99.!99*'2$999014>327672#"&'#"&'7&%&#  4'hLuG>%/5-PMK{JA./LH@ JcP=#ݤs96T  f妤s>9\fN5Tkbu##0B+ +31/ֱ + 2+$9'+0$901>3232>5>32#".>32#"&''J'#I'7dPPb8)J#%K'1դ1#b57m-JK#J%<}u88u}Ėaa$  ##0B+ +31/ֱ + 2+$(,$9+901>3232>5>32#".7>32#"'J'#I'7dPPb8)J#%K'1դ1-l85b#%J"L<}u88u}ĖaaO !#;n+ +31/53+%(223232>5>32#".7>32#"&/#"&'J'#I'7dPPb8)J#%K'1դ1Z97Z!O'#^`\ *--'H<}u88u}ĖaaO ggN#;Qm+ +39/36JMP$3'*->AD$2R/ֱ $+0+ G+<3232>5>32#".467>32#"&'.%47>32#"&'&'J'#I'7dPPb8)J#%K'1դ1GG!!FI HH !GG <}u88u}Ėaa=<=;;><==# 5++3!/ֱ "+ $9901632 632#"&'7>32#"VWNM#LOJT5)I%#L'-l85b#%J"L d M1 ^-U++  + - + ./ֱ 22%+ /+% 9- %99013>326232+#"&32>54.#"'J#!M))fԪjjgV)M!#J%'3bL--Lb3'%)nɠo)=eMLg=>=++#7/?/ֱ;;2+  2+--/  &&/@+-;99 #*7$9#=97  999013432#"&'>732654.54>54.#"#"{d+9D9/FRE0%ZoLx>/T#?D/FPF/6A5#9+ZTJAHDj@TwZN-)1+/JnT3o\<7q6=7'4++?XDH^VdL5)) N ,;z+2$++   9 ++3254.#".5>32#".>32"&'3267.#"NTR;H!9T4o|ZNH́h}CA)L5dTDA)Jf-@G=9duLbP#1># +5^B)%V  5: HN ,;|+2$++   9 ++3254.#".5>32#".7632#"3267.#"NTR;H!9T4o|ZNH́h}CRf5L)J)B-@G=9duLbP#1># +5^B)%V  5: HN 4C~+:%++   A ++D/ֱ55=+2E+5!"3$9= %.0$9()99A:9014>3254.#".5>32#".7>32"&/#"3267.#"NTR;H!9T4o|ZNH́h}CH#^+T)/M#T#TRK%R-@G=9duLbP#1># +5^B)%V  5: HN <K+B$+,3772 )+   I ++L/ֱ==E+2M+=!:$9E $'57$9)/2999IB9)2!/:999014>3254.#".5>32#".>323267#".#".3267.#"NTR;H!9T4o|ZNH́h}CS#qL'GFI'#>+!, #sL'IHH$':+1-@G=9duLbP#1># +5^B)%V-@+#V+-;)%O5: HN 8G]+>+   E ++6/03VY\$3$'*JMP$2^/!ֱ- 9-A+2S HH/S_+-! 99H>E$9E>9014>3254.#".5>32#".467>32#"&'.3267.#"47>32#"&'&NTR;H!9T4o|ZNH́h}CfGG!!FI-@G=9du HH !GG LbP#1># +5^B)%VN=;=;==Ny ,;G+2+   9 ++*/? +E/$ +H/ֱ-!-+< +-5+2B ' +I+3254.#".5>32#".4632#"&3267.#"32654&#"NTR;H!9T4o|ZNH́h}Cffff)-@G=9dug7))77))7LbP#1># +5^B)%Vo{{oozz85: H5;;55<;NF;;MT1+73(A2+3 R2  N%1 +NN K+U/ֱ<<O+!V+<99O@  (17%DN$9!$+.999%(+3254.#".5>32>32!3267#"&'#".%3267./.#"%!.#"NTR?H!=T43y?ZNj<=fop8kF|B PVfBFpXsA+# 5^B=;7AMj'Jyr)sA-+)/%Vo5: +d9!9byrT;C!+?+++/4 +:/% +D/ֱ 7+(+E+.97@ !"%+1>?$9:4(1=>$9!9 999014>32.#"32>7#>32#"&'>732654&#"'7.T?-LEF+=];w313# RN  myU2 %: 9FA6CPbb/uɗV /u5 )mITeNhk!P ## `X))0g+!++.* +*1/+ֱ + +@+ +2+ + $$99. 99!&9014>32!3267".>32"&'!.#"XBoy=XFA ɓӅ@{)L5dTDA)JeZfk u͗XMj'L{n)sA=R.  byrX)$0h+(++" +1/ֱ  +@ +2+  (+$99" 99(/9014>32!3267".%!.#"7632#"XBoy=XFA ɓӅ@!eZfkRf5L)J)B u͗XMj'L{n)sA=Rbyr  X)18g+"++62 +29/3ֱ 3 +@3 +:+ 3 &$996 99"(9014>32!3267".7>32"&/#"!.#"XBoy=XFA ɓӅ@#^+T)/M#T#TRK%RXeZfk u͗XMj'L{n)sA=R0  byrX)5<R++:6 +63/-0KNQ$3!$'?BE$2S/ֱ**=+HH 77/ 7 +@7 +T+*6999=:9979HBN99  99996 99014>32!3267".467>32#"&'.!.#"47>32#"&'&XBoy=XFA ɓӅ@yGG!!FIeZfk HH !GG  u͗XMj'L{n)sA=R=;=;== N+++/ֱ2 + /+ 9 99901>32"&'47!#"'#.i)L5dTDA)J JEDI  76 F;3 M+++ /ֱ +/+ 999990147!#"'#.7632#"3 JEDI+Rf5L)J)B76 F;)   P+++!/ֱ +/"+99 $9 9017>32"&/#"47!#"'#.1#^+T)/M#T#TRK%R+ JEDI  76 F;$:r++"/369$3 '*-$2;/ ֱ  +/  +/% +0<+ 99%901467>32#"&'.47!#"'#.47>32#"&'&6GG!!FIi JEDIZ HH !GG 7=;=<76 F;;>;==T?-9~)+17//2:/ֱ. .4+$ ;+.$94 )$9$99971$999 99999014>32.'.'7&'&546727#".%32654&#"T;uo5f)K50 qFX uT,yFhH"=}}='^oo`ano^mO=o){G'J93#B 71nC)PDkךTNl9&B%+3*+23==8 /+3C/ֱ#+#+D+%'@999# 9*/8=$92599 9=%@9/'599013>32>32#"'4&#"#">323267#".#".9##5 :K_9JGHIDT#J;%JGH#qL'GFI'#>+!, #sL'IHH$':+1# '+)>1\ Vov;kV v-@+#V+-;)%OTN+]+#++),/ֱ &+ -+ 99&$9)# 999014>32#".>32"&'32654&#"T?}>>}?\)L5dTDA)Jjdqsddsqdu͕VVuuȖTT'  ITN+[+#++,/ֱ + -+ #'$9 &9 99#*9014>32#".%32654&#"7632#"T?}>>}?'dqsddsqdRf5L)J)Bu͕VVuuȖTTt  TN'3d++++14/ֱ( (.+ 5+(&99.!#$9 91+ 999014>32#".7>32"&/#"32654&#"T?}>>}?#^+T)/M#T#TRK%RZdqsddsqdu͕VVuuȖTT)  XTN/;}+3+3**% +932#".>323267#".#".32654&#"T?}>>}?#qL'GFI'#>+!, #sL'IHH$':+1dqsddsqdu͕VVuuȖTT-@+#V+-;)%OϠTN+7M|+/+5)/#&FIL$3:=@$2N/ֱ, , / ,2+ 8 CO+8 /5$95/ 99014>32#".467>32#"&'.32654&#"47>32#"&'&T?}>>}?GG!!FIdqsddsqd' HH !GG u͕VVuuȖTT=;=<;>;==## !4/ +//+"/ ְ2 2#+0147!!&4632#"&4632#"& _ cEFddFFbcEFddFFb?>=>?>=FddFFbbFdeEFbbTN;#,4n++/+*5/ֱ$ $2+ 26+$92(-$999/!99*'4$99014>327>32#"'#"&'7.%&#"32654'T?}^;')3m;8>s#)+bBA' V5^qdV1Nsd u͕V/)/JquȖTH-Jx1V#?B+L<}&^+ ++3'/ֱ +(+99  &999!9 9#901632327632#".>32"&'}JGHJ8R7L3JEHJBuhVZ)L5dTDA)J: Tm?> +!k  }&_+ ++3'/ֱ +(+9 "%$9!99 9%901632327632#".7632#"}JGHJ8R7L3JEHJBuhVRf5L)J)B: Tm?> +!k  }.`+ ++3//ֱ +0+-99 "(*$9#9 9%901632327632#".7>32"&/#"}JGHJ8R7L3JEHJBuhVe#^+T)/M#T#TRK%R: Tm?> +!k  }2H+ +30/*-ADG$3!$58;$2I/ֱ' /' +3 >J+'93 99>9 901632327632#".467>32#"&'.%47>32#"&'&}JGHJ8R7L3JEHJBuhVlGG!!FI HH !GG : Tm?> +!k=;=<;>;==F+7N*+/++ 3/8/ֱ 9+ 299*99/6901>32632#"&'&4546732>?#*'7632#"/H)V#DGE4tCVj>9\-=1/)#7)Rf5L)J)B# d  Nf9 1Y) B;  f.Z+! +)///ֱ22$+ 0+$ 9999)!9 901>32>32#"&'#"&32654.#"'H##G')gXs?MՇ#C'H"#H7H1L83G-9VAɉӔP)?mM.'DZ3F+CY*++ 3/A/;>RUX$3/25FIL$2Z/,ֱ88D+OOD+ [+8,(+$9D%99IU99 O 99*9901>32632#"&'&4546732>?#*'467>32#"&'.%47>32#"&'&/H)V#DGE4tCVj>9\-=1/)#7)GG!!FI HH !GG # d  Nf9 1Y) B;7=;=<;>;==b)%2+!+)++0! +3/ֱ& &,+ 2, +@ +2@ +4+,&!999,9&99-9014>32!!!!!!#".%3267.#"bR51'   V' ?DBR@J`))`Hݤs =@D=B=B?{=@D= s T;*6=&+ 3.2+ 34;27& +7>/ֱ+ +1+ +88/?+1+&998  #7$9999.&#9997+1$949014>32>32!3267#"&'#".%32654&#"!.#"TBu?;jjr<F}A Pe@ByB'lqsllsqltZPVfu͕VXTTXMj'L{n)sA]OVVTt+byrN+A~++3)/#&:=@$3.14$2B/ֱ +/ , +7C+&999, 997 1=999901632 632#"&'467>32#"&'.%47>32#"&'&VWNM#LOJT5)I%#L'GG!!FI HH !GG  d M=<=;;><==h + 2/+ 9017>32"&/#"#^+T)/M#T#TRK%R  u4+ 3 /+99901>323267#".#".#qL'GFI'#>+!, #sL'IHH$':+1j-@+#V+-;)%Oj 47!!&j  1B==@B==j 47!!&j  1B==@B==j 47!!&j  1B==@B==  / / +0147!!&  1=BB;?@?  / / +0147!!&  1=BB;?@?f h+ +/ֱ ++6+ ..   ....@ 9 901>32#"&'f#N!!E##?!!E# f o+ +/ֱ+/+6=+ ..  ....@ 9901>32#"&f#E!!M##F!!?  f5 m /+/ֱ+/+6=+ ..  ....@ 9901>32#"&f#E!!M##F!!? f +3+ 2/ֱ ++++6+ ..  + ..   ........@01>32#"&'>32#"&'f#N!!E##?!!E##N!!E##?!!E#   f +3+ 2/ֱ+/++/+6=+ ..  =+ ..  ........@01>32#"&%>32#"&f#E!!M##F!!?#E!!M##F!!?    f5 / 3+2/ֱ+/++/+6=+ ..  =+ ..  ........@01>32#"&%>32#"&f#E!!M##F!!?#E!!M##F!!?   #5++++/ִ + ++014>32#".1Rp@?oT11To??qR1?oT11To??rQ22Qr9/M+. *, $3"+&"$$20/ֱ +  +( 1+01747632#"'&%47632#"'&%47632#"'& LJJM  NGLL ) LJJM  NGLL ) LJJM  NGLL JM NGLL LJJM NGLL LJJM NGLL LRN  /ִ + +01672 #"'R??KRO;PQJ@!  :9 ?N ! /ְ2 + +9017 672 #"?32.#"!!!!3267#".'#&9   ^˅b`)HnLBZLsG#jbϓ_ 5#+'55#qJ'=u<}},1P+,1uk9z='D}oh9&/733"+2+222+ 2:/ִ + +@ + +4+4*+$+;+6y+ .*#$y+ +*++* #9#$*+....#+...@ 9949*9$ 9& $990147!##"'#&>32>32#"&' #"&' #"&Z532-#71#/6-!14!s#^1.B7/11 n)i/{ i 331!33#*m$+3+3( 2/ +/&ְ2"2&" +@& +"+,+" 99 999  901467354>32.#"!#"'!#"'#.#H}hfR#HwC'N='JEDJJFHI13bh8#Dr/'F7- F F!5#`<r+63++3:22%/=/8ְ24*24!+>+!4/99 99:9%"9 901467354$!23267#"&5.#"3##"'#.#7^Zc;1%'!\'#E-T?'JFHI13 ?N+NO!  )F7-!51 F!5#E?+1833 + '32+-33C4;22F/Aְ2=2A= +@A +=:+26,263+/G+:= 9936'99/$!99?$9 !901467354632.#"!54>32.#"!#"'!#"'!#"'#.#ݴDf2 *.%!7)}G}ifR#HwC'N>&JFDIJEHIJFHI1' Jh4 &F7!3bh8#Dr/'F7- F F F!5#W2+JQ33' + 932 ++?33UFM22X/Sְ2O2OL+2H>2H5+"Y+LO 995HC99" 9U'*9 6901467354632.#"!54$!23267#"&5.#"3##"'!#"'#.#ݴDf2 *.%!7)}7_Zb<1%'!\'#F-T@&JEHIJFHI1' Jh4 &F7!3 ?N+TO"  )F7-!51 F F!53 _<c^c^}fxDdnfmhfgdfffJSFjOEVsR!hu`^Oz:X Xj?XhfKI3XhhfH3^(^!%NfOfdf-NTT~X+#Dt3tG}TT7R}Z rEV7~f~fdPRRjRNmfO?ff{fuj????KKKKZhhhhhh^^^^-N-N-N-N-N-NNT~X~X~X~Xtt3ttTTTTTTT}}}}VVzb$T}}??jjjjnfnfnf f f fR?9f3#l## #,,,,6bR$^p0  > F  : l  0  ^\d:vb:2h2Zf"24t@xH*t , f !!z!""""#n$$%*%\&4&'J''(.(Z))B))*P**+L++,",d,,-.L///0J01B12r23z34V45566t7788~89~:::;;<\<==>\>?@@AzBRC CDzDEzFFG,G~GHpIIJJK KLRLM*MNN|O*OPPQxR RRSBSBSBSBSBSBSBSBSBSBSBSBSXSnSSSTTlTU?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~    glyph1uni000Duni00A0uni00ADuni00B2uni00B3uni00B5uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FEurouniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D E++D EL++D E4++D E$++D E+D E+Fv+D E +Fv+D E +Fv+D E &+Fv+DY+Q=immutable-tuple-0.4.10/docs/public/fonts/aller-bold.woff000066400000000000000000001007341342041553400231470ustar00rootroot00000000000000wOFFFFTM^qGDEFIVGPOS9n)y,GSUB859EOS/2Y`xqcmapB*cvt p22HhfpgmeS/gaspXglyf`_headz16hheaz< $shmtxz\DXOloca|֚nͣ_| x[}\u?{ogӻc?ͮcQ.!q6ȁIJh YJ4T$WքRDzT#Bt墤TZ*2֡jEQGs~}oػAHۙ3{wChfG﹋<>n}: }s S7?~]9'-Cm8YךĕZ/گn*q8qy$?5}sf{+;!to>flw{޶]r_Wg\wpKWܱ]j؆#C ^ػOnM7mzh {'7_2b7غ}[߸rʏ]Е0⌌3Ҩ3:>:7ѳ??vثRƷm{`ۙm=2Wg㟝MxhG׎v~j;er]4]wݽ)ojjꎩ8A-@w'^z~HoÊlx-4ΟiExwnb Eݴ;nt?i.ե/,ᝒ2_`m,E mbV8xG"s7Kǵy^4]˒_c2 g(# خϲu*+֢5,,X1Fk}Ł1&ѸѸ>mdTSx~{-ˆT8SR1F7,`g#FI` KxeWxWxY+bt; ^Wx%W@-b@- \@bݦ7`}h ,4y'gZ?-%\) ks`x i%<]R`3t=K8 T$X֑@lo Ay8yM;6Rq+މ-tK~% &f,Y1Gd^4ւwm4ؗ2`YF^dx,(Q;l`.lGo`ndoҞnN9[hyNGXKh$4X\_V"|^]X= {{?3{czv`Q8ugÃ\ |VpaЇD9>*lG _! x7;|Vz Scܻ"xq6 V.UڦaQu,y** 赣 PtB] y-}QjUe>F8`Fx5utSq6hG-ۃ8ߏ8xK !OzV؞6AK|$7]lTcMIw}9ly}ϐ{ >4Wz"ǐ]룄>rz-s1}Qj7GߕExOI ۧ` l al*V/{f^-YWWtV2-FY,dB1X( ]҆qhoVҁ.Y4X2m96jϠ#$3SBIJ%\=gL?Px/r?vqYZY^cL"3QEdX(vj$s.lI6̑3svydXvؿL ]`b7qqc-2G2G?2:/68h@3 4W y mQcc'xAA6"s7E:̿{2GjSTPRMfwP,+32BO+:YKsidc^\g ma]V*Y7s '#j9^܂ٱcoLiibSI :u1) Z2O͈Z/~㉿Wo N.fooX8b~蝱Msl._w`7a%7o y} 3vm3vEhּQ /EX!~ov7-oN-i E\%M,*sz&RuǮvlg-#ϼ?帬p#w1W7j][+rd g%˗y֡I:p"rWlc%ƈp֝n1J?Qϫk"0~]3^~F̊5'%i-U~\;^f1HEϗXX}Zf򠞿\ ̾G;ƭ!ŗ^oi/Qat-yr|0 og2ѨGuuT䶘ƶ1$OKoӮ d#3OT]4ǧ5o[mnw V x8k8JEN G]5؃Q 8XٸclTM5#ry;F\qV{U;:tec[s_k w?N9p}{RTʆW׬Qc|iwbiy.# {XB bz'M5]FFax ᑭgBSv}f'*-l|XY3nxײM-5 p1[]jG|#č]H+x:'5(H\:XU@4Y*-X%zl}=[#c[r/$(xk#cMjCj9Ԋ1AXӓ9GNk.G{+Y4v0URGS/#d$*F,H îz,H#YfAiC tD#q"K'H22GfDã¹bKg1ш^}7;T51xN|Is".<=ɖblCȢ"[z80v嫙F6]9WQ9]jN:_5~P<ȼQio#~ ̷60pQHcLqK9yoQޥ~q^]D<STD;-e~2 ک GU*CH y$09~?/LO|v@47(P#,2j^Dh2w00]ё,Ư\- )˩ʯ5v:uSH3@:5?\*:TgW+S?=hRN=FdYirUB~nn'ƭMFg6(b1ƥGhd0utB>)/{OojD䴬tj]f~p6MsT7:9Ia|[waV(ycgd^7Gz^S^yvl _uY_r#~E,fҤL1ܘk..[#xc`fIf:՘QB3_dHcb```b`fQ, 0(D3@#oi Ǚ&XY)fe 5xc```f`F1, d21g f`:tGKADAJANAIAMA_J!^a,[U͠ Um WT/W?8`}v?`Ã?)ԅDF6F& uV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?аȨظD3-^d+WZv 7oݲm=c(JIͼ[ IYC,brrjVjLsk%5N?t[p=gyľ̙;B* xu#!!'+DDx]QN[A  9{ Սbd;i7rq@D گH!H|B>!3k4;;sΙ3KʑwkS$6NH덌Zlfu є;j=o)M;Z ;4: !qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy &ҷ$, b 9@HƼIJ;ㆵƑ6O'ӿZxڴx/<3dy,%˲,cYVy,)"˶lvEziRcB iH4Ms|Y4@ie4cgdA)l(4Kyx.˲K۬wnVsɲ~k4󞿿sQ 5HQ̴Q2M=yUDܓ0pIyW?ߓ~5f \l.~d_ORǮG_оJRN*STP2D A- Q.J$ySINQfѨ\9C$"\4[M$laɑ ĻΦiXMvC&󹑍Y^3:g<}*rQ) t[판;-5 d=P7Fĺ h0iͷvEO'L?DzYYqM)1*M GI_vnluDCp Zz|1Uzw$8qV64ïٛ8%1sx7jŮBBO5&|\0*ObVzAv[yօ$ Mr-.h`IN>l:ϦN/uN?@ eSFkpVK~Oٺ .L.\tf:6O~'ZK~ f+A|Px_C7ZdVnphcRl3R$.xlH&GB ŋ&]BCto]hm?gu:oR$=.!^,DZ.z^p!xreX;cZWJnN4koMңx}?qaS)jzU˜f.?@d-/4T >,J9iINBROUf4FIszx\miR,q )i`RY$%%v 7jl-VGBjȎ>:튭`DCL?kC#:[㡛4:1yM?v 9|;PP{hyow6<_ ?t0 wnMK SvYt&xM? 7)5Q#5ϿYeqSZ+ P@}ʷ/ Q`)kuA\y&բ95-e'lѠ<3UOyg:7@vd,%UkoB4 b/PrmTs۪5}o[2V5}L4,62ԸN&pVA6qǧDqLf}J/Ry/p7|ˏ?/7gv:<yPKK7(O"jz\7 u\'f$/8 @ [cAJTz=ޒ{9_ՃWpw8M=fK$^e<꾸n3EDY2̎cAn6]x ;F%R pPNmKM MM£IS v䩹<7Ov1ӻЏgZ?[D{fi/$[|npǼ>wszww@lw*PyUQbDɿkHG. h-aNkM"k] [5(ȀY(a% kn9c`"N̞'_?t:.ogtop_i/ڋrJG05(t1+41:cuJL<2e3t9:du'Oࢶΰfb wԋv/Jl;%«8lbԮo3`d(qK,[l?0\SVd_'(.Jƨ椪HΠ-w;^2\S=I)7M6|#2᥍s*&5w#Zfo Ki/>Wpc'O;ًt_1җp}%ĂFCU/:ܬ^G PbI^^DT(@ҙdfuz\ЀT'#(?C^oAass~=Ew>F?ŘdAsWyDӶ1y&wNO(h_2E@LCכg0CGlP:]C`z%`W{*N+5$0*rqҿ͎ o( xO\fIMSZP.(kus%obQ+R֢X Tbj{^ꧣ_ܱcff/0_x۟)>x|n{f󍟽dOPUPj j"ys5jVurQրNR (M y um'lӲ:C&h 7! Ѯ8c/^҆tx Eَ (ЛPM [U€eHfgt0jJ K `gJzH& ]dmC߳z6^joyp:sϟ7vo`/ylPVS( Qb(7lCT}Qe2j$]"5Z1-A:?mm8J~wMDCi->Lڊ֏7?OOnNi?5͆Cgo_WXÃ_>3}^9>, *٢ZT֍ZG/B9T1=mT܆uE@R`P.A/nP _OsF_dC ?,|nЙ86S` q&IBE"y#!܈&Vj"PP$@5ҒH,KUQ%MVՏ\勛<ܓxx_3}rf`K\[gS_L:&s#Jz._8<;fw k7EjJ \ l* 6"yMVVTճ59yAOVnR%Y%GS5EJ733uf0ZJF5M>oM]3S[۲},= tK<3?{zރGtЕ8UM0a%^k)%J8hjC7©̑}a!}&[yKdiRjo<%G Ze'X¶VÜj:+@uoa2#7Xe-`ʽpSRy X:`jy 4TSeo6;hmIqtоS۶w u2&i{tjjpzt-ܼ>;m!}TWщvv`t_ =^&51vOOLN*i^𹊎I5lFMZAjn)9Wu p!_ce-qp`[I R Y)X%ާ5Cɯ>7ESt-?*ֺG>3Y#[{AFh 3l=D]*^(^x{_{B8Z$JEõ !Շ8WBI]+샄Osƒ~Q mxzTs3xvdC1?JY?kR Bт_s 8|n.8LL|$\ܬ1(k4BPOn 5Vպ"CI Ik&ي~ގIR+uY{2yb"2;v{&w=n߿upˤ}y[Y=ў-\-UAU]^{Ʃ#㧟;8/|L#N[ O{/_??6CDKŰY-c5zc{o=Belb(d/U.FXbDkQ Ӂ1Pb8L/^~=9~u|4aX?Y[h_ZUV%HhC u;TRE+Uc_o2HUm&.iqRa/ar~2bYمE_ġpݛߞc0ýD=vKJş -ۦ(R'v<+w 7 ms񝞁m޺:A QA~5E_S[EpUFXjCj/ kS}>E˾}`\a֨hYm-B`PC'eJOrdK~ޣGk|zttj%|Np0p@~fڙf+}H#66?%`IƲ,\ku@b#4zYmpf lf!7A@˶}P`}?aDw#Ը. xTM6`F<%Ұ5N:;\SVj(ƉީV(qBb]h<#mbVFb`;Bϧ9_/37ΆRd'q@Icz AX" _jQF@Zz]?3:W|+:az19O#>a$a8mB8xvTr*T %} nsȃ1-$jɅ=%MQn-ОMb,'dO3' oZ i_4g( YKuq CYgH6Zd1+nfٹ p-7a}ojᄚsm/f6s1JKv -X`ylL*\'6Rއ*xP'v*qӺX,ݐ- S;9eˣ{ƾӯozwyh랱iЬw#G{GSxl=``@nTJS٘4%[Bjѝ8iy&Ӈ?}0?qpGs?O{G[7o1̼䦿xv?g3wڏ~3.Eq@2i*Bn9J'"j(APU`jjw 31NWWTNeݏl:Gg`d3{4NsWrGv6~& ycnWiYzE=&$uI?VZR⢜dDqեmrQ&5l*QvozLRnX*W&Q]A?(G@S?/LXHA6sGz}cC65~Q3>q-ӨG_NRd9_taCt` "h.`sKVel0>=*d9~iL2q!2-}Zֈ?8@bK1p|f%z=P%Z#\0*x?&]fJOtdy0YŻZT:5L(s R *!3",4R4;iX0)g3ImXc(*IB!׀˔۰{y5;Ú5]W~9е;iS-&/>Oѝ?7yc>=`:ߘs_-ޗ]d`_p%1?|湷J_Hx= @w5:̏je@e.U%9uOfd!UJސdh-͍6G's#7i\8>$y1G?ԫˑ-ʟ܈n^q2:8 A]ڳ}OfdxV;yz;?|5 Yv4aM.AR$;N*HyKˬ@|'G A7! )sQ'_ @ktJGO;l6%;NP ޚ(ש@CE"JV1wBbnP\,{ g2G60=Vj=}粟^QPkrKքE&JAtb Iʌvv\jhxs4.oE۲l%,u`q`U f; ĆNbJzpك}}:Rz{̫NL<̏?_=v xon*JIHV`Rݡ.Bi6E z%7FG= 5F= 7`##Wh# WI ˫r8F `1Xvk76}=:||=pvmt} `?Ttl1iYUS]:DNĪиO07/Kr-\&ͤj@δpja٭JS➨Y)}_f-c ;E6D⢷WPwj~=@mOD5FVmRAVl  6#RPSe\&&tRr-DT@UD pzOٺxzG&rQD# 8=R6u+ں1kgQb׾Ao$R&N҇5Xʉ*^ {M-q悱U$,zO)pp̳kZg+ ܤXTz*:7L{b{`86ħҭ}O|&o|O`p[«M>C'ybgLL: 8;$Q d|VMh|!!*Jދ}'1R\ @R)YS];ЋV'| D `MGT͟{zi}#\O5r!h?' ] yS(Lъ +q&V%*V99Ӱv,b--̎n_xm|We<z1d{vh=zK9&J93+ոKrƄK?6=O=֋Ůqk)3^=7 JRQ"OE |=]<>s`g͟ (nZ/75pxVnrexݤEiO#Tł@ץFq g~rB}Sm߸۳Qxq{.Zⲙdg=jJTͳ4RUCIrjl{~ˍ>~ݓُe37 h |y] `cHZx`<A<,cCu(_k@%{J*(om`M SȰU&xۗ{?\7/%Āza1`FG 693'QWyɃL) +8CNX+EMv;VVjl1+E8]:Ku8v4cMPl_$ǜ'芺< +&'5N.GuS)SgIQc$dv dcB(QC#&֧IiҁxMLr-h͸=>2>5BrKu`Riߣ[Fkh=3Lne;O~IvŻkWHց~O2f{N^zjC\AtpĄԥcU><4~d[WK yT~/J&*#@֫Cj(& ԝоuėquţJ`g;Jn{_%  {PoH=fcày k9+Y8e^puzb?`z̟bc??4;1Q {ѵ)#b6p%2$DIsSRDI`N& ꟢Uo m,{F7)ꝔۋoZc~93-V{?~T}4]]AQtwB#G%S>Aq}0-4vhD5 e6cGpf:wlzLd=%y6uu05>L&Gz6Bc8zS gٱ~hkq9Z(ϫ#jT"!I*B-ˋ/U8b(u3o<#$qy={^YS},*,QDn]KOawO/>XxI+l:? a.g1~:_dM.#>v=NzyR 1gaK!ǰmǩ!]4r"%9LjkԢ%cmu-BSp)]&ɋ`V_\br%f֜#amIJԷkbɞR ClZ`zɰ9oַג7V"R5iOHf =k[1+%^ױةE8[NGـ3z k,۲.)f?fؗS?KȭѾwm>w8vfp00e|Gr?%sƂ`< tҖ@s%q-hvkIubXMW/ͭ~0Mr=bKh\X?c=^TRpk/FH3ղ^|k^l_1kqW{li3t˻w\3g~7ѷ{Gcs[mޒ4b_H޳[;ɓef~;'n=!xdflgvYeNu9{`Ml1>OüFЦ\DˈU8a#rN ^hSلp\8!DKufR*Aꢞ(_ޞW '1ɃmNW==uKbo յlZmNjgw5#Fs u8}(1%Q9{$9*ct*qKtrc-}xِb+@SrLS1*<0ɼ0)ՔҼmy^sYgC>lnRP߼ jrOpCq;VgX L\bYP0ZZTM>Ni}v-jK?*i ux騹vcI$Hq󔻿u>{}F-wn2zMp4:g  I]O(~ξqkO\[sJq&Yjy ӄ_ym* D{iv0h_#{'9}Ӊ(vq C#'Ԟ]c]c}-%XMEhѨYrHyM+P쵁k*{KR+dMX.fi>q/骅;=c>5r#<:c6 U,pawDB(6Fy@$=ZR-@jINVg:\ wh1^G|88=3<EVẄ́χqwί{}̡=sv`W\7ܙZjEõzil+H/7V߻hb :Zg i-Q` )xJr;()OوsZwTBxEP<܇J?`84qy&yfzE,8=7Ozm<[,,R=2h68SsX!Jj@Lj?ԏQ 8SB8Si(҄/pf$J-O\~lp1yШFHos8}g/99Mc }~y hP 9LbG Z>h ihfh}H瑇KۊT|S!O cjUpE5*ϛg5&' FrFu%+Ŷsu7'b}Wܟ(M} յQFsknZŗ_);EIbUܹ+h"ΨwJI|Q蓜V-$Oi--t@kwu c3nTgV[9ؖ?!C۾:5mжMM}u[?Fs8̗SK{{R^)x"U\FF1e76/uO's}h4S(gS(m"2(U}!>2k%Y!AZ 8xcRFʴ\ZsPx[Hi"7Yq,yp\Ss|8JUbwNi}1=W+ GB_E?<8Obo:P^Y> SB`bk5L?A~^=B\-\&ɏNK} U1 +=PgrlK#3p{M|*+pWg X7D+p5]U͚k`mZA|-D~*Fr*ME"c7Tk70aSL<&9ʛp_DΩaAġ!R\X:qTݵAU tQt mCō7AhcNY8JJP3)9p.*GDe#sV2]_:DPdznVKnT)8Ր~Z)8f` ,?CI C@ƳGf6ܾexbMBpXu6(6/oKVO K6RP/\@Y δK&4/NVʓU'Vˣd'([ӆVWwe6 _+fJ~\Bs|i0Khi0եY^g4t.)xޗiɮ0(~!$%z@**v)[rvN9"aR0`y.B ,aUW@pH눒Y%lN7{t:mWBȷ [^Ʋ } S^fXsSKQ^ \sݩr./=df.ܕ9xE/ڗl^sݧ}L6K녻rY_ _\a+4jr#㡁vV]{N:kK],zRi۹3Eƃd({s]z{ a2ǜ=fK6:}aYR2jV/*F1rsl|v*w+BnT['?av2j|BPjf*lps!nbXÝ{%~RY,$;fمS. |L[fSvyH-7בqK :8 6B0;w? Я/'F33{9P$zi4 K]'RCt Gcqp6OCy6xE)!Sq0:9R3#*O3@AEVC!Dy& >ΏJCy~TE-Nba&&DJK*AvJ6_`6[ml}hfH:Zk@uVoT5MЕxuh7uMKMDu1\K7duG3x9V;vU}iUF矽ppnC>QZQzFz{iRte_aUDg+{jv׭ [ae뭬ۖKR6/m5_.-*74;R]ZmGIU$nc^2 pgVdr>]I$MUb՟Y$Fb$|CUAUI {k-!Q^ v@ҵ!l!9u]o|>BX\Q+_y%O٩:D9D ".k 8*SLE䗏6.u6آmBiN7zZm#=^^|vl%L˻([-. f/M@Y<(Ig;V[v霾Hr+ON8Nq]"YEh"FY~S-FHHY:Y@[( j+Tbyy+cJjGu ܅p!CQW.id?5H5xz/xR J'"d_Zd^kU7m`Mûpá˫5:TK[FgUTL6zH9_^2-r<҉t#ihD詜 YF,.β;Wd^GGv.ɸNZ;̳Φ6`+(SӁGRd ׼v$mkw^;?[a,J27 g|M647a*1OTն <3?U6IV.\w"ɫLj؋RStWƾUrYlmkZ\'+VoN_Պ/]%N*K/ڼĦkڢ<'  ; lfawc7ӿ.>} *AIk ^)"Ӧsc̓wLdp@zI~&EJǡ[1dG[;heqrAϚp:ᬧ,odMKR뮉>4}Ԫ؛uya]I<˾|]XTBpcpYiVu k/V"Yx1/d(x돒xFrUQR?9ŸnUJhWf(:k?8UAJm%:\]`=pG׃8Ѓ&<5R?(.㞽<9捥J=}Cıi-4Ym]İT,M[i}YilxHJ_t ŅP !rIє3~Q;_MvAnCUʙ"u!E*ScpdM6y i/J~ FH}jCZ.u{D xŃ7 {B_лZ؛oiwnԼ.G]Pv4;9Zj=)1}PDWgt⏷ pj_EPdKH 2&\A,7gI5F̅:mcrkZƯ^GWVgy5κlr+OUFslSw}_^O=^?)W|*U)9Yo0.N%^[Jcǯ:l@LQ봭" !a&nDbRCy\_JyzB8{ݻK&cd)rlxN|%l My+p> NoLmaw)iIIJ&`fduo0GFZ,8/*3sf;HVYy=GA-wT}0¯d S#5}){z߾g؅;Nb̌>9~򳓏MGjafP }ؾ r8P(6Jo2>@f"Sh=P0 57T^KUK;^p<8E@A} b*`id]R@Po0i_0ܗ"ݽ&!WOLYɕ Wvh3Hh| R>^X;:)#=uc居7m۾R@&wN궊^b:el1b(A28!10A56G+aLr*.]vsWc5Ҙ(ޅUֿb/^ilsD\$Ȁ2ڑ oĵ74șĴםLY:b!Թ11B^BU qQjU+$0N$GG^ /qׄ 3^)űWpΩpR_Y:z߷8:6PXn>yzWxjF|5~ :kGJsrgr@y ;6^Me4K(ڛy3l>޷/ޫ} &PYzޗw((̫߁ZwDxJB ti@ Yn}' Cl0.b97sT7)CkTtkHd;'NL"S/OY bKɲ@{#řډڙHT}T#C\-fL8GT !x!HŬd*&L .Ј(  I+wѫJas(|WWQ_w; j.n~Pg_$7n߱ lj:Ӣq+ ' Y!6l:5/6GxCFJoفaQZGښkԤ T+PߏE!Ƶ*Z]\AP_,F$&L2n̜膓^ ]ԬHG Πہ3.:́9d+98; E /@n?| -?+o`d=5'3k68g3tu^4ۖ\jT/~LAH8Yt/6QBeA>-bVQiv; h]]0[!PQr;rXPMC*;lr2'N9Ό׳V%2e09 u1g zƧ˟Ag3;Y,f[*(eYg*[dVrNeWx V۰X>c9ȱ8&T1`Y͒ /C=]x`(43L7ͤ)6FC4S-b`f1! Ɯo(iu+c㨝8Z驭ʿF5RȗojA#q*S #$Il!Hu5r΄)`Bd=X*B0dz7O]~ɪ8I۳{m$)ɫ5'&P(yf!7nA{\,iIbcm50v?^70N!uFs?>Oo3s|v? D].PBFQϵGu6Hڝv4z(AE:-t_@aU#o 5IPe1(refHfL lW qň+v ֬eIQ-. U*KyC:vlN>9?D*0#K<Ǿb{ #DJ': T7'>WٻAðȽ1Va#1(H[EМ(a{\&A s3Z)Aے`f#MPbtKy]owh^˥{Tbf~UCca95bރ{%y]n" >1i$#FF9hcC?z?(0z/˘`r!Ȗ ̈́_%/ŔanQӯiQބBRfS "eDJ0F>3.wH1"BRnJGMhx;J ~m ML[wy W~^j &n<'߹yp 86-KD}b':~7҉`(\%/‰ |=~ rcJ$n2MZe[ ށK>.Oځ< hȍ<UnE['5OU0t3v0B1Ak`^4n Q^Q<lc߇ ^(I{b{_+!xc`d``iym2s0V?&!Z:&(+e xc`d``?G+8"('xm?hSQƿ{{C(┡蒥_!JD³`ۥB(oXk"DRPDJ"IACݗTC\=saBB3 &Fn;GmS[nJaF{'igkI$9pvE6܅9&(y<|7YbW_ J<x"MesQ7>Ӎ3Tozm< C9AUo"#4bRƀ,&Wͺ\FQ͡ Yd*\gt?{[BZwPt9A0_OS5|QoS-Nx|FM ]ڷia߼1FfgwR BQWǑerIa/|@ 5Ӌc?^6VCp Ѓ5 z bu-a'9Qa~6n^h8?/s X^xH5xS'||xi|gy+|+YD,:Zg) h$2"啬լe W8D3X,x[K$H$IHIdHdI68%.s \[9!9J$_ Pmjp]PӴ STP:.eyFdP+ CT%Re>꺽&*f|o8TVx>yGDCP:xuc/}ش#7Dzo 2"e7iD0l`Vp]us 6@9@ 䰪@889\w1pg`Vr\p.˭Fn!c4Q=immutable-tuple-0.4.10/docs/public/fonts/aller-light.eot000066400000000000000000000715051342041553400231670ustar00rootroot00000000000000EskrLP[ P z`Aller LightRegularVersion 1.00&Aller Light RegularBSGP$KKRxZgicyR&c4o4Fw[ HmVbN CzqڮNZR!AVښsL%ؿ.&Biȩo&픇_ $iAܖr,"Ȍ!"}?-DDJ/YqiI %>.=`5J:ꡂhU_0,H4 <&/k4qE,P f]ʿs14·?|A(A>O5.q:xCte i-٩"0PS3sxtz&="F cH^m7űH5_Ȁx,s׾1<loZz>jS缳Zh260j~QScOz/}i+Φ/ez]WW>4C.$r!;b#!#R܄C{䱎6Q3hKz1l)]rs>zXDCi Q>C;L5+U3-&0$ز@<2'r̞gM`?! g>O+^T杝?H!_ԃ5T;KIf@J"Vۆ ɠوR(7aw><҂vIp<."1CM !\8a(͎aŨ1di3pC,Q7&X9@`+kNE O,Jd˄OK"%>G ]2+@sH܂mb2Aט8YAd MArG#q/nԶm!'i ('$9hwBP`>(Hk"RNJWqR00rsG&B990P9#ڑ-5aY!aҦU6y₶l1]و|2Y[ʡ+'g 9"izhR{g`CO4!vV1 g*adn\cv=UcNp.a0Ձ F L=l [9fo~_Ҿ6Wʷx3י%G=q 8,p<T9k4.{-=7mGl#A ;mѿɪl%6ASqe3[TsK."]x$o闄?JFĺ3MIZ{I/g1#A5r7-bצc#`XϞR>9&2$g'\%߰A37+b>FI7J03fpg|Pۿ=-uz4LLg iQU Jߘ 5%R(J+:*"oTSդbh"(+ȇl4HzE󼏴׶F;C6V7?ܸU{{ՙ` 0*ѹg/d#!zT4U!S}(vUB`|Y2F+ "htX5s<4_>> T|#~ʂ%v@ygr󢙜*AQQfY ?JpM7iWV}:Z2L_5_[ӜJJJ NvNw R]Is ߲(b+EXcv\-aJ@\"n5u:SoWwSu:/\"t'~F`wDIƥ @Q33r#f51h^wLb3#/3Ff]!jj4Af%˙:9CDkwj8u9nYOW[}Xv.o@B 8˙ 0JtJpXV6(F:czygC8(DP"(.F"z:%Ч Soxn2>`ϮLd_ H4aF0"a^@ų=L k_B.s/Fr;w,כYۣ-j[۵ fjPu3b jwxݧE,YA(mA~/"TJzf`"`Q/ ̄?4ѕP!UF&nTCg@ڔ(mqBԉľAݕYU,0A݄K)O>i[z}\tO_W\>}F 'pܹ8csE$,ς5Z&NN=X6#_ch)*Z".t.-yʮ7B/fHيoh \i&AXUbG$1#28) I H2nnqͤ0ReJL< gʓ#R7%6aa&!IXx${J|#G~y  4!'e PrBPB5șuV= Ϸ; `n7"E8[XfV .X\ˎ\lռ],_L[V2ĊS1Jd4@M PM@ԨQDa5/G!pL#: wW|OVD |LG<@l6 @H BZz0nu sȒA-кꊣx,َww* ji2`EHp}2 ލ05WR:,Oi&6HB6lHTj)Vƛ%L+uM{D9:#tNNȄ]XM4M*XvIW6&Sl)߫8;$ixdf~6o6 TQ)@&BL#$;D V͈c!/hF\tqJ*I`-uJp43`\iAB3ȰQ"nx%h2$H ʳ@6ȚqjBC*8z8]bAay4V2=I]XaCYMNpgjIL KTt7- '*'"h-K!I_a d%9+1 Fn:f`[V1ij u/@ I* nXŐY X| P 9ZPv =8e.Bd`uB0doN#[l3 YF$B %!2"aV 2܇XYr5zVf.ngdhB^l"+MJ&4Pqv49\b:R"_ N4QM%.N;O9<-J|%9.n@(%yN,B; TH`JLI10ubd0֎ZVpXFd)")7 WWMmm(żL 7MF nיGOk̽G" mi4)ȗn0E nw$Xi#b@Zkr"/N7Ŗx#;QKZL;UY@c.$D0d @Ѻ1dciPq b/.q% Wao!B`4uDW: !MO z?8QPQ P/*=W>kUr3|#Au1QZją^)8 tMDf̥fSd gUbH: LgJ t'>r[>M3 )-78Bwa>^BR~Bk=* ,IOR\ @dAb3WvUwl&Mg%6t)r?PdŗK̥_w5F`sAs|fIY[;x[z8;lnׄXi \UgcF׷h&ÙW0񁊄fx+ 4UA(R_M4'i 4w$&sG!, "^@)-`x.&.P '#f0V /؛ټg/tdw r{H\ -3Lg$$b,+RD)ZEj ۤYe\W`r n-ڔK~9Tc P*` &2S}eb-q#<|l|G;M@ZQhMDMʥe lPViLn@٢-]\Ml PYdM,f9 % 3V(T e u?-;cFHjxU^Fig?E66oA]5{KCmF5fC#T7[v+cl/>߰h&Cpg@!wX3?];@e߹b &㼛 [Y={N#]3t۴|"0qI}@ _0BqE8`WHos쏺 yC~Y*ꈲ4n2kd*8!P,pp1TIۣ6T5 6*%!RTTfx1 w˦8/Ɨ,՘@T@㚸!y묥^;2N%3ߠ" >%f^R5Tn0A^' NsCHqcD09%w+&TQ,eωᎥ-dy&'v~ @͝돼 |O]dݿ!^5)7U)|ih$l6 MZѨZṚ Eqoq&lye)D/,,'Ok%٭`x0aYb~$f5M .6"#r4N^Lےwzj+ ;#)lֵ`dࢃqRBHVNN$#])Fo`6C*^N?S~\aCc@šu x]`=t{#gDy'#b坢 :u Dx R<n!蔄Ɂ1R"ȞapÝY(v[ J( G }v <p)lO:tijHg]u" )osNA (88y9=h.4Õ/|SuH $$%$xQtTOiw  8項G=@HtJFJ@czܗȒs ֮[ar?LaXOx`C$aYZ)LNԄukBh-cd$h91_/mXNU~R%*ճ-8ouxTUptr2Vax)jocy}GnPpbmÕ31oZn y_,g" MuvrixpR`%[Z%a.qVpW$y~ttةmַ]ݲ|yăQD&^ ?RGsB!BPERljBFBbhMpiZUؾ &Sr_|Ʊ/.C4Ga"ih?͝]]& $bQÕDn"cMΈ޺T<#M_|1B{>!TED踒+Cgux;v.q{[x'>ZMCyn1-voGO&R:,QI瞌TayDZU400E>jܓ}Aީo&)3_]29yK~TfsT"O Y2dSd7.n4M&h1`jil~cP'0"g_ V'ffri Ѐts6$yF93,C_?YNI<{:KGEc|ˣ>Z oA3Tʊ M"2P ?$հsM}Ũb dԄFVzn3ͳ!}Q6?QhW˖pyD#@]/K7అ<1@2;: ^>)B ?8J ^!6!ZY0.[' D*^oGB9@(->8@ۙd}6KB-@@ɛq4@ RhaYۺ!t*/v$*m4 A,%9 U}b Ŝ$b3ŐA a^]C9Nc0Ͷ~L=3&aIQFhx>R9;YmV5m "_I؎e.31o7EK(BJT 23Cz OtC1_ln )vRb#ϗG0}谱5LAB 1ٍ %gӹbc=&W8N@㵝,j"/h㡕a`i'F%"v^i|CC4JQ`'ZA*Y잮Qh꼀 }XsA"g1kaq&%( dJ74Z{Bw]U8\ "$`G,F$8UOr(4C|,^$z2 =%)aF/Ձ _QHCʟdU1UHSHSKʤth06dlzI@1HqSu&3dnj X2,sHHZa0a?PBzTܐ!;Nڋ iL.+MͲbi_]=BU2ʼn+-UtdSpāM-0|ȿ.zݜ, .-$w!wRqy4Mڷܿt>|, :i $@#Pu 1q";SiEeYڠIxt>H 0ed5L9]KaWZ>->MLa\̂ a[ 缵M8jk$f N48NMgTV"ڄv_gy9*'0M౑0ms! b),4N9n{05bM1a]ZX-nk쫰֞/e`&7G1+Ә 0lKk-mNyaA"hg_#B>`a;LNO)9~jvFrl>gYa}aQ(MZ,joQ2U0sPl#[ăUc<8xչ"Ad#LEc$a(' 0o!,& z2Ƌ QaݸȢ~DC 82lWDT!u:c׀1Z 0*rCSs_s츰J{šW!R$?Zd]#<]Bk}c#/;_f5|KoBb+"ؠ魆I` |( iK~,dZ=qLH-P"H~uXb: nz{=6X9G]9@(?Hr[ڿS5~U$ieJ4)T&$R`FGO/m7CڶgZ+hrz'L'8j17]7[ﳍ9H֔HÄCX@rn'S; WM=@B2© #ܩPfW%'Ҳ8^+u6phVedRU-rCӥjk/ȳC;7˜Jw!!׽ҥEȊh~D}rT"ȇw 8&B_LSˣzVLtu2kdu q18;k)֒qtuGlE~ 2zG  +* ".#\i%WCh,,0>J݆REV:~3 }& "i"#W!.!kh9s6#Fmbb*I$TlAS/\;8ZEclIc Hgڨ pLMMVM95W݅šAR[-ʷg%i d ԑ3 x1f4E^6BI % YSӰ)` 27@ &X}ifh7uUҞnDW_FQMp B',Bf?/4\j?Jz1«t=.籍{LB8$?O9M94!SK`TAP[oXK@Z:>='س_TZLGIJ IXU hl,lN!̱~r~F 򐫉8_ iD\ IhiV [/k;E`ov 3![rBC 7wXKȔKbD'J_VR?MNXNq*cVh3 iJbI<,U hF%v%z٪ۣ# O'@^@ $Ϟj*ow8" q,q4d@b;(9cJRJY& N"ei+Sxb~rzD~GapP@e rcf3Z- RJ{17:r|Lȝe`a"Ӫ2~+gU `3^9Ǐ4T]nrkR#_:9x\qE2<Η)7;H ]c0<4B-GeYSWvpy?Rv G))Lo Gk"Pw)̺0EH!0'~ OBؕ}[@8}ON T$-Aʆn $ߡH:3XQ諍qẃvdЄ-tAkݵ<򎌱]8bX5 mTqL:9sӍC#>> ]iA` a?rL1  Xw<:eOx3S7$UKmۃU!_fAB1hY!Ti|,nZd[7Q"!vE"r MQE%Z HȮHZBUh)~d,.EpVc\mqBWrL")+0->\0*Z _c=5 YM"6 ;Du: L@KX 8(p, h0)Z 0kѮUlCtMhZqnJeF$1|Kc0Dپ(an1[i,]3t~#7Bŗ6+5FȂU=Pgj[&c_sx.?x'F{  8RF G2r5aO(q&RXqXj(l20ry3=P3-p3γ0Iku4ƺ C'2(;/xS8&̧hnbSdrSiXqK>M 8eFeSJr-nHC^/b(^\[j%v6DWdJ6-)]QF08ʄhzGd_PqMQ[`Ì䍷Xa#^+5l *0Y7p^lg!%loRpc,T$`(1 3_랚: kFXBkА8Q* bamGd2!29:Aexak-u2}*_xJͧ/Pj^Q%vȀ8.rOs <ӖǢj*RMqdEuf6@X(L!];Ny'ddс̄-{:xu,-tU<._!o 6>In ZK#nM!ZӁ% .ə`h I&UHB% KytWtLU?idGa XvD 4H%Ɓ-N<Q֋`ky'PzQ#3 %BG4vEtAyOU58< e𖔩 E| ~Z04QD jiaXlzko3r9)`Q"ȍݲ3HB4oߊ)WɪMưHw! oݭUʾ@aXȬ(;s5.D#%R$ nhpj…x²X"P%WA (.M2n{6wԖPF2G2vq EaY qfj` ⣎Qxr鶶Nsaf7d ȕXhm$Gu]QX7Mw Q3oK嫗,!k`@a!}C`P7K GFlC_zKh t9$F^nͩߥ+l<:baa ?(UXlKDDׂj4Hc$2ОBUr'@!ā.S\콳RGAoUhAh8 "*O}Gn>sÜ ڊQ i*/:p2@kfh$l1F]O?+ z)|Xʿ1QɌGHj- qDĄ`d,*B,% $FCҕN`;$Yڕ)k lm T)QLS"XNoWĮ d>*J I.x4ʼn&&r23bchp.06,yL'滬-1ܘ$<&<=\4zY<RdaM-eT04Z|w :mDߴFA?xJ@]4Ҷi;SmLB$8:XS;0*rqCw }`5xmC"?&@@6{% -0=\+ HB@ђ r)=,fV;uDWJAii۸3U(+V^!_EW/.`)vl'1ek h/]p*pg)-)aE4*M+favCEFm*.ca}ETF5c؍OH=*AVH0\|aNlu"^o`ZDZ>J螩](2[1Ng kro.&25}MwlZ1H6`˿1˶Cx iw0Q7|CC8uo=4T?Ѐru $YH.=HG){@DF])awb]InHAc@Еl5S"T&%4h#3g6"CF $*̝:fFڕf\\Pt҄8%ܵ$yFBww6e#!R=jwv,"uXw`skAvr7Sዳg'@+N74C*VYQVVLQ  BpPV<=PwiPg3lTZ?NZdc6P0zP'v/⹡(@yl#j}lž*[5-Aπ,SxG3Qa+0a]'Ic. ğa)MBaOƧҲU45Vg3QΉW,|y$( ,@>?:ڭD13I&w+m1?QT8$ۡJ dCnHF*yD~R@l TbT1_itJ'=er/,@`оAb5G$ "ګtFlgD#h ˄3[l!&Ky)ic7.3Y"rd+-0, E-#v%ЗDM¾2y"값l!]֦N2J#ș1iRLv'^ .h*YK?H(X%7xN^r EzRCv>B@id0` l"!IWa\0ncںt!&sWU 8}竱|`OK=]׵.åjb.-`نd" '%@|Zfb-ز)%%S"%k.H46_K1=l[*%A,^q{'!unpb4ONJ-O 9)1ZM~1ڍKhi34`YjtijD >*3WvKnGB4eKColfj}~\s9n֯i8t9FAd+c0'< ?A&bsXm*-ˀf/•bytX4(OiWWRcɽ04eSe;jFvSL׳K0#z6kݎA%d20'0I~ M'adVlOS/)Q0 ;jASe@FD'+@rPZMj S 0B՞3pL_eAA  kbоq0a{YQ]|^M쓤]6hM Sz16bbbABiqdTڴd0L;EB1(V 74ij ,3IOBppq6|POهSe 4ż:beK-ԘK3Y0f3x WVژ*" `Q"'~!Vw$SlE[K'D tT),-f-oҙ78,q̦bC^@Njt|6ݖtg@ O ,pFhFWx_NAl&{d7#>|3V0Ntp+v(.dCih.S0QEbS9AOU"vƫ lHc(J)~I k&LF`iГ٫t!b^1K%"l ̝c&~B)!0v>Y/ddq@r$7໾xuz%TlC"F>HCx"]@'B̐YJbv❏"q ڤ&DDhGY+>Izm҆m>k%d\D' BN%h,T([SK#!BBG#B֟t*|L|;gni!pt;0|~MД|rb`ȁL }]2iX0~n^(PIeB$ṷـZ7rfWX^49'2 (S40BD- H-@*qEe GcٓGVDhUU@N#)Tc<!ЧA5iငS 7yeNE:+o?*AN%&ګUO8TfTsStMM&Eķ%BKbQ]lda9d?O,l=+m^yaH\VX &$ԥ?M"9;<B;Rj0E1ugyg}=)s[9+$$^2J`oJJ]ܟ]bZ#O~FzHk\!i^&#(n07;~;5LL^X63 OJF-eS>\ajZd#W>Icٔ2 `%"8N3$۟gA0&4p8F_ ǑD0F8S*-py&h\gN 0 ^`D顽CjlBPα&r<ٲ#3lskŘ됭/RBTOVH)skI:GBùi̵әL,b˜*]EdEzS&-#Ȣ ʔb/( y)bJX j6z4ZJݕ".V#)Қ@K2lTwe$M1bY|Ood$.EқDPV7xs 0y:()5z搥`a4󬃪R^}Ft Z6Յwp#S&؜1'zP?NH::D":j+e|4pn`׻CQqx恶6h4HSX3j!:/~J{M?w- [|  EƓHӸݠ X\ɺq)of3B0]E"߁<=ںŽ.Ex \{ؓi4)q AB*i 2Z^]rFFaX|f7|=3h(4{RB# >%p&l` :>=r,3G(Q$ A Ւ$qt`<6unEB ؀,No|^Y ϱ`'a3p8̂LhDq # 9odZ* (hحSvƆ *Jټ'} RS~F4AY8Vʷ RJ*1Uf#fU5x@;h΄}S]wn<ݕ3 0@΢5珹P \0̕iљ  ^}<+*p (2"&8WV%}$1S? 'C?xr [| he)<4n |AByTA ҄RYQ2n5_r3Qdpz> ^E'JFt&O@oxSWԅ ػhǮ(wYuҎ5qk_3#ёTaT8Fq$?2R؁etszp9A`^^e *\eCk+M?ߢ~&? j9ssP}<)!\"k%0z[Ow3R~|h1v`>)*O,H RYceQy GuIlk Wʢo#(!1u`%L>r)\tH#9 58,f`O؁L8ֶqb`4&Gӈ-(ǫ+dknt5);U ee_ex0dyZ.''n!149r`Q6UybV2Up% 'P!Ct I.8R0GhL^KBPPb92Ĝe`Y,'O~;咃8Q3 [k+'P?txLApF֊VƋn94>dd7%J0"o'𦍏=j.; vjI9UA?edC AjH<},C]%<ĭ!@r!@3Q.4^(k.6+A!7+9"zhĪ:< d9L^EGھTSJbG(~~s0&FLhiA)a|:a1ۺBoQ>)$S\u4XU (($ mkicGb(&;[Y7cƠ^d9B.1Yʹ(\(hH#)qyjXt&bZ`M'BӋ4$U<;OV8jwUYJ_1b{qҡRJ7Û,?rE)P:f M>!Z,j#KW -B2ju@j[9\`$lYR3aF,JH\: ;A' ize<,49P8ܓlpP䡟L@B[c*"OZ) ΝXãh*V}4xR0WYBv1@ra.C9y@;EhꑳL5Fqƪ[1@v\]M8 "tgm(T"8+@٣ O7)o sۏG0Fϕ\hF׷f:npk>ha#?@+zDò6 c῕,tnDF L9{F&"Ka ~{ q1|.<)X RT$/1]" +`l= "ˑ˼ZCXap57,<,2Glhe"]P /^{3zl32dlLkDtH L&ƃiݪP;p̥[I+Ɛj(,SO| 6V1M~85HW⩁*C) H4E`s;`L8ph^'4`:\$\P*`h#`ApA&Å3hL@^NAL,A-q#`hֆ-߂dUQ xF/a6sZ57̶=uGaĪ0cİ60MHm;ځaZ7>ES?xWCp+u.yKp\&+hT& f&mz"m-Jw D>0Ƅɪ$&h%̲@+J<7 ̐9AaΥb,Vl zo1:-S5C5-f$>OcwC9Wv>qp\TkCt^LeIcS1G1t=Y΋*? ^y r^[.*{ޘ< 't_Ib C RgSC}A`MH`]]`?iw<өNdѬYaLH= O2%s / rdOb62=ʢPF /ϑ_bA9ZQSsXD(ZD蕹3%CߪwXQɼ9GI 2.?^ƈI $r@vY0 -c*X"21Dnz绊"Bg?!ֵ3(X Ar,p,~=W k<0P2#U.`~^oNHx#ةȲ[ʝ" w lzc K |sNByy?+hJJY<nk9bߙXDH7Rm# Fl΁5BfPjb܄ #Bn'IཌྷUbt_1#VϿL[EiNoMNNl'(_D[8)L5 '2MR\7WeH,DU7!Κw>L&I&TpD+A :"ĨlT9[ cN|*bTwj'f.AOv%yN>8AHcH 6rv6_;FmeԙҜ0ɼ2]AЂW˜˲Е# UKB\rW^dL聘 !B0G\,frRcoڭ˞Ix._,;.#XT:Aд/3z ` LנH!G~ܰ(g`*Xm2'CNo1- #50L$Y$`QzzDCYi]+iZllퟀL+sYLAstޚv?,Og7V!:@e&'Ҍ6M7LY`R`iVX _yY״aٜ,6k2w xsHpyfL}&<,oq0˯MMȅn{ƭc/5u2Hmdi`5Lt~*(nD@B\([50Qf=β#{Vdp"; 5.9gdi.I '  ֤N,ԆKkp6=ErNd}Ay&/Hl@CƑ1^ǎ֖"Khv89i kEcV*6SAdR(i0 X 䄩J66L ="뇩LaI eMMOV^CD ࡁ5~-,RAMaRPd 'y_R|xJ%:L3G N621N*a@H6(Fnn\dm[.avDmZ/@ 3~F$ԏ@DY DxH-QN.tGcM&DM'FŘ~`gF<)̖VJ=-Ea?ʒG(Qkk(V`=U~HݵXy 0+ݹ71ۗᯌx im v﷉`1iuKrpR󓸅z1?pڄ#GbUz/ġl(GJ/;\2˝hؐk<♗&D)0S[;H: -^M>Ms88 "T"µojwt%N @hд+'5=bA]W/ܲQj;mԚ*Ie Iv -?A+C~8EA7oYYN8Q>>uVGؼIbBGi4vX[;$P\Hﮇl} ?gM0L(rV*!qF5lpȾ\A*$zaH (1T׶/e&/Z[@ `JMXdKIp^j-~w(.XP;IaсniB !͸CټJqb+fD$ fw)kώ'JE1$<,tf$%-x/9?>1<9H>'+҇"  "  M# ,2U5w/)@,OF Btc0"h?X/pX2IQ04J OI:YER3#D= ySt(?hi{I`>5t JJ!NHI;yT_ތMWVKsCl rNXт }Վcvc2QT|rqAXaR]>?DTX#ɳxH51:gRUa)Ȃ1tۚPgY@?7 DhhAU8b_ JE.PWň|T9zb4){$[ 6\tI|Q #NfH1=R+БQY( ksjcaR_1HNj;>t1LNįP, 0~- jaWHWEJ@L:D4WAlZeMÇ3؈Gޕȇ\4*XORYt$ZȍiKɀ FDq`Q(SH`DՁF&DdZ?Lt"D("uH'XCBRT4vnz#P2 +o ZƍȌт (5F;TlxIDE'H;utF  [ "0>1]ڼKl?xfh8H M A3Ĥ,cLxGhg%~3ˊ뵞OqBn '2w&iR@v%A~.y"*cɘ@7JR̈[xXuks>CN*qf}S PMFj?^`d*zvAdݝt. " M*vכqmX Dq@ 2 tٙ> Cǃi ]vWd'l@6V,w3:/K|5e6VmϞmx-~I fn+"&&**2244DDFFGGHHII RR TT VV WW XXYYZZ\\mm   &>F""$$--7799::;; << == ?? JJ }} '~08 FFGGHHRRTT(Lz53!##$$66==DDFFGG HH JJ PP QQ RRSSTTUUVVYYZZ]]  )j"*  ""77<<LLMM*( -DL &&**2244FFGGHHRR TT XX YY ZZ \\mm  . JR3y=H\3\)\ ""&&**2244778899 :: << ?? LL YYZZ\\  />F""$$--7799::;; << == ?? JJ }} 2BJ)  $$--;;==DDFF GG HH JJ RR TTmm  34<f""$$7799::;;<< == ?? JJ MM }} 46>&&**224477<<FFGGHH RR TT    5H$,   666Cqqqqq\qqq\q3qq39##$$&&**2244 66 DD FF GG HHIIJJPPQQRRSSTTUUVVWWXXYYZZ[[\\]]mm$}}% !##$%7>"88\q{. ##$$&&**2244 66 DD FF GG HHJJPPQQRRSSTTUUVVWWXX]]mm}} 9xv~3\H)##$$&&**2244DD FF GG HH JJ PPQQRRSSTTUUVV]]mm :<D &&**2244FFGGHHRR TT mm   ;C\qq\\\\\\f\H\ffff8 ##$$&&**22 44 66 DD FF GGHHIIJJPPQQRRSSTTUUVVWWXXYYZZ[[\\]]mm$}}%  ! " $%<@H&&**2244DDFFGGHHRR TT WW YY mm  =DL\3""$$--667799:: ;; << == ?? DDJJ]]  b (q ""??YYZZDD.6f ""??IIJJYYZZ[[ \\ ]] }} E"* FFGGHHRRTTmmF.6f ""??IIJJYYZZ[[ \\ ]] }} H>F=3R==R"  ""??@@DDFF GG HH JJ RR TTVV]]``mm  I&. 5R FFGGHHMMRRTT Jb (q ""??YYZZK$, DDFFGGHHIIJJRRTT N(YOb (q ""??YYZZPb (q ""??YYZZQ.6f ""??IIJJYYZZ[[ \\ ]] }} R.6f ""??IIJJYYZZ[[ \\ ]] }} S$)MT(0 )q DDFFGGHHJJRRTT VV  U< JJVVV,W$, {FFGGHHJJRRTTmm  Y"* FFGGHHJJRRTTZz ( FFGGHHRRTT["* )FFGGHHMMRRTT\&. DDFFGGHHRRTTmm   ]h ( ??IILLYYZZH ??.6f ""??IIJJYYZZ[[ \\ ]] }} 4)qMM8@f=DDFFGGHHJJPPQQRR SS TT UU VV XX]]  L4<qm.&D (mmZ08}}.&)))==B$, H/,$8"F"* )mmF.6\`HqZ08}}B$, )Z08}}*"( `*2 HHmm8"h2:HHmm`*2 mmF"* mmd.6\3mm6&f6>q}}8"<& ??$?8":$ ??( > ( ??`$, )y\ *"?( ?&0  $&4$ $6& \&. )H ( $$=M *"$RM>*"$=M^.&)) 08\$$&&**224477::;;FF GG HH RR TT    *"3:BH/ qH&&**22447799::<<YY ZZ \\  4<q&&**22447799<<FFGG HH RR TT   m4<3{H --667799::;;<<==YY ]] }@08*"$, \q&&**22447799::<<?6&. "DL3h#$$&&**2244DDFFGGHH JJ PP QQ RR SSTTUUVVXX]]   2"* \&qv"* R $$--77;;<<==II *"X$)=77<<IIJJMMc$$, R&&**2244778899<<MM 2"* h (f $$--6677<<==#,$ 8latn TRK case2case8dpng@fracFligaNligaVnumr\ordnb ,4<DLT\dV$>X\F 2< (H (HHH$2DR $D $D 2R 2R {tuILLIIOOILx9$%&'()*+-./0123456789:;<=DKM]08 {tu tu{~l|l|$2DRB33fP [DAMA@ ffj  ,  ~Sx    " & / : _ !" Rx    " & / 9 _ !"pL7   !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvjsgwl|cnm}bعyqzrw{|pkgyumD,KLPXJvY#?+X=YKLPX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DdU./<2<2/<2<23!%!!D $hUDJ++/ֱ+/+ 999901747632#"'&>32#"&'++-+++-+!' !V-+++-++ <+3 +2+ +/ֱ + +01>32#"&%>32#"&)&%))&%)''7AE?/-56>$3%BC$2? +@?3 +:2/$DE$3  $2  +@  +2F/=ֱ7 7=+  +@  +7+ .+4 4/. G+6?+ =..=7 ?+ 4..4.  == += + = +77+44+..+$.+%.+-.+454+767+=>= +7B7+4C4+D4+7E7+ .47=........@ $%-56>BCDE................@.4901467!!&'47!623:!623:!!!!#"&'!#"&'!.%!!##%#!!X%%!#V"RR !j !yy P%wDB+B +@B< +9+)/2) +@ +# &E/ֱ, ,>+2:2: +6F+,9>B999:)1999 296#&99)B99017>732654.'.546756322.#"#"'5"#"& =L^=öKeHc9-\RD 1L-Po?Vj>ʹ  y!G =WGB';Vy\ @k7P<1#H`^#V-AM++=+E+= +3K= +3N/ֱ + .+B BH+8 O+ ($9HB!3='$9+.8BH$93 $9014>32#".732654&#" >32"#*4>32#".732654&#"V/\`^]//]^^\/m{wrl{ws#'"%(/\`^]//]^^\/m{wrl{ws\uDDu\\tBBt\XX\uDDu\\tBBt\5D1+9 +32@1 +*3#21 +3E/ֱ66  / 6+>+2, "2F+6&..ɰ6++ + ++ #9.....@> 19$9@991!999014>7.54>32.#"3!573!!#".732>7!"%Fd@`DuV1uB+X9NoF" VՁqƖV_$.X`3=u^#XR) %- )?R)on{}{>4jAoP)@j' #+ +/ֱ  +01>32#"&)&%)'f9 /ֱ !+014>7>32#"&'.f-J\- !VR;;RV*-\J-o"C--D#f9 /ֱ !+01>54.'>32#"&fVR;;RV"-\I..I\-*-;:-DݙDu &D++/$3'/ ֱ(+  99#$9 9901677&7632#*677.u r335  L-7'J 5-E=:-+! C.X= </32 +@ + /ְ2 2 +@ +!+0145<7!>32!!"#*'!`!"`!!#!{!#{=9 \/3 +/ֱ + / +6=:+ .@ 9901>32#*=o%%n$#kX{ " //+ ++01467!!.XF+ +* )u/)++/ֱ+01747632#"'&u++-+++-+V-+++-++j ++ /ִ + +013632#"j!$ %?o^3B+/ /ֱ + !+99 99014>32#".732#"oAz{AA{{Addee/= +2 +@ +/ֱ  +@ ++9013!!&5467!. $;)L)(3y5%;%+ /&/ֱ '+%9  9999017>54&#".'>32!!y=mP/h= 7wdu@%LsKqBz{yA}5??-^aB~P%q^-)/2 //./ ֱ$ /+6%+ .+-+-,-++ #9,-+9+,-.....+,-......@$ 99)9 $9999016732>54&#"'!&45<7!6232#".q'7\Xp@-X/)m  m`+\q+^aX\;@!#Tg >#Jq=v8`JL/3 2 +@ + +@ +/ְ2 2+99017!6323#"#*'!`g= %!!"#$@L#!^-+//!! +@ +/./ֱ / +@ + +& /+99 !+$9&9+9&99901>732>54.#"'!!>32#"&7{`Vl@!RiB')bfxD\obh; #Rg=sZ7#\=qhv8X#5X+'1/ /6/ֱ$$,+ 7+$99, $91'$90146$7>32#".732>54.#"V͚b3ɉN{LRXmEH|\44VtBDz_73@-! bt)b5q}w{@>+.ZT\R'3]fL  / /+ 90147!.'!.+<5%#M  !wV'7Gj#+++EH/ֱ((8  /8 (.+B  I+B8#+3$9E+ 3=$9014>7.54>32#".732654.'>54&#"w?e{99eL+Bq\\qA+Ke99{e?V\\V5Z}FHzZ661Pf55gP1o\bB?VoHL|Z00Z}KHoV?Ab\j]++]yBhP;;Ri9VB--BV9my9;-#5V//)1/6/ֱ$ $.+ 7+.$$9 991) $9014>32&'<7>7>7#".732>54&#"yRZmEV ͚b3ɉNzL3VuBDz^8H|]3Fw{?=᢮%3 cu(b5q\R'3\R/Xu/!/++ /ְ2 2 !+01747632#"'&47632#"'&u++-+++-+++-+++-+V-+++-++-+++-++=R! z+/ֱ+ / + +6=:+ ......@ 999901>32#*47632#"'&=o%%n$#J++-+++-+k-+++-++w47 .X:/c#!3&#% b#  ///+01467!!.467!!.ii- .) )- .) )w467&547 &X9%#% #/!"3X!1^+ + +0/$2/"ֱ**"+ *+3+ &.$9$9901>32#"&'7>54&#".47632#"'&XZZZ{}#%&F3hT4Ş`s7  ++-+++-+ٻhd: =3JgC9-+++-++FT+/ +PB/9/'J2'U/ֱ4 4+GG,+ V+6>+ MN$##$MN....#$MN....@,G /9?B$99<9'9P ,4$9014>$32#"'#".54>3232>5!" 3267#"$&%3267&#"9u3qHǁV;NLvP)^yJ~DL!\d4z`^HJDžsbep1];37\wF{ϚZTy7'#2VrB`  kbJ!4)"\smJ)+33+3 +32/ֱ++6$3+ ++.....@99013>32#"&'!#"&!)2/ -)zt,,+ ?w3N+6y+ +362,+ +,7/ֱ ,2%+ %+0 0/ 8+90 $9+ 9,93 9013>32#".732>54.+532654&#"LVX#'BX/?w]7X!RTOp`5PwG=kRæ5`?iT93\aoj4 wFrVVuJ!wo'#++3 #+ 3(/ֱ+)+6& . .ɰ6+A+   + +  + #9 .. ....@# 9 999014>32.#"3267#".`'7F\=yIRp`5FjbѸ!h% %1# XJ%9#'c E +2+!/ֱ + "+ 99 9013>32!".732>5!"S_^'Z+b]Ps%d6V/m#h ==*D++   + /ֱ 2 +@ +@ ++013!!!!!y $'  #' #( :++   + /ֱ 2 +@ ++013!!!!#"&%( $'  #' 3,(++3 2 (+-/ֱ+#+ /# .+6& . .ɰ6=<+   + +  + #9 9 .. ....@(99(#9 "$9014>32.#"3267>32#".g5-uučPVp\~-)&#`mr8iѸ!h#%5##XJo3 _?+3+ 3 + /ֱ 2+ 2 !+013>32!>32#"&'!#"&)%%) '&+%(s?3\ ! ++/ֱ  +013>32#"&)%%(?=P>++ / ֱ  +@  ++9 90176732>5!.5467!#"&=F(%LB)9a{A=]9D+RC #' dZ{J # +3+3/ֱ +013>32#"&>32 #"&')%%(#)F/(??,++/ֱ  +@ ++013>32! '%u '# %l#+3+ 3&/ֱ  / +  '+#99 99 9#99013>32 >32#"&'"#*'#"&H 55 86H%' 8ko<%(+?LN+3+ 3/ֱ + +999999013>32>32#"&'#"&/-#' /-?#%/?9D'D++#(/ֱ + )+99# 99014>32#".732>54.#"L晚LL嚚L7pwws77swwp7qq馦qq]]鋋\\,R++) +-/ֱ 2$+ .+9$99) 9013>32#"&'#"&32>54.#"JX\%yōNXl/F-%('JuG7fZ5R 1kxr6LqZyI!J'/++#0/ֱ + ,2 +@( +1+6+ (./+,(+,/....+/..@99# 99014>32#".732>54.#"467L晚LL嚚L7pwws77swwp7^  qq馦qq]]鋋\\#9T#< ,L*+3+#-/ֱ' ' + .+ '$9 99#* 9013>32"#*'57>54&#"#"&-C@F/b\9\y@)'-Fd>Ũ+J3)%)dPiK 732>54.'.54632.#"#"&s =K_=b\-LdHb9-\PC 1K-Po?Vj>L}y!G 0Om@=XJC'=X{\ ?k7R=3#Jb^jp<#%$++ 2/ֱ +01467!!#"&'!.%u&' u% "' B #7+ +3/ֱ + +901>32326>32! *%+X^%*5r3yt'?=++ 3/ֱ++99901>32 >32#"&'? 02,0 626?J%"+33+333&/ֱ+'+6=+ .(+ . ..........@%9901>32 >32 >32#"&' #"&'J 11R 8:P!'/ :<9<##?3 +3+3 /!+013 >32 "#"& >32 #"&'3!,Rw*)T*+%G O1f0++ 3/ֱ +9901>32 >32#"&'1 -4{'- 2&'  b#F.+ +/+ 9 9017!.5467!!!A5 %/ &'  )# f5/  //ִ +2  +2+01!!!f T  ^ ++ /ִ + +01632#"'^%!%?hG// /ֲ222 +  /  +/ 33+0147!!.5<7!!.5h k l   + / +01>32# P,++P9`^ / / +0147!!&h) "+ + /ִ + +01>3:#"')1/%/%q{--u+$+ + +(32./ֱ '+2 /+99' $9$9+9 99014>3254&#".5>32#"&73267.#"q?q_Jj#}R6 5RH\ۇ3Rb1?o6#i/)RX- ?}FMDQ+  r9&M+ +!'/ֱ 2+ (+ 999!99017>32>32!"&732>54&#" , - +`q?\O/i;RpD1s`@Bh;#s5ow!Mcy-!=++"/ֱ #+9 9999014>32.#"3267# yA}N))}G\\-Ӵ=q- 3P uǓTE?s^F&Q++"'/ֱ +2 (+999"99014>32>32#".73267.#"JsD) - , ?fqŏT˺D{#)D`_/ӑN86{Ș Au{-'j++% +(/ֱ 2 + )+ 999  99999 99014>32!3267#".7!4.#"{7q{fm7N@ ;^};c!FnNsȘVF}f:AP?|\9H*8#++3(2/  +/&ְ2 2,+01467354632.#"!!#"&'#.H+H >#5R7 + . ! ] '1 ;kTV ! ^ R5-=O[L+0+Y+9/C&SL +&\/ ֱP +2 > P/PV+! F!V+4 4F +@4 +]+P 9V &19CL$9!2999LC4990299&+99S (99 !PV$9901467.5467.54>32>3##"'3#".732654&/"#"32654&#"RZH'5K@HV3gcT1>IN%>lSXB90 'E8 Rw\q=-Pj32>32#"&'4&#"#"& , - BVmB , - smH|Z4 + -y%L=%mj5igm{']++%+ (/ֱ  / / /)+ "99901467!#"&'#.467>32#"&'.m + - ?6216!  12663i+1+ /4/ ֱ  /( /(5+ 9( ".999 901>732>5#.5467!#"&467>32#"&'.D /H<5' 1Pf4?R6216C=< ! Vo?1266  +3+/ֱ +013>32#"&672 #"' , - - +w!'-)%$-+%+ /ֱ +017>323267#". , - %-1 G+VD)5<8 3X-Bj@+ 033++37'2C/ֱ=  22=3+- -#+ D+3=9-9#97@ 99013>32>32>32#"&'4&#"#"&'4&#"#"&:Nd@;V@+9J`; + - lmBbA# + - e^?kN+ + -%f)'J9#3E+!E7#fj5ZyD?s^-(I&+3++)/ֱ#  22#+ *+#9& 9013>32>32#"&'4&#"#"&BXsD , - mmH~\6 + -%n)%L='mj9mfy-D++ /ֱ + !+99 99014>32#".732654&#"y9uuut<32>32#"&'#"&32>54&#" % % +`q?Iυ1s/ - +z/eTPk=1s`@Bf;זPj3ow!Oc}-*Y+ "+&/+/ֱ +"2 ,+99&"99 9014>32#"&'#".73267.#"}P{9\PJ' . + 1sBmR8fTD)=Q9hg3ՕP  2xDžd^-! E 7+ +3!/ֱ  22"+ 9 9013>32>3:.#"#"&)y  + -%d)Li#!q--1l/++ 2/ֱ +* 3+ 9&/$9*99/9 *$90176732654.'.54632.#"#"&q -B{+HZ/3eN/P) +H}h"=mP7H1)@ZC};:XG'8' +FjPJyT--V#9++3!2$/ְ2 2%+!9014673573!!327#"&5#.-+7H5Jcu } ! X3} !?+ +3 /ֱ + !+9 901>323267>32#". - + -XPDj) . + Lb`}JSoP  %i5!++ 3/+901>32 >32#"'5 .2 JO *) ` !!yD!+333+$3"/ֱ + #+6=q+ .›+ .=+ ...........@!901>32>3:>32#"'#"'D '0 '$ #) %"'!%#' xl`)  +3+ 3/+013 672 #" 672 #"')7%#'*#")+%!%4)'%!! '!"++ 3/#/$+99901>32 >32#"&'47326?#"&'! -1 [S *) 5%\+XB);HT'/  qZ ?39N?w.+ +/+ 9 9017!.5467!!!?a?! ! y ! f4?,/&/ 5//ְ2! 2!/ +!) + 26+&/99015>=463"3"&=4.f;U3Rb3'C33C'3cQө3TP!CVmJ 'V\hgGGgi\V'  ѝJmVC 9 /ֱ  +01>32#"& '##%sh412//5/ְ2/ "26+"/99014672>=4>7.=4.#.54672#.hR`5'C33C'5aQө5T<;U5 'V\hgGGgi\V' ѝJmVC!!CVmJ 1/3 22 + 322/+6ª+ . . ¢+  + +++ #9999.... ........@ 9901>323267#".#"&1>HL"/]\\/)X1 3sN-^\]+1d1//+#!/7-5'/!V!4+/ֱ+ + 990147632"'&>32#"&++-+++-+!!(-+++-++*R // +/ֱ '+2$2,+$'99 999 9014>756.#"3267&'5&7om93 +33>%=22A/ְ2 +22:+( B+6+ =.%=+X+ =+%+%+% #9=9....%=......@+349>:999 9014673.54>32.#"!!!!'7>54&'#.3jsh)9yFPnF!k 3'B/'5! ! ?G\yD!%/"1VyFDA ! 5h6b' '# 0'^b`+5i5 ^o+?o%/1;/@/ֱ, ,6+ A+, )$96 "($9!$91%"($9;$9 99017.5467'>7>327'#"&'.32>54.#"^'+/)45GH5/)/-)-5JJ6#--PoABnR--RnBBnP--5HJ7#- %++'-7JH5/)++)1BpT11TpBBrT11TrL1\ +%/3)2,/3022/#ְ*2 2# +@ +2# +@#' +.23+#901>32 >32!!!!#"&'!&547!5!&547!L -3z(. wRhh%( jjNqV!!B #!# 9 / ְ2 2 +01>32#"&'>32#"& '##% '##%PXXAW?/(/X/ְ2B  + BN+4 4:  /: Y+6+  EF+ RQ01  + + #9 9@ 01EFQR ..........@ 01EFQR ..........@+9 (?IU$9:"%7999?9(%:IU$9"9017>732654./.5467.54>32.#"#"&>54&/.' 9`#;L)L`5@+#@n\jH9{_4E)\{A-&A{obCLN TN,9+-"`N%5) F9?J)Jt2W:?mM+ !5#TX)8$ PjgR{1U:DlN)9HV #+55BRT//32 /ֱ+!+0147632#"'&%47632#"'&'++)))-''++)))-'=-,+,-+++-,+,-++}m'I+#6+53-.2/E/<3/J/ֱ (+9 90++ K+6&30.03.ɰ6\+ 350.+ ./.0+5453+/.0 #94539/4.../45....@9#-BE$954.#"4>32.#"3267#".}ooo說oV摑VV摑V9iZLV) +M/+U# )t<\i7ߢus餤uuee酅ddbwB #- +=sT+/")/ / 32,/ֱ%+2-+6++ .   + + + #9 9  ....  ......@%999"9)901463254&#".5>32#"&73267.#"ɟ3[jk=m/ )H;N{)AR'3X+Q#}V'f[H  {1= #VqXc 672 #"'672 #"'qf%'')_%')'f%'')_%')'#@7@70 /  +@ +/ ֱ  +@  ++01467!#"&'!.H )- C-  )X{ " //+ ++01467!!.XF+ +* )}m'O+#G+,G, +@GM +:2/P/ֱ (+JJD+11+ Q+DJ#,6>$91<=997:99G 1$90146$32#"$&732>54.#">32"#*'7>54&#"#"&}ooo說oV摑VV摑V/a97o\9-: /71lL-- ߢus餤uuee酅dd8\H/I:) q )5#FFP { " //+ ++01467!!.2B # # $#VB+/ /ֱ+ !+99 99014>32#".732654&#"V/Pj<;kP//Pk;;kP/y`LL``LL`=kN--Nk==kN--Nk=NffNNff -C /-/#32- +@-' +./+ְ2% 2+% +@+ +/+017467!!.45<7!>32!!"#*'!i`!"`!!H- .) )d#!{!#{uD///ֱ  +@ ++9 999 901>54&#".'>32!!P`e\;R#;f<\^udP9H= @#{uZ\sp\#C!//$/ֱ %+99!9999901772>54.#*'!5!#"&dZ/V@%#7J' ?[97cPD_{n+@/';% $k/CN#DjJ'+ "++ /ִ + +016232#"+.1%/ )+O+#+ +3)/,/ֱ& 2&+2 -+& 9  %9901>3232>5>32#*'&'#"'#"& . + 1s`@ - , % ( +_ - +ܼ!Pb`DKBff;+3+3/ ֱ +/++014>3"&'#".2f@-8dyB -77yk/'1bJ?u/"//ֱ+0147632#"'&u++-+++-+5-+++-+++1B/ /(+ +@ +/ ֱ +9 $90146732654&#"'36232#"&+A!FQPA5 dwH  heX-3 /1-% bLbc uF /2 +@ +/ֱ  +@ + +@ ++901%33!&5473.y3#Z8\wB+/ /ֱ + !+99 99014>32#".732654&#"1_\\_//_\\_1uywuuwyuZuBBu[^tDDt^mX] 7 672 #"% 672 #"m^%&')g%')^%&')g%')^<;<;"> +93>/43'.2'> +@'+ + /2 +@ +2?/ֱ  +@ + +@ +<+(26-2@+99<"#$'$96&9'>#901%33!&5473. >32"#*%!56723##"&'5!y#'"%(V;9#jj !N3#Z8 X " "="+<3: /2 +@ +* +3>/ֱ  +@ + +@ +'+6 6' +@6; +?+"999' #03:=$9:"#9 '699* -99930901%33!&5473. >32"#*%>54&#".'>32!!yc#'"%(FP`e\;R#;f<\^ud3#Z8 XP9H= @#{uZ\sp#1M/+M/C36=2M6 +@MH +6M +@6: +!//(2N/ֱ K+72E<2O+,/$9K%+236$9E596M29/935$9%+99901772>54.#*'!5!#"& >32"#*%!56723##"&'5!dZ/V@%#7J' ?[97cPD_?#'"%(V;9#jj !N{n+@/';% $k/CN#DjJ'X " X!!1e$+0/ + +2/ֱ"+* *"+ / 3+ &.$9909014>75>323267#"&47632"'&Z{}#%%E5gT3Ğ`s7  ZZZ++.++,-+hd9 4IgC9%-+++-++)# #+33+3! +"32$/ֱ+%+6$3+ ###+"#+#."#....@!$9013>32#"&'!#"&632#"'!)2/ -)zt,,-710%#3% ?w3)##+33+3 +32$/ֱ+%+6$3+ ++.....@$9013>32#"&'!#"&!7632#")2/ -)zt,,+ -45/%3#?w3 )#),+33+3* ++32-/ֱ+.+6$3+ ,,,++,+,.+,....@*$9013>32#"&'!#"&%632#"&/#"&!)2/ -)zt,,%'#),01'-1 ?w;3)9144+33+32 +332-/,32-+3()25/ֱ+6+6+ ,..,)$3+ 444+>+ ++,*,)++,)+434+ #99+,)9*94*+.....@ 34)*+,............@%2$9(%099"99013>32#"&'!#"&>323267#".#"&!)2/ -)zt,,b;-\XT))7% !`=-XXR'/9##E ?w!?%+""#.;#)#%)R3) &)9+33+3' +(32%/43,2:/ֱ+*+22+;+6$3+ )))+()+).()....@'99*9013>32#"&'!#"&47632#"'&!47632#"'&)2/ -)zt,,-+1))/--- {'1+//)3'?w-//+/--3{-//+/--)} #/+33/3!"2-/ (+0/ֱ+$$*++1+6$3+ ###+"#+#.."#....@!99*$ 99-!'$9013.54>32#"&'!#"&!32654&#")FO!=V53W=#PD -)zt,,+ v=;;>>;;=uN1T=%%=T1LuDw3i;ON<;NN!%^+ 3+ $2"  +   + &/ְ#2 2 +@ +@ +@ +'+01#!!!!!!!#"!##`y/'+ $' #' #( yPE#+A++3-/632.#"3267#6232#"&'46732654&#"'7.`'7F\=yIRp`5Fl'  hgX# A!FQOB5 L͑PѸ!h% %1# XJ%9#'bdLbc 7 -1-%q#$L++   + %/ֱ 2 +@ +@ +&+9013!!!!!632#"'yC-710%#3% $'  #' #( #$D++   + %/ֱ 2 +@ +@ +&+013!!!!!7632#"y-45/%3# $'  #' #( 9#-N++   + ./ֱ 2 +@ +@ +/++99013!!!!!%632#"&/#"&y%'#),01'- $'  #' #( 9 *:|++   + )/53-2;/ֱ 2 +@ +@ ++#++3<+#'993+ 999013!!!!!47632#"'&%47632#"'&y--+1))/--'1+//)3' $'  #' #( -//+/----//+/--# %++/ ֱ +  901632#"'>32#"&-710%#3%?)%%(?+# %++/ ֱ + 9017632#">32#"&-45/%3#')%%(9?c# )++!/ֱ "+ 99901%632#"&/#"&>32#"&3%'#),01'-)%%(9?N -@++/(3 2./ֱ+ +&/+0147632#"'&>32#"&47632#"'&-+1))/--)%%('1+//)3'-//+/--?-//+/--+32i+2 +& +13*23/ְ2 )2 +@. +#+ 4+# 99#99014673>32!".'#.32>5!"!!+S^_'Z+c\PP%d5V/l#n # h #==* # #98+3+ 34/33!"2&!4+%3/029/ֱ + :+6+ 3.%.3"%0>+ "#"%+$"%+3130+230+#"% #9$9230919#$12...."#$%0123........@9)/$9,9999&/,799!)99013>32>32#"&'#"&>323267#".#"&/-#' /-?#%~b;-\XT))7% !`=-XXR'/9##/?9!?%+""#.;#)#%)D#'1G++#2/ֱ + 3+(-$9# 99014>32#".732>54.#"632#"'L晚LL嚚L7pwws77swwp7-710%#3%qq馦qq]]鋋\\D#'1G++#2/ֱ + 3+(-$9# 99014>32#".732>54.#"7632#"L晚LL嚚L7pwws77swwp7"-45/%3#qq馦qq]]鋋\\D#':G++#;/ֱ + <+(.$9# 99014>32#".732>54.#"%632#"&/#"&L晚LL嚚L7pwws77swwp7%'#),01'-qq馦qq]]鋋\\D9'B++#>/=3+,20+>+/39:2C/ֱ + D+6+ =./.=,/:>+ ,-,/+.,/+=;=:+<=:+-,/ #9.9<=:9;9-.;<....,-./:;<=........@(6$9# 99096A99+(399014>32#".732>54.#">323267#".#"&L晚LL嚚L7pwws77swwp7db;-\XT))7% !`=-XXR'/9##qq馦qq]]鋋\\l!?%+""#.;#)#%)D '7Gj++#6/B3*:2H/ֱ (+008+@@+ I+80#$9# 99014>32#".732>54.#"47632#"'&%47632#"'&L晚LL嚚L7pwws77swwp7-+1))/--'1+//)3'qq馦qq]]鋋\\;-//+/----//+/--}J 67   &'7 7'+33 3++49%'D!-9k ++1+ +):/ְ2" "6+ 2;+" 9996 &.$9)1 %9$90137&54>327632#"&'#".#"32>54&'HELwGP%##"JJL{JR#"#s(+7awp77bws7+/fqF?mdqHBq{P7>\v;@]}P#';+ +3(/ֱ + )+#99901>32326>32! 632#"'*%+X^%*-710%#3%5r3yt'#';+ +3(/ֱ + )+#99901>32326>32! 7632#"*%+X^%*}-45/%3#5r3yt'+#0;+ +31/ֱ + 2+$99901>32326>32! %632#"&/#"&*%+X^%*%'#),01'-5r3yt'+ -=\+ +3,/83 02>/ֱ +&&.+66+ ?+.& 9901>32326>32! 47632#"'&%47632#"'&*%+X^%*-+1))/--'1+//)3'5r3yt'-//+/----//+/--1f#!4++ 3"/ֱ #+ 999901>32 >32#"&'7632#"1 -4{'- 2&' --45/%3# b#3]++$ + . +1333 24/ֱ 22)+ 5+) 99.$9013>32>32#"&'#"&32>54.#"%( -F/mƖXXl/F-%('JuGGuI' 5ss5LqoLB@++#7/C/ֱ= =/+ 4+ ( + D+/= 7$94#,999  99#@97  9990134>32#"&'>732>54.54>54&#"#"&!Rm:G:1JVJ13X{HRp/ -\;%H7#1HTH13254&#".5>32#"&>3:#"'3267.#"q?q_Jj#}R6 5RH\r1/%/%3Rb1?o6#i/)RX- ?}FMJoDQ+  rq{-9+$2++ + +(32:/ֱ '+2 ;+99' .26$959+$9 999289014>3254&#".5>32#"&73267.#"6232#"q?q_Jj#}R6 5RH\ۇ3Rb1?o6#i/h.1%/)RX- ?}FMDQ+  r& q{2A+8#++ ? +<32B/ֱ3 3;+2 C+3999;  &,1$9')99?89 999#)9014>3254&#".5>32#"&>32#"&/#"3267.#"q?q_Jj#}R6 5RH\M/2##2/%3Rb1?o6#i/)RX- ?}FM? uDQ+  rq{8G+>+ E +B324/33"#2'"4+/H/ֱ9 9A+2 I+6(+ 3.1#%+ $#%+3231+$#% #92319$%12....#$%123......@97$9A "'/4$9*,99E>9 99'/,799014>3254&#".5>32#"&>323267#".#"&3267.#"q?q_Jj#}R6 5RH\GV=1PJJ+#9)!X;/PHJ)+9'#23Rb1?o6#i/)RX- ?}FM#9!'!%/3!7 '! !/DQ+  rq{.=M+4+ ; +832-/H3!@2N/ֱ'/'+ // '7+2 F7+>>/FO+7BJ$9;49 99014>3254&#".5>32#"&47632#"'&3267.#"47632#"'&q?q_Jj#}R6 5RH\ۄ'++)))-'3Rb1?o6#i/'++)))-')RX- ?}FM-,+,-++DQ+  r-,+,-++q{X-9E+$+ + +(327/=(+C/1(+F/ֱ .+:O+:@+4O+4'+2 G+@: $+71$9+$9 99C=4.99014>3254&#".5>32#"&73267.#"4632#"&732654&#"q?q_Jj#}R6 5RH\ۇ3Rb1?o6#i/Qq^`qob`og17922971)RX- ?}FMDQ+  rXyyXVyyV5@@55BBdV-<PY8+23B)2+3 W2Q$8 +K3Q2Z/ֱ= = +J2Q $2QR+ [+=99  8B$9QG99R)25$9 #,/999$B,=G$98 599 999014>3254&#".5>32>32!3267#"&'#".732>7.5'.#"%!4.#"d@p^Ho"|R5 5Q45{fm7.\fN@ ;^oC?pZh83K])!QRR###h-b!FnN)RV-A}F\iZkF}f:oc+A2;+B%N{XDQ+!5N)n?z^7y-@y +>++*/39/$(+A/ֱ 6+'B+6@  !$*-=>$993'0<=$9 9 999014>32.#"3267+6232#"&'46732654&#"'7&yA}N))}G\\-Ӵ=q- 3P(  heX#A!FQPA5 L uǓTE?s^FdbLbc 3 /1-%#{'3u++++% +4/ֱ 2 + 5+ (/$9  9999% 99+19014>32!3267#".7!4.#">3:#"'{7q{fm7N@ ;^};c!FnN#1/%/%sȘVF}f:AP?|\9{'3u+,++% +4/ֱ 2 + 5+ (/$9  9999% 99,29014>32!3267#".7!4.#"6232#"{7q{fm7N@ ;^};c!FnN.1%/sȘVF}f:AP?|\9 {2;~+#++93 +332!3267#".>32#"&/#"!4.#"{7q{fm7N@ ;^};/2##2/%c!FnNsȘVF}f:AP1 ?|\9{'7G~++% +6/B3*:2H/ֱ 2(+008+@@ + I+80%$99 99014>32!3267#".7!4.#"47632#"'&%47632#"'&{7q{fm7N@ ;^};c!FnN'++)))-''++)))-'sȘVF}f:AP?|\97-,+,-+++-,+,-++ H+++/ֱ  /+ 99 9 901>3:#"'467!#"&'#.1/%/% + - !  mM+++ / ֱ  /3+ 9999901467!#"&'#.56232#"m + - .1%/!   c#L+++!$/ֱ  /%+99999 901>32#"&/#"467!#"&'#.-/2##2/%y + -  !  8/N++/*3"20/ֱ+  / +(1+0147632#"'&467!#"&'#.47632#"'&'++)))-'o + - '++)))-'=-,+,-++!  t-,+,-++y;/;m++39//!232.'.'.'7.'&54677#".732654&#"y9uuL5   'dB 7|Cϓ {y9mM--  "o51d #+ Yr7^}LpѲ(B&+3++>/=3,-21,>+9C/ֱ#  22#+ D+6(+ =.;-/+ .-/+=<=;+.-/ #9<=;9./;<....-./;<=......@#)A99,49>$969196A99013>32>32#"&'4&#"#"&>323267#".#"&BXsD , - mmH~\6 + -5V=1PJJ+#9)!X;/PHJ)+9'#%n)%L='mj9mfN#9!'!%/3!7 '! !/y+T+#++,/ֱ + -+ '$9 99#)9014>32#".32654&#">3:#"'y9uuut<32#".32654&#"6232#"y9uuut<32#".>32#"&/#"32654&#"y9uuut<32#".>323267#".#"&32654&#"y9uuut<32#".732654&#"47632#"'&%47632#"'&y9uuut<327672#"'#"'7.7.#"32654'y9uu^7A%!}d)oG}L}/ sɓT93SsȔTV=Jtjl+/DƓi+W+ #++3,/ֱ + -+ 9#'+$9 9#)901>323267>32#".>3:#"' - + -XPDj) . + Lb`}J1/%/%SoP  %i+W+ $++3,/ֱ + -+ $($9'9 9$*901>323267>32#".6232#" - + -XPDj) . + Lb`}J%.1%/SoP  %i 3^+ $++34/ֱ + 5+ 9!'*2$9(9 9$*901>323267>32#".>32#"&/#" - + -XPDj) . + Lb`}JX/2##2/%SoP  %i /?j+ +3./:3"22@/ֱ  +((+ 8+00/8A+0( 99 901>323267>32#".47632#"'&%47632#"'& - + -XPDj) . + Lb`}J'++)))-''++)))-'SoP  %i-,+,-+++-,+,-++!".6'++ 3///0+999'-901>32 >32#"&'47326?#"&'6232#"! -1 [S *) 5%\+XB);HT'/ .1%/ qZ ?39N 9/\+" + +*/0/ֱ 22'+ 1+' 99*'99901>32>32#"&'#"&32>54&#" , + +`q?Iυ1s/ - +z/eTPk=1s`@Bf;זPj3ow!Oc!"2B^+ 3/1/=3%52C/#ֱ++3+;D++#"99939999901>32 >32#"&'47326?#"&'47632#"'&%47632#"'&! -1 [S *) 5%\+XB);HT'/ '++)))-''++)))-' qZ ?39N=-,+,-+++-,+,-++}):x"+%+/++6% +;/ֱ* *2+ 2<+2*%99"9"29*9939014>32!!!!!!#".73267.#"}P?7y9@L:tv?x55m?wy<q  $'  #' #( q]  \{-*6?&+ 3.2+ 34=27& +7@/ֱ+ +1+ 728+ A+1+&99#998  999999.&9#997+1$949014>32>32!3267#"&'#".732654&#"!4.#"{9uu53Õfm7N? ;_57Íuu9b!EoN sɓTqqL^:A{uTrkH{X31f '7S++ 3&/23*28/ֱ  + (+09+9901>32 >32#"&'47632#"'&%47632#"'&1 -4{'- 2&' -+1))/--'1+//)3' b#-//+/----//+/--F0+3+2/ִ ++901>32#"&/#"/2##2/% T/32+/ִ ++6(+ .+ ++ #99..........@ 99 9901>323267#".#"&V=1PJJ+#9)!X;/PHJ)+9'#L#9!'!%/3!7 '! !/X{ 467!!.XF+ +* )X{ 467!!.XF+ +* )X{ 467!!.XF+ +* )  //+01467!!.H##& '  //+01467!!.H##& 'f'b `+ + 2+3/ ֱ  + / +6:C+ @ 9 9 901>32"#*'f&%n#$jf'b `+ +2+3/ֱ + / +6=C+ @ 9 9901>32"#*fo#%n$#+jfb \/3 +/ֱ + / +6=:+ .@ 9901>32#*fo%%n$#kg& + +2/ֱ + / + + / +6=:+ .=:+ .....@99013:7.#"3:7.#"gn$#o%%bn$#o%%kkf& z+3 +222+33/ֱ + / + + / +6=:+ =:+ @01>32#*%>32#*fo%%n$#do%%n$#+kkf /333 +2/ֱ + / + + / +6=:+ =:+ ..@01>32#*%>32#*fo%%n$#do%%n$#kk#f./ + +/ִ + ++014>32#".$>T1/T>$$>T/1T>$ /T>%%>T/1T=%%=Tu/E+*33"22+0/ֱ+ +(1+01747632#"'&%47632#"'&%47632#"'&u++-+++-+++-+++-+++-+++-+V-+++-+++-+++-+++-+++-++qXs  /ִ + +01672 #"'qf%'')_%')'#@7mXo ! /ְ2 + +9017 672 #"m^%&')g%')^<;1A<+3+ @< +*3@/2 < +#32B/ֱ'' +@'- +!2' +@ + 2C+'?99@36901473&45467#&547332.#"!!!!3267# #&1/5'?N)Ti)`5Fk+1#+=!# % %1"!=+!ӿ%9#' ?oV;/ 3"22 +@ +)92232>32#*' #"&' #*?v'%!#%   m@5ZG1!H0m)+ 3+3.$2/1/,ְ2& 2,& +@, +&#+ 2+#&99 999 901467354632.#"!#"&'!#"&'#.H!7+2-99# 9 9014673546323267#".5.#"!!#"&'#.Hb-%-0 G+VC)%^.BeD#  + . ! ] %5<8 3XH=mTV ! ^ HdMF+4=33 +!3$2 ')3322+/33K8A22N/Iְ2C 2IC +@I +C@+2: .2:7+1 O+@C 997:&991$!99F&901467354632.#"!54632.#"!#"&'!#"&'!#"&'#.H+P <#5R7!72.|PV|.b8x@>0h 4 !!!"2"n""#`##$6$%p&&&'(()))*$*+ +^+,,l,--H-v-..b./B/01:12B234v556h67(7808l889\9:;*;<<==>R>??|@@^@ArBBCJD4DEFGGH.HIpIJJ|JKLNLM&MNhNOROPFPQ8QR4RS@STUU>UUUUUUUUUUUUUUVV8V`VVW@WX0XXYBYBYhYYZ6ZZ[j[\]v\ ~   @$ &d       0Aller LightRegularDaltonMaagLtd.: Aller Light 2008Aller Light RegularVersion 1.00Aller-LightDalton Maag Ltd.Aller LightWebfont 1.0Mon Mar 11 05:56:57 2013gf  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`a bcdefghjikmlnoqprsutvwxzy{}|~    glyph1uni000Duni00A0uni00ADuni00B2uni00B3uni00B5uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FEurouniE000uniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D E++D Ew++D EH++D E++D E$++D E+D E +Fv+D E +Fv+D E f+Fv+D E 8+Fv+D E )+Fv+D E(+Fv+D E+Fv+D E+Fv+D E+Fv+DY+Q=iimmutable-tuple-0.4.10/docs/public/fonts/aller-light.woff000066400000000000000000001005441342041553400233350ustar00rootroot00000000000000wOFFd FFTM^rGDEFIVGPOS;AS_GGSUB859EOS/2X`ncmap8B*cvt << fpgmeS/gaspglyf^없kheadyh16Lhheay $ihmtxy<[iIloca{e17maxp} name} rCpost~-prepҨwebf\jQ==љ cZxM@@D7+ Gs# '1\dn1TզI@c[ j\#M;>ͣ_| x[}\u?yyw]/]z6SΆ84ِ9XQ[LJ@PvIڀ" !$:#8t"1U "[F0MbQB4B(B?"٭Ryowι{,"J͐gJu-|;>~{\WKPe[Ek+~Ykܺݾ]h|MǓ'Rc;rN*YUo9a"Ct z]BFp޻[2hxuiX,bfFYbܷ ~N?"r{Xi?d/,]ŒY4Raq^۩,iK~R_XTg)?Y_,%oz۷YX@_M? h+Y'Y]WC,t;lս'X%7z7IEo}z)~n u-л/ijxmԕWeX61X=})[l+Y2,}%Gc0+3zrsCߢ$!Lh?͒ǸMAtK@סK=EnYL /[Xg ,''fK|XڴO{cuzY.Xܫ2,-68\8I\6d,]ΒcOo~"=b//6msZ\j uipY @1`D@$Db|Op2EKLjA͢]ܛIu9 5hQn\Q}Zξ) .@l#n80I.쐄RC(e,Y KӇX O>R`{ _e`gLÞ,9X5aռYd'NGnƶB4 fZ` ~AU1#%'`[C|C|YZgq~~E}SZjFl@Y?`G6⑃xC'QC^[Isu8J/x%W c*_#.Ed %d e؅lhBЃla55zY!>#՛j5Xn$$o Ÿ3`H Ƀ! Pux҅I9];#ij҇# d" 'Σ~:ǶD[w ǘB[śOh1|5#٭W㫏A{]s9jڟUcQ9#l)-E.lY-5`E/XV `E4ւ% >5F縖3Y"|%U-*W$1'>Җ#gO~m{A%T@*Ii~^ xGxG xG{/㰾 뻰~ OY#WfWٕ *E/|>X92j3gZ#!UÆk+sȨ3̟E,tB;52]mh,#TtW"#FU*afb; 9;w ~9(Qx wEd0M/}ROf(Z[fN-bK)/fkc`9P)Ys jTsޤk߲fI¹Z|Qr,rT›tjv(f.تa<=0*=&T mRy194WW-i.*g}1[H_ѱqI[Xx~OKYSwa_IY ~20UL2l\?f%>Oa?k_j@ 00;fجf{6Xk]68Ը57m*~G:x )2oh5Q=Pê^9hVꪁy'0K]cā1h pV4o!UK_a^ ڧrnX R9W{tlѶ]] ~_oؠ#~qυ~JġA @eEFTzw;O9_ZjU=h 76ҾhVh{;7U^_3; b,Cz>.>5TѡN +#+\56q>ʝXMg1dxougIY 3 osm1x[˜$mj4b͇\9OՍQذ{9hAm %Gn5| ŝ[U@53# j;IX"K$`1LoWEd%5=_Rd=[~D{o8ܲ2F"Zy˷ZZa_3-k\UYE:9j {:yS%'9  j`ESD3_єhG4KMBjAJQ2ŸHc3AH5ꀋڵѢQ)_-j5m~Ü1뚦mQT?\T?T?~ds'beeE+m+y=?M˰`-Â]MC]RNF%z[\V+I2Z(C#yk.4wIZHr8!.l|Xӡ}潛C1 Zj<}ベ[4W:E^twq:tj?u0`$Y{oҹ΁ᶹOUSj썬d:ȝGp^zFܕG79]<fٟncv]USVFs[ǰԾys@@b65VЬY_5c {sEVtsy L*P;9s?Z&1WNa,Ӿ$f̘3zmVV0֯Y~Ehב`j];*ss~sA1߾\6g_Xm@/U+W3W쒻Ucjl d8%J/l< .ft[ 9<3ISn-yg$wEqRrg|!Ӛ1+fe'yg!i9,P9߬ }2=rԡoR}&0l|X$RIVA_ZM.VSDZM2UwD'j}k9JsFS{@,8JNϝ]ԍYΛCjr= P$oH-5vqTԊ[HZ?ʃQ6٤G~UP6Eb/Qgny[cܗҹ}OW'LEx!?sQEÕǛk/xlyZ4" `^㒞Q\xڅKKTa-deBbtb)ADZL))&HJ#D>H y$09~?/LO|v@47(P#,2j^Dh2w00]ё,Ư\- )˩ʯ5v:uSH3@:5?\*:TgW+S?=hRN=FdYirUB~nn'ƭMFg6(b1ƥGhd0utB>)/{OojD䴬tj]f~p6MsT7:9Ia|[waV(ycgd^7Gz^S^yvl _uY_r#~E,fҤL1ܘk..[#xc`fqb:՘QB3_dHcb```b`eS, 0(D3@#oi ˘&XX)fNC xc```f`F1, d21g f`:tGKADAJANAIAMA_J!^a,[U͠ Um WT/W?8`}v?`Ã?)ԅDF6F& uV6vN.n^>~A!aQ1q I)iY9yE%eU5u M-m]=}C#cS3s K+k[;{G'gW7wO/o_?аȨظD3-^d+WZv 7oݲm=c(JIͼ[ IYC,brrjVjLsk%5N?t[p=gyľ̙;B* xurw{|pkgyumDx]QN[A  9{ Սbd;i7rq@D گH!H|B>!3k4;;sΙ3KʑwkS$6NH덌Zlfu є;j=o)M;Z ;4: !qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy &ҷ$, b 9@HƼIJ;ㆵƑ6O'ӿZxĽx7:3dYgFeYey,BX668qKB !B,u)R4IIhJ,e3ld4f7v4Ml 9d@{i,{P OR&B5j4%e,lgSJ3m3X8T[BA!ҏg7?y`_+.__J)?KedPQZUf&߸JY_T'<~A̰N{:4'#jE)jN( Oeᤚps)$<&-ԅ_X_+ }.j>8֣#QmL2Qb7AZ>Zy#-Oj~:J5ŝ> '4#‹uGG=LG2&:ReJ(C%[zdgC]k=LPꒄ+C6vr8M'h[V/h)=&3v?bGR&}nxhRmƢImU[*v<i/XQv^K9/"ٝvpa|WmnT}j3zQ]4gv3:n& 9Lp̏pȏW65D^cI_\,ό}r%7Q߶n_csY3T ܵ|9Zc3bYyܒ :uf8$%4sRE]%8s s椑61t}-t_ӧbH?cc~(D6PB ;C<}>%eIUdOv*=D~EScl 6T 5jtYQ&ڊ4NY+CU"Sw}(T*U_:$UdRm൥45<.bI n 9.2 ]]"fHϊ5V[DMC3DN!XJLJ%ȄMI`GM;Qx̹]pQeB^$ֵ?twiZ 6<:_{4ֿcȖN+```KNiU]a_;y.YߝoK=?U3L ^CyIhMcT& 4ʹ#aW'3f4<9Qi7DR8Un$ȺUlpjՂ.88] &f8Vq\Z]_Ik=@ J+U|˯UARF2]FidR2B:h5(AyKUo}hݺ/ my=;wnOx T+$̥?:Ybctu=pl_'>2B 4X3`?7$HL LfJ; ؝ꌗDEVMRb/FUB$HT[xՇNlxK(&&R Q5'2Ɨ`~=MYuOgnK3jV`Ng4_91M6-J4igTJk8N/NL5Iªj8geJ0/n(7B>`{cX1H[Wo9txOM! .SGػ#G_=mlqxu^𞡽;񑎁ȶ{ώf_q>gO~ftiS{mӑ-t{~,Q}p9L|.a{7eOҿҠNVwւ4`[r0@&Va6zc|5/ցA/HtKcý1fQfcSϾp|OzhIoN1K14a} Uv162M_kDkb7460cSҭK~oo}h!KpVLy*"Su[)ւԇe~A!`x q&* ĩT!kIy8)U91D 0E4އR c w#l)דO۽bRKr{?r𿶻%ُ^^/d9.{}CvBu-(5NG̖IՑޢ(%4hhI"{~(j]lNѩ`N*A\XgzkDz=Ġ^5 OQr{?~HY_vi*2jEy~_& DZ ~M _?7) v-/1?-d6 *4~+ _ fK<]0v]vY! 41 lYWɌ-! J\*eTNmTz>ɋJBx`-ό~o28~wϲϜw23kI#눭;;ԟ}١XΌV°PKd-)k^{.h0vY׼<\$/lCeiQkbT71,d1~!u3:OO0hCL+Ř܅6 J9DZ Q@Tu]v}A0 L@޶ԑᡣu ɥϲ)bnl[>:G}zhsAV,4 0L[:_5BVG>1uC'2>b[}}xj.*Sc/1N0 ̊5WQG RqY]mD k~ iяEkN=z)w'UI}G _RjT83/kAn28!Evv]ЪVA> i[TcUTJ.T^u*A!'9>EW'03.s2&W <kd2\pF\G /¥> ~obm89Z)}ڔs0uJ|vʶo?Y 5#`ۆ?)I Qjj's9 B 1qj-5iXKA0D0xRB4ݺ0Alb)U>g` >CY}e򃫿67p։=+kvmoxZbJvX`z=]l9FoYs ZDB` +!҇X+@ Me<)2k M\jšH*&o7̮ckQvz>GuQ oUL dgNyBM:n#z}D>!9؇ BGʪG *l¤ZFF97-/ 01P~3TǡTPp(ZgcV9Nbvv J5bIrQmȌSŚl4ÊX:Lnv[8Y1NJNJ(F_9 4qK,;ueW v)x I!!?`WH" ^Y0 sYQ0 Ø"QWNJmD" .z[Z-,hREt!N8鴕 O:Jٗ}*Xx]9 ]ΚA\:~UĪ0UY Ij Y-΋jv"^qIM]JF5VM:+1r9*9ZnnI |[ټH~ϛ%wHa+w.?%O_lfQ2 ξM!d- ބ2t{$ O3`«*! ~7?-ʽCWWjU5.޴v3" BYENwtʕa1-~'154엩VIenúiLFSF9`"j)'1o#'hNj{'VYd7w~nSCfV{Y}pNGqⷶWRvvh]f,=J];#NODHwfÔI Vx b Tjl)S3MP<ʖDC+j h_Rd~P†̎"g d²)6 \YZMՑVQ-R&!L<25Ẅ́䎝ўOݹ~ɯ?\[:Z.*~z׷49Npp7mYYbM߄iˆ*Lz[eNj%5Z'pd`ƑBj bst(]sgK*?nXI-%ŐuA%U s{IN)BbVCrhTiKI/F&֟aKu:yO%y/}nˑ60?|9d%`OM $aP.!VR<Ѕȏb$AlD8Q "R:>MӋX%+Hh_Zd nÈGFQ%2N -_\QmfJosO^3Hic%Ǐx4pI. }z.z;$ZBeʰ^T0 GTxy,R調b8^szCЃ *St*/ezPZ=p=筒#J|&Alָb?צ0ſl^,k}vh>'EDKB=\:8(t&-|GN4<>2tbz^ZŇe(ć/uyRF^6gY/-%ʄ߂+^ђP+x,5ĕ|xbBXYHA <58Ov1 Ws1d-#_PfAԖeA}R*E*#9bU ΌE jf^ *|IJVD;uׇ"w4e2r.xހ`ذ)vՏ+78[?: \deLG.B!A4v ҇`'\iƑ"}9`{؍Msp)/X^e~F2 qy_'D"+zװơ_eT#XKނ?1xU:GlLAz{_=Α#=c};sԎ;w/$?N<+۷B<8y[OM<'ONt*PZDb+pN!L XKpOK4Q:΄<& CʤX"٧8N83Yu$03LU> [aR'j9 4 #`v,xz ى0U8TycCbɇD|>by<0M0&DAX(;ZvC9RRˈ8nűңH=~g*& o:l7'lǡQ^/-V¬Em#+0ߓ_tM'IT3@omu<..-"/b(%PIi&c92(Uf+pW4:ԛ#z+m'S5?W.>j>;˗s;P3^ |ʷfC氊¾`bc…H$%Kx!I3l{|!kBF"}|WVz*c}gkǻ69 ~|irγoo{;G.2lQ8POjr3MB3SDeZu؋?fQpKԮe{aCRkd/^h9Ye_e*{65enczͻ=q^Z{ַFZc It´к [XRZ4w9in^;Vc6|6m5^9bTYm2Y]VJ]ZFϗL<[6ʣ0Ӡ!} 8*ؽ&q/<*|_|iةS̯Pz$c٩E' i<ِmQY ,7cSF?=7\Ɍ=VqHq0?GF;8ӛ|vs\8^,˟J7W.mG=Ɩ]Yŭ?Ϟ?k}-wdu;lp 1=xYhy fHaqp+ػv2ܒ6um#woy"}>kZq r7cQ &5qkA$9 #_5kbLرkQcЏJ-gO`P[/Oѣ$SN:['h%3M,cg ;LDW)覢 $+P 6Љrm4 ٣%0} Q" 0_T> o3f|B^YҊaF[ЬH!T*ÙZs`F=)s*PceM#i)xq&4ea{`jK:-޿c=Yr6j01H4qi䲄bt[lT}иVíEd |yK*i!m臢L cAPm,K%bEd?"ы~fYeTN|_RGa7=qVW+"2+$|z{mVQ"ǃMBoIʛ+)EU@d 0-ثq~h~xkv=''alHiN a(\]gYqꍝQѓ]q%lڰLuw w6E½iɯW>7IWǒkw~\+;Z7Q;# hTO@eP* (hEmm$ ׋A(_gsHPvɺv83x֞ NخpJo=izJ]C?\L7tt]udmm'N|'Ngl;^>fwkY++wlc߳{sM[_4}C8n\|~u?*8\Y"FZ%vy9b$*mT0$UтU+ $~(J b< gXDYJd`ĕ c;hߓtXzoyC awY[NyzHi ڜɥ_b؂dG^fm Qn4af׬_ns\=V "ӿbKD֏3@1ֶCRkx5eqUzǘX0F' 돹3_삶7o/dA]xv_Ah@S+._2 Rg@+X:Z+p%3"R Kӕfs_/}_毴XHil 9JMY-U^ĢhU甭`AiԪhgLu=&>\4] pA/15ݓ#i1/g}dG%DO܊8M:P(YQCpNe߃[1?K5 ECPwts$ 2A0^+ DŽs-ٻup9EӶ 0C;@94q9‚(9 eOY!>aD5}8ͤ[> 3vB *"Si} J%Q<ᄃ3H~ڠ'IR+6+ 6?V 2tZ w(\}=j`qUlI\8L`~ƈ4E8Zk._񙆹"'X:|O=., 5 _n;M[2tmb-r<v4)^Dʧ\]w-髑o#Cq_X[7|k41.doT}UޠMcIo/, NvCl};<)/1sx53mpoVw,FQ8z7hKs?e>:(\חq% ezJ/Z$ЬAD =v1_O%[6^ 3]Ģd`;>jA!$x]]+.Bm-eލj ۰>+i.^eog젶QjHjʈB^  <8L2aqG0nbM=ǝPTQ|'G"k^J<(Zt º":;ʑ|sXٗ<㗅39&+޿l9%^o[u@,6poW׽1:v"wE3|̫—X$?tݷ&_s_Wxr)v4xa*SLHV}1c(ZY!I.d8QD`DDF]~eLCBWȕRz/^t5ڳ;nWҊfnZ#u3ykR%M*tZx*@N |&-:x0ѳz')S+C6,ڂ_7<UV#! bTYM\o20 j8зI<\ψ][iME5~>2^RX\|ko+IS6GiS|e-zWx7kۤm*j7 7|c jס'·L%QQVf 0}5 [s1{X:CGOZ"oO;~'<ӣ]-=mմ~ךYOIJOաdo;z#$cMjO0Hk"k}~;FO.YqHdMTr6M]VYCo?5OG1Pp)(QSAݵu m. *99\rk`sDϼ%eeB>܂IFRbĽ +e n(2p$ &\p5j|7t)Mפ}ѧjī% nM r3nbhyJ ӥ^ZIlxJO\UT}cfs=Xnn#gsNwo{/mRccw_vpy_: ~ھk+$£xymRO|ed3wqfrK=KVcao![Ԝ,J7!PٍF0sI-׉!!")f/:pIn?Yۿ{p^;LKx %|] FMN{X1lHc_W>Us[ϬVF#Pi-lxӧk>6cg`=`㬴rB #=URx #oз‘g_2wfSGPp{gLS$~x&'#%"}Bl܍>Y v,C eFma ٧D'={fۊ l*L? _Հ_uR Zk)zAzy87qE/`(i5.hmd][K-AY _&B εE]ק^ԶtUlIoեߑx=}_]JOO<WxGaIĞ}eIJݖ|~ct`'fe KdZ/~ sZI%5;j#άڈܿ͠~YWbnWoڴv Ų!{Z߻ U&21'\,j( +hߋ2C!y 6kۿsA|mƫb=Ō8)4{ y h2drcϤУ(amδhYl%G(!~*ۿ0\릶C'׍bTtO)y#kdžwc; ()k.Zi \w.>4=84bfT)"qA) q&q<RaO|EkJR_q3zor5$%t9yjiŖް( \?#nψFqixe_,]~v #ڀxfj·=$u$XSd +ud1 PzZѕ0TՑ41'!kW~3{n{66[ z7vm\:ok2f|_- E.%~"-MbTQ& .PoZG_-m #AѱHfQkYe׶qgi|W1RfsXZifC߆ۋu{4Y\T7h,A{+%ho-FΘ['_V7<[Hු"5xc21ǧU*iAfmu?Pz_4X?p0~ჷɲ~?8k]#'?+V*}f[x:瓡mys6oT6)g ڶSmJ"k[3Z-a :a4C׸ӤeRKjr[ܵpK3|RS:i\_IԽw@S@̧ǩzz.Wq{"sS aMZK=H&]ZɓD>V%4Ҝp0&<_)I oM@DZ3ɹa%qPTzp}Z1W_XЯ}LddL6H02$5Y JZi2S2(@o*!M⮕7ytSIPH0ͮWs|MrL޹FGɶ^ 1j\nLئse| 9ئM˅KB!HTU ༈@AT3T;"PhD )$"H:"DjBDqL A>TOgx(MM4WEUTiU"t~Zi0J`)Ԕ68SC~`^r ZB\iIZ_Ekj$O7*EP 5kցaA wzW?.L,qBŸRu ǣ2%Gcxт3v7:25jb`Wт&uݙ("9ad",E:yMtL`(fȊC9*qyrʑ F"1Zۧ1wAIҩй%0}< Г7ʟK+ںtikkwdu|M{(Ծ&7⽴bžmWS._^0HsT+Ąqr:U' ȣnih Qzd &f$ɴǴG lgޒQz๦nsp82̺H0VR/[:5a"-Hv݅Hvi ي&6? j݂i1ƚ:^- TN|zWXϭkBś<7$9H.oϫ_+o%7Ufs*4A<:%*ZDO:"]誈tuAQ\n&@\nzy>4\'!5w+?cGt Hnsi=5C]}Wl_E!BƮ>\4Fr}~6"j ٫w$o:^m>'II󢸓IJ&!^ fGgv,DXץO T() &9('D*CDx`[Yu zsBh<5Dw9yM$}3.aC/ZWwo!ʈ;PFU f|WC U!X`#W"N.1bc$fl:oo Τf=?fư_ 2s\[c[(^+=ٿ.sOwQ3w\iWMѥ`wd/oCsN{*g6ݑymIic 2F|'/6|[v1x v'ڦ۝X}ɱe6k4,K#АV\727fƅ)=5g#3js%[dKYur @h .}'vn _#x6龲p{}kJLK* UĴh:g)-kR8EstQ*DsQ%{1{1mh#՜\06Y[_[ƃ2E+Qo[péxi ,qUEx/ B ~fEJTH -e9ԅKM{dq"9W&8pp3KV-ƕўdUn xϚxʶmknzO/߷Tg}{R t*Tbpw}wYOdžak58WANkO4'35Zg(SyR_UѢp(G6*H*Ex)kʱj7+rMxj_Yi> 8/_ZV[YH+Ev&f % @w΁$jLv ^ Q]xVC\{]𞦺|SJP˨/4[ 4fӬЬmf]f LɺAX-VH꺆N6-Aձx~I&9M Md+zOĄkl#!u A'7ǰL `=O=Sh֠Yȱ+ )r4 ]$%5V0l34v- .U.?g$:wgȑյQJ(qH-`7#jCF1[* eTH e:krErBZ-+n]0̲Y] UxooTJG|`UDa)q}<}UJAHVp:(O<}xMAK<\j!ԛ09."JDPT:-L0bBtWv<ɯI9;-gx˂Y2M3&[5|o 7qRysCM_I`1C81Nֵ!݅Fb߉%"u3|d mU, kK D9ן\W;/oGhmtaKy[[}ۆ҉D:>7]wLvv&]]h6^~dcTO)u,Ɗ|BѺd$&n]TQna \[%{-EPktHӲ="jހ0I$}xZH 2 k"Q 03/M(I𠕖oA{r0b*lՅg?{wk wBZ׳fgDnrDsyoo#m&٠C Ƭ ku),N, 1awh-Nlp˪bKȧ | [̵9hɎWﺨciƔg_^{3/ܯD;@ V5y}UGBV7/Y4 'BE?9Z}+*r(ZuWFb-fϡ_ `&GHax| ƅ4IP h"i(:MI[&J""M1g7C!TTEH0lǁ6aa9đ8kgHt DC7grA'amsWǁL?#QWsr !s!Ԁ`_ ~zkaj! W>Pգ!^VLAxn=y D&\ X*@xqLvB6]bdaug{W00Ns՛WP),d ܺ;Yu6wρ݌b3_._wx--5%+N#|`PYgr^9ÏͣsfM}v~ z.gax+g5g!D GHg'oC@A v|zIڸƮ7.gk{_G_=vjcWw~7b6W1_oZr'.I)Ϻ}d͞_]}l[~ql=ǎ888c;٤M(`*Ya릎A)06BhBSmmTAbC{aHXJЄmX}m{ν~NmO޳zϹ{~򯿞?pׁ$#{țUnRdLk%m[\C^H !=5=[Sz>B"iSz! 8 M#㈊FشZ"aG,l(֫/I<b 8YԭeC';qs p8kn~ZT#{|%[|Ud + f\l."Ւ r $i*,* '\rũ\ERbD >⏄L/1 )[A RVjdonQKzy7)#rY /'Z_,xJbmsj\'2zs֌@'r0L*c%ZNlbjUCbjO N)$"H24DN8Y<> ^Jc9`B)Pr|&M8//ų4r>2Lng+"F[jE qmsQxABAdvp.o 7XaT-g9trpN)hL[3n6Wqnw[ғ+`W$pı]+Oc?̱+5O$(C?9h-ц7uj!;wc熊;qJe:uj]:Nڑu_Q'vdg}J.MWs2 EjYV >UDTYaN< 8=V`;Aq?a5 :,rm}d#'n| m#p42yԲQP"TK%.<] <)iO9Qa]CQt Z|޵AZe{c=>s4'nV:Nw?w#3s ;ܕO9]ŚEzxÓF>q3dg+2z?1X˧FAO9ipM 4Dc8N\cEԧr~y~,&V|s{vP`GgM!qƏe!yfa)Fw͜yg맯~p'ɷ3BdKP<} 1:zG:h?pϝ \y;:זW:#%r 7m+b/]{Xʹ"J6"*k^ 1}y<͜.fZxk+,sOU]Z+8nm]&/ nn렓 Nw/}2#RL8d}K.F lOQL2H:۝k6 X8ds"oX ́EY@pdlXk ]D%ަ=J [$i{ FL I`mBMrM/ۄCDj & d? 6jyV6o y!摜)ذZs hpbDrG]]Vy\QD/]^Q"6aT4&)*a}yNѷ? DZJ1R-ndGw8g5|wRe" n v &|{ 7nIv_&IbtdlKo(XvK hPFW|m.@y2#7=E3ӷ[eHx9.e?LkJ2iØ:|>p4[xwR*~&Sw!&ƀwn}$t`,8u# Ҫ,,Nì Nk^dktS,­h*X?Omtdb ?I}ֱiV5`}s`3f\kM H4z΁*JM@cik9ż1&QEٛ͠3ߡOu"0TUITa{b`'F7>B'pB+gU龜9+$9R!@xc``Ё& LlLۘ XXXv`M`M-{G +4 \Z\Kqp7p~kĻπ$- I ]>%b$ETOFX,{Ra5ğHHIL<&e!5EBYY; rrMr3)(t(RP\HH)O?WʯTTqR?Is!Z*Zy㴏Le-='7EIC+}FNFʘve20aa`ce]Zsll~β=dd^Ɓ!c"g/O+Zeܗxy,<%Uλg2 _AvZ 2 Z|-!).tx#K@EXBتo" "D܈tŒ)S̢DΊ% ơ\xu1NQE8 b b' Kh("[2\K 0&c~r>pƖ jں8dD8Ⓓq vƧzai|.K7&"tɕd+RIbu-a'9Qa~6n^h8?/s X^xH5xS'||xi|gy+|+YD,:Zg) h$2"啬լe W8D3X,x[K$H$IHIdHdI68%.s \[9!9J$_ Pmjp]PӴ STP:.eyFdP+ CT%Re>꺽&*f|o8TVx>yGDCP:x== @llDB`< BkzFo.xy!jN(=izwxkxWkMO_ a6vw[J0,2=sd"|I,ł(X!8DV@>9\JQ=iimmutable-tuple-0.4.10/docs/public/fonts/roboto-black.eot000077500000000000000000000503361342041553400233430ustar00rootroot00000000000000POLP[ P  O`Roboto BlackRegular,Version 1.100141; 2013(Roboto Black RegularBSGPtt33 ,:xZWh[qJx"cr,g,E&Cĺ@T` \i YqqoA Pϙ`.YL%ffc3QdP.j Y\ɅE>H'[n 󲔩VVĖ ('miJa!; d?>zr PppHfQ#W]7Vʘ7I&+%Eq#@S@\\UTBhHe^rE*dd3C0+hq4Hdxt48r">O0xB_uܔj50$dtcF&cbc"%IYk|ѻ~_$t=7dKxYwjX#]GE,rbמ7uO] % O]_d5.L]S28Fe짾=g>y̺}ܜu@!/7W(w=Cjcv|otсuOdmK=&jm#HWdUT.?h8]kܰyxP*4_tq᠆>36jƗ;GJIM1y16t GX'گKt@1bF'CT9}rR ;d*ceP流n* <6j;O?2~pL% Ʋt a j@H J'&DBjU>΋,6M0S̍XEIDSdA_b&mR19 P説C"ӓ  <F>ίia1qpVM *\\"[XZ?RW="|NuC_ꖖZ8H#AGKKBxt H^BKolHź@xvq`0 ` $PR8Be7.ΩVH]!p^ՃyMaG C;BҚ*@w}fiA. T'Τ㗟ۤ ;[؀>4sz>72K.$yޙ1iD4ń|o[,U2"%}l#IOrg `f06T!0UUd鯤:'.T!@( T! C}근ZS*[8M ЍФrE0YvL٢$`R`PQPq5|˭ʠ b - D #' Ï#><0V܇4Q$$?y<_$Rǭ&SDod9>׆+怙7 bq IkM~fUݠ`2uɥ2җ7Q{z:]#Yx9lsi{ CI\ԹG;r%r{yY>'(I J&.G%ˈ.r"}( & g+7~A*xU pe/\/T}4sOgFOdB.sQ.N.19TWبb2A(r) j" \HcVM%3.lnLxܘIȍlykrL@Dyrh%/Gi{);is|3 =LuDmD)K`a/ЯCg}]4bf!riJ>TW 1q+w(^c9׶pYPd\Nbv7@2tv nҋݬްPBV!2@6MBnA-&f[XͮeeiS?(.6lвS,&XDB.*1B"uճOo6&W8 )N|S3WJݟ1]Olqsk(X02ux.5B7y /o#ݱ뽑q-/wiBĬ{<آW#$Ӹ'?hN*dyaȠ󚰌((GW݌;H$}ӄ:)H Ұ$'r:O,Ulqmpa /uQ AnWCWů ˭vE+Pq/&(t%}`"Suv,TS`PL]"߁'!$\ETQWTG+LD5G‰}M}JSG%Cv#m?!݁ )9:se &{cMkxyV٣?gf$lxzl-Rg" "8%XP2M^l=`%I݄֑<>yK$tN'Ze,P8]Sd#]6MUJWN( f@W]16QQ3L,D{a"G(sJM]d$@jri+\Bz4+2\Oj;z\"m!2Gl9v̙:w3xE 7"mt>fs;MT=8W q 8/ &7xaPCCKb{lkH\Bh+qL|v^m!IbúqY˾x0lUx^C}D.郵;\瞩Knf{AHXI?hZ0qh@2n^8y/ rR*w4Sj3~Jpi2T)PH7(ㆼx ;V J~1e6y0h̽q 7-P߮@7ވ3oXB]͹?ubJ "(H*L"pjTG2ȪO4CLQhG\|?9_\[H魒IZFFMr,#x⣩I_L8P2pg=x$95@*[Ls`D<.T xG H>?Y;!W`Ș-Ν9ocV ?PDٱR)1RFrBeǢ־䂴NKҎ%E0D,]Θo7_i=)}LbEƪ8tDzAѥs@sX3B9 Y‘kG(9d^3(kDlRSezHIQteͥ4 7Y5Öۮ5HrvA|R{M 3DPG w &w;ce&0)U#Hv[2@"w) Sb~Ԝܾ\_uٹTM\FJ hx$OC XdwW4 ѯ ;+[=VB7,%t Sd"p:dƺZ;pD<2x=OUZGՉU zEpzxȽ >B1Bg}xlzID7%L1d~ _}\*VWrz0t:lL_h!]Q Ҕe FKE- H2c x\8**"Nis iwɰ^(zD[+ppYQ5h`.H.-XZdjfyr8t\#*%%I(" "=g{/JCXC2uKN~MzSYeD ܂) P_7H)9 IKDS*G*M)pxwbZ&a =I]kZaPD&`UJ(ۗk|~W5cm ŹUl紹?0}],q̧Ae (Z~ў0!nqUK0{xw!HD\LT`5 (K;0*Nǒ„$3AQt#Q"* .1DiȨè3NElp}2>HĠAyZ@ }a"gZ)c oR d- T$+N5rW_Vڍzn6`v Ki2>x%VhPEOBVlx8/B\ȱF8I6K{#{7~m:lqbrzb3I#pv5F :e Pqɉ0c(w҇ F%$ՄB{\3fC؉@v9PG;2M瘹SXbά^$B6>n\Eo(sP bTĒBB$u7F@Yt ܶ4S*c7^&.Wu1vOe@ W,~.HCu9 qYncFZl4rK¢%$ӒIGuwwgJ ". i6OP2~IpV7;f.٧bBJqVyS{i03/)V>OiLl?vIw5R1Yt]!GV2`L"fMZlێ"~אz.uM.9Uܹ(",ޖfl]!'IMMRe>ͷȹFkL#j(J5}58_'qU+ܕ)p#׈>엫ǷriCM#fFBcgqfq0! UuJ:G,Ў,BA8᭘c/وrPHG`y$ǛLt%*9aʕYu^jy o ԅz"Yzr|Q, ɠ Z eY4,nCIW*W;A1V\mU¶r :tJH.WNyɛ喵 T_D}a5B(~ɱ/QJ5aĆ3R,ژ TTasjEZ1x"S,BrjDFe9 ¢3MMn=7 RlP=3CbWT_\ct$( tMg-!%-}PNm )8`JeQgW<81Z, #0|"[©qmNFs*#N A+4ZB lt /Q5XD.W)0*qR^@ @8xNF&瀻1oNZ w@>6b&x{5YhAV) mZbc|_0ؒ}v ٕ1{]dA9[K,8$':_riYy L!~@^ ^d\XixEJ Er`BC!] EԒV18g'W֡8 :w|E0#xN\1Ș(Jq9#9K'Ro-p6,KpaNzEC;c"jZd5wnLrȥ#فt40 O|! |Tu-CwƏe=#/b"/<m@| 3")M(7: T8- pO}D 8X^6iLW1/zn݀Bcx?[ :`0(]Ə|QY2f6±& 6H:lv)U|]4<5%mC6 Nn?asl˄zHc`wQN&Y_h\*0 ꐛ;"]9K/!(K rIgB@fdU $ 0Z:A*h !T24U֦3п-F&7)z"Ecg[jʚ 0>C.P{-J򀯷E6ϏeFRvHeՇ̦E}=a B=#1h5C#hb!Wmo!n=8ӺsvyQ'V] Sp h OlLg㔈ad;P G%}L/(6'JnAMAv-@=@Dr @[F jqPE铬n/2! *7A唗e< !z,6Ha;tMA,5BK&e iSK$)=4ogcTZd0 +.oE'L51 2tVb ^C6fbMcsXFu9tӱ|"4j9~kqAϽ|hfT~c<;( ^opFCt{"d R)2/+h|XEk,}sYnKYВabr{˶ra, yRI=Iv$'nr9 R5-PY"+)($xSiy7q%\%$Pn0)4"Qr3L#R L0a\Ku 4Q*67 xCc6y%`TTg4cӄ~Hu1 l&b I6'`> G h7+3o-EgN_&9҅CsB2-D[sL.9nG9.M`pWv~v_[shIvǂe\0& Wvb/l2Pu/@<:R T?U ~KYM֓4~ID˄g9~1Q5E$cO@v ܲFg _nj.Ɨ¡Ъc-05 €yZ2,"\H1Va0v8gq#=8- q"0|]!wN§֊ ȄKTYw/ók *Qt]aJ κeV !F++T!ڎe\քqBPeq~u9ڎzчQ`@ɝ $3OYDϸQ]wEAVGwЙR9_V7ݲ𬅂ih|F?o1f;K"=dB^؉,ݓpü> ,OZR}.%\!4KZz^{D<H^7q"i6^A‘4ҽ2`("ߊ]DDg"\#}WO/x&":шI2w~n}AMzt;^5P| EQrC3ɎR\*3GPl/OxǗJAó2 ;m,A6drfD{=iPV4#`ʃCCV (G=G EG'.<e)os7ChBj*"Ѭ{+rOx&pDOf;%|2Hs(xg?nY>ZT`hm)[&ŵݘ 7Dxrfvu@BP=MzK#m:A~SymvBB(- U!(4|G,d;>j0G/YT5x1 ;ֱWڬ3֘Pv QVtmǮ=z1xvv< 8 n†Gv<6K(  93P3Й7S9] 耻A`uѰ~܇@mem"ĄY>Q 2%Lβ6EXuP2f@}>@ڸ" !#}%<P*21c#di#JWLuA^5μ%+.W/,,cY! ǢͬUHyx.-CzY30_q ]E:;`s7"R'0Wb5 ={%mLGVNdد dr H($^6.˗AYxz=a[joDP#cv}@ Ps^lv Ӱ|&l@J9oIrK/Ku$fY`]:+ynqY΢Fl#'yȻ_'*K"gW t=ߝlRd3x͂7)idv'4ӦUi%# wzȂE}3DP!2MFahTx ? 7 B,Ƶ'2+ XcW\ϰȀHxs A8.R4t4o I1Áڽokӂ00D{Gc?#=qRQVTQ4vUTU.:dep1EB` k{ҜU+X"D\:gQ/ACjro^*i}|i3ޜhˈIӢrQ2"nUM$T9e;{ Vsw'JKP꿬aʢ! i٩I2N?Wi[0+gCQ*oRHKU!341H 'R^$dS$>esX: y$I$ _'Bȯ3I}m zl e]cv3SYĮ ^1[T&rsch5CKy!,HezWEu䮒EQJ(t²&= @ '!:aՉ rAFBDCH;r*-tpse(s3t&WmE]3sbqZʸMf% @|z6ߩ( afv@A5ॵ.4O䞪qI`xWm*E"nVL1!t`r!z3ya琜FNCV4dl6( ,7@A}fnRʒ\۔U$)y)3R:KZ⒐ YYFF\]6HdvCR)<}$]BL8b+/ãpOn^VZG5LY=w +qjǎڈ,&P ( Z0L>߇q8r3^Ȏagx>aބm:i|CjN!Ѷ؈ JGehL%&R|̤6+֋N<T;qfK_|SqJ8L}*܆nu`K-Gʛ I9btWF, ma/2 סp~r0 5o?[X*&9sD'T& '-] ?\W8x]X)0 A]tp{F Ed˝m].] W{aPSHOr{4a8Z{:,SNF'2JbM"/Û+Rm\\:MFǞá ReWq}:l;1ƶ;bK1hG`|,.v)E@X=>孱N GΉ3 54E2#_pXvu^gQUix,6:d Xn.&UjvrNB#"al*Qi9fWef0"ǎ5U56xWLV*oxaOȽ%޸x_\l2S1lR+ !P 4\~p!n2!9b $ Fz!%Q!0mƬqm7@fd_P(g4t !ʌ]L.i$QnsrPn]Z=QDq)JsvZMdٟa}M_#3nC5e8Fb{ AQ Y֫pySp'=Q}uagI #F_9Hڄۑ< G4I-Ead3J,^+sQH"lF,QATXB)wE" <>K RI>|Hna?CLAqP/G֓l) .H!z^Ÿ79*K1\I? MoFLͽՅD+r9ЉRc$B4EeXWziX @ﻥvjKd5XAC+k("TRmzG7kd5(iL>k[ ׬MXdXM x̾`k(nf@8l@Q[ڔ '+De>kΟFr4oDI1p>"~_ QEwVʚ ͘ډS^So_XZn!ņ”44֛9pުcVtx gyPD(pPFHw >r Q`SgAe} kH =ĢLMzˈ[\#7NMf#X)=f,k)-T3V&4I"D%[]]$0hA}f1nPy􊿈;p9rz`^y  #D)mi8[9~&?|g嗫L%Ы H@nKD "'ZF/Lȳ@.}O tMuA5Ma('i`ϰw&DRǮV2e꺲T5vAݚ#_V]O]qgy̹TWhe EMyt]!r+K~57 oS*.3-\zEV L`-;rء+iWAɾsr3xUn%DV1ڥ%4>N[FН ~=T "/e[*QbtĺG.3 hРxLjnm}0{wܹI 2)iiCƦ}‹ARş}m Hc&f@Xm! bn GG ;|*Lwq ;:3$duQt`tEȆ~PE,u`_)T&P]M64sZȜ!AwZ;A<Tu& 1vOtT{5! .bCqjOwc ba3)6^Eue~wa9J9)m?ӎщBm?ҍjYXd4 q0LoN/dC^OhBx ²oʚXubF6Z)%ywh;1+5!l%2A3sł,[KMHIs*m&iM,A`<ُ1-h0׃b'ME4tlܒDD9:6plrSHǧ?Z) Yfzi }@1͠'m@KVt1ĀNɫkO9Բ/kp&KCo wga{U$i}~nAAqVDqAhp3=l a3p .l ,+@uMoۑ@3W] +O1 ^Cn"Q6wY*JiOK9*-ǫ[A,~auM,"1j 27j@Wq -1Sޞޑ7ܷt1*015g8D \Aa;BTRRB>/.5h%Ay- LM|D%^@*{C3ɠHlV6|!\9K댻$ec(15!]+=;=0P  DwB)p$D%oYw\1` as7DĐ9`3ZIO_Iؓ'f' lICǏBXX(N,9Fo'9hM +J/r8LzhN}ox 6:\{o b+Isݯ줇vm4:Gwn Ǧ$z V[H&(S6[[pў&uYB$);MpAbxO!ϠS C(gh#ςY¬ 2n1PП  GM!GP=|S9^KRܶ[k'`KiCO~᮹>UOF .(.2miMpS|~Qg$A0q]7"OЕ)1r?D "'+VfU|=>'yIrl]2.6 y M`IR\Iq A{:F V2Sz`5^(^b˲]E,W'9d$N[}b1lpy2%R RS-;ُbZ/*ͭdUd-Uv]q~M#d[9'auEt)QX&iÜM7xJbSQr(jhgɣx|_O'ı,<3㡘Y~t]3 6&Jp"]rPZBh Ci(^ B#lRX"4+.C;l[yMPκ(͸THm , zeWn ׎Zʏ~ d93mMpr&u hDҖ:.{J!zNz&` `-J[%)~|9 Dt'*0[ ͯV")^e.}^ f9ufCD"2=4 dL{B͐,_CâUw fHG}P$VȆtр~]o$~.gKeSArg6G2]lVkժg]A,g`, |Y`J@352 xPav/(1X C>9!F7W/A\B:D/.b /0j)l  0~|.PL}:B`P3$ Rj$r66[[B:dѝ-u/d'Չ fC!,Ѣlemi|TH0.‘ ^(F8(PPSO oI0" S0:PK6v47W$ FYh{huXKǀb1R5ScF(|eDŽdX,%VٮW4fH/ _ k8hv<<ĺZ0lE7ۍɳ1Q6h:2,˂ˀw/MG_SQ azsΡ2ĦPיjBc h z+5r &W>eW3#e1 RIUZ9}6]! L ].UDRRm"TcN +Jv<Ѝ%]dn46hhea%l$hmtxe9loca Q8maxp name;ܗ0post{ƌprepaV|$webf{T WwG% " 0>DFLTlatnkern F6vv|HNh,vvvvZ 9:&<"WZ @`IZ0$-07DFGHJRTUXY\ZZW79:<79<UZml}nC @U` @ U`  @IUW`m}Z-8  @FGHJT` FGHJTIWZRI -86 $&'()./234579:<=>INUWYZ\^ &!j \32NolH~|()cqdj h SY3_UUfk~a 6jw9y7$$%%&&''((+,--.. // 012233 77 8899 ::;;<<==DDEEFFHHKKPQRRSSUUYY[[\\]]7 $$&&**--22446677 88 99 :: ;;<< ==DDFHJJPQRRSSTTVVXXYY[[\\]]oo   $(+3 7=DFHHKKPSUU"YY#[]$'-=BHMSVW] 0>DFLTlatnligaLI433fP [ Goog ff~S O: *  ~Sx    " & / : _ !"% Rx    " & / 9 _ !"%pL7  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`ardeixpkvjsgwl|cnm}bعyqz:=SH8>3SbhQD,KLPXJvY#?+X=YKLPX}Y ԰.-, ڰ +-,KRXE#Y!-,i @PX!@Y-,+X!#!zXYKRXXY#!+XFvYXYYY-, \Z-,"PX \\Y-,$PX@\\Y-, 9/- , }+XY %I# &JPXea PX8!!Ya RX8!!YY- ,+X!!Y- , Ұ +- , /+\X G#Faj X db8!!Y!Y- , 9/ GFa# #JPX#RX@8!Y#PX@e8!YY-,+X=!! ֊KRX #I UX8!!Y!!YY-,# /+\X# XKS!YX&I## I#a8!!!!Y!!!!!Y-, ڰ+-, Ұ+-, /+\X G#Faj G#F#aj` X db8!!Y!!Y-, %Jd# PX<Y-,@@BBKcKc UX RX#b #Bb #BY @RX CcB CcB ce!Y!!Y-,Cc#Cc#-DdU./<2<2/<2<23!%!!D $hUDs3+ +/ְ2 2 +9013!!sSST+] 4/3+2 /ִ+++ +01333+UT%f+333+ 333 +$3 $2 +$3  $2 /ִ ++ + +@ ++ +/ + +@ + +  +!+6?!z+ ?#+ +++ +  +  + + + + ++++ + ++@ ................@0153#533333!3!###73#%,EDEE,CCCC,``ffT&O-~*/ +/ +./ֱ + +* ) ++2% 2/+)* "$9*(+99%$999017!32654&'.546753!4&#"#5&$XIlVHJLa侟TFGDId۹|mTDOW*^mkXDEV,cŷ[ -;++1 + 8$+ +8  + + ,9348KMM2CC2M2EE2$rOMM0F>8M1EE1<A"-:+ +& +8;/ֱ# #. /.#5+ + ++<+.*995 &$9 )9999&98 *1$90146?.54632>53!'#"$%32677>54&#"<{@?⺟[NW#&?EJWhS]C+W* Q&&<8&=29>t_ZM̒b8=8J\T63Mb.&Ku'Q0&$D),FJ+./+/ִ++ ++013+J?xE?/ִ ++01573#&x(==4M^\ ]^M,Ev?/ֱ +0165'73#,~~=:_L L^LL5y+/+0173% '=*#<͡^Zu%p- R/3 2 +@ + +@ + / ְ2 2 +@  + +@ + +01!!!!!-V;U!|y8%/+/ֱ+9015!8F$G"//+++01!Y)+ + /ֱ  +013!QO+3/ִ++++6=+ ..@013}-VL : ++/ֱ + + 990132#"32654&#"VQVUSVXSTU?2'--^&(++/ֱ  +@ ++015%!]fO]<TX+ + +@ +/ֱ  +@ + +@ ++ 999901&32!!5>54&#"!A 8YTUULW͊f;Tdd1Q*q(+( +@ ++ ( + (++/ֱ%    +@ +,+"9 %99(99017!32654&+532654&#"!'&$32#"$6JmNYjoe[bXTBd{guF_dLjabWE^L<c/+z:g F ++  +3 2/ ֱ 22 2+ 999015!3#!!!':HR3)RNN++  + /ֱ !+99 $99017%32654&#"%!!>76#"$WJaP\MV]DSTV%&rDWbcx:,0$Sf'o++ $ +(/ֱ 2!+ )+! $999$999 9901!2.#">32#"32654&#"SS VQ8FiDx,]Rg\L`]JFe6% J 28:co&"4N 4++ /ֱ  +@ ++901!!774ڦ" ֽ&8VL#/+ +-'! +'0/ֱ  $ + *  1+$9* !$9 9!99'99- 9901467.54$32#"$%32654&#"32654&#"V~ocmnao~R\NL]^MM[HDDGHECGs30kk03sXeeXWddP^]QNZYQF'm ++%  +(/ֱ +!2 )+ 99 $9  999%901432#"&'7326=#"%326754&#"QKI#F}Oe1IRPP9[_JN[/!@<= x(#:/+ + /ְ2 2 +013!!QQb: 1+  /ֱ 2 / + 9015! !bF$QGd.4.t( hκ%/// +01!!b%r47%5%r(t432b+ + +@ +/ְ 2 2+ +$9 9 99901&$32!>7>54&#"!!s@-bCMZSCZ!P$}<*aS[*|QTdRQ;3@ + ++7 1/* >/ $/ A/ִ'+'!+ +B+6?\+ :;:;....:;....@'(99! $*.15$9"99 *-97 9>901! #"&'#"&763233267! !267# 3267.#"+ Qv)}TyX3!pC.TB&CclL 5<6U (*hm$b[SUU.46WAפS{hr%*/sx{54&+r0bfzll]hsrtxh)rUX_aUR]UPh+ +@ ++   +@ +/ֱ + 22+9999 9901! !.#"3267!! PE$qs~zfI @0MΗLr 0 + +/ֱ + +013! !32654&+rZrh G+ + + /ֱ 2 +@ +2@  + +013!!!!!r];rr @++ + /ֱ 2 +@  +@  + +013!!!!rSGX w++   +@ + +!/ֱ +  +@ +"+ 999 9999 901! !.#"32675#5!# XIsvv]j8J@0NstΘXLr1 ?+3+3  +  /ֱ 2 +2 +013!!!!!rSQbPJ!++/ֱ  +013!QP=24+ +@ + +/ֱ + 9017!3265!#"'&54=JbMEdQ퉅j[rhrnrC 0+3+3 /ֱ 2+ 99013!3! !#rSs@=d:mHr8,++/ֱ  +@ ++013!!rSsTrc+ 33+3/ֱ +   /+9 $9  9 999013!3!!'#rFJ  Pipr1 F+3+3 /ֱ + + 99 99013!7!!rSQ`PbQ& : ++/ֱ + + 9901! ! 32654&#"QWXQU ^] Ȟǝr B++  + /ֱ 2 + + 9013! !#32654&+rO0nssn y_a|Y!N++"/ֱ + #+999 99 9901! # 32654&#"YWXQK7w?QU ^R] Ȟǝr##d+3+# +$/ֱ 2+   %+99 99#9013!2!.=4&+32654&+r0(wtu"*(njfloeq3&\9CXhn2]WYmJ-t(+ ( +@ ++  +@ +./ֱ +2% 2/+ 99 "$9%#9%,$9017!32654&',54$3!4&#"#&'&54JIigf=vhftu~lTDMT/WǼ|yWmZB@M:Jؽ|yj:++2/ֱ  +@ + +@ + +01!!!PTk7++ 3/ֱ  + + 901!3265!! kS~}SFF = ++3 /ֱ+ + 99 901!37!!a  !b(51)P F+ 3+33/ֱ+ + 99 99901!333!!#! HGEEP~ &+3+3 / + 99013 !! ! __f." " 2++3 /ֱ +99901!3!!m!"o|P@z .++ / +9901!!!5@1rl47+//ִ +2  +2 +01!#3lvv+/+01!!R`@+//ְ2 + / +/ +013#5!!ww8h$t + / +013#'#$+,)c+ +/+011!!yJw+ /ִ++017!!J[-N#.u+!+'+,! + //ֱ$ $*+2 0+$ 999* !99999!99 9990146;54&#"%'4547632%.'#"&%32675#"-{AD:9{0aQ?22TxPI1MEJ7:^dȺhWI@"CO.9( N`Jc+ ++ +@ + /ֱ 2+ !+9 9999013!>32#"&'326=4&#"`R-wNY.-N9dDHb7O32!4&#"VR1UKM1HIQp|^o.++//ְ2 2 +013!5!oSS:5K:+ ///ְ2 2+ 99013265!#"&5!s)8;S,IS\RPI`~ -+3+ /ֱ 2+ 99013!3! !#`R-9Ro+/ֱ  +013!oS`N%k+33++ 3!2&/ֱ% %+ + '+%9 99 99! 99013!>32>32!4&#"!4&#"`> 3de%2iAA1K@C.K:NUXZU]miN# .iN#Z'NJ+ 3++/ֱ  + +9 99013!>32!4&#"Z= 5`MK/I:Q[a]M"3JN : ++/ֱ + + 99015432#"%326=4&#"3RUfcVVedU32``JN[ +++/ /ֱ 2+ !+9 99 9901!>32#"&'326=4&#"`< .|RNy-O:YMPX9O`wCH<9#"*(3` N[+++ / /ֱ  +2 !+ 99 9 990154327!!#"%3267.#"3U/%.{NRM[8PO7ZP6QK&;>(##)*`N:+++ /ֱ +9 9013!>32'"`> "pK2!{:J:U^'$:)N-w(+( +@ ++ +@ +./ֱ+2%2/+ 999 "($9%#9%,$9017!32654&'.54632!4&#"#"'&54)2YRDF[x؀zAH5HS~ƿ݀{UMD51(?%`\@B:-+<'pkG`+ +32 +@ +/ְ2 2  +@  + +@ ++ 990153!3#3267#"&5Q/( %8Z=P :3 X%:J +++ 3/ֱ  + + 9 9 901!3267!!'#"&XQE@6RR4_j[ZƀHM: ! ++3 / + 901!7!!dc:st|:R+ 3+33/ֱ+ +9 99  9 99901!333!!#!8wղu8:xs>!: &+ 3+3/+ 99013 !3! !#Ey{E#?IK%:0+3 //ֱ+  9901!3!#"&'7326?ghQ2,8<) PJ:e%x //FA: .++ / +990135!!!A4xz(q=;//ְ2 2 +@ + +9901526=467.=4&(RP?I:\]]\:I?åPg^˫7ph-/fp7\hd"+/ִ + ++013B)r=;//ְ 22 +@ + +9901>=467.=4&'73")H;[__[;H?¦OSSO·pg.-hp7^gh\˫7^oDS/ +/ִ+ + ++ 9999  990146323265#"&'.#"^QH+C'+?豊SK/A)+=A@*%dH=E+$dG:&+ /ְ2 2 +01!!SSTb $&#{ / +/ +$/ֱ  +2 +2+ 2 2%+ 99 9 !99 $9990154753!4&#"3265!#5&bȢDE`MMcDB6&ݫMaJH&g"+2+ +@ + +32#/ֱ  +@ +@ +!  ! +@ +@ + 2$+!9 9013'4632!4&#"!!!!3>5'gK99> EE@ //?UPf^3I7 RHE7#/+#33' -/ 0/ִ$ +$*+ +1+$ #$9* "$9$9'"$9-$9  $901?.5467'7>327'#"&'32654&#"E1385Ja`K383/MdeKP窱vLbeN7<=8NdaK>AA=zv++3 + 3 2 +32/ְ2 2 +@ +2 +@ +2+99901!3!3!!!!5!5!5!53on'CC6ddw"+/ְ22 +01!!w$$ ^E3E + +@ +#/++# +@+' +F/ְ&24 (2  4.+2 2  ==/G+299.@ #+17:@C$9 99+ :C$901467.54$32!4&#"#"$?!32654&'.%>54&'.'^PMGF#f]c`cPKEEIx`^cnQa!:q;X-4cI]F7?C*>Z,5cWFA78G,@GH1 =&>P0 =6+32+/ֱ+ +015!35!""U 5 + ++ +3+  +3 ++3 +@+/ +$  + +$ +@$ +6/ִ  + +( +(.+!20 +20+ +7+.( $3$9$+ 0$901! ! 32#"54632#4&#"32653#"&U('`bzWWὠZZ^dd^ZY;PN<igw֟^UqxsS`l  ++ +/$ +)/ +,/ִ! +!'+22 +-+! 99' 9999$99)99 9990146;54&#"/&632#.'#"&732675#"l;9BH  !oNw:;3lJSox3>A4/ b3X*//=zn+-<#g@7 53#53#7Ηpqpq}v%3/  +@ +/ִ + +@ ++015!#}CzQ"//+++01!YU 2; + ++ +13  +1 +13 +@1 +(2;  + +54&#"#muVQ98 +.10mvTdI.@(#/9/V*+  +@ +(/ ( +@ + / ++/ִ%+2%+/% +@ +,+%"9 %99 "999017332654&+532654&#"#'&632#"&\9;0=E@ee<91112G=GK)++*-5.,#0*i|wn7[_Dq{`)+ /ִ++9901!`\ `:R ++ + 3//ֱ 2 + + 9 9 9901!3267!!'#"&'ROTAZQ+j=+J `\.-5%%S< 7++ /ִ+ /+/ +0143!!#"<SP7"/  /ֱ  +01!RV( // +/ ֱ+ 999017!#'2654&V @V´)/== RPr&'&p/+ +/ִ+ +@ ++015%#pcku* D+ + / +/ִ ++ ++ 990154632#"&7326=4&#"uXURXYSTWttUggUtShhS7 73337zzzzZ ++ +3 2 +@ + / /ִ+ +@ ++ 22+ 2+ 9 $9 9 99 $99015%#%533##5!735'Zc ǝ98YYikrO E $+ +  + +@ $ + / %/ְ2+ +@ +++ +@ +&+ 9 $9  $9 9999015%# &632!!5%>54&#"#Ecǝ9uVQ98 +.10krOmvTdI.@(#/9/AA*.:@8+9/53< 32<9 +@<1 +(/ ( +@ + / +/  +@ +A/ִ%+2%+/% +@ +%8+0=227+22B+%".998,/;9997-9<9/+99(?909 %99 "9-999017332654&+532654&#"#'&632#"& %533##5!735'G9;0=E@ee<91112G=GKrǝ9 YYi)++*-5.,#0*i|wn7[_Dq{rO 7u":`+ / +@ +/ֱ +2 2 + 9 $9999017467>5!3267!#"$!7s?.RbDLYUBYIvP1|=)aTZ+|PTdRQ! /+3+  + //+ 9013!!! 7!!!#kS5RM[05P # /+3+  +//+ 9013!!!!!#kS5R{\5P  =,+3+ +/+9013!!! 5%3!'!#kS5R`,15P3~~ xK+3+ +/    /!+999013!!! 46323265#"&#"!#kS5RXwZ84/xZF4!,C5Pt^S@.3`TA-   k+3+  +/3 2/ֱ  ++  $999 $9 9013!!! 5!!#5!kS5Rf"5i"PA #+3+ +/ +!/ +$/ִ ++ +%+99 $9999!99013!!!4632#"&!#32654&#"kS5RX|[YzzY\{E5c5)(11()5PQppQRkk *43++55;e +3 +   +   + /ֱ  +@ +@ ++ 99999013!!!!!!!3' D;IWP(-+ ++   +@ +./ֱ + 22$+++/$/++'($9  !$9$99 $901! !.#"3267!! 7!#'2654&PE$qs~zfI  @V´)/=@0MΗLA= RPr&'&rh! T+ + +//ֱ 2 +@ +2@  ++  99013!!!!!7!!r];p[rh# R+ + + //ֱ 2 +@ +2@  ++  9013!!!!!!r];8\ rh= Q+ + +/ֱ 2 +@ +2@  ++  99013!!!!!5%3!'r];],13~~rh r+ + + /3 2/ֱ 2 +@ +2@  +    / ++013!!!!!5!35!r];W""A!*++/ /ֱ +99017!!!F[KQP#*++/ /ֱ +9901! !\Q P= * + + / ֱ + $9015%3!'!Y,1"Q3~~P  E++/3 2 /ֱ +/+  +015!!5!_":Q6"APA ] ++  +3 2/ ְ2 2 +@ +  +@ ++ +0153! )32654&+3#wZSj}r1x {+3+3/    /ֱ + !+  99$99 999 99013!7!!46323265#"&#"rSQwwZ84/xZF4!,`Pbt^S@.3`TA-Q&6  F ++!/ֱ + "+99 $901! ! 7!!32654&#"QWX[U ^])ȞǝQ&8  F ++!/ֱ + "+  $99901! ! 32654&#"!QWXQi\U ^] Ȟǝ Q&R $O ++!%/ֱ + &+99 $99901! ! 5%3!'32654&#"QWX,1U ^]~~ ȞǝQ& !/l +%+,/   0/ֱ" "(+ 1+"9( !$99!9901! ! 46323265#"&#"32654&#"QWXwZ84/xZF4!,HU ^]A^S@.3`TA-ȞǝQ&" #e ++/ 3!2$/ֱ ++ #+  /#%+  $901! ! 5!32654&#"5!QWX""U ^]Ȟǝ5  7   5+%%,}12+Ϸ*Y.%1d+)+"2/ֱ ,+ 3+9,&$99)99"199 9901!273!"&'#7&%.#"32654&/YWeJRQXN>MppzQ%gAH*U ^40TSBr(.3ǝȞ=k!G++ 3//ֱ  + +99 $901!3265!! 7!!kS~}S[FFk#G++ 3//ֱ  + + $9 9901!3265!! !kS~}S\FF k=M++ 3/ֱ  + +99 $9 9901!3265!! 5%3!'kS~}S,1FF6~~k a++ 3/32/ֱ + +  +/+9901!3265!! 5!35!kS~}S""FFD"# ;++3 //ְ 2 + $9901!3!!!m!"o\|P t K++  +  +/ֱ  22 + + 9013!3 !#32654&+tS 'pnnppVWs-'m++#/(/ֱ' ' +    + )+'#$9 999# 9990134$32#"&'3265454654&#" _P';$kD=N^V6>NXɳfL+B;A`K5Rvb- %0z++)+. + 1/ֱ& &,+2 2+& !"$9, #%$9$99999 9990146;54&#"%'&$32%.'#"&7!!32675#"-{AD:90at[=?22TxPI1MEJ7:ȺhWI@"CO<n.9( N- %0z++)+. + 1/ֱ& &,+2 2+& !999, "%$9#$$999 9990146;54&#"%'&$32%.'#"&!32675#"-{AD:90a<\?22TxPI1MEJ7:ȺhWI@"CO: l.9( N- )4}++-+2 + 5/ֱ* *0+2 6+* !"$90 #$()$9%'$999 9990146;54&#"%'&$32%.'#"&5%3!'32675#"-{AD:90aa,1?22TxPI1MEJ7:ȺhWI@"COT~~R.9( N-6 4?++8+= + ./' '$ 1 @/ֱ5 5;+2 A+5 !$4$9; 1$9'+.$9=999 999.49'!90146;54&#"%'&$32%.'#"&46323265#"&#"32675#"-{AD:90aiwZ84/xZF4!,6?22TxPI1MEJ7:ȺhWI@"CO^S@.3`TA-C.9( N- $/3++(+- + !/03"124/!ֱ$$%  /% $++022 35++($9399-999 9990146;54&#"%'&$32%.'#"&5!32675#"5!-{AD:90a]".?22TxPI"1MEJ7:ȺhWI@"CObD.9( N-L ,7C++0+5 + */; +A/$ +D/ֱ- !-+8 +-3+2 > ' +E+8! 99>*0$$9'995999 999A;'!990146;54&#"%'&$32%.'#"&4632#"&32675#"32654&#"-{AD:90a|[YzzY\{8?22TxPIA5)(11()51MEJ7:ȺhWI@"COQppQRkk .9( N *43++55)N.<E&+,3&+2+3C2>& +3:F/ֱ/ /6+2 =26 +@ +G+/ 996 ,999)>999"/5$9>79: 99014$;54&#"%'&$32>32!3267#"&'#"&%32675&45#"!54&#") F@FO a==akmXyLQBy}D<‚QJL1k"Wa$D=VKD.BK:,-,+.Xf #3FKF@Q490"MPZe-(N-|+ ++   +@ +./ֱ + 22$+++/$/++'($9  !$9 $9015432!4&#"3265!#"7!#'2654&- DE`MMcDB5f @V´)/=3MaJH2[= RPr&'&B $7+ +"  + %/&+ 9 901542!3267#"7!!!54&#"B r_`sXPGa[!#DHII&9Sk%4E,RXhB $7+ +"  + %/&+ 9 901542!3267#"!!54&#"B r_`sXPG)\#DHII&9Sk%4E, RXhB (7+ +& ! + )/*+ 9 901542!3267#"5%3!'!54&#"B r_`sXPGN,1#DHII&9Sk%4E,~~RXhB #'q+ +!  + /$3%2(/ֱ$+')+ $9$ !999'999 901542!3267#"5!!54&#"5!B r_`sXPGJ"#DHII"&9Sk%4E,RXh'++ /ֱ +99017!!!R[MS@:t*++ /ְ2 +9901! !t\S >: * + + / ֱ + $9015%3!'!e,1$S~~": G++ 32+ /ֱ +/+  +015!!5!k"<S6":%!.\+%,///ֱ" "(+ 0+" 9( $999,%999014327.''75.'77#"%326=.#"%I1K2ND#kZHMo{Q{glz!qJvv &"Cu0tvU G1kvVrͷ?eѥ#)Z'6'~+ 3++!/  $ (/ֱ  + )+'$9 $999 !9999!'99013!>32!4&#"46323265#"&#"Z= 5`MK/IwZ84/xZF4!,:Q[a]M"2^S@.3`TA-3J  F ++!/ֱ + "+99 $9015432#"7!!326=4&#"3[[UfcVVedU32=3J  F ++!/ֱ + "+  $999015432#"%326=4&#"!3RUfcVVedU \32 3J $O ++!%/ֱ + &+99 $999015432#"5%3!'326=4&#"3,12UfcVVedU32~~!3J6 !/p +%+,/   0/ֱ" "(+ 1+"!99( $999!99015432#"46323265#"&#"326=4&#"3wZ84/xZF4!,UfcVVedU32^S@.3`TA-3J #f ++/ 3!2$/ֱ  /+ #%+  $9015432#"5!326=4&#"5!3z"JUfcVVedU+"32;O .///  /ְ2 2 +015!5!5!;NSS3k#3oJ%1e+)+"2/ֱ ,+ 3+9,&$99)99"199 9901543273#"&'#7.%.#"326=4&/3/X*Egci/U'GhgkR dU cV 3 I H/L)GX%X +++ 3/ֱ  + +99 999 99 901!3267!!'#"&7!!XQE@6RR4_m[j[ZƀHMX%X +++ 3/ֱ  + +9 999 999 901!3267!!'#"&!XQE@6RR4_5\j[ZƀHM X%\ +++ 3/ֱ  + +99 $9 999 901!3267!!'#"&5%3!'XQE@6RR4_Z,1j[ZƀHM~~X%} +++32+ 3/ֱ  / +  +99 99 901!3267!!'#"&5!35!XQE@6RR4_T""j[ZƀHM'K%:+3 //ֱ+99  9901!3!#"&'7326?!ghQ2,8<) PJ\:e%x //F _`I!Z +++//"/ֱ 22+ #+ 99 9901!>32#"&'#326=4&#"_S-vNOx,O9YMPX8O`32!3267#"&'#"%326=4&#"%!54&#"KnC?j q`_sXPFmDCpQUfcVVecV#EHHI3A;<@Sk%4EB>>B2dRXh" j++3 /3 2/ֱ +  / ++ 9 999901!3!!5!35!m!"o""|P0x/3  / +9015%3!'x,1~~ow/ /   /+ 9 90146323265#"&#"owZ84/xZF4!,^S@.3`TA-!Y!Y!YBJ/  /+01!=B~BJ/  /+01!~6B#k(/+/ִ++90153#<].v(/+/ִ++9015!.< _#l5(/+/ִ++901!#<  2# H/3+2 /ִ++ + +99 90153353#s ZsOn\d + 33+222 ++ + +2/ִ + +@ + +@ ++ ++ ++ 99 $9015!##333#5'#\ycdcSSX-`-3;B 3V1o$_`1o`Z3`3`)XA( )^gbguE w^cHUl7d}HU)-}OTXgNV`!Y<9VCpu7ZEA7$PrrrrccccXrxQxQxQxQxQ;5Ykkkkt2>->->->->->-)-;B;B;B;BHHtHH%Z33333;3XXXX}_]5K xoBBk~#.##%#3llLjC\8   ,,,,Zt<b0TtBZ2jh  | H | R  v  > d L\ J,\0z4Jvx l &P<FFp^Lt,Z  !$!t!"@"f""# #>#f##$V$%&&V&&'4'((n))N))*J*v**++t+,F,--. .,.//T/0 0N01 12 23^345l56J6777788L89@99:\:;L;~<4>? ??@ @X@X@X@X@X@X@X@X@X@X@X@X@f@t@@@@AA&AdAABBLBLBpBBCCCDDE4EFf > > V 0d ( ,  @ @ L &` \ T  6  B L d 0z   Font data copyright Google 2012Roboto BlackRegularGoogle:Roboto Black:2013Roboto Black RegularVersion 1.100141; 2013Roboto-BlackRoboto is a trademark of Google.GoogleGoogle.comChristian RobertsonLicensed under the Apache License, Version 2.0http://www.apache.org/licenses/LICENSE-2.0RobotoBlackRoboto BlackWebfont 1.0Tue Feb 3 10:51:22 2015defaultorionFont Squirreljd  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghjikmlnoqprsutvwxzy{}|~     glyph1uni000Duni00A0uni00ADuni00B2uni00B3uni00B9uni2000uni2001uni2002uni2003uni2004uni2005uni2006uni2007uni2008uni2009uni200Auni2010uni2011 figuredashuni202Funi205FEurouni25FCuniFB01uniFB02uniFB03uniFB04KPXYF+X!YKRX!Y+\X E+D E++D E++D E\++D E5++D E+++D E!++D E ++D E ++D E ++D E+D E (+Fv+D E:+Fv+D E+Fv+D E,+Fv+D E +Fv+D EQ+Fv+D E9+Fv+DY+Tzimmutable-tuple-0.4.10/docs/public/fonts/roboto-black.woff000077500000000000000000000577301342041553400235220ustar00rootroot00000000000000wOFF_FFTMn7vGDEF(*GPOSXGSUBxLb &OS/2V`cmap @Xcvt 66vfpgm eS/gasp glyf JQfheadV16>hheaV $%hmtxWne9locaYt Qmaxp[@ name[`;ܗpost],{ƌprep_$aV|webf_{T WwG%xc`d``b% fb`f`dx π9K ,RxڥylUƿG}KO j""h(BE%.1ј k"QTj  R("b?QLmΗo޼;{wsIQ],Xգ|S]YLw?E1K>r"EJ\"=lUjjӪf{x-^K]Z?IFҰ/-Xe#*[nƫ*V(2X=[Lfoixǿ\QﺅOh5~mJ$~Q Mg5q^XJ8c,YFTt8΄3B.K`9\rVJ 5ps `sUÍۍp/Dv-5VqjةND[!` f+o~uhݦlb&QN [*(Eou-y˳OyuJ9{MF0r5#o<ǚ\Wp>,$6E>kam2Mɰ.7R~ppze]p vaF!`4yǪ;/#;p 藇  k^F]@tD]U693u YNdp|/tqMtL='3dzA/%LU&;vszYdlNdW6˶& l-1\ 8/avVnV9e}a`n>Z#笃;fYH#_myKF7^)R'\_.oZ'y^4y'4}-aGok[+^XlX-J-X;޶JHҔ&iUxqޅr}f_ajaBeԉ^,s6jz7Vʭ枷dĴ ~>Hq~?| 8wZrٸ oۦޚݯǛUCmyǴcusAG 59 ݙ%G\iw lk<>hV7pm1&+o夜M咙E.?Ov}aE Ʃ|޲z2|M\FCq mkgw} )=3@: JQ>g/1sԙ \W˟G^H1Br(  $#|]@Z:#Ry  u#N 2牠LdQ<9| KMgxc`d``b0`c`rq aI,cb`3Gf3d'2pX`e02Aig L >@#'sf xc`f1ana`e`aj(/211000<`` d*@oi uL XX71s,xc```f`F1, ;P1.)9%5}+x5J~ Գ1AA@ABA_?zp{,[/YBF$`dck`dL ^faecWPTRVQUS70426153wptrvqus  OHdhk̻ e1tb(f`H/.aŮ<;^RSC^u 0<~sʛwZz{'L:aʜ+jb7D:=SH8>3SbhQDx]QN[A  9{ Սbd;i7rq@D گH!H|B>!3k4;;sΙ3KʑwkS$6NH덌Zlfu є;j=o)M;Z ;4: !qKͺb00.?R4j˰Ѽ34@Skm!qK˦6$tUS]`*́Vy &ҷ$, b 9@HƼIJ;ㆵƑ6O'ӿZxڽ}|TUM̛IO&!3 I Bo 6lݵ.UP\{}o2uWe׆}QLιɤd޴9yύ8~48 W.jt).pi-q'~L )!%4/Ћ-ji/_z#%7J8UQ}W*G5]JNUƁ5xrUl3^ "99W˩\Db "rVNFT;=!(%XbY}2'?'^ gsd%X,Vɲ*x%'(8g{?]&$~$x# >mv|DԂ/pv.ӣt .bl*۬tke¾e amj$-D*AYO Tڟ2/ bQ49yսópEb0-2ߣ)@Y?#~E>%QΎ Όj`TJB9¢`#p0*qjWǢjKJI]X PmIPӃy$-p]I\L8e~#;n_Swx#:s9_xz7ҩk3{?zm+s6O 9(1WάqE`m-ٞh(]Z*z8ۉDw*G'wjh𪚽hfߍs`34j"26|NsH.,j&6>$|mnཆX}CmA_Hm}vCWm'MCl~FEDnjvu\ДzpKxpCԌSÁ$k:4WsP2 K 0HأVhvV[ZňhxΈĪ@uJDAqyFx38$ۨ6Y\5- ^ar(pS*upaQ1X=x>k:baS |3l^9~_IQs*m-%%M %ơ ;)~ ohֿh:گvI3>˔e^K&g ,)]>`D+D2%!*nId"NNn~~~@ u>H)\:GT/=^o|7u>y%-RGnt{={|mϝrb}(E0XϢ 4n|WtY. `} wdrL^|7r+ޚLϝ 炮qAݢrLhvzI AgqR_V3HߓIM|䡻l&.|3IZ`n}A5%Wq 863|Tf_*5*2 !?$D׷%18]ҧ3oQ>M*ZETR#:ԅa,)r\"va!G#B;>*F46,R[y;" ~/OF< nY0G胝mI ?s%KԦƁ U|eAmg)fA],ģrϫG5Nڏ,$Frw o 2WdCVTL)P d0֬x!m5H)bQ.xp!GQM<__ߐٳZgm9FTo{[xn>F@ HkQya]EJǸ( ׈5cA?&.f/E\M`o\\܍:S Z:g!fGT>M>|WvdLJy~?EsK/2{VLav׳%F\_@Ge/?a Fn/G~]sJV}%Rt.aoOx2/[<xTPK9 4Sv06qR9lV6r)0R9=Q܎Ep^8D_sk"¤V(mPIDQмTxjNehޛK9}O%}_d©-2eAѣǍ3j~}<65|?o`,?|'Νb>}񢖩ϵ=PcPްCʠc?<@rgM9!(G@|H%;o:bw P*R3 bͣTr!*P5D4x*8΁]IVX`8l=\ʙnMM9d9He+7m?lo?E;_n9;%WUغw'⬹',5c,A 3[mN0ljMJ '= 7jExh0RE wjjJٍ&g";:;͒hPTy|{:CD'E>ؕ3._ 7 ]LA^N+y{=ZO&3@Wd+CnS쀃݃3SPY݄}-\vH_zOB۞4#'v8C~G$ƒcI5Ե9l$Fm8ϱypk?O<ީ A4뮣8gU״ F52.uu"ʏz^. q.ͷ7\<~%'|6C<2[z\`} C9ݨ93F^lT) D $8κMNo0c,d~oT^vmV2\K0CXd]Tw$o> [|EfF3I/e:?K+xA(e k6ÚD>Iҝ/mT~j>; nlըTNWiI]m3x/˦Yc<*`j៝t}ioY @F$;)aNPy F#eR8TYOfBvn~pש㻺V\K2%&{jAJbIԎhsɛ\ 8KF5BTx4;cP+֪ӅZ؎!FUpH _) yDY~\ $HG Zoŋcb* Rd=P<謍&m&HԕPdʓ_\ ;~.w.? ߉-Wl%s_^q=? Rm0o71ˁr|/';Ǘ L^>r&9hFO-a@2Dk;P<%ZRxoLY<1\w"O&\~IVnѿ[^+7~~\%{ O9zȜ19˲<#OQ1E륡,F\EzIMvQ7( 3p ы@?|蒄N&+ϑqz\GEc PR % QL낾ͦZ"arߒoUWuW!Qw }Q#G+2p%ORC@N%!uE :+pэ\15%g!N-Š k:^Bsw| O*y+MJV3Ɠ1 lhHX笳Y-#|{.j)% 21; y ~~2o(,el̄lш cDpd%`LA7>lGoX-0^/lT8D2H aPD*=,*'۽^}9wD.oioX,P $\y7(>ß-D.cB'Ӵ~L晉/n_I4hsU sĩu3Z^ )FѬVX!h_݆Q"V, 0@tJP_^-;T;3S\Z[W[O ՄEM`$|C=Q?o=ss;hx[_ -âљYL@jv>6eDZ\b97M Y GM[XVT ?Q΀U7-Ӹ v<ȡҙ*{hH`xqx+N͉{Cs1+? Y|FԕΖUgO}㝷:oKuzU/3jՏ~LԆ :p奘O>][@ Qw/c ĈQw1͉0KZ]`p璴p\zW|Fp?%J./ҿi3:o&ȣ znpI h%g" | bna#xr0[YBupODzB=4:@xZ)<3NTdUEќ]$RN *,!CVxCqtI;1fR?:|T,qoΚ;֢wxpf?3K?7ד!çry/1dTB0zoUw;GLLniYu95E>bri+Q#~&~CɌY+Ϟ}Y7p~菗ve-wy k…:rmt tELݨT{E1K+$ܧL^irV?㕿3ܪiM>qZP_"Mv.qK{+ʨ,_"tßTݲwDzvXm5[;Ru; @޺}uK"٤XL7L̜V")!C\ɋ\ 8!g$ Cl7404tt͠Pjnµ2y'zwZlJ=R~+a?\ ,"PV<=b+ ɡ+GR{Z.I7c4ǪDt]ïz-!ɕbqDq1pD"_AwËK|P j8Dأa,TP-GTi&.b/_Ot SrȪDn#莇44ݎـHN"p'G׳̩IHXZoFp03| ygD|kהg\7UjF+X3 5#lXp QMAvf 5͘~MpѢ' =OV-~׫7}uΪΕ)WWf<=YA?\j|,ݞRkS~R^(;u&^n%SQ-[A-Ϧu2AlAaAz* )Z \?3,[Yp Z[.Dgꪝx'зbr0Vx&[H,_&+jhdB#M5jpZe66rcA dvZťL-~ߎUZ9 k'EFW6>1x>iSYbk+ɇF)2뛮a~%7c[eGbT…8Pt #FQ@M|#GQql1v/1eg*,=o@Ф)mvG&$#Hg>}/9 o߳^ '%~󷇤dPCwڿ#%*Ihoʥ/E&31f}VHT13G12^a 5tW2ӳmVR!ZāWb)MXw aAC ]JWj9?Ĥơ6{1D<ȫgYW.~JM^$㩍:gR򼈋*p,:ժrNq_-((b n`Z)A,0W,e}ҽm"w8A_e6vS_ZoX[A Z-y&Pw5NԖ.Oڛb Unto~~oκbr۲zu757tV,&]s֡#F4o7>#^>8+ȝO(4΅SS$@:}Ci CrԖIۧ۰En6 xhAQ;;?nN X ױ1/9 9M}?)ϒQ%Y~Tנ7Wg )ܻmTar@-&Ex|/dw~&uٙX#> #ƍs,h GJx2Tq7^$Aʢ@SĂ;6Ѳ8TY2R( bZnÕ5B)jH:R&dgQfW\oWY<<σ|O2n, pdJ` \|;{1c~ pΒOoHһBsϸ5Hvf{EU5{o/6b:?^ucFfK"@J'Ie.l`N }PD#E⃨"dMzɈؚ:Ѓ fg=)'li('FG,ӛ dKFQhsF=D HYd)#}l#A2G!s&7͟xŊċ;!Dէ_ҧ8iַX*g~d7ˋg]y9h]"o6[S`5amHX)ԼHG=2#LCc?bv4jtҨh-bZ([ЂXeXj(pp"$ )uŐƑ!WotkV:}ٛ<$vrVω Qq6_U[dE7VY^5Ѡ&<#<` Oij/ncO|lgbbuwuR5_TH +[{' 6sG=&aS,B?2V]ebQ5&>jܨzeK"E-KQ) '~4_@dIoɱ)&o&4qԥmSu-f\yaì'5x-ƍ#65 kS8agBg{ %p'wIz [trk" R%c-R:넝f`&s| p]w&ƎNY7ܹnA&Nd{e&G/:- mN\j=$[Oc*}ZOQ$P 3a$X ב]ĪL*6[e.ȡ1V/DrsBj%> :ɮny1yܤ='l+++VȖO:df06cS|{M@`w6 ɒd!!>C2mf!}x'a4`NMKbbAD47O\TBfL9b~i(U\9#]7]cw]qf4u[AVESIp=N\ 9\J{GZ._tJ>|+wGћd!!/e]RZYJނS+)S[ZSIz06eЙ`TuYUP"GG$Xs,=X|'rYg>cdzlΚ1w^9" 7?ͳVuVӎxŴ#}BH=_GSy N7&ޞqe,΢Ӭa;BA8 b;1=Gb韨hzӆ ׼\( R^)m=~{/hvmGK\6.:@~`; cuh.6y'} <%%d tǭ|ߺKO1@m ;ـ3WVP bI&<\~m %)TUX.ҡdE6.Xؗ 6rt=1!0r<ѿEXyd#@Up`n8>otcDiMhQk9JQ-oǣd0D TϾboU=Zau#- Abcg55GS0tD1l((/UPJ<3?TQ~pܯ(.- Ku\b!%\`eDh'I] ]\bKL,Q)vq4}º' el PFɐ'vtTa ]݉Jwwb QpqjKE8&B>,!^ 5OW\nC,ۃ^5ap< IaI@p;f@u`\*I!`Vc<:K(Qucn Tu={~ë9>[0_::䊙#:.׉7kzCLY=lRDN m`bYiVv|6\t[&~(tG6+Ia>"p)L0:L :_ >:W+D6HaXETxf00lQ@HT6%=@`_J,KodCv WIHc_0oy .+/)+Kzڵ-3֬6VYYW|;Yxw"TVn6Bnw;'JvVJ5zh^A1u ɠXq %/UhWg`|$1CLE^GC:/ro!C~;_Ϙ;UVVϗgь~;a VJʈV% wKiCSe(BϚ5bK`c˒^qϒ&i=-pj5s2`.nr^Tv5Sz_O-La+9ذLd>P )u50} Rak\˯u~ cT[= 4߾-~z(r]"6FǢ`>B;*m=sX$?944yOlٸ~LX6Z5pvC!h5*rcWM"-ӮZ 0SrG9/Ilt Gb]}OVM*;ouhY'mLw@2oE0'8<, k*P-:Ƙ%1 TkL#hHxrS0Y6+}ԩ,Nfx>&-H!xD=0un2D8>hV jFzNsYqflq'M%:rYeQ($ٴ{ݝ]ߓVּe'ww~knrt^[5E'V2aR?M! W㝍؆2qjAҒf*j~CӼTlzBېZyes}trd~wG%|QlL%^qh._#{~_ 4STM(u߳39_5lI8Ĝ\ j2uѪ|ֱ̿a*C:Ws)Y&!! V78`!\\q"̢^$ \IΞ&NN!N1p*6q $;BCO~iL*4 =Z&\rɾ T`!Ij oT#@ +L Hu\=ԢABVv$ۆxQ bZHP,.$v{9b!5 x,Nv Q^@kMLU_lIaT-qJg#6`YlT@I RRCwH.}]B߇<3NZF1W4_nRA4gE3vsl% raՠ j{cxn%XOڒ'MqE-tS:k7L*|cumi^_:h@cQo Lbo3,Rۑ9fd}Zz(&jh_OJdX ^K|FF&PPTD26x3]ILX2DX0/S˻?F%6`q WRZiI+EWMn{]zNVwh56E0#],`>B FI4kxW4oŰh4=T8KL&vR{N[/ҿΞd#_?Ul"c1{jg)pb)-(cfrQ-a%,.cbn)PMh] =lGRZBI6HVцtlHҺ( hV.k9 Y[GU{@bICIΓzノ7䝣yO4xUm%1n[*uzP*I]p ƴBP5vk#jht"Z\4VROTb(#v n}V'~c" _F=!ZǤ"RX$]hcokufT6\@\=7SS6t$)[VZ UՒh`*C*,1׀}yػCS1Z5XwF1~V:>&ljb-i0<̘IN;NW),N媹&n /`j@L-C+%Ӳvm0LӪt-xPh"9d6dHvV@mʇR 0BUz`,q2*٪cJDI*%Ħ;|4Ib!/ou3/9u[F~tWk,Iٓ;9i|sU*>+ {cc' -?e¿,*^rN#'C;2^:s؅M:)3NGG`A)YLqM) Dq 賫}ǃ0+9#Y]9!"̭ٴ̣cLʙUɱ^PW1Ą]p.`3qڴ]|dž}jd?р5-zbB rL 0&P28Jݞ>-Kl +UĊn{v莻-=yT\~ΣD_DR5p bhZUe>u!HyR3/DGrGi)Uz c8L#}^;ߴ7@Z)u ego"Y$nGnk<-=a&VkԘ]_f֐&:_ZG:^|IB-}ŠI)a)cDX!eå-v9^-=Ym@1"(Z3xփ`)<{i4~XLNFO3u{iӟgrުS6ΘxY평Pu g͒rj֜5{azdMo/&_\xQe9qAz g2k`IiAtTVx.vBظYڨf;7ѤtU)'ez"ESV"sV= r# 2E|Ssx$"}S\h(\lFh]xpw"y~JLIvߔAѣ_xT%099)4 ǰ?;L蝗Q}~q&8RJ7Ec_MVȱsQ$q+^I)?ꑌdT6VOZ鑊FR8DTދ1c_7t vDSTs)J X 1j("|A}͡CB^8](Q"AqKj+I:CXgf |KMR!Q#tGVV-? hU:N[j aܹ.sd-mȌ.oOF$qmdr&!/ҝ{h]>.M2` w)2%W |z+bijMǜ)Cr2>e$ c0"A3Sg-aׄ 9홣yP҃Y9,wgd:IA>ЋfBK0Vfc'4 3c_ڟnrRb vG`e+lYp2p̚n9(lW_ gtW_JYgsv ;i';9iӉ2Zf3G3:NЗ|؈lΠWLc F?Je!I 伔+=Ǟ@ZΚئ3i8Yc8!2V1| F'h6ޟ&ҁc}c0Ӊh$MX.dcN–hxkb0Q{6rU9jEG\C1Wm^A[]jzY}4iytƆV J i[2`"/zqbVPqt1imBU /NH˭W,]>[hLvں32yXdCw3==W2Ψ+rXAC*ǺRM3Ge}4-@acydLhpZ N 25{wc/S L"NK~;Xr~tOڟna~nj?)CF:2դ^aMY٨5vrl969Ӣtp>X/6=GMP؍5 rmb1%7FmJz} _#~*VryRL`x^fv1qNRSzp‡8,n٣ S=NzUMvg4}Gc\gD,eHmćl~ RWs4(7ag83׽} ݱo,PKm~#Y? 'sV!nyzV9 T7]^xQCR .D\W]$Jo QxUr8!/LSvW78Y0\@,I)0(.k|k'k@ɼG;BMvj1#4x)&~mOk{y`S,17twפ@$J/@$D;ƍ'F$һ Ot:aW;+6lqɗm]f%[|dF9#ً\E)wvگbvy)w27[H6vMwit#qq(=z!)*t&)PLTrvbq+ghoVa3/G?>gz-ߩxWP[D&iчR|zT͹c⃕$FZ@cyY^S}ws:Ůx9bYQ,PˢjV]8Fi1+:6 X+ƻ0d)&t r-58 Běv4Mϣ3 uI>ܛqo,փZ yQfkB5Wc*7 N:N<.BGxc`d``b_6m2s0o~4'q00D"xc`d`}"(xmMHTQs9QMZ B`&NGPRY*J̀1)15DЊIE2 EFn {ps}9+BKP1.0!dO;CSJ8RCڞ %* 夲gy*d1ކDk+2$ &8.ZQ:AH&6 _?tMҍZ)WOQ8aD$ݶLlL$H( DM`!T{ʩ ^w܋*D#܂Vgl~нhZ^wEN>yypK]AqMV$n,҅j$⒤0fQr6r;z;5a𣇏!l{D7"@7i r8~Tv;}_k[,VAmfѧT%9X4'8Y|GƠu0f9 S}O/}ZFQ}8'8fq*NmCFӀ~#sJW_QGtf y =Q <בCs{"rUD)|U\K= ^kQ@xc``Ё(.oLӘm'1`~bR2 6(FY828p)YU;{&2u[/Fk<{]xmGLqe[(XDOE{FԸWQ^\>yyGm*WA"$H,DaF41؉%xH$dRH%t2$lr%| (@G:љ.tAOzћ>ECESB)2 2ʩP1dX1 LdT1d\Q)Fnlb9qIxUld?[ 'O~sS<vzD5y3|<g=ol YD4KXʲpYA3+Y*rawqs\-$F+q/ (I,)*i..rldr[%ɕ<ɗѯBMMݚRCPjP:NKY,V(sꮮkPo kU#t( 1xEͽ0BG䯓6:,,,DUGVNƛã˛'/@wtTWqmC%0;/lj/=#Vc+ 1-4|7]cB=5\Xc#a/SB2 Z <  d@7PJPTzimmutable-tuple-0.4.10/docs/public/stylesheets/000077500000000000000000000000001342041553400214655ustar00rootroot00000000000000immutable-tuple-0.4.10/docs/public/stylesheets/normalize.css000066400000000000000000000153321342041553400242030ustar00rootroot00000000000000/*! normalize.css v2.0.1 | MIT License | git.io/normalize */ /* ========================================================================== HTML5 display definitions ========================================================================== */ /* * Corrects `block` display not defined in IE 8/9. */ article, aside, details, figcaption, figure, footer, header, hgroup, nav, section, summary { display: block; } /* * Corrects `inline-block` display not defined in IE 8/9. */ audio, canvas, video { display: inline-block; } /* * Prevents modern browsers from displaying `audio` without controls. * Remove excess height in iOS 5 devices. */ audio:not([controls]) { display: none; height: 0; } /* * Addresses styling for `hidden` attribute not present in IE 8/9. */ [hidden] { display: none; } /* ========================================================================== Base ========================================================================== */ /* * 1. Sets default font family to sans-serif. * 2. Prevents iOS text size adjust after orientation change, without disabling * user zoom. */ html { font-family: sans-serif; /* 1 */ -webkit-text-size-adjust: 100%; /* 2 */ -ms-text-size-adjust: 100%; /* 2 */ } /* * Removes default margin. */ body { margin: 0; } /* ========================================================================== Links ========================================================================== */ /* * Addresses `outline` inconsistency between Chrome and other browsers. */ a:focus { outline: thin dotted; } /* * Improves readability when focused and also mouse hovered in all browsers. */ a:active, a:hover { outline: 0; } /* ========================================================================== Typography ========================================================================== */ /* * Addresses `h1` font sizes within `section` and `article` in Firefox 4+, * Safari 5, and Chrome. */ h1 { font-size: 2em; } /* * Addresses styling not present in IE 8/9, Safari 5, and Chrome. */ abbr[title] { border-bottom: 1px dotted; } /* * Addresses style set to `bolder` in Firefox 4+, Safari 5, and Chrome. */ b, strong { font-weight: bold; } /* * Addresses styling not present in Safari 5 and Chrome. */ dfn { font-style: italic; } /* * Addresses styling not present in IE 8/9. */ mark { background: #ff0; color: #000; } /* * Corrects font family set oddly in Safari 5 and Chrome. */ code, kbd, pre, samp { font-family: monospace, serif; font-size: 1em; } /* * Improves readability of pre-formatted text in all browsers. */ pre { white-space: pre; white-space: pre-wrap; word-wrap: break-word; } /* * Sets consistent quote types. */ q { quotes: "\201C" "\201D" "\2018" "\2019"; } /* * Addresses inconsistent and variable font size in all browsers. */ small { font-size: 80%; } /* * Prevents `sub` and `sup` affecting `line-height` in all browsers. */ sub, sup { font-size: 75%; line-height: 0; position: relative; vertical-align: baseline; } sup { top: -0.5em; } sub { bottom: -0.25em; } /* ========================================================================== Embedded content ========================================================================== */ /* * Removes border when inside `a` element in IE 8/9. */ img { border: 0; } /* * Corrects overflow displayed oddly in IE 9. */ svg:not(:root) { overflow: hidden; } /* ========================================================================== Figures ========================================================================== */ /* * Addresses margin not present in IE 8/9 and Safari 5. */ figure { margin: 0; } /* ========================================================================== Forms ========================================================================== */ /* * Define consistent border, margin, and padding. */ fieldset { border: 1px solid #c0c0c0; margin: 0 2px; padding: 0.35em 0.625em 0.75em; } /* * 1. Corrects color not being inherited in IE 8/9. * 2. Remove padding so people aren't caught out if they zero out fieldsets. */ legend { border: 0; /* 1 */ padding: 0; /* 2 */ } /* * 1. Corrects font family not being inherited in all browsers. * 2. Corrects font size not being inherited in all browsers. * 3. Addresses margins set differently in Firefox 4+, Safari 5, and Chrome */ button, input, select, textarea { font-family: inherit; /* 1 */ font-size: 100%; /* 2 */ margin: 0; /* 3 */ } /* * Addresses Firefox 4+ setting `line-height` on `input` using `!important` in * the UA stylesheet. */ button, input { line-height: normal; } /* * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio` * and `video` controls. * 2. Corrects inability to style clickable `input` types in iOS. * 3. Improves usability and consistency of cursor style between image-type * `input` and others. */ button, html input[type="button"], /* 1 */ input[type="reset"], input[type="submit"] { -webkit-appearance: button; /* 2 */ cursor: pointer; /* 3 */ } /* * Re-set default cursor for disabled elements. */ button[disabled], input[disabled] { cursor: default; } /* * 1. Addresses box sizing set to `content-box` in IE 8/9. * 2. Removes excess padding in IE 8/9. */ input[type="checkbox"], input[type="radio"] { box-sizing: border-box; /* 1 */ padding: 0; /* 2 */ } /* * 1. Addresses `appearance` set to `searchfield` in Safari 5 and Chrome. * 2. Addresses `box-sizing` set to `border-box` in Safari 5 and Chrome * (include `-moz` to future-proof). */ input[type="search"] { -webkit-appearance: textfield; /* 1 */ -moz-box-sizing: content-box; -webkit-box-sizing: content-box; /* 2 */ box-sizing: content-box; } /* * Removes inner padding and search cancel button in Safari 5 and Chrome * on OS X. */ input[type="search"]::-webkit-search-cancel-button, input[type="search"]::-webkit-search-decoration { -webkit-appearance: none; } /* * Removes inner padding and border in Firefox 4+. */ button::-moz-focus-inner, input::-moz-focus-inner { border: 0; padding: 0; } /* * 1. Removes default vertical scrollbar in IE 8/9. * 2. Improves readability and alignment in all browsers. */ textarea { overflow: auto; /* 1 */ vertical-align: top; /* 2 */ } /* ========================================================================== Tables ========================================================================== */ /* * Remove most spacing between table cells. */ table { border-collapse: collapse; border-spacing: 0; }immutable-tuple-0.4.10/docs/src/000077500000000000000000000000001342041553400164225ustar00rootroot00000000000000immutable-tuple-0.4.10/docs/src/tuple.html000066400000000000000000000345151342041553400204510ustar00rootroot00000000000000 tuple.js immutable-tuple-0.4.10/docs/src/universal-weak-map.html000066400000000000000000000137421342041553400230270ustar00rootroot00000000000000 universal-weak-map.js
  • universal-weak-map.js

  • A map data structure that holds object keys weakly, yet can also hold non-object keys, unlike the native WeakMap.

    export class UniversalWeakMap {
      constructor() {
  • Since a WeakMap cannot hold primitive values as keys, we need a backup Map instance to hold primitive keys. Both this._weakMap and this._strongMap are lazily initialized.

        this._weakMap = null;
        this._strongMap = null;
      }
  • Since get and set are the only methods used, that’s all I’ve implemented here.

      get(key) {
        const map = this._getMap(key, false);
        if (map) {
          return map.get(key);
        }
      }
    
      set(key, value) {
        this._getMap(key, true).set(key, value);
  • An actual Map or WeakMap would return this here, but returning the value is more convenient for the tuple implementation.

        return value;
      }
    
      _getMap(key, canCreate) {
        if (! canCreate) {
          return isObjRef(key) ? this._weakMap : this._strongMap;
        }
        if (isObjRef(key)) {
          return this._weakMap || (this._weakMap = new WeakMap);
        }
        return this._strongMap || (this._strongMap = new Map);
      }
    }
    
    function isObjRef(value) {
      switch (typeof value) {
      case "object":
        if (value === null) {
          return false;
        }
      case "function":
        return true;
      default:
        return false;
      }
    }
immutable-tuple-0.4.10/docs/src/util.html000066400000000000000000000161121342041553400202660ustar00rootroot00000000000000 util.js
  • util.js

  • Although Symbol is widely supported these days, we can safely fall back to using a non-enumerable string property without violating any assumptions elsewhere in the implementation.

    const useSymbol = typeof Symbol === "function";
  • Used to mark tuple.prototype so that all objects that inherit from any tuple.prototype object (there could be more than one) will test positive according to tuple.isTuple.

    export const brand = useSymbol
      ? Symbol.for("immutable-tuple")
      : "@@__IMMUTABLE_TUPLE__@@";
  • Used to save a reference to the globally shared UniversalWeakMap that stores all known tuple objects.

    export const globalKey = useSymbol
      ? Symbol.for("immutable-tuple-root")
      : "@@__IMMUTABLE_TUPLE_ROOT__@@";
  • The mustConvertThisToArray value is true when the corresponding Array method does not attempt to modify this, which means we can pass a tuple object as this without first converting it to an Array.

    export function forEachArrayMethod(fn) {
      function call(name, mustConvertThisToArray) {
        const desc = Object.getOwnPropertyDescriptor(Array.prototype, name);
        fn(name, desc, !! mustConvertThisToArray);
      }
    
      call("every");
      call("filter");
      call("find");
      call("findIndex");
      call("forEach");
      call("includes");
      call("indexOf");
      call("join");
      call("lastIndexOf");
      call("map");
      call("reduce");
      call("reduceRight");
      call("slice");
      call("some");
      call("toLocaleString");
      call("toString");
  • The reverse and sort methods are usually destructive, but for tuple objects they return a new tuple object that has been appropriately reversed/sorted.

      call("reverse", true);
      call("sort", true);
  • Make [...someTuple] work.

      call(useSymbol && Symbol.iterator || "@@iterator");
    }
immutable-tuple-0.4.10/package-lock.json000066400000000000000000000673211342041553400201300ustar00rootroot00000000000000{ "name": "immutable-tuple", "version": "0.4.10", "lockfileVersion": 1, "requires": true, "dependencies": { "acorn": { "version": "5.7.3", "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", "dev": true }, "acorn-jsx": { "version": "3.0.1", "resolved": "http://registry.npmjs.org/acorn-jsx/-/acorn-jsx-3.0.1.tgz", "integrity": "sha1-r9+UiPsezvyDSPb7IvRk4ypYs2s=", "dev": true, "requires": { "acorn": "^3.0.4" }, "dependencies": { "acorn": { "version": "3.3.0", "resolved": "http://registry.npmjs.org/acorn/-/acorn-3.3.0.tgz", "integrity": "sha1-ReN/s56No/JbruP/U2niu18iAXo=", "dev": true } } }, "acorn5-object-spread": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/acorn5-object-spread/-/acorn5-object-spread-4.0.0.tgz", "integrity": "sha1-1XWAge7ZcSGrC+R+Mcqu8qo5lpc=", "dev": true, "requires": { "acorn": "^5.1.2" } }, "ansi-styles": { "version": "3.2.1", "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", "dev": true, "requires": { "color-convert": "^1.9.0" } }, "arr-diff": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-2.0.0.tgz", "integrity": "sha1-jzuCf5Vai9ZpaX5KQlasPOrjVs8=", "dev": true, "requires": { "arr-flatten": "^1.0.1" } }, "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", "dev": true }, "array-unique": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.2.1.tgz", "integrity": "sha1-odl8yvy8JiXMcPrc6zalDFiwGlM=", "dev": true }, "balanced-match": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", "dev": true }, "brace-expansion": { "version": "1.1.11", "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { "balanced-match": "^1.0.0", "concat-map": "0.0.1" } }, "braces": { "version": "1.8.5", "resolved": "https://registry.npmjs.org/braces/-/braces-1.8.5.tgz", "integrity": "sha1-uneWLhLf+WnWt2cR6RS3N4V79qc=", "dev": true, "requires": { "expand-range": "^1.8.1", "preserve": "^0.2.0", "repeat-element": "^1.1.2" } }, "browser-stdout": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==", "dev": true }, "buble": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/buble/-/buble-0.18.0.tgz", "integrity": "sha512-U3NJxUiSz0H1EB54PEHAuBTxdXgQH4DaQkvkINFXf9kEKCDWSn67EgQfFKbkTzsok4xRrIPsoxWDl2czCHR65g==", "dev": true, "requires": { "acorn": "^5.1.2", "acorn-jsx": "^3.0.1", "acorn5-object-spread": "^4.0.0", "chalk": "^2.1.0", "magic-string": "^0.22.4", "minimist": "^1.2.0", "os-homedir": "^1.0.1", "vlq": "^0.2.2" }, "dependencies": { "minimist": { "version": "1.2.0", "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz", "integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=", "dev": true } } }, "chalk": { "version": "2.4.1", "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.1.tgz", "integrity": "sha512-ObN6h1v2fTJSmUXoS3nMQ92LbDK9be4TV+6G+omQlGJFdcUX5heKi1LZ1YnRMIgwTLEj3E24bT6tYni50rlCfQ==", "dev": true, "requires": { "ansi-styles": "^3.2.1", "escape-string-regexp": "^1.0.5", "supports-color": "^5.3.0" } }, "color-convert": { "version": "1.9.3", "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", "dev": true, "requires": { "color-name": "1.1.3" } }, "color-name": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", "dev": true }, "commander": { "version": "2.19.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.19.0.tgz", "integrity": "sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg==", "dev": true }, "concat-map": { "version": "0.0.1", "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", "dev": true }, "debug": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", "dev": true, "requires": { "ms": "2.0.0" } }, "diff": { "version": "3.5.0", "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", "dev": true }, "docco": { "version": "0.8.0", "resolved": "https://registry.npmjs.org/docco/-/docco-0.8.0.tgz", "integrity": "sha512-QcWBDnnGaT+rgC0wqynznXv0/4hd6nAFdWNs2fN4FvkH2yAnCYVeRU7GIZXNCeUQ955Lufq+TmZcSXiBa1cGQQ==", "dev": true, "requires": { "commander": ">= 0.5.2", "fs-extra": ">= 0.6.0", "highlight.js": ">= 8.0.x", "marked": ">= 0.2.7", "underscore": ">= 1.0.0" } }, "escape-string-regexp": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", "dev": true }, "estree-walker": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/estree-walker/-/estree-walker-0.5.2.tgz", "integrity": "sha512-XpCnW/AE10ws/kDAs37cngSkvgIR8aN3G0MS85m7dUpuK2EREo9VJ00uvw6Dg/hXEpfsE1I1TvJOJr+Z+TL+ig==", "dev": true }, "expand-brackets": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-0.1.5.tgz", "integrity": "sha1-3wcoTjQqgHzXM6xa9yQR5YHRF3s=", "dev": true, "requires": { "is-posix-bracket": "^0.1.0" } }, "expand-range": { "version": "1.8.2", "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz", "integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=", "dev": true, "requires": { "fill-range": "^2.1.0" } }, "extglob": { "version": "0.3.2", "resolved": "https://registry.npmjs.org/extglob/-/extglob-0.3.2.tgz", "integrity": "sha1-Lhj/PS9JqydlzskCPwEdqo2DSaE=", "dev": true, "requires": { "is-extglob": "^1.0.0" } }, "filename-regex": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/filename-regex/-/filename-regex-2.0.1.tgz", "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", "dev": true }, "fill-range": { "version": "2.2.4", "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-2.2.4.tgz", "integrity": "sha512-cnrcCbj01+j2gTG921VZPnHbjmdAf8oQV/iGeV2kZxGSyfYjjTyY79ErsK1WJWMpw6DaApEX72binqJE+/d+5Q==", "dev": true, "requires": { "is-number": "^2.1.0", "isobject": "^2.0.0", "randomatic": "^3.0.0", "repeat-element": "^1.1.2", "repeat-string": "^1.5.2" } }, "for-in": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", "dev": true }, "for-own": { "version": "0.1.5", "resolved": "https://registry.npmjs.org/for-own/-/for-own-0.1.5.tgz", "integrity": "sha1-UmXGgaTylNq78XyVCbZ2OqhFEM4=", "dev": true, "requires": { "for-in": "^1.0.1" } }, "fs-extra": { "version": "7.0.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.0.tgz", "integrity": "sha512-EglNDLRpmaTWiD/qraZn6HREAEAHJcJOmxNEYwq6xeMKnVMAy3GUcFB+wXt2C6k4CNvB/mP1y/U3dzvKKj5OtQ==", "dev": true, "requires": { "graceful-fs": "^4.1.2", "jsonfile": "^4.0.0", "universalify": "^0.1.0" } }, "fs.realpath": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", "dev": true }, "glob": { "version": "7.1.2", "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", "dev": true, "requires": { "fs.realpath": "^1.0.0", "inflight": "^1.0.4", "inherits": "2", "minimatch": "^3.0.4", "once": "^1.3.0", "path-is-absolute": "^1.0.0" } }, "glob-base": { "version": "0.3.0", "resolved": "https://registry.npmjs.org/glob-base/-/glob-base-0.3.0.tgz", "integrity": "sha1-27Fk9iIbHAscz4Kuoyi0l98Oo8Q=", "dev": true, "requires": { "glob-parent": "^2.0.0", "is-glob": "^2.0.0" } }, "glob-parent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-2.0.0.tgz", "integrity": "sha1-gTg9ctsFT8zPUzbaqQLxgvbtuyg=", "dev": true, "requires": { "is-glob": "^2.0.0" } }, "graceful-fs": { "version": "4.1.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", "dev": true }, "growl": { "version": "1.10.5", "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz", "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", "dev": true }, "has-flag": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", "dev": true }, "he": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/he/-/he-1.1.1.tgz", "integrity": "sha1-k0EP0hsAlzUVH4howvJx80J+I/0=", "dev": true }, "highlight.js": { "version": "9.13.1", "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-9.13.1.tgz", "integrity": "sha512-Sc28JNQNDzaH6PORtRLMvif9RSn1mYuOoX3omVjnb0+HbpPygU2ALBI0R/wsiqCb4/fcp07Gdo8g+fhtFrQl6A==", "dev": true }, "inflight": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", "dev": true, "requires": { "once": "^1.3.0", "wrappy": "1" } }, "inherits": { "version": "2.0.3", "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", "dev": true }, "is-buffer": { "version": "1.1.6", "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", "dev": true }, "is-dotfile": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/is-dotfile/-/is-dotfile-1.0.3.tgz", "integrity": "sha1-pqLzL/0t+wT1yiXs0Pa4PPeYoeE=", "dev": true }, "is-equal-shallow": { "version": "0.1.3", "resolved": "https://registry.npmjs.org/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz", "integrity": "sha1-IjgJj8Ih3gvPpdnqxMRdY4qhxTQ=", "dev": true, "requires": { "is-primitive": "^2.0.0" } }, "is-extendable": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", "dev": true }, "is-extglob": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-1.0.0.tgz", "integrity": "sha1-rEaBd8SUNAWgkvyPKXYMb/xiBsA=", "dev": true }, "is-glob": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-2.0.1.tgz", "integrity": "sha1-0Jb5JqPe1WAPP9/ZEZjLCIjC2GM=", "dev": true, "requires": { "is-extglob": "^1.0.0" } }, "is-number": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-2.1.0.tgz", "integrity": "sha1-Afy7s5NGOlSPL0ZszhbezknbkI8=", "dev": true, "requires": { "kind-of": "^3.0.2" } }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", "integrity": "sha1-MzTceXdDaOkvAW5vvAqI9c1ua8Q=", "dev": true }, "is-primitive": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/is-primitive/-/is-primitive-2.0.0.tgz", "integrity": "sha1-IHurkWOEmcB7Kt8kCkGochADRXU=", "dev": true }, "isarray": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", "dev": true }, "isobject": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", "dev": true, "requires": { "isarray": "1.0.0" } }, "jsonfile": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", "dev": true, "requires": { "graceful-fs": "^4.1.6" } }, "kind-of": { "version": "3.2.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", "dev": true, "requires": { "is-buffer": "^1.1.5" } }, "magic-string": { "version": "0.22.5", "resolved": "http://registry.npmjs.org/magic-string/-/magic-string-0.22.5.tgz", "integrity": "sha512-oreip9rJZkzvA8Qzk9HFs8fZGF/u7H/gtrE8EN6RjKJ9kh2HlC+yQ2QezifqTZfGyiuAV0dRv5a+y/8gBb1m9w==", "dev": true, "requires": { "vlq": "^0.2.2" } }, "marked": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/marked/-/marked-0.5.1.tgz", "integrity": "sha512-iUkBZegCZou4AdwbKTwSW/lNDcz5OuRSl3qdcl31Ia0B2QPG0Jn+tKblh/9/eP9/6+4h27vpoh8wel/vQOV0vw==", "dev": true }, "math-random": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/math-random/-/math-random-1.0.1.tgz", "integrity": "sha1-izqsWIuKZuSXXjzepn97sylgH6w=", "dev": true }, "micromatch": { "version": "2.3.11", "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-2.3.11.tgz", "integrity": "sha1-hmd8l9FyCzY0MdBNDRUpO9OMFWU=", "dev": true, "requires": { "arr-diff": "^2.0.0", "array-unique": "^0.2.1", "braces": "^1.8.2", "expand-brackets": "^0.1.4", "extglob": "^0.3.1", "filename-regex": "^2.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.1", "kind-of": "^3.0.2", "normalize-path": "^2.0.1", "object.omit": "^2.0.0", "parse-glob": "^3.0.4", "regex-cache": "^0.4.2" } }, "minimatch": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { "brace-expansion": "^1.1.7" } }, "minimist": { "version": "0.0.8", "resolved": "http://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", "dev": true }, "minipass": { "version": "2.3.5", "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.3.5.tgz", "integrity": "sha512-Gi1W4k059gyRbyVUZQ4mEqLm0YIUiGYfvxhF6SIlk3ui1WVxMTGfGdQ2SInh3PDrRTVvPKgULkpJtT4RH10+VA==", "dev": true, "requires": { "safe-buffer": "^5.1.2", "yallist": "^3.0.0" } }, "minizlib": { "version": "1.1.1", "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz", "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==", "dev": true, "requires": { "minipass": "^2.2.1" } }, "mkdirp": { "version": "0.5.1", "resolved": "http://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", "dev": true, "requires": { "minimist": "0.0.8" } }, "mocha": { "version": "5.2.0", "resolved": "https://registry.npmjs.org/mocha/-/mocha-5.2.0.tgz", "integrity": "sha512-2IUgKDhc3J7Uug+FxMXuqIyYzH7gJjXECKe/w43IGgQHTSj3InJi+yAA7T24L9bQMRKiUEHxEX37G5JpVUGLcQ==", "dev": true, "requires": { "browser-stdout": "1.3.1", "commander": "2.15.1", "debug": "3.1.0", "diff": "3.5.0", "escape-string-regexp": "1.0.5", "glob": "7.1.2", "growl": "1.10.5", "he": "1.1.1", "minimatch": "3.0.4", "mkdirp": "0.5.1", "supports-color": "5.4.0" }, "dependencies": { "commander": { "version": "2.15.1", "resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz", "integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==", "dev": true } } }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true }, "normalize-path": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", "dev": true, "requires": { "remove-trailing-separator": "^1.0.1" } }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", "integrity": "sha1-Gpx0SCnznbuFjHbKNXmuKlTr0fo=", "dev": true, "requires": { "for-own": "^0.1.4", "is-extendable": "^0.1.1" } }, "once": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "dev": true, "requires": { "wrappy": "1" } }, "os-homedir": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", "dev": true }, "parse-glob": { "version": "3.0.4", "resolved": "https://registry.npmjs.org/parse-glob/-/parse-glob-3.0.4.tgz", "integrity": "sha1-ssN2z7EfNVE7rdFz7wu246OIORw=", "dev": true, "requires": { "glob-base": "^0.3.0", "is-dotfile": "^1.0.0", "is-extglob": "^1.0.0", "is-glob": "^2.0.0" } }, "path-is-absolute": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, "preserve": { "version": "0.2.0", "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", "integrity": "sha1-gV7R9uvGWSb4ZbMQwHE7yzMVzks=", "dev": true }, "randomatic": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-3.1.1.tgz", "integrity": "sha512-TuDE5KxZ0J461RVjrJZCJc+J+zCkTb1MbH9AQUq68sMhOMcy9jLcb3BrZKgp9q9Ncltdg4QVqWrH02W2EFFVYw==", "dev": true, "requires": { "is-number": "^4.0.0", "kind-of": "^6.0.0", "math-random": "^1.0.1" }, "dependencies": { "is-number": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/is-number/-/is-number-4.0.0.tgz", "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==", "dev": true }, "kind-of": { "version": "6.0.2", "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", "dev": true } } }, "regex-cache": { "version": "0.4.4", "resolved": "https://registry.npmjs.org/regex-cache/-/regex-cache-0.4.4.tgz", "integrity": "sha512-nVIZwtCjkC9YgvWkpM55B5rBhBYRZhAaJbgcFYXXsHnbZ9UZI9nnVWYZpBlCqv9ho2eZryPnWrZGsOdPwVWXWQ==", "dev": true, "requires": { "is-equal-shallow": "^0.1.3" } }, "reify": { "version": "0.13.7", "resolved": "https://registry.npmjs.org/reify/-/reify-0.13.7.tgz", "integrity": "sha512-jA6C/TdOf0g1A9WlQL7enh8yfGXgCmU3qbOpgc98vzRNEgu4TrAnSGec+uLxHdci96lftdBow3q0X3pbXnzmGQ==", "dev": true, "requires": { "acorn": "^5.2.1", "minizlib": "^1.0.4", "semver": "^5.4.1" } }, "remove-trailing-separator": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", "dev": true }, "repeat-element": { "version": "1.1.3", "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", "dev": true }, "repeat-string": { "version": "1.6.1", "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", "dev": true }, "rollup": { "version": "0.55.5", "resolved": "http://registry.npmjs.org/rollup/-/rollup-0.55.5.tgz", "integrity": "sha512-2hke9NOy332kxvnmMQOgl7DHm94zihNyYJNd8ZLWo4U0EjFvjUkeWa0+ge+70bTg+mY0xJ7NUsf5kIhDtrGrtA==", "dev": true }, "rollup-plugin-buble": { "version": "0.18.0", "resolved": "https://registry.npmjs.org/rollup-plugin-buble/-/rollup-plugin-buble-0.18.0.tgz", "integrity": "sha512-rd3JG2MxvQXfg5coCw0IyZV8QrsceVI4zfJgGVgkUnntwp+gnjv7TsKWGKGoLNMGAMRKQlhcsSyvUuvOL+vNHw==", "dev": true, "requires": { "buble": "^0.18.0", "rollup-pluginutils": "^2.0.1" } }, "rollup-plugin-uglify": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/rollup-plugin-uglify/-/rollup-plugin-uglify-3.0.0.tgz", "integrity": "sha512-dehLu9eRRoV4l09aC+ySntRw1OAfoyKdbk8Nelblj03tHoynkSybqyEpgavemi1LBOH6S1vzI58/mpxkZIe1iQ==", "dev": true, "requires": { "uglify-es": "^3.3.7" } }, "rollup-pluginutils": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/rollup-pluginutils/-/rollup-pluginutils-2.3.3.tgz", "integrity": "sha512-2XZwja7b6P5q4RZ5FhyX1+f46xi1Z3qBKigLRZ6VTZjwbN0K1IFGMlwm06Uu0Emcre2Z63l77nq/pzn+KxIEoA==", "dev": true, "requires": { "estree-walker": "^0.5.2", "micromatch": "^2.3.11" } }, "safe-buffer": { "version": "5.1.2", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", "dev": true }, "semver": { "version": "5.6.0", "resolved": "https://registry.npmjs.org/semver/-/semver-5.6.0.tgz", "integrity": "sha512-RS9R6R35NYgQn++fkDWaOmqGoj4Ek9gGs+DPxNUZKuwE183xjJroKvyo1IzVFeXvUrvmALy6FWD5xrdJT25gMg==", "dev": true }, "source-map": { "version": "0.6.1", "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, "supports-color": { "version": "5.4.0", "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.4.0.tgz", "integrity": "sha512-zjaXglF5nnWpsq470jSv6P9DwPvgLkuapYmfDm3JWOm0vkNTVF2tI4UrN2r6jH1qM/uc/WtxYY1hYoA2dOKj5w==", "dev": true, "requires": { "has-flag": "^3.0.0" } }, "uglify-es": { "version": "3.3.9", "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", "dev": true, "requires": { "commander": "~2.13.0", "source-map": "~0.6.1" }, "dependencies": { "commander": { "version": "2.13.0", "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", "dev": true } } }, "underscore": { "version": "1.9.1", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.9.1.tgz", "integrity": "sha512-5/4etnCkd9c8gwgowi5/om/mYO5ajCaOgdzj/oW+0eQV9WxKBDZw5+ycmKmeaTXjInS/W0BzpGLo2xR2aBwZdg==", "dev": true }, "universalify": { "version": "0.1.2", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", "dev": true }, "vlq": { "version": "0.2.3", "resolved": "https://registry.npmjs.org/vlq/-/vlq-0.2.3.tgz", "integrity": "sha512-DRibZL6DsNhIgYQ+wNdWDL2SL3bKPlVrRiBqV5yuMm++op8W4kGFtaQfCs4KEJn0wBZcHVHJ3eoywX8983k1ow==", "dev": true }, "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", "dev": true }, "yallist": { "version": "3.0.2", "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.0.2.tgz", "integrity": "sha1-hFK0u36Dx8GI2AQcGoN8dz1ti7k=", "dev": true } } } immutable-tuple-0.4.10/package.json000066400000000000000000000024151342041553400171730ustar00rootroot00000000000000{ "name": "immutable-tuple", "version": "0.4.10", "description": "Immutable finite list objects with constant-time equality testing (===) and no memory leaks", "license": "MIT", "author": { "name": "Ben Newman", "email": "ben@benjamn.com", "url": "https://github.com/benjamn" }, "repository": { "type": "git", "url": "git+https://github.com/benjamn/immutable-tuple.git" }, "homepage": "https://github.com/benjamn/immutable-tuple#readme", "bugs": { "url": "https://github.com/benjamn/immutable-tuple/issues" }, "main": "dist/tuple.js", "module": "dist/tuple.mjs", "scripts": { "test": "mocha --require reify --full-trace --reporter spec test/tests.js", "docs": "docco src/*.js", "prepublish": "./scripts/build.sh" }, "keywords": [ "immutable", "tuple", "sequence", "persistent", "data", "data structure", "functional", "intern", "interned", "internalized", "memoization", "equality", "deep equality", "weakmap" ], "devDependencies": { "docco": "^0.8.0", "mocha": "^5.0.0", "reify": "^0.13.7", "rollup": "^0.55.1", "rollup-plugin-buble": "^0.18.0", "rollup-plugin-uglify": "^3.0.0" }, "reify": { "cache-directory": "test/.cache" } } immutable-tuple-0.4.10/scripts/000077500000000000000000000000001342041553400163725ustar00rootroot00000000000000immutable-tuple-0.4.10/scripts/build.sh000077500000000000000000000002051342041553400200250ustar00rootroot00000000000000#!/usr/bin/env bash cd $(dirname $0) rollup -c ./rollup/config.js rollup -c ./rollup/config-min.js rollup -c ./rollup/config-es.js immutable-tuple-0.4.10/scripts/rollup/000077500000000000000000000000001342041553400177075ustar00rootroot00000000000000immutable-tuple-0.4.10/scripts/rollup/config-es.js000066400000000000000000000005621342041553400221220ustar00rootroot00000000000000import path from "path"; import buble from "rollup-plugin-buble"; const SRC_DIR = path.resolve("../src"); const DIST_DIR = path.resolve(SRC_DIR, "../dist"); export default { sourcemap: false, input: path.join(SRC_DIR, "tuple.js"), output: { exports: "named", file: path.join(DIST_DIR, "tuple.mjs"), format: "es" }, plugins: [ buble(), ] }; immutable-tuple-0.4.10/scripts/rollup/config-min.js000066400000000000000000000010131342041553400222660ustar00rootroot00000000000000import path from "path"; import buble from "rollup-plugin-buble"; import uglify from "rollup-plugin-uglify"; const SRC_DIR = path.resolve("../src"); const DIST_DIR = path.resolve(SRC_DIR, "../dist"); export default { sourcemap: false, input: path.join(SRC_DIR, "tuple.js"), output: { exports: "named", file: path.join(DIST_DIR, "tuple.min.js"), format: "cjs" }, plugins: [ buble(), uglify({ mangle: { toplevel: true, reserved: ["Tuple", "tuple"] } }), ] }; immutable-tuple-0.4.10/scripts/rollup/config.js000066400000000000000000000005621342041553400215150ustar00rootroot00000000000000import path from "path"; import buble from "rollup-plugin-buble"; const SRC_DIR = path.resolve("../src"); const DIST_DIR = path.resolve(SRC_DIR, "../dist"); export default { sourcemap: false, input: path.join(SRC_DIR, "tuple.js"), output: { exports: "named", file: path.join(DIST_DIR, "tuple.js"), format: "cjs" }, plugins: [ buble(), ] }; immutable-tuple-0.4.10/src/000077500000000000000000000000001342041553400154725ustar00rootroot00000000000000immutable-tuple-0.4.10/src/lookup.js000066400000000000000000000030451342041553400173430ustar00rootroot00000000000000// See [`universal-weak-map.js`](universal-weak-map.html). import { UniversalWeakMap } from "./universal-weak-map.js"; // See [`util.js`](util.html). import { globalKey, def } from "./util.js"; // If this package is installed multiple times, there could be mutiple // implementations of the `tuple` function with distinct `tuple.prototype` // objects, but the shared pool of `tuple` objects must be the same across // all implementations. While it would be ideal to use the `global` // object, there's no reliable way to get the global object across all JS // environments without using the `Function` constructor, so instead we // use the global `Array` constructor as a shared namespace. const root = Array[globalKey] || def(Array, globalKey, new UniversalWeakMap, false); export function lookup() { return lookupArray(arguments); } export function lookupArray(array) { let node = root; // Because we are building a tree of *weak* maps, the tree will not // prevent objects in tuples from being garbage collected, since the // tree itself will be pruned over time when the corresponding `tuple` // objects become unreachable. In addition to internalization, this // property is a key advantage of the `immutable-tuple` package. const len = array.length; for (let i = 0; i < len; ++i) { const item = array[i]; node = node.get(item) || node.set(item, new UniversalWeakMap); } // Return node.data rather than node itself to prevent tampering with // the UniversalWeakMap tree. return node.data || (node.data = Object.create(null)); } immutable-tuple-0.4.10/src/tuple.js000066400000000000000000000056161342041553400171710ustar00rootroot00000000000000// See [`lookup.js`](lookup.html). import { lookup, lookupArray } from "./lookup.js"; // See [`util.js`](util.html). import { brand, def, freeze, forEachArrayMethod, } from "./util.js"; // When called with any number of arguments, this function returns an // object that inherits from `tuple.prototype` and is guaranteed to be // `===` any other `tuple` object that has exactly the same items. In // computer science jargon, `tuple` instances are "internalized" or just // "interned," which allows for constant-time equality checking, and makes // it possible for tuple objects to be used as `Map` or `WeakMap` keys, or // stored in a `Set`. export default function tuple() { const node = lookup.apply(null, arguments); if (node.tuple) { return node.tuple; } const t = Object.create(tuple.prototype); // Define immutable items with numeric indexes, and permanently fix the // `.length` property. const argc = arguments.length; for (let i = 0; i < argc; ++i) { t[i] = arguments[i]; } def(t, "length", argc, false); // Remember this new `tuple` object so that we can return the same object // earlier next time. return freeze(node.tuple = t); } // Named imports work as well as `default` imports. export { tuple, lookup, lookupArray }; // Since the `immutable-tuple` package could be installed multiple times // in an application, there is no guarantee that the `tuple` constructor // or `tuple.prototype` will be unique, so `value instanceof tuple` is // unreliable. Instead, to test if a value is a tuple, you should use // `tuple.isTuple(value)`. def(tuple.prototype, brand, true, false); function isTuple(that) { return !! (that && that[brand] === true); } tuple.isTuple = isTuple; function toArray(tuple) { const array = []; let i = tuple.length; while (i--) array[i] = tuple[i]; return array; } // Copy all generic non-destructive Array methods to `tuple.prototype`. // This works because (for example) `Array.prototype.slice` can be invoked // against any `Array`-like object. forEachArrayMethod((name, desc, mustConvertThisToArray) => { const method = desc && desc.value; if (typeof method === "function") { desc.value = function (...args) { const result = method.apply( mustConvertThisToArray ? toArray(this) : this, args ); // Of course, `tuple.prototype.slice` should return a `tuple` object, // not a new `Array`. return Array.isArray(result) ? tuple(...result) : result; }; Object.defineProperty(tuple.prototype, name, desc); } }); // Like `Array.prototype.concat`, except for the extra effort required to // convert any tuple arguments to arrays, so that // ``` // tuple(1).concat(tuple(2), 3) === tuple(1, 2, 3) // ``` const { concat } = Array.prototype; tuple.prototype.concat = function (...args) { return tuple(...concat.apply(toArray(this), args.map( item => isTuple(item) ? toArray(item) : item ))); }; immutable-tuple-0.4.10/src/universal-weak-map.js000066400000000000000000000022731342041553400215440ustar00rootroot00000000000000import { isObjRef } from "./util.js"; // A map data structure that holds object keys weakly, yet can also hold // non-object keys, unlike the native `WeakMap`. export class UniversalWeakMap { constructor() { // Since a `WeakMap` cannot hold primitive values as keys, we need a // backup `Map` instance to hold primitive keys. Both `this._weakMap` // and `this._strongMap` are lazily initialized. this._weakMap = null; this._strongMap = null; this.data = null; } // Since `get` and `set` are the only methods used, that's all I've // implemented here. get(key) { const map = this._getMap(key, false); if (map) { return map.get(key); } } set(key, value) { this._getMap(key, true).set(key, value); // An actual `Map` or `WeakMap` would return `this` here, but // returning the `value` is more convenient for the `tuple` // implementation. return value; } _getMap(key, canCreate) { if (! canCreate) { return isObjRef(key) ? this._weakMap : this._strongMap; } if (isObjRef(key)) { return this._weakMap || (this._weakMap = new WeakMap); } return this._strongMap || (this._strongMap = new Map); } } immutable-tuple-0.4.10/src/util.js000066400000000000000000000045231342041553400170110ustar00rootroot00000000000000// Although `Symbol` is widely supported these days, we can safely fall // back to using a non-enumerable string property without violating any // assumptions elsewhere in the implementation. const useSymbol = typeof Symbol === "function" && typeof Symbol.for === "function"; // Used to mark `tuple.prototype` so that all objects that inherit from // any `tuple.prototype` object (there could be more than one) will test // positive according to `tuple.isTuple`. export const brand = useSymbol ? Symbol.for("immutable-tuple") : "@@__IMMUTABLE_TUPLE__@@"; // Used to save a reference to the globally shared `UniversalWeakMap` that // stores all known `tuple` objects. export const globalKey = useSymbol ? Symbol.for("immutable-tuple-root") : "@@__IMMUTABLE_TUPLE_ROOT__@@"; // Convenient helper for defining hidden immutable properties. export function def(obj, name, value, enumerable) { Object.defineProperty(obj, name, { value: value, enumerable: !! enumerable, writable: false, configurable: false }); return value; } export const freeze = Object.freeze || function (obj) { return obj; }; export function isObjRef(value) { switch (typeof value) { case "object": if (value === null) { return false; } case "function": return true; default: return false; } } // The `mustConvertThisToArray` value is true when the corresponding // `Array` method does not attempt to modify `this`, which means we can // pass a `tuple` object as `this` without first converting it to an // `Array`. export function forEachArrayMethod(fn) { function call(name, mustConvertThisToArray) { const desc = Object.getOwnPropertyDescriptor(Array.prototype, name); fn(name, desc, !! mustConvertThisToArray); } call("every"); call("filter"); call("find"); call("findIndex"); call("forEach"); call("includes"); call("indexOf"); call("join"); call("lastIndexOf"); call("map"); call("reduce"); call("reduceRight"); call("slice"); call("some"); call("toLocaleString"); call("toString"); // The `reverse` and `sort` methods are usually destructive, but for // `tuple` objects they return a new `tuple` object that has been // appropriately reversed/sorted. call("reverse", true); call("sort", true); // Make `[...someTuple]` work. call(useSymbol && Symbol.iterator || "@@iterator"); } immutable-tuple-0.4.10/test/000077500000000000000000000000001342041553400156625ustar00rootroot00000000000000immutable-tuple-0.4.10/test/modern.js000066400000000000000000000010521342041553400175020ustar00rootroot00000000000000import assert from "assert"; import tuple from "../dist/tuple.js"; it("includes", function () { const t = tuple(1, "asdf", true); assert.strictEqual(t.includes("asdf"), true); assert.strictEqual(t.includes(false), false); }); it("Symbol.iterator", function () { assert.deepEqual( [2, 4, 6, 8], [...tuple(1, 2, 3, 4, 5, 6, 7, 8, 9).filter(x => x % 2 === 0)] ); const [a, b, c, ...rest] = tuple(1, 2, 3, 4, 5); assert.strictEqual(a, 1); assert.strictEqual(b, 2); assert.strictEqual(c, 3); assert.deepEqual(rest, [4, 5]); }); immutable-tuple-0.4.10/test/tests.js000066400000000000000000000132131342041553400173620ustar00rootroot00000000000000"use strict"; import assert from "assert"; import tuple from "../dist/tuple.js"; import esTuple from "../dist/tuple.mjs"; describe("tuple basics", function () { it("should be defined and importable", function () { assert.strictEqual(typeof tuple, "function"); }); it("should support === deep equality", function () { assert.strictEqual(tuple(1,2,3), tuple(1,2,3)); }); it("should support tuple.isTuple", function () { assert.strictEqual(tuple.isTuple(tuple()), true); assert.strictEqual(tuple.isTuple(tuple.prototype), true); assert.strictEqual(tuple.isTuple(tuple("asdf", {})), true); assert.strictEqual(tuple.isTuple(null), false); }); it("should tolerate multiple package copies", function () { assert.notStrictEqual(tuple, esTuple); assert.notStrictEqual(tuple.prototype, esTuple.prototype); assert.strictEqual(tuple.isTuple(esTuple(1,2,3)), true); assert.strictEqual(esTuple.isTuple(tuple(1,2,3)), true); assert.strictEqual( tuple("I","am","tuple"), esTuple("tuple","am","I").reverse() ); }); it("should be usable as Map keys", function () { const map = new Map; assert.strictEqual(map.has(tuple(1, tuple(2, "buckle"), true)), false); map.set(tuple(1, tuple(2, "buckle"), true), "oh my"); assert.strictEqual(map.has(tuple(1, tuple(2, "buckle"), true)), true); assert.strictEqual(map.get(tuple(1, tuple(2, "buckle"), true)), "oh my"); map.forEach(function (value, key) { assert.strictEqual(key, tuple(1, tuple(2, "buckle"), true)); assert.strictEqual(value, "oh my"); }); map.delete(tuple(1, tuple(2, "buckle"), true)); map.forEach(function () { throw new Error("unreached"); }); }); it("should be storable in a Set", function () { const set = new Set([ tuple(1, 2, tuple(3, 4), 5), tuple(1, 2, tuple(3, 4), 5), ]); assert.strictEqual(set.size, 1); }); }); describe("Array methods", function () { it("concat", function () { assert.strictEqual( tuple(1,2,3).concat(4, tuple(5,6), 7), tuple(1,2,3,4,5,6,7) ); }); it("slice", function () { assert.strictEqual( tuple(1,2,3,4,5).slice(2, 4), tuple(3,4) ); assert.strictEqual( tuple(1,2,3,4,5).slice(-3), tuple(3,4,5) ); }); it("indexOf and lastIndexOf", function () { const t = tuple(1, 1, 2, 3, 5, 8, 13); assert.strictEqual(t.indexOf(1), 0) assert.strictEqual(t.lastIndexOf(1), 1) assert.strictEqual(t.indexOf(4), -1) assert.strictEqual(t.lastIndexOf(7), -1) }); it("forEach", function () { const t = tuple("a", "b", "c", "d"); const output = {}; t.forEach(function (item, i, obj) { output[item] = i; assert.strictEqual(obj, t); }); assert.deepEqual(output, { a: 0, b: 1, c: 2, d: 3 }); }); it("filter", function () { assert.strictEqual( tuple(1,2,3,4,5,6,7,8,9).filter(x => x % 2), tuple(1,3,5,7,9) ); }); it("map", function () { assert.strictEqual( tuple(1,2,3,4).map(x => x + 1), tuple(2,3,4,5) ); }); it("every", function () { assert.strictEqual(tuple(2,4,6,8).every(x => x % 2 === 0), true); assert.strictEqual(tuple(2,4,6,7).every(x => x % 2 === 0), false); }); it("some", function () { assert.strictEqual(tuple(1,2,3,4).some(x => x === 3), true); assert.strictEqual(tuple(1,2,3,4).some(x => x > 5), false); }); it("reduce", function () { assert.strictEqual( tuple(1,2,3,4,5).reduce((x, sum) => x + sum, 0), 15 ); }); it("reduceRight", function () { assert.strictEqual( [tuple(0, 1), tuple(2, 3), tuple(4, 5)].reduceRight( (previous, current) => previous.concat(current)), tuple(4, 5, 2, 3, 0, 1) ); }); it("toString", function () { assert.strictEqual( String(tuple(1,2,3)), [1,2,3].toString() ); }); it("join", function () { assert.strictEqual(tuple(1,2,3).join("|"), "1|2|3"); }); it("reverse", function () { assert.strictEqual( tuple(1,2,3).reverse(), tuple(3,2,1) ); }); it("sort", function () { assert.strictEqual( tuple(4,2,7,6,9,3,1,0,3,2,7).sort(), tuple(0,1,2,2,3,3,4,6,7,7,9) ); }); it("find", function () { assert.deepEqual( tuple({ foo: 1 }, { bar: 2 }, { baz: 3 }, { qux: 4 }).find(obj => { return Object.keys(obj).some(key => { return key.length === obj[key]; }); }), { baz: 3 } ); }); it("findIndex", function () { assert.deepEqual( tuple({ foo: 1 }, { bar: 2 }, { baz: 3 }, { qux: 4 }).findIndex(obj => { return Object.keys(obj).some(key => { return key.length === obj[key]; }); }), 2 ); }); if (parseInt(process.versions.node, 10) >= 6) { require("./modern.js"); } }); describe("performance", function () { this.timeout(10000); const tupleCount = 100000; const elemCount = 10; it("can handle a lot of strings", function () { for (var i = 0; i < tupleCount; ++i) { const elems = []; for (var j = 0; j < elemCount; ++j) { elems.push(Math.random().toString(36).slice(2)); } assert.deepEqual(tuple.apply(null, elems), elems); } }); it("can handle a lot of objects", function () { for (var i = 0; i < tupleCount; ++i) { const elems = []; for (var j = 0; j < elemCount; ++j) { elems.push({}); } tuple.apply(null, elems).forEach(function (elem, i) { assert.strictEqual(elem, elems[i]); }); } }); });
  • tuple.js

  • import { UniversalWeakMap } from "./universal-weak-map.js";
  • See util.js.

    import {
      brand,
      globalKey,
      forEachArrayMethod,
    } from "./util.js";
  • When called with any number of arguments, this function returns an object that inherits from tuple.prototype and is guaranteed to be === any other tuple object that has exactly the same items. In computer science jargon, tuple instances are “internalized” or just “interned,” which allows for constant-time equality checking, and makes it possible for tuple objects to be used as Map or WeakMap keys, or stored in a Set.

    export default function tuple(...items) {
      return intern(items);
    }
  • Named imports work as well as default imports.

    export { tuple };
  • If this package is installed multiple times, there could be mutiple implementations of the tuple function with distinct tuple.prototype objects, but the shared pool of tuple objects must be the same across all implementations. While it would be ideal to use the global object, there’s no reliable way to get the global object across all JS environments without using the Function constructor, so instead we use the global Array constructor as a shared namespace.

    const root = globalKey in Array
      ? Array[globalKey]
      : def(Array, globalKey, new UniversalWeakMap, false);
    
    function intern(array) {
      let node = root;
  • Because we are building a tree of weak maps, the tree will not prevent objects in tuples from being garbage collected, since the tree itself will be pruned over time when the corresponding tuple objects become unreachable. In addition to internalization, this property is a key advantage of the immutable-tuple package.

      array.forEach(item => {
        node = node.get(item) || node.set(item, new UniversalWeakMap);
      });
  • If a tuple object has already been created for exactly these items, return that object again.

      if (node.tuple) {
        return node.tuple;
      }
    
      const t = Object.create(tuple.prototype);
  • Define immutable items with numeric indexes, and permanently fix the .length property.

      array.forEach((item, i) => def(t, i, item, true));
      def(t, "length", array.length, false);
  • Remember this new tuple object so that we can return the same object earlier next time.

      return node.tuple = t;
    }
  • Convenient helper for defining hidden immutable properties.

    function def(obj, name, value, enumerable) {
      Object.defineProperty(obj, name, {
        value: value,
        enumerable: !! enumerable,
        writable: false,
        configurable: false
      });
      return value;
    }
  • Since the immutable-tuple package could be installed multiple times in an application, there is no guarantee that the tuple constructor or tuple.prototype will be unique, so value instanceof tuple is unreliable. Instead, to test if a value is a tuple, you should use tuple.isTuple(value).

    function isTuple(that) {
      return !! (that && that[brand] === true);
    }
    
    def(tuple.prototype, brand, true, false);
    
    tuple.isTuple = isTuple;
    
    function toArray(tuple) {
      const array = [];
      let i = tuple.length;
      while (i--) array[i] = tuple[i];
      return array;
    }
  • Copy all generic non-destructive Array methods to tuple.prototype. This works because (for example) Array.prototype.slice can be invoked against any Array-like object.

    forEachArrayMethod((name, desc, mustConvertThisToArray) => {
      const method = desc && desc.value;
      if (typeof method === "function") {
        desc.value = function (...args) {
          const result = method.apply(
            mustConvertThisToArray ? toArray(this) : this,
            args
          );
  • Of course, tuple.prototype.slice should return a tuple object, not a new Array.

          return Array.isArray(result) ? intern(result) : result;
        };
        Object.defineProperty(tuple.prototype, name, desc);
      }
    });
  • Like Array.prototype.concat, except for the extra effort required to convert any tuple arguments to arrays, so that

    tuple(1).concat(tuple(2), 3) === tuple(1, 2, 3)
    
    const { concat } = Array.prototype;
    tuple.prototype.concat = function (...args) {
      return intern(concat.apply(toArray(this), args.map(
        item => isTuple(item) ? toArray(item) : item
      )));
    };